]> sjero.net Git - wget/blob - src/ChangeLog
Do not assume external links type to be always "text/html".
[wget] / src / ChangeLog
1 2010-10-18  Manfred Koizar <mkoi-pg@aon.at> (tiny change)
2
3         * html-url.c (tag_handle_link): Do not assume external links type
4         to be always "text/html".
5
6 2010-10-16  Giuseppe Scrivano  <gscrivano@gnu.org>
7
8         * connect.c (socket_ip_address): Initialize `sockaddr' to zero.
9         * ftp-basic.c (ftp_epsv): Remove dead assignment to `s'.
10         * ftp-ls.c (ftp_parse_vms_ls): Remove dead assignment to `len'.
11         * http.c (skip_short_body): Remove dead assignment to `ret'.
12         * init.c (wgetrc_user_file_name): Remove dead assignment to `home'.
13         * main.c (main): Silent warning reported by clang.
14         (http_loop): Silent warning reported by clang.
15         * retr.c (retrieve_url): Likewise.
16         * url.c (init_seps): Remove dead assignment to `p'.
17
18 2010-10-11  Giuseppe Scrivano  <gscrivano@gnu.org>
19
20         * ftp.c (getftp): Fix indentation.
21
22 2010-10-11  Steven Schubiger <stsc@member.fsf.org>
23
24         * ftp.c (getftp): Initialize `targ'.
25
26 2010-10-08  Ivanov Anton <x86mail@gmail.com> (tiny change)
27
28     * src/html-url.c (check_style_attr): Skip quotes when they are present.
29
30 2010-10-06  Giuseppe Scrivano  <gscrivano@gnu.org>
31
32         * main.c (main): Remove unused variable `status'.
33
34 2010-09-25  Merinov Nikolay  <kim.roader@gmail.com>
35
36         * init.c: Add "unlink" command into command list.
37         * main.c: Add "unlink" option into option_data list.
38         * options.h: Adding unlink field into struct options.
39         * wget.h: Addind UNLINKERR error into uerr_t enum.
40         * exits.c (get_status_for_err): define status for UNLINKERR.
41         * ftp.c (getftp): unlink file if exists, instead clobbering.
42         (ftp_loop_internal): processing UNLINKERR.
43         * http.c (gethttp): unlink file if exists, instead clobbering.
44         (http_loop): processing UNLINKERR.
45
46 2010-09-24  Dennis, CHENG Renquan <crquan@fedoraproject.org>
47
48         Fix problem when content-disposition is used with recursive downloading.
49         * url.h (url_file_name): Add a new argument `replaced_filename'.
50         * url.c (url_file_name): Likewise.
51         * http.c (parse_content_disposition): Do not add a prefix to the return
52         value.
53         (test_parse_content_disposition): Adjust tests.
54         (gethttp): Pass additional parameter to `url_file_name'.
55         (http_loop): Likewise.
56         * ftp.c (ftp_loop_internal, ftp_get_listing, ftp_retrieve_list)
57         (ftp_loop): Likewise.
58
59 2010-09-14  Giuseppe Scrivano  <gscrivano@gnu.org>
60
61         * convert.c (local_quote_string): Accept new parameter `no_html_quote'.
62         Inhibit HTML quoting when `no_html_quote'.
63         (convert_links): Disable HTML quoting in CSS files.
64         Reported by: Manuel Reinhardt <reinhardt@syslab.com>.
65
66 2010-09-12  Giuseppe Scrivano  <gscrivano@gnu.org>
67
68         * main.c (print_help): Align --trust-server-names help text with
69         the rest of the text.
70         Suggested by: Mike Frysinger  <vapier@gentoo.org>.
71
72 2010-08-20  Giuseppe Scrivano  <gscrivano@gnu.org>
73
74         * convert.c: Include "iri.h".
75         (convert_links_in_hashtable): Parse the url, if
76         necessary, before check if it is present in the dowloaded url
77         map.
78         Reported by: <sk.random@gmail.com>.
79
80 2010-08-09  Giuseppe Scrivano  <gscrivano@gnu.org>
81
82         Fix a problem with HTTP/1.0 proxies.
83         * http.c (gethttp): Specify the connection header when keep alive
84         connections are not used.
85
86         Use persistent connections with proxies supporting them.
87         * http.c (gethttp): Specify Proxy-Connection to the HTTP proxy.
88
89 2010-08-06  Giuseppe Scrivano  <gscrivano@gnu.org>
90
91         * css-url.c (get_uri_string): Skip empty urls.
92
93 2010-07-25  John Trengrove  <jtrengrove@gmail.com> (tiny change)
94
95         * ftp.h: Added enum `parsetype'.  Modified struct to hold parsetype.
96
97         * ftp-ls.c (ftp_parse_unix_ls): Default to TT_DAY. Change to TT_HOUR_MIN
98         if hours/minutes parsed.
99         (ftp_parse_winnt_ls): Default to TT_HOUR_MIN.
100         (ftp_parse_vms_ls): Default to TT_HOUR_MIN.
101         (ftp_index): Print only if fileinfo struct value ttype set to TT_HOUR_MIN.
102
103 2010-07-30  Giuseppe Scrivano  <gscrivano@gnu.org>
104
105         * html-url.h (struct map_context): Remove member `tail'.
106
107         * html-url.c (append_url): Append the new url ordered by `position'.
108         (get_urls_html): Do not initialize `ctx.tail'.
109
110         * css-url.c (get_urls_css_file): Do not initialize `ctx.tail'.
111
112 2010-07-29  Giuseppe Scrivano  <gscrivano@gnu.org>
113
114         * gnutls.c (wgnutls_peek): Don't read more data if the buffered peek
115         data is sufficient.
116
117 2010-07-28  Giuseppe Scrivano  <gscrivano@gnu.org>
118
119         * http.h (http_loop): Add new argument `original_url'
120         * http.c (http_loop): Add new argument `original_url'.  Use
121         `original_url' to get a filename if `trustservernames' is false.
122
123         * init.c (commands): Add "trustservernames".
124
125         * options.h (library): Add variable `trustservernames'.
126
127         * main.c (option_data): Add trust-server-names.
128         (print_help): Describe --trust-server-names.
129
130         * retr.c (retrieve_url): Pass new argument to `http_loop'.
131
132 2010-07-20  Alan Jenkins <alan-jenkins@tuffmail.co.uk> (tiny change)
133
134         * http.c (gethttp): Check content-length was set before trying to
135         compare it with the already downloded filesize.
136
137 2010-07-20  Leonid Petrov <nouser@lpetrov.net>
138
139         * ftp.c (getftp): Don't attempt to retrieve the file if it is already
140         completely.
141         (ftp_loop_internal): Force the length to be zero for symlinks.
142
143 2010-07-18  Giuseppe Scrivano  <gscrivano@gnu.org>
144
145         * http.c (gethttp): If -N is used, don't exit immediately if the content
146         length is less or equal than the existing file size.  Specify "Range"
147         only if -N is not used.
148         Reported by: Caleb Cushing <xenoterracide@gmail.com>.
149
150 2010-07-14  Giuseppe Scrivano  <gscrivano@gnu.org>
151
152         * ftp.c (max): Remove definition.
153         (getftp): New variable `got_expected_bytes'.  Let `expected_bytes' be
154         the value SIZE returns, otherwise use the bytes count returned by RETR.
155         Suggested by Daniel Stenberg <daniel@haxx.se>.
156
157 2010-07-14  Giuseppe Scrivano  <gscrivano@gnu.org>
158
159         * ftp.c (max): Add definition.
160         (getftp): Consider for `expected_bytes' the greatest value between the
161         bytes count returned by SIZE and the bytes count returned by RETR.
162         Reported by: Jozua <jozua@sparky.za.net>.
163
164 2010-07-11  Giuseppe Scrivano  <gscrivano@gnu.org>
165
166         * http.c (http_loop): New variable `force_full_retrieve'.  If the remote
167         file is newer that the local one then inhibit -c.
168         Reported by: Caleb Cushing <xenoterracide@gmail.com>.
169
170 2010-07-09  Giuseppe Scrivano  <gscrivano@gnu.org>
171
172         * css-url.c (get_urls_css_file): Use `wget_read_file' instead of
173         `read_file'.  Use `wget_read_file_free' instead of `read_file_free'.
174         * convert.c (convert_links): Likewise.
175         * html-url.c (get_urls_html, get_urls_file): Likewise.
176         * res.c (res_parse_from_file): Likewise.
177
178         * utils.h: Rename `read_file' to `wget_read_file'.  Rename
179         `read_file_free' to `wget_read_file_free'.
180
181         * utils.c (wget_read_file): Renamed from `read_file'.
182         (wget_read_file_free): Renamed from `read_file_free'.
183
184 2010-07-05  Giuseppe Scrivano  <gscrivano@gnu.org>
185
186         * gnutls.c (ssl_init): New local variables `ca_directory' and `dir'.
187         Load default root certificates under the `ca_directory' directory.
188
189 2010-07-03  Giuseppe Scrivano  <gscrivano@gnu.org>
190
191         * gnutls.c (ssl_connect_wget): New local variable `allowed_protocols'.
192         Honor the --secure-protocol flag.
193
194 2010-06-20  Giuseppe Scrivano  <gscrivano@gnu.org>
195
196         * main.c (print_help): Fix help string for --random-wait.  Its range is
197         [0.5*wait, 1.5*wait) not [0, 2*wait).
198         Reported by: Tom Mizutani <gombei1970@gmail.com>.
199
200 2010-06-15  Giuseppe Scrivano  <gscrivano@gnu.org>
201
202         * gnutls.c [WIN32]: Include "w32sock.h".
203         (FD_TO_SOCKET): Add definition.
204         (ssl_connect_wget): Get the real socket handle by FD_TO_SOCKET.
205         Define FD_TO_SOCKET if it is not yet defined.
206
207 2010-06-14  Giuseppe Scrivano  <gscrivano@gnu.org>
208
209         * gnutls.c: Include <stdlib.h>.
210         (struct wgnutls_transport_context): Remove `peekstart'.
211         (ssl_connect_wget): Renamed from `ssl_connect'.
212         (wgnutls_poll): New variable `ctx'.
213         (wgnutls_read): Don't use `ctx->peekstart'.
214         (wgnutls_peek): Likewise.  Don't attempt to read if there is not
215         ready data.
216
217 2010-06-14  Giuseppe Scrivano  <gscrivano@gnu.org>
218         * http.c (http_loop): Always send a HEAD request when -N is used
219         together with --content-disposition.
220         Reported by: Jochen Roderburg <Roderburg@Uni-Koeln.DE>.
221
222 2010-06-10  Muthu Subramanian K <muthusuba@gmail.com> (tiny change)
223
224         * http.c (http_loop): Increase `total_downloaded_bytes' by
225         `hstat.rd_size', not `hstat.len'.
226
227 2010-06-10  Giuseppe Scrivano  <gscrivano@gnu.org>
228
229         * main.c (print_version): Drop the current maintainer line.
230
231 2010-06-10  Giuseppe Scrivano  <gscrivano@gnu.org>
232
233         * Makefile.am (build_info.c): Generate the `build_info.c' file under
234         the build directory.
235         Patch by: Daniel Stenberg <daniel@haxx.se>.
236
237 2010-06-03  Giuseppe Scrivano  <gscrivano@gnu.org>
238
239         * http.c (http_loop): Do not send a HEAD request before the GET request
240         when --content-disposition is used.
241         Reported by: alex_wh@mail.ru.
242
243 2010-05-31  Giuseppe Scrivano  <gscrivano@gnu.org>
244
245         * css.l: Use option "nounput".
246         (YY_NO_INPUT): Add macro definition.
247
248 2010-05-31  Giuseppe Scrivano  <gscrivano@gnu.org>
249
250         * html-parse.c (map_html_tags): Fix condition for closed tag.  Handle
251         the case '>' is not specified after '/'.
252
253 2010-05-31  Giuseppe Scrivano  <gscrivano@gnu.org>
254
255         * sysdep.h (_SVID_SOURCE): Remove definition.
256         (_BSD_SOURCE): Remove definition.
257
258 2010-05-31  Giuseppe Scrivano  <gscrivano@gnu.org>
259
260         * recur.c (retrieve_tree): Remove variable `up_error_code'.
261
262         * iri.c (open_locale_to_utf8): Remove function.
263
264 2010-05-30  Giuseppe Scrivano  <gscrivano@gnu.org>
265
266         * html-parse.c (NAME_CHAR_P): Consider '<' an invalid character.
267         (advance_declaration): Close the tag if '<' is found.
268         (map_html_tags): Likewise.
269
270 2010-05-27  Giuseppe Scrivano  <gscrivano@gnu.org>
271
272         * main.c (print_usage): Accept a new parameter `error'.
273         (main): Print diagnostic messages to stderr, not stdout.
274
275 2010-05-27  Giuseppe Scrivano  <gscrivano@gnu.org>
276
277         * Makefile.am (wget_SOURCES): Remove `snprintf.c'.
278
279         * snprintf.c: Remove file.
280
281 2010-05-27  Giuseppe Scrivano  <gscrivano@gnu.org>
282
283         * main.c (main): Exit with failure when -k is specified and -O is not
284         a regular file.
285
286 2010-05-27  Giuseppe Scrivano  <gscrivano@gnu.org>
287
288         * http.c (gethttp): Consider new cookies retrieved when the
289         authorization fails.
290
291 2010-05-25  Giuseppe Scrivano  <gscrivano@gnu.org>
292
293         * host.c (sufmatch): Do not consider zero length entries.
294
295         * http.c (H_10X): New macro.
296         (gethttp): Silently ignore 1xx responses.
297
298 2010-05-24  Giuseppe Scrivano  <gscrivano@gnu.org>
299
300         * iri.h (dummy_iri): Define static.
301
302         * css-tokens.h (css_tokens): Remove variable.
303
304 2010-05-23  Giuseppe Scrivano  <gscrivano@gnu.org>
305
306         * http.c (http_atotm): Count the NUL character when copying the locale
307         string.
308         Reported by: Florian Weimer <fw@deneb.enyo.de>
309
310 2010-05-16  Giuseppe Scrivano  <gscrivano@gnu.org>
311
312         * Makefile.am (LDADD): Remove MD5_LDADD.
313         (MD5_LDADD): Remove definition.
314         (AM_CPPFLAGS): Remove MD5_CPPFLAGS.
315         (version.c): Remove dependency from MD5_LDADD.
316         (../md5/libmd5.a): Remove rule.
317
318         * ftp-opie.c: Include "md5.h".  Do not include "gen-md5.h".
319         (skey_response): New variable ctx.  Use md5 functions from the gnulib
320         module instead of functions defined previously in the "gen-md5.h" file.
321
322         * gen-md5.h: Remove file.
323         * gen-md5.c: Likewise.
324
325         * http.c: Include "md5.h".  Do not include "gen-md5.h".
326         (digest_authentication_encode): New variable ctx.  Use md5 functions
327         from the gnulib module instead of functions defined previously in the
328         "gen-md5.h" file.
329
330 2010-05-15  Giuseppe Scrivano  <gscrivano@gnu.org>
331
332         * Makefile.am: Quote any path using $(top_srcdir) or $(top_builddir).
333         (version.c): Remove dependency from configure.ac and Makefile.am.
334
335         * css.l: Include "wget.h".
336
337 2010-05-08  Giuseppe Scrivano  <gscrivano@gnu.org>
338
339         * Makefile.am: Update copyright years.
340
341         * cmpt.c: Likewise.
342
343         * connect.h: Likewise.
344
345         * convert.c: Likewise.
346
347         * convert.h: Likewise.
348
349         * cookies.c: Likewise.
350
351         * cookies.h: Likewise.
352
353         * css-tokens.h: Likewise.
354
355         * css-url.c: Likewise.
356
357         * css-url.h: Likewise.
358
359         * css.l: Likewise.
360
361         * exits.c: Likewise.
362
363         * exits.h: Likewise.
364
365         * ftp-basic.c: Likewise.
366
367         * ftp-ls.c: Likewise.
368
369         * ftp-opie.c: Likewise.
370
371         * ftp.c: Likewise.
372
373         * ftp.h: Likewise.
374
375         * gen-md5.c: Likewise.
376
377         * gen-md5.h: Likewise.
378
379         * gettext.h: Likewise.
380
381         * gnutls.c: Likewise.
382
383         * hash.c: Likewise.
384
385         * hash.h: Likewise.
386
387         * host.c: Likewise.
388
389         * host.h: Likewise.
390         * html-parse.c: Likewise.
391
392         * html-parse.h: Likewise.
393
394         * html-url.c: Likewise.
395
396         * html-url.h: Likewise.
397
398         * http-ntlm.c: Likewise.
399
400         * http-ntlm.h: Likewise.
401
402         * http.c: Likewise.
403
404         * http.h: Likewise.
405
406         * init.c: Likewise.
407
408         * init.h: Likewise.
409
410         * iri.c: Likewise.
411
412         * iri.h: Likewise.
413
414         * log.c: Likewise.
415
416         * log.h: Likewise.
417
418         * main.c: Likewise.
419
420         * mswindows.c: Likewise.
421
422         * mswindows.h: Likewise.
423
424         * netrc.c: Likewise.
425
426         * netrc.h: Likewise.
427
428         * openssl.c: Likewise.
429
430         * options.h: Likewise.
431         * progress.c: Likewise.
432
433         * progress.h: Likewise.
434
435         * ptimer.c: Likewise.
436
437         * ptimer.h: Likewise.
438
439         * recur.c: Likewise.
440
441         * recur.h: Likewise.
442
443         * res.c: Likewise.
444
445         * res.h: Likewise.
446
447         * retr.c: Likewise.
448
449         * retr.h: Likewise.
450
451         * spider.c: Likewise.
452
453         * spider.h: Likewise.
454
455         * ssl.h: Likewise.
456
457         * sysdep.h: Likewise.
458
459         * test.c: Likewise.
460
461         * test.h: Likewise.
462
463         * url.c: Likewise.
464
465         * url.h: Likewise.
466
467         * utils.c: Likewise.
468
469         * utils.h: Likewise.
470
471         * wget.h: Likewise.
472
473 2010-05-07  Giuseppe Scrivano  <gscrivano@gnu.org>
474
475         * gnutls.c (wgnutls_close): Use always `close', not `closesocket'.
476
477         * openssl.c (openssl_close): Use always `close', not `closesocket'.
478         (ssl_connect_wget): Get the real socket handle by FD_TO_SOCKET.
479         Define FD_TO_SOCKET if it is not yet defined.
480
481         * Makefile.am (libunittest_a_CPPFLAGS): Add -I$(top_builddir)/lib.
482
483         * mswindows.h: Always include <winsock2.h> and <ws2tcpip.h>.  Do not
484         include <winsock.h>.
485         [! INHIBIT_WRAP]: Remove macro's socket, bind, connect, accept, recv,
486         send, select, getsockname, getpeername, setsockopt, closesocket.
487         Remove wrapped_socket, wrapped_bind, wrapped_connect, wrapped_listen,
488         wrapped_accept, wrapped_recv, wrapped_send, wrapped_select,
489         wrapped_getsockname, wrapped_getpeername, wrapped_setsockopt,
490         wrapped_closesocket prototypes.
491
492         * mswindows.c:  Remove wrapped_socket, wrapped_bind, wrapped_connect,
493         wrapped_listen, wrapped_accept, wrapped_recv, wrapped_send,
494         wrapped_select, wrapped_getsockname, wrapped_getpeername,
495         wrapped_setsockopt, wrapped_closesocket functions.  Remove WRAP macro.
496
497         * host.h [WINDOWS]: Include <winsock2.h> not <winsock.h>.
498
499         * connect.c: Include <sys/socket.h> and <sys/select.h> on any platform,
500         gnulib ensures they exist.  Remove `read', `write', `close' macros.
501
502         * Makefile.am: Copy build_info.c.in only if we are working in a VPATH.
503         (AM_CPPFLAGS): Add directory with generated gnulib files.
504
505 2010-05-06  Giuseppe Scrivano  <gscrivano@gnu.org>
506
507         * Makefile.am (build_info.c): Generate build_info.c in the builddir,
508         not srcdir.
509
510 2010-05-05  Giuseppe Scrivano  <gscrivano@gnu.org>
511
512         * http.c (gethttp): Give a nicer message on a malformed status line.
513
514 2010-05-04  Giuseppe Scrivano  <gscrivano@gnu.org>
515
516         * http.c (gethttp): Check `resp_status' return code and handle
517         errors.
518
519 2010-05-01  Giuseppe Scrivano <gscrivano@gnu.org>
520
521         * http.c (request_send): Specify 1.1 as HTTP version for requests.
522         (skip_short_body): Accept new parameter `chunked'.  New variable
523         `remaining_chunk_size'.  Handle the chunked transfer encoding.
524         (gethttp): New variable `chunked_transfer_encoding`.  Set `keepalive'
525         by default to true.  Check if the server is using the chunked transfer
526         encoding.
527
528         * retr.h: Define `rb_chunked_transfer_encoding'.
529
530         * retr.c (fd_read_body): New variable `chunked'.  New variable
531         `remaining_chunk_size'.  Handle the chunked transfer encoding.
532
533 2010-03-04  Steven Schubiger  <stsc@member.fsf.org>
534
535         * ftp.c (ftp_loop_internal): Omit input file from being
536         deleted after retrieval.
537
538         * retr.c (input_file_url): New function.
539
540         * retr.h: Add declaration for input_file_url.
541
542 2010-03-02  Steven Schubiger  <stsc@member.fsf.org>
543
544         * retr.c (retrieve_from_file): Improve checking for a URL
545         by invoking url_valid_scheme instead of url_has_scheme.
546
547         * url.c (url_valid_scheme): New function.
548
549         * url.h: Add declaration for url_valid_scheme.
550
551 2010-03-02  Steven Schubiger  <stsc@member.fsf.org>
552
553         * retr.c (retrieve_from_file): Free memory of input file.
554
555 2010-03-01  Steven Schubiger  <stsc@member.fsf.org>
556
557         * retr.c (retrieve_url): Retrieve the local filename from ftp_loop.
558         (retrieve_from_file): Return if there's no input file.
559
560         * ftp.c (ftp_loop_internal): Duplicate the local filename into
561         retrieve_url's scope when a valid reference is being passed.
562         (ftp_loop): Call ftp_loop_internal here with passing a
563         reference to the local filename, elsewhere with NULL.
564
565         * ftp.h: Adjust declaration of ftp_loop.
566
567 2010-01-27  Paul Townsend  <aab@purdue.edu>  (tiny change)
568
569         * retr.c (fd_read_body): Be sure to measure timer when time has
570         elapsed, too, not just when we've made progress.
571
572 2010-01-13  Micah Cowan  <micah@cowan.name>
573
574         * openssl.c: Fixed some mixed declarations-and-code.
575
576 2010-01-09  Micah Cowan  <micah@cowan.name>
577
578         * init.c, main.c, http.c, ftp.c, options.h: Renamed
579         --no-match-server-timestamps to --no-use-server-timestamps, and
580         add it to print_help.
581
582 2010-01-09  David Holman  <holman.david@gmail.com>  (tiny change)
583
584         * init.c, main.c, http.c, ftp.c, options.h: Added support for
585         --no-match-server-timestamps.
586
587 2009-12-03  Peter Rosin  <peda@lysator.liu.se>
588
589         * snprintf.c (dopr): Output %p as unsigned.
590
591 2010-01-09  Jeremy Olexa  <darkside@gentoo.org>  (tiny change)
592
593         * init.c: Deal with systems which provide PATH_MAX in
594         sys/param.h rather than limits.h.
595
596 2009-10-09  Steven Schweda  <sms@antinode.info>
597
598         * utils.c: Added characters " : \ | to the list of normal
599         caret-escaped (ODS5) characters in the char_prop[] table.
600
601 2009-09-22  Arvind Jamuna Dixit  <ardsrk@gmail.com>
602
603         * http.c (extract_param, parse_content_disposition): Support
604         RFC 2231 while parsing Content-Disposition header
605
606 2009-10-24  Petr Pisar  <petr.pisar@atlas.cz>
607
608         * openssl.c: Implement support for (multiple) subjectAltNames in
609         X509 certificates, not just the commonName.
610
611 2009-10-09  Micah Cowan  <micah@cowan.name>
612
613         * main.c: Fix declaration of compiled_features.
614
615         * build_info.c.in: Adapt to new input format. Added a check for
616         large-file support. Replaced the "openssl" and "gnutls"
617         advertisements with a single "ssl/foo" advertisement.
618
619 2009-09-30  Micah Cowan  <micah@cowan.name>
620
621         * sysdep.h: Unconditionally include stdbool.h (gnulib has it for
622         systems that don't supply it.)
623
624         * vms.c: Added functions vms_basename(), used to extract the
625         bare executable name from argv[0], and vms_getpass(), a
626         VMS-specific replacement for GNU getpass().
627
628          vms.c: Added global string constants: compilation_string
629         (NULL), link_string (NULL), and version_string (real).
630
631 2009-09-24  Micah Cowan  <micah@cowan.name>
632
633         * vms.c: Moved from vms/vms.c.
634
635         * sysdep.h: Use proper prototypes for snprintf, vsnprintf (thanks
636         to Steven Schweda).
637
638 2009-09-24  Steven Schweda  <sms@antinode.info>
639
640         * main.c (print_version): Remove VMS-conditional build info
641         string; the new VMS builders use OS_TYPE.
642
643         * ftp.c (getftp): Fix accidental use of target -> targ.
644
645 2009-09-24  Micah Cowan  <micah@cowan.name>
646
647         * host.c (host_errstr): host_errstr should return const char *.
648
649 2009-09-22  Micah Cowan  <micah@cowan.name>
650
651         * Makefile.am (version.c): Explicitly tell Mercurial where the
652         top-source repository should be, so it doesn't accidentally use
653         the repository for a containing directory (for instance, if the
654         user's home directory is managed by a Mercurial repo). Also
655         ensures we find the repository, even if the build directory is
656         outside the source directory.
657
658         * wget.h: define WINDOWS if _WIN32 or __WIN32__ is defined, but
659         not __CYGWIN__.
660
661         * mswindows.c (xsleep): Check for availability of the sleep
662         function, in addition to the usleep function.
663         (get_winsock_error, windows_strerror): Removed (gnulib already
664         supplies this functionality).
665
666         * mswindows.h [NEED_GAI_STRERROR]: define gai_strerror
667         to (gnulib's) strerror, rather than windows_strerror. Removed
668         error macro definitions provided by gnulib.
669         (windows_strerror): Removed (gnulib already supplies this
670         functionality).
671
672         * host.c: Don't declare h_errno when building on Windows.
673
674         * Makefile.am (LIBS): Added @W32LIBS@.
675         (EXTRA_wget_SOURCES): Removed (it's in LIBOBJ now).
676         (version.c): Removed dependency on $(LDADD), since it may include
677         dependencies that are not part of the Wget sources (-lwsock32, for
678         instance).
679
680         * openssl.c (ssl_check_certificate): Avoid reusing the same buffer
681         space for successive quoted arguments. Thanks to Steven Schweda
682         for pointing out the problem.
683
684 2009-09-21  Micah Cowan  <micah@cowan.name>
685
686         * progress.c (update_speed_ring): "the the" -> "the".
687
688         * css-url.c, iri.c, mswindows.c: Removed assert.h inclusion (not
689         using it).
690
691 2009-09-11  Steven Schweda  <sms@antinode.info>
692
693         * utils.c, utils.h (fopen_excl): Make second argument an int,
694         rather than a bool (so it can handle the appropriate VMS version
695         of the flag).
696
697         * main.c (print_version): Don't print LOCALEDIR unless NLS is
698         enabled.
699
700         * http.c (gethttp): Pass FOPEN_BIN_FLAG, instead of true.
701
702         * ftp.c (ftp_retrieve_glob): Cast strcmp to assign to cmp, for a
703         silly HP build environment.
704
705 2009-09-08  Steven Schubiger  <stsc@member.fsf.org>
706
707         * main.c, init.c: Mark the --preserve-permissions and
708         --html-extension option as deprecated.
709
710 2009-09-06  Micah Cowan  <micah@cowan.name>
711
712         * ftp.c (getftp, ftp_loop_internal): Separate "len" input/output
713         parameter (with different meanings for input and output), into two
714         separate parameters, one input (passed_expected_bytes) and one
715         output (qtyread). Fixes bug #26870.
716
717 2009-09-05  Steven Schubiger  <stsc@member.fsf.org>
718
719         * retr.h: Declare set_local_file() to avoid build warnings.
720
721 2009-09-05  Gisle Vanem  <gvanem@broadpark.no>
722
723         * connect.c, init.c, main.c, openssl.c, options.h:  Replace
724         "ifdef MSDOS" with "ifdef USE_WATT32" since DOS-targets in fact
725         use the Watt-32 tcp/ip stack.
726
727 2009-09-04  Micah Cowan  <micah@cowan.name>
728
729         * Makefile.am: Move build_info.c to wget_SOURCES from
730         nodist_wget_SOURCES, reduce dependencies, and invoke build_info.pl
731         in its new home, $(top_srcdir)/build-aux.
732
733 2009-09-03  Micah Cowan  <micah@cowan.name>
734
735         * ftp-ls.c (ftp_parse_vms_ls): Replace use of localtime_r with
736         localtime, as not all platforms have localtime_r.
737
738         * Makefile.am (wget_SOURCES): Rearranged some of the file order,
739         so .c files and .h files are apart. Added gettext.h, so that it
740         shows up in the dist.
741
742 2009-09-02  Micah Cowan  <micah@cowan.name>
743
744         * gettext.h: Refreshed from gettext 0.17.
745
746         * test.c: Added definition of program_name variable, required by
747         lib/error.c (libgnu.a). Doesn't cause problems until you try to
748         build on a non-GNU system...
749
750         * build_info.c.in: Removed useless "+gettext" feature ad.
751
752 2009-08-29  Steven Schubiger  <stsc@member.fsf.org>
753
754         * convert.c (local_quote_string): Percent-encode semicolons
755         in local file strings.
756
757 2009-08-27  Micah Cowan  <micah@cowan.name>
758
759         * wget.h (uerr_t): added new VERIFCERTERR code for SSL certificate
760         problems. Marked exit codes that are defined but never used (at
761         least, the ones I could find).
762
763         * retr.c, retr.h (retrieve_url): Added a new boolean argument to
764         determine whether an exit status should be recorded.
765         (retrieve_from_file): Adjust to new retrieve_url signature.
766
767         * res.c (res_retrieve_file): Don't have retrieve_url record an
768         exit status for robots.txt.
769
770         * recur.c (retrieve_tree): Adjust to new retrieve_url signature.
771
772         * main.c (main): Use the exit status stored by retrieve_url.
773
774         * http.c (gethttp): Distinguish certificate verification problems
775         from SSL connection issues.
776         (http_loop): Handle newly-created VERIFCERTERR error code.
777
778         * exits.c, exits.h: Newly added.
779
780         * Makefile.am (wget_SOURCES): Add exits.c and exits.h.
781
782 2009-08-27  Micah Cowan  <micah@cowan.name>
783
784         * http.c (gethttp): Make sure Wget heeds cookies when they
785         are sent with a 401 response; or any other sort of response for
786         that matter (#26775).
787
788 2009-08-19  Micah Cowan  <micah@cowan.name>
789
790         * openssl.c (ssl_check_certificate): Only warn about an attack if
791         the hostname would otherwise have matched. Also some formatting
792         cleanup.
793
794 2009-08-19  Joao Ferreira  <joao@joaoff.com>
795
796         * openssl.c (ssl_check_certificate): Detect embedded NUL
797         characters in the SSL certificate common name.
798
799 2009-08-17  Tony Lewis  <tlewis@exelana.com>
800
801         * http.c (gethttp): Ensure that we parse Content-Length before we
802         attempt to refer to its value. Without this fix, NTLM support was
803         completely buggered. #27192
804
805 2009-08-09  Michael Baeuerle  <michael.baeuerle@gmx.net>
806
807         * ftp.c: #include <strings.h> for strcasecmp.
808
809 2009-07-28  Micah Cowan  <micah@cowan.name>
810
811         * main.c (option_data): Rename --html-extension to
812         --adjust-extension.
813         (print_help): Ditto.
814
815         * options.h (struct option): Rename html_extension to
816         adjust_extension.
817         * http.c (gethttp): Ditto.
818         * convert.c (local_quote_string): Ditto.
819
820         * init.c (commands): Add "adjustextension", and reflect rename
821         change for opt.adjust_extension, for both "adjustextension" and
822         "htmlextension".
823
824 2009-07-27  Micah Cowan  <micah@cowan.name>
825
826         * options.h (struct options): Added restrict_files_nonascii
827         boolean field.
828
829         * url.c (FILE_CHAR_TEST): Add check for chars outside the ASCII
830         range.
831
832         * init.c (defaults): Add restrict_files_nonascii to initialization.
833         (cmd_spec_restrict_file_names): Allow parsing of "ascii" keyword.
834
835 2009-07-27  Marcel Telka  <marcel@telka.sk>
836
837         * iri.c (do_conversion): Typo: invalide -> invalid
838
839 2009-07-27  Petr Pisar  <petr.pisar@atlas.cz>
840
841         * main.c (print_help): Fixed a couple typos.
842
843 2009-07-26  Micah Cowan  <micah@cowan.name>
844
845         * main.c (option_data): Rename --locale option to --local-encoding
846         (print_help): Document --no-iri, --local-encoding, and
847         --remote-encoding, within usage message. Remove defunct
848         --preserve-permissions.
849
850 2009-07-23  Micah Cowan  <micah@cowan.name>
851
852         * progress.c (get_eta): Change "Translation note" in comment to
853         "TRANSLATORS", so it actually appears in wget.pot.
854
855 2009-07-06  Micah Cowan  <micah@cowan.name>
856
857         * main.c (print_help): Improve documentation of --base.
858
859 2009-07-05  Micah Cowan  <micah@cowan.name>
860
861         * html-url.c (tag_handle_meta): Handle meta name="robots"
862         properly: deal with whitespace, commas after...
863
864         * netrc.c (parse_netrc): Rename local-scope variable "quote" to
865         "qmark", to avoid conflict with the function name.
866
867 2009-07-05  Petr Pisar  <petr.pisar@atlas.cz>
868
869         * main.c (print_version): Mark initial line for translation, along
870         with (env), (user), and (system). Change copyright year to 2009.
871
872         * http.c (http_loop): Space after colon.
873
874         * gnutls.c (ssl_check_certificate): Use quote function, rather
875         than explicit quotes.
876
877 2009-07-05  Micah Cowan  <micah@cowan.name>
878
879         * Makefile.am (version.c): Add dependency on configure.ac.
880
881         * iri.c: Mark some strings for translation.
882
883 2009-07-04  Steven Schweda  <sms@antinode.info>
884
885         * wget.h (ORIG_SFX): Macro added, to supply an alternative "_orig"
886         suffix on VMS.
887
888         * connect.c, host.c, host.h, main.c: Include "vms_ip.h" rather
889         than <netdb.h> on VMS systems.
890
891         * convert.c (write_backup_file): Use "_orig" rather than ".orig"
892         on VMS.
893
894         * ftp-basic.c (ftp_list): Don't use LIST -a on VMS servers.
895
896         * ftp.c [__VMS]: Include "vms.h"
897         * ftp.c (getftp): Disable some unhelpful "for VMS" code. Pass the
898         OS type to ftp_list.
899         (getftp) [__VMS]: Alter the filename as required, and invoke fopen
900         with extra optional arguments.
901         (ftp_retrieve_list): Set permissions before setting the times.
902
903         * ftp-ls.c [__VMS]: Various improvements.
904
905         * http.c (SET_USER_AGENT): Added. Include operating-system info in
906         the User-Agent header.
907         (gethttp): Use ORIG_SFX macro.
908         (gethttp) [__VMS]: invoke fopen with extra arguments to
909         communicate file type.
910         (http_loop): Add cast to time_t.
911
912         * init.c (wgetrc_user_file_name) [__VMS]: Adjustments for where to
913         find the .wgetrc.
914
915         * log.c: Adjustments to improve handling of log files on VMS.
916
917         * main.c [__VMS]: Added --ftp-stmlf option (and associated
918         documentation). Adjust description of backup-suffixes, as they now
919         differ for VMS.
920         (print_help, print_version): Include OS type in version
921         information.
922         (main) [__VMS]: Invoke fopen with extra options, to specify file
923         type information.
924
925         * netrc.c (search_netrc) [__VMS]: Fix .netrc-finding.
926
927         * openssl.c, openssl.h (ssl_connect_wget): Renamed from ssl_connect.
928
929         * options.h (struct options): Add ftp_stmlf field.
930
931         * retr.c (write_data) [__VMS]: Avoid fflush.
932
933         * url.c [__VMS]: Include vms.h.
934         * url.c (url_file_name) [__VMS]: Handle naming as required for VMS.
935
936         * utils.c [__VMS]: Include vms.h. Various added facilities for VMS
937         needs.
938
939 2009-07-04  Micah Cowan  <micah@cowan.name>
940
941         * main.c (print_version): Allow localization of the version-info
942         labels, eschew attempts at alignment (which is complicated when
943         handling translated strings), and avoid using printf() with
944         variable-stored format strings that lack conversion
945         specifications.
946         (format_and_print_line): For similar reasons, don't calculate
947         line-continuation tabulation based on the number of bytes in a
948         string.
949
950 2009-07-04  Steven Schubiger  <stsc@member.fsf.org>
951
952         * url.c (url_parse): If an URL scheme is invalid, distinguish
953         between an unsupported or missing scheme.
954
955         * url.c: Add a "missing scheme" entry to parse_errors.
956
957 2009-07-03  Micah Cowan  <micah@cowan.name>
958
959         * iri.h (iri_dup): Provide macro definition for when IRIs are
960         disabled.
961
962         * Makefile.am (LIBS): Added @LIBICONV@.
963         (wget_SOURCES): Added iri.h.
964         (EXTRA_wget_SOURCES): Added iri.c, so it gets packaged even if IRI
965         support was disabled.
966
967 2009-07-02  Micah Cowan  <micah@cowan.name>
968
969         * recur.c (url_enqueue): Quote enqueue/dequeue debug messages.
970
971         * html-url.c (append_url): Change "merge()" quoting style from
972         locale_quoting_style to escape_quoting_style.
973
974 2009-07-01  Micah Cowan  <micah@cowan.name>
975
976         * retr.c (retrieve_url): Use the existing "redirect" label,
977         instead of superfluous "second_try". Removed no-longer-accurate
978         debug statement. Use the "newloc" parameter to store the fallback
979         URL, when IRI version was rejected.
980
981         * recur.c (retrieve_tree): Always use the parsed URL for tracking
982         the Referer, since that's the one we actually requested (if
983         there's a difference in terms of percent-encodings and such).
984
985 2009-07-01  Steven Schubiger  <stsc@member.fsf.org>
986
987         * Makefile.am: Add a rule to generate build_info.c and list
988         the build_info.c.in file in EXTRA_DIST. Adjust elsewhere
989         where needed.
990
991         * build_info.c: Remove this static source file.
992
993         * build_info.c.in: Data for generation of build_info.c.
994
995 2009-06-29  Micah Cowan  <micah@cowan.name>
996
997         * html-url.c (append_url): Quote some more arguments that might
998         contain characters that are inappropriate to display for the
999         current locale.
1000
1001         * retr.c (retrieve_from_file): Be sure to pass iri information
1002         when parsing an input-fle url, and be sure to hand a clean iri
1003         struct, off to retrieve_tree and retrieve_url.
1004
1005         * iri.c, iri.h (iri_dup): Added.
1006
1007         * retr.c (retrieve_url): Re-parse for IRI fallback.
1008
1009         * main.c (main): Set up iri before the url_parse invocation (so we
1010         can use it).
1011
1012 2009-06-20  Jay Krell  <jay.krell@cornell.edu>
1013
1014         * sysdep.h (_ALL_SOURCE): (small change) Define the _ALL_SOURCE
1015         macro on INTERIX systems. (I switched the location from ftp.c to
1016         sysdep.h --mjc)
1017
1018 2009-06-15  Micah Cowan  <micah@cowan.name>
1019
1020         * ftp.c (getftp): If we can't accept the connection, return
1021         CONERROR, not whatever the contents of err happens to be. Fixes
1022         bug #25015.
1023
1024         * retr.c (fd_read_body): Make both args to progress_create
1025         consistent, resulting in an accurate progress display. Fixes bug
1026         #24948.
1027
1028 2009-06-14  Micah Cowan  <micah@cowan.name>
1029
1030         * Makefile.am (wget_SOURCES): css-tokens.h needs to ship with
1031         dist, too.
1032
1033 2009-06-13  Micah Cowan  <micah@cowan.name>
1034
1035         * init.c: Rename setval_internal_wrapper to setval_internal_tilde,
1036         ensure we don't "replace" the tilde unless it's actually
1037         present. Clean up some minor GNU style issues.
1038
1039 2009-06-13  Julien Pichon  <julienpichon7@gmail.com>
1040
1041         * init.c: Handle tilde-expansion in wgetrc commands, without
1042         resorting to setting/unsetting globals to change behavior in one
1043         call location.
1044
1045 2009-06-12  Micah Cowan  <micah@cowan.name>
1046
1047         * host.c: Include <sys/types.h> before <sys/socket.h>. Not
1048         required by POSIX any more, but some older systems (such as
1049         FreeBSD 4.1) still need it, and it doesn't seem like it could
1050         hurt...
1051
1052         * build_info.c (library): Handle "https" as a feature in its own
1053         right, apart from "gnutls" and "openssl".
1054
1055         * host.c: Declare h_errno if no declaration is provided. Idea
1056         thanks to Maciej W. Rozycki.
1057
1058 2009-06-11  Xin Zou  <zouxin2008@gmail.com>
1059
1060         * http.c (gethttp): Fix some memory leaks.
1061
1062 2009-06-11  Micah Cowan  <micah@cowan.name>
1063
1064         * http.c (http_atotm): Handle potential for setlocale's return
1065         value to be static storage. Thanks to Benjamin Wolsey
1066         <bwy@benjaminwolsey.de>.
1067
1068         * sysdep.h: Need NAMESPACE_TWEAKS on non-Linux glibc-based
1069         systems, too. Thanks to Robert Millan.
1070
1071 2009-05-28  Steven Schubiger  <stsc@member.fsf.org>
1072
1073         * ftp.c (ftp_get_listing): Update the "listing file"
1074         string after calling ftp_loop_internal().
1075
1076 2009-05-27  Steven Schubiger  <stsc@member.fsf.org>
1077
1078         * ftp.c (ftp_get_listing): Duplicate the "listing file"
1079         string to avoid memory corruption when FOPEN_EXCL_ERR is
1080         encountered.
1081
1082 2009-05-17  Steven Schubiger  <stsc@member.fsf.org>
1083
1084         * progress.c (eta_to_human_short): Fix the remaining hours
1085         to be displayed. Spotted by Tadeu Martins (#26411).
1086
1087 2009-04-24  Micah Cowan  <micah@cowan.name>
1088
1089         * hash.c: Change stdint.h inclusion to use HAVE_STDINT_H, not C99
1090         check.
1091
1092         * connect.c: stdint.h inclusion added.
1093
1094         Thanks to Markus Duft <mduft@gentoo.org> for a similar patch.
1095
1096 2009-04-20  Micah Cowan  <micah@cowan.name>
1097
1098         * Makefile.am (version.c): Fix unportable use of "echo -n".
1099
1100 2009-04-13  Steven Schubiger  <stsc@member.fsf.org>
1101
1102         * ftp.c (ftp_retrieve_list): Move the duplicated code that
1103         determines the local file to a function.
1104
1105         * http.c (http_loop): Likewise.
1106
1107         * retr.c (set_local_file): New function.
1108
1109 2009-04-11  Steven Schubiger  <stsc@member.fsf.org>
1110
1111         * init.c (initialize): Run a custom SYSTEM_WGETRC when
1112         provided as an environment variable.
1113
1114 2009-02-27  Gisle Vanem  <gvanem@broadpark.no>
1115
1116         * main.c (main): "freopen (NULL,.." causes an assertion in MSVC
1117         debug-mode.  I.e. NULL isn't legal. But the "CONOUT$" device works
1118         fine.
1119
1120 2009-02-27  Steven Schubiger  <stsc@member.fsf.org>
1121
1122         * ftp.c (ftp_loop_internal): Don't claim for FTP retrievals
1123         when writing to standard output either that the document
1124         has been saved. Addresses bug #20520 again.
1125
1126 2009-02-21  Steven Schubiger  <stsc@member.fsf.org>
1127
1128         * http.c (http_loop): When a document is written to
1129         standard output, don't claim it has been saved to a file.
1130         Addresses bug #20520.
1131
1132 2009-02-18  Steven Schubiger  <stsc@members.fsf.org>
1133
1134         * recur.h: Remove the dangling declaration for recursive_cleanup().
1135
1136 2009-02-01  Gerardo E. Gidoni  <gerel@gnu.org>
1137
1138         * main.c, recur.c, recur.h, res.c, retr.c, retr.h: restructured code to
1139         avoid multiple 'url_parse' calls.
1140
1141 2008-11-13  Micah Cowan  <micah@cowan.name>
1142
1143         * http.c (gethttp): Don't do anything when content-length >= our
1144         requested range.
1145
1146 2008-11-27  Saint Xavier  <wget@sxav.eu>
1147
1148         * http.c (gethttp): Move authentication code before filename
1149         allocation avoiding fallbacking on default filename because
1150         "Content-Disposition" header wasn't present before authentcation
1151         has been completed. Fixes bug #24862.
1152
1153 2008-11-16  Steven Schubiger  <stsc@members.fsf.org>
1154
1155         * main.c: Declare and initialize the numurls counter.
1156
1157         * ftp.c, http.c: Make the counter visible here and use it.
1158
1159         * options.h: Remove old declaration from options struct.
1160
1161 2008-11-15  Steven Schubiger  <stsc@members.fsf.org>
1162
1163         * init.c (defaults): Set default waitretry value.
1164
1165 2008-11-14  Steven Schubiger  <stsc@members.fsf.org>
1166
1167         * main.c (format_and_print_line): Use a custom format
1168         string for printing leading spaces.
1169
1170 2008-11-12  Micah Cowan  <micah@cowan.name>
1171
1172         * ftp-ls.c (ftp_index): HTML-escape dir name in title, h1, a:href.
1173
1174 2008-11-12  Alexander Belopolsky  <alexander.belopolsky@gmail.com>
1175
1176         * url.c, url.h (url_escape_unsafe_and_reserved): Added.
1177
1178         * ftp-ls.c (ftp_index): URL-escape, rather than HTML-escape, the
1179         filename appearing in the link.
1180
1181 2008-11-12  Steven Schubiger  <stsc@members.fsf.org>
1182
1183         * main.c (print_version): Hand the relevant
1184         xstrdup/xfree calls back to format_and_print_line().
1185
1186 2008-11-11  Steven Schubiger  <stsc@members.fsf.org>
1187
1188         * main.c (format_and_print_line): Move both the memory
1189         allocating and freeing bits upwards to print_version().
1190
1191 2008-11-10  Saint Xavier  <wget@sxav.eu>
1192
1193         * http.c: Make --auth-no-challenge works with user:pass@ in URLs.
1194
1195 2008-11-05  Micah Cowan  <micah@cowan.name>
1196
1197         * ftp.c (print_length): Should print humanized "size remaining"
1198         only when it's at least 1k.
1199
1200 2008-10-31  Micah Cowan  <micah@cowan.name>
1201
1202         * main.c (print_version): Add information about the mailing list.
1203
1204 2008-10-31  Alexander Drozdov  <dzal_mail@mtu-net.ru>
1205
1206         * retr.c (fd_read_hunk): Make assert deal with maxsize == 0.
1207
1208         * ftp-ls.c (clean_line): Prevent underflow on empty lines.
1209
1210 2008-10-26  Gisle Vanem  <gvanem@broadpark.no>
1211
1212         * main.c (format_and_print_line): Put variables on top of
1213         blocks (not all compilers are C99). Add an extra '\n' if
1214         SYSTEM_WGETRC isn't defined and printed.
1215
1216 2008-09-09  Gisle Vanem  <gvanem@broadpark.no>
1217
1218         * url.c (url_error): Use aprintf, not asprintf.
1219
1220 2008-09-09  Micah Cowan  <micah@cowan.name>
1221
1222         * init.c (home_dir): Save the calculated value for home,
1223         to avoid duplicated work on repeated calls.
1224         (wgetrc_file_name) [WINDOWS]: Define and initialize home var.
1225
1226         * build_info.c, main.c: Remove unnecessary extern vars
1227         system_wgetrc and locale_dir.
1228
1229         * main.c: Define program_name for lib/error.c.
1230
1231 2008-09-02  Gisle Vanem  <gvanem@broadpark.no>
1232
1233         * mswindows.h: Must ensure <stdio.h> is included before
1234         we redefine ?vsnprintf().
1235
1236 2008-08-08  Steven Schubiger  <stsc@members.fsf.org>
1237
1238         * main.c, utils.h: Removed some dead conditional DEBUG_MALLOC code.
1239
1240 2008-08-03  Micah Cowan  <micah@cowan.name>
1241
1242         * main.c (print_help): Added --default-page.
1243
1244 2008-08-01  Joao Ferreira  <joao@joaoff.com>
1245
1246         * init.c, main.c, options.h, url.c: Added option --default-page
1247         to support alternative default names for index.html
1248
1249 2008-08-03  Micah Cowan  <micah@cowan.name>
1250
1251         * build_info.c, css-url.c: #include wget.h, not config.h.
1252
1253 2008-08-03  Steven Schubiger  <stsc@members.fsf.org>
1254
1255         * url.c, url.h (url_error): Better messages for unsupported
1256         schemes, especially https.
1257
1258         * html-url.c, recur.c, retr.c: Adjust to new url_error
1259         invocation, and free result.
1260
1261 2008-07-17  Steven Schubiger  <stsc@members.fsf.org>
1262
1263         * retr.c (retrieve_from_file): When given an URL as input file,
1264         use it as baseref if none was specified and treat the input file
1265         as HTML if its content type is text/html.
1266
1267         * init.c (cleanup): Free the memory associated with the base
1268         option (when DEBUG_MALLOC is defined).
1269
1270 2008-07-02  Xavier Saint  <wget@sxav.eu>
1271
1272         * iri.c, iri.h  : New function idn_decode() to decode ASCII
1273         encoded hostname to the locale.
1274
1275         * host.c : Show hostname to be resolved both in locale and
1276         ASCII encoded.
1277
1278 2008-06-28  Steven Schubiger  <stsc@members.fsf.org>
1279
1280         * retr.c (retrieve_from_file): Allow for reading the links from
1281         an external file (HTTP/FTP).
1282
1283 2008-06-26  Xavier Saint  <wget@sxav.eu>
1284
1285         * iri.c, iri.h : New functions locale_to_utf8() and
1286         idn_encode() adding basic capabilities of IRI/IDN.
1287
1288         * url.c : Convert URLs from locale to UTF-8 allowing a basic
1289         support of IRI/IDN
1290
1291 2008-06-25  Steven Schubiger  <stsc@members.fsf.org>
1292
1293         * ftp.c (getftp): When spidering a FTP URL, emit a diagnostic
1294         message if the remote file exists.
1295
1296 2008-06-24  Steven Schubiger  <stsc@members.fsf.org>
1297
1298         * http.c (http_loop): Replace escnonprint() occurence with
1299         a quotearg_style() call.
1300
1301 2008-06-24  Micah Cowan  <micah@cowan.name>
1302
1303         * ftp-ls.c (ftp_index): Don't assume time_t* is compatible with
1304         long*. Fixes crash on Windows, and probably other systems.
1305
1306 2008-06-22  Steven Schubiger  <stsc@members.fsf.org>
1307
1308         * http.c: Explicitly initialize and deallocate the message
1309         string used by the -nv --spider functionality.
1310
1311 2008-06-22  Steven Schubiger  <schubiger@gmail.com>
1312
1313         * http.c: Make -nv --spider include the file's name when it
1314         exists.
1315
1316 2008-06-22  Micah Cowan  <micah@cowan.name>
1317
1318         * Makefile.am (version.c): Fixed version string invocation so it
1319         once again can't result in unterminated strings, made all the
1320         string vars pointers-to-const, and moved line lengths
1321         below 80 (in Makefile.am, not in version.c).
1322
1323 2008-06-19  Xavier Saint  <wget@sxav.eu>
1324
1325         * iri.c, iri.h : New function check_encoding_name() as
1326         a preliminary encoding name check.
1327
1328         * main.c, iri.c : Make use of check_encoding_name().
1329
1330 2008-06-19  Xavier Saint  <wget@sxav.eu>
1331
1332         * iri.c : Include missing stringprep.h file and add a
1333         cast.
1334
1335         * init.c : set a default initial value for opt.enable_iri,
1336         opt.locale and opt.encoding_remote.
1337
1338 2008-06-19  Xavier Saint  <wget@sxav.eu>
1339
1340         * iri.c, iri.h : Add a new function find_locale() to find
1341         out the local system encoding.
1342
1343         * main.c : Make use of find_locale().
1344
1345 2008-06-19  Xavier Saint  <wget@sxav.eu>
1346
1347         * html-url.c : Add "content-type" meta tag parsing for
1348         retrieving page encoding.
1349
1350         * iri.h : Make no-op version of parse_charset() return
1351         NULL.
1352
1353 2008-06-16  Micah Cowan  <micah@cowan.name>
1354
1355         * http.c (http_loop): When hstat.len is higher than the
1356         successfully completed content's length, but it's because we
1357         _set_ it that way, don't abort.
1358
1359 2008-06-14  Xavier Saint  <wget@sxav.eu>
1360
1361         * iri.c, iri.h : New files.
1362
1363         * Makefile.am : Add files iri.h and conditional iri.c.
1364
1365         * build_info.c : Add compiled feature "iri".
1366
1367         * http.c : include iri.h and parse charset from Content-Type
1368         header.
1369
1370         * init.c, main.c, options.h : if an options isn't supported
1371         at compiled time, don't get rid off it and show a dummy
1372         message instead if they are used.
1373
1374 2008-06-13  Micah Cowan  <micah@cowan.name>
1375
1376         * build_info.c: ENABLE_NTLM, not HAVE_NTLM; distinguish OpenSSL
1377         from "ssl".
1378
1379 2008-06-13  Madhusudan Hosaagrahara <com.gmail.hrmadhu>
1380
1381         * Makefile.am, main.c, init.c, init.h, build_info.c: Adds build
1382         information to the --version command line option. Fixes bug
1383         #20636.
1384
1385 2008-06-01  Micah Cowan  <micah@cowan.name>
1386
1387         * main.c [WINDOWS]: Reopen stdout in binary mode, when -O - is
1388         given.
1389
1390 2008-05-31 Micah Cowan  <micah@cowan.name>
1391
1392         * html-url.c, http.c: Avoid casts in a couple spots.
1393
1394 2008-05-30 Henri Häkkinen  <henux@users.sourceforge.net>
1395
1396         * cookies.c, ftp-basic.c, hash.c, html-url.c, http-ntlm.c, http.c,
1397         init.c, log.c, main.c, progress.c, ptimer.c, spider.c, url.c,
1398         utils.c: Minor changes to silence warnings when using -Wall.
1399
1400 2008-05-26  Steven Schubiger  <schubiger@gmail.com>
1401
1402         * ftp.c (getftp): Replace last remaining invocation of escnonprint
1403         with gnulib quote.
1404
1405 2008-05-19  Micah Cowan  <micah@cowan.name>
1406
1407         * main.c (main): Password prompt should be done only once (not
1408         once per argument), and should be done prior to the background
1409         fork.
1410
1411 2008-05-17  Steven Schubiger  <schubiger@gmail.com>
1412
1413         * init.c (defaults): Set the preferred IP family to `none' by
1414         default.
1415
1416 2008-05-17  Kenny Parnell  <k.parnell@gmail.com>
1417
1418         (cmd_spec_prefer_family): Initialize prefer_family to prefer_none.
1419
1420 2008-05-17  Micah Cowan  <micah@cowan.name>
1421
1422         * main.c (main): Handle Ctrl-D on command-line.
1423
1424 2008-05-15  Steven Schubiger  <schubiger@gmail.com>
1425
1426         * ftp.c (getftp): Verify that the file actually exists in FTP, by
1427         checking it against the listing.
1428
1429 2008-05-15  Micah Cowan  <micah@cowan.name>
1430
1431         * main.c (prompt_for_password): Use the quote module.
1432
1433 2008-05-14  Micah Cowan  <micah@cowan.name>
1434
1435         * ftp.c (ftp_retrieve_list): Symlinks and other filenames
1436         should be fully quoted.
1437
1438 2008-05-12  Micah Cowan  <micah@cowan.name>
1439
1440         * main.c (main): Downgrade "-N with -O" to a warning, and switch
1441         it off to avoid confusing messages.
1442
1443 2008-04-30  Micah Cowan  <micah@cowan.name>
1444
1445         * progress.c (create_image): Fix glitch where too many spaces are
1446         printed on lines that don't display the ETA, in multibyte
1447         locales.
1448
1449 2008-04-30  Steven Schubiger  <stsc@members.fsf.org>
1450
1451         * main.c (main): New code that handles prompting for passwords
1452         when specified explicitly via command-line option (using gnulib's
1453         getpass-gnu module).
1454         (main): Include the getpass header.
1455
1456         * init.c: Add "ask-password" to the list of recognized commands.
1457
1458         * options.h: Add an according boolean member to the options
1459         struct.
1460
1461         * sysdep.h: Comment the defines __EXTENSIONS__ and _GNU_SOURCE
1462         out, because they're now defined independently by config.h.
1463
1464 2008-04-27  Rabin Vincent  <rabin@rab.in>
1465
1466         * http.c (http_loop): Fix return for the case where we don't
1467         download a file because of -nc.
1468
1469 2008-04-27  Micah Cowan  <micah@cowan.name>
1470
1471         * url.c (path_simplify): Go back to allowing leading ".." in
1472         paths, but only for FTP URLs.
1473         (test_path_simplify): Add scheme-specificness to tests, adapt for
1474         mu_run_test.
1475
1476         * test.c (all_tests): Add test_path_simplify.
1477
1478         * main.c (main): Downgrade -r, -p with -O to a warning rather than
1479         an error; elaborate just a bit more for other -O combination
1480         cases.
1481
1482 2008-04-26  Micah Cowan  <micah@cowan.name>
1483
1484         * http.c (gethttp): Move proxy CONNECT handling to below the
1485         retry_with_auth label, to deal with properly reconnecting to
1486         proxies when we need to authenticate.
1487
1488 2008-04-25  Micah Cowan  <micah@cowan.name>
1489
1490         * Makefile.am: -I foo -> -Ifoo.
1491
1492 2008-04-24  Micah Cowan  <micah@cowan.name>
1493
1494         * main.c: Revised usage description of --convert-links to apply
1495         to CSS as well as to HTML.
1496
1497 2008-04-23  Micah Cowan  <micah@cowan.name>
1498
1499         * utils.c (test_dir_matches_p): Added a test for the case
1500         described in issue #20518.
1501
1502 2008-04-22  Micah Cowan  <micah@cowan.name>
1503
1504         * Makefile.am, css.lex, css.l: Renamed css.lex to css.l.
1505         * recur.c (retrieve_tree): Fix typo to allow text/css files to
1506         be parsed.
1507
1508 2008-04-22  Ted Mielczarek  <ted.mielczarek@gmail.com>
1509
1510         * css.lex, css-url.c, css-url.h: Added to implement support for
1511         parsing CSS in Wget.
1512         * convert.c: Convert links in CSS files, too.
1513         * convert.h (convert_options): Added for options link_css_p,
1514         link_expect_css.
1515         * convert.h: Added prototype for new register_css function.
1516         * html-parse.c: Added support for parsing element content, in
1517         addition to tag starts and ends.
1518         * html-parse.h (taginfo): Added delimiter fields for element
1519         content.
1520         * html-url.h: Added.
1521         * html-url.c (append_url): No longer internal-linkage only. Now
1522         takes position and size as explicit parameters.
1523         * html-url.c: Use new html-url.h header, add support for
1524         handling of "style" HTML attributes. Mark URIs obtained from
1525         link tags with rel="stylesheet" with link_expect_css. Adapt
1526         uses of append_url to supply the newly-added parameters for
1527         position and size.
1528         * http.c: Add detection for when the content-type is text/css;
1529         and ensure that such files have the ".css" filename extension,
1530         when --convert-links is active.
1531         * recur.h: Remove declarations for functions found in
1532         html-url.c (moved to html-url.h).
1533         * recur.c: Add support for culling links from CSS files, too,
1534         and tracking for when we're expecting the file to be CSS (even
1535         when its content type isn't text/css).
1536         * retr.c (retrieve_url): Add registration of CSS files.
1537         * wget.h: Added TEXTCSS to dt flags enum.
1538         * Makefile.am: Added css.lex, css-url.c, css-url.h, html-url.h
1539         to wget_SOURCES.
1540
1541 2008-04-22  Jim Paris  <jim@jtan.com>
1542
1543         * openssl.c (ssl_init): Enable combined certificate/key in
1544         single file (apparent regression from ~1.9). Resolves issue
1545         #22767.
1546
1547 2008-04-22  Steven Schubiger  <schubiger@gmail.com>
1548
1549         * http.c (print_response_line): Changed to make responses always
1550         be logged, even in --quiet mode, if --server-response was
1551         specified. This is to bring http.c's handling of the situation
1552         in line with ftp.c's.
1553
1554 2008-04-22  Pranab Shenoy  <pranab.loosinit.shenoy@gmail.com>
1555
1556         * init.c: Added test_commands_sorted unit test to check is
1557         commands are sorted.  Fixes bug #21245.
1558
1559         * test.c: Added test_commands_sorted to the test suite.
1560
1561 2008-04-22  Rabin Vincent  <rabin@rab.in>
1562
1563         * ftp.c (ftp_get_listing): Only remove .listing if it has been
1564         created.
1565
1566 2008-04-22  Alain Guibert  <alguibert+bts@free.fr>
1567
1568         * test.h (mu_run_test): Move declaration before statements, for
1569         C90 conformance. Fixes bug #22789.
1570
1571 2008-04-22  Mike Frysinger  <vapier@gentoo.org>
1572
1573         * Makefile.am: Move @LIBS@ after other libraries, for better
1574         static-linking support. Fixes bug #22143.
1575
1576 2008-04-16  Steven Schubiger  <schubiger@gmail.com>
1577
1578         * ftp.c: Use Gnulib's quote function for printing filenames and
1579         such.
1580         * connect.c: Likewise.
1581         * convert.c: Likewise.
1582         * cookies.c: Likewise.
1583         * ftp-opie.c: Likewise.
1584         * gnutls.c: Likewise.
1585         * init.c: Likewise.
1586         * log.c: Likewise.
1587         * mswindows.c: Likewise.
1588         * openssl.c: Likewise.
1589         * progress.c: Likewise.
1590         * recur.c: Likewise.
1591         * res.c: Likewise.
1592         * utils.c: Likewise.
1593
1594 2008-04-16  Steven Schubiger  <schubiger@gmail.com>
1595
1596         * sysdep.h: Comment the defines __EXTENSIONS__ and _GNU_SOURCE
1597         out, because they're now defined independently by config.h.
1598
1599 2008-04-14  Steven Schubiger  <schubiger@gmail.com>
1600
1601         * http.c: Use Gnulib's quote function for printing filenames and
1602         such.
1603         * wget.h: #include "quote.h".
1604
1605 2008-04-12  Rabin Vincent  <rabin@rab.in>
1606
1607         * mswindows.c (fake_fork_child): Don't create a logfile for
1608         --background when --quiet is used, but not --server-response.
1609         Fixes bug #20917.
1610
1611         * utils.c (fork_to_background): Likewise.
1612
1613 2008-04-12  Micah Cowan  <micah@cowan.name>
1614
1615         * utils.c (aprintf): Minor formatting changes to Alex's code (80-
1616         column limit, concatenated string literals, avoiding nesting
1617         levels), and removed invocation of free (since we're aborting
1618         anyway).
1619
1620 2008-04-11  Alexander Dergachev  <cy6erbr4in@gmail.com>
1621
1622         * utils.c (aprintf): Now we are setting limits (1 Mb) for text
1623         buffer when we use non-C99 vsnprintf.
1624
1625 2008-04-11  Micah Cowan  <micah@cowan.name>
1626
1627         * ftp.c (getftp, ftp_loop_internal): Don't append to an existing
1628         .listing when --continue is used.  Fixes bug #22825. Thanks to
1629         Rabin Vincent <rabin@rab.in> for pointing the way with a
1630         suggested fix!
1631
1632 2008-04-10  Alexander Dergachev  <cy6erbr4in@gmail.com>
1633
1634         * xmalloc.c, xmalloc.h (memfatal): Now exported; accepts an
1635         "unknown" value for the attempted allocation size.
1636         * utils.c (aprintf): Now calls memfatal, instead of aborting.
1637
1638 2008-03-19  Micah Cowan  <micah@cowan.name>
1639
1640         * utils.c (test_dir_matches_p): More tests related for
1641         dir_matches_p.
1642
1643 2008-03-17  Micah Cowan  <micah@cowan.name>
1644
1645         * connect.c: Include sys/time.h to support use of the select
1646         function on older systems.
1647
1648 2008-02-11  Benno Schulenberg  <bensberg@justemail.net>
1649
1650         * http.c: More accurate and descriptive messages for when a file
1651         won't be retrieved during spider-mode.
1652
1653 2008-02-10  Micah Cowan  <micah@cowan.name>
1654
1655         * http.c: Added existence_checked member to the http_stat
1656         struct.
1657         (gethttp): Mark hs->existence_checked when we've checked whether
1658         a file-to-download exists; so we don't check it again if the
1659         connection gets lost (and potentially pick a new "unique" name).
1660         This fixes bug 22251.
1661         * progress.c (create_image): Add space for an extra column in
1662         the "eta" portion of the progress bar image; to deal with
1663         too-long Czech translation.
1664         * main.c, http.c, init.c: Added --auth-no-challenge option, to
1665         bring back 1.10.2 unsafe auth behavior when needed. This fixes
1666         bug #22242.
1667
1668 2008-02-07  Micah Cowan  <micah@cowan.name>
1669
1670         * progress.c (create_image): Remove assertion on exceeding
1671         screen width, which given the less-than-robust code there, can
1672         be broken by a number of factors (such as large file downloads).
1673
1674 2008-02-06  Micah Cowan  <micah@cowan.name>
1675
1676         * progress.c (countcols): Use strlen() when mbtowc or wcwidth
1677         not available (or not using NLS).
1678         * utils.c: Ensure we use single-byte separators when not doing
1679         NLS progress-bars.
1680         * wget.h: Determine whether to use NLS for progress-bars, based
1681         on whether wcwidth and mbtowc are available.
1682
1683 2008-02-03  Micah Cowan  <micah@cowan.name>
1684
1685         * progress.c (create_image): Use number of characters/columns
1686         consumed, rather than number of bytes, to determine how much of
1687         a line we've used. Fixes assertion errors and field alignment
1688         bugs (#22161, #20481)
1689         (get_eta, count_cols): Added to support the changes for
1690         create_image.
1691         * http.c (http_loop): Put no-clobber logic back into http_loop,
1692         before starting to fetch, for when we're not doing
1693         content-disposition.
1694
1695 2008-01-31  Micah Cowan  <micah@cowan.name>
1696
1697         * http.c (gethttp): Don't derive hs->contlen from possibly
1698         invalid/missing Content-Length; instead, get the appropriate
1699         value from the Content-Range header values.
1700         (parse_content_range): Handle '*' instance-length field.
1701
1702 2008-01-25  Micah Cowan  <micah@cowan.name>
1703
1704         * main.c: Added notes to translators regarding (C), diacritics
1705         in names.
1706         * Makefile.am, cmpt.c, connect.c, connect.h, convert.c,
1707         cookies.c, cookies.h, ftp-basic.c, ftp-ls.c, ftp-opie.c, ftp.c,
1708         ftp.h, gen-md5.c, gen-md5.h, gnutls.c, hash.c, hash.h, host.c,
1709         host.h, html-parse.c, html-parse.h, html-url.c, http-ntlm.c,
1710         http-ntlm.h, http.c, http.h, init.c, init.h, log.c, log.h,
1711         main.c, mswindows.c, mswindows.h, netrc.c, netrc.h, openssl.c,
1712         options.h, progress.c, progress.h, ptimer.c, ptimer.h, recur.c,
1713         recur.h, res.c, res.h, retr.c, retr.h, spider.c, spider.h,
1714         ssl.h, sysdep.h, test.c, test.h, url.c, url.h, utils.c,
1715         utils.h, wget.h, xmalloc.c, xmalloc.h: Updated copyright year.
1716
1717 2007-12-10  Micah Cowan  <micah@cowan.name>
1718
1719         * main.c: The option is --content-disposition, not
1720         --no-content-disposition (at the moment).
1721
1722 2007-12-08  Hrvoje Niksic  <hniksic@xemacs.org>
1723
1724         * ftp.c (ftp_retrieve_glob): Print both arguments of fnmatch in
1725         fnmatch error message.
1726         (ftp_retrieve_glob): Don't match with fnmatch if we're only
1727         supposed to get one file.
1728
1729 2007-12-07  Micah Cowan  <micah@cowan.name>
1730
1731         * Makefile.am: Plug in vars to include stuff from
1732         $(top_srcdir)/md5 when appropriate.
1733
1734 2007-12-05  Micah Cowan  <micah@cowan.name>
1735
1736         * utils.c (subdir_p): Handle the case where d1 is "".
1737         * convert.c (convert_all_links): Don't return without
1738         deallocating timer.
1739
1740 2007-11-28  Micah Cowan  <micah@cowan.name>
1741
1742         * Makefile.am, cmpt.c, connect.c, connect.h, convert.c,
1743         convert.h, cookies.c, cookies.h, ftp-basic.c, ftp-ls.c,
1744         ftp-opie.c, ftp.c, ftp.h, gen-md5.c, gen-md5.h, gnutls.c,
1745         hash.c, hash.h, host.c, host.h, html-parse.c, html-parse.h,
1746         html-url.c, http-ntlm.c, http-ntlm.h, http.c, http.h, init.c,
1747         init.h, log.c, log.h, main.c, mswindows.c, mswindows.h,
1748         netrc.c, netrc.h, openssl.c, options.h, progress.c, progress.h,
1749         ptimer.c, ptimer.h, recur.c, recur.h, res.c, res.h, retr.c,
1750         retr.h, safe-ctype.c, safe-ctype.h, spider.c, spider.h, ssl.h,
1751         sysdep.h, test.c, test.h, url.c, url.h, utils.c, utils.h,
1752         wget.h, xmalloc.c, xmalloc.h: Updated license exception for
1753         OpenSSL, per the SFLC.
1754
1755 2007-10-30  Micah Cowan  <micah@cowan.name>
1756
1757         * main.c (main): Declare argv parameter as char **argv, rather
1758         than char *const *argv. This fixes usage of getopt_long,
1759         regardless of whether getopt_long has a constified argv or not.
1760
1761 2007-10-22  Gisle Vanem  <gvanem@broadpark.no>
1762
1763         * mswindows.c: Move INHIBIT_WRAP macro definition up with wget.h
1764         inclusion.
1765
1766 2007-10-18  Steven Schweda  <sms@antinode.org>
1767
1768         * sysdep.h: #include <stdint.h> as well as <inttypes.h>, to work
1769         around a glitch on Tru64 systems.
1770
1771 2007-10-18  Micah Cowan  <micah@cowan.name>
1772
1773         * Makefile.am: version.c should not be distributed. Removed
1774         config-post.h. Add version.c dependency and gnulib include path
1775         for libunittest.a.
1776         * sysdep.h: Got contents of config-post.h
1777         * config-post.h: Removed.
1778         * wget.h: #include "config.h".
1779         * alloca.c, cmpt.c, connect.c, convert.c, cookies.c,
1780         ftp-basic.c, ftp-ls.c, ftp-opie.c, ftp.c, gen-md5.c, gnutls.c,
1781         hash.c, host.c, html-parse.c, html-url.c, http-ntlm.c, http.c,
1782         init.c, log.c, main.c, mswindows.c, netrc.c, openssl.c,
1783         progress.c, ptimer.c, recur.c, res.c, retr.c, spider.c, url.c,
1784         utils.c, xmalloc.c: Use wget.h at very top, and instead of
1785         config.h.
1786
1787 2007-10-15  Micah Cowan  <micah@cowan.name>
1788
1789         * Makefile.am: Remove intermediary hg-id file generation, make
1790         version.c-generation more portable.
1791
1792 2007-10-14  Micah Cowan  <micah@cowan.name>
1793
1794         * cmpt.c, cookies.c, ftp-basic.c, ftp-ls.c, ftp.c, hash.c,
1795         host.c, html-parse.c, html-url.c, http-ntlm.c, http.c, init.c,
1796         log.c, main.c, netrc.c, openssl.c, res.c, url.c, utils.c,
1797         wget.h: Replace uses of ISSPACE, etc with c_isspace, etc.
1798         * gnu-md5.c, gnu-md5.h: Removed, in deference to gnulib.
1799         * Makefile.am: Removed gnu-md5.h from wget_SOURCES.
1800         * gen-md5.c: Changed #inclusion of gnu-md5.h to md5.h (gnulib's).
1801         * recur.c (download_child_p): Print error if unlink of
1802         robots.txt fails.
1803         * main.c (main): --spider or --delete-after now implies
1804         --no-directories (thanks, Josh Williams).
1805
1806 2007-10-14  Joshua David Williams  <yurimxpxman@gmail.com>
1807
1808         * recur.c (download_child_p): Remove robots.txt if
1809         --delete-after or --spider is on.
1810
1811 2007-10-13  Micah Cowan  <micah@cowan.name>
1812
1813         * Makefile.am: Make version.c depend on Wget dependencies (source
1814         files, plus such things as LIBOBJS so we get things like
1815         http-ntlm.c). Removed getopt.[ch], as we're now using gnulib for
1816         these.
1817
1818 2007-10-10  Micah Cowan  <micah@cowan.name>
1819
1820         * http-ntlm.c: Include openssl/opensslv.h explicitly, instead of
1821         hoping it'll be included by accident in openssl/des.h.
1822
1823 2007-10-09  Gisle Vanem  <gvanem@broadpark.no>
1824
1825         * mswindows.c: 'argc' and 'argv' in 'windows_main()' are no longer
1826         needed.  Hence simply the prototype. Free 'exec_name' at exit.
1827
1828 2007-10-09  Micah Cowan  <micah@cowan.name>
1829
1830         * gettext.h: Imported from /usr/share/gettext, fuller handling
1831         of --disable-nls.
1832         * wget.h: Remove logic for handling lack of NLS (now in
1833         gettext.h).
1834         * main.c: Use gettext's ENABLE_NLS rather than HAVE_NLS.
1835         * Makefile.am: added @LIBINTL@ to LIBS (though it probably
1836         belongs in LDADD, along with everything else currently assigned
1837         to LIBS).
1838
1839 2007-10-08  Micah Cowan  <micah@cowan.name>
1840
1841         * http.c (http_loop): Add send_head_first conditional back
1842         around code that needs it, but not around the last-modified
1843         header-parsing stuff this time. Removed no-longer-useful (was it
1844         ever?) restart_loop boolean, continuing unconditionally at end
1845         of send_head_first conditional block (if we haven't jumped out).
1846
1847 2007-10-04  Micah Cowan  <micah@cowan.name>
1848
1849         * http.c (http_loop): We've got_name if content_disposition
1850         support isn't on; make sure we continue properly in that case,
1851         even though we're not sending HEAD.
1852         * Makefile.in: Removed, replaced by Makefile.am.
1853         * Makefile.am: Converted from Makefile.in.
1854
1855 2007-10-02  Gisle Vanem  <gvanem@broadpark.no>
1856
1857         * ftp.c: Use "_listing" for MSDOS (".listing" is illegal).
1858
1859         * url.c: Update comment for 'filechr_not_windows'.
1860
1861         * utils.c: Include <process.h> for 'getpid()' on Watcom.
1862
1863 2007-10-02  Micah Cowan  <micah@cowan.name>
1864
1865         * ftp.c (getftp, ftp_loop_internal), http.c (http_loop), main
1866         (main): Use datetime_str instead of time_str, for those who have
1867         potentially long-running sessions. Based on suggestions by Saso
1868         Tomat <miskox@hotmail.com> and Steven M. Schweda
1869         <sms@antinode.org>.
1870         * http.c (gethttp): Warn about host lookup failures. Adjusted
1871         from Stephen Gildea's patch.
1872
1873 2007-10-02  Stephen Gildea  <stepheng+wget@gildea.com>
1874
1875         * connect.c (connect_to_host): Warn about host lookup failures.
1876
1877 2007-09-25  Micah Cowan  <micah@cowan.name>
1878
1879         * Makefile.in: Use EXEEXT instead of exeext.
1880
1881 2007-09-24  Gisle Vanem  <giva@bgnett.no>
1882
1883         * connect.c, init.c, main.c, openssl.c, options.h, sysdep.h,
1884         url.c, utils.c: Added support for building on MS-DOS.
1885
1886 2007-09-24  Jochen Roderburg  <roderburg@uni-koeln.de>
1887
1888         * http.c (http_zero): Remove no-longer-used local_size variable.
1889         Fixes bug #21057.
1890
1891 2007-09-12  Micah Cowan  <micah@cowan.name>
1892
1893         * http.c (http_loop): Remove send_head_first from condition for
1894         parsing timestamp.
1895
1896 2007-08-29  Micah Cowan  <micah@cowan.name>
1897
1898         * openssl.c (ssl_init): Re un-const-ified the meth local
1899         variable, to match current versions of openssl.
1900         * spider.c: Removed visited_url function, as it may be very
1901         inefficient.
1902         (print_broken_links): Removed traversal of referrers, until such
1903         time as a more efficient implementation can be written.
1904         * spider.h: Replaced declaration of visited_url with an
1905         empty-bodied, function-like macro.
1906
1907 2007-08-27  Gisle Vanem  <giva@bgnett.no>
1908
1909         * mswindows.c (run_with_timeout): Ensure that the correct
1910         conversion specification is used for the return result of
1911         the GetLastError function.
1912         * getopt.c: Fix missing (but, accidentally, legal) comment
1913         delimiter after licensing text.
1914         * recur.c (retrieve_tree): Inserted missing cast for strip_auth.
1915         Includes adjustment by Ralf Wildenhues.
1916         * openssl.c (ssl_init): const-ified the meth local variable.
1917         * main.c: Include all the static function definitions in the
1918         "#ifndef TESTING" clause, leaving just the definitions for
1919         exec_name (not set), and opt.
1920         * utils.c (run_with_timeout): Now returns bool, to align with
1921         declaration in utils.h.
1922
1923 2007-08-27  Micah Cowan  <micah@cowan.name>
1924
1925         * wget.h: Added macro replacement for ngettext, for environs
1926         that lack NLS.
1927
1928 2007-08-26  Micah Cowan  <micah@cowan.name>
1929
1930         * spider.c (print_broken_links): Fixed incorrect plurals msgid
1931         usage, switched to use ngettext function.
1932
1933 2007-08-24  Micah Cowan  <micah@cowan.name>
1934
1935         * http.c (http_loop): Introduced time_came_from_head boolean
1936         flag, to help avoid parsing the same Last-Modified header twice.
1937         Replaced spidering returns of RETRUNNEEDED for some situations,
1938         to RETROK, as otherwise it will be interpreted as an error.
1939         RETRUNNEEDED appears never to be referenced outside of
1940         http.c (and wget.h), and, when returned by gethttp, is
1941         translated by http_loop to RETROK.
1942         * url.c (are_urls_equal): Don't call getchar_from_escaped_string
1943         if u2 is shorter than u1.
1944         (getchar_from_escaped_string): Don't decode reserved characters.
1945         Handle illegally appearing '%'s as literal '%'s. Ensure hex
1946         digits before attempting to decode.
1947         (test_are_urls_equal): Added tests to handle u2 shorter than u1,
1948         and %2f not treated the same as /.
1949         * spider.c (in_url_list_p): Don't call are_urls_equal if one of
1950         them is NULL.
1951
1952 2007-08-23  Joshua David Williams  <yurimxpxman@gmail.com>
1953
1954         * spider.c (in_url_list_p): Removed the bool verbose argument
1955
1956 2007-08-22  Mauro Tortonesi  <mauro@ferrara.linux.it>
1957
1958         * http.c (http_loop): Fall back to GET if HEAD fails with a 500 or 501
1959         error code.
1960
1961 2007-08-21  Mauro Tortonesi  <mauro@ferrara.linux.it>
1962
1963         * http.c (http_loop): Send preliminary HEAD request if -N is given and
1964         the destination file exists already.
1965
1966 2007-08-10  Mauro Tortonesi  <mauro@ferrara.linux.it>
1967
1968         * http.c (http_loop): Fixed HTTP HEAD requests logic when --spider is
1969         given.
1970
1971 2007-08-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1972
1973         * url.c (append_uri_pathel): Do not assume dest string to be
1974         zero-terminated.
1975         (test_append_uri_pathel): Terminate string to fix test failure.
1976
1977 2007-08-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1978
1979         * url.c (url_string): Use comparison, not assignment, in
1980         check for auth_mode == URL_AUTH_HIDE_PASSWD.
1981
1982 2007-08-09  Micah Cowan  <micah@cowan.name>
1983
1984         * http.c (http_loop): If we got a HEAD and then a GET, and the
1985         GET had a timestamp, use that one, not any we may have gotten
1986         from the HEAD.
1987
1988 2007-08-08  Micah Cowan  <micah@cowan.name>
1989
1990         * init.c (defaults): Content disposition will not be default,
1991         since it currently results in extra round-trips.
1992
1993 2007-07-31  Micah Cowan  <micah@cowan.name>
1994
1995         * http.c (gethttp): Set contlen = -1 when we encounter a
1996         negative-valued Content-Length header, so we don't consider it
1997         an internal error later on and call abort().
1998
1999 2007-07-29  Micah Cowan  <micah@cowan.name>
2000
2001         * url.h, url.c (url_string): Replaced bool arg of the url_string
2002         function with enum url_auth_mode, with added option to
2003         completely remove user/pass auth information.
2004         * http.c, ftp.c, url.c, recur.c: Adapted call to url_string
2005         function to fit new usage.
2006         * recur.c (retrieve_tree): Remove auth info from Referer header.
2007
2008 2007-07-28  Micah Cowan  <micah@cowan.name>
2009
2010         * options.h, init.c, retr.c, main.c: renamed opt maxredirect
2011         field to max_redirect, for improved consistency.
2012         * init.c: changed max_redirect parser from cmd_number_inf to
2013         cmd_number, as infinite redirects may not be appropriate.
2014         Alternatively, if cmd_number_inf should be used, then
2015         opt.max_redirect's value should be checked a bit differently in
2016         retr.c, to allow for the "infinite" meaning of zero.
2017
2018 2007-07-25  Micah Cowan  <micah@cowan.name>
2019
2020         * http.c (create_authorization_line)
2021         (basic_authentication_encode, known_authentication_scheme_p)
2022         (load_cookies): Moved declarations up.
2023         (basic_authed_hosts): Added. Tracks what hosts have issued Basic
2024         challenge and been given the global username, password.
2025         (maybe_send_basic_creds): Added. Sends Basic creds for hosts that
2026         have issued Basic challenges.
2027         (register_basic_auth_host): Added. Instantiates
2028         basic_authed_hosts if necessary, then registers the host that
2029         has issued a challenge.
2030         (gethttp) <auth>: Only send authentication credentials after
2031         we've received a challenge from that host. This is a stop-gap
2032         fix until a proper fix can be implemented; still isn't quite
2033         right, as we should only be sending credentials automatically
2034         for authenticated paths and below, and not for the entire host.
2035
2036 2007-07-16  Joshua David Williams  <yurimxpxman@gmail.com>
2037
2038         * options.h: added maxredirect to options struct
2039         * init.c: added maxredirect to list of variables
2040         * retr.c (retrieve_url): replaced MAX_REDIRECTIONS with opt.maxredirect
2041         * main.c: added option --max-redirect
2042
2043 2007-07-16  Joshua David Williams  <yurimxpxman@gmail.com>
2044
2045         * test.h: tests made more verbose; now displays the name
2046         of each test run.
2047
2048 2007-07-10  Mauro Tortonesi  <mauro@ferrara.linux.it>
2049
2050         * http.c (http_loop): Fixed the HTTP requests logic. Now it skips the
2051         preliminary HEAD request if either -O or --no-content-disposition are
2052         given, and neither --spider and -N are given.
2053
2054 2007-07-05  Micah Cowan  <micah@cowan.name>
2055
2056         * cmpt.c, connect.c, connect.h, convert.c, convert.h:
2057         * cookies.c, cookies.h, ftp-basic.c, ftp.c, ftp.h, ftp-ls.c:
2058         * ftp-opie.c, gen-md5.c, gen-md5.h, getopt.c, getopt.h, gnu-md5.c:
2059         * gnu-md5.h, gnutls.c, hash.c, hash.h, host.c, host.h:
2060         * html-parse.c, html-parse.h, html-url.c, http.c, http.h:
2061         * http-ntlm.c, http-ntlm.h, init.c, init.h, log.c, log.h, main.c:
2062         * Makefile.in, mswindows.c, mswindows.h, netrc.c, netrc.h:
2063         * openssl.c, options.h, progress.c, progress.h, ptimer.c:
2064         * ptimer.h, recur.c, recur.h, res.c, res.h, retr.c, retr.h:
2065         * safe-ctype.c, safe-ctype.h, spider.c, spider.h, ssl.h, sysdep.h:
2066         * test.c, test.h, url.c, url.h, utils.c, utils.h, wget.h:
2067         * xmalloc.c, xmalloc.h:
2068         Updated GPL reference to version 3 or later, removed FSF
2069         address.
2070
2071 2007-07-04  Mauro Tortonesi  <mauro@ferrara.linux.it>
2072
2073         * http.c (http_loop): Skip HEAD request and start immediately with GET
2074         if -O is given.
2075
2076 2007-02-02  Hrvoje Niksic  <hniksic@xemacs.org>
2077
2078         * http.c (print_server_response): Escape non-printable characters
2079         in server respone.
2080
2081 2007-02-02  Hrvoje Niksic  <hniksic@xemacs.org>
2082
2083         * netrc.c: Don't make netrc_list static, as it prevents
2084         compilation with DEBUG_MALLOC.
2085
2086         * utils.c (aprintf): Don't use vasprintf when DEBUG_MALLOC is
2087         requested because, in that case, we want the calls to malloc to be
2088         coming from us.
2089
2090 2007-01-23  Hrvoje Niksic  <hniksic@xemacs.org>
2091
2092         * cookies.c (parse_set_cookie): Would erroneously discard cookies
2093         with unparsable expiry time.
2094
2095 2007-01-23  Hrvoje Niksic  <hniksic@xemacs.org>
2096
2097         * progress.c (create_image): Check for ETA overflow.
2098         (print_row_stats): Ditto.
2099
2100 2007-01-09  Mauro Tortonesi  <mauro@ferrara.linux.it>
2101
2102         * init.c (cmd_spec_prefer_family): Small fix to get rid of a gcc
2103         warning about strict-aliasing violation.
2104
2105 2007-01-09  Steven M. Schweda  <sms@antinode.org>
2106
2107         * ftp-basic.c (ftp_syst): Fixed segfault if response text is missing.
2108
2109 2006-12-29  Gisle Vanem  <giva@bgnett.no>
2110
2111         * mswindows.c: Avoid a warning if 'ws_hangup()' is unused.
2112
2113 2006-12-27  Mauro Tortonesi  <mauro@ferrara.linux.it>
2114
2115         * http.c (parse_content_disposition): Consider directory prefix, if
2116         specified.
2117
2118 2006-11-21  Hrvoje Niksic  <hniksic@xemacs.org>
2119
2120         * retr.c (retrieve_from_file): Ditto.
2121         (url_uses_proxy): New function.
2122
2123         * main.c (main): Don't check for opt.use_proxy when deciding
2124         whether to call retrieve_url or retrieve_tree; check whether the
2125         proxy would be used for *this* URL.
2126
2127 2006-10-17  Mike Grant  <mggr@pml.ac.uk>
2128
2129         * ftp.c (ftp_loop_internal): Would incorrectly skip changing
2130         working directory when retrying after a failed FTP attempt.
2131         Originally reported by Nate Eldredge.
2132
2133 2006-10-12  Mauro Tortonesi  <mauro@ferrara.linux.it>
2134
2135         * convert.c (downloaded_file): Fixed bug which used to break -E -k -K
2136         mode.
2137
2138 2006-08-28  Mauro Tortonesi  <mauro@ferrara.linux.it>
2139
2140         * http.c: #include'd spider.h to get rid of compiler warnings.
2141
2142         * main.c: Ditto.
2143
2144         * recur.c: Ditto.
2145
2146 2006-08-24  Mauro Tortonesi  <mauro@ferrara.linux.it>
2147
2148         * Makefile.in: Added spider.c to the list of files to compile and
2149         spider.h to the list of header files. Updated copyright information.
2150
2151         * http.c: Major changes to recursive spider mode. Now for every
2152         resource we are supposed to check, we send a HEAD request to find out
2153         if it exists. If the resource is a HTML file, we retrieve it and parse
2154         it to discover links to other resources.
2155
2156         * recur.c: Ditto.
2157
2158         * res.c (res_retrieve_file): Disable opt.timestamping and opt.spider
2159         when retrieving robots.txt. Updated copyright information.
2160
2161         * convert.c: Moved code tracking broken links to spider.c.
2162
2163         * convert.h: Ditto.
2164
2165         * spider.c: Created new file to keep track of visited URLs in spider
2166         mode.
2167
2168         * spider.h: Ditto.
2169
2170 2006-08-21  Mauro Tortonesi  <mauro@ferrara.linux.it>
2171
2172         * http.c: Fixed timestamping-related bug.
2173
2174 2006-08-16  Mauro Tortonesi  <mauro@ferrara.linux.it>
2175
2176         * http.c: Fixed bug which broke --continue feature. Now if -c is
2177         given, http_loop sends a HEAD request to find out the destination
2178         filename before resuming download.
2179
2180 2006-08-08  Hrvoje Niksic  <hniksic@xemacs.org>
2181
2182         * utils.c (datetime_str): Avoid code repetition with time_str.
2183
2184 2006-07-21  Hrvoje Niksic  <hniksic@xemacs.org>
2185
2186         * init.c (commands): Correctly place "contentdisposition".
2187
2188 2006-07-14  Mauro Tortonesi  <mauro@ferrara.linux.it>
2189
2190         * sysdep.h: If intptr_t isn't defined, simply typedef it to long.
2191
2192         * http.c: Added explicit cast to int in logprintf call to remove
2193         compiler warnings on 64-bit platforms.
2194
2195         * connect.c: Added a few casts to intptr_t to remove compiler warnings
2196         on 64-bit platforms.
2197
2198         * main.c: Disable -r, -p and -N when -O is used. Disable -k when -O is
2199         used and multiple URLs are given. Update maintainer information.
2200
2201         * all: Update copyright information.
2202
2203 2006-07-10  KJKHyperion  <hackbunny@reactos.com>
2204
2205         * url.c (filechr_table): Mark DEL (0x7f) as a control character
2206         and | as a character Windows can't handle.
2207
2208 2006-06-28  Mauro Tortonesi  <mauro@ferrara.linux.it>
2209
2210         * res.c: Implemented is_robots_txt_url function for detection of
2211         robots.txt URLs and related test routine.
2212
2213         * res.h: Ditto.
2214
2215         * url.c: Implemented are_urls_equal function for URL comparison and
2216         related testing routine.
2217
2218         * url.h: Ditto.
2219
2220         * convert.c: Fixes for recursive spider mode: don't consider
2221         non-existing robots.txt as a broken link, and use are_urls_equal
2222         instead of strcasecmp for referrer URLs comparison.
2223
2224         * test.c: Call tests routines for are_urls_equal and
2225         is_robots_txt_url.
2226
2227 2006-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
2228
2229         * wget.h (wgint): Typedef to any 64-bit (or larger) type we can
2230         find, not necessarily off_t or long.
2231
2232 2006-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
2233
2234         * cmpt.c (strtoll): Check for overflow and underflow without
2235         relying on (technically) undefined behavior.  Don't assume that
2236         strtoll_type is 64 bits wide.
2237
2238 2006-06-21  Hrvoje Niksic  <hniksic@xemacs.org>
2239
2240         * utils.c (base64_encode): Cast void pointer to char * before
2241         doing arithmetic.
2242
2243 2006-06-20  Hrvoje Niksic  <hniksic@xemacs.org>
2244
2245         * utils.c (base64_encode): Made TBL const.
2246         (base64_decode): Made the base64_char_to_value table const.
2247
2248 2006-06-19  Hrvoje Niksic  <hniksic@xemacs.org>
2249
2250         * utils.c (base64_encode): Made the DATA pointer void * so the
2251         callers can pass it any kind of pointer (including both signed and
2252         unsigned char pointers).
2253         (base64_decode): Ditto for DEST.
2254
2255 2006-06-19  Hrvoje Niksic  <hniksic@xemacs.org>
2256
2257         * utils.c (base64_encode): Would read past end of STR.
2258         Reported by rick@eckle.org.
2259
2260 2006-06-13  Mauro Tortonesi  <mauro@ferrara.linux.it>
2261
2262         * options.h (struct options): Introduced member restrict_files_case to
2263         keep track of preferences on character case restrictions for
2264         filenames.
2265
2266         * init.c: Modified defaults and cmd_spec_restrict_file_names to
2267         support character case restrictions for filenames. Added
2268         test_cmd_spec_restrict_file_names unit test.
2269
2270         * url.c: Modified append_uri_pathel to support character case
2271         restrictions for filenames. Added test_append_uri_pathel unit test.
2272
2273         * test.c: Added test_cmd_spec_restrict_file_names and
2274         test_append_uri_pathel to the list of unit tests to run.
2275
2276 2006-06-12  Mauro Tortonesi  <mauro@ferrara.linux.it>
2277
2278         * retr.c (retrieve_from_file): Use retrieve_tree and automatically
2279         turn on opt.follow_ftp in case of recursive FTP retrieval through HTTP
2280         proxy.
2281
2282         * main.c: Automatically turn on opt.follow_ftp in case of recursive
2283         FTP retrieval through HTTP proxy.
2284
2285 2006-06-12  Tony Lewis  <tlewis@exelana.com>
2286
2287         * main.c: Improved CHEN Peng's patch by proposing a simpler logic.
2288
2289 2006-06-12  CHEN Peng  <chenpeng@alumni.nus.edu.sg>
2290
2291         * main.c: Use retrieve_tree in case of recursive FTP retrieval through
2292         HTTP proxy.
2293
2294 2006-05-25  Mauro Tortonesi  <mauro@ferrara.linux.it>
2295
2296         * convert.c: Added mechanisms to keep track broken links.
2297
2298         * convert.h: Ditto.
2299
2300         * wget.h: Reordered and enumerated uerr_t constants.
2301
2302         * recur.c: Fixes to support recursive spider mode.
2303
2304         * http.c: Ditto.
2305
2306         * main.c: Print broken links in case of recursive spider mode.
2307
2308         * retr.c: Changed interface of retrieve_url.
2309
2310         * retr.h: Ditto.
2311
2312         * ftp.c: Changed interface of ftp_loop.
2313
2314         * ftp.h: Ditto.
2315
2316         * res.c: Minor change to reflect changes in interface of retrieve_url.
2317
2318 2006-05-18  Lawrence Jones  <lawrence.jones@ugs.com>
2319
2320         * ftp-ls.c (ftp_parse_unix_ls): Correct size parsing, add size
2321         and filename debugging output.
2322
2323 2006-04-28  Mauro Tortonesi  <mauro@ferrara.linux.it>
2324
2325         * http.c: If Content-Disposition header is present, allow unique
2326         filename generation unless -nc is given. Permit to disable parsing of
2327         Content-Disposition header.
2328
2329         * options.h: Added option --no-content-disposition to disable parsing
2330         of HTTP Content-Disposition header.
2331
2332         * init.c: Ditto.
2333
2334         * main.c: Ditto.
2335
2336 2006-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
2337
2338         * hash.c (TOLOWER): Wrap macro arg in parentheses.
2339
2340 2006-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
2341
2342         * http.c (parse_content_disposition): Doc fix.
2343
2344 2006-03-15  Mauro Tortonesi  <mauro@ferrara.linux.it>
2345
2346         * utils.c: Restricted operational semantics of frontcmp and proclist
2347         from generic strings to directory names and them to subdir_p and
2348         dir_matches_p respectively.  Applied George Ogata's one line patch to
2349         restrict algorithm of subdir_p to full directory name matching.  Added
2350         testcases for subdir_p and dir_matches_p.
2351
2352         * utils.h: Changed all frontcmp occurrences to subdir_p.
2353
2354         * recur.c: Ditto.
2355
2356         * test.c: Changed type returned by test functions from char * to const
2357         char *.  Added test_subdir_p and test_dir_matches_p to the list of
2358         tests to run.
2359
2360         * http.c (test_parse_content_disposition): Changed return type from
2361         char * to const char *.
2362
2363 2006-03-14  Mauro Tortonesi  <mauro@ferrara.linux.it>
2364
2365         * recur.c (struct queue_element): Changed type of html_allowed member
2366         to bool.
2367
2368 2006-03-09  Mauro Tortonesi  <mauro@ferrara.linux.it>
2369
2370         * ftp.c (ftp_list): Try `LIST -a' command first and revert to `LIST'
2371         in case of failure.
2372
2373 2006-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
2374
2375         * hash.c (TOLOWER): Fix definition when STANDALONE.
2376         Reported by Beni Serfaty.
2377
2378 2006-03-02  Mauro Tortonesi  <mauro@ferrara.linux.it>
2379
2380         * http.c (http_loop): Fixed recursive HTTP retrieval.
2381
2382 2006-02-28  Hrvoje Niksic  <hniksic@xemacs.org>
2383
2384         * http.c (extract_param): Declare extern so it can be used from
2385         other files.
2386         (extract_param): Return error for empty name.
2387
2388 2006-02-28  Hrvoje Niksic  <hniksic@xemacs.org>
2389
2390         * url.c (find_last_char): Define in terms of memrchr.
2391
2392         * cmpt.c (memrchr): Define it on systems that don't have it.
2393
2394         * http.c (extract_param): New function for parsing header values
2395         with parameters.
2396         (parse_content_disposition): Use it.  Don't allow slashes and
2397         backslashes in the file name.
2398
2399 2006-02-27  Hrvoje Niksic  <hniksic@xemacs.org>
2400
2401         * url.c (path_simplify): Don't preserve ".." at beginning of path.
2402         Suggested by Frank McCown.
2403
2404 2006-02-25  Hrvoje Niksic  <hniksic@xemacs.org>
2405
2406         * http.c (gethttp): Only use FILE.N.html if FILE.html exists.
2407
2408 2006-02-09  Hrvoje Niksic  <hniksic@xemacs.org>
2409
2410         * mswindows.c (run_with_timeout): Made thread_hnd non-static.
2411
2412 2006-02-05  Hrvoje Niksic  <hniksic@xemacs.org>
2413
2414         * retr.c (sleep_between_retrievals): Sleep at a minimum of 1/2 of
2415         the specified wait period.
2416
2417 2006-02-03  Hrvoje Niksic  <hniksic@xemacs.org>
2418
2419         * utils.c (number_to_string): Don't use sprintf for printing
2420         WGINT_MIN; simply divide n by 10 and defer printing the last
2421         digit.
2422         (number_to_string): Removed the SPRINTF_WGINT macro.
2423
2424 2006-02-03  Mauro Tortonesi  <mauro@ferrara.linux.it>
2425
2426         * http.c: Fixed support for Content-Disposition header.
2427
2428         * test.c: Added test_parse_content_disposition to the list of unit
2429         tests to run.
2430
2431 2006-02-02  Hrvoje Niksic  <hniksic@xemacs.org>
2432
2433         * hash.c: Don't define countof if it's already defined.
2434
2435         * hash.c: Obtain the definition of uintptr_t when standalone.
2436
2437 2006-01-30  Mauro Tortonesi  <mauro@ferrara.linux.it>
2438
2439         * http.c: Changed output format. Removed excessively verbose debugging
2440         output.
2441
2442 2005-12-07  Mauro Tortonesi  <mauro@ferrara.linux.it>
2443
2444         * http.c: Fixed pre-download verbose output which was broken by
2445         HTTP code refactoring.
2446
2447 2005-11-23  Mauro Tortonesi  <mauro@ferrara.linux.it>
2448
2449         * http.c: Refactored HTTP code.  If -O is not used, the new code
2450         delays the choice of the file name where the downloaded resource
2451         will be saved until the HTTP headers have been retrieved.
2452         Added support for Content-Disposition header.
2453
2454 2005-11-19  Hrvoje Niksic  <hniksic@xemacs.org>
2455
2456         * hash.c (INVALID_PTR): Use uintptr_t instead of unsigned long.
2457         (hash_pointer): Don't assume a pointer fits in `unsigned long'.
2458
2459 2005-11-02  Mauro Tortonesi  <mauro@ferrara.linux.it>
2460
2461         * Makefile.in: Removed support for unit testing (now it is in
2462         tests/Makefile.in).
2463
2464 2005-10-27  Mauro Tortonesi  <mauro@ferrara.linux.it>
2465
2466         * Makefile.in: Added basic support for unit testing.
2467
2468         * test.c: Ditto.
2469
2470         * test.h: Ditto.
2471
2472 2005-10-13  Daniel Stenberg  <daniel@haxx.se>
2473
2474         * http-ntlm.c (ntlm_output): Fixed buffer overflow vulnerability.
2475
2476 2005-10-09  Russ Allbery  <rra@stanford.edu>
2477
2478         * snprintf.c: Remove round to round_int and pow10 to pow10_int, to
2479         avoid warnings from GCC 4.0.
2480
2481 2005-10-05  Mauro Tortonesi  <mauro@ferrara.linux.it>
2482
2483         * retr.c: Changed semantics of no_proxy_match.
2484
2485 2005-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
2486
2487         * main.c (main): Don't print the summary if nothing has been downloaded.
2488
2489 2005-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
2490
2491         * retr.c (retr_rate): Rename parameter from MSECS to SECS since it
2492         no longer holds milliseconds.
2493
2494 2005-09-01  Hrvoje Niksic  <hniksic@xemacs.org>
2495
2496         * progress.c: Introduce symbolic constants for "magic" values of
2497         0.2 and 0.9, REFRESH_INTERVAL and ETA_REFRESH_INTERVAL.
2498
2499 2005-08-27  Hrvoje Niksic  <hniksic@xemacs.org>
2500
2501         * cmpt.c (strtoll): Correctly handle strtoll("0x", ptr, 0) and
2502         strtoll("0x<nonhexchar>", ptr, 0) -- in both cases *ptr must be
2503         set to the position of 'x', not after it.
2504
2505 2005-08-27  Hrvoje Niksic  <hniksic@xemacs.org>
2506
2507         * hash.c (hash_table_map): Rename to hash_table_for_each and
2508         update callers.
2509         Document the meaning of the callback's return value.
2510         (hash_table_iterate): New function.
2511         (hash_table_iter_next): Likewise.
2512         Update most places that used hash_table_for_each to use the
2513         iteration, which doesn't require a temporary function with
2514         explicit state management.
2515
2516 2005-08-26  Albert Chin  <wget@mlists.thewrittenword.com>
2517
2518         * Makefile.in: Use @datadir@.  Define localedir as $(datadir)/locale.
2519
2520 2005-08-26  Jeremy Shapiro  <jnshapiro@gmail.com>
2521
2522         * openssl.c (ssl_init): Set SSL_MODE_AUTO_RETRY.
2523
2524 2005-08-23  Hrvoje Niksic  <hniksic@xemacs.org>
2525
2526         * host.c (address_list_from_ipv4_addresses): Use IP_INADDR_DATA.
2527
2528 2005-08-12  Hrvoje Niksic  <hniksic@xemacs.org>
2529
2530         * wget.h: Renamed strtoll_return to strtoll_type.
2531
2532 2005-08-11  Hrvoje Niksic  <hniksic@xemacs.org>
2533
2534         * progress.c (eta_to_human_short): Switch to days when printing
2535         more than 48h rather than 100h.  (It's not immediately apparent
2536         how many days there are in 83h.)
2537
2538 2005-08-11  Hrvoje Niksic  <hniksic@xemacs.org>
2539
2540         * cmpt.c (strtoll): Define it if missing on the system and if Wget
2541         needs it.
2542
2543         * mswindows.c (str_to_int64): Move to cmpt.c and rename to strtoll.
2544
2545 2005-08-10  Hrvoje Niksic  <hniksic@xemacs.org>
2546
2547         * host.c (print_address): Always use inet_ntop when IPv6 is
2548         enabled.
2549
2550         * host.h (ip_address): Simplify the data union.
2551
2552 2005-08-09  Hrvoje Niksic  <hniksic@xemacs.org>
2553
2554         * mswindows.c (inet_ntop): Also handle IPv4 addresses for
2555         completeness.
2556
2557 2005-08-09  Hrvoje Niksic  <hniksic@xemacs.org>
2558
2559         * http.c (gethttp): Don't read more than the amount of data
2560         specified by the content-length header.
2561
2562 2005-08-09  Vasil Dimov  <vd@datamax.bg>
2563
2564         * ftp.c (getftp): Don't free RESPLINE if ftp_response returns a
2565         status other than FTPOK.
2566
2567 2005-08-04  Giuseppe Bonacci  <g.bonacci@libero.it>
2568
2569         * ftp-ls.c (ftp_parse_unix_ls): Remember the position of the
2570         previous token instead of backtracking back to it.
2571
2572 2005-07-08  Gisle Vanem  <giva@bgnett.no>
2573
2574         * mswindows.h: Include process.h to get getpid() declaration.
2575
2576 2005-07-08  Hrvoje Niksic  <hniksic@xemacs.org>
2577
2578         * utils.c (aprintf): Use vasprintf where available.
2579
2580 2005-07-08  Hrvoje Niksic  <hniksic@xemacs.org>
2581
2582         * url.c (rewrite_shorthand_url): Simplify code using aprintf and
2583         strspn.
2584
2585 2005-07-07  Hrvoje Niksic  <hniksic@xemacs.org>
2586
2587         * gnutls.c (ssl_check_certificate): Check for the validity of the
2588         presented X509 certificate.
2589
2590 2005-07-07  Hrvoje Niksic  <hniksic@xemacs.org>
2591
2592         * openssl.c (ssl_check_certificate): Print custom error messages
2593         for frequent X509 certificate problems.
2594
2595 2005-07-07  Hrvoje Niksic  <hniksic@xemacs.org>
2596
2597         * mswindows.h: Define an alias for stat and fstat, as requested by
2598         config-compiler.h.
2599         (gai_strerror): Define to windows_strerror if NEED_GAI_STRERROR is
2600         defined.
2601
2602 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
2603
2604         * mswindows.h: Use strtoll where available.
2605
2606 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
2607
2608         * sysdep.h: Add a full declaration of fnmatch.h.
2609
2610 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
2611
2612         * utils.c: Unconditionally include <setjmp.h>.
2613
2614 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
2615
2616         * utils.c (fnmatch_nocase): New function.
2617         (proclist): Use it instead of fnmatch when opt.ignore_case is
2618         requested.
2619         (in_acclist): Respect opt.ignore_case.
2620         (frontcmp): Respect opt.ignore_case.
2621
2622         * options.h (struct options): New flag opt.ignore_case.
2623
2624 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
2625
2626         * ptimer.c: Measure time in seconds rather than milliseconds.
2627         Adjusted all callers.
2628
2629 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
2630
2631         * http.c (gethttp): When freeing MESSAGE, take into account that
2632         it can be NULL.
2633
2634 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
2635
2636         * cmpt.c (timegm): Handle years after 2099.
2637
2638 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
2639
2640         * cmpt.c (timegm): Remove unused variable.
2641
2642 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
2643
2644         * cmpt.c (timegm): Don't call mktime; simply count the seconds
2645         between 1970-01-01 and the specified date.
2646
2647 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
2648
2649         * wget.h (or): Define HAVE_SSL when either HAVE_OPENSSL or
2650         HAVE_GNUTLS are defined.
2651
2652         * gnutls.c: New file.
2653
2654 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
2655
2656         * http.c (gethttp): Don't print the request write error message
2657         twice.
2658
2659 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
2660
2661         * openssl.c (openssl_errstr): Instead of always using a large
2662         static buffer, only allocate the error string when there is an
2663         actual error.
2664
2665 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
2666
2667         * xmalloc.c (debugging_free): Prefix hex pointer value with "0x"
2668         when printing.
2669
2670 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
2671
2672         * utils.c (NEXT_BASE64_CHAR): Rename to NEXT_CHAR and simplify to
2673         get the next non-whitespace character.
2674
2675 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
2676
2677         * utils.c (base64_decode): Don't silently tolerate non-base64
2678         non-white-space characters in the base64 stream.
2679
2680 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
2681
2682         * connect.c (LAZY_RETRIEVE_INFO): Make last_tick unsigned to match
2683         transport_map_modified_tick.
2684
2685 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
2686
2687         * config-post.h (alloca): Updated declaration to not enumerate all
2688         Windows compilers.
2689
2690 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
2691
2692         * openssl.c (openssl_errstr): Separate error messages with "; ".
2693
2694 2005-07-03  Hrvoje Niksic  <hniksic@xemacs.org>
2695
2696         * ftp.c (getftp): Ditto.
2697
2698         * http.c (gethttp): Use fd_errstr.
2699
2700         * connect.c (fd_register_transport): Restructure parameters to
2701         include only a single structure that describes transport
2702         implementation.
2703
2704         * openssl.c (openssl_errstr): New function: dump SSL error strings
2705         into a static buffer and return a pointer to the buffer.
2706
2707         * connect.c (fd_errstr): New function; returns transport-specific
2708         error message, or strerror(errno) if transport doesn't supply one.
2709
2710 2005-07-03  Hrvoje Niksic  <hniksic@xemacs.org>
2711
2712         * mswindows.h: Also wrap accept() and listen().
2713
2714 2005-07-03  Hrvoje Niksic  <hniksic@xemacs.org>
2715
2716         * url.c (path_end): Skip separators appropriate for the scheme.
2717         (strpbrk_or_eos): Remove gcc-specific version, as the optimization
2718         it tried to perform no longer applies.
2719
2720 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
2721
2722         * host.c: Don't include "connect.h" now that we no longer have
2723         socket_has_inet6.
2724
2725 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
2726
2727         * host.c: Remove extraneous definition of netdb.h.
2728
2729 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
2730
2731         * http.c (gethttp): Skip error message body in the keep-alive
2732         case.
2733
2734 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
2735
2736         * url.c (url_parse): Would crash when parsing fragments.  Support
2737         fragments for FTP URLs too.
2738
2739 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
2740
2741         * version.c: Don't use "cvs" in version name, since we're not
2742         using CVS anymore.
2743
2744 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
2745
2746         * progress.c (create_image): Ditto.
2747
2748         * retr.c (retr_rate): Display smaller rate numbers with greater
2749         precision.
2750
2751 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
2752
2753         * http.c (response_head_terminator): Minor optimization.
2754
2755         * retr.c (fd_read_hunk): Call terminator with pointer to the start
2756         of the data and the pointer to the current data.  Changed all
2757         callers.
2758
2759 2005-07-01  Hrvoje Niksic  <hniksic@xemacs.org>
2760
2761         * url.c (url_parse): Make sure u->params is not initialized for
2762         http/https URLs.
2763         (url_parse): Don't crash on garbage following []-delimited IPv6
2764         addresses.
2765
2766 2005-07-01  Hrvoje Niksic  <hniksic@xemacs.org>
2767
2768         * main.c (print_help): Don't refer to the non-existent -nr in
2769         description of --mirror.
2770
2771 2005-06-30  Hrvoje Niksic  <hniksic@xemacs.org>
2772
2773         * host.c (pretty_print_address): Renamed to just print_address.
2774         Clarify documentation.
2775
2776 2005-06-30  Hrvoje Niksic  <hniksic@xemacs.org>
2777
2778         * http.c (gethttp): Explicitly document the different cases when
2779         generating the Host header.
2780
2781 2005-06-30  Hrvoje Niksic  <hniksic@xemacs.org>
2782
2783         * host.c (pretty_print_address): Handle error result from
2784         inet_ntop.
2785
2786 2005-06-30  Gisle Vanem  <giva@bgnett.no>
2787
2788         * mswindows.c (inet_ntop): New function.  Print IPv6 addresses
2789         using WSAAddressToString.
2790
2791 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2792
2793         * progress.c (dot_update): Remove unused variable row_qty.
2794
2795 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
2796
2797         * main.c: Check for both SIGHUP and SIGUSR1 before using them.
2798
2799 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
2800
2801         * utils.c: Unconditionally include locale.h.
2802
2803 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
2804
2805         * ptimer.c: Include sys/time.h to get struct timeval.
2806
2807 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
2808
2809         * wget.h: Remove obsolete definition of with_thousand_seps_sum.
2810
2811 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
2812
2813         * gnu-md5.h: Unconditionally include limits.h.
2814
2815 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
2816
2817         * utils.c (random_number): Use lrand48 if available.
2818         (random_float): Use drand48 if available.
2819
2820 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
2821
2822         * main.c (secs_to_human_time): Use print_decimal when printing
2823         total download time in seconds.
2824
2825         * progress.c (print_row_stats): Use it to print total download
2826         time at the end of the download.
2827         (create_image): Ditto.
2828
2829         * utils.c (print_decimal): New function; print small decimal
2830         numbers with more precision than large ones.
2831
2832         * progress.c (print_row_stats): New function.  Print ETA after the
2833         download rate at the end of each row.
2834
2835 2005-06-28  Hrvoje Niksic  <hniksic@xemacs.org>
2836
2837         * init.c (parse_line): Check for alphanumerics.
2838
2839 2005-06-28  Hrvoje Niksic  <hniksic@xemacs.org>
2840
2841         * (dot_create): Remove unnecessary casts.
2842
2843 2005-06-28  Hrvoje Niksic  <hniksic@xemacs.org>
2844
2845         * ftp.c (getftp): Delete trailing newlines from LIST output so
2846         lines don't come out with trailing \015\012 with -S.
2847
2848 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2849
2850         * mswindows.h: Remove superfluous includes.
2851
2852 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2853
2854         * config-post.h (alloca): Amend alloca declaration to take care of
2855         all Win32 compilers, not just MSVC and MinGW.
2856
2857 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2858
2859         * utils.c (get_grouping_data): Force separator to "." rather than
2860         " " when "," is taken.
2861
2862 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2863
2864         * wget.h (PTR_FORMAT): Cast the result of sizeof to int before
2865         passing it to printf's %*.
2866
2867         * retr.h: Declare output_stream and output_stream_regular.
2868
2869         * ftp.h: Declare ftp_last_respline.
2870
2871         * convert.h: Declare dl_url_file_map.
2872
2873         * http.h: New file.
2874
2875 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2876
2877         * cookies.c: Make cookies_now static.
2878
2879 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2880
2881         * utils.c (human_readable): Remove intermediary cast to long; MSVC
2882         has problems casting *unsigned* __int64 to double.
2883
2884 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2885
2886         * sysdep.h: Use the system-provided fnmatch by default.
2887
2888 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2889
2890         * http.c (mktime_from_utc): Renamed to timegm and moved to cmpt.c.
2891         Don't compile it if GNU timegm is available.
2892         (http_atotm): Use timegm.
2893
2894 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2895
2896         * http.c (http_atotm): Correctly query the old locale value.
2897
2898 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2899
2900         * config-post.h (alloca): Don't #define alloca under MinGW32,
2901         which defines it in malloc.h, included from mswindows.h.
2902
2903 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2904
2905         * utils.c (get_grouping_data): Force the use of separators in C
2906         locale.
2907
2908 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2909
2910         * main.c (i18n_initialize): Set all locale categories.
2911
2912         * http.c (http_atotm): Temporarily set locale to "C".
2913
2914 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2915
2916         * http.c (gethttp): Improve "POST data file missing" error
2917         message.
2918
2919 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2920
2921         * progress.c (set_progress_implementation): Type COLON as const
2922         char *.
2923
2924 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2925
2926         * utils.c (with_thousand_seps): Handle negative numbers.
2927
2928 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
2929
2930         * progress.c (create_image): Mark the "eta" string for translation.
2931
2932 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
2933
2934         * html-url.c (get_urls_file): Don't explicitly set entry->next to
2935         NULL since entry is already zeroed out.
2936
2937 2005-06-26  Gisle Vanem  <giva@bgnett.no>
2938
2939         * mswindows.h: Define gai_strerror under MinGW.
2940
2941 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
2942
2943         * utils.c (with_thousand_seps): Correctly implement thousand seps
2944         consisting of more than one character.
2945
2946 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
2947
2948         * main.c (secs_to_human_time): Ditto.
2949
2950         * progress.c (create_image): Print more exact duration of very
2951         short downloads.
2952
2953         * main.c (secs_to_human_time): Don't translate time suffixes "h",
2954         "m", and "s", which are not strictly SI, but are "accepted for use
2955         with SI".
2956         (secs_to_human_time): Print really small intervals as 0s, not
2957         0.00s.
2958
2959 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
2960
2961         * config-post.h: Replace the alloca declaration with the one from
2962         the latest Autoconf manual.  This should remove a warning with GCC
2963         on AIX.
2964
2965 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
2966
2967         * ftp.c (getftp): Always invoke SIZE, not only when continuing a
2968         download.
2969
2970         * main.c (main): Ditto here.
2971
2972         * progress.c (create_image): When the download is finished, print
2973         how long it took.
2974
2975 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
2976
2977         * main.c (main): Print the downloaded and quota amounts with the
2978         "human_readable" function.
2979
2980         * ftp.c (print_length): Ditto.
2981
2982         * http.c (gethttp): Don't display thousand separators.
2983
2984         * utils.c (with_thousand_seps): Rewritten to respect locale
2985         settings and to be type size agnostic.
2986
2987 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
2988
2989         * utils.c (human_readable): Divide with 1024 instead of shifting
2990         so the operation can work with non-integer N.
2991
2992 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
2993
2994         * progress.c (eta_to_human): New logic for more human-readable
2995         ETA.
2996
2997 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
2998
2999         * utils.c (with_thousand_seps_sum): Decrease buffer size so it
3000         cannot overrun add_thousand_seps's buffer.
3001
3002 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
3003
3004         * utils.c (SPRINTF_WGINT): The correct format is %I64d, not just
3005         %I64.
3006
3007 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
3008
3009         * http.c (http_loop): Don't warn about wildcards in HTTP URLs if
3010         globbing isn't requested in the first place.
3011
3012         * retr.c (retrieve_url): Temporarily turn off globbing when
3013         processing HTTP->FTP redirects.
3014
3015 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
3016
3017         * utils.c (with_thousand_seps_sum): Now defined only if
3018         SUM_SIZE_INT is double.
3019
3020         * wget.h (SUM_SIZE_INT): Instead of bothering with long, long
3021         long, __int64, and friends, simply either use wgint or double, end
3022         of story.  Since we know how to print either, we no longer need
3023         LARGE_INT_FMT.
3024
3025         * sysdeps.h (LARGE_INT): Renamed to SUM_SIZE_INT to better reflect
3026         its intent, and moved to wget.h.
3027
3028 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
3029
3030         * Makefile.in: No need to clean .libs.
3031
3032 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
3033
3034         * cookies.c (parse_set_cookies): Cast pointer subtraction to int
3035         before using it with %d; AIX compiler warns on this.
3036         Reported by Jens Schleusener.
3037
3038 2005-06-24  Hrvoje Niksic  <hniksic@xemacs.org>
3039
3040         * http.c (gethttp): Don't prepend / here.
3041
3042         * cookies.c (cookie_handle_set_cookie): Prepend / to PATH.
3043         (cookie_header): Ditto.
3044
3045 2005-06-24  Hrvoje Niksic  <hniksic@xemacs.org>
3046
3047         * init.c: opt.verbose must be declared as int.
3048
3049 2005-06-23  Hrvoje Niksic  <hniksic@xemacs.org>
3050
3051         * cmpt.c (strpbrk): Removed.
3052         (mktime): Removed.
3053         Include <time.h>.
3054
3055 2005-06-23  Hrvoje Niksic  <hniksic@xemacs.org>
3056
3057         * utils.c (read_file): Ditto.
3058
3059         * main.c (main): Use struct_fstat.
3060
3061         * mswindows.h (struct_fstat): Define a struct_fstat to deal with
3062         the fact that Borland 5.5 has 64-bit stat, but not 64-bit fstat!
3063
3064 2005-06-23  Hrvoje Niksic  <hniksic@xemacs.org>
3065
3066         * sysdep.h: Remove code that deals with Watcom.
3067
3068 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
3069
3070         * all: Use bool instead of int and false/true instead of 0/non-0
3071         for boolean variables and values.
3072
3073 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
3074
3075         * sysdep.h: Include the stdbool.h/_Bool/bool blurb from Autoconf.
3076
3077 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
3078
3079         * init.c (cmd_lockable_boolean): Removed.
3080
3081 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
3082
3083         * cookies.c (struct cookie): Use 1-bit bitfields for booleans
3084         which makes the structure takes less space at no cost in
3085         complexity.
3086
3087 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
3088
3089         * Makefile.in ($(OBJ)): Add the config.h dependency.
3090
3091 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
3092
3093         * openssl.c, connect.c, host.c: Replace instances of #ifdef
3094         ENABLE_DEBUG if (opt.debug) {...} #endif with IF_DEBUG {...}.
3095
3096         * main.c: Rename the IF_DEBUG defined here to WHEN_DEBUG.
3097
3098         * wget.h (IF_DEBUG): New macro.
3099         (DEBUGP): Define in terms of IF_DEBUG.
3100
3101 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
3102
3103         * http.c (gethttp): Only handle --set-cookies (and assert that
3104         cookie jar exists) if opt.cookies is true.  Failure to do so
3105         triggered the assert when --no-cookies was used and the server
3106         sent a Set-Cookie header.  Ouch!
3107
3108 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
3109
3110         * connect.c (select_fd): Expect select() to exist.
3111
3112         * utils.c (xsleep): Always use select() as sleep fallback on
3113         non-Windows platforms.
3114
3115         * ptimer.c: Delete the implementation of PTIMER_TIME.
3116
3117         * main.c: Assume existence of signal(), test for different signal
3118         names instead.
3119
3120         * cmpt.c: Better document reasons why certain functions are
3121         included.
3122
3123 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
3124
3125         * Makefile.in: Remove the manually maintained dependency list;
3126         make all object files depend on every header.
3127
3128 2005-06-20  Hrvoje Niksic  <hniksic@xemacs.org>
3129
3130         * hash.c: Rename "mapping" to "cell" to avoid confusion with the
3131         term "mapping" (or "map") sometimes being used for the entire hash
3132         table.  Also rename "non-empty" to "occupied" for easier reading
3133         of if (!NON_EMPTY (...)) ... .
3134
3135 2005-06-20  Hrvoje Niksic  <hniksic@xemacs.org>
3136
3137         * main.c, ptimer.c, sysdep.h, utils.c: Use #elif to simplify reading of
3138         chained if-else-else-else-... statements.
3139
3140 2005-06-20  Hrvoje Niksic  <hniksic@xemacs.org>
3141
3142         * all: Return type of signal handlers is `void'.  Include signal.h
3143         unconditionally.
3144
3145         * all: Don't explicitly cast values returned by malloc.  We no
3146         longer support ancient compilers that don't declare malloc, and we
3147         never supported C++ builds.
3148
3149 2005-06-19  Hrvoje Niksic  <hniksic@xemacs.org>
3150
3151         * all: Don't declare errno.  Include both time.h and sys/time.h,
3152         as long as sys/time.h exists.  Don't dereference function pointers
3153         when invoking the functions they point to.
3154
3155         * cmpt.c (memmove): Remove function mandated by C89.
3156         (strerror): Ditto.
3157         (strstr): Ditto.
3158
3159         * all: Undo the K&R-ization changes from 2005-05-03.
3160
3161         * all: Remove support for K&R compilers: use C89 function
3162         declarations, remove definition of PARAMS, remove support for
3163         varargs, and remove ansi2knr.  Assume the presence of time.h,
3164         string.h, and other headers mandated by C89.
3165
3166 2005-06-19  Hrvoje Niksic  <hniksic@xemacs.org>
3167
3168         * init.c (cmd_lockable_boolean): Don't recognize literal "2" and
3169         "-1" values; unlike 0 and 1, those should never be exposed to the
3170         user.  Update the error message to be more self-consistent, as
3171         proposed by Benno Schulenberg.
3172
3173 2005-06-18  Hrvoje Niksic  <hniksic@xemacs.org>
3174
3175         * http.c (gethttp): Don't free "head" before using it to save
3176         headers.
3177
3178 2005-06-18  Hrvoje Niksic  <hniksic@xemacs.org>
3179
3180         * http.c (gethttp): When -E is in use, check for file existence
3181         after appending ".html" to the name and modify the file name if
3182         necessary.
3183
3184 2005-06-17  Hrvoje Niksic  <hniksic@xemacs.org>
3185
3186         * connect.c (socket_has_inet6): Removed.
3187
3188         * host.c (lookup_host): Don't use the AI_ADDRCONFIG getaddrinfo
3189         hint.
3190
3191 2005-06-16  Hrvoje Niksic  <hniksic@xemacs.org>
3192
3193         * init.c (cmd_lockable_boolean): Improve the error message so it
3194         lists the more useful values first.
3195
3196 2005-06-15  Hrvoje Niksic  <hniksic@xemacs.org>
3197
3198         * http.c (gethttp): Also report the system error when the POST
3199         data file is missing.
3200
3201 2005-06-15  Benno Schulenberg  <benno@nietvergeten.nl>
3202
3203         * ftp.c, http.c, connect.c, cookies.c, html-url.c, init.c, res.c:
3204         Gettext-ize messages that were previously missed.
3205
3206 2005-06-15  Hrvoje Niksic  <hniksic@xemacs.org>
3207
3208         * host.h (ip_address): Remove the trailing comma from the type
3209         enum in the no-IPv6 case.
3210
3211         * main.c (struct cmdline_option): Remove the trailing comma from
3212         the enum.
3213
3214         Reported by Jens Schleusener.
3215
3216 2005-05-30  Hrvoje Niksic  <hniksic@xemacs.org>
3217
3218         * url.c (strpbrk_or_eos): Check for a recent GCC version before
3219         using the statement-as-expression extension.
3220
3221 2005-05-30  Hrvoje Niksic  <hniksic@xemacs.org>
3222
3223         * http.c (gethttp): Don't attempt to "skip short body" if we're
3224         issuing a HEAD request (in which case the response head is not
3225         followed by a body).
3226
3227 2005-05-30  Hrvoje Niksic  <hniksic@xemacs.org>
3228
3229         * init.c (cmd_spec_header): Don't split the string along the
3230         commas using cmd_vector; just append the new value using
3231         vec_append instead.
3232
3233         * utils.c (vec_append): New function.
3234
3235 2005-05-27  Andreas Beckmann  <debian@abeckmann.de>
3236
3237         * html-url.c (tag_handle_link): Mark the content from the <link
3238         src="..."> tag as expecting HTML.
3239
3240 2005-05-24  Hrvoje Niksic  <hniksic@xemacs.org>
3241
3242         * http.c (http_atotm): Document the origin of the "cookie date"
3243         format.
3244
3245 2005-05-21  Hrvoje Niksic  <hniksic@xemacs.org>
3246
3247         * init.c (setval_internal): Report exact command name alongside
3248         the "display name".
3249
3250 2005-05-18  Hrvoje Niksic  <hniksic@xemacs.org>
3251
3252         * cookies.c (update_cookie_field): Explicitly cast -1 to time_t to
3253         cope with systems where time_t is unsigned.
3254
3255         * cookies.c: Remove unnecessary casts to time_t from values
3256         already of that type.
3257
3258 2005-05-17  Hrvoje Niksic  <hniksic@xemacs.org>
3259
3260         * ftp.c (ftp_loop_internal): Same here.
3261
3262         * http.c (http_loop): Don't clobber the file when -c is specified
3263         and the first attempt to retrieve the file fails.
3264
3265 2005-05-16  Hrvoje Niksic  <hniksic@xemacs.org>
3266
3267         * openssl.c (ssl_check_certificate): Print all issues with a
3268         certificate.
3269
3270 2005-05-16  Hrvoje Niksic  <hniksic@xemacs.org>
3271
3272         * ftp-basic.c: Don't xfree() the line returned by ftp_response if
3273         the returned code is not FTPOK.
3274
3275 2005-05-16  Hrvoje Niksic  <hniksic@xemacs.org>
3276
3277         * init.c (cleanup): Don't free the non-existent opt.ftp_acc.  Free
3278         the SSL-related stuff.
3279
3280 2005-05-16  Hrvoje Niksic  <hniksic@xemacs.org>
3281
3282         * ftp.c (print_length): Consistently print \n at end of the
3283         "Length" line.
3284
3285 2005-05-14  Hrvoje Niksic  <hniksic@xemacs.org>
3286
3287         * openssl.c (ssl_connect): Announce the beginning and the end of
3288         the SSL handshake when in debug mode.
3289
3290         * wget.h (PTR_FORMAT): New macro for easier printing of pointer
3291         values.  Use %0*lx along with PTR_FORMAT instead of %p.
3292
3293 2005-05-14  Hrvoje Niksic  <hniksic@xemacs.org>
3294
3295         * http.c (gethttp): Would forget to close the connection when
3296         keep_alive was not used.
3297
3298 2005-05-13  Hrvoje Niksic  <hniksic@xemacs.org>
3299
3300         * openssl.c (pattern_match): Document the code that decides
3301         whether "*" matches ".".
3302
3303 2005-05-12  Hrvoje Niksic  <hniksic@xemacs.org>
3304
3305         * ftp-ls.c (ftp_index): Use %d to print the port number, which is
3306         now int.
3307         From Steven M. Schweda's VMS patches.
3308
3309 2005-05-12  Hrvoje Niksic  <hniksic@xemacs.org>
3310
3311         * url.c (rewrite_shorthand_url): Don't rewrite "https://host" to
3312         "ftp://https//host" when SSL is not used.
3313
3314 2005-05-11  Hrvoje Niksic  <hniksic@xemacs.org>
3315
3316         * openssl.c (ssl_check_server_identity): Renamed to
3317         ssl_check_certificate because it does more than just checking the
3318         server's identity.
3319         (ssl_check_certificate): Tell the user about
3320         --no-check-certificate.
3321
3322 2005-05-11  Hrvoje Niksic  <hniksic@xemacs.org>
3323
3324         * openssl.c (ssl_init): Always use SSL_VERIFY_NONE, so that the
3325         handshake finishes even if the certificate is invalid.  That way
3326         ssl_check_server_identity can provide better diagnostics on why
3327         the verification failed.
3328
3329 2005-05-11  Hrvoje Niksic  <hniksic@xemacs.org>
3330
3331         * openssl.c (pattern_match): New function.
3332         (ssl_check_server_identity): Treat peer certificate common name as
3333         wildcard.
3334
3335 2005-05-10  Hrvoje Niksic  <hniksic@xemacs.org>
3336
3337         * openssl.c (ssl_check_server_identity): Print certificate subject
3338         and issuer.
3339
3340 2005-05-10  Hrvoje Niksic  <hniksic@xemacs.org>
3341
3342         * res.c (res_register_specs): Correctly pass pointers to
3343         hash_table_get_pair.
3344
3345 2005-05-10  Hrvoje Niksic  <hniksic@xemacs.org>
3346
3347         * http.c (gethttp): Call ssl_check_server_identity.
3348
3349         * openssl.c (ssl_check_server_identity): New function, verifies
3350         that the host name in the certificate matches the actual host
3351         name.
3352         (verify_cert_callback): Removed, since it didn't do anything
3353         except returning the preverify_ok argument.
3354
3355         * connect.c (fd_transport_context): Allow retrieval of the context
3356         pointer registered with fd_register_transport.
3357
3358 2005-05-09  Hrvoje Niksic  <hniksic@xemacs.org>
3359
3360         * openssl.c (verify_cert_callback): Renamed from verify_callback.
3361         Always return the received "ok" value.  Print the X509 name in
3362         debug mode.
3363         (ssl_init): Enable partial writes in SSL context.
3364
3365 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
3366
3367         * http.c (http_loop): Check for wildcards in the URL path
3368         component, not in the whole URL.
3369
3370         * ftp.c (ftp_loop): Check for wildcards in URL path before
3371         unescaping, so the users can escape globbing metacharacters with %
3372         escapes.
3373
3374 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
3375
3376         * init.c (run_command): Correctly interpret the return value of
3377         parse_line.
3378         (commands): Re-alphabetize.
3379
3380 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
3381
3382         * netrc.c (parse_netrc): Explicitly check for assignment != NULL
3383         to silence warning from Borland C.
3384
3385         * url.c (sync_path): Don't unnecessarily increment p.
3386         (url_parse): Don't unnecessarily set url_encode to NULL just
3387         prior to return from the function.
3388
3389 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
3390
3391         * log.c (escnonprint_internal): Place variable declarations
3392         before other statements.
3393
3394 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
3395
3396         * html-url.c: Include recur.h.
3397
3398         * http.c (request_new): Define as accepting no args.
3399
3400 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
3401
3402         * url.c (strpbrk_or_eos): Made inline.  Use strchr(s, '\0') for
3403         finding the NUL char position.
3404
3405 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
3406
3407         * url.c (decide_copy_method): Renamed to char_needs_escaping.
3408         Since it now returns only two possible values, change it to return
3409         boolean (int).
3410
3411 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
3412
3413         * ftp-basic.c (ftp_request): Prevent newlines in VALUE causing
3414         inadvertent sending of multiple FTP commands.
3415
3416 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
3417
3418         * url.c (decide_copy_method): Never cause reencode_escapes to
3419         decode % escapes; it is too intrusive and breaks some servers.
3420
3421 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
3422
3423         * http.c (gethttp): When tunnelling SSL traffic over proxy with
3424         CONNECT, we're really talking to the remote server directly.
3425         Because of this, the request-line argument must be the URL path
3426         rather than the whole URL, as it would be when using regular
3427         proxies.
3428         Reported by Charles Lane.
3429
3430 2005-05-06  Hrvoje Niksic  <hniksic@xemacs.org>
3431
3432         * init.c (cmd_spec_useragent): Allow empty User-Agent.
3433
3434         * http.c (gethttp): Don't print "unknown authentication scheme"
3435         for failed Basic authentication.
3436         (SET_USER_AGENT): Don't set user-agent if opt.useragent is empty.
3437         (gethttp): Use alloca for allocation of www_authenticate.
3438
3439 2005-05-06  Hrvoje Niksic  <hniksic@xemacs.org>
3440
3441         * main.c (print_help): Fix wording of --secure-protocol help text.
3442
3443 2005-05-06  Hrvoje Niksic  <hniksic@xemacs.org>
3444
3445         * cmpt.c (strstr): Updated from glibc 2.3.5.
3446
3447 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
3448
3449         * http.c (http_atotm): Zero out the whole struct tm being passed
3450         to strptime.
3451
3452 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
3453
3454         * main.c (main): Propagate option name to setoptval.
3455
3456         * init.c (setoptval): Accept another argument, OPTNAME.  Propagate
3457         that argument as the option name independently of the actual
3458         command, determined by command_by_name(com).
3459
3460 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
3461
3462         * init.c (parse_line): Make the return value indicate whether
3463         there was a syntax error or a setter failed.
3464         (run_wgetrc): Return an indication on whether an error has been
3465         encountered.
3466         (initialize): Abort if there have been errors running either
3467         .wgetrc file.
3468
3469 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
3470
3471         * log.c (copy_and_escape): Slightly reduce code repetition between
3472         the two loops.
3473
3474 2005-05-05  Charles C.Fu  <ccwf@bacchus.com>
3475
3476         * utils.c (proclist): Strip leading slash when calling fnmatch
3477         too, otherwise wildcard comparisons always fail.
3478
3479 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
3480
3481         * utils.c (touch): Set access time to current time.
3482
3483 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
3484
3485         * url.c (url_unescape): Don't unescape %00, it effectively
3486         truncates the string.
3487
3488 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
3489
3490         * log.c (copy_and_escape): Replace the FOR_URI argument with a
3491         slightly more general mechanism for specifying different kinds of
3492         escape.
3493
3494 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
3495
3496         * ftp-basic.c (ftp_response): Fix printing FTP server response.
3497
3498 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
3499
3500         * retr.c (limit_bandwidth_reset): Reset sleep_adjust.
3501         (limit_bandwidth): Don't allow huge "adjustment" values that
3502         result from being suspended for a while.
3503
3504 2005-05-04  Hrvoje Niksic  <hniksic@xemacs.org>
3505
3506         * wget.h: If gettext was found but libtintl.h wasn't, declare
3507         gettext's return type to avoid type mismatches.
3508
3509 2005-05-03  Hrvoje Niksic  <hniksic@xemacs.org>
3510
3511         * url.c (url_parse): Rename label `error' to avoid conflict with
3512         identifier.
3513
3514         * retr.c (fd_read_body): Rename label `out' to avoid conflict with
3515         identifier.
3516         (fd_read_hunk): Use explicit double constant.
3517         (retrieve_from_file): Don't use string concatenation.
3518         (sleep_between_retrievals): Make sure xsleep is called with a
3519         `double' argument.
3520         (no_proxy_match): Define as static, like it is declared.
3521
3522         * progress.c (bar_create): Use 0.0 instead of 0 because K&R
3523         compilers can't automatically promote it.
3524
3525         * http-ntlm.c (ntlm_output): Replace \xHH sequences with \OOO for
3526         the sake of old compilers.
3527
3528         * ftp.c (ftp_loop_internal): Don't use string concatenation.
3529
3530         * http.c (request_send): Use explicit double constants when
3531         calling fd_read and fd_write.
3532         (post_file): Ditto.
3533         (gethttp): Ditto.
3534         (skip_short_body): Ditto.
3535
3536         * ftp-basic.c: When calling fd_write, specify the last argument as
3537         a `double' constant for the sake of K&R compilers which don't see
3538         the prototype and therefore can't promote it to double
3539         automatically.
3540
3541         * cookies.c (cookie_jar_load): Rename abort label to abort_cookie
3542         to avoid name conflict in K&R compilers.
3543
3544 2005-04-29  Hrvoje Niksic  <hniksic@xemacs.org>
3545
3546         * ptimer.c (posix_init): Since we allow _POSIX_MONOTONIC_CLOCK==0,
3547         it is not enough to check for _POSIX_MONOTONIC_CLOCK-0, we must
3548         also check for defined(_POSIX_MONOTONIC_CLOCK).
3549
3550 2005-04-28  Hrvoje Niksic  <hniksic@xemacs.org>
3551
3552         * ftp.c, hash.c, connect.c, host.c, http.c: Remove unreached code,
3553         such as "break" following return or abort.
3554
3555 2005-04-28  Hrvoje Niksic  <hniksic@xemacs.org>
3556
3557         * init.c (commands): Wrap the use of opt.random_file in #ifdef
3558         HAVE_SSL.
3559
3560 2005-04-28  Hrvoje Niksic  <hniksic@xemacs.org>
3561
3562         * http.c (gethttp): Correctly set the user agent.
3563
3564 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
3565
3566         * init.c (cmd_spec_useragent): Free the old value of
3567         opt.useragent before setting the new one.
3568
3569 2005-04-27  Mauro Tortonesi  <mauro@ferrara.linux.it>
3570
3571         * main.c: Map --ftp-password, --http-password and --proxy-password to
3572         the new ftppassword, httppassword and proxypassword commands
3573         respectively.  Document the --user and --password options in the help
3574         string.
3575
3576 2005-04-27  Mauro Tortonesi  <mauro@ferrara.linux.it>
3577
3578         * ftp.c: Add support for --user and --password.
3579
3580         * http.c: Add support for --user and --password.
3581
3582         * init.c: Deprecated ftppasswd, httppasswd, login, passwd and
3583         proxypasswd commands.  Added ftppassword, ftpuser, httppassword,
3584         password, proxypassword and user commands.
3585
3586         * main.c: Renamed --ftp-passwd to --ftp-password.  Added --ftp-user,
3587         --http-password, --password, --proxy-password and --user.  Deprecated
3588         --http-passwd and --proxy-passwd.  Added documentation for new options
3589         and removed documentation for deprecated options in the help string.
3590
3591         * options.h (struct options): Added user and passwd members to handle
3592         --user and --password respectively.  Renamed ftp_acc and ftp_pass
3593         members to ftp_user and ftp_passwd for consistency.
3594
3595 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
3596
3597         * main.c (print_help): Advertise "DER", not "ASN1".
3598
3599 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
3600
3601         * openssl.c (init_prng): Disable the weak random seed by default.
3602
3603         * http.c (gethttp): Simplify SSL initialization; disable SSL when
3604         anything goes wrong with the initialization.
3605
3606         * options.h (struct options): New option opt.random_file.
3607
3608 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
3609
3610         * init.c: Wrap private key commands in IF_SSL.
3611
3612 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
3613
3614         * openssl.c (ssl_init): Ditto.
3615
3616         * options.h (struct options): Allow separate specification of key
3617         type and certificate type.
3618
3619         * init.c (cmd_spec_cert_type): Provide a "der" synonym for "asn1"
3620         certificate encoding.
3621
3622 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
3623
3624         * openssl.c: Renamed "gen_sslfunc.c" to "openssl.c" and
3625         "gen_sslfunc.h" to "openssl.h".  This reflects the intent of
3626         openssl.c encapsulating the OpenSSL-specific code.
3627
3628 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
3629
3630         * init.c: Renamed "closure" (a synonym for context in some
3631         cultures) to "place", which more accurately reflects the usage.
3632
3633 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
3634
3635         * gen_sslfunc.c (ssl_init): Use default locations for loading the
3636         certificate bundles.
3637         (ssl_init_prng): Disable the cryptographically weak PRNG
3638         initialization fallback.
3639
3640         * init.c: Renamed SSL command-line arguments and wgetrc commands.
3641         (defaults): Check the server certificate by default.
3642
3643 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
3644
3645         * cookies.c (cookie_handle_set_cookie): Delete the part of the
3646         path after the trailing slash.
3647
3648         * http.c (gethttp): Call cookie_handle_set_cookie with path that
3649         begins with '/'.
3650
3651 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
3652
3653         * http.c (gethttp): Call skip_short_body only if keep_alive is in
3654         use.
3655         (gethttp): Send the User-Agent header with the CONNECT request as
3656         well.
3657
3658 2005-04-25  Hrvoje Niksic  <hniksic@xemacs.org>
3659
3660         * main.c (option_data): Removed support for the undocumented flag
3661         --use-proxy.
3662
3663 2005-04-25  Hrvoje Niksic  <hniksic@xemacs.org>
3664
3665         * main.c (option_data): Don't treat -Y as a boolean switch; treat
3666         it as a value switch instead, so "-Y off" continues to work.
3667
3668 2005-04-24  Hrvoje Niksic  <hniksic@xemacs.org>
3669
3670         * utils.c (aprintf): Delete unreachable statement.
3671
3672 2005-04-24  Hrvoje Niksic  <hniksic@xemacs.org>
3673
3674         * host.c (cmp_prefer_ipv4): New function.
3675         (cmp_prefer_ipv6): New function.
3676         (lookup_host): Use the appropriate comparator according to
3677         opt.prefer_family.
3678
3679         * init.c: New option prefer_family.
3680
3681         * host.c (is_valid_ipv6_address): Spell NS_* constants in lower
3682         case to avoid clash with system headers.
3683         (lookup_host): Reorder the addresses so that IPv4 ones come first.
3684
3685         * utils.c (stable_sort): New function.
3686
3687 2005-04-24  Hrvoje Niksic  <hniksic@xemacs.org>
3688
3689         * connect.c (retryable_socket_connect_error): Return 0 for
3690         ENETUNREACH and EHOSTUNREACH.
3691
3692 2005-04-23  Hrvoje Niksic  <hniksic@xemacs.org>
3693
3694         * cmpt.c: Reenable the memmove implementation for systems that
3695         lack it.
3696
3697         * http.c (gethttp): Store the "authorized" state of the persistent
3698         connection.
3699         (request_remove_header): New function.
3700         (gethttp): Don't send the "Basic" authentication if the connection
3701         is already authorized.
3702
3703 2005-04-23  Hrvoje Niksic  <hniksic@xemacs.org>
3704
3705         * utils.c (base64_encode): Treat input as unsigned chars.
3706         Required for correct encoding of binary stuff.
3707
3708 2005-04-23  Hrvoje Niksic  <hniksic@xemacs.org>
3709
3710         * http-ntlm.c: Format the function definitions in an
3711         ansi2knr-friendly fashion.
3712
3713 2005-04-22  Hrvoje Niksic  <hniksic@xemacs.org>
3714
3715         * http.c (gethttp): Handle multiple WWW-Authentication headers,
3716         only one of which is recognized.  Those are sent by IIS with NTLM
3717         authorization.
3718         (create_authorization_line): Propagate information whether
3719         authorization is finished.
3720         (gethttp): Only stop authorization when it's really finished, not
3721         after fixed two steps.
3722
3723 2005-04-21  Hrvoje Niksic  <hniksic@xemacs.org>
3724
3725         * gen_sslfunc.c (ssl_init): Fix warning message text; mark the
3726         message as translatable.
3727
3728 2005-04-21  Hrvoje Niksic  <hniksic@xemacs.org>
3729
3730         * main.c (print_help): Print the EGD option outside the cluster of
3731         SSL options.
3732
3733 2005-04-21  Hrvoje Niksic  <hniksic@xemacs.org>
3734
3735         * http-ntlm.c (ntlm_output): Fix setting the domain.
3736         Suggested by Sami Krank.
3737
3738 2005-04-20  Mauro Tortonesi  <mauro@ferrara.linux.it>
3739
3740         * connect.c: Set IPV6_V6ONLY socket option when -6 switch is used.
3741
3742 2005-04-20  FUJISHIMA Satsuki  <sf@FreeBSD.org>
3743
3744         * http.c (request_set_header): Fix the check whether a new header
3745         needs to be allocated.
3746
3747 2005-04-18  Hrvoje Niksic  <hniksic@xemacs.org>
3748
3749         * utils.c (base64_encode): Use the parameter order that makes more
3750         sense.  Return the length of the base64 written.  Updated all
3751         callers.
3752
3753 2005-04-17  Hrvoje Niksic  <hniksic@xemacs.org>
3754
3755         * http.c (request_set_header): Free NAME when VALUE is NULL and
3756         freeing the header name is requested.
3757
3758 2005-04-17  Hrvoje Niksic  <hniksic@xemacs.org>
3759
3760         * snprintf.c (fmtstr): Declare VALUE as const char *.
3761         Based on patch by Russ Allbery.
3762
3763 2005-04-17  Hrvoje Niksic  <hniksic@xemacs.org>
3764
3765         * snprintf.c (fmtfp): More correct handling of significant digit
3766         count with %g -- 0.002 has one significant digit, not three.
3767
3768 2005-04-16  Hrvoje Niksic  <hniksic@xemacs.org>
3769
3770         * retr.c (fd_read_body): Respect read timeout with non-interactive
3771         or no progress gauge -- treat ETIMEDOUT specially only when
3772         progress_interactive.
3773         Reported by FUJISHIMA Satsuki.
3774
3775 2005-04-16  FUJISHIMA Satsuki  <sf@FreeBSD.org>
3776
3777         * http.c (gethttp): Don't use HTTP/1.0 persistent connections over
3778         proxy.
3779
3780 2005-04-16  Hrvoje Niksic  <hniksic@xemacs.org>
3781
3782         * snprintf.c: Use the PARAMS macro to handle prototypes.  Write
3783         function definitions in the ansi2knr-friendly way.
3784         (fmtstr): If string precision is specified, don't read VALUE past
3785         it.
3786         (dopr): Actually print %g and %e formats.
3787         (fmtfp): Fix a bug that caused 0.01 to be printed as 0.1.
3788         (fmtfp): Use LLONG in floating point conversions to be able to
3789         convert more digits.
3790         (fmtfp): Interpret precision as number of significant digits with
3791         %g.
3792         (fmtfp): Omit trailing decimal zeros with %g.
3793
3794         * snprintf.c: Don't include <ctype.h> because none of it is used.
3795         Include strings.h/string.h, as per Autoconf.
3796
3797 2005-04-15  Hrvoje Niksic  <hniksic@xemacs.org>
3798
3799         * ptimer.c: Use _POSIX_TIMERS - 0 > 0, which handles the case when
3800         _POSIX_TIMERS is defined but empty, as well as the case when it is
3801         undefined.  Do the same with the check for _POSIX_MONOTONIC_CLOCK.
3802         Suggested by Larry Jones.
3803
3804 2005-04-15  Hrvoje Niksic  <hniksic@xemacs.org>
3805
3806         * ptimer.c: Check that _POSIX_TIMERS is defined as well as > 0.
3807         Problem reported by Steven M. Schweda.
3808
3809 2005-04-14  Hrvoje Niksic  <hniksic@xemacs.org>
3810
3811         * http.c (skip_short_body): Print the skipped body data in debug
3812         mode.
3813         (skip_short_body): Don't skip more than 4k of body data.
3814         (skip_short_body): Return whether the skipping was successful.
3815         (gethttp): If skip_short_body failed, invalidate the connection.
3816
3817 2005-04-12  Gisle Vanem  <giva@bgnett.no>
3818
3819         * ftp.c (getftp): Ditto.
3820
3821         * http.c (gethttp): Open the output file in binary mode.
3822
3823 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
3824
3825         * hash.c: Conditionalize including config.h on HAVE_CONFIG_H
3826         instead of on STANDALONE.
3827
3828 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
3829
3830         * gen_sslfunc.c (ssl_print_errors): Made static.
3831         (ssl_print_errors): Eliminate potentially dangerous fixed-size
3832         error buffer.  Passing NULL to ERR_error_string causes it to use
3833         its own static buffer, which is fine for our purposes.
3834
3835         * gen_sslfunc.c: Include gen_sslfunc.h.  Make the declarations of
3836         ssl_init and ssl_conect match the actual definitions.
3837         (ssl_connect): Simply return a boolean, the SSL context is no
3838         longer useful as a return value.
3839
3840         * retr.c: Don't include SSL headers; we don't need them.
3841
3842 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
3843
3844         * config-post.h: Don't define _VA_LIST under Solaris; it breaks
3845         compilation with GCC 3.4 under Solaris 10.  (It was defined to
3846         avoid a warning with previous versions of GCC.)
3847
3848 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
3849
3850         * xmalloc.c (register_ptr): Warn the user to increase SZ prior to
3851         aborting.
3852
3853 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
3854
3855         * convert.c (convert_cleanup): Free converted_files.
3856
3857 2005-04-10  Hrvoje Niksic  <hniksic@xemacs.org>
3858
3859         * wget.h (DEBUGP): Use __builtin_expect to give a hint to GCC that
3860         opt.debug is false in the vast majority of cases.
3861
3862 2005-04-10  Hrvoje Niksic  <hniksic@xemacs.org>
3863
3864         * config-post.h: Declare alloca as void *, not char *.
3865
3866 2005-04-09  Hrvoje Niksic  <hniksic@xemacs.org>
3867
3868         * recur.c (download_child_p): When -p is used, (temporarily)
3869         ignore accept/reject rules for HTMLs, even when they are at the
3870         maximum recursion depth.  That is because with -p we are, if
3871         necessary, overstepping the max. depth to get the requisites.
3872
3873 2004-06-12  Larry Jones <lawrence.jones@ugsplm.com>
3874
3875         * recur.c (download_child_p): Correct the logic in check number 6:
3876         test opt.reclevel (not DEPTH) against INFINITE_RECURSION.
3877
3878 2005-04-09  Hrvoje Niksic  <hniksic@xemacs.org>
3879
3880         * url.c: Use "static const" in preference to "const static".
3881         Sun's cc warns that "storage class after type is obsolescent".
3882
3883         * url.c (urlchr_table): Don't mark ~ as unsafe, too many broken
3884         web sites are confused when ~ is changed to %7E.  Their servers
3885         redirect /%7Efoo/ to /~foo/, which Wget again accesses using %7E,
3886         causing further redirections, therefore looping infinitely.  See
3887         Debian bug #301624 for an example.
3888
3889 2005-04-09  Hrvoje Niksic  <hniksic@xemacs.org>
3890
3891         * alloca.c: Include wget.h to be able to use xmalloc.  In addition
3892         to defining malloc to xmalloc, also define free to xfree.
3893
3894 2005-04-09  Hrvoje Niksic  <hniksic@xemacs.org>
3895
3896         * http-ntlm.c (ntlm_output): Use "char", not "unsigned char" for
3897         ntlmbuf.  Our base64 functions accept char anyway.
3898         (ntlm_output): Join up the format string, since we nominally
3899         support K&R compilers.
3900         (ntlm_output): Ditto.
3901
3902 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
3903
3904         * ptimer.c: Use Windows timers under Cygwin, whose POSIX timer
3905         implementation is incomplete.
3906
3907 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
3908
3909         * ptimer.c (struct ptimer): Remove the unused initialized field.
3910
3911         * ptimer.c: Renamed function parameters from WT (which used to
3912         stand for wget_timer or wtimer) to PT.
3913
3914 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
3915
3916         * ptimer.c (posix_init): Be smarter about choosing clocks.  In
3917         decreasing order of preference, use CLOCK_MONOTONIC,
3918         CLOCK_HIGHRES, and CLOCK_REALTIME.
3919         (ptimer_allocate): Removed.
3920
3921         * ptimer.c: Refactor the code by cleanly separating the
3922         architecture-dependent code from the architecture-independent
3923         code.
3924
3925 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
3926
3927         * ptimer.c (ptimer_init): Explicitly check that
3928         _POSIX_MONOTONIC_CLOCK is *both* defined and >=0.  (Undefined
3929         symbols are >=0.)
3930
3931 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
3932
3933         * ptimer.c (ptimer_diff): Fix typo affecting Windows build.
3934
3935 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
3936
3937         * ptimer.c (ptimer_init): In fact, _POSIX_MONOTONIC_CLOCK needs to
3938         be >= 0.
3939
3940         * ptimer.c (ptimer_init): Check whether _POSIX_MONOTONIC_CLOCK is
3941         defined instead of whether it's greater than 0.  glibc defines it
3942         to 0, but still makes it available via sysconf.
3943
3944 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
3945
3946         * mswindows.c (str_to_int64): Rename OVERFLOW and UNDERFLOW to
3947         INT64_OVERFLOW and INT64_UNDERFLOW, since those names are used.
3948
3949 2005-04-07  Hrvoje Niksic  <hniksic@xemacs.org>
3950
3951         * ptimer.c: New file.  Move the "wtimer" functions from utils.c to
3952         this file and rename them to ptimer_.
3953
3954 2005-04-07  Hrvoje Niksic  <hniksic@xemacs.org>
3955
3956         * host.c (NO_ADDRESS): Define NO_ADDRESS only after the system
3957         headers have been included.
3958
3959 2005-04-06  Hrvoje Niksic  <hniksic@xemacs.org>
3960
3961         * http.c (pconn): Include NTLM data, which is per-connection.
3962         (known_authentication_scheme_p): Recognize NTLM authorization.
3963         (create_authorization_line): Call ntlm_input and ntlm_output.
3964
3965         * http-ntlm.c: New file, donated by Daniel Stenberg and originally
3966         written for curl, heavily modified for Wget.
3967
3968         * utils.c (base64_encode): Relocated from http.c, since it is now
3969         used by http-ntlm.c, and will possibly be used elsewhere.
3970         (base64_decode): New function, originally based on code from GNU
3971         recode.
3972
3973 2005-04-02  Hrvoje Niksic  <hniksic@xemacs.org>
3974
3975         * ftp.c (ftp_loop): Ditto.
3976
3977         * ftp-basic.c (ftp_pasv): Use the xzero shorthand for memset(0).
3978         (ftp_lpsv): Ditto.
3979
3980 2005-04-05  Mauro Tortonesi  <mauro@ferrara.linux.it>
3981
3982         * Makefile.in: removed string_t.c from list of source files.
3983
3984 2005-04-04  Mauro Tortonesi  <mauro@ferrara.linux.it>
3985
3986         * string_t.c: Removed.
3987
3988         * string_t.h: Removed.
3989
3990 2005-04-02  Hrvoje Niksic  <hniksic@xemacs.org>
3991
3992         * url.c (rewrite_shorthand_url): Only accept recognized schemes.
3993         That way "foo:80" will correctly be rewritten to "http://foo:80"
3994         instead of left unchanged and ultimately rejected because of
3995         "unsupported scheme foo".
3996
3997 2005-03-31  Hrvoje Niksic  <hniksic@xemacs.org>
3998
3999         * utils.c (number_to_string): Avoid explicit 64-bit constants;
4000         construct them by multiplication at compile-time.
4001
4002         * utils.c, elsewhere: Don't append "L" to 32-bit integer
4003         constants; we aren't really compilable on 16-bit systems anyway.
4004
4005         * hash.c (prime_size): Remove primes larger than 2^31, but include
4006         2^31-1, which is prime.
4007
4008 2005-03-30  Hrvoje Niksic  <hniksic@xemacs.org>
4009
4010         * utils.c (string_set_to_array): New function.
4011
4012         * convert.c: Replace the use of "slists" with sets/hash-tables,
4013         which in fact suit the intended purpose much better.
4014         downloaded_html_list is removed altogether.
4015
4016 2005-03-29  Hrvoje Niksic  <hniksic@xemacs.org>
4017
4018         * ftp.h (enum): Rename GLOBALL, GETALL, and GETONE to
4019         GLOB_GLOBALL, GLOB_GETALL, and GLOB_GETONE to avoid conflict with
4020         Linux headers.
4021
4022 2005-03-29  Hrvoje Niksic  <hniksic@xemacs.org>
4023
4024         * utils.c (numdigit): More correct handling of negative numbers.
4025
4026 2005-03-21  Hrvoje Niksic  <hniksic@xemacs.org>
4027
4028         * http.c (gethttp): Print the human-readable size.
4029
4030         * ftp.c (getftp): Print the human-readable size of the file to be
4031         downloaded.
4032
4033         * utils.c (human_readable): New function.
4034
4035         * utils.c: Renamed "legible" to "with_thousand_seps",
4036         "legible_large_int" to "with_thousand_seps_large", and "legible_1"
4037         to "add_thousand_seps".
4038
4039 2005-03-21  Hrvoje Niksic  <hniksic@xemacs.org>
4040
4041         * http.c (gethttp): Inhibit persistent connections when talking to
4042         proxies, as mandated by RFC 2068.
4043
4044 2005-03-20  Hrvoje Niksic  <hniksic@xemacs.org>
4045
4046         * url.c (unescape_single_char): New function.
4047         (url_escape_dir): Use it to unescape slashes in directory
4048         components.
4049         (url_string): Escape unsafe chars in host name, except for the ':'
4050         charaters, which can appear in IPv6 addresses.
4051
4052         * main.c (main): Don't access the cookie jar directly.
4053
4054         * log.c (escnonprint_internal): Correctly calculate the needed
4055         string size.  Don't forget the buffer's new size after having
4056         reallocated it.
4057         (log_cleanup): New function.  Free the escnonprint ring data.
4058
4059         * init.c (cleanup): Don't free the cookie jar explicitly, it is
4060         now done by http_cleanup.
4061         (cleanup): opt.user_headers is now a vector, free it with
4062         free_vec.
4063
4064         * http.c (gethttp): Make sure to free the request data, the status
4065         message, and the response data before returning from the function.
4066         (save_cookies): New function.
4067         (http_cleanup): Free the cookie jar here.
4068
4069         * hash.c: Renamed string_hash to hash_string and ptrhash to
4070         hash_pointer.  Exported hash_pointer.
4071
4072         * xmalloc.c: Organized malloc_table (previously malloc_debug) as a
4073         simple EQ hash table.  register_ptr and unregister_ptr are now of
4074         O(1) complexity.
4075
4076         * xmalloc.c: Renamed "*_debug" to debugging_* and "*_real" to
4077         checking_*.
4078
4079 2005-03-12  Hrvoje Niksic  <hniksic@xemacs.org>
4080
4081         * utils.c (debug_test_md5): Moved to gen-md5.c.
4082
4083         * mswindows.h: Don't declare inet_ntop, since we don't use it.
4084
4085         * mswindows.h: For consistency, also wrap closesocket, it being
4086         a Winsock call.
4087
4088         * mswindows.h: Don't declare sleep and usleep; we're defining
4089         xsleep now.
4090
4091         * mswindows.h (mkdir): Don't special-case Borland C, _mkdir
4092         works there as well.
4093
4094         * host.c: Don't include winsock header files; the correct ones
4095         are already included by mswindows.h.
4096
4097         * mswindows.c (xsleep): Round toward the nearest millisecond
4098         in an attempt to avoid average short sleeps.
4099
4100         * utils.c (wtimer_granularity): Report correct values for
4101         Windows timers and for high-resolution timers.
4102
4103         * utils.c (wtimer_initialize_once): New function, called to
4104         initialize the timer frequency.
4105
4106         * utils.c: Replace the use of GetSystemTime with high-resolution
4107         counters under Windows.  When high-resolution counters are
4108         unavailable, use GetTickCount().
4109
4110 2005-03-15  Hrvoje Niksic  <hniksic@xemacs.org>
4111
4112         * retr.c (fd_read_body): Undo the 2004-11-18 change.  Instead,
4113         always be "exact".
4114
4115 2005-03-17  Hrvoje Niksic  <hniksic@xemacs.org>
4116
4117         * ftp-basic.c (ftp_login): Don't free the string if ftp_response
4118         returned an error status because the line didn't get allocated in
4119         the first place.
4120
4121 2005-03-15  Hrvoje Niksic  <hniksic@xemacs.org>
4122
4123         * http.c (read_http_response_head): Limit the response size to 64k
4124         bytes.
4125
4126         * retr.c (fd_read_hunk): Accept a MAXSIZE argument that limits the
4127         number of bytes the function is allowed to allocate.
4128         (fd_read_line): Limit the line to 4096 bytes.
4129
4130 2005-03-12  Hrvoje Niksic  <hniksic@xemacs.org>
4131
4132         * wget.h: Include options.h after wgint has been defined.
4133
4134         * options.h (struct options): Declare options processed with
4135         cmd_bytes as wgint, not long.
4136
4137 2005-03-18  Hrvoje Niksic  <hniksic@xemacs.org>
4138
4139         * init.c (cmd_file): Use concat_strings.
4140
4141         * http.c (basic_authentication_encode): Use concat_strings.
4142
4143         * ftp-ls.c (ftp_index): Use concat_strings.
4144
4145         * ftp-basic.c (ftp_request): Use concat_strings.
4146
4147         * utils.c (concat_strings): New function.
4148
4149 2005-03-12  Hrvoje Niksic  <hniksic@xemacs.org>
4150
4151         * init.c (simple_atof): Handle negative numbers; skip whitespace
4152         before the number.
4153         (simple_atoi): Ditto.  Also, check for overflow and underflow.
4154         (cmd_number): Bail out on negative numbers.
4155         (parse_bytes_helper): Ditto.
4156
4157 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
4158
4159         * http.c (gethttp): Handle multiple Set-Cookie headers sent by
4160         remote server.
4161
4162 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
4163
4164         * init.c (defaults): Use passive FTP by default.
4165
4166 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
4167
4168         * mswindows.c: Provide wrappers to Winsock functions that set
4169         errno to WSAGetLastError() in case of failure.  Also provide a
4170         Windows-specific version of strerror.
4171
4172         * mswindows.h: Wrap calls to socket, bind, connect, recv, send,
4173         select, getsockname, getpeername, and setsockopt.
4174
4175 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
4176
4177         * url.c (url_parse): Reject port numbers larger than 65535.  We
4178         also check for overflow while parsing port numbers.
4179
4180 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
4181
4182         * utils.c (read_file): Don't use wgint for file size; LFS won't
4183         work since the file is mmap'ed as a whole.
4184
4185         * options.h: Don't include stdio.h.
4186
4187         * log.c: Ditto.
4188
4189         * init.c: Disambiguate assignment from non-zero test to avoid
4190         Borland C warning.
4191
4192         * http.c (response_new): Don't needlessly post-increment count.
4193
4194         * hash.c: Include stdio.h.
4195
4196         * gnu-md5.h: Don't include stdio.h.
4197
4198         * getopt.h (struct option): Always use const.
4199
4200         * ftp.c (getftp): Avoid unnecessary assignment to RES to avoid
4201         Borland C warning.
4202
4203         * ftp-ls.c: Disambiguate assignment from non-zero test to avoid
4204         Borland C warning.
4205
4206         * cmpt.c (strptime_internal): Don't initialize rp_backup when
4207         !_NL_CURRENT to avoid Borland C warning.
4208
4209 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
4210
4211         * utils.c (fopen_excl): Fix parse error when O_BINARY is
4212         available.
4213
4214 2005-03-05  Hrvoje Niksic  <hniksic@xemacs.org>
4215
4216         * url.c (url_file_name): Don't allow hosts named ".." to be
4217         appended as path elements.
4218
4219 2005-03-03  Hrvoje Niksic  <hniksic@xemacs.org>
4220
4221         * retr.c (retrieve_url): Escape location header.
4222
4223         * http.c (print_server_response_1): Escape server response when
4224         printing it.
4225         (gethttp): Escape host name, status message, location header, and
4226         content type.
4227         (http_loop): Escape error message from server.
4228
4229         * host.c (lookup_host): Escape host name when printing it.
4230
4231         * ftp.c (getftp): Escape user name when printing it.
4232         (getftp): Escape remote file and directory for printing.
4233         (getftp): Escape server listing when printing it.
4234         (ftp_retrieve_list): Escape link name and file name.
4235         (ftp_retrieve_glob): Escape file name.
4236
4237         * ftp-basic.c (ftp_response): Escape server response when printing
4238         it.
4239
4240         * cookies.c (parse_set_cookies): Escape the cookie field when
4241         printing it.
4242         (parse_set_cookies): Escape contents of remote header.
4243         (cookie_handle_set_cookie): Escape host name and cookie domain.
4244
4245         * connect.c (connect_to_ip): Escape the host name.
4246
4247         * log.c (escnonprint): New function, used for printing strings
4248         coming from the server that possibly contain non-ASCII characters.
4249         (escnonprint_uri): Ditto.
4250
4251 2005-02-24  Hrvoje Niksic  <hniksic@xemacs.org>
4252
4253         * ftp.c (getftp): Ditto.
4254
4255         * http.c (gethttp): When we're not supposed to overwrite files,
4256         use fopen_excl to open the file and recompute the file name.
4257
4258         * log.c (redirect_output): Use unique_create to avoid a race
4259         condition.
4260
4261         * mswindows.c (fake_fork_child): Use unique_create.
4262
4263         * utils.c (fopen_excl): New function that opens a stdio stream
4264         with the O_EXCL flag (where available).
4265         (unique_create): New function, like unique_name, but also creating
4266         the file and returning a file pointer.
4267         (fork_to_background): Use unique_create to create the file
4268         immediately to avoid race condition with multiple instances of
4269         wget -b.
4270
4271 2005-02-24  Hrvoje Niksic  <hniksic@xemacs.org>
4272
4273         * host.c (lookup_host): Test for AI_ADDRCONFIG directly, instead
4274         of checking for HAVE_GETADDRINFO_AI_ADDRCONFIG.
4275
4276 2005-02-23  Hrvoje Niksic  <hniksic@xemacs.org>
4277
4278         * host.c (is_valid_ipv6_address): Move here from url.c.
4279         (lookup_host): If the address is numeric, don't print the
4280         "resolving..." line, don't set up DNS timeouts, and set the
4281         AI_NUMERICHOST hint, where available.
4282
4283 2005-02-26  Gisle Vanem  <giva@bgnett.no>
4284
4285         * utils.c: Use the nnnLL syntax under GCC.  Define struct_stat to
4286         struct _stati64 under __MINGW32__ as well as under MS VC.
4287
4288 2005-02-26  Hrvoje Niksic  <hniksic@xemacs.org>
4289
4290         * utils.c: Use the nnnI64 syntax for __int64 constants under all
4291         Windows compilers.
4292         (SPRINTF_WGINT): Use "%I64" under all Windows compilers.
4293
4294         * mswindows.h (WGINT_MAX): Use the nnnI64 syntax for
4295         __int64 constants under all Windows compilers.
4296         (struct_stat): Use `struct stati64' under Borland C.
4297         (fstat): Don't redefine to _fstati64 under Borland.
4298
4299         * mswindows.c: Define str_to_int64 under Borland C as well as
4300         under (older) Visual C.
4301
4302 2005-02-25  Hrvoje Niksic  <hniksic@xemacs.org>
4303
4304         * ftp.c (getftp): Initialize err to suppress compiler warning.
4305
4306 2005-02-24  Hrvoje Niksic  <hniksic@xemacs.org>
4307
4308         * ftp.c (ftp_expected_bytes): Fix bug that caused infloop because
4309         of not correctly skipping the '(' character.
4310
4311 2005-02-24  Hrvoje Niksic  <hniksic@xemacs.org>
4312
4313         * mswindows.c (wget_ftello): Removed.
4314
4315         * mswindows.h: Remove bogus definition of stat.
4316         (wget_ftello): Remove the leftover ftello replacement.
4317
4318 2005-02-20  Hrvoje Niksic  <hniksic@xemacs.org>
4319
4320         * mswindows.c (wget_ftello): Wget's replacement for ftello.
4321
4322         * utils.c (file_size): Use ftello where available.
4323
4324         * ftp-ls.c (ftp_parse_unix_ls): Use str_to_wgint to parse the file
4325         size.
4326         (ftp_parse_winnt_ls): Ditto.
4327
4328         * ftp-basic.c (ftp_size): Use str_to_wgint to convert number to
4329         wgint; pass 10 instead of 0 as the BASE argument.
4330
4331         * ftp.c (ftp_expected_bytes): Use str_to_wgint to parse the file
4332         size.
4333
4334         * sysdep.h (LARGE_INT_FMT): Use __int64 as LARGE_INT on
4335         MSVC/Windows; print it with "%I64".
4336
4337         * wget.h: Define a `wgint' type, normally aliased to (the possibly
4338         64-bit variant of) off_t.
4339
4340         * all: Use `wgint' instead of `long' for numeric variables that
4341         can hold file sizes.
4342
4343         * utils.c (number_to_string): Support printing of `wgint'
4344         argument.
4345         (number_to_static_string): New function.
4346
4347         * all: Replace printf("%ld", long_value) with printf("%s",
4348         number_to_static_string(wgint_value)).
4349
4350 2005-02-18  Mauro Tortonesi <mauro@ferrara.linux.it>
4351
4352         * main.c: Added the --ftp-passwd command line option.
4353
4354         * init.c: Renamed command passwd to ftppasswd.
4355
4356 2005-02-11  Mauro Tortonesi <mauro@ferrara.linux.it>
4357
4358         * string_t.c: Fixed a bug in do_escape and triggered escape of
4359         backslashes in string_escape to avoid ambiguities in the result
4360         string.
4361
4362 2005-02-10  Mauro Tortonesi <mauro@ferrara.linux.it>
4363
4364         * string.h: Renamed to string_t.h to fix a compilation conflict
4365         with the string.h header in the standard C library.
4366
4367         * string.c: Renamed to string_t.c for consistency with string.h.
4368
4369         * string_t.c: Ditto.
4370
4371         * string_t.h: Ditto.
4372
4373 2004-12-31  Mauro Tortonesi <mauro@ferrara.linux.it>
4374
4375         * string.c: New file.
4376
4377         * string.h: New file.
4378
4379         * Makefile.in: Added string.c to the list of modules to compile.
4380
4381         * main.c: Updated copyright.
4382
4383 2004-11-18  Ulf Harnhammar <ulf.harnhammar.9485@student.uu.se>
4384
4385         * ftp-ls.c: Fixed a problem in ftp_parse_winnt_ls that could allow a
4386         malicious remote FTP server to crash wget.
4387
4388 2004-11-18  Hans-Andreas Engel <engel@node.ch>
4389
4390         * http.c: Enable --convert-links (-k) when a single page is downloaded
4391         via --output-document (-O).
4392
4393 2004-11-18  Mauro Tortonesi <mauro@deepspace6.net>
4394
4395         * connect.c: Minor correction to the comment in front of fd_peek.
4396
4397 2004-11-18  Leonid Petrov <nouser@lpetrov.net>
4398
4399         * retr.c: Fix a timeout problem in fd_read_body when using http_proxy.
4400
4401 2004-11-15  YAMAZAKI Makoto <Yamazaki.Makoto@fujixerox.co.jp>
4402
4403         * netrc.c: Fix termination by assertion bug in netrc parsing.
4404
4405 2004-05-09  David Fritz  <zeroxdf@att.net>
4406
4407         * mswindows.c (fake_fork): Pass entire command line to the child
4408         process.
4409
4410 2004-03-31  Hrvoje Niksic  <hniksic@xemacs.org>
4411
4412         * http.c (gethttp): Fix typo: SCHEME_SSL -> SCHEME_HTTPS.
4413
4414 2004-03-30  Hrvoje Niksic  <hniksic@xemacs.org>
4415
4416         * http.c (gethttp): Send the Proxy-Authorization header over
4417         non-SSL connections too.
4418
4419 2004-03-25  David Fritz  <zeroxdf@att.net>
4420
4421         * mswindows.c (fake_fork_child): Ignore error code when
4422         OpenFileMapping() fails; assume it failed because the object does
4423         not exist.
4424
4425 2004-03-24  David Fritz  <zeroxdf@att.net>
4426
4427         * mswindows.c (fake_fork): New function.
4428
4429         * mswindows.c (fork_to_background): Use it.
4430
4431 2004-03-19  David Fritz  <zeroxdf@att.net>
4432
4433         * mswindows.c (ws_hangup): Incorporate old fork_to_background()
4434         code.  Add event name argument.
4435         (fork_to_backgorund): Now a simple wrapper around ws_hangup().
4436         (ws_handler): Correctly handle the case when neither CTRLC_BACKGND
4437         nor CTRLBREAK_BACKGND are defined.  Don't bother handling close,
4438         logoff, or shutdown events.  Call ws_hangup() with the correct
4439         event name; don't assume it was CTRL+Break.
4440
4441 2004-03-19  Hrvoje Niksic  <hniksic@xemacs.org>
4442
4443         * url.c (url_parse): Decode %HH sequences in host name.
4444
4445 2004-03-04  Hrvoje Niksic  <hniksic@xemacs.org>
4446
4447         * convert.c (local_quote_string): Quote "#" as "%23" and "%" as
4448         "%25" when creating links to local files.
4449
4450 2004-03-02  David Fritz  <zeroxdf@att.net>
4451
4452         * mswindows.c (ws_percenttitle): Guard against future changes by
4453         doing nothing if the proper variables have not been initialized.
4454         Clamp percentage value.
4455
4456 2004-03-04  Gisle Vanem  <giva@bgnett.no>
4457
4458         * retr.c (fd_read_body): Don't change console title if quiet.
4459
4460 2004-02-25  David Fritz  <zeroxdf@att.net>
4461
4462         * mswindows.c (set_sleep_mode): Remove argument and return value.
4463         Call GetModuleHandle() instead of LoadLibrary()/FreeLibrary() for
4464         kernel32.dll.  Use typedef for function-pointer.  Don't cast
4465         l-value.  Don't use dereference operator when calling through
4466         function-pointer.
4467         (ws_startup): Update call to set_sleep_mode().
4468         (ws_cleanup): Remove call to set_sleep_mode().
4469
4470 2004-02-23  David Fritz  <zeroxdf@att.net>
4471
4472         * http.c (http_loop): Ditto.
4473
4474         * ftp.c (ftp_loop_internal): Update call to ws_changetitle().
4475
4476         * main.c (main): Don't bother calling ws_changetitle().
4477
4478         * mswindows.h (ws_changetitle): Update prototype.
4479
4480         * mswindows.c (ws_changetitle): Remove second argument.  Use
4481         xfree_null().
4482         (ws_percenttitle): Only update title when percentage has changed.
4483
4484 2004-02-23  David Fritz  <zeroxdf@att.net>
4485
4486         * mswindows.h: Ditto.
4487
4488         * mswindows.c: Misc. formatting/comment tweaks throughout.
4489
4490 2004-02-20  David Fritz  <zeroxdf@att.net>
4491
4492         * main.c (print_help): Remove call to ws_help().
4493
4494         * mswindows.c (ws_help): Remove.
4495
4496         * mswindows.h (ws_help): Remove.
4497
4498 2004-02-16  David Fritz  <zeroxdf@att.net>
4499
4500         * init.c (home_dir): Use aprintf() instead of xmalloc()/sprintf().
4501         Under Windows, if $HOME is not defined, use the directory that
4502         contains the Wget binary instead of hard-coded `C:\'.
4503         (wgetrc_file_name): Under Windows, look for $HOME/.wgetrc then, if
4504         not found, look for wget.ini in the directory of the Wget binary.
4505
4506         * mswindows.c (ws_mypath): Employ slightly more robust methodology.
4507         Strip trailing path separator.
4508
4509 2004-02-06  Hrvoje Niksic  <hniksic@xemacs.org>
4510
4511         * http.c (gethttp): Respect --ignore-length.
4512         (gethttp): Inhibit keep-alive if --ignore-length is specified.
4513
4514 2004-02-06  Hrvoje Niksic  <hniksic@xemacs.org>
4515
4516         * connect.c (sockaddr_set_data): Zero out
4517         sockaddr_in/sockaddr_in6.  Apparently BSD-derived stacks need this
4518         when binding a socket to local address.
4519
4520 2004-02-04  Hrvoje Niksic  <hniksic@xemacs.org>
4521
4522         * hash.c: Make the file compilable outside Wget source tree when
4523         -DSTANDALONE is used.
4524
4525 2004-01-29  Hrvoje Niksic  <hniksic@xemacs.org>
4526
4527         * utils.c (determine_screen_width): Return 0 if not running on
4528         Windows or on a TIOCGWINSZ-capable system.
4529
4530 2004-01-28  David Fritz  <zeroxdf@att.net>
4531
4532         * utils.c (determine_screen_width): Correctly determine console
4533         width under Windows.
4534
4535 2004-01-28  Christian Biere  <christianbiere@gmx.de>
4536
4537         * progress.c (bar_set_params): Fixed syntax error when HAVE_ISATTY
4538         was undefined.
4539
4540         * ftp.c (ftp_loop_internal): Allocate a larger buffer in case
4541         "try" gets translated to something large.  Ditto in http_loop in
4542         http.c.
4543
4544         * http.c (response_header_copy): Don't write to buf[BUFSIZE].
4545
4546         * ftp-opie.c (skey_response): Eliminate unnecessary string
4547         concatenation; just call gen_md5_update twice.
4548
4549 2004-01-25  Hrvoje Niksic  <hniksic@xemacs.org>
4550
4551         * utils.c (xsleep): Don't call usleep with values larger than
4552         1,000,000.
4553
4554 2003-12-16  Hrvoje Niksic  <hniksic@xemacs.org>
4555
4556         * http.c (gethttp): Fix generation of `Content-Length'.
4557
4558 2003-12-15  Gisle Vanem  <giva@bgnett.no>
4559
4560         * url.c (url_skip_credentials): Fixed return value; 'url' if no
4561         credentials.
4562
4563 2003-12-14  Hrvoje Niksic  <hniksic@xemacs.org>
4564
4565         * url.c (url_skip_credentials): Return a pointer directly.
4566
4567 2003-12-14  Hrvoje Niksic  <hniksic@xemacs.org>
4568
4569         * url.c (url_file_name): Ditto.
4570         (parse_errors): Ditto.
4571
4572         * retr.c (retr_rate): Ditto.
4573
4574         * progress.c (create_image): Ditto.
4575
4576         * netrc.c (parse_netrc): Ditto.
4577
4578         * main.c (struct cmdline_option): Ditto.
4579         (redirect_output_signal): Ditto.
4580
4581         * init.c (commands): Ditto.
4582
4583         * ftp-ls.c (ftp_index): Ditto.
4584
4585         * cookies.c (check_domain_match): Declare the pointer to a literal
4586         string as `const'.
4587
4588 2003-12-12  Hrvoje Niksic  <hniksic@xemacs.org>
4589
4590         * retr.c (fd_read_body): Pass total size to progress_create, not
4591         the remaining amount.
4592
4593 2003-12-12  Hrvoje Niksic  <hniksic@xemacs.org>
4594
4595         * retr.c (fd_read_body): Don't fiddle with "interactive timeout"
4596         if read timeout is unset.
4597
4598 2003-12-12  Hrvoje Niksic  <hniksic@xemacs.org>
4599
4600         * connect.c (bind_local): Don't set the IPV6_V6ONLY option on the
4601         socket.
4602
4603 2003-12-06  Hrvoje Niksic  <hniksic@xemacs.org>
4604
4605         * url.c (url_file_name): Respect the setting of
4606         opt.protocol_directories.
4607
4608         * main.c (main): Only check for ret=='?' when longindex is unset.
4609         (option_data): New option --protocol-directories.
4610
4611 2003-12-06  Hrvoje Niksic  <hniksic@xemacs.org>
4612
4613         * ftp.c (getftp): Ditto.
4614
4615         * http.c (gethttp): Correctly calculate bandwidth as total data
4616         read divided with download time.
4617
4618         * retr.c (fd_read_body): Separate the return values for data
4619         written and read.
4620
4621 2003-12-05  Hrvoje Niksic  <hniksic@xemacs.org>
4622
4623         * http.c (H_REDIRECTED): Respect the HTTP/1.1 "303 See Other"
4624         response code.
4625         Suggested by Dan Razzell.
4626
4627 2003-11-30  Hrvoje Niksic  <hniksic@xemacs.org>
4628
4629         * retr.c (fd_read_body): Report the amount of data *written* as
4630         amount_read.  This is not entirely logical, but that's what the
4631         callers expect, and it's not easy to change.
4632
4633         * ftp.c (ftp_loop_internal): Ditto.
4634
4635         * http.c (http_loop): Be smarter about assigning restval; if we're
4636         in the nth pass of a download, simply use the information we have
4637         about how much data has been retrieved as restval.
4638
4639         * ftp.c (getftp): Ditto for FTP "REST" command.
4640
4641         * http.c (gethttp): When the server doesn't respect range, skip
4642         the first RESTVAL bytes of the read body.  Never truncate the
4643         output file.
4644
4645         * retr.c (fd_read_body): Support skipping initial STARTPOS octets.
4646
4647 2003-11-30  Hrvoje Niksic  <hniksic@xemacs.org>
4648
4649         * http.c (skip_short_body): Renamed skip_body to skip_short_body;
4650         don't bother calling fd_read_body.
4651
4652 2003-11-30  Hrvoje Niksic  <hniksic@xemacs.org>
4653
4654         * retr.c (fd_read_body): Sanitize arguments and document them
4655         better.  Make sure the timer is created and updated only if
4656         necessary.  Updated callers.
4657
4658 2003-11-30  Hrvoje Niksic  <hniksic@xemacs.org>
4659
4660         * http.c (skip_body): New function.
4661         (gethttp): Use it to skip the body of the responses we don't care
4662         to download.  That allows us to reuse the connection.
4663         (gethttp): Trust that the HEAD requests will not generate body
4664         data.
4665
4666         * retr.c (fd_read_body): Don't write to OUT if it's NULL.
4667
4668 2003-11-29  Hrvoje Niksic  <hniksic@xemacs.org>
4669
4670         * http.c (gethttp): Initialize SSL only the first time when SSL
4671         URL is downloaded.
4672
4673 2003-11-29  Hrvoje Niksic  <hniksic@xemacs.org>
4674
4675         * cookies.c (cookie_header): Only generate the contents of the
4676         header, not the leading "Cookie: " or the trailing "\r\n".
4677
4678         * http.c (gethttp): When adding headers specified with `--header',
4679         allow them to override the headers generated by Wget.
4680
4681         * init.c (cmd_spec_header): Made opt.user_headers a vector.
4682
4683         * http.c (request_new): New function.  Returns a request structure
4684         which can be modified in various ways, most notably by adding HTTP
4685         headers to the request.
4686         (request_set_header): New function for adding the header to the
4687         request.  If the header is already available, it gets replaced.
4688         (request_send): Construct and send the request.
4689         (gethttp): Use the request_* functions to generate the request.
4690
4691 2003-11-28  Hrvoje Niksic  <hniksic@xemacs.org>
4692
4693         * http.c (gethttp): Don't include the Proxy-Authorization header
4694         in the request tunneled through proxy.
4695
4696 2003-11-28  Hrvoje Niksic  <hniksic@xemacs.org>
4697
4698         * http.c (gethttp): Use the CONNECT handle to establish SSL
4699         passthrough through non-SSL proxies.
4700
4701 2003-11-28  Hrvoje Niksic  <hniksic@xemacs.org>
4702
4703         * init.c: Don't #include netinet/Winsock stuff.
4704
4705 2003-11-28  Hrvoje Niksic  <hniksic@xemacs.org>
4706
4707         * http.c: Deleted the old functions header_process,
4708         header_extract_number, header_exists, header_strdup,
4709         http_process_range, http_process_none, http_process_type, and
4710         http_process_connection.
4711
4712         * http.c (response_new): New function.
4713         (response_header_bounds): Ditto.
4714         (response_header_copy): Ditto.
4715         (response_header_strdup): Ditto.
4716         (response_status): Ditto.
4717         (gethttp): Use the new response_* functions to parse the response.
4718         Support HTTP/0.9 responses.
4719
4720 2003-11-27  Hrvoje Niksic  <hniksic@xemacs.org>
4721
4722         * progress.c (create_image): Don't calculate ETA if nothing has
4723         been downloaded yet, because it causes division by zero.
4724
4725 2003-11-27  Hrvoje Niksic  <hniksic@xemacs.org>
4726
4727         * connect.c (bind_local): Rename sa_len to addrlen because IRIX
4728         headers define sa_len as a macro.
4729
4730 2003-11-26  Hrvoje Niksic  <hniksic@xemacs.org>
4731
4732         * html-parse.c (convert_and_copy): Remove embedded newlines when
4733         AP_TRIM_BLANKS is specified.
4734
4735 2003-11-26  Hrvoje Niksic  <hniksic@xemacs.org>
4736
4737         * ftp.c: Set con->csock to -1 where rbuf_uninitialize was
4738         previously used.
4739
4740 2003-11-26  Hrvoje Niksic  <hniksic@xemacs.org>
4741
4742         * Makefile.in (http$o): Added the trailing backslash that was
4743         missing.
4744
4745 2003-11-21  Hrvoje Niksic  <hniksic@xemacs.org>
4746
4747         * headers.c: Removed.  The file is no longer relevant, now that no
4748         special handling of headers is done by the rbuf code.  Moved
4749         portions to http.c.
4750
4751 2003-11-21  Hrvoje Niksic  <hniksic@xemacs.org>
4752
4753         * rbuf.c: Removed.
4754
4755         * ftp-basic.c (ftp_response): Use fd_read_line.  No longer use
4756         struct rbuf.  Updated all callers.
4757
4758         * http.c (gethttp): Use fd_read_head to read all the headers in
4759         one go.
4760         (next_header): New function.
4761
4762         * retr.c (fd_read_line): New function: reads a line from FD,
4763         leaving the rest of the data unread.
4764         (fd_read_head): New function.
4765
4766         * connect.c (fd_peek): New function, implements peeking.
4767         (poll_internal): New function.
4768         (fd_read): Use it.
4769         (fd_write): Ditto.
4770         (fd_peek): Ditto.
4771         (fd_register_transport): Allow registering a "peeker" callback.
4772
4773 2003-11-20  Hrvoje Niksic  <hniksic@xemacs.org>
4774
4775         * connect.c: Renamed xread/xwrite/xclose to
4776         fd_read/fd_write/fd_close.  The "x" prefix is not appropriate
4777         because the semantics have diverged from read/write/close too
4778         significantly.  Updated all callers.
4779
4780 2003-11-20  Hrvoje Niksic  <hniksic@xemacs.org>
4781
4782         * connect.c (sock_write): It's not necessary to initialize RES.
4783
4784 2003-11-19  Hrvoje Niksic  <hniksic@xemacs.org>
4785
4786         * main.c (main): Don't reference opt.ipv4_only and opt.ipv6_only
4787         if IPv6 is disabled.
4788
4789 2003-11-19  Hrvoje Niksic  <hniksic@xemacs.org>
4790
4791         * connect.c (socket_has_inet6): Only compile it if IPv6 is enabled
4792         and AI_ADDRCONFIG is missing.
4793
4794 2003-11-18  Hrvoje Niksic  <hniksic@xemacs.org>
4795
4796         * gen_sslfunc.c (ssl_init_prng): Warn the user when using a weak
4797         random seed.
4798
4799 2003-11-18  Hrvoje Niksic  <hniksic@xemacs.org>
4800
4801         * host.c (address_list_contains): Renamed address_list_find to
4802         address_list_contains because its result is boolean.
4803
4804 2003-11-18  Hrvoje Niksic  <hniksic@xemacs.org>
4805
4806         * connect.c (select_fd): Return 1 if select is not available.
4807
4808 2003-11-17  Hrvoje Niksic  <hniksic@xemacs.org>
4809
4810         * connect.c (connect_to_host): Don't reference address list after
4811         releasing it.
4812
4813 2003-11-17  Hrvoje Niksic  <hniksic@xemacs.org>
4814
4815         * main.c (print_help): Fix alignment of FTP options output.
4816
4817 2003-11-17  Hrvoje Niksic  <hniksic@xemacs.org>
4818
4819         * host.c (lookup_host): Check for the ability to create IPv6
4820         sockets here.
4821
4822         * init.c (defaults): Don't auto-set --inet4-only on IPv6-less
4823         systems.
4824
4825 2003-11-16  Hrvoje Niksic  <hniksic@xemacs.org>
4826
4827         * main.c (print_help): Fix typo in `-O' help message.  Fix docs of
4828         -Y/--proxy.  Fix docs of `--cookies' and `--glob'.  Improve docs
4829         of --convert-links.  Fix docs of SSL options.
4830
4831 2003-11-16  Hrvoje Niksic  <hniksic@xemacs.org>
4832
4833         * ftp-basic.c: Don't include <arpa/inet.h> and others because
4834         they're no longer needed.
4835
4836 2003-11-16  Hrvoje Niksic  <hniksic@xemacs.org>
4837
4838         * main.c (main): Don't allow setting of both opt.ipv4_only and
4839         opt.ipv6_only.
4840
4841         * init.c (defaults): Mark opt.ipv4_only specially when set
4842         automatically.
4843
4844 2003-11-15  Hrvoje Niksic  <hniksic@xemacs.org>
4845
4846         * host.c (lookup_host): Use AI_ADDRCONFIG only if the family is
4847         unspecified.  This ensures that specifying `--no-inet4' on systems
4848         where IPv6 resolves, but doesn't work behaves the same regardless
4849         of the availability of AI_ADDRCONFIG.
4850
4851 2003-11-15  Hrvoje Niksic  <hniksic@xemacs.org>
4852
4853         * host.c: Don't refer to the now-removed function
4854         forget_host_lookup in the documentation of lookup_host.
4855
4856 2003-11-15  Hrvoje Niksic  <hniksic@xemacs.org>
4857
4858         * http.c (persistent_available_p): Correctly specify the endpoint
4859         argument to socket_ip_address.
4860         (gethttp): When printing the "reusing connection to..." message,
4861         specify the host name of the reused connection, not the current
4862         host name.  That makes more sense because it provides a useful
4863         piece of information -- we know to which host we're supposed to
4864         connect anyway!
4865
4866 2003-11-15  Hrvoje Niksic  <hniksic@xemacs.org>
4867
4868         * init.c: Make sure the options are in alphabetic order!
4869
4870         * host.c (lookup_host): Merge lookup_host_passive and lookup_host
4871         after all -- having both would result in some code duplication.
4872         (lookup_host): Set hints.ai_family to AF_INET if ipv4_only is
4873         requested.  Likewise, set it to AF_INET6 for ipv6_only.  Specify
4874         AI_ADDRCONFIG where available.
4875         (lookup_host): New flag LH_REFRESH that specifies that a cached
4876         entry for HOST should be refreshed.
4877         (cache_query): New function.
4878         (cache_store): Ditto.
4879         (cache_remove): Ditto.
4880         (forget_host_lookup): No longer necessary, replaced with static
4881         function cache_remove.
4882
4883 2003-11-14  Hrvoje Niksic  <hniksic@xemacs.org>
4884
4885         * main.c: Enable -4 and -6 only if IPv6 is enabled.
4886
4887 2003-11-14  Hrvoje Niksic  <hniksic@xemacs.org>
4888
4889         * connect.c (register_transport): Renamed from register_extended.
4890         Explain the intended usage.
4891
4892 2003-11-14  Hrvoje Niksic  <hniksic@xemacs.org>
4893
4894         * url.c (uri_merge): Merging "foo" and "bar" should result in
4895         "bar", not in "foo/bar".
4896         (path_simplify): Don't remove empty path elements; don't
4897         special-case leading slash.
4898         (path_simplify): Don't swallow ".."'s at the beginning of string.
4899         E.g. simplify "foo/../../bar" as "../bar", not as "bar".
4900         (append_uri_pathel): Defang ".." path element upon encountering
4901         it.
4902
4903 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
4904
4905         * http.c (persistent_available_p): Don't attempt to talk to two
4906         different SSL sites over the same secure connection.
4907
4908 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
4909
4910         * http.c (gethttp): Ditto.
4911
4912         * ftp.c (getftp): Use retryable_socket_connect_error instead of
4913         CONNECT_ERROR.
4914
4915         * wget.h (CONNECT_ERROR): Removed.
4916
4917         * connect.c (retryable_socket_connect_error): New function instead
4918         of unsupported_socket_family_error.
4919
4920 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
4921
4922         * wget.h (CONNECT_ERROR): Use it.
4923
4924         * connect.c (unsupported_socket_family_error): New function.
4925
4926 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
4927
4928         * connect.c (bind_local): Renamed bindport to bind_local; return
4929         the socket directly.  Updated callers.
4930         (accept_connection): Renamed acceptport to accept_connection;
4931         return the created socket directly.  Updated callers.
4932
4933 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
4934
4935         * init.c (defaults): Turn on opt.ipv4_only if we're compiling with
4936         IPv6, and AI_ADDRINFO is not available, and AF_INET6 sockets can't
4937         be created.
4938
4939 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
4940
4941         * host.c (lookup_host): Document the fact that the addresses are
4942         returned in order.
4943
4944 2003-11-12  Hrvoje Niksic  <hniksic@xemacs.org>
4945
4946         * utils.c: Use limits.h only where available.
4947
4948         * hash.c: Use INVALID_PTR and INVALID_PTR_BYTE.  Include limits.h.
4949
4950 2003-11-11  Hrvoje Niksic  <hniksic@xemacs.org>
4951
4952         * main.c: Added options --inet4-only and --inet6-only.
4953
4954 2003-11-11  Hrvoje Niksic  <hniksic@xemacs.org>
4955
4956         * host.c (host_errstr): Use the more standard message "Unknown
4957         host".
4958
4959 2003-11-10  Hrvoje Niksic  <hniksic@xemacs.org>
4960
4961         * connect.c (connect_to_host): Use that flag to decide whether to
4962         re-resolve the host name.
4963
4964         * host.c (struct address_list): Added a flag that maintains
4965         whether the connection worked at some point.
4966
4967 2003-11-10  Hrvoje Niksic  <hniksic@xemacs.org>
4968
4969         * host.c (lookup_host): Special-case the numeric addresses only in
4970         the non-IPv6 case.
4971
4972 2003-11-10  Hrvoje Niksic  <hniksic@xemacs.org>
4973
4974         * connect.c (resolve_bind_address): Call lookup_host_passive.
4975         Make sure that opt.bind_address is resolved only once.
4976
4977         * host.c (lookup_host_passive): New function, handles "passive"
4978         lookups.
4979         (lookup_host): Remove the passive flags.  Remove the
4980         family-related flags -- use ip_default_family instead.
4981
4982 2003-11-09  Hrvoje Niksic  <hniksic@xemacs.org>
4983
4984         * html-url.c: Get URLs from <object data="...">.
4985
4986 2003-11-09  Hrvoje Niksic  <hniksic@xemacs.org>
4987
4988         * main.c (option_data): Specify the command to use for --mirror.
4989
4990 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4991
4992         * cookies.c (cookie_handle_set_cookie): Specify exact match for
4993         unspecified domains.
4994
4995 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
4996
4997         * main.c (main): Removed one-letter options `-C', `-g', `-G', and
4998         `-s'.
4999
5000 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
5001
5002         * main.c (main): Add --dont-remove-listing for backward
5003         compatibility with previous versions.
5004         (print_help): Fix typo, spotted by Dennis Smit.
5005
5006 2003-11-08  Gisle Vanem  <giva@bgnett.no>
5007
5008         * ftp-basic.c: Support Windows-2000 ftp servers. Win-2000 *is*
5009         Win-NT 5.0 so calling it ST_WINNT is okay I guess.
5010
5011 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
5012
5013         * progress.c (update_speed_ring): Clear the speed ring when the
5014         download stalls.
5015
5016         * retr.c (get_contents): Specify 0.95s read timeout, so that the
5017         progress gauge can be updated even when data arrives very slowly
5018         or stalls.
5019
5020 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
5021
5022         * utils.c (wtimer_allocate): Bless the use of wtimer_read on a
5023         timer that has merely been allocated because get_contents() does
5024         that.
5025         (wtimer_update): Abort if the timer is not initialized.
5026
5027 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
5028
5029         * retr.c (get_contents): Pass the timer to limit_bandwidth().
5030
5031         * utils.c (wtimer_update): New function instead of wget_elapsed;
5032         just update the timer, but don't return anything.
5033         (wtimer_read): Read and return the last known value of the timer.
5034
5035 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
5036
5037         * http.c (persistent_available_p): Instead of matching all the
5038         addresses of HOST and last host, determine the peer's IP address
5039         with socket_ip_address and see if that address is one of those
5040         HOST resolves to.
5041
5042         * host.c (address_list_match_all): Removed.
5043         (address_list_find): New function, finds an IP address in the
5044         address list.
5045
5046         * ftp.c (ftp_do_pasv): Get the peer's address here, and pass it to
5047         ftp_epsv so it doesn't need to call getpeername.
5048
5049         * ftp-basic.c (ftp_port): Use socket_ip_address instead of
5050         getpeername.
5051         (ftp_lprt): Ditto.
5052
5053         * connect.c (socket_ip_address): Replaces conaddr, generalized to
5054         either get peer's or local address.
5055         (sockaddr_get_data): Made local to this file.
5056
5057 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
5058
5059         * hash.c (HASH_POSITION): Explicitly accept the hash function.
5060         (grow_hash_table): Extract ht->hash_function outside the loop.
5061         (hash_table_remove): Ditto.
5062         (hash_table_clear): Fill entries with 0xff to clear them.
5063         (hash_table_remove): Mark entries as deleted with the correct
5064         marker.
5065
5066 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
5067
5068         * http.c (persistent_available_p): No reason for the host lookup
5069         to be silent -- it's a lookup like any other.
5070
5071 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
5072
5073         * connect.c (register_extended): Check that fd >= 0.
5074
5075 2003-11-07  Hrvoje Niksic  <hniksic@xemacs.org>
5076
5077         * connect.c (LAZY_RETRIEVE_INFO): Set LAST_INFO.
5078
5079 2003-11-07  Hrvoje Niksic  <hniksic@xemacs.org>
5080
5081         * hash.c (NON_EMPTY): Use the all-bit-set value as the marker that
5082         the field is empty.  This allows NULL pointer and 0 value to be
5083         used as keys, which is necessary for the connect.c code to work
5084         when fd==0.
5085         (hash_table_new): Fill mappings with 0xff.
5086         (grow_hash_table): Ditto.
5087
5088 2003-11-07  Hrvoje Niksic  <hniksic@xemacs.org>
5089
5090         * url.c (url_parse): Allow empty ports.
5091
5092 2003-11-07  Hrvoje Niksic  <hniksic@xemacs.org>
5093
5094         * main.c (print_help): Break the help string into multiple chunks.
5095         (cmdline_option): New option handler OPT_FUNCALL.  Generalized
5096         HANDLE_CMD to generic DATA.
5097         (option_data): Use the new OPT_FUNCALL feature.
5098
5099 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
5100
5101         * log.h: Declare log_init, log_close, and
5102         log_request_redirect_output here.
5103
5104 2003-11-05  Dennis Smit  <ds@nerds-incorporated.org>
5105
5106         * main.c: (main): added --preserve-permissions option.
5107
5108         * ftp.c (ftp_retrieve_list): added support for
5109         --preserve-permissions option.
5110
5111         * init.c: added support for --preserve-permission option.
5112
5113         * option.h: added support for --preserve-permission option.
5114
5115 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
5116
5117         * main.c (init_switches): New function.  Convert option_data to
5118         long_options and short_options, which can be fed to getopt_long.
5119         (main): Execute command-line options by consulting option_data.
5120
5121 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
5122
5123         * gen_sslfunc.c (ssl_read): Implement a more correct check for
5124         EINTR.
5125         (ssl_write): Ditto.
5126         (init_ssl): Use a global SSL context.
5127
5128 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
5129
5130         * connect.c (xclose): Free INFO even if it doesn't provide a
5131         closer.
5132
5133 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
5134
5135         * connect.c: Updated all callers of
5136         iread/ssl_iread/iwrite/ssl_iwrite to use xread and xwrite instead.
5137
5138         * rbuf.h (struct rbuf): Removed the SSL member because SSL is
5139         handled automatically by xread.
5140
5141         * hash.c (ptrhash): Made private.
5142         (ptrcmp): Ditto.
5143         (inthash): Removed.
5144
5145         * connect.c (select_fd): Don't set errno, leave it to the caller.
5146
5147         * gen_sslfunc.c (connect_ssl): Use register_extended to register
5148         SSL callbacks for communication with SSL-enabled endpoints.
5149         (ssl_read): New function.
5150         (ssl_write): Ditto.
5151         (ssl_poll): Ditto.
5152         (ssl_close): Ditto.
5153
5154         * connect.c (register_extended): New function -- register
5155         callbacks for basic socket operations.
5156         (xread): Ditto.
5157         (xwrite): Ditto.
5158         (xclose): Ditto.
5159         (sock_read): New function, default implementation for reading.
5160         (sock_write): Ditto for writing.
5161         (sock_poll): Ditto for polling.
5162         (sock_close): Ditto for closing.
5163
5164 2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
5165
5166         * connect.c (bindport): Fix compilation under pre-C99 compilers.
5167
5168 2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
5169
5170         * connect.c (connect_to_ip): More compact error checking.
5171         (bindport): Don't treat failed setsockopt as a fatal error.
5172
5173 2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
5174
5175         * connect.c (resolve_bind_address): Use a more accurate error
5176         message -- we're not binding to ANY, we're disabling bind
5177         altogether.
5178
5179 2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
5180
5181         * cookies.c (save_cookies_mapper): Respect the setting of
5182         keep-session-cookies.
5183         (cookie_jar_load): Import session cookies.
5184         Based on code submitted by Nicolas Schodet.
5185
5186         * utils.c (datetime_str): Use information in TM when it's
5187         non-NULL.
5188
5189         * main.c (main): New option `--keep-session-cookies'.
5190
5191 2003-11-04  Hrvoje Niksic  <hniksic@xemacs.org>
5192
5193         * Makefile.in (realclean): Delete config.h.in.
5194
5195 2003-11-04  Hrvoje Niksic  <hniksic@xemacs.org>
5196
5197         * config-post.h: New file, included from now autogenerated
5198         config.h.in.
5199
5200 2003-11-04  Hrvoje Niksic  <hniksic@xemacs.org>
5201
5202         * progress.c (progress_handle_sigwinch): Don't call
5203         determine_screen_width() from the signal handler.  Instead, just
5204         set a volatile variable.
5205         (bar_create): Check whether SIGWINCH was received.
5206         (bar_update): Ditto.
5207
5208         * sysdep.h: Define SYSTEM_FNMATCH only if HAVE_FNMATCH_H is true.
5209
5210 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
5211
5212         * utils.c (xsleep): New function.  Uses nanosleep where available,
5213         resuming sleeps interrupted by signals.  Updated callers of sleep
5214         and usleep to use xsleep.
5215
5216 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
5217
5218         * ftp-basic.c (ftp_login): Remove shadowing (and bogus)
5219         declaration of SEED.
5220
5221 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
5222
5223         * log.c (logvprintf): Documented better.  Renamed to
5224         log_vprintf_internal to avoid confusion with the public API
5225         functions logprintf and logputs.
5226
5227 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
5228
5229         * wget.h (N_): Don't parenthesize argument.
5230
5231 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
5232
5233         * host.h (ADDRESS_IPV4_DATA): Don't take the address of in.s_addr
5234         because that doesn't work on machines that define it as bitfield.
5235
5236 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
5237
5238         * connect.c (select_fd): Generalize the third argument into WAIT,
5239         so that the caller can request waiting for both read and write.
5240         Updated callers.
5241
5242 2003-11-02  Hrvoje Niksic  <hniksic@xemacs.org>
5243
5244         * html-url.c (cleanup_html_url): Destroy the hash tables, don't
5245         just call free on them.
5246         (init_interesting): Use hash_table_put instead of string_set_add
5247         because we don't need the strdup that the latter function
5248         performs.
5249
5250         * init.c (cleanup): Don't pass NULL to cookie_jar_delete.
5251
5252         * xmalloc.c (xfree_real): Abort when passed a NULL pointer.
5253         (xfree_debug): Print at the file and line of the offending call to
5254         free.
5255
5256 2003-11-02  Hrvoje Niksic  <hniksic@xemacs.org>
5257
5258         * wget.h: Retired the `boolean' type.  Moved the DEFAULT_LOGFILE
5259         define to log.h.  Moved the INFINITE_RECURSION define to recur.h.
5260
5261         * xmalloc.h: Renamed FREE_MAYBE to xfree_null and moved the
5262         definition from wget.h to xmalloc.h.
5263
5264 2003-11-02  Hrvoje Niksic  <hniksic@xemacs.org>
5265
5266         * html-parse.c (decode_entity): New function; split the decoding
5267         of entities here.
5268         (convert_and_copy): Use it to decode entities.
5269         (decode_entity): Handle the &apos entity.
5270         (decode_entity): Don't decode Latin 1 numeric entities.  Don't
5271         decode &#0.
5272
5273 2003-11-01  Hrvoje Niksic  <hniksic@xemacs.org>
5274
5275         * ftp-opie.c (calculate_skey_response): Use uint32_t instead of
5276         `unsigned long' for the cheksum array.  Document the function.
5277
5278 2003-11-01  Hrvoje Niksic  <hniksic@xemacs.org>
5279
5280         * connect.c (acceptport): Don't call select_fd when timeout is not
5281         requested.
5282
5283 2003-11-01  Hrvoje Niksic  <hniksic@xemacs.org>
5284
5285         * host.c: Removed the ip_default_family global variable.
5286
5287         * host.c (lookup_host): Document the function.  Fixed declaration
5288         of VEC.
5289
5290 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
5291
5292         * various: Use new macros xnew, xnew0, xnew_array, and xnew0_array
5293         in various places.
5294
5295 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
5296
5297         * wget.h: Move declarations of malloc and logging code to
5298         xmalloc.h and log.h respectively to unclutter this file.
5299         (STRDUP_ALLOCA): Made it side-effect free.
5300
5301         * xmalloc.h: New files.  Define macros xnew, xnew0, xnew_array,
5302         and xnew0_array.
5303
5304         * xmalloc.c: New file.  Move the xmalloc routines here.
5305
5306 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
5307
5308         * connect.c (sockaddr_set_data): Remove the broken code that
5309         checked for NULL address.
5310
5311 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
5312
5313         * host.c (address_list_from_single): Removed.
5314         (address_list_from_ipv4_addresses): Renamed from
5315         address_list_from_vector.
5316
5317 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
5318
5319         * sysdep.h (CLOSE): Don't call close on file descriptors less than
5320         0, i.e. on uncreated sockets.
5321
5322         * connect.c (resolve_bind_address): Work on struct sockaddr
5323         directly.
5324         (connect_to_host): Replacement for connect_to_many.  Resolve HOST
5325         and connect to any of its addresses.  If we can't connect and the
5326         host name lookup was cached, try to resolve it again.  This should
5327         fix problems with hosts behind dynamic DNS.  Updated all callers.
5328         (connect_to_ip): Replacement for connect_to_one.  Removed SILENT;
5329         added the argument PRINT instead.  Updated all callers.
5330         (set_connection_host_name): Removed.
5331
5332         * host.c (address_list_address_at): New function instead of
5333         address_list_copy_one. It returns a pointer to ip_address *, so
5334         it's not necessary to copy the data.
5335         (address_list_cached_p): New function.
5336         (forget_host_lookup): Ditto.
5337
5338         * connect.c: Got rid of the MSOCK global variable.  Made bindport
5339         return the local socket it creates.  Added a new argument to
5340         acceptport, the socket to call accept on.  Updated callers.
5341         (closeport): Removed.
5342
5343         * connect.c: Moved the sockaddr code from host.c to this file,
5344         because most of that stuff is used for connecting, and has nothing
5345         to do with host names anyway.
5346         (sockaddr_set_data, sockaddr_get_data): New functions, replace the
5347         old sockaddr_set_address, sockaddr_set_port, sockaddr_get_address,
5348         and sockaddr_get_port.
5349
5350 2003-10-30  Hrvoje Niksic  <hniksic@xemacs.org>
5351
5352         * sysdep.h: Use `S >= 8' rather than `S == 8' when looking for
5353         large integers.
5354
5355 2003-10-30  Hrvoje Niksic  <hniksic@xemacs.org>
5356
5357         * url.c (append_uri_pathel): New argument ESCAPED_P that says
5358         whether [B, E) is to be treated as URL-escaped or not.  If
5359         ESCAPED_P is false, don't unescape the region.
5360         (url_file_name): u->file is not URL-escaped.
5361
5362 2003-10-30  Hrvoje Niksic  <hniksic@xemacs.org>
5363
5364         * retr.c (retrieve_from_file): Use retrieve_tree for
5365         page-requisites.
5366
5367         * main.c (main): Don't define opt.recursive when -p is used.
5368         Instead, make sure that recursion is used for HTTP in that case.
5369
5370 2003-10-29  Hrvoje Niksic  <hniksic@xemacs.org>
5371
5372         * host.h: Defined accessors for elements of ip_address.  Updated
5373         all callers.
5374         (address_list_match_all): Use memcmp in the non-IPv6 case.
5375
5376         * wget.h (CONNECT_ERROR): Don't retry connecting if connect()
5377         returned EAFNOSUPPORT.
5378
5379 2003-10-27  Mauro Tortonesi <mauro@deepspace6.net>
5380
5381         * connect.h: changed bindport prototype and added the related
5382         BIND_ON_IPV4_ONLY and BIND_ON_IPV6_ONLY flags.
5383
5384         * connect.c: changed bindport and resolve_bind_address to allow
5385         protocol-version specific DNS resolution. modified conaddr,
5386         acceptport and connect_to_one to make use of struct
5387         sockaddr_storage and of the new ip_address structure.
5388
5389         * ftp-basic.c: added LPRT/LPSV (RFC1639) support, refactored
5390         PORT/PASV (RFC959) and EPRT/EPSV (RFC2428) support code.
5391
5392         * ftp.c: added the ftp_do_port and ftp_do_pasv functions to
5393         handle FTP over IPv6.
5394
5395         * ftp.h: changed prototype of ftp_epsv and added prototypes for
5396         ftp_lpsv, ftp_lprt and ftp_eprt.
5397
5398         * host.c: renamed the
5399         wget_sockaddr_set_address and wget_sockaddr_get_addr, and
5400         wget_sockaddr_{s,g}et_port couples to sockaddr_{s,g}et_address and
5401         sockaddr_{g,s}et_port respectively.  changed
5402         address_list_match_all, address_list_from_addrinfo sockaddr_len,
5403         pretty_print_address, lookup_host, sockaddr_{s,g}et_address and
5404         sockaddr_{g,s}et_port to make use of struct sockaddr_storage and
5405         of the new ip_address structure.  removed map_ipv4_to_ip and
5406         map_ip_to_ipv4.
5407
5408         * host.h: redefined structure ip_address and removed structure
5409         wget_sockaddr.
5410
5411 2003-10-26  Hrvoje Niksic  <hniksic@xemacs.org>
5412
5413         * sysdep.h: Include inttypes.h where available.
5414
5415         * host.c: Switch from u_int32_t to uint32_t.
5416
5417 2003-10-26  Hrvoje Niksic  <hniksic@xemacs.org>
5418
5419         * netrc.c (parse_netrc): Reset the QUOTE flag after the closing
5420         quote.
5421
5422 2003-10-25  Hrvoje Niksic  <hniksic@xemacs.org>
5423
5424         * url.c (is_valid_ipv6_address): Reformat to GNU coding style.
5425         Use enums for NS_IN* constants.  Use ISXDIGIT.
5426
5427         * convert.c (construct_relative): Document better how the function
5428         works.
5429
5430 2003-10-23  Hrvoje Niksic  <hniksic@xemacs.org>
5431
5432         * config.h.in: Deploy preprocessor magic to avoid Ultrix's
5433         <netdb.h> include <bitypes.h> which defines its own u_int32_t.
5434         Reported by Bernhard Simon.
5435
5436 2003-10-23  Hrvoje Niksic  <hniksic@xemacs.org>
5437
5438         * version.c: Bump version.
5439
5440 2003-10-23  Hrvoje Niksic  <hniksic@xemacs.org>
5441
5442         * url.c: Ditto.
5443
5444         * html-parse.c (advance_declaration): Don't use trailing comma in
5445         enum because older compilers don't support it.
5446
5447         * utils.c: Don't redefine HAVE_SIGSETJMP.
5448
5449 2003-10-16  Hrvoje Niksic  <hniksic@xemacs.org>
5450
5451         * convert.c (construct_relative): Don't handle absolute files
5452         specially -- for example, -P/tmp/foo shouldn't imply that
5453         converted files must refer to "/tmp/foo/..."!
5454
5455 2003-10-15  Hrvoje Niksic  <hniksic@xemacs.org>
5456
5457         * http.c: Consider status 307 a valid redirect.
5458
5459 2003-10-15  Philip Stadermann  <philip.stadermann@credativ.de>
5460
5461         * ftp.c (ftp_retrieve_glob): Correctly loop through the list whose
5462         elements might have been deleted.
5463
5464 2003-10-13  Hrvoje Niksic  <hniksic@xemacs.org>
5465
5466         * html-url.c (tag_handle_meta): Set the Refresh link to expect
5467         HTML.
5468         (append_one_url): Renamed to append_url.
5469
5470 2003-10-13  Hrvoje Niksic  <hniksic@xemacs.org>
5471
5472         * sysdep.h: Only define u_int32_t.
5473
5474 2003-10-11  Hrvoje Niksic  <hniksic@xemacs.org>
5475
5476         * utils.c (large_int_to_string): Use snprintf() to print the
5477         number.  This will work even on systems where libc doesn't
5478         understand %lld, but the compiler does, because it will use our
5479         snprintf replacement.
5480
5481         * init.c (parse_bytes_helper): New function.
5482         (cmd_bytes): Use it to parse bytes, but cast the result to long.
5483         (cmd_bytes_large): Ditto, but store the result to LARGE_INT.  Used
5484         for --quota so that --quota=10G works even on machines without
5485         long long.
5486
5487         * options.h (struct options): Declare quota as LARGE_INT.
5488
5489         * retr.c (downloaded_exceeds_quota): Removed.
5490         (downloaded_increase): Ditto.
5491         (total_downloaded_bytes): New variable, replaces opt.downloaded,
5492         which was the wrong place for it anyway.  Updated callers of
5493         downloaded_exceeds_quota and downloaded_increase to check this
5494         variable directly.
5495
5496         * sysdep.h: Get rid of VERY_LONG_TYPE.  Use LARGE_INT for the same
5497         purpose, defined as `long', `long long' or `double', depending on
5498         size of long and whether long long is available.
5499
5500 2003-10-11  Hrvoje Niksic  <hniksic@xemacs.org>
5501
5502         * sysdep.h: Also check size of short for int32_t.
5503
5504 2003-10-11  Hrvoje Niksic  <hniksic@xemacs.org>
5505
5506         * host.c (lookup_host): Use u_int32_t to store the result of
5507         inet_addr().  That removes the need for offset fiddling, caring
5508         about endian-ness, etc.
5509
5510         * sysdep.h: Define int32_t and u_int32_t if not available.
5511
5512 2003-10-11  Hrvoje Niksic  <hniksic@xemacs.org>
5513
5514         * ftp-basic.c (ftp_epsv): Use socklen_t * as the third argument to
5515         getpeername.
5516
5517         * config.h.in: Define socklen_t stub.
5518
5519         * host.c (sockaddr_len): Return socklen_t.
5520
5521         * connect.c (conaddr): Use socklen_t as the third argument to
5522         accept, getsockname, and connect.
5523
5524 2003-10-10  Hrvoje Niksic  <hniksic@xemacs.org>
5525
5526         * recur.c (retrieve_tree): Don't descend into documents that are
5527         not expected to contain HTML, regardless of their content-type.
5528
5529         * html-url.c (tag_url_attributes): Record which attributes are
5530         supposed to yield HTML links that can be followed.
5531         (tag_find_urls): Propagate that information to the caller through
5532         struct urlpos.
5533
5534 2003-10-10  Hrvoje Niksic  <hniksic@xemacs.org>
5535
5536         * hash.c (find_mapping): Return the next available mapping when
5537         the key is not found, not NULL.
5538         (hash_table_put): Use find_mapping to find the storage for the new
5539         data.
5540         (hash_table_put): Grow the table before exceeding maximum
5541         fullness, not afterwards.
5542
5543 2003-10-10  Hrvoje Niksic  <hniksic@xemacs.org>
5544
5545         * hash.c (hash_table_new): Slightly change the meaning of the
5546         first parameter.  Instead of being the minimum initial size, it is
5547         now the minimum number of items that the hash table can take
5548         without needing to resize.
5549
5550 2003-10-09  Hrvoje Niksic  <hniksic@xemacs.org>
5551
5552         * html-url.c (init_interesting): Initialize interesting_tags and
5553         interesting_attributes as hash tables.  This simplifies the code
5554         immensely because hash tables handle allocation and remove
5555         duplicates automatically.
5556         (find_tag): Removed.
5557         (collect_tags_mapper): Instead of calling find_tag, simply get the
5558         entry from interesting_tags hash table, which is both simpler and
5559         faster.
5560
5561 2003-10-09  Hrvoje Niksic  <hniksic@xemacs.org>
5562
5563         * hash.c (hash_table_get): Declare hash-table argument as const.
5564         (find_mapping): Ditto.
5565         (hash_table_get_pair): Ditto.
5566         (hash_table_contains): Ditto.
5567         (hash_table_count): Ditto.
5568
5569 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
5570
5571         * html-url.c (get_urls_html): Parse the appropriate flags to
5572         html-parse.c.
5573
5574         * html-parse.c (map_html_tags): Accept FLAGS from the caller
5575         instead of examining OPT.
5576
5577 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
5578
5579         * html-url.c (find_tag): Switch to binary search.
5580
5581 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
5582
5583         * main.c (print_help): Fix typo; stured -> stored.
5584
5585 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
5586
5587         * getopt.c: Add definitions of getopt_long and getopt_long_only.
5588
5589 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
5590
5591         * config.h.in: Renamed DEBUG to ENABLE_DEBUG.  ENABLE_DEBUG is, I
5592         think, a better name, because it implies that debugging output is
5593         merely possible, not "on by default", as might be construed from
5594         just DEBUG.
5595
5596 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
5597
5598         * ftp.c (has_insecure_name_p): Define it here.
5599
5600         * utils.c (has_wildcards_p): Define it here.
5601
5602         * sysdep.h: Declare fnmatch-related macros here, if not using
5603         system fnmatch().  Update .c files to not declare fnmatch.h
5604         directly.
5605
5606         * cmpt.c (fnmatch): Moved here.  Use it only under non-GNU libc.
5607
5608 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
5609
5610         * getopt.c: Newer version, imported from Free libit.
5611
5612 2003-10-07  Hrvoje Niksic  <hniksic@xemacs.org>
5613
5614         * cookies.c (struct cookie): Remove unused backpointer to cookie
5615         jar.
5616
5617 2003-10-07  Hrvoje Niksic  <hniksic@xemacs.org>
5618
5619         * cmpt.c (memmove): Comment out, since it's no longer used.
5620
5621         * cookies.c (cookie_jar_generate_cookie_header): Allocate room for
5622         chains in one pass.
5623         (find_chains_of_host): Assume that the caller has allocated DEST
5624         to be sufficiently large to take all the data.
5625         (eliminate_dups): Run through the array and eliminate dups on the
5626         fly instead of using memmove.
5627         (cookie_jar_process_set_cookie): Free cookie->domain before
5628         re-setting it.
5629
5630 2003-10-05  Gisle Vanem  <giva@bgnett.no>
5631
5632         * mswindows.c (set_sleep_mode): Fix type of
5633         _SetThreadExecutionState.
5634
5635 2003-10-05  Hrvoje Niksic  <hniksic@xemacs.org>
5636
5637         * utils.c (file_size): Return -1 if fopen() returns NULL.  Prior
5638         to this patch, wget --post-file=nosuchfile dumped core.
5639
5640 2003-10-04  Gisle Vanem  <giva@bgnett.no>
5641
5642         * mswindows.c (run_with_timeout): Use WaitForSingleObject to wait
5643         for thread termination.
5644
5645 2003-10-04  Hrvoje Niksic  <hniksic@xemacs.org>
5646
5647         * log.c: Use `...' in function definitions; ansi2knr will convert
5648         them to va_dcl.  This allowed removal of the ugly VA_START_1 and
5649         VA_START_2 macros.
5650
5651 2003-10-03  Gisle Vanem  <giva@bgnett.no>
5652
5653         * connect.c: And don't include them here.
5654
5655         * mswindows.h: Include winsock headers here.
5656
5657 2003-10-03  Hrvoje Niksic  <hniksic@xemacs.org>
5658
5659         * html-parse.c (convert_and_copy): Move variable declarations
5660         before statements.
5661
5662 2003-10-02  Gisle Vanem  <giva@bgnett.no>
5663
5664         * mswindows.c (run_with_timeout): For Windows: Run the 'fun' in a
5665         thread via a helper function. Continually query the thread's
5666         exit-code until finished or timed out.
5667
5668 2003-10-02  Hrvoje Niksic  <hniksic@xemacs.org>
5669
5670         * wget.h (XMALLOC_ARRAY): Removed.
5671         (ALLOCA_ARRAY): Ditto.
5672
5673         * html-parse.c: Renamed alloca_p to resized.
5674         (GROW_ARRAY): Renamed DO_REALLOC_FROM_ALLOCA to GROW_ARRAY and
5675         returned it to html-parse.c, since nothing else was using it.
5676
5677 2003-10-02  Hrvoje Niksic  <hniksic@xemacs.org>
5678
5679         * retr.c (retrieve_url): Initialize DUMMY storage for DT.  Caught
5680         by valgrind.
5681
5682 2003-10-02  Hrvoje Niksic  <hniksic@xemacs.org>
5683
5684         * html-parse.c (convert_and_copy): Handle numeric entities in
5685         hexadecimal, &#xHH.
5686         (convert_and_copy): Copy the contents directly to the pool without
5687         a stack-allocated intermediary.
5688
5689 2003-10-02  Hrvoje Niksic  <hniksic@xemacs.org>
5690
5691         * utils.c (alarm_set): New function; use either setitimer or alarm
5692         to set up the alarm.
5693         (alarm_cancel): New function; cancel the alarm set up by
5694         alarm_set.
5695         (run_with_timeout): Use them.
5696
5697 2003-10-01  Hrvoje Niksic  <hniksic@xemacs.org>
5698
5699         * url.c (url_parse): Don't leak memory when a reencoded URL turns
5700         out to be invalid.
5701
5702         * url.c (parse_errors): Mark error messages for translation.
5703         (url_error): Translate error messages returned to the caller.
5704
5705 2003-10-01  Hrvoje Niksic  <hniksic@xemacs.org>
5706
5707         * ftp.c (ftp_loop_internal): Initialize TMRATE to NULL to shut up
5708         the compiler.
5709
5710 2003-09-26  Gisle Vanem  <giva@bgnett.no>
5711
5712         * src/mswindows.c: Added ws_percenttitle() showing progress in the
5713         window titlebar. Called from retr.c. Secured ws_mypath().
5714
5715         * windows/config.h.ms: alloca() prototype not needed.  Removed
5716         "#undef ENABLE_NLS"; should be in Makefile IMHO. Moved
5717         WGET_USE_STDARG from mswindows.h to config.ms.h because of #ifdef
5718         in log.c. (MSVC's vararg.h and stdarg.h are incompatible).
5719
5720 2003-09-29  Aaron Hawley <Aaron.Hawley@uvm.edu>
5721
5722         * ftp.c (getftp): --spider option should now work with FTP
5723         downloads.
5724         (ftp_loop_internal): quiet reports and calculations of downloads
5725         when --spider option set, nor try deleting when --delete-after
5726         also set.
5727         (ftp_loop): --spider will skip HTML-ification of .listing file.
5728
5729 2003-09-26  Gisle Vanem  <giva@bgnett.no>
5730
5731         * mswindows.c (read_registry): Removed.
5732         (set_sleep_mode): New function.
5733         (windows_main_junk): Call it.
5734
5735 2003-09-26  Gisle Vanem  <giva@bgnett.no>
5736
5737         * mswindows.c (read_registry): Fix invocation of registry
5738         functions.
5739
5740         * mswindows.c (read_registry): Condition definitions of sleep and
5741         usleep with not HAVE_SLEEP and HAVE_USLEEP respectively.  Define
5742         HAVE_SLEEP and HAVE_USLEEP under __DMC__.
5743
5744 2003-09-24  Hrvoje Niksic  <hniksic@xemacs.org>
5745
5746         * url.c (url_escape_1): Revert unintentional change to lowercase
5747         xdigit escapes.
5748         (url_escape_dir): Document that this function depends on the
5749         output of url_escape_1.
5750
5751 2003-09-23  Hrvoje Niksic  <hniksic@xemacs.org>
5752
5753         * progress.c (create_image): Print the current ETA if we're done
5754         with the download.
5755         (create_image): Change '-' display char to '+' in the progress bar.
5756
5757         * Makefile.in (clean): Remove .libs.
5758
5759 2003-09-23  Hrvoje Niksic  <hniksic@xemacs.org>
5760
5761         * cookies.c (struct cookie): New flag domain_exact.
5762         (update_cookie_field): Skip leading dot in domain.
5763         (find_matching_chains): Match numeric addresses exactly; don't
5764         needlessly copy HOST to the stack.
5765         (matching_cookie): Added argument HOST.  If cookie->domain_exact
5766         is set, check that HOST is equal to cookie->domain.
5767         (cookie_jar_load): Only use TAB as delimiter.  Document the
5768         meaning of DOMAIN-FLAG.  Skip leading dot in domain.
5769         (cookie_jar_load): Don't ignore DOMAIN-FLAG -- instead, set
5770         domain_exact to true if DOMAIN-FLAG is false.
5771         (save_cookies_mapper): If domain_exact is false, prepend the
5772         domain with dot, like Mozilla does.
5773
5774 2003-09-22  Hrvoje Niksic  <hniksic@xemacs.org>
5775
5776         * progress.c (create_image): Print the initial part of the
5777         download with '-' characters, analogous to how dot progress prints
5778         the initial part with ','.
5779
5780         * hash.c (ptrhash): New function.
5781         (ptrcmp): Ditto.
5782         (hash_table_new): Default to identity hash table.
5783
5784 2003-09-22  Hrvoje Niksic  <hniksic@xemacs.org>
5785
5786         * safe-ctype.h (_sch_test): The cast of BIT to unsigned char was
5787         broken -- _sch_istable bitmasks are 16-bit, not 8-bit!  Cast BIT
5788         to unsigned short instead.
5789
5790 2003-09-22  Hrvoje Niksic  <hniksic@xemacs.org>
5791
5792         * url.c (path_simplify): Instead of calls to memmove, handle "./"
5793         and "../" by advancing pointers.
5794
5795 2003-09-22  Hrvoje Niksic  <hniksic@xemacs.org>
5796
5797         * retr.c (getproxy): Moved from url.c.
5798
5799         * convert.c: Split off link conversion from url.c into separate
5800         file.  Also included the book-keeping stuff from recur.c.
5801
5802 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
5803
5804         * init.c: Improved documentation of functions.
5805         (cmd_boolean): Attempt to make code that tries to avoid calling
5806         strcmp for "speed" a bit more readable.
5807
5808         * init.c (simple_atof): Report error on encountering non-digit,
5809         non-"." character.
5810         (simple_atoi): Replacement for myatoi(), calling interface
5811         compatible with simple_atof.  Updated myatoi's callers.
5812
5813 2003-09-21  Bertrand Demiddelaer  <bert@b3rt.org>
5814
5815         * url.c (path_simplify): Would read two bytes past the end of the
5816         string in the "./" case.
5817
5818 2003-09-21  Matthew J. Mellon  <mellon@tymenet.com>
5819
5820         * http.c (gethttp): Recognize content-type "application/xhtml+xml"
5821         as what Wget considers "text/html".
5822
5823 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
5824
5825         * connect.c (connect_with_timeout): Made timeout type double.
5826
5827         * options.h (struct options): New members read_timeout,
5828         dns_timeout, and connect_timeout.
5829         Use them.
5830
5831 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
5832
5833         * init.c (simple_atof): New function.
5834         (cmd_time): Use it.
5835         (cmd_bytes): Accept things like "1.5k" and such.  Use simple_atof
5836         to parse decimals.
5837
5838         * retr.c (limit_bandwidth): Adjust each sleep by the error of the
5839         previous one.
5840
5841 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
5842
5843         * main.c (main): Use setoptval() for setting the options.  Use
5844         run_command for `-e'.
5845
5846         * init.c (parse_line): Rewritten to return COMIND right away.
5847         Changed linkage to static.
5848         (run_wgetrc): Use the available comind when calling setval, so it
5849         doesn't have to be computed twice.
5850         (setval_internal): New function, runs the command's action without
5851         any error checking.
5852         (setoptval): New function, does what setval used to do, but exits
5853         in case of error.
5854         (run_command): New function.
5855
5856 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
5857
5858         * connect.c (select_fd): Change MAXTIME's type to double.  Handle
5859         its decimal part.
5860
5861         * retr.c (sleep_between_retrievals): In the random-wait case, use
5862         random_float() to wait between 0 and 2*opt.wait seconds.
5863
5864         * utils.c (run_with_timeout): Accept `double' timeouts.  Correctly
5865         handle timeout values in (0, 1) range.
5866         (random_float): New function.
5867
5868         * options.h (struct options): Change the types of wait, waitretry,
5869         and timeout to double.
5870
5871         * init.c (cmd_time): Accept floating point time.
5872
5873 2003-09-20  Hrvoje Niksic  <hniksic@xemacs.org>
5874
5875         * retr.c (get_contents): Cosmetic fixes.
5876
5877 2003-09-20  Hrvoje Niksic  <hniksic@xemacs.org>
5878
5879         * url.c (uri_merge): Get rid of uri_merge_1.
5880         (uri_merge): Merge "foo//", "bar" as "foo//bar", not "foo///bar",
5881         i.e. don't add an extra slash merely because BASE ends with two
5882         slashes.
5883         (parse_credentials): Renamed from parse_uname.  Rewrittern in
5884         standard [beg, end) calling style.
5885         (url_skip_credentials): Renamed from url_skip_uname.  Made static.
5886         (url_skip_credentials): Include # and ; as terminators.  Old code
5887         would mistakenly consider "http://foo.com#hniksic@iskon.hr" to
5888         contain a username.
5889         (url_skip_scheme): Removed because it was unused.
5890         (url_has_scheme): Require "scheme" to be at least one char long.
5891
5892 2003-09-19  Hrvoje Niksic  <hniksic@xemacs.org>
5893
5894         * url.c (url_file_name): Expect NULL dir_prefix.
5895
5896         * init.c (cmd_file): Use a macro to prevent multiple #ifdef
5897         WINDOWS.
5898         (defaults): Set dir_prefix to NULL by default.
5899
5900 2003-09-19  Hrvoje Niksic  <hniksic@xemacs.org>
5901
5902         * safe-ctype.h (_sch_test): Cast BIT to unsigned char, like latest
5903         gcc does.
5904
5905 2003-09-19  Hrvoje Niksic  <hniksic@xemacs.org>
5906
5907         * wget.h (BOUNDED_TO_ALLOCA): Evaluate PLACE only once.
5908         (ARRAY_SIZE): Renamed to countof.  All callers updated.
5909
5910 2003-09-19  Hrvoje Niksic  <hniksic@xemacs.org>
5911
5912         * main.c (main): New option --strict-comments.
5913
5914         * html-parse.c (find_comment_end): New function: simple BM search
5915         for "-->".
5916         (map_html_tags): Use it if looking at a comment and not in strict
5917         comments mode.
5918
5919 2003-09-17  Aurelien Marchand  <artaxerxes@users.sf.net>
5920
5921         * ftp.h: Added OS400 system in enum
5922         * ftp-basic.c: recognize OS400 systems
5923         * ftp.c: don't prepend the CWD if talking to OS400, since it
5924         breaks the change in library
5925
5926 2003-09-18  Hrvoje Niksic  <hniksic@xemacs.org>
5927
5928         * retr.c (get_contents): Pass the correct argument to ssl_iread.
5929
5930 2003-09-18  Hrvoje Niksic  <hniksic@xemacs.org>
5931
5932         * safe-ctype.h: Don't #define ctype.h macros to errors because
5933         that loses when someone #include's ctype.h after safe-ctype.h.
5934
5935 2003-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
5936
5937         * url.c: Undef U, W, C after use.
5938
5939 2003-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
5940
5941         * init.c (cmd_spec_restrict_file_names): Allow the OS setting to
5942         be augmented by ",nocontrol" which means don't escape the control
5943         characters, but otherwise keep OS settings.
5944
5945         * url.c (file_unsafe_char): Deleted.
5946         (append_uri_pathel): Query filechr_table directly.
5947         (filechr_table): Separated Unix, Windows, and control-unsafe
5948         characters.
5949
5950 2003-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
5951
5952         * url.c (url_escape_1): New function.
5953         (url_escape): Use it.
5954         (sync_path): Handle pathological cases where u->file and u->dir
5955         contain really strange characters.
5956         (ENCODE): Deleted.
5957         (REENCODE): Deleted.
5958
5959 2003-09-16  Hrvoje Niksic  <hniksic@xemacs.org>
5960
5961         * url.c (url_file_name): Don't reallocate FNAME if the file
5962         doesn't exist, as is usually the case.
5963
5964         * utils.c (unique_name): New flag allow_passthrough.
5965
5966 2003-09-16  Hrvoje Niksic  <hniksic@xemacs.org>
5967
5968         * utils.c (wtimer_sys_diff): Convert the time difference to signed
5969         __int64, then to double.  This works around MS VC++ 6 which can't
5970         convert unsigned __int64 to double directly.
5971
5972 2003-09-16  Hrvoje Niksic  <hniksic@xemacs.org>
5973
5974         * Makefile.in (clean): Also remove the core.<number> files
5975         produced by recent Linux systems.
5976
5977 2003-09-16  Hrvoje Niksic  <hniksic@xemacs.org>
5978
5979         * http.c (post_file): Don't pad the file if it's not large
5980         enough.  Bail out instead.
5981
5982 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
5983
5984         * retr.c (get_contents): Reduce the buffer size to the amount of
5985         data that may pass through for one second.  This prevents long
5986         sleeps when limiting bandwidth.
5987
5988         * connect.c (connect_to_one): Reduce the socket's RCVBUF when
5989         bandwidth limitation to small values is requested.
5990
5991 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
5992
5993         * progress.c (update_speed_ring): Moved the speed ring update to a
5994         separate function and documented it better.
5995
5996         * progress.c: Use `double' for most timers to support granularity
5997         smaller than 1ms.
5998
5999 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
6000
6001         * wget.h (XDIGIT_TO_XCHAR): Implement as index into a literal
6002         string.
6003         (XDIGIT_TO_xchar): Ditto.
6004
6005 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
6006
6007         * utils.c: Change the type of timer-related functions from long to
6008         double, for better precision.  On machines supporting gettimeofday
6009         the timers now work with granularity of less than one millisecond.
6010
6011 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
6012
6013         * cookies.c (parse_set_cookies): Fixed the parser to handle more
6014         edge conditions.
6015         (test_cookies): New function, contains a test suite for
6016         parse_set_cookies.
6017
6018 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
6019
6020         * url.c (strpbrk_or_eos): Implement as a macro under Gcc.
6021
6022 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
6023
6024         * cookies.c (parse_set_cookies): Allow trailing space in
6025         set-cookies header.  Also, allow any amount of whitespace, not
6026         only one character.  Allow empty set-cookies header without
6027         spewing an error.
6028
6029 2003-09-14  Hrvoje Niksic  <hniksic@xemacs.org>
6030
6031         * url.c (append_uri_pathel): Use opt.restrict_file_names when
6032         calling file_unsafe_char.
6033
6034         * init.c: New command restrict_file_names.
6035
6036         * main.c (main): New option --restrict-file-names[=windows,unix].
6037
6038         * url.c (url_file_name): Renamed from url_filename.
6039         (url_file_name): Add directory and hostdir prefix here, not in
6040         mkstruct.
6041         (append_dir_structure): New function, does part of the work that
6042         used to be in mkstruct.  Iterates over path elements in u->path,
6043         calling append_uri_pathel on each one to append it to the file
6044         name.
6045         (append_uri_pathel): URL-unescape a path element and reencode it
6046         with a different set of rules, more appropriate for handling of
6047         files.
6048         (file_unsafe_char): New function, uses a lookup table to decide
6049         whether a character should be escaped for use in file name.
6050         (append_string): New utility function.
6051         (append_char): Ditto.
6052         (file_unsafe_char): New argument restrict_for_windows, decide
6053         whether Windows file names should be escaped in run-time.
6054
6055         * connect.c: Include <stdlib.h> to get prototype for abort().
6056
6057 2003-09-14  Hrvoje Niksic  <hniksic@xemacs.org>
6058
6059         * utils.c (wtimer_sys_set): Extracted the code that sets the
6060         current time here.
6061         (wtimer_reset): Call it.
6062         (wtimer_sys_diff): Extracted the code that calculates the
6063         difference between two system times here.
6064         (wtimer_elapsed): Call it.
6065         (wtimer_elapsed): Don't return a value smaller than the previous
6066         one, which could previously happen when system time is set back.
6067         Instead, reset start time to current time and note the elapsed
6068         offset for future calculations.  The returned times are now
6069         guaranteed to be monotonically nondecreasing.
6070
6071 2003-09-10  Hrvoje Niksic  <hniksic@xemacs.org>
6072
6073         * host.c (lookup_host): Print the result of the DNS lookup.
6074
6075 2003-09-10  Hrvoje Niksic  <hniksic@xemacs.org>
6076
6077         * init.c (cmd_boolean): Accept yes/no along with on/off.
6078         (cmd_lockable_boolean): Ditto.
6079
6080 2003-09-10  Hrvoje Niksic  <hniksic@xemacs.org>
6081
6082         * init.c: New command dns_cache.
6083
6084         * main.c (main): New option --dns-cache[=off].
6085
6086 2003-09-09  Hrvoje Niksic  <hniksic@xemacs.org>
6087
6088         * config.h.in: Initialize HAVE_GETADDRINFO and ENABLE_IPV6.
6089
6090         * all: Use #ifdef ENABLE_IPV6 instead of the older INET6.  Use
6091         HAVE_GETADDRINFO for getaddrinfo-related stuff.
6092
6093 2003-09-09  Hrvoje Niksic  <hniksic@xemacs.org>
6094
6095         * url.c (url_parse): Return an error if the URL contains a [...]
6096         IPv6 numeric address and we don't support IPv6.
6097
6098 2003-09-05  Hrvoje Niksic  <hniksic@xemacs.org>
6099
6100         * url.c (is_valid_ipv6_address): Modified to not require
6101         zero-terminated strings.
6102         (is_valid_ipv4_address): Ditto.
6103
6104 2003-09-05  Mauro Tortonesi <mauro@deepspace6.net>
6105
6106         src/url.c: added RFC 2732 compliance for URL parsing. The
6107         functions is_*_address valid are a modified version of
6108         glibc 2.3.2 inet_pton's code.
6109
6110 2003-09-03  Ahmon Dancy  <dancy@dancysoft.com>
6111
6112         * main.c init.c options.h: Added --retry-connrefused option so
6113         that Connection Refused failures are treated as non-fatal (when
6114         trying to retrieve from busy servers).
6115
6116         * wget.h: New CONNECT_ERROR macro for encapsulating this
6117         modification.
6118
6119         * ftp.c http.c : Use CONNECT_ERROR macro in places where
6120         ECONNREFUSED was checked.
6121
6122 2003-01-11  Ian Abbott  <abbotti@mev.co.uk>
6123
6124         * ftp.c (ftp_retrieve_glob): Reject insecure filenames as determined
6125         by calling new function has_insecure_name_p.  This is based on a
6126         patch by Red Hat.
6127
6128         * fnmatch.c (has_insecure_name_p): New function: returns non-zero
6129         if filename starts with `/' or contains `../' and is therefore
6130         considered insecure.
6131
6132         * fnmatch.h: Declare has_insecure_name_p().
6133
6134 2002-08-03  Hrvoje Niksic  <hniksic@xemacs.org>
6135
6136         * init.c (cmd_file): Allocate RESULT correctly.
6137
6138 2002-07-24  Hrvoje Niksic  <hniksic@xemacs.org>
6139
6140         * recur.c (retrieve_tree): Check whether downloaded_html_set is
6141         non-NULL before using it.
6142
6143 2002-05-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6144
6145         * html-parse.c (NAME_CHAR_P): Allow almost any character here.
6146
6147 2002-05-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6148
6149         * progress.c (bar_set_params): Fall back to dot progress if the
6150         terminal type is "emacs".
6151
6152 2002-05-20  Hrvoje Niksic  <hniksic@arsdigita.com>
6153
6154         * log.c: Don't #undef WGET_USE_STDARG.
6155
6156 2002-05-16  Hrvoje Niksic  <hniksic@arsdigita.com>
6157
6158         * hash.c (prime_size): Store the offset of the prime number in the
6159         prime table.  When searching, start with the given offset.
6160         (hash_table_new): Pass the pointer to ht->prime_offset to
6161         prime_size.
6162         (grow_hash_table): Ditto.
6163         (prime_size): Make 13 the first prime to make empty hash tables
6164         slightly smaller.
6165
6166 2002-05-16  Ian Abbott  <abbotti@mev.co.uk>
6167
6168         * recur.c (download_child_p): Minor optimization to avoid an
6169         unnecessary additional call to schemes_are_similar_p function.
6170
6171 2002-05-16  Ian Abbott  <abbotti@mev.co.uk>
6172
6173         * url.c (schemes_are_similar_p): New function to test enumerated
6174         scheme codes for similarity.
6175
6176         * url.h: Declare it.
6177
6178         * recur.c (download_child_p): Use it to compare schemes.  This
6179         also fixes a bug that allows hosts to be spanned (without the
6180         -H option) when the parent scheme is https and the child's is
6181         http or vice versa.
6182
6183 2002-05-14  Bill Richardson  <bill@riverstonenet.com>
6184
6185         * ftp.c (getftp): Don't ftruncate stdout.
6186
6187         * http.c (gethttp): Don't ftruncate stdout.
6188
6189 2002-05-09  Ian Abbott  <abbotti@mev.co.uk>
6190
6191         * cmpt.c (strptime_internal): Synched with glibc-2.1.3.
6192         (get_number): Ditto.
6193         (get_alt_number): Ditto.
6194         (__isleap): New function-like macro used by strptime.
6195         (day_of_the_week): New function used by strptime.
6196         (day_of_the_year): Ditto.
6197         (__mon_yday): Now shared by mktime and strptime implementations.
6198
6199 2002-05-08  Hrvoje Niksic  <hniksic@arsdigita.com>
6200
6201         * cookies.c (check_domain_match): Use match_tail in case
6202         insensitive mode.
6203
6204         * utils.c (match_tail): Allow the caller to specify case
6205         insensitive mode.
6206
6207         * cookies.c (store_cookie): When expiry_time is 0, print it as
6208         undefined, not indefinite.
6209
6210 2002-05-07  Ian Abbott  <abbotti@mev.co.uk>
6211
6212         * cookies.c (cookie_jar_process_set_cookie): Do not store
6213         discarded cookie.
6214
6215 2002-04-21  Hrvoje Niksic  <hniksic@arsdigita.com>
6216
6217         * cookies.c (check_domain_match): Allow cookies to be set for
6218         subdomains of unknown top-level domains under some circumstances.
6219
6220 2002-04-21  Thomas Lussnig  <thomas.lussnig@bewegungsmelder.de>
6221
6222         * gen_ssl.c:
6223         - allow checking of server cert
6224         - allow defining client cert type
6225         - allow limit of ssl protocol
6226         - check more return values
6227         - added debug message on break
6228
6229 2002-04-21  Hrvoje Niksic  <hniksic@arsdigita.com>
6230
6231         * recur.c (download_child_p): Revert order of items in check
6232         number 6 for clarity.
6233
6234 2002-04-20  Hrvoje Niksic  <hniksic@arsdigita.com>
6235
6236         * init.c: Ditto.
6237
6238         * main.c: Ditto.
6239
6240         * http.c: Use the new interface.
6241
6242         * cookies.c: Provide an OO-style "cookie jar" interface to enable
6243         separate cookie jars.
6244
6245         * http.c (http_atotm): Declare argument as const.
6246
6247 2002-04-20  Hrvoje Niksic  <hniksic@arsdigita.com>
6248
6249         * cookies.c (cookie_new): Default to PORT_ANY.
6250         (find_cookie_chain_exact): Only search by DOMAIN.
6251         (find_matching_cookie): Also check that PORT matches.
6252         (store_cookie): Only match the domain.
6253         (set_cookie_header_cb): When a cookie "fakes" a domain, assume it
6254         is valid for that host rather than discarding it completely.
6255         (find_matching_chains): Don't search by PORT.
6256         (matching_cookie): Also match PORT.
6257         (load_cookies): Set the port if specified, otherwise leave it as
6258         ANY.
6259         (save_cookies_mapper): Save the port if specified, otherwise leave
6260         it empty.
6261
6262 2002-04-19  Thomas Lussnig  <thomas.lussnig@bewegungsmelder.de>
6263
6264         * init.c: The option `egdfile' was not in sort order.
6265
6266 2002-04-16  Hrvoje Niksic  <hniksic@arsdigita.com>
6267
6268         * ftp.c (getftp): Treat directories that begin with <letter>: as
6269         absolute.
6270         (getftp): Strip trailing slashes from con->id before merging it
6271         with TARGET.
6272
6273 2002-04-16  Hrvoje Niksic  <hniksic@arsdigita.com>
6274
6275         * http.c (gethttp): If Content-Type is not given, assume
6276         text/html.
6277
6278 2002-04-15  Hrvoje Niksic  <hniksic@arsdigita.com>
6279
6280         * recur.c (download_child_p): Don't ignore rejection of HTML
6281         documents that are themselves leaves of recursion.
6282
6283 2002-04-15  Ian Abbott  <abbotti@mev.co.uk>
6284
6285         Makefile.in: Updated several dependencies for object files to take
6286         account of nested include files.
6287
6288 2002-04-15  Ian Abbott  <abbotti@mev.co.uk>
6289
6290         Makefile.in: The target `connect$o' (connect.o) now depends on
6291         `utils.h'
6292
6293 2002-04-15  Ian Abbott  <abbotti@mev.co.uk>
6294
6295         * host.c (SET_H_ERRNO): New function-like macro to set `h_errno'.
6296         (gethostbyname_with_timeout): Use it.
6297
6298         * utils.c: Don't define `SETJMP()', `run_with_timeout_env' or
6299         `abort_run_with_timeout()' when `USE_SIGNAL_TIMEOUT' is undefined.
6300
6301 2002-04-15  Hrvoje Niksic  <hniksic@arsdigita.com>
6302
6303         * host.c (getaddrinfo_with_timeout): New function.
6304         (gethostbyname_with_timeout): Ditto.
6305         (lookup_host): Use them.
6306
6307 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6308
6309         * utils.c (number_to_string): Handle the case when n < -INT_MAX.
6310
6311 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6312
6313         * init.c (comind): Use a marginally faster implementation of
6314         binary search.  To quote Martin Buchholz, "a nanosecond saved is a
6315         nanosecond earned."
6316
6317 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6318
6319         * main.c (print_help): Document `--post-data' and `--post-file'.
6320
6321 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6322
6323         * http.c (gethttp): Ditto.
6324
6325         * retr.c (retrieve_url): Initialize variables to appease the
6326         compiler.
6327
6328         * gen_sslfunc.c (ssl_iread): Don't handle EINTR when calling
6329         select_fd.
6330         (ssl_iwrite): Ditto.
6331
6332         * connect.c (select_fd): Rewrite to handle EINTR.  Set errno to
6333         ETIMEDOUT in case of timeout.
6334         (iread): No need to handle EINTR when calling select_fd.
6335         (iwrite): Ditto.
6336
6337 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6338
6339         * retr.c (retrieve_url): Make sure that POST is not honored for
6340         redirections.
6341
6342         * http.c (gethttp): Send the POST data when requested.
6343         (post_file): New function.
6344         (gethttp): Use it.
6345
6346         * main.c (main): Ditto.
6347
6348         * init.c: Add new options.
6349
6350         * options.h (struct options): New options post_data and
6351         post_file_name.
6352
6353 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6354
6355         * connect.c (connect_with_timeout): Firing SIGALRM can result in
6356         connect() exiting with EINTR.  Treat EINTR the same as ETIMEDOUT.
6357
6358 2002-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6359
6360         * connect.c (connect_with_timeout): Use it.
6361
6362         * utils.c (run_with_timeout): New function.
6363
6364 2002-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6365
6366         * url.c (getproxy): Accept a struct url argument.  This obviates
6367         the need for USE_PROXY_P.
6368
6369         * retr.c (retrieve_url): Allow proxy to be a non-FTP URL.
6370
6371         * ftp.c (getftp): Recognize FWTK-style proxy.
6372
6373 2002-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
6374
6375         * config.h.in: Only define _VA_LIST when compiled with gcc.
6376
6377 2002-04012  Ian Abbott  <abbotti@mev.co.uk>
6378
6379         * http.c (http_loop): Compensate for MS Windows two-second
6380         granularity of file modification time when comparing timestamps.
6381
6382         * ftp.c (ftp_retrieve_list): Ditto.
6383
6384 2002-04-12  Ian Abbott  <abbotti@mev.co.uk>
6385
6386         * utils.c (has_html_suffix_p): New function to test filename for
6387         common html extensions.
6388
6389         * utils.h: Declare it.
6390
6391         * http.c (http_loop): Use it instead of previous test.
6392
6393         * retr.c (retrieve_url): Ditto.
6394
6395         * recur.c (download_child_p): Ditto.
6396
6397 2002-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
6398
6399         * config.h.in: Define _VA_LIST on Solaris to prevent stdio.h from
6400         declaring va_list.
6401         From Kevin Rodgers <kevinr@ihs.com>.
6402
6403 2002-04-12  Ian Abbott  <abbotti@mev.co.uk>
6404
6405         * Makefile.in: Specify libtool mode explicitly when linking.
6406
6407 2002-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
6408
6409         * connect.c (connect_with_timeout): New function.
6410         (connect_to_one): Use it.
6411
6412         * config.h.in: Add stubs for HAVE_SIGSETJMP, HAVE_SIGBLOCK, and
6413         HAVE_SETJMP_H.
6414
6415 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
6416
6417         * log.c: Set WGET_USE_STDARG if __STDC__ is defined and stdarg.h
6418         is present.
6419
6420 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
6421
6422         * progress.c (bar_create): If INITIAL is larger than TOTAL, fix
6423         TOTAL.
6424         (bar_finish): Likewise.
6425
6426 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
6427
6428         * html-url.c (tag_handle_form): New function.  Pick up form
6429         actions and mark them for conversion only.
6430
6431 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
6432
6433         * progress.c (struct progress_implementation): Use PARAMS when
6434         declaring the parameters of *create, *update, *finish, and
6435         *set_params.
6436
6437         * netrc.c: Ditto.
6438
6439         * http.c: Reformat some function definitions so that ansi2knr can
6440         read them.
6441
6442         * hash.c (struct hash_table): Use the PARAMS macro around
6443         parameters in the declaration of hash_function and test_function.
6444         (prime_size): Spell 2580823717UL and 3355070839UL as (unsigned
6445         long)0x99d43ea5 and (unsigned long)0xc7fa5177 respectively, so
6446         that pre-ANSI compilers can read them.
6447         (find_mapping): Use PARAMS when declaring EQUALS.
6448         (hash_table_put): Ditto.
6449
6450         * ftp.h: Wrap the parameters of ftp_index declaration in PARAMS.
6451
6452         * cookies.c (cookie_new): Use (unsigned long)0 instead of 0UL,
6453         which was unsupported by pre-ANSI compilers.
6454
6455         From Nelson H. F. Beebe <beebe@math.utah.edu>, for the most part.
6456
6457 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
6458
6459         * url.c (url_filename): Use compose_file_name regardless of
6460         whether opt.dirstruct is set.
6461         (mkstruct): Don't handle the query and the reencoding of DIR; that
6462         is done in compose_file_name.
6463
6464 2002-04-10  Hrvoje Niksic  <hniksic@arsdigita.com>
6465
6466         * wget.h: Ditto for extern char *exec_name.
6467
6468         * options.h: Don't guard against OPTIONS_DEFINED_HERE -- it is
6469         perfectly legal to follow an `extern' with a non-`extern' ones,
6470         provided the types match.
6471
6472         * main.c: Don't define OPTIONS_DEFINED_HERE.
6473
6474 2002-04-10  Hrvoje Niksic  <hniksic@arsdigita.com>
6475
6476         * progress.c (create_image): Revert to calculating ETA based on
6477         average download speed.
6478         (create_image): Don't print ETA until the download has been active
6479         for at least 3 seconds.
6480         (create_image): When ETA is not available, don't print anything.
6481         The previous version would print --:--.
6482
6483 2002-04-10  Hrvoje Niksic  <hniksic@arsdigita.com>
6484
6485         * progress.c (bar_update): Keep updating a subinterval until it
6486         reaches or exceeds a watermark.  That way the measurement will be
6487         guaranteed to span a configurable minimum of time.  The current
6488         default is 3s in 30 100ms intervals.
6489
6490 2002-04-09  Hrvoje Niksic  <hniksic@arsdigita.com>
6491
6492         * progress.c (bar_update): Maintain an array of the time it took
6493         to perform previous 30 network reads.
6494         (create_image): Calculate the download speed and ETA based on the
6495         last 30 reads, not the entire download.
6496         (create_image): Make sure that the ETA is not changed more than
6497         once per second.
6498
6499 2002-04-09  Ian Abbott  <abbotti@mev.co.uk>
6500
6501         * mswindows.c (borland_utime): New function conditionally defined
6502         when `HACK_BCC_UTIME_BUG' is defined.  A reimplementation of
6503         `utime()' as Borland's `utime()' function is broken on Windows 9x
6504         systems.  (Original patch by Chin-yuan Kuo <sr1111111@yahoo.com.tw>.)
6505
6506 2002-04-08  Hrvoje Niksic  <hniksic@arsdigita.com>
6507
6508         * ftp.c (ftp_loop): Propagate the result of ftp_retrieve_glob.
6509
6510 2002-03-26  Ian Abbott  <abbotti@mev.co.uk>
6511
6512         * Makefile.in: Updated several dependencies for object files.
6513
6514 2002-03-20  Ian Abbott  <abbotti@mev.co.uk>
6515
6516         * mswindows.c: Include "utils.h".
6517
6518 2002-03-18  Ian Abbott  <abbotti@mev.co.uk>
6519
6520         * host.h: Don't include netdb.h on windows.
6521
6522 2002-02-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6523
6524         * recur.c (retrieve_tree): Handle the case when start_url doesn't
6525         parse.
6526
6527 2002-02-19  Andreas Damm  <andreas-sourceforge@radab.org>
6528
6529         * wget.h (DO_REALLOC_FROM_ALLOCA): Multiply with sizeof(type) when
6530         calling xmalloc and memcpy.
6531
6532 2002-02-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6533
6534         * host.h: Include Unix-specific includes #ifndef WINDOWS.
6535         Patch originally provided by Christian Lackas.
6536
6537 2002-02-11  Christian Lackas  <delta@lackas.net>
6538
6539         * recur.c: recurive downloading for https fixed.
6540
6541 2002-02-19  Alan Eldridge  <alane@geeksrus.net>
6542
6543         * host.h: Also include <netinet/in.h> and <sys/socket.h>.
6544
6545         * ftp-basic.c: Also include <netinet/in.h>.
6546
6547 2002-02-05  Ian Abbott  <abbotti@mev.co.uk>
6548
6549         * http.c (gethttp): when -c used, mark already fully retrieved
6550         file as successfully retrieved.
6551
6552 2002-02-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6553
6554         * url.c (url_parse): Don't treat '?' as query string separator
6555         when parsing FTP URLs.
6556
6557 2002-02-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6558
6559         * html-url.c (tag_handle_meta): Don't crash on <meta
6560         http-equiv=refresh> where content is missing.
6561
6562 2002-01-31  Herold Heiko  <Heiko.Herold@previnet.it>
6563
6564         * ftp-basic.c, host.c: don't include sys/socket.h, arpa/inet.h,
6565         netdb.h on windows.
6566
6567 2002-01-30  Hrvoje Niksic  <hniksic@arsdigita.com>
6568
6569         * retr.c (retrieve_url): Remove redirection cycle detection.  This
6570         is because some sites legitimately redirect the user back to the
6571         same location, e.g. after an authorization check performed by
6572         another page.  MAX_REDIRECTIONS is still used to prevent infinite
6573         redirection loops.
6574
6575 2002-01-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6576
6577         * http.c (gethttp): Wrap host name in square brackets if it
6578         contains a colon.
6579
6580 2002-01-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6581
6582         * url.c (url_parse): Allow all hex digits, not only decimal ones,
6583         to form an IP address.
6584
6585 2002-01-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6586
6587         * url.c (urlchr_table): Make square braces reserved, so we can
6588         parse http://[::1]/.
6589         (url_parse): Handle host in braces.
6590         (url_string): If url->host contains colons, wrap it in braces.
6591
6592 2002-01-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6593
6594         * connect.c (resolve_bind_address): New function.
6595         (connect_to_one): Use it.
6596         (bindport): Ditto.
6597
6598         * init.c: Don't resolve bind-address here.
6599
6600         * host.c (wget_sockaddr_set_address): Would bug out with ADDR == NULL.
6601
6602 2002-01-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6603
6604         * host.c (lookup_host): Use sizeof(ip4_address) to calculate the
6605         offset.
6606         (address_list_new): Use map_ipv4_to_ip.
6607         (wget_sockaddr_set_address): Convert ADDR to IPv4 before using it
6608         in IPv4 context.
6609
6610 2002-01-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6611
6612         * source: Integrated IPv6 support.
6613         Written by Thomas Lussnig <thomas.lussnig@bewegungsmelder.de>.
6614
6615 2002-01-15  Ian Abbott  <abbotti@mev.co.uk>
6616
6617         * init.c (cmd_file): Change `\' to `/' for Windows (yes, really!)
6618         (cmd_directory): New function. Like cmd_file(), but strips
6619         trailing directory separators.
6620         (commands): Change action for "dirprefix" from `cmd_file' to
6621         `cmd_directory'.
6622
6623         * utils.c (make_directory): Allow intermediate `mkdir' calls to
6624         fail, as not all path components that do not exist should be
6625         directory components, especially under Windows.
6626
6627 2002-01-17  Hrvoje Niksic  <hniksic@arsdigita.com>
6628
6629         * netrc.c (parse_netrc): Skip leading whitespace before testing
6630         whether the line is empty.  Empty lines still contain the line
6631         terminator.
6632
6633 2002-01-15  Hrvoje Niksic  <hniksic@arsdigita.com>
6634
6635         * gen_sslfunc.c (ssl_iread): Call select on the file descriptor
6636         only if no data is pending in SSL buffers.
6637         From tony@bluetail.com.
6638
6639 2002-01-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6640
6641         * headers.c (header_get): Strip trailing whitespace from the
6642         header.
6643
6644 2002-01-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6645
6646         * url.c (parse_uname): URL-decode *USER and *PASSWD.
6647
6648 2002-01-07  Ian Abbott <abbotti@mev.co.uk>
6649
6650         * url.c (uri_merge_1): Deal with "net path" relative URL (one that
6651         starts with "//").
6652
6653 2002-01-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6654
6655         * http.c (gethttp): Invalidate SOCK if get_contents encountered an
6656         error.
6657
6658 2001-12-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6659
6660         * version.c: Wget 1.8.1 is released.
6661
6662 2001-12-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6663
6664         * version.c: Wget 1.8.1-pre3 is released.
6665
6666 2001-12-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6667
6668         * recur.c (retrieve_tree): Enqueue the canonical representation of
6669         start_url, so that the test against dl_url_file_map works.
6670
6671 2001-12-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6672
6673         * log.c (logputs): Check for requested verbosity before printing
6674         anything.
6675
6676 2001-12-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6677
6678         * html-url.c (tag_handle_link): Treat the "shortcut icon" link as
6679         inline.
6680
6681 2001-12-18  Hrvoje Niksic  <hniksic@arsdigita.com>
6682
6683         * recur.c (retrieve_tree): Make a copy of file obtained from
6684         dl_url_file_map because the code calls xfree(file) later.
6685
6686 2001-12-18  Hrvoje Niksic  <hniksic@arsdigita.com>
6687
6688         * recur.c (register_html): Maintain a hash table of HTML files
6689         along with the list.  Disallow duplicates.
6690         (retrieve_tree): Use downloaded_html_set to check whether the file
6691         found in dl_url_file_map is an HTML file, and descend into it if
6692         so.
6693         (convert_all_links): Don't guard against duplicates in
6694         downloaded_html_list, since they are no longer possible.
6695
6696 2001-12-18  Ian Abbott  <abbotti@mev.co.uk>
6697
6698         * recur.c (retrieve_tree): Pass on referring URL when retrieving
6699         recursed URL.
6700
6701 2001-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
6702
6703         * version.c: Wget 1.8.1-pre2 is released.
6704
6705 2001-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
6706
6707         * retr.c (sleep_between_retrievals): Simplify indentation.
6708
6709 2001-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
6710
6711         * gen_sslfunc.c (ssl_init_prng): Use random_number to get a byte
6712         of "randomness" at a time.
6713         (ssl_init_prng): Don't seed the PRNG; random_number will do that.
6714
6715         * retr.c (sleep_between_retrievals): Use it.  Make sure that the
6716         random amount averages in opt.wait.
6717         (sleep_between_retrievals): Don't seed the PRNG; random_number
6718         will do that.
6719
6720         * utils.c (random_number): New function.
6721
6722 2001-12-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6723
6724         * url.c (path_simplify): Move here from utils.c, and make static.
6725
6726 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6727
6728         * init.c (wgetrc_file_name): Print correct message when loading
6729         getenv("WGETRC") fails.
6730
6731 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6732
6733         * recur.c (register_download): Don't abort when one URL references
6734         two different files.
6735
6736 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6737
6738         * http.c (gethttp): Check for conn->scheme, not u->scheme, before
6739         calling ssl_iwrite.
6740
6741 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6742
6743         * version.c: Wget 1.8.1-pre1 is released.
6744
6745 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6746
6747         * res.c (matches): Fix broken URL in the docstring.
6748
6749 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6750
6751         * html-url.c (tag_url_attributes): Mark <embed href=...> as
6752         external.
6753
6754 2001-12-12  Hrvoje Niksic  <hniksic@arsdigita.com>
6755
6756         * url.c (get_urls_file): Cosmetic changes.
6757
6758 2001-12-12  Hrvoje Niksic  <hniksic@arsdigita.com>
6759
6760         * html-url.c (append_one_url): Resurrect warning when unable to
6761         resolve a relative link.
6762
6763 2001-12-12  Hrvoje Niksic  <hniksic@arsdigita.com>
6764
6765         * html-url.c (collect_tags_mapper): Break into several functions.
6766         (tag_url_attributes): Collect <embed href=...>.
6767
6768 2001-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
6769
6770         * host.c: New type ipv4_address.  Use it consistently instead of
6771         `unsigned char[4]' and `unsigned char *'.
6772         (pretty_print_address): Accept a `const void *', to require even
6773         less casting.
6774
6775 2001-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
6776
6777         * ftp-ls.c (ftp_parse_vms_ls): Fix obvious memory leaks.
6778
6779 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
6780
6781         * main.c (main): Initialize progress after fork_to_background, so
6782         that it knows when to use dots.
6783
6784         * mswindows.c (ws_hangup): Call log_request_redirect_output.
6785
6786         * utils.c (fork_to_background): Print the PID of the child
6787         process.
6788
6789         * log.c (log_request_redirect_output): Set a flag that output
6790         redirection has been requested.  Doing anything else in a signal
6791         handler is unsafe.
6792         (check_redirect_output): New function: check whether redirection
6793         has been requested and, if so, call redirect_output().
6794         (logputs): Call check_redirect_output.
6795         (logprintf): Ditto.
6796         (debug_logprintf): Ditto.
6797         (redirect_output): Print clearer messages.
6798
6799         * main.c (redirect_output_signal): Don't call
6800         redirect_output_signal directly.  Instead, call
6801         log_request_redirect_output.
6802
6803         * utils.c (memfatal): Ditto.
6804
6805         * progress.c (display_image): Use it.
6806
6807         * log.c (log_set_save_context): New function: allow the caller to
6808         turn off saving log context lines.
6809
6810 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
6811
6812         * host.c (address_list_set_faulty): Uncomment a sanity check.
6813
6814 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
6815
6816         * utils.c (long_to_string): Return a pointer after where the
6817         number ends.
6818         (long_to_string): Rename to number_to_string.
6819
6820 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
6821
6822         * utils.c (path_simplify): Correctly handle the unlikely case that
6823         b starts out as path + 1.
6824
6825 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
6826
6827         * utils.c (path_simplify): Rewrite, with better comments, and
6828         without the use of strcpy to move overlapping blocks.
6829
6830 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
6831
6832         * init.c (cmd_spec_progress): Resurrect.  Check whether VAL is a
6833         valid progress type before setting it.
6834
6835 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
6836
6837         * main.c (main): Remove stray debugging message.
6838
6839 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
6840
6841         * progress.c (create_image): Fix ETA padding when hours are prined.
6842
6843 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
6844
6845         * version.c: Wget 1.8 is released.
6846
6847 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
6848
6849         * url.c (reencode_string): Declare static.
6850
6851         * res.c (registered_specs): Declare static.
6852
6853         * progress.c (current_impl_locked): Declare static.
6854
6855         * log.c (flush_log_p): Declare static.
6856         (needs_flushing): Ditto.
6857
6858         * http.c (digest_authentication_encode): Declare static.
6859
6860         * html-url.c (init_interesting): Declare static.
6861
6862         * host.c (host_name_addresses_map): Declare static.
6863
6864         * cookies.c (find_matching_chains): Declare static.
6865
6866         * ftp-ls.c (ftp_parse_vms_ls): Warn about the memory leak
6867         indicated by lint.
6868
6869         * utils.c (path_simplify): Remove unused variable STUB_CHAR.
6870
6871         * host.c (address_list_set_faulty): Document that INDEX is
6872         currently unused.
6873
6874         * url.c (rewrite_shorthand_url): Remove unused variable PATH.
6875
6876 2001-12-08  Hrvoje Niksic  <hniksic@arsdigita.com>
6877
6878         * version.c: Wget 1.8-pre2 is released.
6879
6880 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6881
6882         * progress.c (progress_handle_sigwinch): Set up the signal again.
6883
6884         * utils.c: Include <sys/termios.h>, where Solaris defines
6885         TIOCGWINSZ.
6886
6887         * progress.c (bar_create): Don't use the last column on the screen.
6888         (create_image): Pad ETA to constant size.  Pad SIZE to nine digits
6889         only until it exceeded them.
6890
6891 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6892
6893         * version.c: Wget 1.8-pre1 is released.
6894
6895 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6896
6897         * progress.c (progress_create): Make sure that, when the output is
6898         redirected, the progress implementation gets changed to the
6899         fallback one.
6900         (bar_set_params): Set current_impl_locked to 1 when "force" is
6901         specified.
6902         (progress_create): Don't change the progress implementation if
6903         current_impl_locked is non-zero.
6904
6905         * main.c (redirect_output_signal): Call
6906         progress_schedule_redirect.
6907
6908         * progress.c (progress_schedule_redirect): New function.
6909
6910 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6911
6912         * log.c (logvprintf): Restructure to allow being called multiple
6913         times.
6914         (logprintf): Call logvprintf in a loop.
6915         (debug_logprintf): Ditto.
6916
6917 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6918
6919         * gen_sslfunc.c (ssl_init_prng): Allow the user to disable EGD by
6920         setting egd_file it to empty string.
6921
6922         * main.c (main): Change the option name from --sslegdsock to
6923         --egd-file.
6924
6925 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6926
6927         * gen_sslfunc.c (ssl_init_prng): Make the printed message
6928         translatable.
6929
6930 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6931
6932         * url.c (scheme_disable): New function.
6933
6934         * main.c (main): Call ssl_init_prng from here rather than from
6935         init_ssl, so that it has a chance to disable support for https
6936         before a URL has been resolved.
6937
6938         * gen_sslfunc.c (ssl_init_prng): Seed with rand() if all else
6939         failed.
6940         (ssl_init_prng): Disable support for https if seeding the PRNG
6941         fails.
6942
6943 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6944
6945         * utils.c (read_whole_line): Handle lines beginning with \0.
6946
6947 2001-12-05  Hrvoje Niksic  <hniksic@arsdigita.com>
6948
6949         * recur.c (convert_all_links): Guard against duplicates in
6950         downloaded_html_files.
6951         (register_download): Don't invalidate similar-looking URLs.
6952         (match_except_index): New function.
6953
6954 2001-12-05  Hrvoje Niksic  <hniksic@arsdigita.com>
6955
6956         * utils.c (path_simplify): Document with test cases.
6957
6958 2001-12-04  Hrvoje Niksic  <hniksic@arsdigita.com>
6959
6960         * gen_sslfunc.c: Ditto.
6961
6962         * rbuf.c: Include <string.h>.
6963
6964 2001-12-04  Hrvoje Niksic  <hniksic@arsdigita.com>
6965
6966         * recur.c (retrieve_tree): Check whether the URL was already
6967         downloaded before downloading it again.
6968         (descend_child_p): Renamed to download_child_p.
6969         (register_download): When one URL is downloaded to a file already
6970         "owned" by another URL, delete all references that map any URL to
6971         that file.
6972         (register_delete_file): New function.
6973         (retrieve_tree): Use it after deleting a file.
6974
6975         * url.c (url_parse): Re-canonicalize the URL also if the path is
6976         empty, so that e.g. "http://www.server.com" ->
6977         "http://www.server.com/".
6978         (lowercase_str): Use ISUPPER instead of !ISLOWER.
6979
6980         * retr.c (retrieve_url): Use the canonical URL form when calling
6981         register_download().
6982
6983 2001-12-04  Ian Abbott <abbotti@mev.co.uk>
6984
6985         * snprintf.c (dopr): Use `unsigned int' as the second argument to
6986         va_arg when casting to `unsigned short' is intended.
6987
6988 2001-12-04  Herold Heiko  <Heiko.Herold@previnet.it>
6989
6990         * gen_sslfunc.c: on windows provide ssl crypto random
6991           initialization through RAND_screen(); could possibly
6992           be not enough for strong ssl communication (see the
6993           relevant manual page from the openssl package).
6994
6995 2001-12-04  Hrvoje Niksic  <hniksic@arsdigita.com>
6996
6997         * url.c (local_quote_string): Reenable quoting of question marks,
6998         but only when `--html-extension' is used.
6999
7000 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
7001
7002         * version.c: Wget 1.8-beta3 is released.
7003
7004 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
7005
7006         * snprintf.c (dopr): Cast the result of va_arg to short int and
7007         short unsigned int where these types are expected to be used.
7008
7009 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
7010
7011         * snprintf.c (dopr): Replace `short int' and `unsigned short int'
7012         with `int' when using it as the second argument to `va_arg'.
7013
7014 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
7015
7016         * host.c (address_list_new_one): New function.
7017         (lookup_host): Use it.
7018
7019 2001-12-03  Andre Majorel  <amajorel@teaser.fr>
7020
7021         * host.c (lookup_host): Don't initialize TMPSTORE directly because
7022         it's not legal C.
7023
7024 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
7025
7026         * ftp-basic.c (ftp_port): Don't return HOSTERR if we fail getting
7027         the socket data.
7028
7029         * ftp.c: Ditto.
7030
7031         * http.c: No need to declare h_errno.
7032
7033         * host.c: Declare h_errno.
7034
7035 2001-12-02  Hrvoje Niksic  <hniksic@arsdigita.com>
7036
7037         * utils.c (file_merge): If BASE doesn't contain a slash, just
7038         return a copy of FILE.
7039
7040 2001-12-02  Hrvoje Niksic  <hniksic@arsdigita.com>
7041
7042         * version.c: Wget 1.8-beta2 is released.
7043
7044 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
7045
7046         * ftp.c (getftp): When PWD fails, assume "/".
7047
7048         * ftp-basic.c (ftp_syst): Fix indentation.
7049
7050 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
7051
7052         * url.c (get_urls_file): If opt.base_href is specified, merge each
7053         URL with the base.
7054
7055 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
7056
7057         * main.c (print_help): Don't document the removed `-nh'.
7058
7059 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
7060
7061         * url.c (url_full_path): Document better.
7062
7063         * http.c (gethttp): Use the full path when creating digest
7064         authorization.
7065
7066 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
7067
7068         * cookies.c (path_matches): Return 0 if PREFIX doesn't begin with
7069         '/'.
7070
7071 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
7072
7073         * cookies.c (path_matches): FULL_PATH doesn't begin with '/', but
7074         PREFIX does.
7075
7076 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
7077
7078         * cookies.c (check_domain_match): Reimplement to match Netscape's
7079         "preliminary specification" for cookies.
7080
7081 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
7082
7083         * url.c (replace_attr_refresh_hack): New function.
7084         (convert_links): Call replace_attr_refresh_hack for Refresh
7085         links.  It will add the "TMOUT; URL=" junk before the link.
7086
7087         * html-url.c (collect_tags_mapper): Set ID to the ID of the
7088         "content" attribute, not "http-equiv".
7089         (collect_tags_mapper): Don't use OFFSET to hack the raw_* values;
7090         instead, store the information that this entry belongs to a
7091         "refresh" link.
7092
7093 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
7094
7095         * version.c: Wget 1.8-beta1 is released.
7096
7097 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
7098
7099         * recur.c (retrieve_tree): Allow -p retrievals to exceed maximum
7100         depth by more than one.
7101
7102 2001-11-30  Hrvoje Niksic  <hniksic@arsdigita.com>
7103
7104         * retr.c (retrieve_url): Don't allow more than 20 redirections.
7105
7106 2001-11-30  Hrvoje Niksic  <hniksic@arsdigita.com>
7107
7108         * recur.c (retrieve_tree): Skip the non-inline entries when
7109         enqueuing the children of a leaf HTML node in -p mode.
7110         (descend_url_p): Ignore opt.no_parent when in -p mode and UPOS is
7111         "inline".
7112
7113         * html-url.c (get_urls_html): Don't accept dash_p_leaf_HTML.
7114         (collect_tags_mapper): When an entry is "inline", mark it as such.
7115
7116         * recur.c (descend_url_p): Fix test when checking for
7117         acceptance/rejection rules.
7118
7119 2001-10-31 Daniel BODEA <dali@dali-designs.com>
7120
7121         * netrc.c (search_netrc): When slack_default is 0, still look for
7122         an account with matching password, just not the "default account".
7123         HTTP Authorization using .netrc should now work as expected.
7124
7125 2001-11-30  T. Bharath  <TBharath@responsenetworks.com>
7126
7127         * http.c (persistent_available_p): Call SHUTDOWN_SSL if
7128         test_socket_open fails.
7129
7130 2001-11-30  Hrvoje Niksic  <hniksic@arsdigita.com>
7131
7132         * progress.c (display_image): Just print one CR to reset the
7133         cursor position.
7134
7135 2001-11-30  Christian Fraenkel  <c.fraenkel@gmx.net>
7136
7137         * init.c: New command `ssl_egd_sock'.
7138
7139         * main.c (main): New option `--sslegdsock'.
7140
7141         * gen_sslfunc.c (ssl_init_prng): Seed the RNG using EGD.
7142
7143 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
7144
7145         * cmpt.c (memmove): Include a simple memmove implementation.
7146
7147 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
7148
7149         * headers: Guard against header files being included twice.
7150
7151 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
7152
7153         * gen-md5.c: Use unsigned char * as the buffer argument to
7154         gen_md5_update.
7155
7156 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
7157
7158         * connect.h: Declare select_fd.
7159
7160 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
7161
7162         * recur.c (descend_url_p): When resolving no_parent, compare with
7163         start_url, not parent url.  Otherwise link from /a/b/ to /a/c/
7164         wouldn't be followed, although the download started from /a/.
7165
7166 2001-01-23  Herold Heiko  <Heiko.Herold@previnet.it>
7167
7168         * config.h.ms, mswindows.h: defined HAVE_ISATTY, use _isatty for
7169         MS VC; somebody with Borland compiler please check and provide
7170         patch if possible;
7171
7172         * cmpt.c: provided a usleep emulation.
7173
7174 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
7175
7176         * host.c (address_list_new): Initialize al->faulty.
7177
7178 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
7179
7180         * http.c (http_process_range): Accept the broken output of
7181         "JavaWebServer/1.1.1".
7182
7183 2001-11-28  Hrvoje Niksic  <hniksic@arsdigita.com>
7184
7185         * progress.c (dot_set_params): If PARAMS is unspecified, use
7186         dot_style, if available.
7187
7188         * init.c: Ditto.
7189
7190         * main.c (main): Resurect --dot-style.
7191
7192         * progress.c (dot_finish): Print the quantity if we're left at the
7193         beginning of a row.
7194
7195 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7196
7197         * cmpt.c (random): Removed.
7198
7199         * retr.c (sleep_between_retrievals): Use the more portable rand()
7200         instead of random().
7201
7202 2001-11-27  Ian Abbott <abbotti@mev.co.uk>
7203
7204         * retr.c (retrieve_from_file): Initialize `new_file' to NULL to
7205         prevent seg fault.
7206
7207 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7208
7209         * connect.c (connect_to_many): Use address_list_set_faulty to
7210         prevent the faulty address from being reused.
7211
7212         * host.c (address_list_set_faulty): New function.
7213         (address_list_get_bounds): New function, instead of
7214         address_list_count.
7215
7216 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7217
7218         * url.c (convert_links): Don't translate %d-%d.
7219
7220         * main.c (print_help): Remove stray HAVE_RANDOM code.
7221
7222 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7223
7224         * ftp.c (getftp): Improve output after sending PASV.  Don't
7225         attempt to "look up" the IP address we already know; call
7226         connect_to_one directly.
7227
7228 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7229
7230         * progress.c: Change the default progress implementation to "bar".
7231
7232 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7233
7234         * progress.c (bar_create): Print two newlines.
7235
7236 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7237
7238         * cmpt.c (random): New function, a simple-minded replacement for
7239         random() on systems that don't have it.
7240
7241 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7242
7243         * config.h.in: Put a HAVE_USLEEP stub.
7244
7245         * cmpt.c (usleep): Replacement implementation of usleep using
7246         select.
7247
7248         * init.c: New option init_rate.
7249
7250         * main.c (main): New option --limit-rate.
7251
7252         * retr.c (limit_bandwidth): New function.
7253         (get_contents): Call it to limit the bandwidth used when
7254         downloading.
7255
7256         * progress.c (dot_update): Would print the wrong download speed on
7257         rows other than the first one when the download was continued.
7258         (dot_finish): Ditto.
7259
7260 2001-11-26  Ian Abbott <abbotti@mev.co.uk>
7261
7262         * http.c (gethttp): fix undeclared variable 'err' when compiled
7263         with HAVE_SSL.
7264
7265 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7266
7267         * progress.c: Don't allocate new timers; use the timing data
7268         propagated from the caller.
7269
7270         * retr.c (get_contents): Allocate and use a timer.
7271
7272 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7273
7274         * http.c (last_host_ip): Made into an address_list.
7275         (invalidate_persistent): Release pc_last_host_ip.
7276         (register_persistent): Use lookup_host.
7277         (persistent_available_p): Check for equality of hosts using
7278         address_list_match_all.  Call address_list_release.
7279         (http_cleanup): New function.
7280
7281         * ftp.c (getftp): Use lookup_host and connect_to_many.
7282
7283         * http.c (gethttp): Use lookup_host and connect_to_many.
7284
7285         * connect.c (make_connection): Removed.
7286         (connect_to_one): New function.
7287         (connect_to_many): Ditto.
7288         (set_connection_host_name): Ditto.
7289
7290         * host.c (lookup_host): New function; new return type.
7291         (address_list_new): New function.
7292         (address_list_count): Ditto.
7293         (address_list_copy_one): Ditto.
7294         (address_list_delete): Ditto.
7295         (address_list_release): Ditto.
7296         (pretty_print_address): Ditto.
7297
7298 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7299
7300         * recur.c (retrieve_tree): In case of followed redirection,
7301         blacklist the pre-redirection URL.
7302
7303 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7304
7305         * recur.c (descend_redirect_p): New function.
7306         (retrieve_tree): Make sure redirections are not blindly followed.
7307
7308 2001-11-04  Alan Eldridge  <alane@geeksrus.net>
7309
7310         * config.h.in: added HAVE_RANDOM.
7311
7312         * options.h: added random_wait to struct options.
7313
7314         * main.c (print_help [HAVE_RANDOM], main): added arg parsing, help
7315         for --random-wait.
7316
7317         * retr.c (sleep_between_retrievals) [HAVE_RANDOM]: added
7318         implementation of random wait times.
7319
7320         * init.c (commands): added "randomwait" keyword.
7321
7322 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7323
7324         * recur.c (descend_url_p): Be more conservative with blacklisting
7325         URLs.
7326         (convert_all_links): Print how many files have been converted, and
7327         how long it took.
7328
7329         * progress.c (create_image): Place the number of downloaded bytes
7330         right after the progress bar.
7331
7332         * utils.c (suffix): Return a pointer into the string.
7333
7334 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7335
7336         * url.c (convert_links): Handle CO_NULLIFY_BASE.
7337
7338         * recur.c (retrieve_tree): Ignore download-ignorable children.
7339         (convert_all_links): Specify CO_NULLIFY_BASE when link_base_p.
7340
7341         * html-url.c (handle_link): Return the newly created urlpos.
7342         (collect_tags_mapper): When dealing with BASE, store the base
7343         reference and mark it as download-ignorable.
7344
7345 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7346
7347         * url.c (convert_links): Attempt to quote '?' as "%3F" when
7348         linking to local files.  Given up on the attempt, as it breaks
7349         local browsing.
7350
7351 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7352
7353         * main.c (private_initialize): Removed.
7354         (main): Don't call private_initialize.
7355
7356         * http.c: Call lookup_host.
7357
7358         * host.c (host_init): Removed.
7359         (add_host_to_cache): Initialize host_name_address_map here, on
7360         demand.
7361         (ngethostbyname): Commented out.
7362
7363         * connect.c (make_connection): Remove dead code; use lookup_host.
7364
7365         * host.c (store_hostaddress): Renamed to lookup_host and reversed
7366         the args.
7367         Removed host_address_name_map and host_slave_master_map.
7368
7369 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7370
7371         * progress.c (dot_create): Align the "[ skipping ... ]" string
7372         with the dots.
7373
7374         * retr.c (rate): Split into two functions: calc_rate and
7375         retr_rate.
7376
7377         * progress.c (create_image): Draw a dummy progress bar even when
7378         total size is unknown.
7379         (display_image): Place the text cursor at the end of the "image".
7380
7381 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7382
7383         * url.c (reencode_string): Use unsigned char, not char --
7384         otherwise the hex digits come out wrong for 8-bit chars such as
7385         nbsp.
7386         (lowercase_str): New function.
7387         (url_parse): Canonicalize u->url if needed.
7388         (get_urls_file): Parse each URL, and return only the valid ones.
7389         (free_urlpos): Call url_free.
7390         (mkstruct): Add :port if the port is non-standard.
7391         (mkstruct): Append the query string to the file name, if any.
7392         (urlpath_length): Use strpbrk_or_eos.
7393         (uri_merge_1): Handle the cases where LINK is an empty string,
7394         where LINK consists only of query, and where LINK consists only of
7395         fragment.
7396         (convert_links): Count and report both kinds of conversion.
7397         (downloaded_file): Use a hash table, not a list.
7398         (downloaded_files_free): Free the hash table.
7399
7400         * retr.c (retrieve_from_file): Ditto.
7401
7402         * main.c (main): Call either retrieve_url or retrieve_tree
7403         for each URL, not both.
7404
7405         * retr.c (register_all_redirections): New function.
7406         (register_redirections_mapper): Ditto.
7407         (retrieve_url): Register the redirections.
7408         (retrieve_url): Make the string "Error parsing proxy ..."
7409         translatable.
7410
7411         * res.c (add_path): Strip leading slash from robots.txt paths so
7412         that the path representations are "compatible".
7413         (free_specs): Free each individual path, too.
7414         (res_cleanup): New function.
7415         (cleanup_hash_table_mapper): Ditto.
7416
7417         * recur.c (url_queue_new): New function.
7418         (url_queue_delete): Ditto.
7419         (url_enqueue): Ditto.
7420         (url_dequeue): Ditto.
7421         (retrieve_tree): New function, replacement for recursive_retrieve.
7422         (descend_url_p): New function.
7423         (register_redirection): New function.
7424
7425         * progress.c (create_image): Cosmetic changes.
7426
7427         * init.c (cleanup): Do all those complex cleanups only if
7428         DEBUG_MALLOC is defined.
7429
7430         * main.c: Removed --simple-check and the corresponding
7431         simple_host_check in init.c.
7432
7433         * html-url.c (handle_link): Parse the URL here, and propagate the
7434         parsed URL to the caller, who would otherwise have to parse it
7435         again.
7436
7437         * host.c (xstrdup_lower): Moved to utils.c.
7438         (realhost): Removed.
7439         (same_host): Ditto.
7440
7441 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7442
7443         * utils.c (path_simplify): Preserver the (non-)existence of
7444         leading slash.  Return non-zero if changes were made.
7445
7446 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7447
7448         * progress.c (bar_update): Don't modify bp->total_length if it is
7449         zero.
7450
7451 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7452
7453         * retr.c (retrieve_url): When the redirection URL doesn't parse,
7454         print the correct error message rather than "UNKNOWN".
7455
7456 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7457
7458         * progress.c (bar_finish): If the timer didn't record any time
7459         since the download beginning, fake 1ms.
7460
7461 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7462
7463         * recur.c (recursive_retrieve): Fix typo.
7464
7465 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
7466
7467         * progress.c (create_image): Don't translate "%ld ".
7468
7469 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
7470
7471         * progress.c (bar_set_params): Allow the user to force the use of
7472         the bar.
7473
7474 2001-11-23  Lemble Gregory  <gregory.lemble@st.com>
7475
7476         * gen_sslfunc.c (ssl_init_prng): New function; seed the SSL RNG.
7477
7478 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
7479
7480         * progress.c: Renamed dp_* functions to dot_* for greater clarity
7481         and consistency with bar_*.
7482         (print_download_speed): Get rid of the unneeded '@' character.
7483         (create_image): Fix download rate geometry.
7484
7485         * progress.c (print_elapsed): Remove spurious space.
7486         (print_elapsed): Renamed to print_download_speed, since that's
7487         what it does.
7488
7489 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
7490
7491         * progress.c (bar_update): If the downloaded amount becomes larger
7492         than the expected amount, adjust the expected amount accordingly.
7493
7494 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
7495
7496         * utils.c (determine_screen_width): New function.
7497
7498         * main.c (main): New option `--progress=TYPE'.
7499         (main): Implement compatibility with the old option `--dot-style'.
7500
7501         * init.c: Removed cmd_spec_dotstyle -- that logic is now in
7502         dp_set_params.
7503         (cmd_spec_progress): New function.
7504
7505         * retr.c (get_contents): Use the progress_* functions instead of
7506         the old show_progress().
7507         (show_progress): Removed.
7508         (rate): Print "xxxx.xx K/s" instead of "KB/s".  Ditto for MB/s,
7509         etc.
7510
7511         * progress.c (set_progress_implementation): New function.
7512         (valid_progress_implementation_p): Ditto.
7513         (progress_create): Ditto.
7514         (progress_update): Ditto.
7515         (progress_finish): Ditto.
7516         (dp_create): Ditto.
7517         (dp_update): Ditto.
7518         (dp_finish): Ditto.
7519         (dp_set_params): Ditto.
7520         (print_elapsed): Ditto.
7521
7522 2001-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
7523
7524         * retr.c (show_progress): Use it.
7525
7526         * log.c (log_set_flush): New function.
7527
7528 2001-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
7529
7530         * utils.c (path_simplify): Don't remove trailing slashes.
7531
7532         * ftp.c (ftp_get_listing): Use it.
7533
7534         * utils.c (file_merge): New function.
7535
7536         * url.c (opt_url): Removed.
7537
7538         * recur.c (recursive_retrieve): Inline "opt_url" logic.
7539
7540         * main.c (main): Use xfree(), not free().
7541
7542         * url.c (rewrite_url_maybe): Renamed to rewrite_shorthand_url.
7543
7544         * ftp.c (ccon): Move `ccon' typedef here, since it's only used
7545         internally.
7546
7547         * config.h.in: Include a stub for HAVE_STRPBRK.
7548
7549         * cmpt.c (strpbrk): Include a replacement for systems without
7550         strpbrk().
7551
7552         * ftp.c: Use url_set_dir and url_set_file when modifying the URL.
7553
7554         * url.c (url_set_dir): New function.
7555         (url_set_file): Ditto.
7556
7557         * ftp-basic.c (ftp_process_type): Process FTP type here; the URL
7558         parser makes the URL "params" available, so we can do that in this
7559         function.
7560
7561         * retr.c: Ditto.
7562
7563         * ftp.c: Ditto; pass the local file information in `ccon'.
7564
7565         * http.c: Get rid of the ugly kludge that had URL being replaced
7566         with the proxy URL when proxy retrieval was requested.  Use a
7567         separate parameter to http_loop and gethttp for the proxy URL.
7568
7569         * http.c: Changed to reflect the fact that local file, proxy, and
7570         referer information are no longer stored in struct url.  The local
7571         file information is passed in `struct hstat' now.
7572
7573         * url.c: Reworked URL parsing to be more regular.  Reencode the
7574         URL using reencode_string.
7575         Removed non-URL-related information from struct url.  This
7576         includes fields `proxy', `local', and `referer'.
7577
7578 2001-11-22  Jochen Hein  <jochen@jochen.org>
7579
7580         * main.c (main): Split the copyright notice for easier
7581         translation.
7582
7583 2001-08-21  Dave Turner <dct25@hermes.cam.ac.uk>
7584
7585         * ftp-basic.c (ftp_size): New function to send non-standard SIZE
7586           command to server to request file size.
7587         * ftp.h (ftp_size): Export it.
7588         * ftp.c (getftp): Use new ftp_size function if restoring
7589           transfer of a file with unknown size.
7590
7591 2001-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
7592
7593         * url.c (parseurl): Don't depend on the now-obsolete TYPE.
7594
7595 2001-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
7596
7597         * url.c (getproxy): Handle URL shorthands.
7598
7599 2001-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
7600
7601         * main.c: Remove --wait / --waitretry backwards compatibility
7602         code.
7603
7604 2001-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
7605
7606         * main.c (main): Use it.
7607
7608         * url.c (rewrite_url_maybe): New function.
7609
7610 2001-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
7611
7612         * url.c: Clean up handling of URL schemes.
7613
7614 2001-05-13  Hrvoje Niksic  <hniksic@arsdigita.com>
7615
7616         * url.c: Get rid of `protostrings'.
7617         (skip_proto): Don't use protostrings.
7618         (has_proto): Ditto.
7619
7620 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
7621
7622         * Makefile.in: Conditionally compile getopt.o.
7623
7624 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
7625
7626         * md5.h: Renamed to gnu-md5.h.
7627
7628         * md5.c: Renamed to gnu-md5.c.
7629
7630         * http.c: Ditto.
7631
7632         * ftp-opie.c: Use the new macros.
7633
7634         * sysdep.h: Define md5-related macros.
7635
7636         * config.h.in: Define HAVE_SOLARIS_MD5 or HAVE_BUILTIN_MD5
7637         depending on which md5 implementation is used.
7638
7639 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
7640
7641         * res.c (res_register_specs): Initialize OLD and HP_OLD to appease
7642         the compiler.
7643
7644 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
7645
7646         * http.c (gethttp): Print the whole response line when printing
7647         headers is requested.
7648
7649 2001-05-12  Hrvoje Niksic  <hniksic@arsdigita.com>
7650
7651         * res.c: New file.  Implement all RES-related code here.
7652
7653 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
7654
7655         * version.c: Wget 1.7.1 is released.
7656
7657 2001-11-16  Hrvoje Niksic  <hniksic@arsdigita.com>
7658
7659         * headers.c (header_extract_number): Ignore trailing whitespace.
7660
7661 2001-08-24  Ian Abbott  <abbotti@mev.co.uk>
7662
7663         * html-url.c (collect_tags_mapper): Fix bug converting links
7664         with -k option for tags with multiple link attributes by
7665         handling links in the order they appear.
7666
7667 2001-08-15  Ian Abbott  <abbotti@mev.co.uk>
7668
7669         * ftp.c (ftp_loop_internal): Avoid a potential buffer overflow in
7670           the call to the 'rate' function by moving it past the error
7671           checking for the 'getftp' function return value.
7672
7673 2001-11-16  Hrvoje Niksic  <hniksic@arsdigita.com>
7674
7675         * html-parse.c (advance_declaration): Use 0x22 instead of '"' or
7676         '\"'.  Different compilers' assert macros are broken in different
7677         ways.
7678
7679 2001-09-29  Christian Fraenkel  <c.fraenkel@gmx.net>
7680
7681         * http.c (gethttp): print debug output for errors occuring during
7682         the ssl handshake.
7683
7684 2001-11-16  Chris Seawood  <cls@seawood.org>
7685
7686         * init.c: Ditto.
7687
7688         * host.c: Ditto.
7689
7690         * connect.c: Ditto.
7691
7692         * sysdep.h: Support compilation under BEOS.
7693
7694 2001-06-08  Edward J. Sabol  <sabol@alderaan.gsfc.nasa.gov>
7695
7696         * url.c (url_equal): Fix a memory leak when parseurl returns an
7697         error on the second URL. Also, since url_equal is not used at the
7698         moment, do not compile it.
7699
7700         * url.h: Ditto for the prototype of url_equal.
7701
7702 2001-11-16  Hrvoje Niksic  <hniksic@arsdigita.com>
7703
7704         * html-parse.c (map_html_tags): Support XML-style empty tags.
7705
7706 2001-06-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7707
7708         * wget.h (DO_REALLOC_FROM_ALLOCA): Check for do_realloc_newsize in
7709         loop condition because we're no longer setting SIZEVAR here.
7710
7711 2001-06-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7712
7713         * wget.h (DO_REALLOC_FROM_ALLOCA): Set SIZEVAR after the memcpy()
7714         call because it needs the old value.
7715
7716 2001-06-18  Hrvoje Niksic  <hniksic@arsdigita.com>
7717
7718         * cookies.c (ATTR_NAME_CHAR): Allow almost any character to be in
7719         an attribute name.
7720
7721 2001-06-18  Hrvoje Niksic  <hniksic@arsdigita.com>
7722
7723         * url.c (url_filename): Make sure that slashes that sneak in to
7724         u->file via query string get protected.
7725         (file_name_protect_query_string): New function.
7726
7727 2001-06-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7728
7729         * recur.c (recursive_retrieve): Also check undesirable_urls with
7730         canonicalized URL.
7731
7732 2001-06-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7733
7734         * http.c (gethttp): Search `.netrc' with real host, not the proxy
7735         one.
7736
7737 2001-06-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7738
7739         * sysdep.h (MAP_FAILED): Provide MAP_FAILED for systems that don't
7740         define it.
7741
7742 2001-06-09  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
7743
7744         * ftp.h: Provide correct prototype for ftp_parse_ls().
7745
7746 2001-06-04  Hrvoje Niksic  <hniksic@arsdigita.com>
7747
7748         * version.c: Wget 1.7 is released.
7749
7750 2001-06-03  Karl Eichwalder  <ke@suse.de>
7751
7752         * ftp-ls.c (ftp_parse_ls): Fix typo.
7753
7754 2001-05-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7755
7756         * all: Update copyright information.
7757
7758 2001-05-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7759
7760         * http.c (gethttp): Indicate that the continued download failed
7761         for *this* file.
7762
7763 2001-05-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7764
7765         * version.c: Wget 1.7-pre1 is released.
7766
7767 2001-05-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7768
7769         * version.c: Updated version to 1.7-pre1.
7770
7771 2001-05-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7772
7773         * gen_sslfunc.c: Don't include <sys/time.h> directly.
7774
7775 2001-05-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7776
7777         * http.c (gethttp): Use real URL data for cookies, not the proxy
7778         stuff.
7779
7780 2001-05-12  Hrvoje Niksic  <hniksic@arsdigita.com>
7781
7782         * main.c (print_help): Document `--no-http-keep-alive'.
7783
7784         * utils.c (numdigit): Handle negative numbers *correctly*.
7785
7786         * hash.c (make_nocase_string_hash_table): Use term "nocase" rather
7787         than the confusing "unsigned".
7788
7789         * utils.c (string_set_contains): Renamed from string_set_exists.
7790
7791         * hash.c (hash_table_contains): Renamed from hash_table_exists.
7792
7793         * cookies.c: Move case-insensitive hash tables to hash.c.
7794
7795 2001-05-09  Hrvoje Niksic  <hniksic@arsdigita.com>
7796
7797         * http.c (gethttp): Before concluding that the file is already
7798         fully retrieved, make sure that the file existed and `Range' was
7799         actually requested.
7800
7801 2001-05-09  Hrvoje Niksic  <hniksic@arsdigita.com>
7802
7803         * cookies.c (eliminate_dups): New function.
7804         (build_cookies_request): Use it.
7805         (build_cookies_request): Set chain_store_size after reallocating
7806         all_chains.
7807         (check_domain_match): Annotated for easier future debugging.
7808         (store_cookie): In the debug message, print whether the cookie is
7809         permanent.
7810
7811 2001-05-08  Hrvoje Niksic  <hniksic@arsdigita.com>
7812
7813         * http.c (http_loop): Reset no_truncate before deciding whether to
7814         set it.
7815         (gethttp): Further clarify "-c conflicts with existing file" error
7816         message, based on input from Herold Heiko.
7817
7818 2001-05-07  Hrvoje Niksic  <hniksic@arsdigita.com>
7819
7820         * http.c (http_loop): If restval is set, set no_truncate to 1
7821         unconditionally.
7822
7823 2001-05-02  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
7824
7825         * ftp-ls.c (ftp_parse_winnt_ls): Assure months are being correctly
7826         converted. Pointed out by <Stefan.Weil@de.heidelberg.com>.
7827         (ftp_parse_vms_ls): Ditto.
7828
7829 2001-04-30  Hrvoje Niksic  <hniksic@arsdigita.com>
7830
7831         * init.c (cmd_address): Zero SIN before using it; apparently
7832         needed on *BSD.
7833
7834 2001-04-29  Hrvoje Niksic  <hniksic@arsdigita.com>
7835
7836         * ftp.c (ftp_loop_internal): Don't set NO_TRUNCATE if the file is
7837         empty.
7838
7839 2001-04-29  Hrvoje Niksic  <hniksic@arsdigita.com>
7840
7841         * main.c (main): Make `--cookies' respect its argument.
7842
7843 2001-04-28  Hrvoje Niksic  <hniksic@arsdigita.com>
7844
7845         * main.c (main): Removed undocumented option `--email-address'.
7846
7847         * netrc.c: Use the latest read_whole_line.
7848
7849         * init.c (defaults): Set opt.ftp_pass to "-wget@".
7850
7851         * mswindows.c (pwd_cuserid): Ditto.
7852
7853         * utils.c (pwd_cuserid): Removed.
7854
7855         * host.c (ftp_getaddress): Removed.
7856
7857 2001-04-28  Hrvoje Niksic  <hniksic@arsdigita.com>
7858
7859         (http_loop): Allocate space for filename_plus_orig_suffix with
7860         alloca; this is more efficient and removes the need to free it
7861         before each and every return.
7862
7863 2001-04-28  Hrvoje Niksic  <hniksic@arsdigita.com>
7864
7865         * http.c (gethttp): Return RETRUNNEEDED when the retrieval is
7866         unneeded because the file is already there and fully downloaded,
7867         and -c is specified.
7868         (http_loop): Handle RETRUNNEEDED.
7869
7870         * wget.h (uerr_t): New value RETRUNNEEDED.
7871
7872         * http.c (http_loop): Set no_truncate for files that both exist
7873         and are non-empty.
7874         (gethttp): Consider the download finished when restval >= contlen,
7875         not only when restval==contlen.
7876         (gethttp): Handle redirection before giving up due to -c.
7877         (gethttp): Clarify error message which explains that -c will not
7878         truncate the file.
7879         (gethttp): When returning CONTNOTSUPPORTED, don't forget to free
7880         the stuff that needs freeing and release the socket.
7881
7882 2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7883
7884         * main.c (print_help): Wget booleans accept "off", not "no".
7885
7886 2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7887
7888         * http.c (http_loop): If allow_cache is zero, always disable
7889         caching, not only when retrieving through proxy.
7890
7891         * init.c: Ditto.
7892
7893         * options.h (struct options): Rename proxy_cache to allow_cache.
7894
7895 2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7896
7897         * http.c (mktime_from_utc): Improve documentation.
7898         (http_atotm): Put format strings into a separate array.
7899
7900 2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7901
7902         * safe-ctype.h: Instead of throwing #error when isalpha is
7903         defined, redefine it to something that will throw a compile-time
7904         error if actually *used*.  Do the same for the rest of the
7905         standard C macros.
7906
7907 2001-04-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7908
7909         * url.c (getproxy): Ignore empty proxy vars.
7910
7911 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7912
7913         * http.c (http_loop): Would load cookies every time.
7914
7915         * cookies.c (load_cookies): Handle cookies whose values contain
7916         embedded spaces.
7917
7918 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7919
7920         * utils.c: Define each DIGITS_* in one line.
7921
7922 2001-04-25  Roger L. Beeman  <beeman@cisco.com>
7923
7924         * http.c (http_atotm): Initialize t.tm_isdst to 0.
7925         (mktime_from_utc): Prevent mktime() from having discontinuities at
7926         DST transition points.
7927
7928 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7929
7930         * html-url.c (get_urls_html): Fix documentation.
7931
7932 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7933
7934         * url.c (UNSAFE_CHAR): Reimplement using a static table.
7935         (url_init): Removed.
7936         (init_unsafe_char_table): Removed.
7937
7938 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7939
7940         * snprintf.c (dopr): Replace ISDIGIT with '0' <= ch && ch <= '9'.
7941
7942 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7943
7944         * utils.c: Document timer functions.
7945
7946         * retr.c (rate): Use it.
7947         (rate): Print in GB/s if transfer rate exceeds 1 GB/s.
7948
7949         * utils.c (wtimer_granularity): New function.
7950
7951 2001-04-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7952
7953         * retr.c (show_progress): Ditto.
7954
7955         * ftp.c (getftp): Ditto.
7956
7957         * http.c (gethttp): Use new timer functions.
7958
7959         * utils.c (wtimer_allocate): New function.
7960         (wtimer_new): Ditto.
7961         (wtimer_delete): Ditto.
7962         (wtimer_reset): Ditto.
7963         (wtimer_elapsed): Ditto.
7964
7965 2001-04-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7966
7967         * utils.c (long_to_string): New, faster version.  Favors smaller
7968         numbers; much of the calculation is now done at compile-time.
7969
7970 2001-04-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7971
7972         * utils.c (numdigit): Handle negative numbers.
7973
7974 2001-04-23  Hrvoje Niksic  <hniksic@arsdigita.com>
7975
7976         * retr.c (show_progress): Print the download rate even when the
7977         percentages are not available.
7978
7979 2001-04-21  Hrvoje Niksic  <hniksic@arsdigita.com>
7980
7981         * ftp.c (getftp): Adjust expected_bytes if the length is
7982         authoritative.
7983
7984 2001-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7985
7986         * url.c: Don't declare `construct'.
7987
7988         * hash.c (grow_hash_table): Speed up rehashing; inline storing of
7989         mappings to new locations.
7990         (hash_table_new): Make resize_threshold a field in the hash table,
7991         so we don't have to recalculate it in each hash_table_put.
7992         (grow_hash_table): Update resize_threshold.
7993         (MAX): Remove unused macro.
7994         (prime_size): Made static.
7995
7996 2001-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7997
7998         * retr.c (retrieve_url): Call uri_merge, not url_concat.
7999
8000         * html-url.c (collect_tags_mapper): Call uri_merge, not
8001         url_concat.
8002
8003         * url.c (mkstruct): Use encode_string instead of xstrdup followed
8004         by URL_CLEANSE.
8005         (path_simplify_with_kludge): Deleted.
8006         (contains_unsafe): Deleted.
8007         (construct): Renamed to uri_merge_1.
8008         (url_concat): Renamed to uri_merge.
8009
8010 2001-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
8011
8012         * url.c (str_url): Use encode_string instead of the unnecessary
8013         CLEANDUP.
8014         (encode_string_maybe): New function, returns input string if no
8015         encoding is needed.
8016         (encode_string): Call encode_string_maybe to do the dirty work,
8017         xstrdup if no work needed.
8018
8019 2001-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
8020
8021         * wget.h (XDIGIT_TO_xchar): Define here.
8022
8023         * url.c (decode_string): Use new name.
8024         (encode_string): Ditto.
8025
8026         * http.c (XDIGIT_TO_xchar): Rename HEXD2asc to XDIGIT_TO_xchar.
8027         (dump_hash): Use new name.
8028
8029         * wget.h: Rename ASC2HEXD and HEXD2ASC to XCHAR_TO_XDIGIT and
8030         XDIGIT_TO_XCHAR respectively.
8031
8032 2001-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
8033
8034         * init.c: Include cookies.h.
8035
8036         * cookies.h: Declare cookies_cleanup.
8037
8038         * cookies.c (check_domain_match): Remove unused variable.
8039         (save_cookies): Remove extraneous argument from debug statement.
8040
8041         * host.c (same_host): Don't call skip_url.
8042
8043         * url.c (skip_url): Removed.  Removed its calls from various
8044         functions in url.c.
8045
8046 2001-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
8047
8048         * cookies.c (unsigned_string_hash): Use the new code in
8049         string_hash as reference.
8050
8051         * hash.c (hash_table_map): Allow deletion and change of the
8052         element processed by MAPFUN.
8053         (string_hash): Use the function from glib.
8054
8055 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
8056
8057         * config.h.in: Include #undef stub.
8058
8059         * hash.c (hash_table_remove): Rewrite to actually clear deleted
8060         entries instead of just marking them as deleted.
8061
8062 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
8063
8064         * hash.h: Declare hash_table_get_pair and hash_table_count.
8065
8066 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
8067
8068         * cookies.c: Declare http_atotm.
8069
8070 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
8071
8072         * ftp-ls.c (ftp_parse_unix_ls): Use octal constants for
8073         permissions.  A compiler that doesn't accept octal constants is
8074         seriously broken and shouldn't be used -- octal constants were
8075         present in K&R C!
8076
8077 2001-01-20  Karl Eichwalder  <ke@suse.de>
8078
8079         * Makefile.in: Provide and use DESTDIR according to the Coding
8080         Standards.
8081
8082 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
8083
8084         * ftp-ls.c (ftp_parse_vms_ls): Make seconds optional in time
8085         specification.
8086
8087 2001-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
8088
8089         * url.c (parseurl): Don't strip trailing slash when u->dir is "/"
8090         because that strips the *leading* slash, thus forcing relative
8091         FTP retrieval.
8092
8093 2001-04-10  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8094
8095         * ftp.c (getftp): Convert initial FTP directory from VMS to UNIX
8096         notation for VMS servers.
8097         (ftp_retrieve_dirs): Do not prepend '/' to f->name when
8098         odir is an empty string.
8099
8100 2001-04-10  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8101
8102         * ftp-ls.c (ftp_parse_winnt_ls): Made the fix for AM/PM more
8103         effective. Suggested by Edward J. Sabol.
8104
8105 2001-04-10  Hrvoje Niksic  <hniksic@arsdigita.com>
8106
8107         * cookies.c (build_cookies_request): Use and sort cookies from all
8108         matching domains.
8109         (build_cookies_request): Check for duplicates before generating
8110         the `Cookies' header.
8111
8112         * main.c (main): Don't load cookies here.
8113         (main): Make loadcookies and savecookies call the correct command.
8114
8115         * http.c (http_loop): Load cookies on-demand.
8116
8117 2001-04-09  Hrvoje Niksic  <hniksic@arsdigita.com>
8118
8119         * http.c (gethttp): Fix indentation of SSL ifdef.
8120
8121 2001-04-09  Hrvoje Niksic  <hniksic@arsdigita.com>
8122
8123         * ftp.c (ftp_retrieve_dirs): Don't forcibly prepend "/" to u->dir;
8124         that hack is no longer necessary.
8125         (getftp): Prepend initial directory to *non*-absolute u->dir's.
8126
8127 2001-04-09  Hrvoje Niksic  <hniksic@arsdigita.com>
8128
8129         * init.c (cmd_file): New function.
8130         (enable_tilde_expansion): New variable.
8131         (run_wgetrc): Use it.
8132         (cmd_file): Use it.
8133
8134 2001-04-08  Hrvoje Niksic  <hniksic@arsdigita.com>
8135
8136         * init.c: Include cookie-related options.
8137
8138         * main.c (main): Include cookie-specific options.
8139         (main): Load cookies before download is finished.
8140         (main): Save cookies when done.
8141
8142         * http.c (gethttp): Process the `Set-Cookie' header.
8143         (gethttp): Include cookies in the response.
8144
8145         * cookies.c: New file.
8146
8147 2001-04-08  Hrvoje Niksic  <hniksic@arsdigita.com>
8148
8149         * utils.c (datetime_str): New function.
8150
8151 2001-04-08  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8152
8153         * ftp-ls.c (ftp_parse_winnt_ls): The AM/PM change did assume
8154         12:01PM == 00:01, which was obviously wrong. Taken care of this
8155         anomaly.
8156
8157         * ChangeLog: Removed an excess conflict marker. Reformatted the
8158         entry by Philipp Thomas from 2001-03-09.
8159
8160         * ftp-ls.c (ftp_parse_winnt_ls): Ensure that adjusted PM hours lay
8161         between 0 and 23. Elminate unused variable `sec'.
8162
8163 2001-04-08  Hrvoje Niksic  <hniksic@arsdigita.com>
8164
8165         * hash.c (hash_table_count): New function.
8166
8167 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8168
8169         * utils.c (read_file): Cast MAP_FAILED to char *.  Enforced by
8170         Digital Unix cc.
8171
8172 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8173
8174         * config.h.in: Oops, do the namespace tweaks only on systems we
8175         know about.
8176
8177 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8178
8179         * hash.c: Include <string.h>.
8180
8181 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8182
8183         * config.h.in: Define "compilation environment" options that work
8184         under Linux and Solaris.  To be reviewed on other OS'es.
8185
8186 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8187
8188         * http.c (gethttp): Prepend literal newline with `\n\'.
8189
8190 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8191
8192         * sysdep.h: Don't define VERY_LONG_FORMAT.
8193
8194         * utils.c (very_long_to_string): New function.
8195         (legible_very_long): Use it; don't use VERY_LONG_FORMAT.
8196
8197 2001-04-04  Christian Fraenkel  <christian.fraenkel@gmx.net>
8198
8199         * url.c (parse_uname): Would run past the end of the string if the
8200         username was present, but the URL did not contain a slash, e.g.
8201         http://foo:bar@myhost.
8202
8203 2001-04-03  KOJIMA Hajime  <kjm@rins.ryukoku.ac.jp>
8204
8205         * http.c (http_atotm): Use %A instead of %a to match full
8206         weekday.  (On most systems there is no difference.)
8207
8208 2001-04-03  Paul Bludov  <paul@ozero.net>
8209
8210         * mswindows.c (sleep): Use SleepEx() instead of Sleep().
8211         (ws_changetitle): Use alloca() instead of malloc() to avoid memory
8212         leak.
8213         (ws_mypath): Use GetModuleFileName instead of argv[0].
8214         (ws_startup): Use data.wVersion for comparison.
8215
8216 2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
8217
8218         * http.c (http_loop): Ditto.
8219
8220         * ftp.c (ftp_loop_internal): Made the check whether to continue
8221         retrieval `-O'-friendly.
8222
8223 2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
8224
8225         * netrc.c (parse_netrc): Don't trim the line endings explicitly;
8226         they will be handled as whitespace.
8227         (parse_netrc): Correctly handle lines that end with whitespace.
8228
8229 2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
8230
8231         * retr.c (retrieve_url): New variable global_download_count used
8232         to identify first retrieval.
8233
8234         * ftp.c (getftp): Ditto.
8235
8236         * http.c (gethttp): Rewind opt.dfp only on first retrieval.
8237
8238 2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
8239
8240         * init.c (cmd_address): Heap-allocate the address that gets stored
8241         to CLOSURE.  Old code would simply assign an address on the stack.
8242
8243 2001-04-01  Nicolas Lichtmaier <nick@debian.org>
8244
8245         * ftp.c (ftp_get_listing): Propagate error status.
8246         (ftp_retrieve_glob): Use it.
8247         (ftp_loop): Ditto.
8248
8249 2001-04-01  Nicolas Lichtmaier <nick@debian.org>
8250
8251         * main.c (main): Add -C to the string that is the third arg to
8252         getopt_long().
8253
8254 2001-04-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8255
8256         * ftp.c (getftp): Don't start the download from scratch if `-c'
8257         was specified, but the file is already fully downloaded.
8258
8259         * http.c (gethttp): Don't truncate a pre-existing file if `-c' was
8260         specified and the server doesn't support continued download.
8261         (gethttp): Don't start the download from scratch if `-c' was
8262         specified, but the file is already fully downloaded.
8263
8264 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
8265
8266         (recursive_retrieve): Don't clear the hash tables at this point at
8267         all; it interferes with the normal operation of register_download.
8268
8269 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
8270
8271         * recur.c (recursive_retrieve): Clear the hash tables only when
8272         they are defined.
8273
8274 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
8275
8276         * http.c (gethttp): Make sure the socket is closed with
8277         CLOSE_INVALIDATE before we have drained the body.
8278
8279 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
8280
8281         * retr.c (retrieve_url): Call register_download() for downloaded
8282         files and register_html() for downloaded HTML files.
8283
8284         * recur.c (register_download): New function; register here that a
8285         file has been downloaded, rather than in recursive_retrieve().
8286         (register_html): New function; enqueue the location of HTML files
8287         here rather than in recursive_retrieve().
8288
8289 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
8290
8291         * main.c (print_help): Use multiple fputs instead of a single ugly
8292         printf().
8293         (main): Consistently assign numbers >128 to options without a
8294         corresponding character.
8295
8296 2001-03-09  Philipp Thomas  <pthomas@suse.de>
8297
8298         * safe-ctype.h: New file. Locale independent ctype.h replacement
8299         taken from libiberty.
8300
8301         * safe-ctype.c: New file. Tables for above.
8302
8303         * Makefile.in: Add safe-ctype$o to OBJS.  Add dependencies for
8304         safe-ctype$o.
8305
8306         * cmpt.c: Remove include of ctype.h. Use ISSPACE instead of
8307         isspace.
8308
8309         * ftp-basic.c: Don't include ctype.h.
8310
8311         * ftp-ls.c: Likewise.
8312
8313         * ftp.c: Likewise.
8314
8315         * headers.c: Likewise.
8316
8317         * host.c: Likewise.
8318
8319         * html-parse.c: Likewise.
8320
8321         * html-url.c: Likewise.
8322
8323         * http.c: Likewise.
8324
8325         * init.c: Likewise.
8326
8327         * main.c: Likewise. Set LC_CTYPE along with LC_MESSAGES.
8328
8329         * netrc.c: Likewise.
8330
8331         * recur.c: Likewise.
8332
8333         * retr.c: Likewise.
8334
8335         * snprintf.c: Replace ctype.h with safe-ctype.h. Use ISDIGIT
8336         instead of isdigit.
8337
8338         * sysdep.h: Remove defines of ctype macros as they aren't needed
8339         for safe-ctype-h.
8340
8341         * url.c: Don't include ctype.h.
8342
8343         * utils.c: Likewise.
8344
8345         * wget.h: Include safe-ctype.h.
8346
8347 2001-03-27  Dan Harkless  <wget@harkless.org>
8348
8349         * Makefile.in: Moved top_builddir out of "User configuration
8350         section" of top Makefile and analogous spot in this one.
8351
8352 2001-03-17  Dan Harkless  <wget@harkless.org>
8353
8354         * Makefile.in: Include @SSL_INCLUDES@ substition in INCLUDES.
8355         Define top_builddir.  Link wget with libtool so the user doesn't
8356         have to supply a bunch of custom environment variables to
8357         correctly link with the OpenSSL shared libraries.
8358
8359 2001-03-06  Hack Kampbjorn  <hack@hackdata.com>
8360
8361         * http.c (gethttp): skip :port in host header if it is the
8362         DEFAULT_HTTPS_PORT when using SSL.
8363
8364         * url.c: move the #define of DEFAULT_HTTP_PORT, DEFAULT_FTP_PORT
8365         and DEFAULT_HTTPS_PORT to the header file so it can be use in the
8366         rest of the code.
8367         * url.h: Ditto
8368
8369 2001-03-01  Jonas Jensen  <bones@huleboer.dk>
8370
8371         * retr.c (show_progress): Correctly calculate the number of bytes
8372         in the first line of the download that have been actually
8373         downloaded in this run.
8374
8375 2001-02-23  Dan Harkless  <wget@harkless.org>
8376
8377         * main.c (print_help): --help documentation for -N said it would
8378         re-download files if they had the _same_ timestamp on server.
8379         (print_help): -nr belongs in "FTP options" section of --help
8380         output, not "Recursive retrieval" section.  Alphabetized FTP
8381         options by long option name.
8382
8383 2001-02-16  Dan Harkless  <wget@harkless.org>
8384
8385         * init.c (commands): Hack Kampbjørn <hack@hackdata.com> discovered
8386         that "httpsproxy" had been inserted into commands[] out of
8387         alphabetical order, causing "BUG: unknown command `httpuser'".
8388
8389 2001-02-13  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8390
8391         * ftp-ls.c (ftp_parse_ls): Added support of ST_MACOS (Unix-like
8392         listing without correct permissons).
8393
8394         * ftp.h (stype): Added ST_MACOS to identify the NetPresenz MacOS
8395         FTP server.
8396
8397         * ftp.c (ftp_retrieve_list): New mirroring logic: A remote file
8398         shall be donwloaded only when it's newer than the local copy or
8399         when it has the same timeestamp but its size is different. ST_VMS
8400         and ST_MACOS as special cases that lie about file size.
8401
8402         * ftp-ls.c (ftp_parse_ls): Support for ST_MACOS.
8403
8404         * Makefile.in: Removed dependency on ftpparse library due to unclear
8405         copyright issues and absence of any feedback to our queries.
8406
8407         * ftp-ls.c: Removed dependency on ftpparse library due to unclear
8408         copyright issues and absence of any feedback to our queries.
8409         (ftp_parse_ls): Added a warning message when remote server system
8410         does not seem to be suported by wget.
8411         (ftp_parse_vms_ls): New function for parsing VMS ftp
8412         server listing output.
8413         (clean_line): New function responsible for removing
8414         end-of-line characters from FTP listing texts.
8415
8416         * ftp.c (getftp): Global variables pwd and host_type are now
8417         member of the ccon structure under names ccon.id and ccon.rs.
8418
8419         * ftp.h (struct ccon): Added formed global variables from ftp.c,
8420         enum stype rs (remote system identification) and char *id (initial
8421         working directory), as suggested by Hrvoje.
8422
8423         * url.c (parse_uname): Added support for passwords containing '@'
8424         characters.
8425         (skip_uname): Ditto.
8426
8427 2001-02-11  Hrvoje Niksic  <hniksic@arsdigita.com>
8428
8429         * ftp.c (ftp_loop): Reset con.
8430
8431 2001-01-06  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8432
8433         * url.c (parse_uname): Added support for passwords containing '@'
8434         characters.
8435         (skip_uname): Ditto.
8436
8437 2001-02-11  Hack Kampbjørn  <hack@hackdata.com>
8438
8439         * url.c (parseurl): Debug-print u->ftp_type.
8440
8441 2001-02-11  Hrvoje Niksic  <hniksic@arsdigita.com>
8442
8443         * ftp.c (ftp_loop_internal): Disable padding.
8444         (getftp): Ditto.
8445
8446         * http.c (http_loop): Disable padding.
8447
8448         * retr.c (show_progress): Use it to enable padding.
8449
8450         * retr.c (rate): Optional parameter PAD for padding the rate.
8451
8452 2001-02-10  Hrvoje Niksic  <hniksic@arsdigita.com>
8453
8454         * retr.c (show_progress): Make sure that the last output line
8455         includes progress.
8456
8457 2001-02-10  Jonas Jensen  <bones@huleboer.dk>
8458
8459         * retr.c (show_progress): Print the download rate along with the
8460         percentages.
8461         Along with Anders Thorsby <anders@thorsby.dk>.
8462
8463 2001-02-10  Tim Mooney  <mooney@dogbert.cc.ndsu.NoDak.edu>
8464
8465         * ftp.h: Rename enums `command' to `wget_ftp_command' and
8466         `fstatus' to `wget_ftp_status' because old names clash with Tru64
8467         net/if.h.
8468
8469 2001-02-08  Christian Fraenkel <christian.fraenkel@gmx.net>
8470
8471         * gen_sslfunc.c: verify_callback is now static
8472
8473         * gen_sslfunc.c (init_ssl): load certificate if specified
8474
8475         * gen_sslfunc.c (ssl_printerr): new function
8476
8477         * init.c: added new --sslcertfile and --sslcertkey switches
8478
8479         * main.c: ditto
8480
8481         * options.h: ditto
8482
8483         * http.c (gethttp): abort when init_ssl fails
8484
8485 2001-01-23  Herold Heiko  <Heiko.Herold@previnet.it>
8486
8487         * mswindows.h: Include <malloc.h>; it's needed for alloca().
8488
8489 2001-01-10  Dan Harkless  <wget@harkless.org>
8490
8491         * url.c (str_url): Clarified this function's comment header after
8492         Hrvoje answered my question on the list as to when hide != 1.
8493         Also Hrvoje pointed out I need to use xstrdup() on the string literal.
8494
8495 2001-01-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8496
8497         * connect.c (bindport): Declare addrlen as int.  Diagnosed by
8498         Drazen Kacar <dave@arsdigita.com>.
8499         (conaddr): Ditto.
8500
8501 2001-01-09  Dan Harkless  <wget@harkless.org>
8502
8503         * html-url.c: A bunch of fixup of `--page-requisites'-related
8504         comments to reflect Hrvoje's changes to my code when transplanting
8505         it into this new file, to fix spelling mistakes, to clarify, etc.
8506
8507         * url.c (write_backup_file): Clarified a comment.
8508         (str_url): Henrik van Ginhoven pointed out on the list that we
8509         shouldn't give away the number of characters in the password by
8510         replacing each character with a 'x'.  Use "<password>" instead.
8511
8512         * ftp.c (ftp_retrieve_dirs): The bug where recursion into FTP
8513         directories didn't work if logging in put you in a directory other
8514         than "/" is fixed now.  Removed the comment here warning of the bug.
8515
8516         * main.c (print_help): --continue's description was misleading.
8517         We don't "restart", we "resume".  Also, better to say
8518         "partially-downloaded file" rather than just "existing file".
8519
8520 2001-01-06  Dan Harkless  <wget@harkless.org>
8521
8522         * ChangeLog: The '[Not in 1.6 branch.]'s were decided not to be
8523         the best way to go about my aim.  Removed them in favor of:
8524
8525         * ChangeLog-branches/1.6_branch.ChangeLog: New file.
8526
8527 2001-01-04  Hrvoje Niksic  <hniksic@arsdigita.com>
8528
8529         * url.c (replace_attr): New function, to be used by both
8530         TO_COMPLETE and TO_RELATIVE case in convert_links.
8531         (find_fragment): New function for finding URL fragments.
8532         (replace_attr): Better handle the case where the original string
8533         is not quoted.  Use find_fragment.
8534         (convert_links): Use replace_attr().
8535
8536 2000-12-31  Dan Harkless  <wget@harkless.org>
8537
8538         * ChangeLog: Since this flat file doesn't have multiple branches,
8539         looking at the dates would make you think that things went into
8540         1.6 that actually just went into the 1.7-dev branch.  Added "[Not
8541         in 1.6 branch.]" where appropriate to clarify.
8542
8543 2000-12-30  Dan Harkless  <wget@harkless.org>
8544
8545         * ftp.c, http.c:  Applied Hack Kampbjørn <hack@hackdata.com>'s
8546         patch to deal with h_errno not being defined in netdb.h under Cygwin.
8547
8548 2000-12-18  Csaba Raduly  <csaba.raduly@sophos.com>
8549
8550         * sysdep.h: Include <malloc.h> and <io.h> under Watcom.
8551
8552 2000-12-17  Igor Khristophorov  <igor@atdot.org>
8553
8554         * http.c (check_end): Fix test for '+' or '-'.
8555
8556 2000-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
8557
8558         * url.c (parseurl): Rename inner loop var from i to ind to avoid
8559         clash with the function top-level-declared variable i.
8560         (str_url): Likewise, rename inner-loop i to j.
8561
8562         * recur.c (parse_robots): Don't declare LEN at top of function.
8563         (robots_match): Renamed parameter FORBIDDEN to avoid hiding of
8564         global variable.
8565
8566         * main.c (main): Change erroneous use of bitwise and to logical.
8567
8568         * init.c (cmd_address): Don't heap-allocate `sin'; it can be on
8569         the stack because it will be copied to closure.
8570
8571         Thanks to Csaba Raduly's run of PC-LINT over the sources.
8572
8573 2000-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
8574
8575         * http.c (basic_authentication_encode): Use xmalloc(), not
8576         malloc().  Thanks to Csaba Raduly's run of PC-LINT over the
8577         sources.
8578
8579 2000-12-17  Csaba Raduly  <csaba.raduly@sophos.com>
8580
8581         * sysdep.h: Test for __EMX__ rather than for EMXOS2 for OS/2
8582         compilation.
8583
8584 2000-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
8585
8586         * mswindows.c: Include <errno.h>.
8587
8588         * gen_sslfunc.c: Include <errno.h>.
8589
8590         * ftp-basic.c: Don't attempt to declare errno or h_errno because
8591         they're not used.
8592
8593         * main.c: Include <errno.h> because errno is used.
8594
8595         * ftp.c: Ditto.
8596
8597         * http.c: Include <netdb.h> for h_errno.
8598
8599 2000-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
8600
8601         * html-parse.c (advance_declaration): MSVC assert() chokes on
8602         '\"'.  Use '"' instead.
8603
8604 2000-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
8605
8606         * utils.c (xfree_real): Removed.
8607         (xfree_debug): Just call free().
8608
8609         * wget.h (xfree): Make it an alias for free.
8610
8611 2000-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
8612
8613         * http.c (http_loop): Furthermore, touch output_document only if
8614         it is known to be an existing regular file.
8615
8616 2000-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
8617
8618         * ftp.c (ftp_retrieve_list): Ditto.
8619
8620         * http.c (http_loop): Touch output_document if that is used for
8621         output.
8622
8623 2000-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8624
8625         * http.c: Include gen_sslfunc.h after including Wget's headers.
8626         (persistent_available_p): Needed coma before `int ssl'.
8627
8628 2000-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8629
8630         * ftp.c (ftp_loop_internal): Ditto.
8631
8632         * http.c (http_loop): Use it.
8633
8634         * retr.c (sleep_between_retrievals): New function that handles the
8635         logic of opt.wait and opt.waitretry.
8636
8637 2000-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8638
8639         * rbuf.h: Implement only a single version of RBUF_READCHAR, using
8640         rbuf_read_bufferful when the buffer is depleted.
8641
8642         * rbuf.c (rbuf_read_bufferful): New function.
8643
8644 2000-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8645
8646         * gen_sslfunc.h: Use ansi2knr style function declarations.
8647
8648         * gen_sslfunc.c: Reformat according to the GNU coding standards.
8649         More should be done.
8650
8651         * http.c (persistent_available_p): Place the cheap SSL test nearer
8652         the top of the function.
8653         (CLOSE_FINISH, CLOSE_INVALIDATE): Define only one version of each.
8654
8655 2000-12-05  Hrvoje Niksic  <hniksic@arsdigita.com>
8656
8657         * url.c (init_unsafe_char_table): Reinstate space as an unsafe
8658         char.
8659
8660 2000-12-03  Christian Fraenkel <christian.fraenkel@gmx.net>
8661
8662         * Makefile.in: added gen_sslfunc object
8663         * config.h.in: added HAVE_SSL define
8664         * connect.c: changed select_fd from static int to int
8665         * connect.h: ditto
8666         * gen_sslfunc.h: New file
8667         * gen_sslfunc.c: ditto
8668         * http.c: added HTTPS fuctionality
8669         * retrc.c: ditto
8670         * url.c: ditto
8671         * init.c: added opt.httpsproxy
8672         * options.h: ditto
8673         * rbuf.h: added alternate rbuf struct
8674         * wget.h: added CONSSLERR
8675         * rbuf.c: ditto
8676
8677         * http.c: Added HTTPS fuctionality.
8678
8679         * retrc.c: Ditto.
8680
8681         * url.c: Ditto.
8682
8683         * init.c: Added opt.httpsproxy.
8684
8685         * options.h: Ditto.
8686
8687         * rbuf.h: Added alternate rbuf struct.
8688
8689         * wget.h: Added CONSSLERR.
8690
8691         * rbuf.c: Ditto.
8692
8693 2000-11-30  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8694
8695         * ftp-ls.c (ftp_parse_unix_ls): Added second parameter
8696         "ignore_perms" to ignore file and directory permissions for
8697         Windows NT FTP server listings.
8698         (ftp_parse_winnt_ls): New function.
8699         (ftp_parse_ls): Parses UNIX and Windows NT listings
8700         separately. Simple heuristics for distinguishing between UNIX and
8701         MS-DOS-like FTP listing provided by Windows NT FTP service.
8702
8703 2000-11-18  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8704
8705         * ftpparse.c, ftpparse.h: New files.
8706
8707         * ftp-ls.c (ftp_parse_ls): Use ftp_parse_unix_ls for UNIX servers
8708         only. Use ftp_parse_nonunix_ls otherwise.
8709         (ftp_parse_nonunix_ls): Stub to the ftpparse library handling all
8710         exotic FTP servers.
8711
8712         * ftp.h (stype): New enum, distinguishes UNIX, VMS, and "other"
8713         FTP servers.
8714
8715         * ftp.c: New static wariables host_type, pwd, and pwd_len.
8716         (getftp): Support for VMS. Support for FTP servers that do not
8717         place you in the root directory after login.
8718         (ftp_retrieve_list): VMS is silent about the real file size, issue
8719         a more appropriate message.
8720         (ftp_get_listing): Pass host_type to ftp_parse_ls.
8721
8722         * ftp-basic.c (ftp_pwd, ftp_syst): New functions.
8723
8724 2000-11-30  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8725
8726         * ftp-ls.c (ftp_parse_unix_ls): Added second parameter
8727         "ignore_perms" to ignore file and directory permissions for
8728         Windows NT FTP server listings.
8729         (ftp_parse_winnt_ls): New function.
8730         (ftp_parse_ls): Parses UNIX and Windows NT listings
8731         separately. Simple heuristics for distinguishing between UNIX
8732         and MS-DOS-like FTP listing provided by Windows NT FTP service.
8733
8734 2000-11-29  John Summerfield  <summer@OS2.ami.com.au>
8735
8736         * netrc.c (parse_netrc): Get rid of line ending.
8737
8738 2000-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
8739
8740         * ftp.c (ftp_retrieve_list): Undo typo "fix" until resolution by
8741         Dan.
8742
8743 2000-11-24  Karl Eichwalder  <ke@suse.de>
8744
8745         * main.c (print_help): Untabify.
8746
8747 2000-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
8748
8749         * utils.c (xrealloc_debug): Do the unregister/register thing only
8750         if the pointer has actually changed.
8751         (xmalloc_real): Declare `static' in DEBUG_MALLOC builds.
8752         (xfree_real): Ditto.
8753         (xrealloc_real): Ditto.
8754         (xstrdup_real): Ditto.
8755
8756 2000-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
8757
8758         * ftp.c (getftp): ftp_getaddress() returns a malloc'ed copy of the
8759         string; no need to strdup() it.
8760         (getftp): Make pwd_len a local variable.
8761         (ftp_loop): Free PWD before returning.
8762
8763         * init.c (cleanup): Free opt.ftp_pass only if it's non-NULL.
8764
8765 2000-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
8766
8767         * all: Use xfree() instead of free.
8768
8769         * utils.c (xfree): New function.
8770
8771 2000-11-21  Hrvoje Niksic  <hniksic@arsdigita.com>
8772
8773         * url.c (convert_links): HTML-quote the converted string.
8774
8775         * utils.c (html_quote_string): Move here from ftp-ls.c
8776         (html_quote_string): Make non-static; declare in utils.h.
8777         (html_quote_string): Convert SP to &#32;.
8778
8779 2000-11-21  Hrvoje Niksic  <hniksic@arsdigita.com>
8780
8781         * ftp.c (getftp): Reformat Jan's code according to GNU coding
8782         standards; remove (debugging?) printf's; use '\0' for the ASCII
8783         zero character.  Use alloca() instead of malloc() for
8784         inter-function temporary allocations.
8785
8786 2000-11-18  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8787
8788         * ftpparse.c, ftpparse.h: New files.
8789
8790         * ftp-ls.c (ftp_parse_ls): Use ftp_parse_unix_ls for UNIX servers
8791         only. Use ftp_parse_nonunix_ls otherwise.
8792         (ftp_parse_nonunix_ls): Stub to the ftpparse library handling all
8793         exotic FTP servers.
8794
8795         * ftp.h (stype): New enum, distinguishes UNIX, VMS, and "other"
8796         FTP servers.
8797
8798         * ftp.c: New static wariables host_type, pwd, and pwd_len.
8799         (getftp): Support for VMS. Support for FTP servers that do not
8800         place you in the root directory after login.
8801         (ftp_retrieve_list): VMS is silent about the real file size, issue
8802         a more appropriate message.
8803         (ftp_get_listing): Pass host_type to ftp_parse_ls.
8804
8805         * ftp-basic.c (ftp_pwd, ftp_syst): New functions.
8806
8807 2000-11-21  Hrvoje Niksic  <hniksic@arsdigita.com>
8808
8809         * hash.c (hash_table_put): Don't overwrite deleted mappings.
8810
8811 2000-11-21  Hrvoje Niksic  <hniksic@arsdigita.com>
8812
8813         * hash.c (find_mapping): New function.
8814         (hash_table_get): Use it.
8815         (hash_table_get_pair): Ditto.
8816         (hash_table_exists): Ditto.
8817         (hash_table_remove): Ditto.
8818         (hash_table_remove): Really delete the entry if the mapping
8819         following LOCATION is empty.
8820
8821         * utils.c (string_set_add): Check whether the element has existed
8822         before.
8823
8824         * hash.c (hash_table_get_pair): New function.
8825
8826 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
8827
8828         * http.c (http_process_type): Ignore trailing whitespace; use
8829         strdupdelim().
8830
8831         * recur.c (recursive_retrieve): Use the new `convert' field.
8832         (convert_all_links): Ditto.
8833         (convert_all_links): Don't respect meta_disallow_follow.
8834
8835         * html-url.c (handle_link): Fill out link_relative_p and
8836         link_complete_p.
8837
8838         * url.h (struct _urlpos): Make elements more readable.
8839
8840         * recur.c (recursive_retrieve): Call slist_prepend instead of
8841         slist_append.
8842         (convert_all_links): Call slist_nreverse before iterating through
8843         urls_html.
8844
8845         * utils.c (slist_prepend): New function.
8846         (slist_nreverse): Ditto.
8847
8848 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
8849
8850         * http.c (check_end): Constify.
8851
8852 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
8853
8854         * http.c (http_loop): If username and password are known, try the
8855         `Basic' authentication scheme by default.
8856
8857         * connect.h: Declare test_socket_open.
8858
8859 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
8860
8861         * version.c: Bump version from 1.5.3+dev to 1.7-dev.
8862
8863 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
8864
8865         * http.c (gethttp): Don't use the return value of sprintf().
8866         (gethttp): Inhibit keep-alive if opt.http_keep_alive is 0.
8867
8868 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
8869
8870         * recur.c (recursive_retrieve): Print the "so we don't load"
8871         debugging message only if we really don't load.
8872
8873         * http.c (gethttp): Inhibit keep-alive if proxy is being used.
8874         (gethttp): Don't request keep-alive if keep-alive is inhibited.
8875
8876 2000-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
8877
8878         * http.c (gethttp): Make the HTTP persistent connections more
8879         robust.
8880
8881 2000-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
8882
8883         * retr.c (get_contents): If use_expected, make sure that the
8884         appropriate amount of data is being read.
8885
8886         * http.c (gethttp): Check for both `Keep-Alive: ...' and
8887         `Connection: Keep-Alive'.
8888
8889         * wget.h (DEBUGP): Call debug_logprintf only if opt.debug is
8890         turned on.
8891
8892 2000-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
8893
8894         * http.c (connection_available_p): Use it.
8895
8896         * connect.c (test_socket_open): New function.
8897
8898         * http.c (gethttp): Support persistent connections.  Based on the
8899         ideas, and partly on code, by Sam Horrocks <sam@daemoninc.com>.
8900         (register_persistent): New function.
8901         (connection_available_p): Ditto.
8902         (invalidate_connection): Ditto.
8903
8904 2000-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
8905
8906         * url.c (convert_links): Handle UREL2ABS case.
8907
8908         * recur.c (recursive_retrieve): Instead of the list
8909         urls_downloaded, use hash tables dl_file_url_map and
8910         dl_url_file_map.
8911         (convert_all_links): Use them to retrieve data.
8912
8913         * host.c (clean_hosts): Free the hash tables.
8914
8915         * main.c (private_initialize): Call host_init().
8916
8917         * host.c (store_hostaddress): Use a saner, hash table-based data
8918         model.
8919         (realhost): Ditto.
8920         (host_init): Initialize the hash tables.
8921
8922 2000-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
8923
8924         * utils.c (slist_append): Eviscerate NOSORT.  Hash tables are now
8925         used for what the sorted slists used to be used for.
8926         (slist_contains): Don't rely on the list being sorted.
8927         (slist_append): Simplify the code.
8928
8929         * recur.c (recursive_cleanup): Use free_string_set.
8930
8931         * utils.c (string_set_add, string_set_exists, string_set_free):
8932         New functions for easier freeing of hash tables whose keys are
8933         strdup'ed strings.
8934
8935         * recur.c (recursive_retrieve): Use the hash table functions for
8936         storing undesirable URLs.
8937
8938         * hash.c: New file.
8939
8940 2000-11-17  Hrvoje Niksic  <hniksic@arsdigita.com>
8941
8942         * main.c (private_initialize): Call url_init.
8943         (main): Call private_initialize.
8944
8945         * url.c (unsafe_char_table): New table.
8946         (UNSAFE_CHAR): Use it.
8947         (init_unsafe_char_table): New function.
8948         (url_init): New function; call init_unsafe_char_table.
8949
8950 2000-11-16  Hrvoje Niksic  <hniksic@arsdigita.com>
8951
8952         * mswindows.h: Define snprintf and vsnprintf to _snprintf and
8953         _vsnprintf respectively.
8954
8955 2000-11-15  Hrvoje Niksic  <hniksic@arsdigita.com>
8956
8957         * config.h.in: Do the _XOPEN_SOURCE and _SVID_SOURCE things only
8958         on Linux.
8959
8960 2000-11-15  Hrvoje Niksic  <hniksic@arsdigita.com>
8961
8962         * html-url.c (handle_link): Handle HTML fragment identifiers.
8963
8964         * recur.c (recursive_retrieve): If norobot info is respected and
8965         the file is specified not to be followed by robots, respect that.
8966
8967         * html-url.c (collect_tags_mapper): Handle <meta name=robots
8968         content=X>.  For us the important cases are where X is NONE or
8969         where X contains NOFOLLOW.
8970         (get_urls_html): Propagate that information to the caller.
8971
8972 2000-11-13  Hrvoje Niksic  <hniksic@arsdigita.com>
8973
8974         * url.c (convert_links): Unlink the file we might be reading from
8975         before writing to it.
8976         (convert_links): Use alloca instead of malloc for
8977         filename_plus_orig_suffix.
8978
8979 2000-11-12  Hrvoje Niksic  <hniksic@arsdigita.com>
8980
8981         * host.c (realhost): Add HOST to the list with quality==0 only if
8982         it wasn't already there.
8983         Based on analysis by Lu Guohan <feng@public.bjnet.edu.cn>.
8984
8985 2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
8986
8987         * url.c (get_urls_file): Ditto.
8988         (convert_links): Ditto.
8989
8990         * html-url.c (get_urls_html): Use read_file() instead of
8991         load_file().
8992
8993         * utils.c (read_file): New function, instead of the old
8994         load_file().
8995         (read_file_free): Ditto.
8996
8997         * url.c (findurl): Search only for the supported protocols.
8998         (convert_links): Use fwrite() when writing out a region of
8999         characters.
9000
9001 2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
9002
9003         * ftp-ls.c: Move html_quote_string and ftp_index here.
9004
9005         * url.c: Remove get_urls_html, since that's now in html-url.c.
9006
9007         * html-url.c: New file.
9008
9009         * html-parse.c: New file.
9010
9011 2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
9012
9013         * init.c (run_wgetrc): Don't bother killing off '\r' since
9014         pars_line() skips whitespace at end of line anyway.
9015         (parse_line): Oops, it didn't.  Now it does.
9016
9017         * recur.c (parse_robots): Ditto here.
9018
9019         * ftp-ls.c (ftp_parse_unix_ls): Kill off the newline character
9020         manually because read_whole_line no longer does.
9021
9022         * utils.c (read_whole_line): Rewrite to: a) use less memory
9023         (reallocates to needed size after work), b) work faster -->
9024         fgets() instead of getc, c) be more correct --> doesn't kill the
9025         newline character at the end of line.
9026
9027 2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
9028
9029         * init.c (comind): Initialize MAX to array size - 1.
9030
9031 2000-11-08  Hrvoje Niksic  <hniksic@arsdigita.com>
9032
9033         * url.c (construct): Changed last_slash[-1] to *(last_slash - 1).
9034         Suggested by Edward J. Sabol.
9035
9036 2000-11-08  Hrvoje Niksic  <hniksic@arsdigita.com>
9037
9038         * url.c (construct): Handle the case where host name is not
9039         followed by a slash.
9040
9041 2000-11-06  Hrvoje Niksic  <hniksic@arsdigita.com>
9042
9043         * init.c: commands[] need to be sorted!  ("base" wasn't.)
9044
9045 2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
9046
9047         * wget.h (DO_REALLOC_FROM_ALLOCA): Use braces to disambiguate
9048         `if'.
9049
9050 2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
9051
9052         * url.c (construct): Insert unneeded initialization for the
9053         compiler to shut up.
9054
9055         * config.h.in: Define _XOPEN_SOURCE to 500 to get the prototype
9056         for strptime() (*duh*).  Define _SVID_SOURCE to get S_IFLNK which
9057         otherwise gets lost when you define _XOPEN_SOURCE.
9058
9059         * utils.c (touch): Include the file name in the error message.
9060         From Debian.
9061
9062 2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
9063
9064         * log.c (logvprintf): Use vsnprintf() in all cases.  If necessary,
9065         resize the buffer to fit the formated message.  That way, messages
9066         of arbitrary size may be printed.
9067         (logvprintf): Use saved_append() to optionally log the last
9068         several lines of output.
9069         (logputs): Ditto.
9070         (log_close): Adapt to new data structures.
9071         (log_dump): Ditto.
9072         (redirect_output): Print messages to stderr, not to stdout.
9073
9074         * log.c (saved_append_1): New function.  Replaces the old logging
9075         system ("log all output until 10M characters") with a new, much
9076         more reasonable one ("log last screenful of text").
9077         (saved_append): New function; call saved_append_1.
9078         (free_log_line): New function.
9079
9080 2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
9081
9082         * url.c (construct): Fix comment.
9083         (find_last_char): Document.
9084
9085 2000-11-04  Hrvoje Niksic  <hniksic@arsdigita.com>
9086
9087         * snprintf.c: New file.
9088
9089 2000-11-03  Hrvoje Niksic  <hniksic@arsdigita.com>
9090
9091         * wget.h: If HAVE_STDARG_H is not defined, don't declare argument
9092         types to logprintf() and debug_logprintf().
9093
9094 2000-11-02  Hrvoje Niksic  <hniksic@arsdigita.com>
9095
9096         * ftp.c (ftp_loop_internal): Hide the password from the URL when
9097         printing non-verbose.  Problem spotted by Dariusz Mlynarczyk
9098         <darekm@bydg.lomac.com.pl>.
9099
9100 2000-11-02  Junio Hamano  <junio@twinsun.com>
9101
9102         * ftp-basic.c (ftp_login): Make comparison case-insensitive.
9103
9104 2000-11-02  Tyler Riddle  <triddle@liquidmarket.com>
9105
9106         * http.c (known_authentication_scheme_p): Recognize NTML
9107         authentication.
9108         (create_authorization_line): Treat NTML the same as `Basic'.
9109
9110 2000-11-02  Hrvoje Niksic  <hniksic@arsdigita.com>
9111
9112         * retr.c (retrieve_url): Free url before returning.
9113         (retrieve_url): Free mynewloc before returning.
9114         Spotted by Mark A. Mankins <Mankins_Mark@prc.com>.
9115
9116 2000-11-02  Hrvoje Niksic  <hniksic@arsdigita.com>
9117
9118         * url.c (parseurl): Remove possible reading past the end of
9119         sup_protos[].  Spotted by Mark A. Mankins <Mankins_Mark@prc.com>.
9120
9121 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
9122
9123         * main.c (main): In case of opt.downloaded overflowing, print
9124         <overflow> instead of a totally bogus random value.
9125
9126         * retr.c (retrieve_from_file): Ditto.
9127
9128         * recur.c (recursive_retrieve): Ditto.
9129
9130         * main.c (main): Ditto.
9131
9132         * http.c (http_loop): Ditto.
9133
9134         * ftp.c (ftp_loop_internal): Use downloaded_increase() instead of
9135         `+=', and downloaded_exceeds_quota() instead of the simple-minded
9136         check.
9137         (ftp_retrieve_list): Ditto.
9138         (ftp_retrieve_dirs): Ditto.
9139         (ftp_retrieve_glob): Ditto.
9140
9141         * retr.c (downloaded_increase): New function.  Notice overflows of
9142         opt.downloaded.
9143         (downloaded_exceeds_quota): Make sure that opt.downloaded is not
9144         used if it overflowed.
9145
9146         * options.h (struct options): New member downloaded_overflow.
9147
9148 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
9149
9150         * wget.h (enum): Remove extra space after last enumeration.
9151
9152 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
9153
9154         * main.c (main): Use legible_very_long() for printing
9155         opt.downloaded.
9156
9157         * utils.c (legible_1): New function that operates on strings and
9158         does the brunt of legible()'s work.
9159         (legible): Use legible_1().
9160         (legible_very_long): New function; dump the argument with
9161         sprintf(), and call legible_1().
9162
9163         * options.h (struct options): Use VERY_LONG_TYPE for
9164         opt.downloaded.
9165
9166         * sysdep.h (VERY_LONG_TYPE): Define it to have a 64-bit or greater
9167         type.
9168
9169         * config.h.in: Make sure that SIZEOF_LONG and SIZEOF_LONG_LONG get
9170         defined.  Define HAVE_LONG_LONG if long long is available.
9171
9172 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
9173
9174         * utils.c (long_to_string): Update with a later, better version.
9175
9176 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
9177
9178         * url.c (path_simplify_with_kludge): New function.
9179         (path_simplify_with_kludge): Disable it.  Instead...
9180         (parse_dir): ...make sure that at this point the right thing is
9181         done, i.e. that "query" part of the URL (?...) is always assigned
9182         to the file, never to the directory portion of the path.
9183
9184 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
9185
9186         * retr.c (retrieve_url): Detect redirection cycles.
9187
9188 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
9189
9190         * url.c (get_urls_html): Decode HTML entities using
9191         html_decode_entities.
9192
9193         * html.c (htmlfindurl): Don't count the `#' in numeric entities
9194         (&#NNN;) as an HTML fragemnt.
9195         (html_decode_entities): New function.
9196
9197 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
9198
9199         * html.c (htmlfindurl): Fix recognition of # HTML fragments.
9200
9201 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
9202
9203         * url.c (construct): Rewritten for clarity.  Avoids the
9204         unnecessary copying and stack-allocation the old version
9205         performed.
9206
9207 2000-10-31  Hrvoje Niksic  <hniksic@arsdigita.com>
9208
9209         * ftp.c (getftp): Ditto.
9210
9211         * http.c (gethttp): Rewind the stream when retrying from scratch.
9212
9213 2000-10-31  Hrvoje Niksic  <hniksic@arsdigita.com>
9214
9215         * retr.c (retrieve_url): Use url_concat() to handle relative
9216         redirections instead of /ad hoc/ code.
9217
9218         * url.c (url_concat): New function encapsulating weird
9219         construct().
9220         (urllen_http_hack): New function.
9221         (construct): When constructing new URLs, recognize that `?' does
9222         not form part of the file name in HTTP.
9223
9224 2000-10-13  Adrian Aichner  <adrian@xemacs.org>
9225
9226         * retr.c: Add msec timing support for WINDOWS.
9227         * retr.c (reset_timer): GetSystemTime() on WINDOWS.
9228         * retr.c (elapsed_time): Calculate delta time to msec on WINDOWS.
9229
9230 2000-10-27  Dan Harkless  <wget@harkless.org>
9231
9232         * retr.c (retrieve_url): Manually applied T. Bharath
9233         <TBharath@responsenetworks.com>'s patch to get wget to grok
9234         illegal relative URL redirects.  Reformatted and re-commented it.
9235
9236 2000-10-23  Dan Harkless  <wget@harkless.org>
9237
9238         * connect.c (make_connection and bindport): Manually applied Rob
9239         Mayoff <mayoff@dqd.com>'s 1.5.3 patch to add --bind-address,
9240         changing coding style to GNU's.
9241
9242         * ftp.c (ftp_loop_internal): --delete-after wasn't implemented for
9243         files downloaded via FTP.  Per a comment, .listing files were not
9244         counted towards number of bytes and files downloaded because they're
9245         deleted anyway.  Well, they aren't under -nr, so count them then.
9246
9247         * init.c: Manually applied Rob Mayoff's 1.5.3 patch to add
9248         --bind-address, alphabetizing, changing coding style to GNU's,
9249         commenting, and renaming cmd_ip_address() to cmd_address() to
9250         imply hostnames also okay.
9251
9252         * main.c (main): --delete-after didn't delete the root of the
9253         tree.  Ignore --convert-links if --delete-after was specified.
9254         Manually applied Rob Mayoff's 1.5.3 patch to add --bind-address,
9255         fixing duplicate use of added-since-1.5.3 case value.
9256         (print_help): Clarified that --delete-after deletes local files.
9257         Rob forgot to add a line for his new --bind-address option.
9258
9259         * options.h (struct options): Manually applied Rob Mayoff's patch
9260         to add --bind-address (bind_address structure member).
9261
9262         * recur.c (recursive_retrieve): Improved comment; added DEBUGP().
9263         Ignore --convert-links if --delete-after was specified.
9264
9265         * retr.c (retrieve_from_file): Just added a DEBUGP().
9266
9267 2000-10-19  Dan Harkless  <wget@harkless.org>
9268
9269         * ftp.c (ftp_loop_internal): downloaded_file() enumerators changed.
9270         (getftp): Applied Piotr Sulecki <Piotr.Sulecki@ios.krakow.pl>'s
9271         patch to work around FTP servers that incorrectly respond to the
9272         "REST" command with the remaining size rather than the total file size.
9273
9274         * http.c (gethttp): Improved a comment and added code to tack on
9275         ".html" to text/html files without that extension when -E specified.
9276         (http_loop): Use new downloaded_file() enumerators and deal with
9277         the case of gethttp() called xrealloc() on u->local.
9278
9279         * init.c (commands): Added new "htmlextension" command.
9280         Also renamed John Daily's cmd_quad() to the more descriptive
9281         cmd_lockable_boolean(), alpha-sorted the CMD_DECLARE()s and
9282         removed duplicate cmd_boolean() declaration.
9283
9284         * main.c (print_help): Added my new -E / --html-extension option.
9285         (main): Undocumented --email-address option previously used -E synonym.
9286         Stole it away for the much more deserving --html-extension's use.
9287
9288         * options.h (struct options): Added html_extension field.
9289
9290         * url.c (convert_links): URL X that we saved as X.html locally due
9291         to -E needs to be backed up as X.orig, not X.html.orig.  Added comments.
9292         (downloaded_file): Now remembers if we added .html extension to a file.
9293
9294         * url.h (downloaded_file_t): Added extra enumerators to support above.
9295         (downloaded_file): Now takes and returns a downloaded_file_t.
9296
9297         * wget.h (unnamed "dt" enum): Added ADDED_HTML_EXTENSION enumerator.
9298
9299 2000-10-09  Dan Harkless  <wget@harkless.org>
9300
9301         * html.c (htmlfindurl): Added unneeded initialization to quiet warning.
9302
9303         * main.c (print_help): Clarified what --retr-symlinks does.
9304
9305 2000-09-15  John Daily  <jdaily@cyberdude.com>
9306
9307         * init.c: Add support for "always" and "never" values to allow
9308         .wgetrc to override commandline (useful e.g. with .pm files
9309         calling `wget --passive-ftp' when your firewall doesn't allow that).
9310
9311         * ftp.c (getftp): passive_ftp is first option to support always/never.
9312
9313 2000-08-30  Dan Harkless  <wget@harkless.org>
9314
9315         * ftp.c (ftp_retrieve_list): Use new INFINITE_RECURSION #define.
9316
9317         * html.c: htmlfindurl() now takes final `dash_p_leaf_HTML' parameter.
9318         Wrapped some > 80-column lines.  When -p is specified and we're at a
9319         leaf node, do not traverse <A>, <AREA>, or <LINK> tags other than
9320         <LINK REL="stylesheet">.
9321
9322         * html.h (htmlfindurl): Now takes final `dash_p_leaf_HTML' parameter.
9323
9324         * init.c: Added new -p / --page-requisites / page_requisites option.
9325
9326         * main.c (print_help): Clarified that -l inf and -l 0 both allow
9327         infinite recursion.  Changed the unhelpful --mirrior description
9328         to simply give the options it's equivalent to.  Added new -p option.
9329         (main): Added some comments; handle new -p / --page-requisites.
9330
9331         * options.h (struct options): Added new page_requisites field.
9332
9333         * recur.c: Changed "URL-s" to "URLs" and "HTML-s" to "HTMLs".
9334         Calculate and pass down new `dash_p_leaf_HTML' parameter to
9335         get_urls_html().  Use new INFINITE_RECURSION #define.
9336
9337         * retr.c: Changed "URL-s" to "URLs".  get_urls_html() now takes
9338         final `dash_p_leaf_HTML' parameter.
9339
9340         * url.c: get_urls_html() and htmlfindurl() now take final
9341         `dash_p_leaf_HTML' parameter.
9342
9343         * url.h (get_urls_html): Now takes final `dash_p_leaf_HTML' parameter.
9344
9345         * wget.h: Added some comments and new INFINITE_RECURSION #define.
9346
9347 2000-08-23  Dan Harkless  <wget@harkless.org>
9348
9349         * main.c (print_help): -B / --base was not mentioned.
9350
9351 2000-08-22  Dan Harkless  <wget@harkless.org>
9352
9353         * main.c (print_help): Modified -nc description to mention that it
9354         also prevents the creation of multiple versions of the same file
9355         with ".<number>" suffixes.
9356
9357 2000-07-14  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
9358
9359         * retr.c (retrieve_url): Consistently strdup opt.referer when
9360         setting u->referer.
9361
9362 2000-06-09  Dan Harkless  <wget@harkless.org>
9363
9364         * main.c (print_help): --help output for --waitretry was over 80 cols.
9365
9366 2000-06-09  Hrvoje Niksic  <hniksic@iskon.hr>
9367
9368         * url.c (encode_string): Fix comment.
9369         Suggested by Herold Heiko <Heiko.Herold@previnet.it>.
9370
9371 2000-06-01  Const Kaplinsky  <const@ce.cctpu.edu.ru>
9372
9373         * ftp.c (ftp_retrieve_list): Change permissions only on plain
9374         files.
9375
9376 2000-06-01  Hrvoje Niksic  <hniksic@iskon.hr>
9377
9378         * url.c (str_url): Print the port number only if it's different
9379         from the default port number for that protocol.
9380
9381 2000-05-22  Dan Harkless  <wget@harkless.org>
9382
9383         * main.c (print_help): Added --help line for Damir Dzeko
9384         <ddzeko@zesoi.fer.hr>'s until-now-undocumented --referer option.
9385         Removed comments that --referer and --waitretry were undocumented.
9386         Changed "`.wgetrc' command" to "`.wgetrc'-style command" on --help
9387         line for --execute.
9388
9389 2000-05-18  Hrvoje Niksic  <hniksic@iskon.hr>
9390
9391         * ftp.c (getftp): Ditto.
9392
9393         * http.c (gethttp): Check for return value of fclose/fflush.
9394
9395 2000-04-12  Hrvoje Niksic  <hniksic@iskon.hr>
9396
9397         * host.c (store_hostaddress): Instead of shifting ADDR, start
9398         copying from the correct address.
9399
9400 2000-04-12  Hrvoje Niksic  <hniksic@iskon.hr>
9401
9402         * http.c (gethttp): Don't free REQUEST -- it was allocated with
9403         alloca().
9404         Pointed out by Gisle Vanem <gvanem@eunet.no>.
9405
9406 2000-04-04  Dan Harkless  <wget@harkless.org>
9407
9408         * host.c (store_hostaddress): R. K. Owen's patch introduces a
9409         "left shift count >= width of type" warning on 32-bit
9410         architectures.  Got rid of it by tricking the compiler w/ a variable.
9411
9412         * url.c (UNSAFE_CHAR): The macro didn't include all the illegal
9413         characters per RFC1738, namely everything above '~'.  It also
9414         generated a warning on OSes where char =~ unsigned char.  Fixed.
9415
9416 1998-10-17  Hrvoje Niksic  <hniksic@srce.hr>
9417
9418         * http.c (http_process_type): Removed needless strdup(), a memory
9419         leak.
9420
9421 1998-09-25  Hrvoje Niksic  <hniksic@srce.hr>
9422
9423         * html.c (htmlfindurl): Set PH to the first occurrence of `#'.
9424
9425 1998-09-25  Simon Munton  <simonm@m4data.co.uk>
9426
9427         * init.c (wgetrc_file_name): Don't free HOME under Windows.
9428
9429 1998-12-01  "R. K. Owen"  <rkowen@Nersc.GOV>
9430
9431         * host.c (store_hostaddress): Fix for big endian 64-bit machines.
9432
9433 1998-12-01  Hrvoje Niksic  <hniksic@srce.hr>
9434
9435         * url.c (UNSAFE_CHAR): New macro.
9436         (contains_unsafe): Use it.
9437         (encode_string): Ditto.
9438
9439 1998-12-01  Hrvoje Niksic  <hniksic@srce.hr>
9440
9441         * main.c (i18n_initialize): Use LC_MESSAGES only if available.
9442
9443 2000-03-31  Hrvoje Niksic  <hniksic@srce.hr>
9444
9445         * Use TOUPPER/TOLOWER.
9446
9447 1998-12-22  Alexander V. Lukyanov  <lav@yars.free.net>
9448
9449         * ftp-opie.c (btoe): Zero-terminate OSTORE.
9450
9451 2000-03-21  Hrvoje Niksic  <hniksic@iskon.hr>
9452
9453         * wget.h (DO_REALLOC_FROM_ALLOCA): Ditto.
9454
9455         * sysdep.h (ISALNUM): New macro.
9456         (TOLOWER): Ditto.
9457         (TOUPPER): Ditto.
9458
9459 2000-03-10  Dan Harkless  <wget@harkless.org>
9460
9461         * html.c (idmatch): Implemented checking of my new --follow-tags
9462         and --ignore-tags options.
9463
9464         * init.c (commands): Added comment reminding people adding new
9465         entries doing allocation to add corresponding freeing in cleanup().
9466         (commands): Added new followtags and ignoretags commands.
9467         (cleanup): Free storage for new followtags and ignoretags.
9468
9469         * main.c: Use of "comma-separated list" was random -- normalized
9470         it.  Did some alphabetization.  Added comments pointing out
9471         "Options without arguments" and "Options accepting an argument"
9472         sections of long_options[].  Added new options --follow-tags and
9473         -G / --ignore-tags.  Added comment that Damir's --referer is
9474         currently undocumented.  Added comment that Heiko's --waitretry is
9475         partially undocumented (mentioned in --help but not in
9476         wget.texi).  Moved improperly sorted 24, 129, and 'G' cases.
9477
9478         * options.h (struct options): Added new fields follow_tags and
9479         ignore_tags.
9480
9481         * wget.h: Added "#define EQ 0" so we can say "strcmp(a, b) == EQ".
9482
9483 2000-03-02  Dan Harkless  <wget@harkless.org>
9484
9485         * ftp.c (ftp_loop_internal): Heiko introduced "suggest explicit
9486         braces to avoid ambiguous `else'" warnings.  Eliminated them.
9487
9488         * http.c (gethttp): Dan Berger's query string patch is totally
9489         bogus.  If you have two different URLs, gen_page.cgi?page1 and
9490         get_page.cgi?page2, they'll both be saved as get_page.cgi and the
9491         second will overwrite the first.  Also, parameters to implicit
9492         CGIs, like "http://www.host.com/db/?2000-03-02" cause the URLs to
9493         be printed with trailing garbage characters, and could seg fault.
9494         Backing out the patch, which Dan B. informed me by email was just
9495         a kludge to download StarOffice from Sun made necessary due to
9496         wget's unconditional escaping of certain characters (room for an
9497         option there?).
9498         (http_loop): Heiko introduced "suggest explicit braces to avoid
9499         ambiguous `else'" warnings.  Eliminated them.
9500
9501         * main.c: Heiko's --wait / --waitretry backwards compatibility
9502         code looks to have been totally untested -- automatic variable
9503         'wr' was used without being initialized, and a long int was passed
9504         into setval()'s char* val parameter.
9505
9506         * recur.c (parse_robots): Applied Edward J. Sabol
9507         <sabol@alderaan.gsfc.nasa.gov>'s patch for Guan Yang's reported
9508         problem with "User-agent:<space>*<space>" lines in robots.txt.
9509
9510         * url.c (parseurl, str_url): Removing Dan Berger's code (see
9511         http.c above for explanation).
9512
9513 1999-08-25  Heiko Herold  <Heiko.Herold@previnet.it>
9514
9515         * ftp.c: Respect new option waitretry.
9516
9517 2000-01-30  Damir Dzeko  <ddzeko@zesoi.fer.hr>
9518
9519         * http.c (gethttp): Send custom Referer, if required.
9520
9521 1999-09-24  Charles G Waldman  <cgw@fnal.gov>
9522
9523         * netrc.c (parse_netrc): Allow passwords to contain spaces.
9524
9525         * netrc.c (parse_netrc): New function.
9526
9527 1999-09-17  Dan Berger  <dberger@ix.netcom.com>
9528
9529         * http.c (gethttp): Send it.
9530
9531         * url.c (parseurl): Detect query string in HTTP URL-s.
9532         (str_url): Print it.
9533
9534 2000-03-02  HIROSE Masaaki  <hirose31@t3.rim.or.jp>
9535
9536         * html.c (html_allow): Add <link href=...> and <script src=...>.
9537
9538 1999-05-02  andrew deryabin  <djsf@softhome.net>
9539
9540         * http.c (gethttp): Specify port in `Host' header only if it's
9541         different from 80.
9542
9543 1998-11-03  Edward J. Sabol  <sabol@alderaan.gsfc.nasa.gov>
9544
9545         * recur.c (recursive_retrieve): If a finite maximum depth is
9546         specified, and we're are already at that depth, don't download the
9547         HTML file for parsing.
9548
9549 2000-03-01  Dan Harkless  <wget@harkless.org>
9550
9551         * ftp.c (ftp_loop_internal): Call new downloaded_file() function,
9552         even though we don't do conversion on HTML files retrieved via
9553         FTP, so _current_ usage of downloaded_file() makes this call unneeded.
9554         (ftp_retrieve_list): Added a comment saying where we need to
9555         stat() a .orig file if FTP'd HTML file conversion is ever implemented.
9556         (ftp_retrieve_list): "Local file '%s' is more recent," is sometimes
9557         a lie -- reworded as "Server file no newer than local file '%s' --".
9558
9559         * http.c (http_loop): Fixed a typo and clarified a comment.
9560         (http_loop): When -K and -N are specified together, compare size
9561         and timestamp of server file X against local file X.orig (if
9562         extant) rather than converted local file X.
9563         (http_loop): "Local file '%s' is more recent," is sometimes a lie
9564         -- reworded as "Server file no newer than local file '%s' --".
9565         (http_loop): Call new downloaded_file() function to prevent
9566         wrongful overwriting of .orig file when -N is specified.
9567
9568         * url.c (convert_links): When -K specified, only rename X to
9569         X.orig if downloaded_file() returns TRUE.  Otherwise when we skip
9570         file X due to -N, we clobber an X.orig from a previous invocation.
9571         (convert_links): Call the failsafe xstrdup(), not the real strdup().
9572         (convert_links): Added a note asking anyone who understands how
9573         multiple URLs can correspond to a single file to comment it.
9574         (downloaded_file): Added this new function.
9575
9576         * url.h (downloaded_file): Added prototype for this new function
9577         as well as its downloaded_file_t enum type.
9578
9579         * wget.h (boolean): Added this new typedef and TRUE and FALSE #defines.
9580
9581 2000-02-29  Dan Harkless  <wget@harkless.org>
9582
9583         * version.c: Upped version to developer-only "1.5.3+dev".
9584
9585 2000-02-18  Dan Harkless  <wget@harkless.org>
9586
9587         * init.c (backup_converted): Added this new option.
9588
9589         * main.c (-K / --backup-converted): Added this new option.
9590
9591         * options.h (backup_converted): Added this new option.
9592
9593         * url.c (convert_links): When backup_converted is specified, save
9594         file X as X.orig before converting.
9595
9596         * url.h (urlpos): Fixed typo -- said "Rekative" instead of "Relative".
9597
9598 1998-09-21  Hrvoje Niksic  <hniksic@srce.hr>
9599
9600         * version.c: Wget 1.5.3 is released.
9601
9602 1998-09-21  Hrvoje Niksic  <hniksic@srce.hr>
9603
9604         * host.c (ftp_getaddress): Don't warn when reverse-lookup of local
9605         address doesn't yield FQDN.
9606
9607 1998-09-21  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
9608
9609         * cmpt.c (strerror): Fix declaration of sys_errlist.
9610
9611 1998-09-11  Hrvoje Niksic  <hniksic@srce.hr>
9612
9613         * main.c (main): Don't use an array subscript as the first
9614         argument to STRDUP_ALLOCA.
9615         From Kaveh R. Ghazi.
9616
9617 1998-09-11  Szakacsits Szabolcs  <szaka@sienet.hu>
9618
9619         * html.c (htmlfindurl): Download table background.
9620
9621 1998-09-11  Hans Grobler  <grobh@conde.ee.sun.ac.za>
9622
9623         * init.c (parse_line): Would free *com before allocating it.
9624         (parse_line): Would free com instead of *com.
9625
9626 1998-09-10  Howard Gayle  <howard@fjst.com>
9627
9628         * url.c (get_urls_html): Would drop the last character of the
9629         link.
9630
9631 1998-09-10  Hrvoje Niksic  <hniksic@srce.hr>
9632
9633         * http.c (http_loop): Don't print status code if quiet.
9634
9635 1998-09-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9636
9637         * log.c: Use <stdarg.h> only when __STDC__.
9638
9639 1998-09-10  Adam D. Moss  <adam@foxbox.org>
9640
9641         * html.c (htmlfindurl): Download <layer src=...>.
9642
9643 1998-09-10  Howard Gayle  <howard@fjst.com>
9644
9645         * ftp.c (ftp_retrieve_list): Don't update the time stamp of a file
9646         not retrieved.
9647
9648 1998-06-27  Hrvoje Niksic  <hniksic@srce.hr>
9649
9650         * utils.c: Include <libc.h> on NeXT.
9651
9652 1998-06-26  Heinz Salzmann  <heinz.salzmann@intermetall.de>
9653
9654         * url.c (get_urls_html): Fix calculation of URL position.
9655
9656 1998-06-23  Hrvoje Niksic  <hniksic@srce.hr>
9657
9658         * version.c: Wget 1.5.2 is released.
9659
9660 1998-06-23  Dave Love  <d.love@dl.ac.uk>
9661
9662         * ftp.c, init.c, netrc.c: Include errno.h.
9663
9664         * http.c: Include errno.h and time header.
9665
9666         * Makefile.in (exext): Define.
9667         (install.bin, uninstall.bin): Use it.
9668
9669 1998-06-21  Hrvoje Niksic  <hniksic@srce.hr>
9670
9671         * http.c (http_loop): Don't attempt to compare local and remote
9672         sizes if the remote size is unknown.
9673
9674 1998-06-16  Hrvoje Niksic  <hniksic@srce.hr>
9675
9676         * url.c (get_urls_html): Use malloc() instead of alloca in the
9677         loop.
9678
9679 1998-06-13  Hrvoje Niksic  <hniksic@srce.hr>
9680
9681         * version.c: Wget 1.5.2-b4 is released.
9682
9683 1998-06-13  Hrvoje Niksic  <hniksic@srce.hr>
9684
9685         * url.c (get_urls_html): Ignore spaces before and after the URI.
9686
9687 1998-06-08  Wanderlei Antonio Cavassin  <cavassin@conectiva.com.br>
9688
9689         * ftp.c (getftp): Translate `done'.
9690
9691 1998-06-06  Hrvoje Niksic  <hniksic@srce.hr>
9692
9693         * version.c: Wget 1.5.2-b3 is released.
9694
9695 1998-06-06  Alexander Kourakos  <awk@bnt.com>
9696
9697         * init.c (cleanup): Close dfp, don't free it.
9698
9699 1998-06-06  Hrvoje Niksic  <hniksic@srce.hr>
9700
9701         * utils.c (make_directory): Twiddle.
9702
9703         * config.h.in: Added template for access().
9704
9705 1998-06-05  Mathieu Guillaume  <mat@cythere.com>
9706
9707         * html.c (htmlfindurl): Download <input src=...>
9708
9709 1998-06-03  Hrvoje Niksic  <hniksic@srce.hr>
9710
9711         * utils.c (file_exists_p): Use access() with two arguments.
9712
9713 1998-05-27  Martin Kraemer  <Martin.Kraemer@mch.sni.de>
9714
9715         * netrc.c (parse_netrc): Correct logic.
9716
9717 1998-05-27  Hrvoje Niksic  <hniksic@srce.hr>
9718
9719         * ftp.c (getftp): Added `break'; suggested by Lin Zhe Min
9720         <ljm@ljm.wownet.net>.
9721
9722 1998-05-24  Hrvoje Niksic  <hniksic@srce.hr>
9723
9724         * version.c: Wget 1.5.2-b2 is released.
9725
9726 1998-05-18  Juan Jose Rodriguez  <jcnsoft@jal1.telmex.net.mx>
9727
9728         * mswindows.h: Don't translate mkdir to _mkdir under Borland.
9729
9730 1998-05-17  Hrvoje Niksic  <hniksic@srce.hr>
9731
9732         * retr.c (elapsed_time): Return correct value when
9733         HAVE_GETTIMEOFDAY is undefined.
9734
9735 1998-05-13  Hrvoje Niksic  <hniksic@srce.hr>
9736
9737         * version.c: Wget 1.5.2-b1 is released.
9738
9739 1998-05-08  Hrvoje Niksic  <hniksic@srce.hr>
9740
9741         * getopt.c (_getopt_internal): Use exec_name instead of argv[0].
9742         (_getopt_internal): Don't translate `#if 0'-ed strings.
9743
9744 1998-05-06  Douglas E. Wegscheid  <wegscd@whirlpool.com>
9745
9746         * mswindows.c (ws_handler): Use fork_to_background().
9747
9748 1998-05-05  Hrvoje Niksic  <hniksic@srce.hr>
9749
9750         * version.c: Wget 1.5.1 is released.
9751
9752 1998-05-05  Hrvoje Niksic  <hniksic@srce.hr>
9753
9754         * http.c (parse_http_status_line): Avoid `minor' and `major'
9755         names.
9756
9757 1998-05-02  Hrvoje Niksic  <hniksic@srce.hr>
9758
9759         * utils.c (mkdirhier): Renamed to make_directory.
9760
9761 1998-05-01  Hrvoje Niksic  <hniksic@srce.hr>
9762
9763         * mswindows.c (fork_to_background): Define under Windows.
9764
9765         * utils.c (fork_to_background): New function.
9766
9767         * html.c (htmlfindurl): Removed rerdundant casts.
9768
9769 1998-05-01  Douglas E. Wegscheid  <wegscd@whirlpool.com>
9770
9771         * mswindows.c (ws_mypath): Cache the path.
9772
9773 1998-04-30  Douglas E. Wegscheid  <wegscd@whirlpool.com>
9774
9775         * ftp.h: Prefix enum ftype members with FT_.
9776
9777         * ftp-ls.c, ftp.c, html.h: Adjust accordingly.
9778
9779         * mswindows.h: Use stat under Borland, _stat under MSVC.
9780
9781 1998-04-28  Hrvoje Niksic  <hniksic@srce.hr>
9782
9783         * http.c (known_authentication_scheme_p): New function.
9784         (gethttp): Handle authorization more correctly.
9785
9786         * ftp-basic.h: Removed.
9787
9788         * cmpt.h: Removed.
9789
9790         * utils.c: Include <unistd.h> before <pwd.h>; needed under SunOS
9791         with gcc 2.8.
9792         (numdigit): Use `while' loop.
9793
9794         * http.c (create_authorization_line): Detect authentication
9795         schemes case-insensitively.
9796
9797         * http.c (extract_header_attr): Use strdupdelim().
9798         (digest_authentication_encode): Move declaration of local
9799         variables to smaller scope.
9800         (digest_authentication_encode): Reset REALM, OPAQUE and NONCE.
9801         (create_authorization_line): Detect authentication schemes
9802         case-insensitively.
9803
9804         * utils.c (touch): Constify.
9805
9806         * http.c (gethttp): Report a nicer error when no data is received.
9807
9808         * rbuf.h (RBUF_READCHAR): Ditto.
9809
9810         * ftp-basic.c (ftp_response): Use sizeof.
9811
9812 1998-04-27  Hrvoje Niksic  <hniksic@srce.hr>
9813
9814         * retr.c (print_percentage): EXPECTED is long, not int.
9815         (print_percentage): Use floating-point arithmetic to avoid
9816         overflow with large files' sizes multiplied with 100.
9817
9818 1998-04-27  Gregor Hoffleit  <flight@mathi.uni-heidelberg.de>
9819
9820         * config.h.in: Added pid_t stub.
9821
9822         * sysdep.h (S_ISREG): Moved here from mswindows.h (NeXT doesn't
9823         define it).
9824
9825 1998-04-20  Hrvoje Niksic  <hniksic@srce.hr>
9826
9827         * version.c: Wget 1.5.0 is released.
9828
9829 1998-04-18  Hrvoje Niksic  <hniksic@srce.hr>
9830
9831         * url.c (str_url): Ditto.
9832
9833         * ftp-basic.c (ftp_rest): Use new name.
9834
9835         * utils.c (long_to_string): Renamed from prnum().
9836
9837 1998-04-16  Hrvoje Niksic  <hniksic@srce.hr>
9838
9839         * version.c: Wget 1.5-b17 is released.
9840
9841 1998-04-08  Hrvoje Niksic  <hniksic@srce.hr>
9842
9843         * headers.c (header_get): New argument FLAGS.
9844
9845         * http.c (gethttp): If request is malformed, bail out of the
9846         header loop.
9847         (gethttp): Check for empty header *after* the status line checks.
9848         (gethttp): Disallow continuations for status line.
9849
9850 1998-04-08  Hrvoje Niksic  <hniksic@srce.hr>
9851
9852         * version.c: Wget 1.5-b16 is released.
9853
9854 1998-04-08  Hrvoje Niksic  <hniksic@srce.hr>
9855
9856         * init.c (commands): Renamed `always_rest' to `continue'.
9857
9858 1998-04-05  Hrvoje Niksic  <hniksic@srce.hr>
9859
9860         * all: Use it.
9861
9862         * log.c (logputs): New argument.
9863         (logvprintf): Ditto.
9864         (logprintf): Ditto.
9865
9866 1998-04-04  Hrvoje Niksic  <hniksic@srce.hr>
9867
9868         * http.c (http_atotm): Update comment.
9869
9870         * main.c (i18n_initialize): Set LC_MESSAGES, not LC_ALL.
9871
9872         * wget.h: Renamed ENABLED_NLS to HAVE_NLS.
9873
9874         * main.c (i18n_initialize): New function.
9875         (main): Use it.
9876
9877         * log.c: Include <unistd.h>.
9878
9879         * retr.c (show_progress): Cast alloca to char *.
9880
9881 1998-04-04  Hrvoje Niksic  <hniksic@srce.hr>
9882
9883         * version.c: Wget 1.5-b15 is released.
9884
9885 1998-04-04  Hrvoje Niksic  <hniksic@srce.hr>
9886
9887         * utils.h: Declare file_non_directory_p().
9888
9889 1998-04-03  Hrvoje Niksic  <hniksic@srce.hr>
9890
9891         * main.c (main): It's `tries', not `numtries' now.
9892
9893 1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
9894
9895         * init.c (getperms): Removed.
9896
9897 1998-04-01  Tim Charron  <tcharron@interlog.com>
9898
9899         * log.c (logvprintf): Don't use ARGS twice.
9900
9901 1998-04-01  John  <john@futuresguide.com>
9902
9903         * mswindows.c: Cleaned up.
9904
9905 1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
9906
9907         * version.c: Wget 1.5-b14 is released.
9908
9909 1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
9910
9911         * ftp-opie.c (STRLEN4): New macro.
9912         (btoe): Use it.
9913
9914 1998-04-01  Junio Hamano  <junio@twinsun.com>
9915
9916         * http.c: Document all the Digest functions.
9917
9918 1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
9919
9920         * utils.c (file_non_directory_p): Renamed from isfile().
9921
9922         * mswindows.h (S_ISREG): New macro, suggested by Tim Adam.
9923
9924 1998-03-31  Hrvoje Niksic  <hniksic@srce.hr>
9925
9926         * utils.c (mkdirhier): Use 0777 instead of opt.dirmode.
9927
9928         * init.c (cmd_spec_dotstyle): Use 48 dots per line for binary
9929         style.
9930         (cmd_permissions): Removed.
9931
9932         * config.h.in: Add template for WORDS_BIGENDIAN.
9933
9934 1998-03-31  Junio Hamano  <junio@twinsun.com>
9935
9936         * http.c (HEXD2asc): New macro.
9937         (dump_hash): Use it.
9938
9939 1998-03-31  Hrvoje Niksic  <hniksic@srce.hr>
9940
9941         * version.c: Wget 1.5-b13 is released.
9942
9943 1998-03-31  Hrvoje Niksic  <hniksic@srce.hr>
9944
9945         * main.c (main): Don't try to use `com'.
9946
9947 1998-03-30  Hrvoje Niksic  <hniksic@srce.hr>
9948
9949         * init.c (cmd_permissions): New function.
9950
9951 1998-03-30  Hrvoje Niksic  <hniksic@srce.hr>
9952
9953         * version.c: Wget 1.5-b12 is released.
9954
9955 1998-03-30  Hrvoje Niksic  <hniksic@srce.hr>
9956
9957         * init.c (commands): Renamed `numtries' to `tries'.
9958         (cmd_spec_debug): Removed.
9959         (home_dir): Under Windows, return `C:\' if HOME is undefined.
9960
9961 1998-03-29  Hrvoje Niksic  <hniksic@srce.hr>
9962
9963         * config.h.in: Define _XOPEN_SOURCE.
9964
9965         * init.c (check_user_specified_header): New function.
9966         (cmd_spec_header): Use it.
9967         (cmd_spec_useragent): New function.
9968
9969 1998-03-29  Hrvoje Niksic  <hniksic@srce.hr>
9970
9971         * version.c: Wget 1.5-b11 is released.
9972
9973 1998-03-28  Hrvoje Niksic  <hniksic@srce.hr>
9974
9975         * wget.h: Include <libintl.h> only if NLS is enabled.
9976
9977 1998-03-26  Hrvoje Niksic  <hniksic@srce.hr>
9978
9979         * options.h (struct options): Made `wait' a long.
9980         (struct options): Ditto for `timeout'.
9981
9982 1998-03-19  Hrvoje Niksic  <hniksic@srce.hr>
9983
9984         * utils.c (exists): Renamed to file_exists_p.
9985         (file_exists_p): Use access() if available.
9986
9987 1998-03-17  Hrvoje Niksic  <hniksic@srce.hr>
9988
9989         * utils.c (memfatal): Set save_log_p to 0 to avoid potential
9990         infloop.
9991
9992         * log.c: do_logging -> save_log_p.
9993
9994         * config.h.in: Added template for HAVE_VSNPRINTF.
9995
9996 1998-03-16  Hrvoje Niksic  <hniksic@srce.hr>
9997
9998         * init.c: Ditto.
9999
10000         * http.c: Protect declaration against non-ANSI compiler.
10001
10002         * log.c (logvprintf): Use vsnprintf() if available.
10003
10004         * getopt.c (main): Don't translate test stuff.
10005
10006 1998-03-16  Hrvoje Niksic  <hniksic@srce.hr>
10007
10008         * version.c: Wget 1.5-b10 is released.
10009
10010 1998-03-11  Hrvoje Niksic  <hniksic@srce.hr>
10011
10012         * ftp.c (getftp): Don't translate "CWD %s".
10013
10014         * wget.h (GCC_FORMAT_ATTR): Renamed from FORMAT_ATTR.
10015
10016 1998-03-07  Hrvoje Niksic  <hniksic@srce.hr>
10017
10018         * ftp-opie.c (btoe): Use memcpy() instead of strncat().
10019
10020         * log.c (logputs): New function.
10021         (logvprintf): Renamed from vlogmsg; use logputs().
10022
10023         * retr.c (show_progress): Print `[100%]' when the retrieval is
10024         finished.
10025
10026         * init.c (run_wgetrc): Use FILE, not PATH.
10027         (wgetrc_file_name): Ditto.
10028
10029 1998-03-07  Tim Adam  <tma@osa.com.au>
10030
10031         * recur.c (parse_robots): Correctly reset `entries' on empty
10032         disallow.
10033
10034 1998-03-07  Hrvoje Niksic  <hniksic@srce.hr>
10035
10036         * init.c (cmd_spec_debug): Use cmd_boolean().
10037
10038 1998-02-23  Hrvoje Niksic  <hniksic@srce.hr>
10039
10040         * http.c (gethttp): Create proxy-authorization correctly.
10041
10042 1998-02-22  Hrvoje Niksic  <hniksic@srce.hr>
10043
10044         * md5.c: Ditto.
10045
10046         * getopt.c: Use ANSI function definitions.
10047
10048         * ftp-opie.c: New file.
10049
10050         * options.h: Don't redefine EXTERN.
10051
10052         * init.c: Sort it correctly.
10053
10054 1998-02-22  Hrvoje Niksic  <hniksic@srce.hr>
10055
10056         * version.c: Wget 1.5-b9 is released.
10057
10058 1998-02-22  Hrvoje Niksic  <hniksic@srce.hr>
10059
10060         * recur.c (recursive_retrieve): Reset `first_time'.
10061
10062         * ftp.c (getftp): Added `default' clause to switches of uerr_t.
10063
10064         * rbuf.c (rbuf_peek): Simplified.
10065         (rbuf_flush): Use MINVAL.
10066
10067         * wget.h (MINVAL): Moved from url.h.
10068
10069         * rbuf.h (RBUF_FD): New macro.
10070
10071         * url.c (add_url): Add to the head of the list.
10072
10073         * ftp.c (ftp_retrieve_list): Set the permissions to downloaded
10074         file.
10075         (getftp): Set the default permissions to 0600.
10076
10077 1998-02-21  Hrvoje Niksic  <hniksic@srce.hr>
10078
10079         * url.c (get_urls_html): Ditto.
10080         (convert_links): Ditto.
10081
10082         * recur.c (parse_robots): Ditto.
10083
10084         * html.c (ftp_index): Ditto.
10085
10086         * ftp-ls.c (ftp_parse_unix_ls): Open file as binary.
10087
10088         * init.c (defaults): Initialize `opt' to zero via memset.
10089
10090         * http.c (digest_authentication_encode): goto considered harmful.
10091
10092 1998-02-19  Hrvoje Niksic  <hniksic@srce.hr>
10093
10094         * ftp.c (delelement): Simplify and fix leak.
10095
10096 1998-02-18  Hrvoje Niksic  <hniksic@srce.hr>
10097
10098         * http.c (dump_hash): Use HEXD2ASC instead of home-grown stuff.
10099
10100         * url.h (HEXD2ASC): Removed warning.
10101
10102         * init.c (comind): Use binary search.
10103         (commands): Reorganized.
10104         (setval): Ditto.
10105         (cmd_boolean): New function.
10106         (cmd_number): Ditto.
10107         (cmd_number_inf): Ditto.
10108         (cmd_string): Ditto.
10109         (cmd_vector): Ditto.
10110         (cmd_directory_vector): Ditto.
10111         (cmd_bytes): Ditto.
10112         (cmd_time): Ditto.
10113         (cmd_spec_debug): Ditto.
10114         (cmd_spec_dirmode): Ditto.
10115         (cmd_spec_dirstruct): Ditto.
10116         (cmd_spec_dotstyle): Ditto.
10117         (cmd_spec_header): Ditto.
10118         (cmd_spec_htmlify): Ditto.
10119         (cmd_spec_mirror): Ditto.
10120         (cmd_spec_outputdocument): Ditto.
10121         (cmd_spec_recursive): Ditto.
10122         (settime): Merged with cmd_time().
10123         (setbytes): Merged with cmd_bytes().
10124         (setonoff): Merged with cmd_boolean().
10125         (onoff): Ditto.
10126
10127 1998-02-17  Hrvoje Niksic  <hniksic@srce.hr>
10128
10129         * Makefile.in (distclean): Remove `config.h'.
10130
10131 1998-02-17  Hrvoje Niksic  <hniksic@srce.hr>
10132
10133         * version.c: Wget 1.5-b8 is released.
10134
10135 1998-02-17  Hrvoje Niksic  <hniksic@srce.hr>
10136
10137         * http.c (digest_authentication_encode): New function.
10138         (create_authorization_line): Use it.
10139         (dump_hash): New function.
10140         (digest_authentication_encode): Use it.
10141
10142         * fnmatch.c: Renamed from `mtch.c'.
10143
10144 1998-02-15  Karl Eichwalder  <ke@suse.de>
10145
10146         * main.c (main): Tag "Written by..." string as translatable.
10147
10148 1998-02-15  Hrvoje Niksic  <hniksic@srce.hr>
10149
10150         * wget.h (FREE_MAYBE): New macro.
10151
10152         * http.c (create_authorization_line): Don't use ANSI C string
10153         concatenation feature.
10154         (basic_authentication_encode): Use alloca() for temporary
10155         variables.
10156
10157         * recur.h: Ditto.
10158
10159         * http.c: Ditto.
10160
10161         * headers.h: Ditto.
10162
10163         * ftp-basic.c: Protect declaration against non-ANSI compiler.
10164
10165         * http.c (create_authorization_line): Cast `unsigned char *' to
10166         `char *' for sprintf, to shut up the noisy Digital Unix cc.
10167
10168 1998-02-15  Hrvoje Niksic  <hniksic@srce.hr>
10169
10170         * version.c: Wget 1.5-b7 is released.
10171
10172 1998-02-15  Hrvoje Niksic  <hniksic@srce.hr>
10173
10174         * cmpt.c (strstr): Synched with glibc-2.0.6.
10175
10176         * ftp-basic.c (calculate_skey_response): Ditto.
10177         (calculate_skey_response): Use alloca().
10178
10179         * http.c (create_authorization_line): Work with FSF's version of
10180         md5.c.
10181
10182         * md5.c: New file, from GNU libc.
10183
10184 1998-02-14  Hrvoje Niksic  <hniksic@srce.hr>
10185
10186         * url.h (URL_CLEANSE): Name the temporary variable more carefully.
10187
10188 1998-02-13  Hrvoje Niksic  <hniksic@srce.hr>
10189
10190         * http.c (basic_authentication_encode): New function, instead of
10191         the macro.
10192
10193 1998-02-13  Junio Hamano  <junio@twinsun.com>
10194
10195         * http.c: Add HTTP-DA support.
10196         * ftp-basic.c: Add Opie/S-key support.
10197         * config.h.in, Makefile.in: Add HTTP-DA and Opie/S-key support.
10198         * md5.c, md5.h: New files.
10199
10200 1998-02-13  Hrvoje Niksic  <hniksic@srce.hr>
10201
10202         * http.c (http_process_range): Renamed from hprocrange().
10203         (http_process_range): Parse the whole header.
10204
10205         * headers.c: New file.
10206         (header_process): New function.
10207         (header_get): Renamed from fetch_next_header.
10208
10209         * all: Include utils.h only where necessary.
10210
10211         * wget.h: Declare xmalloc(), xrealloc() and xstrdup() here.
10212
10213         * wget.h: Add provisions for dmalloc.
10214
10215 1998-02-12  Hrvoje Niksic  <hniksic@srce.hr>
10216
10217         * version.c: Wget 1.5-b6 is released.
10218
10219 1998-02-12  Hrvoje Niksic  <hniksic@srce.hr>
10220
10221         * ftp.c (ftp_loop): Determine `filename' more precisely.
10222
10223         * init.c (setval): Don't set `opt.quiet' if output-document is
10224         `-'.
10225
10226         * log.c (log_init): Print to STDERR instead of STDOUT.
10227         (vlogmsg): Use STDERR by default.
10228         (logflush): Ditto.
10229
10230 1998-02-11  Simon Josefsson  <jas@pdc.kth.se>
10231
10232         * host.c: Use addr_in again.
10233
10234 1998-02-08  Karl Eichwalder  <karl@suse.de>
10235
10236         * http.c (gethttp): Fixed typo.
10237
10238 1998-02-08  Hrvoje Niksic  <hniksic@srce.hr>
10239
10240         * version.c: Wget 1.5-b5 is released.
10241
10242 1998-02-08  Hrvoje Niksic  <hniksic@srce.hr>
10243
10244         * retr.c (show_progress): Use it.
10245
10246         * log.c (logflush): New function.
10247
10248         * wget.h: Utilize __attribute__ if on gcc.
10249
10250 1998-02-07  Hrvoje Niksic  <hniksic@srce.hr>
10251
10252         * http.c (base64_encode_line): New argument LENGTH.
10253         (BASIC_AUTHENTICATION_ENCODE): Use it.
10254         (BASIC_AUTHENTICATION_ENCODE): Take length of HEADER into account.
10255
10256         * main.c (main): Fixed fprintf() format mismatch.
10257
10258 1998-02-06  Hrvoje Niksic  <hniksic@srce.hr>
10259
10260         * version.c: Wget 1.5-b4 is released.
10261
10262 1998-02-03  Simon Josefsson  <jas@pdc.kth.se>
10263
10264         * host.c: use sockaddr_in instead of addr_in.
10265
10266 1998-02-04  Hrvoje Niksic  <hniksic@srce.hr>
10267
10268         * init.c (cleanup): Use it.
10269
10270         * recur.c (recursive_cleanup): New function.
10271
10272         * retr.c (retrieve_from_file): Ditto.
10273
10274         * main.c (main): Use it.
10275
10276         * recur.c (recursive_reset): New function.
10277
10278         * retr.c (retrieve_from_file): Ditto.
10279
10280         * main.c (main): Simplify call to recursive_retrieve().
10281
10282         * recur.c (recursive_retrieve): Removed FLAGS argument.
10283
10284         * http.c (gethttp): Changed call to iwrite().
10285
10286 1998-02-03  Hrvoje Niksic  <hniksic@srce.hr>
10287
10288         * url.c (get_urls_html): Ditto.
10289         (free_urlpos): Ditto.
10290         (mkstruct): Ditto.
10291         (construct): Ditto.
10292
10293         * retr.c (retrieve_url): Move declaration of local variables to
10294         smaller scope.
10295
10296         * url.c (urlproto): Use it.
10297         (parseurl): Ditto.
10298         (str_url): Ditto.
10299         (get_urls_html): Ditto.
10300
10301         * utils.h (ARRAY_SIZE): New macro.
10302
10303         * url.c (proto): Moved from url.h.
10304
10305         * url.h (URL_CLEANSE): Reformatted.
10306         (USE_PROXY_P): Renamed from USE_PROXY.
10307
10308         * ftp-basic.c: Adjust to the new interface of iwrite().
10309
10310         * ftp-basic.c (ftp_port): Use alloca().
10311
10312 1998-02-03  Hrvoje Niksic  <hniksic@srce.hr>
10313
10314         * version.c: Wget 1.5-b3 is released.
10315
10316         * host.c (ftp_getaddress): Don't print to stderr directly.
10317
10318         * init.c (setbytes): Support `g' for gigabytes.
10319         (cmdtype): New specification CTIME.
10320         (setval): Use it with settime().
10321         (commands): Use it for WAIT and TIMEOUT.
10322
10323 1998-02-02  Hrvoje Niksic  <hniksic@srce.hr>
10324
10325         * http.c (BASIC_AUTHENTICATION_ENCODE): New macro.
10326         (gethttp): Use it.
10327
10328         * utils.c (unique_name_1): Moved from url.c.
10329         (unique_name): Ditto.
10330
10331         * url.c (url_filename): Ditto.
10332
10333         * log.c (redirect_output): Changed call to unique_name().
10334
10335         * url.c (unique_name_1): Renamed from unique_name().
10336         (unique_name): Changed interface.
10337
10338         * init.c (enum cmdid): Moved from init.h.
10339         (cmdtype): Ditto.
10340         (struct cmd): Ditto.
10341
10342         * main.c (main): Use it.
10343         (main): Moved `--backups' to not have a short option.
10344
10345         * options.h (struct options): New member BACKGROUND.
10346
10347         * main.c (print_help): Rearranged.
10348         (main): New long options for -n* short options: --no-directories,
10349         --no-host-directories, --non-verbose, --no-host-lookup and
10350         --dont-remove-listing.
10351
10352 1998-02-01  Hrvoje Niksic  <hniksic@srce.hr>
10353
10354         * main.c (main): Use log_close().
10355
10356         * log.c: New variable LOGFP.
10357         (vlogmsg): Use it.
10358         (redirect_output): Don't open /dev/null; set LOGFP to stdin
10359         instead.
10360         (log_close): New function.
10361
10362         * options.h (struct options): Removed LFILE.
10363
10364         * log.c (log_enable): Removed.
10365
10366         * main.c (main): Use it.
10367
10368         * log.c (log_init): New function.
10369
10370         * url.c (get_urls_html): Removed needless assignment to BASE.
10371
10372         * host.c (add_hlist): Don't set CMP needlessly.
10373
10374         * utils.c (match_backwards): Ditto.
10375         (in_acclist): Ditto.
10376
10377         * url.c (findurl): Ditto.
10378
10379         * netrc.c (parse_netrc): Ditto.
10380
10381         * log.c (log_dump): Ditto.
10382
10383         * html.c (html_quote_string): Ditto.
10384
10385         * ftp-basic.c (ftp_request): Made static.
10386
10387         * connect.c: Made global variables static.
10388
10389         * url.c (construct): Ditto.
10390
10391         * init.c (init_path): Avoid assignment inside `if'-condition.
10392
10393         * ftp.c: Don't include in.h or winsock.h.
10394
10395         * ftp.c (ftp_loop): Use SZ.
10396
10397         * connect.c (bindport): Cast &addrlen to int *.
10398         (conaddr): Ditto.
10399
10400         * init.c (initialize): Don't use SYSTEM_WGETRC unconditionally.
10401
10402 1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
10403
10404         * ftp.c (getftp): Initialize opt.ftp_pass here.
10405         (ftp_retrieve_dirs): Use alloca().
10406
10407         * init.c (defaults): Don't initialize opt.ftp_pass.
10408
10409         * sysdep.h (S_ISLNK): Declare for OS/2; ditto for lstat.
10410         From Ivan F. Martinez <ivanfm@ecodigit.com.br>.
10411
10412 1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
10413
10414         * recur.c (parse_robots): Check for comments more correctly.
10415
10416         * host.c (ftp_getaddress): Use STRDUP_ALLOCA.
10417         (ftp_getaddress): Add diagnostics when reverse-lookup yields only
10418         hostname.
10419
10420 1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
10421
10422         * version.c: Wget 1.5-b2 is released.
10423
10424         * netrc.c (NETRC_FILE_NAME): Moved from netrc.h.
10425
10426         * utils.c (proclist): Pass FNM_PATHNAME to fnmatch().
10427
10428         * ftp-basic.c (ftp_pasv): Avoid unnecessary casting to unsigned
10429         char.
10430
10431         * log.c: Don't attempt to hide arguments from ansi2knr.
10432
10433         * cmpt.c: Synched strptime() and mktime() with glibc-2.0.6.
10434
10435         * ansi2knr.c: Use a later version, from fileutils-3.16l alpha.
10436
10437         * ftp.c (getftp): Ditto.
10438
10439         * http.c (gethttp): Use it.
10440
10441         * retr.c (get_contents): New argument EXPECTED; pass it to
10442         show_progress().
10443         (show_progress): New argument EXPECTED; use it to display
10444         percentages.
10445
10446         * init.c (setval): Ditto.
10447
10448         * http.c (gethttp): Ditto.
10449         (http_loop): Ditto.
10450
10451         * ftp.c (getftp): Ditto.
10452         (ftp_loop_internal): Ditto.
10453
10454         * ftp-ls.c (ftp_parse_unix_ls): Use abort() instead of assert(0).
10455
10456         * sysdep.h (CLOSE): Simplify; use DEBUGP.
10457
10458         * netrc.c (search_netrc): Use alloca().
10459
10460         * init.c (defaults): Initialize no_flush.
10461
10462         * log.c (vlogmsg): Don't flush if no_flush.
10463
10464         * options.h (struct options): New variable no_flush.
10465
10466         * main.c (main): Don't play games with buffering.
10467
10468         * log.c (vlogmsg): Flush the output after every message.
10469
10470 1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
10471
10472         * init.c (parse_line): Ditto.
10473
10474         * url.c (get_urls_html): Ditto.
10475
10476         * main.c (main): Don't cast to unsigned char.
10477
10478         * init.c (run_wgetrc): Don't cast to unsigned char.
10479         (parse_line): Accept char instead of unsigned char.
10480
10481         * html.c (htmlfindurl): Use char instead of unsigned char.
10482
10483         * all: Use them.
10484
10485         * sysdep.h: Add wrappers to ctype macros to make them
10486         eight-bit-clean:
10487
10488 1998-01-30  Hrvoje Niksic  <hniksic@srce.hr>
10489
10490         * html.c (htmlfindurl): Download <img lowsrc=...>
10491
10492         * main.c (main): Ignore SIGPIPE.
10493
10494         * connect.c (select_fd): New argument WRITEP.
10495         (iwrite): Call select_fd().
10496
10497 1997-02-27  Fila Kolodny <fila@ibi.com>
10498
10499         * ftp.c (ftp_retrieve_list): If retrieving symlink and the proper
10500         one already exists, just skip it.
10501
10502 1998-01-30  Hrvoje Niksic  <hniksic@srce.hr>
10503
10504         * http.c (gethttp): Cosmetic changes.
10505
10506         * http.c (check_end): Allow `+D...' instead of `GMT'.
10507         From Fabrizio Pollastri <pollastri@cstv.to.cnr.it>.
10508
10509         * url.c (process_ftp_type): New function.
10510         (parseurl): Use it.
10511
10512         * connect.c (iwrite): Allow writing in a few chunks.
10513         (bindport): Made SRV static, so addr can point to it.
10514         (select_fd): Removed HPUX kludge.
10515
10516         * host.c (free_hlist): Incorporated into clean_hosts().
10517
10518 1998-01-29  Hrvoje Niksic  <hniksic@srce.hr>
10519
10520         * host.c (hlist): Made static.
10521         (search_address): Cosmetic change.
10522
10523 1998-01-29  Hrvoje Niksic  <hniksic@srce.hr>
10524
10525         * version.c: Wget v1.5-b1 is released.
10526
10527         * http.c (hgetlen): Use sizeof() to get the header length.
10528         (hgetrange): Ditto.
10529         (hgettype): Ditto.
10530         (hgetlocation): Ditto.
10531         (hgetmodified): Ditto.
10532         (haccepts_none): Ditto.
10533
10534         * main.c (main): Updated `--version' and `--help' output, as per
10535         Francois Pinard's suggestions.
10536
10537         * main.c: Include locale.h; call setlocale(), bindtextdomain() and
10538         textdomain().
10539
10540         * config.h.in: Define stubs for I18N3.
10541
10542         * wget.h: Include libintl.h.
10543
10544 1998-01-28  Hrvoje Niksic  <hniksic@srce.hr>
10545
10546         * url.c (mkstruct): Check for opt.cut_dirs.
10547         (mkstruct): alloca()-te more, xmalloc() less.
10548
10549         * utils.c (load_file): Check for ferror().
10550
10551         * url.c (get_urls_file): Close only the files we opened.
10552         (get_urls_html): Ditto.
10553         (count_slashes): New function.
10554
10555         * http.h: Removed.
10556
10557         * http.c (gethttp): Respect username and password provided by
10558         proxy URL.
10559         (base64_encode_line): Write into an existing buffer instead of
10560         malloc-ing a new one.
10561         (struct http_stat): Moved from http.h
10562
10563         * retr.c (retrieve_url): Free SUF.
10564
10565         * all: Removed lots of unnecessary .h dependencies.
10566
10567         * html.c (global_state): Made static.
10568
10569         * utils.h (ALLOCA_ARRAY): New macro.
10570
10571         * main.c (main): New option `--cut-dirs'.
10572
10573         * url.c (construct): Use alloca() for T.
10574
10575         * utils.c (mkdirhier): Use STRDUP_ALLOCA.
10576
10577         * host.c (_host_t): Moved from host.h.
10578         (struct host): Renamed from _host_t.
10579         (store_hostaddress): Use STRDUP_ALLOCA for INET_S.
10580         (realhost): Ditto.
10581
10582         * host.h: Don't include url.h.
10583
10584         * ftp.c (LIST_FILENAME): Moved from ftp.h.
10585
10586         * init.c (DEFAULT_FTP_ACCT): Moved from ftp.h.
10587
10588         * main.c (main): Enable log if the output goes to a TTY.
10589
10590         * connect.h: Removed unused constant `BACKLOG'.
10591
10592         * config.h.in: Check for isatty().
10593
10594         * Makefile.in (LINK): Use CFLAGS when linking.
10595
10596 1998-01-27  Hrvoje Niksic  <hniksic@srce.hr>
10597
10598         * mswindows.c (ws_hangup): Use redirect_output().
10599
10600         * main.c (redirect_output_signal): New function; use
10601         redirect_output().
10602
10603         * log.c (redirect_output): New function, based on hangup(), which
10604         is deleted.
10605
10606         * log.c (vlogmsg): New function.
10607
10608         * wget.h (DEBUGP): Use debug_logmsg().
10609
10610         * main.c (hangup): Use it.
10611
10612         * log.c (log_dump): New function.
10613
10614         * utils.h (DO_REALLOC): Use `long' for various sizes.
10615
10616         * http.c (hskip_lws): Use `while', for clarity.
10617         (HTTP_DYNAMIC_LINE_BUFFER): New constant.
10618         (fetch_next_header): Use it instead of DYNAMIC_LINE_BUFFER.
10619
10620         * ftp-basic.c (FTP_DYNAMIC_LINE_BUFFER): New constant.
10621         (ftp_response): Use it instead of DYNAMIC_LINE_BUFFER.
10622
10623         * utils.c (DYNAMIC_LINE_BUFFER): Moved from utils.c.
10624         (LEGIBLE_SEPARATOR): Ditto.
10625         (FILE_BUFFER_SIZE): Ditto.
10626
10627         * retr.c (BUFFER_SIZE): Moved from retr.h.
10628
10629         * log.c: New file.
10630         (logmsg): Moved from utils.c.
10631         (debug_logmsg): New function.
10632
10633         * mswindows.h: Include it here.
10634
10635         * init.c: Ditto.
10636
10637         * utils.c: Don't include <windows.h>.
10638
10639 1998-01-25  Hrvoje Niksic  <hniksic@srce.hr>
10640
10641         * host.c (ftp_getaddress): Ditto.
10642
10643         * main.c (main): Use it.
10644
10645         * utils.h (STRDUP_ALLOCA): New macro.
10646
10647         * init.c: Prepend `wget: ' to error messages printed on stderr.
10648
10649         * utils.c (mkdirhier): Renamed from mymkdir.
10650         (touch): Renamed from my_touch.
10651         (pwd_cuserid): Renamed from my_cuserid().
10652
10653 1998-01-24  Andy Eskilsson  <andy.eskilsson@telelogic.se>
10654
10655         * utils.c (accdir): Process wildcards.
10656         (proclist): New function.
10657         (accdir): Use it to avoid code repetition.
10658
10659 1998-01-24  Hrvoje Niksic  <hniksic@srce.hr>
10660
10661         * recur.c (parse_robots): Respect opt.useragent; use alloca().
10662
10663         * http.c (gethttp): Construct useragent accordingly.
10664
10665         * version.c: Changed version string to numbers-only.
10666
10667         * main.c (print_help): List all the options.
10668
10669         * mswindows.c (windows_main_junk): Initialize argv0 here.
10670
10671 1998-01-24  Karl Heuer  <kwzh@gnu.org>
10672
10673         * netrc.c (search_netrc): Initialize `l' only after processing
10674         netrc.
10675
10676         * main.c (main): Don't trap SIGHUP if it's being ignored.
10677
10678 1998-01-24  Hrvoje Niksic  <hniksic@srce.hr>
10679
10680         * all: Use logmsg().
10681
10682         * utils.c (time_str): Moved from retr.c.
10683         (logmsg): New function.
10684         (logmsg_noflush): Ditto.
10685
10686         * rbuf.c: New file, moved buf_* functions here.
10687
10688         * ftp.c (ftp_expected_bytes): Moved from ftp-basic.c.
10689
10690         * ftp-basic.c (ftp_rest): Use prnum().
10691
10692         * ftp-basic.c: Ditto.
10693
10694         * ftp.c: Use the new reading functions and macros.
10695
10696         * retr.c (buf_initialize): New function.
10697         (buf_initialized_p): Ditto.
10698         (buf_uninitialize): Ditto.
10699         (buf_fd): Ditto.
10700
10701         * http.c (fetch_next_header): Use the BUF_READCHAR macro for
10702         efficiency.
10703         (gethttp): Use alloca() where appropriate.
10704
10705         * retr.c (buf_readchar): Use it.
10706         (buf_peek): Use rstreams.
10707
10708         * retr.h (BUF_READCHAR): New macro.
10709
10710         * init.c (home_dir): Rewritten for clarity.
10711         (init_path): Ditto.
10712
10713         * mswindows.c (ws_backgnd): Made static.
10714         (read_registry): Ditto.
10715         (ws_cleanup): Ditto.
10716         (ws_handler): Ditto.
10717
10718 1998-01-23  Hrvoje Niksic  <hniksic@srce.hr>
10719
10720         * alloca.c: New file.
10721
10722         * Makefile.in (ALLOCA): Define.
10723
10724         * mswindows.c (ws_help): Constify.
10725         (ws_help): Use alloca.
10726
10727         * mswindows.c: Reformat.
10728
10729         * all: Added _(...) annotations for I18N snarfing and translation.
10730
10731         * host.c (ftp_getaddress): Nuke SYSINFO.
10732         (ftp_getaddress): Don't use getdomainname().
10733         (ftp_getaddress): Use uname(), where available.
10734
10735         * http.c (gethttp): Protect a stray fprintf().
10736
10737         * init.c (settime): New function.
10738         (setval): Treat WAIT specially, allowing suffixes like `m' for
10739         minutes, etc.
10740
10741 1998-01-21  Hrvoje Niksic  <hniksic@srce.hr>
10742
10743         * url.c (get_urls_html): Use alloca() for TEMP.
10744
10745 1998-01-21  Jordan Mendelson  <jordy@wserv.com>
10746
10747         * url.c (rotate_backups): New function.
10748
10749         * http.c (gethttp): Ditto.
10750
10751         * ftp.c (getftp): Rotate backups.
10752
10753 1997-12-18  Hrvoje Niksic  <hniksic@srce.hr>
10754
10755         * all: Renamed nmalloc(), nrealloc() and nstrdup() to xmalloc(),
10756         xrealloc() and xstrdup().  Use the new functions.
10757
10758         * url.c (decode_string): Made static.
10759         (has_proto): Ditto.
10760         (parse_dir): Ditto.
10761         (parse_uname): Ditto.
10762         (mkstruct): Ditto.
10763         (construct): Ditto.
10764         (construct_relative): Ditto.
10765
10766         * retr.c (show_progress): Made static.
10767
10768         * recur.c (robots_url): Made static.
10769         (retrieve_robots): Ditto.
10770         (parse_robots): Ditto.
10771         (robots_match): Ditto.
10772
10773         * main.h: Removed.
10774
10775         * main.c (printhelp): Made static.
10776         (hangup): Ditto.
10777
10778         * init.c (comind): Made static.
10779         (defaults): Ditto.
10780         (init_path): Ditto.
10781         (run_wgetrc): Ditto.
10782         (onoff): Ditto.
10783         (setonoff): Ditto.
10784         (setnum): Ditto.
10785         (myatoi): Ditto.
10786         (getperms): Ditto.
10787         (setbytes): Ditto.
10788
10789         * http.c (fetch_next_header): Made static.
10790         (hparsestatline): Ditto.
10791         (hskip_lws): Ditto.
10792         (hgetlen): Ditto.
10793         (hgetrange): Ditto.
10794         (hgettype): Ditto.
10795         (hgetlocation): Ditto.
10796         (hgetmodified): Ditto.
10797         (haccepts_none): Ditto.
10798         (gethttp): Ditto.
10799         (base64_encode_line): Ditto.
10800         (mktime_from_utc): Ditto.
10801         (http_atotm): Ditto.
10802
10803         * html.c (idmatch): Made static.
10804
10805         * host.c (search_host): Made static.
10806         (search_address): Ditto.
10807         (free_hlist): Ditto.
10808
10809         * ftp.c (getftp): Made static.
10810         (ftp_loop_internal): Ditto.
10811         (ftp_get_listing): Ditto.
10812         (ftp_retrieve_list): Ditto.
10813         (ftp_retrieve_dirs): Ditto.
10814         (ftp_retrieve_glob): Ditto.
10815         (freefileinfo): Ditto.
10816         (delelement): Ditto.
10817
10818         * ftp-ls.c (symperms): Made static.
10819         (ftp_parse_unix_ls): Ditto.
10820
10821         * connect.c (select_fd): Made static.
10822
10823         * utils.c (xmalloc): Renamed from nmalloc.
10824         (xrealloc): Renamed from nrealloc.
10825         (xstrdup): Renamed from nstrdup.
10826
10827         * getopt.c (exchange): Use alloca.
10828
10829         * mswindows.c (mycuserid): Use strncpy.
10830
10831         * New files mswindows.c, mswindows.h, sysdep.h.  winjunk.c,
10832         systhings.h, windecl.h and winjunk.h removed.
10833
10834         * mswindows.c (sleep): New function.
10835
10836         * utils.c: Include <windows.h> under Windows.
10837
10838 1997-06-12  Darko Budor  <dbudor@zesoi.fer.hr>
10839
10840         * url.h (URL_UNSAFE): Change default under Windows.
10841
10842         * retr.c (retrieve_from_file): Respect opt.delete_after.
10843
10844         * main.c (main): Call ws_help on Windows.
10845
10846         * winjunk.c (windows_main_junk): New function.
10847
10848         * main.c (main): Junk-process argv[0].
10849
10850         * http.c (mktime_from_utc): Return -1 if mktime failed.
10851
10852         * http.c (http_loop): Ditto.
10853
10854         * ftp.c (ftp_loop_internal): Change title on Windows when using a
10855         new URL.
10856
10857         * winjunk.c (getdomainname): Lots of functions.
10858
10859 1997-06-12  Hrvoje Niksic  <hniksic@srce.hr>
10860
10861         * cmpt.c (strptime_internal): Handle years more correctly for
10862         `%y'.
10863
10864 1997-06-09  Mike Thomas <mthomas@reality.ctron.com>
10865
10866         * http.c (gethttp): Allocate enough space for
10867         `Proxy-Authorization' header.
10868
10869 1997-05-10  Hrvoje Niksic  <hniksic@srce.hr>
10870
10871         * version.c: Wget/1.4.5 is released.
10872
10873 1997-05-10  Hrvoje Niksic  <hniksic@srce.hr>
10874
10875         * retr.c (get_contents): Check return value of fwrite more
10876         carefully.
10877
10878 1997-03-30  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
10879
10880         * cmpt.c (strptime_internal) [case 'Y']: Always subtract 1900 from
10881         year, regardless of century.
10882
10883 1997-03-30  Hrvoje Niksic  <hniksic@srce.hr>
10884
10885         * utils.c (isfile): Use `lstat' instead of `stat'.
10886
10887 1997-03-29  Hrvoje Niksic  <hniksic@srce.hr>
10888
10889         * utils.c (numdigit): Use explicit test.
10890
10891 1997-03-21  Hrvoje Niksic  <hniksic@srce.hr>
10892
10893         * http.c (http_loop): Always use `url_filename' to get u->local.
10894
10895 1997-03-20  Hrvoje Niksic  <hniksic@srce.hr>
10896
10897         * url.c: Recognize https.
10898
10899 1997-03-13  Hrvoje Niksic  <hniksic@srce.hr>
10900
10901         * recur.c (recursive_retrieve): Lowercase just the host name.
10902
10903 1997-03-09  Hrvoje Niksic  <hniksic@srce.hr>
10904
10905         * url.c (get_urls_file): Use the correct test.
10906         (get_urls_html): Ditto.
10907
10908 1997-03-07  Hrvoje Niksic  <hniksic@srce.hr>
10909
10910         * connect.c: Reverted addrlen to int.
10911
10912         * init.c (parse_line): Check for -1 instead of NONE.
10913
10914         * version.c: Changed version to 1.4.5.
10915
10916 1997-02-17  Hrvoje Niksic  <hniksic@srce.hr>
10917
10918         * init.c: New option netrc.
10919         (initialize): Don't parse .netrc.
10920
10921         * cmpt.c (recursive): Return rp.
10922         (strptime_internal): Match the long strings first, the abbreviated
10923         second.
10924
10925 1997-02-16  Hrvoje Niksic  <hniksic@srce.hr>
10926
10927         * http.c (check_end): New function.
10928         (http_atotm): Use it.
10929
10930 1997-02-13  gilles Cedoc  <gilles@cedocar.fr>
10931
10932         * http.c (gethttp): Use them.
10933
10934         * init.c: New options proxy_user and proxy_passwd.
10935
10936 1997-02-14  Hrvoje Niksic  <hniksic@srce.hr>
10937
10938         * ftp.c (ftp_retrieve_list): Create links even if not relative.
10939
10940 1997-02-10  Hrvoje Niksic  <hniksic@srce.hr>
10941
10942         * recur.c (recursive_retrieve): Lowercase the host name, if the
10943         URL is not "optimized".
10944
10945         * host.c (realhost): Return l->hostname, even if it matches with
10946         host.
10947
10948 1997-02-10  Marin Purgar  <pmc@asgard.hr>
10949
10950         * connect.c: Make addrlen size_t instead of int.
10951         (conaddr): Ditto.
10952
10953 1997-02-09  Gregor Hoffleit  <flight@mathi.uni-heidelberg.DE>
10954
10955         * systhings.h: Define S_ISLNK on NeXT too.
10956
10957 1997-02-09  Hrvoje Niksic  <hniksic@srce.hr>
10958
10959         * version.c: Released 1.4.3.
10960
10961         * url.c: Futher update to list of protostrings.
10962         (skip_proto): Skip `//' correctly for FTP and HTTP.
10963
10964         * url.c (get_urls_html): Handle bogus `http:' things a little
10965         different.
10966
10967         * main.c (main): Removed `follow-ftp' from `f'.
10968         (main): Dumped the `prefix-files' and `file-prefix' options and
10969         features; old and bogus.
10970         (main): Exit on failed setval() in `-e'.
10971
10972         * http.c (fetch_next_header): Use it to detect header continuation
10973         correctly.
10974
10975         * retr.c (buf_peek): New function.
10976
10977 1997-02-08  Hrvoje Niksic  <hniksic@srce.hr>
10978
10979         * wget.h: Include time.h and stuff.
10980
10981 1997-02-08  Roger Beeman  <beeman@cisco.com>
10982
10983         * ftp.c: Include <time.h>
10984
10985 1997-02-07  Hrvoje Niksic  <hniksic@srce.hr>
10986
10987         * url.c (findurl): Would read over buffer limits.
10988
10989 1997-02-06  Hrvoje Niksic  <hniksic@srce.hr>
10990
10991         * ftp-ls.c (ftp_parse_unix_ls): Allow spaces in file names.
10992
10993 1997-02-05  Hrvoje Niksic  <hniksic@srce.hr>
10994
10995         * http.c (http_atotm): Initialize tm.is_dst.
10996
10997 1997-02-02  Hrvoje Niksic  <hniksic@srce.hr>
10998
10999         * http.c (gethttp): Don't print the number of retrieved headers.
11000
11001         * main.c (main): New option `--no-clobber', alias for `-nc'.
11002
11003         * url.c: Recognize `https://'.
11004
11005 1997-02-01  Hrvoje Niksic  <hniksic@srce.hr>
11006
11007         * host.c (herrmsg): Don't use h_errno.
11008
11009 1997-01-30  Hrvoje Niksic  <hniksic@srce.hr>
11010
11011         * host.c (accept_domain): Use it.
11012
11013         * main.c (main): New option `--exclude-domains'.
11014
11015         * retr.c (retrieve_url): Use it.
11016         (retrieve_url): Bail out when an URL is redirecting to itself.
11017
11018         * url.c (url_equal): New function.
11019
11020 1997-01-29  Hrvoje Niksic  <hniksic@srce.hr>
11021
11022         * connect.c: Include arpa/inet.h instead of arpa/nameser.h.
11023
11024         * http.c (mk_utc_time): New function.
11025         (http_atotm): Use it; handle time zones correctly.
11026
11027 1997-01-28  Hrvoje Niksic  <hniksic@srce.hr>
11028
11029         * http.c: Ditto.
11030
11031         * ftp-basic.c: Use it instead of WRITE.
11032
11033         * connect.c (iwrite): New function.
11034
11035 1997-01-27  Hrvoje Niksic  <hniksic@srce.hr>
11036
11037         * cmpt.c (mktime): New function.
11038
11039         * netrc.c: Include <sys/types.h>.
11040
11041         * main.c (main): Wouldn't recognize --spider.
11042
11043         * retr.c (rate): Use `B', `KB' and `MB'.
11044         (reset_timer,elapsed_time): Moved from utils.c.
11045
11046         * ftp.c (ftp_retrieve_list): Ditto.
11047
11048         * http.c (http_loop): Don't touch the file if opt.dfp.
11049
11050 1997-01-24  Hrvoje Niksic  <hniksic@srce.hr>
11051
11052         * cmpt.c: New file.
11053
11054         * ftp.c (ftp_retrieve_glob): New argument semantics.
11055         (ftp_retrieve_dirs): Use it.
11056         (ftp_loop): Ditto.
11057
11058         * html.c (htmlfindurl): Recognize `'' as the quote char.
11059
11060 1997-01-23  Hrvoje Niksic  <hniksic@srce.hr>
11061
11062         * ftp.c (ftp_loop_internal): Use it.
11063
11064         * utils.c (remove_link): New function.
11065
11066 1997-01-22  Hrvoje Niksic  <hniksic@srce.hr>
11067
11068         * retr.c (retrieve_url): Require STRICT redirection URL.
11069
11070         * url.c (parseurl): New argument STRICT.
11071
11072         * http.c (hparsestatline): Be a little-bit less strict about
11073         status line format.
11074
11075 1997-01-21  Hrvoje Niksic  <hniksic@srce.hr>
11076
11077         * http.c (gethttp): Use it.
11078
11079         * main.c (main): Don't use '<digit>' as options.
11080
11081         * init.c: New option ignore_length.
11082
11083         * http.c (gethttp): Ditto.
11084         (http_loop): Check for redirection without Location:.
11085         (gethttp): Don't print Length unless RETROKF.
11086
11087         * ftp.c (getftp): Use it.
11088
11089         * url.c (mkalldirs): New function.
11090
11091         * utils.c (mymkdir): Don't check for existing non-directory.
11092
11093         * url.c (mkstruct): Don't create the directory.
11094
11095 1997-01-20  Hrvoje Niksic  <hniksic@srce.hr>
11096
11097         * init.c (setval): Removed NO_RECURSION checks.
11098
11099 1997-01-19  Hrvoje Niksic  <hniksic@srce.hr>
11100
11101         * version.c: "Released" 1.4.3-pre2.
11102
11103         * recur.c (recursive_retrieve): Bypass host checking only if URL
11104         is ftp AND parent URL is not ftp.
11105
11106         * ftp-basic.c (ftp_request): Print out Turtle Power.
11107
11108         * ftp.c (ftp_loop): Call ftp_retrieve_glob with 0 if there's no
11109         wildcard.
11110         (ftp_retrieve_glob): Call ftp_loop_internal even on empty list, if
11111         not glob.
11112
11113         * http.c (gethttp): Be a little bit smarter about status codes.
11114
11115         * recur.c (recursive_retrieve): Always reset opt.recursive when
11116         dealing with FTP.
11117
11118 1997-01-18  Hrvoje Niksic  <hniksic@srce.hr>
11119
11120         * retr.c (retrieve_url): New variable location_changed; use it for
11121         tests instead of mynewloc.
11122         (retrieve_url): Allow heuristic adding of html.
11123
11124         * url.c (url_filename): Don't use the `%' in Windows file names.
11125
11126         * http.c (http_loop): Always time-stamp the local file.
11127
11128         * http.c (http_loop): Ditto.
11129
11130         * ftp.c (ftp_retrieve_list): Use it.
11131
11132         * utils.c (my_touch): New function.
11133
11134         * ftp.c (ftp_retrieve_list): Use #ifdef HAVE_STRUCT_UTIMBUF
11135         instead of #ifndef NeXT.
11136
11137         * utils.c (strptime): New version, by Ulrich Drepper.
11138
11139 1997-01-17  Hrvoje Niksic  <hniksic@srce.hr>
11140
11141         * http.c (haccepts_none): Renamed from `haccepts_bytes'.
11142         (gethttp): If haccepts_none(), disable ACCEPTRANGES.
11143         (http_loop): Would remove ACCEPTRANGES.
11144
11145         * ftp.c (getftp): Call ftp_list with NULL.
11146
11147 1997-01-15  Hrvoje Niksic  <hniksic@srce.hr>
11148
11149         * html.c (ftp_index): Don't print minutes and seconds if we don't
11150         know them; beautify the output.
11151
11152         * ftp.c (getftp): Don't close the socket on FTPNSFOD.
11153
11154 1997-01-14  Hrvoje Niksic  <hniksic@srce.hr>
11155
11156         * utils.c (strptime): New function.
11157         (strptime): Don't use get_alt_number.
11158         (strptime): Don't use locale.
11159         (match_string): Made it a function.
11160
11161 1997-01-12  Hrvoje Niksic  <hniksic@srce.hr>
11162
11163         * http.c (http_atotm): New function.
11164         (http_loop): Use it.
11165
11166         * atotm.c: Removed from the distribution.
11167
11168         * http.c (base64_encode_line): Rewrite.
11169
11170 1997-01-09  Hrvoje Niksic  <hniksic@srce.hr>
11171
11172         * ftp.c (getftp): Use ftp_expected_bytes; print size.
11173
11174         * ftp-basic.c (ftp_response): Use ftp_last_respline.
11175         (ftp_expected_bytes): New function.
11176
11177         * ftp.c (getftp): Print the unauthoritative file length.
11178
11179         * ftp-ls.c: Renamed from ftp-unix.c.
11180         (ftp_parse_ls): Moved from ftp.c.
11181         (ftp_parse_unix_ls): Recognize seconds in time spec.
11182         (ftp_parse_unix_ls): Recognize year-less dates of the previous
11183         year.
11184
11185 1997-01-08  Hrvoje Niksic  <hniksic@srce.hr>
11186
11187         * ftp-basic.c: Don't declare errno if #defined.
11188
11189         * host.c (ftp_getaddress): Check for sysinfo legally.
11190
11191 1997-01-08  Darko Budor  <dbudor@diana.zems.fer.hr>
11192
11193         * connect.c (iread): Use READ.
11194
11195 1996-12-23  Hrvoje Niksic  <hniksic@srce.hr>
11196
11197         * url.c: Recognize finger, rlogin, tn3270, mid and cid as valid
11198         schemes.
11199
11200 1996-12-22  Hrvoje Niksic  <hniksic@srce.hr>
11201
11202         * host.c (ftp_getaddress): Allow `.' in hostname.
11203
11204 1996-12-26  Darko Budor <dbudor@zems.fer.hr>
11205
11206         * wget.h: READ and WRITE macros for use instead of read and write
11207         on sockets, grep READ *.c, grep WRITE *.c
11208
11209         * wsstartup.c: new file - startup for winsock
11210
11211         * wsstartup.h: new file
11212
11213         * win32decl.h: new file - fixup for <errno.h> and winsock trouble
11214
11215         * configure.bat: Configure utility for MSVC
11216
11217         * src/Makefile.ms,config.h.ms: new files for use with MSVC 4.x
11218
11219 1996-12-22  Hrvoje Niksic  <hniksic@srce.hr>
11220
11221         * version.c: Released 1.4.3-pre.
11222
11223         * utils.c (prnum): Accept long.
11224         (legible): Use prnum().
11225
11226         * connect.c (make_connection): Accept port as short.
11227         (bindport): Ditto.
11228
11229         * http.c (gethttp): Use search_netrc.
11230
11231 1996-12-21  Hrvoje Niksic  <hniksic@srce.hr>
11232
11233         * ftp.c (getftp): Use search_netrc.
11234
11235         * netrc.c (free_netrc): New function.
11236
11237         * init.c (home_dir): New function.
11238
11239         * url.c (convert_links): Allow REL2ABS changes.
11240
11241 1996-12-21  Gordon Matzigkeit  <gord@gnu.ai.mit.edu>
11242
11243         * netrc.c: New file.
11244         (parse_netrc, maybe_add_to_list): New functions.
11245
11246 1996-12-17  Hrvoje Niksic  <hniksic@srce.hr>
11247
11248         * retr.c (retrieve_url): Reset opt.recursion before calling
11249         ftp_loop if it is reached through newloc.
11250
11251         * init.c (run_wgetrc): Print the wgetrc path too, when reporting
11252         error; don't use "Syntax error", since we don't know if it is
11253         really a syntax error.
11254
11255 1996-12-16  Hrvoje Niksic  <hniksic@srce.hr>
11256
11257         * utils.c (acceptable): Extract the filename part of the path.
11258
11259         * recur.c (recursive_retrieve): Call acceptable() with the right
11260         argument; would bug out on wildcards.
11261
11262         * init.c (parse_line): Likewise.
11263
11264         * html.c (htmlfindurl): Cast to char * when calling stuff.
11265
11266 1996-12-15  Hrvoje Niksic  <hniksic@srce.hr>
11267
11268         * ftp.c (getftp): Use ftp_pasv.
11269
11270         * ftp-basic.c (ftp_request): Accept NULL value.
11271         (ftp_pasv): New function.
11272
11273         * options.h (struct options): Add passive FTP option.
11274
11275 1996-12-15  Hrvoje Niksic  <hniksic@srce.hr>
11276
11277         * url.c (parseurl): Debug output.
11278
11279         * utils.c (path_simplify): New one, adapted from bash's
11280         canonicalize_pathname().
11281
11282 1996-12-14  Hrvoje Niksic  <hniksic@srce.hr>
11283
11284         * ftp.c (getftp): Don't discard the buffer.
11285
11286         * retr.c (get_contents): New parameter nobuf.
11287
11288 1996-12-13  Shawn McHorse  <riffraff@txdirect.net>
11289
11290         * html.c (htmlfindurl): Recognize <meta contents="d; URL=...".
11291
11292         * init.c (setval): Strip the trailing slashes on CVECDIR.
11293
11294 1996-12-13  Hrvoje Niksic  <hniksic@srce.hr>
11295
11296         * init.c: Make excludes and includes under CVECDIR instead of
11297         CVEC.
11298
11299 1996-12-13  Shawn McHorse  <riffraff@txdirect.net>
11300
11301         * url.c (get_urls_html): Skip "http:".
11302
11303 1996-12-13  Hrvoje Niksic  <hniksic@srce.hr>
11304
11305         * utils.c (strcasecmp): From glibc.
11306         (strncasecmp): Also.
11307         (strstr): Also.
11308
11309         * url.c: Added javascript: to the list of URLs prefixes.
11310
11311 1996-12-12  Shawn McHorse  <riffraff@txdirect.net>
11312
11313         * recur.c (retrieve_robots): Print the warning message only if
11314         verbose.
11315
11316 1996-12-12  Gregor Hoffleit  <flight@mathi.uni-heidelberg.DE>
11317
11318         * ftp.c (ftp_retrieve_list): Use NeXT old utime interface.
11319
11320 1996-12-12  Hrvoje Niksic  <hniksic@srce.hr>
11321
11322         * systhings.h: New file.
11323
11324         * ../configure.in: Check for utime.h
11325
11326         * ftp.c: Check whether we have unistd.h.
11327
11328 1996-11-27  Hrvoje Niksic  <hniksic@srce.hr>
11329
11330         * recur.c (recursive_retrieve): Send the canonical URL as referer.
11331         (recursive_retrieve): Call get_urls_html with the canonical URL.
11332
11333 1996-12-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11334
11335         * (configure.in, config.h.in, src/Makefile.in, src/*.[ch]): Add
11336         ansi2knr support for compilers which don't support ANSI style
11337         function prototypes and signatures.
11338
11339         * (aclocal.m4, src/ansi2knr.c, src/ansi2knr.1): New files.
11340
11341 1996-11-26  Hrvoje Niksic  <hniksic@srce.hr>
11342
11343         * url.c: Use it; Recognize paths ending with "." and ".." as
11344         directories.
11345         (url_filename): Append .n whenever file exists and could be a
11346         directory.
11347
11348         * url.h (ISDDOT): New macro.
11349
11350         * init.c (parse_line): Use unsigned char.
11351
11352         * url.c (get_urls_html): Cast to unsigned char * when calling
11353         htmlfindurl.
11354
11355         * html.c (htmlfindurl): Use unsigned char.
11356
11357         * version.c: Changed version to 1.4.3.
11358
11359 1996-11-25  Hrvoje Niksic  <hniksic@srce.hr>
11360
11361         * version.c: Released 1.4.2.
11362
11363         * ftp.c (getftp): Simplified assertion.
11364         (ftp_loop_internal): Remove symlink before downloading.
11365         (ftp_retrieve_list): Unlink the symlink name before attempting to
11366         create a symlink!
11367
11368         * options.h (struct options): Renamed print_server_response to
11369         server_response.
11370
11371         * ftp.c (rel_constr): Removed.
11372         (ftp_retrieve_list): Don't use it.
11373         (ftp_retrieve_list): Use opt.retr_symlinks.
11374
11375 1996-11-24  Hrvoje Niksic  <hniksic@srce.hr>
11376
11377         * main.c (main): New option retr_symlinks.
11378
11379         * url.c (convert_links): Print verbose message.
11380
11381 1996-11-24  Hrvoje Niksic  <hniksic@srce.hr>
11382
11383         * http.c (http_loop): Reset newloc in the beginning of function;
11384         would cause FMR in retrieve_url.
11385
11386 1996-11-23  Hrvoje Niksic  <hniksic@srce.hr>
11387
11388         * recur.c (convert_all_links): Find the URL of each HTML document,
11389         and feed it to get_urls_html; would bug out.
11390         (convert_all_links): Check for l2 instead of dl; removed dl.
11391
11392         * url.c (convert_links): Don't refer to freed newname.
11393
11394         * recur.c (recursive_retrieve): Add this_url to urls_downloaded.
11395
11396         * main.c (main): Print the OS_TYPE in the debug output, too.
11397
11398         * recur.c (recursive_retrieve): Check for opt.delete_after.
11399
11400         * main.c (main): New option delete-after.
11401
11402         * init.c (setval): Cleaned up.
11403
11404 1996-11-21  Hrvoje Niksic  <hniksic@srce.hr>
11405
11406         * Makefile.in (wget): Make `wget' the default target.
11407
11408         * ftp.c (ftp_loop_internal): Move noclobber checking out of the
11409         loop.
11410         (ftp_retrieve_list): Warn about non-matching sizes.
11411
11412         * http.c (http_loop): Made -nc non-dependent on opt.recursive.
11413
11414         * init.c (setnum): Renamed from setnuminf; New argument flags.
11415         (setval): Use it.
11416
11417         * main.c (main): Sorted the options.
11418         (main): New option --wait.
11419
11420 1996-11-21  Shawn McHorse  <riffraff@txdirect.net>
11421
11422         * html.c (htmlfindurl): Reset s->in_quote after getting out of
11423         quotes.
11424
11425 1996-11-20  Hrvoje Niksic  <hniksic@srce.hr>
11426
11427         * version.c: Changed version to 1.4.2.
11428
11429 1996-11-20  Hrvoje Niksic  <hniksic@srce.hr>
11430
11431         * version.c: Released 1.4.1.
11432
11433         * html.c (html_quote_string): New function.
11434         (ftp_index): Use it.
11435         (htmlfindurl): A more gentle ending debug message.
11436
11437         * ftp.c (ftp_loop): Check for opt.htmlify.
11438
11439         * init.c: New command htmlify.
11440
11441         * ftp.c (getftp): Nicer error messages, with `'-encapsulated
11442         strings.
11443         (ftp_loop): Print size of index.html.
11444
11445         * init.c (setval): Implement "styles".
11446
11447         * main.c (main): New option dotstyle.
11448
11449 1996-11-19  Hrvoje Niksic  <hniksic@srce.hr>
11450
11451         * ftp.c (getftp): Close the master socket in case of errors, after
11452         bindport().
11453
11454         * connect.c (bindport): Initialize msock to -1.
11455
11456         * ftp.c (getftp): Initialize dtsock to -1.
11457
11458         * connect.c (closeport): Don't close sock if sock == -1.
11459
11460 1996-11-18  Hrvoje Niksic  <hniksic@srce.hr>
11461
11462         * init.c (setnuminf): Nuked default value -- just leave unchanged.
11463         (setval): Don't send default values.
11464         (defaults): Use DEFAULT_TIMEOUT -- aaargh.
11465
11466         * options.h (struct options): Use long for dot_bytes.
11467
11468         * init.c (setquota): Renamed to setbytes.
11469         (setval): Use setbytes on DOTBYTES.
11470
11471 1996-11-17  Hrvoje Niksic  <hniksic@srce.hr>
11472
11473         * ftp.c (getftp): Initialize con->dltime.
11474
11475         * recur.c (recursive_retrieve): Use same_host instead of
11476         try_robots; simply load robots_txt whenever the host is changed.
11477         (recursive_retrieve): Free forbidden before calling parse_robots.
11478
11479 1996-11-16  Hrvoje Niksic  <hniksic@srce.hr>
11480
11481         * retr.c (show_progress): Use them.
11482
11483         * options.h (struct options): New options dot_bytes, dots_on_line
11484         and dot_spacing.
11485
11486 1996-11-16  Mark Boyns  <boyns@sdsu.edu>
11487
11488         * recur.c (recursive_retrieve): Retrieve directories regardless of
11489         acc/rej rules; check for empty u->file.
11490
11491 1996-11-14  Hrvoje Niksic  <hniksic@srce.hr>
11492
11493         * init.c (setval): Use it.
11494
11495         * utils.c (merge_vecs): New function.
11496
11497         * init.c (setval): Reset the list-type functions when encountering
11498         "".
11499
11500 1996-11-14  Shawn McHorse  <riffraff@txdirect.net>
11501
11502         * recur.c (recursive_retrieve): Use base_url instead of this_url
11503         for no_parent.
11504
11505 1996-11-14  Shawn McHorse  <riffraff@txdirect.net>
11506
11507         * html.c (htmlfindurl): Reset s->in_quote after exiting the quote.
11508
11509 1996-11-13  Hrvoje Niksic  <hniksic@srce.hr>
11510
11511         * utils.c (sepstring): Rewrote; don't use strtok.
11512
11513         * recur.c (recursive_retrieve): Enter assorted this_url to slist
11514         when running the first time.
11515         (retrieve_robots): Warn to ignore errors when robots are loaded.
11516
11517         * utils.c (load_file): Moved from url.c.
11518
11519         * http.c: Made static variables const too in h* functions.
11520
11521         * main.c (main): Renamed --continue-ftp to --continue.
11522
11523         * recur.c (recursive_retrieve): Use it.
11524
11525         * utils.c (frontcmp): New function.
11526
11527         * url.c (accdir): New function.
11528
11529         * html.c (htmlfindurl): Recognize <area href=...>.
11530
11531         * ftp.c (ftp_retrieve_dirs): Implemented opt.includes.
11532
11533         * init.c (setval): Free the existing opt.excludes and
11534         opt.includes, if available.
11535
11536         * main.c (main): New option -I.
11537
11538 1996-11-12  Hrvoje Niksic  <hniksic@srce.hr>
11539
11540         * ftp.c (ftp_retrieve_glob): Do not weed out directories.
11541
11542         * version.c: Changed version to 1.4.1.
11543
11544 1996-11-11  Hrvoje Niksic  <hniksic@srce.hr>
11545
11546         * version.c: Released 1.4.0.
11547
11548 1996-11-10  Hrvoje Niksic  <hniksic@srce.hr>
11549
11550         * main.c (main): Free com and val after parse_line.
11551         (printhelp): Reorder the listing.
11552
11553         * http.c: More robust header parsing.
11554
11555         * http.c: Allow any number of spaces, or no spaces, precede ':'.
11556         (hskip_lws): New function.
11557         (haccepts_bytes): New function.
11558         (gethttp): Use it.
11559
11560         * init.c (setval): Check header sanity.
11561         (setval): Allow resetting of headers.
11562
11563 1996-11-10  Hrvoje Niksic  <hniksic@srce.hr>
11564
11565         * http.c (http_loop): Don't use has_wildcards.
11566
11567         * http.c (gethttp): Free all_headers -- would leak.
11568
11569         * recur.c (recursive_retrieve): Initialize depth to 1 instead of
11570         0 -- this fixes a long-standing bug in -rl.
11571
11572 1996-11-09  Hrvoje Niksic  <hniksic@srce.hr>
11573
11574         * ftp.c: Use -1 as "impossible" value for con->fd.
11575
11576         * url.h (URL_SEPARATOR): Don't treat `*' and `+' as separators.
11577
11578         * init.c (parse_line): Use isalpha.
11579
11580         * ftp-unix.c: Use HAVE_UNISTD_H.
11581
11582         * mtch.c (has_wildcards): Don't match \.
11583
11584         * http.c (http_loop): Warn on HTTP wildcard usage.
11585
11586 1996-11-08  Hrvoje Niksic  <hniksic@srce.hr>
11587
11588         * url.c (url_filename): Do not create numbered suffixes if
11589         opt.noclobber -- would bug out on -nc.
11590
11591 1996-11-07  Hrvoje Niksic  <hniksic@srce.hr>
11592
11593         * recur.c (parse_robots): Don't chuck out the commands without
11594         arguments (`Disallow:<empty>' didn't work).
11595         (parse_robots): Compare versions lowercase.
11596         (parse_robots): Match on base_version, not version_string!
11597         (parse_robots): Handle comments properly.
11598         (parse_robots): Match versions in a sane way.
11599
11600         * init.c: Print nicer error messages.
11601
11602         * version.c: Changed version to 1.4.0.
11603
11604 1996-11-06  Hrvoje Niksic  <hniksic@srce.hr>
11605
11606         * version.c: Released 1.4.0-test2.
11607
11608         * init.c (run_wgetrc): Close fp.
11609
11610         * ftp.c (ftp_retrieve_dirs): Allocate the correct length for
11611         u->dir.
11612
11613 1996-11-06  Hrvoje Niksic  <hniksic@srce.hr>
11614
11615         * init.c (setquota): Allow inf as quota specification.
11616
11617 1996-11-05  Hrvoje Niksic  <hniksic@srce.hr>
11618
11619         * ftp.c (ftp_retrieve_dirs): Return QUOTEXC if quota exceeded.
11620         (ftp_retrieve_glob): Return QUOTEXC on quota exceeded.
11621
11622         * main.c (main): Check for quota by comparison with downloaded
11623         stuff, not from status.
11624
11625         * connect.c (select_fd): Should compile on HPUX without warnings now.
11626
11627         * ftp.c (ftp_get_listing): Check whether ftp_loop_internal
11628         returned RETROK.
11629
11630 1996-11-04  Hrvoje Niksic  <hniksic@srce.hr>
11631
11632         * ftp.c (ftp_retrieve_glob): Print the pattern nicely.
11633         (getftp): Return FTPRETRINT on control connection error.
11634
11635         * html.c (htmlfindurl): Recognize <embed src=...> and
11636         <bgsound src=...>.
11637         (ftp_index): Handle username and password correctly.
11638
11639         * main.c (main): Made `-np' a synonim for --no-parent.
11640
11641 1996-11-02  Hrvoje Niksic  <hniksic@srce.hr>
11642
11643         * ftp.c (ftp_loop): Check for opt.ftp_glob too before calling
11644         ftp_retrieve_glob.
11645
11646         * version.c: Changed version to 1.4.0-test2.
11647
11648 1996-11-02  Hrvoje Niksic  <hniksic@srce.hr>
11649
11650         * version.c: Released 1.4.0-test1.
11651
11652         * url.c (str_url): Don't use sprintf when creating %2F-prefixed
11653         directory.
11654         (convert_links): Removed definition of make_backup.
11655
11656         * http.h: Removed definition of MAX_ERROR_LENGTH.
11657
11658         * host.c (ftp_getaddress): Check for "(none)" domains.
11659
11660         * ftp.c (ftp_retrieve_dirs): Docfix.
11661
11662         * http.c (gethttp): Use ou->referer instead of u->referer.
11663
11664         * retr.c (retrieve_url): Reset u to avoid freeing pointers twice;
11665         this was known to cause coredumps on Linux.
11666
11667         * html.c (ftp_index): Cast the argument to local_time to time_t *.
11668
11669 1996-11-01  Hrvoje Niksic  <hniksic@srce.hr>
11670
11671         * connect.c (select_fd): Use exceptfds -- once and for all.
11672
11673         * retr.c (retrieve_from_file): Free filename after
11674         recursive_retrieve.
11675         (retrieve_from_file): Send RFIRST_TIME to recursive_retrieve on
11676         first-time retrieval.
11677         (retrieve_from_file): Return uerr_t; new argument, count.
11678         (retrieve_from_file): Break on QUOTEXC.
11679
11680         * init.c (setquota): Fixed a bug that caused rejection of
11681         non-postfixed values..
11682
11683 1996-10-30  Hrvoje Niksic  <hniksic@srce.hr>
11684
11685         * version.c: Changed name to wget.
11686
11687         * connect.c (iread): Smarter use of select.
11688         (select_fd): Set errno on timeout.  If not timeout, return 1
11689         instead of 0.
11690
11691 1996-10-29  Hrvoje Niksic  <hniksic@srce.hr>
11692
11693         * ftp.c (ftp_loop_internal): Don't use con->cmd before
11694         establishing it.
11695
11696 1996-10-26  Hrvoje Niksic  <hniksic@srce.hr>
11697
11698         * http.c (gethttp): Send correct referer when using proxy.
11699         (gethttp): Use struct urlinfo ou to access the relevant data; send
11700         correct authorization in all cases.
11701
11702         * host.c (same_host): Use skip_uname to skip username and
11703         password.
11704
11705         * url.c (skip_uname): New function.
11706         (parseurl): Use it.
11707
11708         * host.c (same_host): Do not assume HTTP -- same_host should now
11709         be totally foolproof.
11710
11711         * url.c (skip_proto): New function.
11712         (parse_uname): Use it.
11713
11714         * http.c (gethttp): Create local user and passwd from what is
11715         given.
11716
11717         * url.c (parseurl): Check for HTTP username and password too.
11718
11719 1996-10-25  Hrvoje Niksic  <hniksic@srce.hr>
11720
11721         * config.h.in: Removed #define gethostbyname R...
11722
11723 1996-10-22  Hrvoje Niksic  <hniksic@srce.hr>
11724
11725         * version.c: Changed version to 1.4.0-test1.
11726
11727 1996-10-21  Hrvoje Niksic  <hniksic@srce.hr>
11728
11729         * version.c: "Released" 1.4b29.
11730
11731         * recur.c (recursive_retrieve): Check for no_parent.
11732
11733         * init.c (setval): Option update.
11734
11735         * main.c (main): New option no-parent.
11736
11737         * options.h (struct options): New variable no_parent.
11738
11739         * recur.c (recursive_retrieve): Only files are checked for
11740         opt.accepts and opt.rejects.
11741         (recursive_retrieve): Check directories for opt.excludes.
11742         (recursive_retrieve): Make the dir absolute when checking
11743         opt.excludes.
11744
11745         * html.c (htmlfindurl): Recognize <applet code=...> and <script
11746         src=...>
11747
11748 1996-10-18  Hrvoje Niksic  <hniksic@srce.hr>
11749
11750         * ftp.c (getftp): Do not line-break assert entries at all.
11751         (ftp_retrieve_dirs): docfix.
11752
11753         * connect.c (select_fd): Use fd + 1 as nfds.
11754
11755         * version.c: Changed version to 1.4b29.
11756
11757 1996-10-18  Hrvoje Niksic  <hniksic@srce.hr>
11758
11759         * version.c: "Released" 1.4b28.
11760
11761         * ftp.c (ftp_loop_internal): Check whether f->size == len and
11762         don't continue the loop if it is.
11763         (ftp_get_listing): Remove list_filename on unsuccesful loop.
11764
11765 1996-10-17  Hrvoje Niksic  <hniksic@srce.hr>
11766
11767         * ftp.c (ftp_loop_internal): Use strcpy to initialize tmp.
11768         (getftp): Do not use multiline assert.
11769
11770         * http.c (hparsestatline): Use mjr and mnr instead of major and
11771         minor, which don't compile on Ultrix.
11772         (http_loop): Use strcpy() to initialize tmp.
11773
11774         * all: Geturl -> Fetch
11775
11776 1996-10-17  Hrvoje Niksic  <hniksic@srce.hr>
11777
11778         * recur.c (parse_robots): Fixed an off-by-one bug when looking for
11779         ':'.
11780
11781         * html.c (htmlfindurl): Fixed several possible off-by-one bugs by
11782         moving `bufsize &&' to the beginning of each check in for-loops.
11783
11784         * recur.c (parse_robots): Close fp on exit.
11785
11786         * url.c (mymkdir): Check for each directory before creating.
11787
11788 1996-10-16  Hrvoje Niksic  <hniksic@srce.hr>
11789
11790         * version.c: Changed version to 1.4b28.
11791
11792 1996-10-16  Hrvoje Niksic  <hniksic@srce.hr>
11793
11794         * version.c: "Released" 1.4b27.
11795
11796         * init.c (parse_line): Use isspace.
11797         (parse_line): Free *com on all errors.
11798
11799         * ftp.c (ftp_loop): Change FTPOK to RETROK before exiting.
11800         (delelement): Use next instead of f->next and prev instead of
11801         f->prev.
11802         (delelement): Free the members of the deleted element.
11803
11804         * http.c (http_loop): Do not return RETROK on code != 20x.
11805
11806         * init.c (cleanup): Free opt.user_header.
11807         (cleanup): Free opt.domains.
11808
11809         * url.c (freelists): Moved to cleanup().
11810
11811         * http.c (hparsestatline): Docfix.
11812
11813         * main.c (main): Return with error status on unsuccesful
11814         retrieval.
11815
11816         * init.c (setval): Do not remove listing when mirroring.
11817
11818         * url.c (url_filename): Use opt.fileprefix.
11819
11820         * ftp.c (ftp_get_listing): Use url_filename to get filename for
11821         .listing.
11822
11823         * main.c (main): New option: -rn.
11824
11825 1996-10-15  Hrvoje Niksic  <hniksic@srce.hr>
11826
11827         * Makefile.in (RM): Added RM = rm -f.
11828
11829         * host.c (clean_hosts): New function.
11830         (free_hlist): Just free the list, no reset.
11831
11832         * version.c: Changed version to 1.4b27.
11833
11834 1996-10-13  Hrvoje Niksic  <hniksic@srce.hr>
11835
11836         * version.c: "Released" 1.4b26.
11837
11838         * retr.c (retrieve_from_file): If call get_urls_html with
11839         opt.spider to make it silent in spider mode.
11840
11841         * url.c (str_url): Use CLEANDUP instead of URL_CLEANSE.
11842
11843         * url.h (CLEANDUP): New macro.
11844
11845         * http.c (gethttp): Fixed a bug that freed location only when it
11846         was NULL.
11847
11848         * retr.c (retrieve_url): Free url if it will not be stored,
11849         i.e. newloc is NULL.
11850
11851         * html.c (htmlfindurl): Handle exiting from quotes correctly; the
11852         old version would bug out on <a href="x#a"href="y">.
11853
11854         * html.h (state_t): New member in_quote.
11855
11856         * html.c (htmlfindurl): Free s->attr at the beginning of
11857         attr-loop.
11858
11859         * recur.c (recursive_retrieve): Recognize RCLEANUP.
11860         (tried_robots): Make hosts a global variable.
11861         (recursive_retrieve): Free constr after URL host optimization.
11862         (tried_robots): Free urlinfo before exiting.
11863
11864         * utils.c (free_slist): New function.
11865
11866         * recur.c (recursive_retrieve): Use flags to add cleanup
11867         possibility.
11868
11869         * main.c (main): Free filename after recursive_retrieve.
11870
11871         * http.c (gethttp): Store successful responses too.
11872
11873 1996-10-12  Hrvoje Niksic  <hniksic@srce.hr>
11874
11875         * all: Constified the whole source.  This required some minor
11876         changes in many functions in url.c, possibly introducing bugs -- I
11877         hope not.
11878
11879         * ftp-basic.c: Removed last_respline.
11880
11881         * http.c (gethttp): Free type.
11882
11883         * host.c (same_host): Free real1 and real2.
11884
11885         * main.c (main): New option --spider.
11886
11887         * retr.c (get_contents): Don't reset errno.
11888
11889         * main.c (main): Sorted the options.
11890
11891         * connect.c (iread): Set errno to ETIMEDOUT only if it was left
11892         uninitialized by select().
11893
11894         * http.c (http_loop): Print the time when the connection is
11895         closed.
11896         (gethttp): Debug-print the HTTP request.
11897
11898 1996-10-11  Hrvoje Niksic  <hniksic@srce.hr>
11899
11900         * connect.c (iread): Do not try reading after timeout.
11901
11902         * main.c (main): Would bug out on -T.
11903
11904         * connect.c (select_fd): Do not use exceptfds.
11905         (iread): Set ETIMEDOUT on select_fd <= 0.
11906
11907         * version.c: Changed version to 1.4b26.
11908
11909 1996-10-10  Hrvoje Niksic  <hniksic@srce.hr>
11910
11911         * version.c: "Released" 1.4b25.
11912
11913         * ftp-unix.c (ftp_parse_unix_ls): Ignore lines without file name
11914         or link name.
11915
11916         * http.c (gethttp): Add errcode to struct hstat.
11917         (http_loop): Use it.
11918
11919         * url.c (no_proxy_match): Simplify using char** for no_proxy.
11920
11921         * options.h (struct options): Make opt.no_proxy a vector.
11922
11923         * utils.c (sepstring): Use !*s instead of !strlen(s).
11924
11925         * init.c (setval): Set opt.maxreclevel to 0 on --mirror.
11926         (getperms): Use ISODIGIT instead of isdigit.
11927
11928         * ftp.c (getftp): Print time.
11929
11930         * main.c (main): Use legible output of downloaded quantity.
11931
11932         * ftp.c (getftp): Use elapsed_time().
11933         (ftp_loop_internal): Use rate().
11934
11935         * http.c (http_loop): Add download ratio output; Use rate().
11936
11937         * utils.c (rate): New function.
11938
11939 1996-10-09  Hrvoje Niksic  <hniksic@srce.hr>
11940
11941         * http.c (http_loop): Use timer.
11942
11943         * ftp.c: Split to ftp-basic.c and ftp.c
11944
11945         * utils.c (reset_timer): New function.
11946         (elapsed_time): New function.
11947
11948         * retr.c (show_progress): Make bytes_in_line and offs long; should
11949         work on 16-bit machines.
11950
11951 1996-10-08  Hrvoje Niksic  <hniksic@srce.hr>
11952
11953         * url.c (in_acclist): New argument backward.
11954
11955         * ftp.c (ftp_retrieve_glob): Use acceptable() to determine whether
11956         a file should be retrieved according to suffix.
11957         (ftp_get_listing): Check the return value of unlink; Do not call
11958         ftp_retrieve_dirs if depth reached maxreclevel.
11959         (ftp_retrieve_dirs): Check whether the directory is in
11960         exclude-list.
11961
11962         * main.c (main): Print the version number at the beginning of
11963         DEBUG output.
11964         (main): Use strrchr when creating exec_name.
11965
11966         * ftp.c (ftp_retrieve_glob): Do not close control connection.
11967
11968         * version.c: Changed version to 1.4b25.
11969
11970 1996-10-07  Hrvoje Niksic  <hniksic@srce.hr>
11971
11972         * version.c: "Released" 1.4b24.
11973
11974         * Makefile.in: Rewrite.
11975
11976         * ftp.c (ftp_loop_internal): Likewise.
11977
11978         * retr.c (time_str): Check for failed time().
11979
11980         * html.c (htmlfindurl): Recognize <fig src> and <overlay src> from
11981         HTML3.0.
11982
11983         * retr.c (time_str): Return time_t *.
11984
11985         * connect.c (bindport): Close msock on unsuccesful bind.
11986         (bindport): The same for getsockname and listen.
11987
11988         * retr.c (retrieve_url): Allow any number of retries on
11989         proxy.
11990
11991         * http.c (gethttp): Do not treat errno == 0 as timeout.
11992         (http_loop): Likewise.
11993         (http_loop): Cosmetic changes.
11994
11995         * connect.c (iread): Set errno to ETIMEDOUT in case of timeout.
11996
11997         * retr.c (get_contents): Reset errno.
11998
11999         * ftp.c (getftp): Minor fixes.
12000
12001 1996-10-06  Hrvoje Niksic  <hniksic@srce.hr>
12002
12003         * http.c: Do not use backups.
12004
12005         * geturl.1 (WARNING): Warn that man-page could be obsolete.
12006
12007         * getopt.c (getopt_long): Moved to getopt.c
12008
12009         * geturl.texi: Enhanced.
12010
12011         * main.c (main): Use it.
12012
12013         * recur.c (convert_all_links): New function.
12014
12015         * utils.c (add_slist): New argument flags.
12016
12017         * recur.c (recursive_retrieve): Update a list of downloaded URLs.
12018         (parse_robots): Do not chuck out empty value fields.
12019         (parse_robots): Make yourself welcome on empty Disallow.
12020
12021         * version.c: Changed version to 1.4b24.
12022
12023 1996-10-06  Hrvoje Niksic  <hniksic@srce.hr>
12024
12025         * version.c: "Released" 1.4b23.
12026
12027         * ftp.c (ftp_loop_internal): Get the time after getftp.
12028
12029         * Makefile.in (install.info): New target.
12030         (install): Use it.
12031
12032         * http.c (http_loop): Fix output when doing -O.
12033
12034 1996-10-05  Hrvoje Niksic  <hniksic@srce.hr>
12035
12036         * geturl.texi: New file.
12037
12038         * main.c (main): Do not print the warnings and download summary if
12039         opt.quiet is set.
12040
12041         * version.c: Changed version to 1.4b23.
12042
12043 1996-10-05  Hrvoje Niksic  <hniksic@srce.hr>
12044
12045         * "Released" 1.4b22.
12046
12047         * atotm.c (atotm): Use True and False instead of TRUE and FALSE,
12048         to avoid redefinition warnings.
12049
12050         * host.c (store_hostaddress): Use memcpy() to copy the address
12051         returned by inet_addr.
12052
12053         * version.c: Changed version to 1.4b22.
12054
12055 1996-10-04  Hrvoje Niksic  <hniksic@srce.hr>
12056
12057         * version.c: "Released" 1.4b21.
12058
12059         * ftp-unix.c (ftp_parse_ls): Renamed to ftp_parse_unix_ls.
12060
12061         * ftp.c (ftp_port): Use conaddr.
12062         (getftp): Print the file length.
12063         (ftp_retrieve_list): Check the stamps of plain files only.
12064
12065         * connect.c (closeport): Do not call shutdown().
12066         (conaddr): New function.
12067
12068         * html.c (ftp_index): Made it dfp-aware.
12069
12070         * init.c (cleanup): New name of freemem. Close opt.dfp.
12071
12072         * ftp.c (getftp): Use opt.dfp if it is set.
12073
12074         * ftp-unix.c (ftp_parse_ls): Recognize time in h:mm format.
12075
12076         * ftp.c (ftp_retrieve_dirs): Fixed a bug that caused incorrect
12077         CWDs to be sent with recursive FTP retrievals.
12078
12079 1996-10-03  Hrvoje Niksic  <hniksic@srce.hr>
12080
12081         * recur.c (parse_robots): Made it more compliant with "official"
12082         specifications.
12083
12084         * http.c: New function.
12085
12086         * ftp-unix.c (ftp_parse_ls): Added better debug output.
12087
12088         * ftp.c (getftp): Print out the LIST in case of
12089         opt.print_server_response.
12090
12091         * version.c: Changed version to 1.4b21.
12092
12093 1996-10-01  Hrvoje Niksic  <hniksic@srce.hr>
12094
12095         * version.c: "Released" 1.4b20.
12096
12097         * README: Update.
12098
12099         * http.c (gethttp): Preset lengths of various headers instead of
12100         calculating them dynamically.
12101         (gethttp): Check for 206 partial contents.
12102
12103 1996-09-30  Hrvoje Niksic  <hniksic@srce.hr>
12104
12105         * configure.in: Set SYSTEM_GETURLRC to $libdir/geturlrc
12106
12107         * http.c (gethttp): Send the port number in the Host: header.
12108
12109 1996-09-29  Hrvoje Niksic  <hniksic@srce.hr>
12110
12111         * http.c (gethttp): Send host: header.
12112         (gethttp): Add the possibility of user-defined headers.
12113         (gethttp): Move decision about pragma: no-cache to http_loop,
12114         where it belongs.
12115         (gethttp): Pass a struct instead of enormous argument list.
12116         (http_loop): Use a new, fancier display format.
12117         (ftp_loop): Likewise.
12118
12119         * main.c: (hangup): Turn off buffering of the new log file.
12120
12121         * install-sh: Likewise.
12122
12123         * config.sub: Replace with the one in autoconf-2.10
12124
12125         * geturl.1: Update.
12126
12127         * init.c: New options httpuser and httppasswd.
12128
12129         * http.c: (base64_encode_line): New function.
12130         (gethttp): Send authentication.
12131
12132         * connect.c (make_connection): Use store_hostaddress.
12133
12134 1996-09-28  Hrvoje Niksic  <hniksic@srce.hr>
12135
12136         * host.c (store_hostaddress): New function.
12137
12138         * NEWS: Update.
12139
12140         * http.c (hgetrange): New function.
12141         (gethttp): Use ranges.
12142
12143         * utils.c (numdigit): Accept long instead of int.
12144
12145         * http.c (http_loop): Add restart capabilities.
12146
12147         * ftp.c (ftp_retrieve_glob): Fixed a bug that could cause matchres
12148         being used uninitialized.
12149         (ftp_retrieve_list): Similar fix.
12150
12151         * host.c (add_hlist): Fixed a bug that could cause cmp being used
12152         uninitialized.
12153
12154         * url.c (construct_relative): New function.
12155
12156         * recur.c (recursive_retrieve): Use it.
12157
12158         * retr.c (convert_links): New function.
12159
12160 1996-09-27  Hrvoje Niksic  <hniksic@srce.hr>
12161
12162         * url.c (free_urlpos): New function.
12163
12164         * recur.c (recursive_retrieve): Adapt.
12165
12166         * url.c (get_urls_html): Return a linked list instead of a vector.
12167
12168         * url.c (get_urls_file): Return a linked list instead of a vector.
12169
12170         * geturl.1: Update.
12171
12172         * http.c (gethttp): Implement it.
12173
12174         * init.c (setval): New option: SAVEHEADERS
12175
12176         * ftp.c (ftp_loop_internal): Do not set restval if listing is to
12177         be retrieved. Lack of this test caused bugs when the connection
12178         was lost during listing.
12179
12180         * retr.c (retrieve_url): Fixed a bug that caused
12181         coredumps. *newloc is now reset by default.
12182         (retrieve_url): Lift the twenty-tries limit on proxies.
12183
12184         * version.c: Changed version to 1.4b20.
12185
12186 1996-09-20  Hrvoje Niksic  <hniksic@srce.hr>
12187
12188         * version.c: "Released" 1.4b19.
12189
12190 1996-09-19  Hrvoje Niksic  <hniksic@srce.hr>
12191
12192         * ftp.c (ftp_loop_internal): Renamed from ftp_1fl_loop.
12193         (getftp): Changed prototype to accept ccon *.
12194
12195 1996-09-17  Hrvoje Niksic  <hniksic@srce.hr>
12196
12197         * ftp.c (ftp_retrieve_list): Fixed a bug that caused setting
12198         incorrect values to files pointed to by symbolic links.
12199         (ftp_1fl_loop): Do not count listings among the downloaded URL-s.
12200
12201 1996-09-16  Hrvoje Niksic  <hniksic@srce.hr>
12202
12203         * url.c (mkstruct): Do not prepend "./" in front of a pathname.
12204
12205         * main.c (main): New option: --user-agent.
12206
12207         * geturl.1: Ditto.
12208
12209         * init.h: Ditto.
12210
12211         * init.c (setval): Ditto.
12212
12213         * main.c (main): Rename "server-headers" to "server-response".
12214
12215         * ftp-unix.c (ftp_parse_ls): Check for asterisks at the end of
12216         executables in 'ls -F' listings.
12217
12218 1996-09-15  Hrvoje Niksic  <hniksic@srce.hr>
12219
12220         * url.c (parseurl): Remove realloc() and sprintf().
12221         (str_url): Get rid of sprintf().
12222
12223         * recur.c (recursive_retrieve): Enable FTP recursion through proxy
12224         servers.
12225
12226         * url.h (URL_CLEANSE): Made it else-resistant.
12227         (USE_PROXY): New macro.
12228
12229 1996-09-14  Hrvoje Niksic  <hniksic@srce.hr>
12230
12231         * NEWS: Update.
12232
12233         * version.c: Changed version to 1.4b19.
12234
12235 1996-09-14  Hrvoje Niksic  <hniksic@srce.hr>
12236
12237         * version.c: "Released" 1.4b18.
12238
12239         * url.c: Made it reallocate space exponentially.
12240
12241 1996-09-14  Drazen Kacar  <dave@fly.cc.fer.hr>
12242
12243         * html.c (htmlfindurl): Added <frame src> and <iframe src> among
12244         the list of stuff to fetch.
12245
12246 1996-09-13  Hrvoje Niksic  <hniksic@srce.hr>
12247
12248         * url.c (get_urls_html): Fixed a bug that caused SIGSEGV's with
12249         -Fi.
12250
12251         * html.c (htmlfindurl): Rewrite.
12252
12253         * http.c (gethttp): Use opt.proxy_cache.
12254
12255         * main.c (main): Added --cache option.
12256
12257         * ftp.c (ftp_response): Print server response if opt.print_server
12258         response is set.
12259         (getftp): Print newlines after each request if the server response
12260         is to be printed.
12261         (ftp_response): Copy the last response line to last_respline.
12262
12263         * http.c (gethttp): Add Pragma: nocache for retried
12264         proxy-retrievals.
12265
12266         * ftp.c (getftp): Use it.
12267
12268         * retr.c (buf_discard): New function.
12269
12270         * ftp.c (ftp_response): Use buf_readchar().
12271         (getftp): Flush the control connection buffer before calling
12272         get_contents().
12273
12274         * retr.c (buf_readchar): New function.
12275         (buf_flush): New function.
12276         (get_contents): Use buf_readchar() instead of read(x, x, 1).
12277         (get_contents): Use buf_flush.
12278
12279 1996-09-12  Hrvoje Niksic  <hniksic@srce.hr>
12280
12281         * ftp.c: Incorporate changes to ftp_response.
12282
12283         * ftp.c (ftp_response): Allocate the server response dynamically,
12284         as in read_whole_line and fetch_next_header.
12285
12286         * utils.c (read_whole_line): Fixed a bug that prevented reading
12287         the last line if it is not \n-terminated. Also fixed a possible
12288         memory overflow.
12289
12290         * http.c (fetch_next_header): Return malloc-ed string as large as
12291         needed.
12292         (gethttp): Use new fetch_next_header.
12293
12294 1996-09-12  Hrvoje Niksic  <hniksic@srce.hr>
12295
12296         * http.c (hgetlen): Compute the header length the first time only.
12297         (hgettype): Ditto.
12298         (hgetlocation): Ditto.
12299         (hgetmodified): Ditto.
12300
12301 1996-09-11  Hrvoje Niksic  <hniksic@srce.hr>
12302
12303         * sample.geturlrc: Update.
12304
12305 1996-09-10  Hrvoje Niksic  <hniksic@srce.hr>
12306
12307         * http.c (http_loop): Ditto.
12308
12309         * ftp.c (getftp): Open the output file as binary.
12310
12311         * version.c: Changed version to 1.4b18.
12312
12313 1996-09-10  Hrvoje Niksic  <hniksic@srce.hr>
12314
12315         * version.c: "Released" 1.4b17.
12316
12317         * ftp-unix.c (ftp_parse_ls): If unable to open file, return NULL
12318         instead of failed assertion.
12319
12320 1996-09-09  Hrvoje Niksic  <hniksic@srce.hr>
12321
12322         * ftp.c (ftp_get_listing): Add a numbered suffix to LIST_FILENAME
12323         if a file of that name already exists.
12324
12325 1996-09-05  Hrvoje Niksic  <hniksic@srce.hr>
12326
12327         * ftp.c (ftp_1fl_loop): Handler FTPPORTERR and FOPENERR correctly.
12328
12329         * config.h.in: Define gethostbyname as Rgethostbyname when using
12330         Socks.
12331
12332         * configure.in: Check for -lresolv if using Socks.
12333
12334         * version.c: Changed version to 1.4b17.
12335
12336 1996-07-15  Hrvoje Niksic  <hniksic@srce.hr>
12337
12338         * version.c: "Released" 1.4b16.
12339
12340         * http.c (gethttp): More intelligent check for first line of HTTP
12341         response.
12342         (gethttp): Would bug out on time-stamping.
12343
12344         * version.c: Changed version to 1.4b16.
12345
12346 1996-07-11  Hrvoje Niksic  <hniksic@srce.hr>
12347
12348         * version.c: Released 1.4b15.
12349
12350         * http.c (http_loop): Print \n after the loop entry, not before.
12351
12352         * url.c (url_filename): Use ISDOT.
12353
12354         * url.h (ISDOT): New macro.
12355
12356         * recur.c (recursive_retrieve): Change only opt.recursive for
12357         following FTP.
12358
12359 1996-07-11  Antonio Rosella <antonio.rosella@agip.it>
12360
12361         * socks/geturl.cgi: Fixed version No.
12362
12363         * socks/download-netscape.html: Ditto.
12364
12365         * socks/download.html: Changed socks.html to download.html.
12366
12367 1996-07-11  Hrvoje Niksic  <hniksic@srce.hr>
12368
12369         * url.c (url_filename): Check for opt.dirstruct instead for
12370         opt.recursive && opt.dirstruct.
12371
12372         * init.c (defaults): Ditto.
12373         (defaults): Reset dirstruct by default.
12374         (setval): Set opt.dirstruct whenever setting recursive.
12375
12376         * init.h: Removed FORCEDIRHIER.
12377
12378         * INSTALL: Added -L to socks-description.
12379
12380         * version.c: Changed version to 1.4b15.
12381
12382 1996-07-10  Hrvoje Niksic  <hniksic@srce.hr>
12383
12384         * version.c: "Released" 1.4b14.
12385
12386         * geturl.1: Update AUTHOR to include Rosella as contributor.
12387
12388         * NEWS: Update.
12389
12390         * socks/geturl.cgi: Simplified command creation, nuked <blink>.
12391
12392         * socks/geturl.cgi: Wrap nutscape extensions within if $netscape.
12393         (cal_time): Fix == to eq.
12394
12395         * socks/geturl.cgi: GPL-ized with permission of A. Rosella.
12396
12397         * geturl.1 (hostname): Moved URL CONVENTIONS to the beginning.
12398
12399         * Makefile.in: Use @VERSION@.
12400
12401         * configure.in: Check version from version.c.
12402
12403         * socks/geturl.cgi: Changed /pub/bin/perl to /usr/bin/perl.
12404
12405         * socks/download.html: Created from download-netscape.html, made
12406         HTML-2.0 compliant.
12407
12408         * recur.c (recursive_retrieve): Set opt.force_dir_hier when
12409         following FTP links from recursions.
12410
12411 1996-07-09  Hrvoje Niksic  <hniksic@srce.hr>
12412
12413         * url.c (mymkdir): Fixed a bug that prevented mymkdir() to create
12414         absolute directories correctly.
12415
12416         * version.c: Changed version to 1.4b14.
12417
12418 1996-07-09  Hrvoje Niksic  <hniksic@srce.hr>
12419
12420         * version.c: "Released" 1.4b13.
12421
12422         * url.c (make_backup): New function.
12423
12424         * http.c (http_loop): Make a backup copy of the local file (using
12425         rename(2)) before opening it.
12426
12427         * main.c (main): Added --backups.
12428
12429         * host.c (ftp_getaddress): Bail out on failed mycuserid().
12430         (ftp_getaddress): Check for leading dot on MY_DOMAIN.
12431         (ftp_getaddress): Check for empty, null or (null) domain.
12432
12433         * url.c (get_urls_html): If this_url is NULL, the base must have a
12434         protocol.
12435         (parseurl): Use has_proto.
12436
12437         * retr.c (retrieve_url): Warn when proxy is used with more than 20
12438         retries.
12439
12440         * url.c (mkstruct): Create the directory (calling mymkdir()) only
12441         if it is not already there.
12442         (has_proto): New function.
12443         (get_urls_html): Eliminate the remaining call to findurl -- use
12444         has_proto.
12445
12446         * geturl.1: Ditto.
12447
12448         * main.c: Change -X to -x.
12449
12450         * url.c (url_filename): Simplify creation of filename if
12451         prefix_files is set.
12452         (url_filename): Simplify everything. And I do mean *everything*.
12453         (mkstruct): Add dir_prefix before hostname.
12454         (path_simplify): Fixed a bug that caused writing outside the path
12455         string in case of "." and ".." path strings.
12456
12457 1996-07-06  Hrvoje Niksic  <hniksic@srce.hr>
12458
12459         * init.c: Added --mirror.
12460
12461         * main.c (main): Added -X to force saving of directory hierarchy.
12462
12463         * ftp.c (ftp_retrieve_list): Added recursion depth counter.
12464         (ftp_retrieve_list): Check whether quota is exceeded.
12465
12466         * url.c (get_urls_html): Skip leading blanks for absolute URIs.
12467
12468         * http.c (gethttp): Use referer if present.
12469
12470         * recur.c (recursive_retrieve): Set u->referer before calling
12471         retrieve_url.
12472
12473         * url.c (newurl): Use memset to nullify the struct members.
12474         (freeurl): Free the referer field too.
12475
12476         * url.h: Added referer to urlinfo.
12477
12478         * geturl.1: Updated the manual to document some of the new features.
12479
12480         * utils.c (numdigit): Moved from url.c.
12481
12482         * README: Rewritten.
12483
12484         * config.h.in: Add the support for socks.
12485
12486         * configure.in: Add the support for socks.
12487
12488         * url.c (url_filename): If the dir_prefix is ".", work with just
12489         the file name.
12490         (url_filename): Do not look for .n extensions if timestamping if
12491         turned on.
12492
12493         * retr.c (show_progress): Skip the over-abundant restval data, and
12494         print the rest of it with ',' instead of '.'.
12495
12496 1996-07-05  Hrvoje Niksic  <hniksic@srce.hr>
12497
12498         * retr.c (show_progress): Changed second arg. to long (as it
12499         should be).
12500         (show_progress): Moved to retr.c.
12501         (get_contents): Moved to retr.c.
12502
12503         * version.c: Change version to 1.4b13.
12504
12505 1996-07-05  Hrvoje Lacko <hlacko@fly.cc.fer.hr>
12506
12507         * url.c (in_acclist): Would return after the first suffix.
12508
12509 1996-07-04  Hrvoje Niksic  <hniksic@srce.hr>
12510
12511         * version.c: "Released" 1.4b12.
12512
12513         * url.c (path_simplify): More kludgifications.
12514         (get_urls_html): Use new parameters for htmlfindurl.
12515
12516         * html.c: Removed memorizing "parser states", since the new
12517         organization does not require them.
12518
12519         * init.c (run_geturlrc): Use read_whole_line.
12520
12521         * ftp-unix.c (ftp_parse_ls): Use read_whole_line.
12522
12523         * recur.c (parse_robots): Use read_whole_line.
12524
12525         * utils.c (read_whole_line): New function.
12526
12527         * recur.c (tried_robots): Use add_slist/in_slist, *much* cleaner.
12528
12529         * host.c (ngethostbyname): Call inet_addr just once. Yet to be
12530         tested on OSF and Ultrix.
12531         (add_hlist): New function.
12532         (free_hlist): New function.
12533         (search_host): New function.
12534         (search_address): New function.
12535         (realhost): Use search_host, search_address and add_hlist.
12536         (same_host): Replaced realloc() with strdupdelim(), made
12537         case-insensitive, fixed a memory leak.
12538
12539         * html.c (ftp_index): Fixed tm_min and tm_sec to be tm_hour and
12540         tm_min, like intended.
12541
12542         * version.c: Change user agent information to
12543         Geturl/version.
12544
12545 1996-07-03  Hrvoje Niksic  <hniksic@srce.hr>
12546
12547         * utils.c: Renamed nmalloc.c to utils.c, .h likewise.
12548
12549         * url.c (acceptable): Always accept directories.
12550
12551         * ftp-unix.c (ftp_parse_ls): Support brain-damaged "ls -F"-loving
12552         servers by stripping trailing @ from symlinks and trailing / from
12553         directories.
12554
12555         * ftp.c (ftp_loop): Debugged the "enhanced" heuristics. :-)
12556
12557         * url.c (skip_url): Use toupper instead of UCASE.
12558
12559         * host.c (sufmatch): Made it case-insensitive.
12560
12561         * url.c (match_backwards_or_pattern): Fixed i == -1 to j == -1.
12562         (match_backwards): New function, instead of
12563         match_backwards_or_pattern.
12564
12565         * recur.c (recursive_retrieve): Increased performance by
12566         introducing inl, which reduces number of calls to in_slist to only
12567         one.
12568
12569         * ftp.c (ftp_loop): Enhanced the heuristics that decides which
12570         routine to use.
12571
12572         * main.c (printhelp): Removed the warranty stuff.
12573
12574 1996-07-02  Hrvoje Niksic  <hniksic@srce.hr>
12575
12576         * url.c (add_slist): Simplify.
12577         (match_backwards_or_pattern): New function.
12578         (in_acclist): Use match_backwards_or_pattern.
12579         (matches): Remove.
12580
12581 1996-06-30  Hrvoje Niksic  <hniksic@srce.hr>
12582
12583         * ftp.c (ftp_loop): Call ftp_index on empty file names, if not
12584         recursive.
12585
12586         * html.c (ftp_index): Fixed to work. Beautified the output.
12587
12588         * ftp.c (ftp_retrieve_glob): Another argument to control whether
12589         globbing is to be used.
12590         (ftp_retrieve_list): Compare the time-stamps of local and remote
12591         files to determine whether to download.
12592
12593 1996-06-29  Hrvoje Niksic  <hniksic@srce.hr>
12594
12595         * ftp.c (rel_constr): New function.
12596
12597         * retr.c (retrieve_from_file): Check for text/html before
12598         retrieving recursively.
12599
12600         * main.c (main): Check whether the file is HTML before going into
12601         recursive HTML retrieving.
12602
12603         * ftp.c (ftp_retrieve_list): Manage directories.
12604         (ftp_retrieve_glob): Pass all the file-types to ftp_retrieve_list.
12605         (ftp_1fl_loop): Fixed a bug that caused con->com to be incorrectly
12606         initialized, causing bugchecks in getftp to fail.
12607
12608         * configure.in: Check for symlink.
12609
12610         * ftp.c (ftp_retrieve_list): Added support for symlinks.
12611
12612         * version.c: "Released" 1.4b10.
12613
12614         * atotm.c (atotm): Redeclared as time_t.
12615
12616         * init.c: New variable "timestamping".
12617
12618         * main.c (main): New option 'N'.
12619
12620         * http.c (hgetlocation): Case-insensitive match.
12621         (hgetmodified): New function.
12622         (http_loop): Implement time-stamping.
12623
12624 1996-06-28  Hrvoje Niksic  <hniksic@srce.hr>
12625
12626         * version.c: Changed version to 1.4b10
12627
12628         * atotm.c: New file, from phttpd.
12629
12630         * options.h (struct options): New parameter timestamping.
12631
12632         * version.c: 1.4b9 "released".
12633
12634         * recur.c (recursive_retrieve): Used linked list (ulist) for
12635         faster storing of URLs.
12636
12637         * url.c (get_urls_html): Removed the old kludge with comparing the
12638         outputs of htmlfindurl and findurl.
12639         (get_urls_html): Added better protocol support here.
12640         (create_hash): Removed, as well as add_hash and in_hash.
12641         (addslist): New function.
12642         (in_slist): ditto
12643
12644         * version.c: Released 1.4b8, changed version to b9.
12645
12646 1996-06-27  Hrvoje Niksic  <hniksic@srce.hr>
12647
12648         * ftp.c (freefileinfo): New function.
12649         (delelement): New function.
12650
12651         * everywhere: GPL!
12652
12653         * ftp.c (ftp_loop): Use ccon.
12654         (ftp_retrieve_glob): Likewise.
12655
12656         * ftp.h: Define ccon, to define status of control connection.
12657
12658         * ftp.c (ftp_get_listing): New function.
12659         (ftp_retrieve_more): New function.
12660         (ftp_retrieve_glob): New function.
12661
12662 1996-06-25  Hrvoje Niksic  <hniksic@srce.hr>
12663
12664         * configure.in: Removed the search for cuserid().
12665
12666         * init.c (getmode): Renamed to getperms.
12667
12668 1996-06-24  Hrvoje Niksic  <hniksic@srce.hr>
12669
12670         * version.c: New version.
12671
12672         * main.c (hangup): New function, that handles hangup. Hangup
12673         signal now causes geturl to stop writing on stdout, and to write
12674         to a log file.
12675
12676         * ftp.c (getftp): "Released" 1.4b7.
12677
12678         * html.c (htmlfindurl): Ignore everything inside <head>...</head>.
12679         (ftp_index): Use fileinfo/urlinfo.
12680
12681         * ftp-unix.c (ftp_parse_ls): New function.
12682         (symperms): New function.
12683
12684         * ftp.c (ftp_1fl_loop): New function, to handle 1-file loops.
12685
12686         * retr.c (retrieve_url): Added FTP support.
12687
12688 1996-06-23  Hrvoje Niksic  <hniksic@srce.hr>
12689
12690         * geturl.h: Removed NOTFTP2HTML enum.
12691         Added DO_LOGIN, DO_CWD and DO_LIST. LIST_ONLY is obsolete.
12692
12693         * ftp.c (getftp): Resynched with urlinfo.
12694         (getftp): Removed HMTL-ization of index.html from getftp.
12695
12696         * version.c: 1.4b6 "released".
12697
12698         * options.h (options): New struct, to keep options in.
12699
12700         * http.c (http_loop,gethttp): Synched with proxy.
12701
12702         * retr.c (retrieve_url): Implemented proxy retrieval.
12703
12704         * main.c (main): Use retrieve_from_file.
12705
12706 1996-06-22  Hrvoje Niksic  <hniksic@srce.hr>
12707
12708         * retr.c (retrieve_from_file): New function.
12709
12710         * url.c (parseurl): Modified to return URLOK if all OK. Protocol
12711         can be found in u->proto.
12712
12713         * ftp.c (ftp_response): Fixed to accept multi-line responses as
12714         per RFC 959.
12715
12716         * recr.c (recursive_retrieve): Take newloc from retrieve_url.
12717
12718         * url.c (mymkdir): Removed the file of the same name, if one
12719         exists.
12720         (isfile): New function.
12721         (mkstruct): Fixed the '/' glitches.
12722         (path_simplify): Hacked to treat something/.. correctly.
12723
12724 1996-06-21  Hrvoje Niksic  <hniksic@srce.hr>
12725
12726         * http.c (gethttp): Close the socket after error in headers.
12727         (http_loop): HEOF no longer a fatal header.
12728
12729         * loop.c (retrieve_url): When dt is NULL, do not modify it. This
12730         simplifies the syntax of calling retrieve_url.
12731
12732         * recr.c (recursive_retrieve): Modified to use get_urls_html.
12733
12734         * url.c (get_urls_file): New function.
12735         (get_urls_html): New function.
12736
12737         * recr.c (recursive_retrieve): Patched up to conform to the
12738         standards.
12739
12740         * http.c (gethttp): Synched with the rest...
12741         (gethttp): Treat only CONREFUSED specially, with connection
12742         errors.
12743
12744         * init.c,geturl.1,http.c (http_loop): Removed kill_error.
12745
12746 1996-06-20  Hrvoje Niksic  <hniksic@srce.hr>
12747
12748         * http.c (http_loop): New function.
12749
12750         * loop.c: Removed *lots* of stuff from retrieve_url.
12751
12752         * url.c (parseurl): Changed to work with urlinfo. Integrated
12753         username finding and path parsing.
12754         (newurl): New function.
12755         (freeurl): New function.
12756         (mkstruct): Removed the old bogosities, made it urlinfo-compliant.
12757         (url_filename): Likewise.
12758         (path_simplify): Accept relative paths too.
12759         (opt_url): Made urlinfo-compliant, removed bogosities.
12760         (path_simplify): Expanded to accept relative paths.
12761         (str_url): A replacement for hide_url
12762         (decode_string): Fixed a bug that caused malfunctioning when
12763         encountering an illegal %.. combination.
12764         (opt_url): Removed the argument. Dot-optimizations are now default.
12765
12766         * nmalloc.c (strdupdelim): New function.
12767
12768         * url.h: Added the urlinfo structure
12769
12770 1996-06-19  Hrvoje Niksic  <hniksic@srce.hr>
12771
12772         * url.c (hide_url): Thrown out the protocol assertion. Do not
12773         change the URL if the protocol if not recognized.
12774         (findurl): Put continue instead of break.
12775
12776 1996-06-18  Hrvoje Niksic  <hniksic@srce.hr>
12777
12778         * sample.geturlrc: Changed the defaults to be commented out and
12779         harmless (previous defaults caused pains if copied to
12780         ~/.geturlrc).
12781
12782         * http.c (gethttp): Print the HTTP request in debug mode.
12783
12784         * connect.c (iread): Added EINTR check loop to select-ing
12785         too. EINTR is now correctly handled with select().
12786
12787         * TODO: new file
12788
12789 1996-05-07  Hrvoje Niksic  <hniksic@srce.hr>
12790
12791         * host.c (same_host): Made the function a little bit more
12792         intelligent regarding diversified URL syntaxes.
12793
12794         * url.c (skip_url): Spaces are now skipped after URL:
12795
12796         * Released 1.3.1 with the patch to prevent crashing when sending
12797         NULL to robot* functions and the patch to compile "out of the box"
12798         on AIX.
12799
12800         * recr.c (recursive_retrieve): Added checking whether this_url is
12801         NULL when calling the robot functions.
12802
12803         * ChangeLog: New file.