]> sjero.net Git - wget/blob - src/ChangeLog
On a network error, attempt to resume the download, not restart it.
[wget] / src / ChangeLog
1 2010-11-21  Giuseppe Scrivano  <gscrivano@gnu.org>
2
3         * ftp.c (getftp): If `count' is bigger than zero, try to resume the
4         download, not restart it.
5         * http.c (gethttp): Likewise.
6         Suggested by: Evgeny Kapun <abacabadabacaba@gmail.com>.
7
8 2010-11-19  Giuseppe Scrivano  <gscrivano@gnu.org>
9
10         * fttp.c (getftp): Accept new argument `count'.  When `count' is
11         bigger than zero, assume the file can be overwritten.
12         (ftp_loop_internal): Pass new argument `count' to `getftp'.
13
14         * http.c (gethttp): Accept new argument `count'.  When `count' is
15         bigger than zero, assume the file can be overwritten.
16         (http_loop): Pass new argument `count' to `gethttp'.
17         Reported by: Evgeny Kapun <abacabadabacaba@gmail.com>.
18
19 2010-08-08  Reza Snowdon <vivi@mage.me.uk>
20
21         * main.c (main): inserted 'defaults'.
22           Added additional 'getopt_long' while loop to search and apply a
23           user specified config file before any other options.
24           New variables 'retconf', 'use_userconfig',
25           'confval', 'userrc_ret', 'config_opt'.
26         * init.c: Include stdbool.h.
27           (commands): Added config details.
28           (defaults): Removed static.
29           (wgetrc): Removed static.
30           (initialize): Removed 'defaults ()',
31           changed 'int ok' to 'bool ok'.
32         * options.h: New variable 'choose_config'.
33         * init.h (defaults): exported function.
34           (run_wgetrc): exported function.
35
36 2010-10-24  Jessica McKellar <jesstess@mit.edu> (tiny change)
37
38         * main.c (main): Print the total download time as part of the
39         summary for downloads using the recursive or page requisites
40         options. Fixes bug #21359.
41
42 2010-10-24  Giuseppe Scrivano  <gscrivano@gnu.org>
43
44         * gnutls.c (wgnutls_peek): Do not return an error when
45         `gnutls_record_recv' fails but some data is already available.
46
47 2010-10-23  Giuseppe Scrivano  <gscrivano@gnu.org>
48
49         * Makefile.am (LIBS): Remove @LIBGNUTLS@ and use @W32LIBS@ as last
50         component.
51
52         * gnutls.c (wgnutls_peek): Block until data is available.
53
54 2010-10-21  Giuseppe Scrivano  <gscrivano@gnu.org>
55
56         * retr.c (retrieve_url): Do not register HTML files twice.
57         Reported by: Manfred Koizar <mkoi-pg@aon.at>.
58
59 2010-10-18  Manfred Koizar <mkoi-pg@aon.at> (tiny change)
60
61         * html-url.c (tag_handle_link): Do not assume external links type
62         to be always "text/html".
63
64 2010-10-16  Giuseppe Scrivano  <gscrivano@gnu.org>
65
66         * connect.c (socket_ip_address): Initialize `sockaddr' to zero.
67         * ftp-basic.c (ftp_epsv): Remove dead assignment to `s'.
68         * ftp-ls.c (ftp_parse_vms_ls): Remove dead assignment to `len'.
69         * http.c (skip_short_body): Remove dead assignment to `ret'.
70         * init.c (wgetrc_user_file_name): Remove dead assignment to `home'.
71         * main.c (main): Silent warning reported by clang.
72         (http_loop): Silent warning reported by clang.
73         * retr.c (retrieve_url): Likewise.
74         * url.c (init_seps): Remove dead assignment to `p'.
75
76 2010-10-11  Giuseppe Scrivano  <gscrivano@gnu.org>
77
78         * ftp.c (getftp): Fix indentation.
79
80 2010-10-11  Steven Schubiger <stsc@member.fsf.org>
81
82         * ftp.c (getftp): Initialize `targ'.
83
84 2010-10-08  Ivanov Anton <x86mail@gmail.com> (tiny change)
85
86     * src/html-url.c (check_style_attr): Skip quotes when they are present.
87
88 2010-10-06  Giuseppe Scrivano  <gscrivano@gnu.org>
89
90         * main.c (main): Remove unused variable `status'.
91
92 2010-09-25  Merinov Nikolay  <kim.roader@gmail.com>
93
94         * init.c: Add "unlink" command into command list.
95         * main.c: Add "unlink" option into option_data list.
96         * options.h: Adding unlink field into struct options.
97         * wget.h: Addind UNLINKERR error into uerr_t enum.
98         * exits.c (get_status_for_err): define status for UNLINKERR.
99         * ftp.c (getftp): unlink file if exists, instead clobbering.
100         (ftp_loop_internal): processing UNLINKERR.
101         * http.c (gethttp): unlink file if exists, instead clobbering.
102         (http_loop): processing UNLINKERR.
103
104 2010-09-24  Dennis, CHENG Renquan <crquan@fedoraproject.org>
105
106         Fix problem when content-disposition is used with recursive downloading.
107         * url.h (url_file_name): Add a new argument `replaced_filename'.
108         * url.c (url_file_name): Likewise.
109         * http.c (parse_content_disposition): Do not add a prefix to the return
110         value.
111         (test_parse_content_disposition): Adjust tests.
112         (gethttp): Pass additional parameter to `url_file_name'.
113         (http_loop): Likewise.
114         * ftp.c (ftp_loop_internal, ftp_get_listing, ftp_retrieve_list)
115         (ftp_loop): Likewise.
116
117 2010-09-14  Giuseppe Scrivano  <gscrivano@gnu.org>
118
119         * convert.c (local_quote_string): Accept new parameter `no_html_quote'.
120         Inhibit HTML quoting when `no_html_quote'.
121         (convert_links): Disable HTML quoting in CSS files.
122         Reported by: Manuel Reinhardt <reinhardt@syslab.com>.
123
124 2010-09-12  Giuseppe Scrivano  <gscrivano@gnu.org>
125
126         * main.c (print_help): Align --trust-server-names help text with
127         the rest of the text.
128         Suggested by: Mike Frysinger  <vapier@gentoo.org>.
129
130 2010-08-20  Giuseppe Scrivano  <gscrivano@gnu.org>
131
132         * convert.c: Include "iri.h".
133         (convert_links_in_hashtable): Parse the url, if
134         necessary, before check if it is present in the dowloaded url
135         map.
136         Reported by: <sk.random@gmail.com>.
137
138 2010-08-09  Giuseppe Scrivano  <gscrivano@gnu.org>
139
140         Fix a problem with HTTP/1.0 proxies.
141         * http.c (gethttp): Specify the connection header when keep alive
142         connections are not used.
143
144         Use persistent connections with proxies supporting them.
145         * http.c (gethttp): Specify Proxy-Connection to the HTTP proxy.
146
147 2010-08-06  Giuseppe Scrivano  <gscrivano@gnu.org>
148
149         * css-url.c (get_uri_string): Skip empty urls.
150
151 2010-07-25  John Trengrove  <jtrengrove@gmail.com> (tiny change)
152
153         * ftp.h: Added enum `parsetype'.  Modified struct to hold parsetype.
154
155         * ftp-ls.c (ftp_parse_unix_ls): Default to TT_DAY. Change to TT_HOUR_MIN
156         if hours/minutes parsed.
157         (ftp_parse_winnt_ls): Default to TT_HOUR_MIN.
158         (ftp_parse_vms_ls): Default to TT_HOUR_MIN.
159         (ftp_index): Print only if fileinfo struct value ttype set to TT_HOUR_MIN.
160
161 2010-07-30  Giuseppe Scrivano  <gscrivano@gnu.org>
162
163         * html-url.h (struct map_context): Remove member `tail'.
164
165         * html-url.c (append_url): Append the new url ordered by `position'.
166         (get_urls_html): Do not initialize `ctx.tail'.
167
168         * css-url.c (get_urls_css_file): Do not initialize `ctx.tail'.
169
170 2010-07-29  Giuseppe Scrivano  <gscrivano@gnu.org>
171
172         * gnutls.c (wgnutls_peek): Don't read more data if the buffered peek
173         data is sufficient.
174
175 2010-07-28  Giuseppe Scrivano  <gscrivano@gnu.org>
176
177         * http.h (http_loop): Add new argument `original_url'
178         * http.c (http_loop): Add new argument `original_url'.  Use
179         `original_url' to get a filename if `trustservernames' is false.
180
181         * init.c (commands): Add "trustservernames".
182
183         * options.h (library): Add variable `trustservernames'.
184
185         * main.c (option_data): Add trust-server-names.
186         (print_help): Describe --trust-server-names.
187
188         * retr.c (retrieve_url): Pass new argument to `http_loop'.
189
190 2010-07-20  Alan Jenkins <alan-jenkins@tuffmail.co.uk> (tiny change)
191
192         * http.c (gethttp): Check content-length was set before trying to
193         compare it with the already downloded filesize.
194
195 2010-07-20  Leonid Petrov <nouser@lpetrov.net>
196
197         * ftp.c (getftp): Don't attempt to retrieve the file if it is already
198         completely.
199         (ftp_loop_internal): Force the length to be zero for symlinks.
200
201 2010-07-18  Giuseppe Scrivano  <gscrivano@gnu.org>
202
203         * http.c (gethttp): If -N is used, don't exit immediately if the content
204         length is less or equal than the existing file size.  Specify "Range"
205         only if -N is not used.
206         Reported by: Caleb Cushing <xenoterracide@gmail.com>.
207
208 2010-07-14  Giuseppe Scrivano  <gscrivano@gnu.org>
209
210         * ftp.c (max): Remove definition.
211         (getftp): New variable `got_expected_bytes'.  Let `expected_bytes' be
212         the value SIZE returns, otherwise use the bytes count returned by RETR.
213         Suggested by Daniel Stenberg <daniel@haxx.se>.
214
215 2010-07-14  Giuseppe Scrivano  <gscrivano@gnu.org>
216
217         * ftp.c (max): Add definition.
218         (getftp): Consider for `expected_bytes' the greatest value between the
219         bytes count returned by SIZE and the bytes count returned by RETR.
220         Reported by: Jozua <jozua@sparky.za.net>.
221
222 2010-07-11  Giuseppe Scrivano  <gscrivano@gnu.org>
223
224         * http.c (http_loop): New variable `force_full_retrieve'.  If the remote
225         file is newer that the local one then inhibit -c.
226         Reported by: Caleb Cushing <xenoterracide@gmail.com>.
227
228 2010-07-09  Giuseppe Scrivano  <gscrivano@gnu.org>
229
230         * css-url.c (get_urls_css_file): Use `wget_read_file' instead of
231         `read_file'.  Use `wget_read_file_free' instead of `read_file_free'.
232         * convert.c (convert_links): Likewise.
233         * html-url.c (get_urls_html, get_urls_file): Likewise.
234         * res.c (res_parse_from_file): Likewise.
235
236         * utils.h: Rename `read_file' to `wget_read_file'.  Rename
237         `read_file_free' to `wget_read_file_free'.
238
239         * utils.c (wget_read_file): Renamed from `read_file'.
240         (wget_read_file_free): Renamed from `read_file_free'.
241
242 2010-07-05  Giuseppe Scrivano  <gscrivano@gnu.org>
243
244         * gnutls.c (ssl_init): New local variables `ca_directory' and `dir'.
245         Load default root certificates under the `ca_directory' directory.
246
247 2010-07-03  Giuseppe Scrivano  <gscrivano@gnu.org>
248
249         * gnutls.c (ssl_connect_wget): New local variable `allowed_protocols'.
250         Honor the --secure-protocol flag.
251
252 2010-06-20  Giuseppe Scrivano  <gscrivano@gnu.org>
253
254         * main.c (print_help): Fix help string for --random-wait.  Its range is
255         [0.5*wait, 1.5*wait) not [0, 2*wait).
256         Reported by: Tom Mizutani <gombei1970@gmail.com>.
257
258 2010-06-15  Giuseppe Scrivano  <gscrivano@gnu.org>
259
260         * gnutls.c [WIN32]: Include "w32sock.h".
261         (FD_TO_SOCKET): Add definition.
262         (ssl_connect_wget): Get the real socket handle by FD_TO_SOCKET.
263         Define FD_TO_SOCKET if it is not yet defined.
264
265 2010-06-14  Giuseppe Scrivano  <gscrivano@gnu.org>
266
267         * gnutls.c: Include <stdlib.h>.
268         (struct wgnutls_transport_context): Remove `peekstart'.
269         (ssl_connect_wget): Renamed from `ssl_connect'.
270         (wgnutls_poll): New variable `ctx'.
271         (wgnutls_read): Don't use `ctx->peekstart'.
272         (wgnutls_peek): Likewise.  Don't attempt to read if there is not
273         ready data.
274
275 2010-06-14  Giuseppe Scrivano  <gscrivano@gnu.org>
276         * http.c (http_loop): Always send a HEAD request when -N is used
277         together with --content-disposition.
278         Reported by: Jochen Roderburg <Roderburg@Uni-Koeln.DE>.
279
280 2010-06-10  Muthu Subramanian K <muthusuba@gmail.com> (tiny change)
281
282         * http.c (http_loop): Increase `total_downloaded_bytes' by
283         `hstat.rd_size', not `hstat.len'.
284
285 2010-06-10  Giuseppe Scrivano  <gscrivano@gnu.org>
286
287         * main.c (print_version): Drop the current maintainer line.
288
289 2010-06-10  Giuseppe Scrivano  <gscrivano@gnu.org>
290
291         * Makefile.am (build_info.c): Generate the `build_info.c' file under
292         the build directory.
293         Patch by: Daniel Stenberg <daniel@haxx.se>.
294
295 2010-06-03  Giuseppe Scrivano  <gscrivano@gnu.org>
296
297         * http.c (http_loop): Do not send a HEAD request before the GET request
298         when --content-disposition is used.
299         Reported by: alex_wh@mail.ru.
300
301 2010-05-31  Giuseppe Scrivano  <gscrivano@gnu.org>
302
303         * css.l: Use option "nounput".
304         (YY_NO_INPUT): Add macro definition.
305
306 2010-05-31  Giuseppe Scrivano  <gscrivano@gnu.org>
307
308         * html-parse.c (map_html_tags): Fix condition for closed tag.  Handle
309         the case '>' is not specified after '/'.
310
311 2010-05-31  Giuseppe Scrivano  <gscrivano@gnu.org>
312
313         * sysdep.h (_SVID_SOURCE): Remove definition.
314         (_BSD_SOURCE): Remove definition.
315
316 2010-05-31  Giuseppe Scrivano  <gscrivano@gnu.org>
317
318         * recur.c (retrieve_tree): Remove variable `up_error_code'.
319
320         * iri.c (open_locale_to_utf8): Remove function.
321
322 2010-05-30  Giuseppe Scrivano  <gscrivano@gnu.org>
323
324         * html-parse.c (NAME_CHAR_P): Consider '<' an invalid character.
325         (advance_declaration): Close the tag if '<' is found.
326         (map_html_tags): Likewise.
327
328 2010-05-27  Giuseppe Scrivano  <gscrivano@gnu.org>
329
330         * main.c (print_usage): Accept a new parameter `error'.
331         (main): Print diagnostic messages to stderr, not stdout.
332
333 2010-05-27  Giuseppe Scrivano  <gscrivano@gnu.org>
334
335         * Makefile.am (wget_SOURCES): Remove `snprintf.c'.
336
337         * snprintf.c: Remove file.
338
339 2010-05-27  Giuseppe Scrivano  <gscrivano@gnu.org>
340
341         * main.c (main): Exit with failure when -k is specified and -O is not
342         a regular file.
343
344 2010-05-27  Giuseppe Scrivano  <gscrivano@gnu.org>
345
346         * http.c (gethttp): Consider new cookies retrieved when the
347         authorization fails.
348
349 2010-05-25  Giuseppe Scrivano  <gscrivano@gnu.org>
350
351         * host.c (sufmatch): Do not consider zero length entries.
352
353         * http.c (H_10X): New macro.
354         (gethttp): Silently ignore 1xx responses.
355
356 2010-05-24  Giuseppe Scrivano  <gscrivano@gnu.org>
357
358         * iri.h (dummy_iri): Define static.
359
360         * css-tokens.h (css_tokens): Remove variable.
361
362 2010-05-23  Giuseppe Scrivano  <gscrivano@gnu.org>
363
364         * http.c (http_atotm): Count the NUL character when copying the locale
365         string.
366         Reported by: Florian Weimer <fw@deneb.enyo.de>
367
368 2010-05-16  Giuseppe Scrivano  <gscrivano@gnu.org>
369
370         * Makefile.am (LDADD): Remove MD5_LDADD.
371         (MD5_LDADD): Remove definition.
372         (AM_CPPFLAGS): Remove MD5_CPPFLAGS.
373         (version.c): Remove dependency from MD5_LDADD.
374         (../md5/libmd5.a): Remove rule.
375
376         * ftp-opie.c: Include "md5.h".  Do not include "gen-md5.h".
377         (skey_response): New variable ctx.  Use md5 functions from the gnulib
378         module instead of functions defined previously in the "gen-md5.h" file.
379
380         * gen-md5.h: Remove file.
381         * gen-md5.c: Likewise.
382
383         * http.c: Include "md5.h".  Do not include "gen-md5.h".
384         (digest_authentication_encode): New variable ctx.  Use md5 functions
385         from the gnulib module instead of functions defined previously in the
386         "gen-md5.h" file.
387
388 2010-05-15  Giuseppe Scrivano  <gscrivano@gnu.org>
389
390         * Makefile.am: Quote any path using $(top_srcdir) or $(top_builddir).
391         (version.c): Remove dependency from configure.ac and Makefile.am.
392
393         * css.l: Include "wget.h".
394
395 2010-05-08  Giuseppe Scrivano  <gscrivano@gnu.org>
396
397         * Makefile.am: Update copyright years.
398
399         * cmpt.c: Likewise.
400
401         * connect.h: Likewise.
402
403         * convert.c: Likewise.
404
405         * convert.h: Likewise.
406
407         * cookies.c: Likewise.
408
409         * cookies.h: Likewise.
410
411         * css-tokens.h: Likewise.
412
413         * css-url.c: Likewise.
414
415         * css-url.h: Likewise.
416
417         * css.l: Likewise.
418
419         * exits.c: Likewise.
420
421         * exits.h: Likewise.
422
423         * ftp-basic.c: Likewise.
424
425         * ftp-ls.c: Likewise.
426
427         * ftp-opie.c: Likewise.
428
429         * ftp.c: Likewise.
430
431         * ftp.h: Likewise.
432
433         * gen-md5.c: Likewise.
434
435         * gen-md5.h: Likewise.
436
437         * gettext.h: Likewise.
438
439         * gnutls.c: Likewise.
440
441         * hash.c: Likewise.
442
443         * hash.h: Likewise.
444
445         * host.c: Likewise.
446
447         * host.h: Likewise.
448         * html-parse.c: Likewise.
449
450         * html-parse.h: Likewise.
451
452         * html-url.c: Likewise.
453
454         * html-url.h: Likewise.
455
456         * http-ntlm.c: Likewise.
457
458         * http-ntlm.h: Likewise.
459
460         * http.c: Likewise.
461
462         * http.h: Likewise.
463
464         * init.c: Likewise.
465
466         * init.h: Likewise.
467
468         * iri.c: Likewise.
469
470         * iri.h: Likewise.
471
472         * log.c: Likewise.
473
474         * log.h: Likewise.
475
476         * main.c: Likewise.
477
478         * mswindows.c: Likewise.
479
480         * mswindows.h: Likewise.
481
482         * netrc.c: Likewise.
483
484         * netrc.h: Likewise.
485
486         * openssl.c: Likewise.
487
488         * options.h: Likewise.
489         * progress.c: Likewise.
490
491         * progress.h: Likewise.
492
493         * ptimer.c: Likewise.
494
495         * ptimer.h: Likewise.
496
497         * recur.c: Likewise.
498
499         * recur.h: Likewise.
500
501         * res.c: Likewise.
502
503         * res.h: Likewise.
504
505         * retr.c: Likewise.
506
507         * retr.h: Likewise.
508
509         * spider.c: Likewise.
510
511         * spider.h: Likewise.
512
513         * ssl.h: Likewise.
514
515         * sysdep.h: Likewise.
516
517         * test.c: Likewise.
518
519         * test.h: Likewise.
520
521         * url.c: Likewise.
522
523         * url.h: Likewise.
524
525         * utils.c: Likewise.
526
527         * utils.h: Likewise.
528
529         * wget.h: Likewise.
530
531 2010-05-07  Giuseppe Scrivano  <gscrivano@gnu.org>
532
533         * gnutls.c (wgnutls_close): Use always `close', not `closesocket'.
534
535         * openssl.c (openssl_close): Use always `close', not `closesocket'.
536         (ssl_connect_wget): Get the real socket handle by FD_TO_SOCKET.
537         Define FD_TO_SOCKET if it is not yet defined.
538
539         * Makefile.am (libunittest_a_CPPFLAGS): Add -I$(top_builddir)/lib.
540
541         * mswindows.h: Always include <winsock2.h> and <ws2tcpip.h>.  Do not
542         include <winsock.h>.
543         [! INHIBIT_WRAP]: Remove macro's socket, bind, connect, accept, recv,
544         send, select, getsockname, getpeername, setsockopt, closesocket.
545         Remove wrapped_socket, wrapped_bind, wrapped_connect, wrapped_listen,
546         wrapped_accept, wrapped_recv, wrapped_send, wrapped_select,
547         wrapped_getsockname, wrapped_getpeername, wrapped_setsockopt,
548         wrapped_closesocket prototypes.
549
550         * mswindows.c:  Remove wrapped_socket, wrapped_bind, wrapped_connect,
551         wrapped_listen, wrapped_accept, wrapped_recv, wrapped_send,
552         wrapped_select, wrapped_getsockname, wrapped_getpeername,
553         wrapped_setsockopt, wrapped_closesocket functions.  Remove WRAP macro.
554
555         * host.h [WINDOWS]: Include <winsock2.h> not <winsock.h>.
556
557         * connect.c: Include <sys/socket.h> and <sys/select.h> on any platform,
558         gnulib ensures they exist.  Remove `read', `write', `close' macros.
559
560         * Makefile.am: Copy build_info.c.in only if we are working in a VPATH.
561         (AM_CPPFLAGS): Add directory with generated gnulib files.
562
563 2010-05-06  Giuseppe Scrivano  <gscrivano@gnu.org>
564
565         * Makefile.am (build_info.c): Generate build_info.c in the builddir,
566         not srcdir.
567
568 2010-05-05  Giuseppe Scrivano  <gscrivano@gnu.org>
569
570         * http.c (gethttp): Give a nicer message on a malformed status line.
571
572 2010-05-04  Giuseppe Scrivano  <gscrivano@gnu.org>
573
574         * http.c (gethttp): Check `resp_status' return code and handle
575         errors.
576
577 2010-05-01  Giuseppe Scrivano <gscrivano@gnu.org>
578
579         * http.c (request_send): Specify 1.1 as HTTP version for requests.
580         (skip_short_body): Accept new parameter `chunked'.  New variable
581         `remaining_chunk_size'.  Handle the chunked transfer encoding.
582         (gethttp): New variable `chunked_transfer_encoding`.  Set `keepalive'
583         by default to true.  Check if the server is using the chunked transfer
584         encoding.
585
586         * retr.h: Define `rb_chunked_transfer_encoding'.
587
588         * retr.c (fd_read_body): New variable `chunked'.  New variable
589         `remaining_chunk_size'.  Handle the chunked transfer encoding.
590
591 2010-03-04  Steven Schubiger  <stsc@member.fsf.org>
592
593         * ftp.c (ftp_loop_internal): Omit input file from being
594         deleted after retrieval.
595
596         * retr.c (input_file_url): New function.
597
598         * retr.h: Add declaration for input_file_url.
599
600 2010-03-02  Steven Schubiger  <stsc@member.fsf.org>
601
602         * retr.c (retrieve_from_file): Improve checking for a URL
603         by invoking url_valid_scheme instead of url_has_scheme.
604
605         * url.c (url_valid_scheme): New function.
606
607         * url.h: Add declaration for url_valid_scheme.
608
609 2010-03-02  Steven Schubiger  <stsc@member.fsf.org>
610
611         * retr.c (retrieve_from_file): Free memory of input file.
612
613 2010-03-01  Steven Schubiger  <stsc@member.fsf.org>
614
615         * retr.c (retrieve_url): Retrieve the local filename from ftp_loop.
616         (retrieve_from_file): Return if there's no input file.
617
618         * ftp.c (ftp_loop_internal): Duplicate the local filename into
619         retrieve_url's scope when a valid reference is being passed.
620         (ftp_loop): Call ftp_loop_internal here with passing a
621         reference to the local filename, elsewhere with NULL.
622
623         * ftp.h: Adjust declaration of ftp_loop.
624
625 2010-01-27  Paul Townsend  <aab@purdue.edu>  (tiny change)
626
627         * retr.c (fd_read_body): Be sure to measure timer when time has
628         elapsed, too, not just when we've made progress.
629
630 2010-01-13  Micah Cowan  <micah@cowan.name>
631
632         * openssl.c: Fixed some mixed declarations-and-code.
633
634 2010-01-09  Micah Cowan  <micah@cowan.name>
635
636         * init.c, main.c, http.c, ftp.c, options.h: Renamed
637         --no-match-server-timestamps to --no-use-server-timestamps, and
638         add it to print_help.
639
640 2010-01-09  David Holman  <holman.david@gmail.com>  (tiny change)
641
642         * init.c, main.c, http.c, ftp.c, options.h: Added support for
643         --no-match-server-timestamps.
644
645 2009-12-03  Peter Rosin  <peda@lysator.liu.se>
646
647         * snprintf.c (dopr): Output %p as unsigned.
648
649 2010-01-09  Jeremy Olexa  <darkside@gentoo.org>  (tiny change)
650
651         * init.c: Deal with systems which provide PATH_MAX in
652         sys/param.h rather than limits.h.
653
654 2009-10-09  Steven Schweda  <sms@antinode.info>
655
656         * utils.c: Added characters " : \ | to the list of normal
657         caret-escaped (ODS5) characters in the char_prop[] table.
658
659 2009-09-22  Arvind Jamuna Dixit  <ardsrk@gmail.com>
660
661         * http.c (extract_param, parse_content_disposition): Support
662         RFC 2231 while parsing Content-Disposition header
663
664 2009-10-24  Petr Pisar  <petr.pisar@atlas.cz>
665
666         * openssl.c: Implement support for (multiple) subjectAltNames in
667         X509 certificates, not just the commonName.
668
669 2009-10-09  Micah Cowan  <micah@cowan.name>
670
671         * main.c: Fix declaration of compiled_features.
672
673         * build_info.c.in: Adapt to new input format. Added a check for
674         large-file support. Replaced the "openssl" and "gnutls"
675         advertisements with a single "ssl/foo" advertisement.
676
677 2009-09-30  Micah Cowan  <micah@cowan.name>
678
679         * sysdep.h: Unconditionally include stdbool.h (gnulib has it for
680         systems that don't supply it.)
681
682         * vms.c: Added functions vms_basename(), used to extract the
683         bare executable name from argv[0], and vms_getpass(), a
684         VMS-specific replacement for GNU getpass().
685
686          vms.c: Added global string constants: compilation_string
687         (NULL), link_string (NULL), and version_string (real).
688
689 2009-09-24  Micah Cowan  <micah@cowan.name>
690
691         * vms.c: Moved from vms/vms.c.
692
693         * sysdep.h: Use proper prototypes for snprintf, vsnprintf (thanks
694         to Steven Schweda).
695
696 2009-09-24  Steven Schweda  <sms@antinode.info>
697
698         * main.c (print_version): Remove VMS-conditional build info
699         string; the new VMS builders use OS_TYPE.
700
701         * ftp.c (getftp): Fix accidental use of target -> targ.
702
703 2009-09-24  Micah Cowan  <micah@cowan.name>
704
705         * host.c (host_errstr): host_errstr should return const char *.
706
707 2009-09-22  Micah Cowan  <micah@cowan.name>
708
709         * Makefile.am (version.c): Explicitly tell Mercurial where the
710         top-source repository should be, so it doesn't accidentally use
711         the repository for a containing directory (for instance, if the
712         user's home directory is managed by a Mercurial repo). Also
713         ensures we find the repository, even if the build directory is
714         outside the source directory.
715
716         * wget.h: define WINDOWS if _WIN32 or __WIN32__ is defined, but
717         not __CYGWIN__.
718
719         * mswindows.c (xsleep): Check for availability of the sleep
720         function, in addition to the usleep function.
721         (get_winsock_error, windows_strerror): Removed (gnulib already
722         supplies this functionality).
723
724         * mswindows.h [NEED_GAI_STRERROR]: define gai_strerror
725         to (gnulib's) strerror, rather than windows_strerror. Removed
726         error macro definitions provided by gnulib.
727         (windows_strerror): Removed (gnulib already supplies this
728         functionality).
729
730         * host.c: Don't declare h_errno when building on Windows.
731
732         * Makefile.am (LIBS): Added @W32LIBS@.
733         (EXTRA_wget_SOURCES): Removed (it's in LIBOBJ now).
734         (version.c): Removed dependency on $(LDADD), since it may include
735         dependencies that are not part of the Wget sources (-lwsock32, for
736         instance).
737
738         * openssl.c (ssl_check_certificate): Avoid reusing the same buffer
739         space for successive quoted arguments. Thanks to Steven Schweda
740         for pointing out the problem.
741
742 2009-09-21  Micah Cowan  <micah@cowan.name>
743
744         * progress.c (update_speed_ring): "the the" -> "the".
745
746         * css-url.c, iri.c, mswindows.c: Removed assert.h inclusion (not
747         using it).
748
749 2009-09-11  Steven Schweda  <sms@antinode.info>
750
751         * utils.c, utils.h (fopen_excl): Make second argument an int,
752         rather than a bool (so it can handle the appropriate VMS version
753         of the flag).
754
755         * main.c (print_version): Don't print LOCALEDIR unless NLS is
756         enabled.
757
758         * http.c (gethttp): Pass FOPEN_BIN_FLAG, instead of true.
759
760         * ftp.c (ftp_retrieve_glob): Cast strcmp to assign to cmp, for a
761         silly HP build environment.
762
763 2009-09-08  Steven Schubiger  <stsc@member.fsf.org>
764
765         * main.c, init.c: Mark the --preserve-permissions and
766         --html-extension option as deprecated.
767
768 2009-09-06  Micah Cowan  <micah@cowan.name>
769
770         * ftp.c (getftp, ftp_loop_internal): Separate "len" input/output
771         parameter (with different meanings for input and output), into two
772         separate parameters, one input (passed_expected_bytes) and one
773         output (qtyread). Fixes bug #26870.
774
775 2009-09-05  Steven Schubiger  <stsc@member.fsf.org>
776
777         * retr.h: Declare set_local_file() to avoid build warnings.
778
779 2009-09-05  Gisle Vanem  <gvanem@broadpark.no>
780
781         * connect.c, init.c, main.c, openssl.c, options.h:  Replace
782         "ifdef MSDOS" with "ifdef USE_WATT32" since DOS-targets in fact
783         use the Watt-32 tcp/ip stack.
784
785 2009-09-04  Micah Cowan  <micah@cowan.name>
786
787         * Makefile.am: Move build_info.c to wget_SOURCES from
788         nodist_wget_SOURCES, reduce dependencies, and invoke build_info.pl
789         in its new home, $(top_srcdir)/build-aux.
790
791 2009-09-03  Micah Cowan  <micah@cowan.name>
792
793         * ftp-ls.c (ftp_parse_vms_ls): Replace use of localtime_r with
794         localtime, as not all platforms have localtime_r.
795
796         * Makefile.am (wget_SOURCES): Rearranged some of the file order,
797         so .c files and .h files are apart. Added gettext.h, so that it
798         shows up in the dist.
799
800 2009-09-02  Micah Cowan  <micah@cowan.name>
801
802         * gettext.h: Refreshed from gettext 0.17.
803
804         * test.c: Added definition of program_name variable, required by
805         lib/error.c (libgnu.a). Doesn't cause problems until you try to
806         build on a non-GNU system...
807
808         * build_info.c.in: Removed useless "+gettext" feature ad.
809
810 2009-08-29  Steven Schubiger  <stsc@member.fsf.org>
811
812         * convert.c (local_quote_string): Percent-encode semicolons
813         in local file strings.
814
815 2009-08-27  Micah Cowan  <micah@cowan.name>
816
817         * wget.h (uerr_t): added new VERIFCERTERR code for SSL certificate
818         problems. Marked exit codes that are defined but never used (at
819         least, the ones I could find).
820
821         * retr.c, retr.h (retrieve_url): Added a new boolean argument to
822         determine whether an exit status should be recorded.
823         (retrieve_from_file): Adjust to new retrieve_url signature.
824
825         * res.c (res_retrieve_file): Don't have retrieve_url record an
826         exit status for robots.txt.
827
828         * recur.c (retrieve_tree): Adjust to new retrieve_url signature.
829
830         * main.c (main): Use the exit status stored by retrieve_url.
831
832         * http.c (gethttp): Distinguish certificate verification problems
833         from SSL connection issues.
834         (http_loop): Handle newly-created VERIFCERTERR error code.
835
836         * exits.c, exits.h: Newly added.
837
838         * Makefile.am (wget_SOURCES): Add exits.c and exits.h.
839
840 2009-08-27  Micah Cowan  <micah@cowan.name>
841
842         * http.c (gethttp): Make sure Wget heeds cookies when they
843         are sent with a 401 response; or any other sort of response for
844         that matter (#26775).
845
846 2009-08-19  Micah Cowan  <micah@cowan.name>
847
848         * openssl.c (ssl_check_certificate): Only warn about an attack if
849         the hostname would otherwise have matched. Also some formatting
850         cleanup.
851
852 2009-08-19  Joao Ferreira  <joao@joaoff.com>
853
854         * openssl.c (ssl_check_certificate): Detect embedded NUL
855         characters in the SSL certificate common name.
856
857 2009-08-17  Tony Lewis  <tlewis@exelana.com>
858
859         * http.c (gethttp): Ensure that we parse Content-Length before we
860         attempt to refer to its value. Without this fix, NTLM support was
861         completely buggered. #27192
862
863 2009-08-09  Michael Baeuerle  <michael.baeuerle@gmx.net>
864
865         * ftp.c: #include <strings.h> for strcasecmp.
866
867 2009-07-28  Micah Cowan  <micah@cowan.name>
868
869         * main.c (option_data): Rename --html-extension to
870         --adjust-extension.
871         (print_help): Ditto.
872
873         * options.h (struct option): Rename html_extension to
874         adjust_extension.
875         * http.c (gethttp): Ditto.
876         * convert.c (local_quote_string): Ditto.
877
878         * init.c (commands): Add "adjustextension", and reflect rename
879         change for opt.adjust_extension, for both "adjustextension" and
880         "htmlextension".
881
882 2009-07-27  Micah Cowan  <micah@cowan.name>
883
884         * options.h (struct options): Added restrict_files_nonascii
885         boolean field.
886
887         * url.c (FILE_CHAR_TEST): Add check for chars outside the ASCII
888         range.
889
890         * init.c (defaults): Add restrict_files_nonascii to initialization.
891         (cmd_spec_restrict_file_names): Allow parsing of "ascii" keyword.
892
893 2009-07-27  Marcel Telka  <marcel@telka.sk>
894
895         * iri.c (do_conversion): Typo: invalide -> invalid
896
897 2009-07-27  Petr Pisar  <petr.pisar@atlas.cz>
898
899         * main.c (print_help): Fixed a couple typos.
900
901 2009-07-26  Micah Cowan  <micah@cowan.name>
902
903         * main.c (option_data): Rename --locale option to --local-encoding
904         (print_help): Document --no-iri, --local-encoding, and
905         --remote-encoding, within usage message. Remove defunct
906         --preserve-permissions.
907
908 2009-07-23  Micah Cowan  <micah@cowan.name>
909
910         * progress.c (get_eta): Change "Translation note" in comment to
911         "TRANSLATORS", so it actually appears in wget.pot.
912
913 2009-07-06  Micah Cowan  <micah@cowan.name>
914
915         * main.c (print_help): Improve documentation of --base.
916
917 2009-07-05  Micah Cowan  <micah@cowan.name>
918
919         * html-url.c (tag_handle_meta): Handle meta name="robots"
920         properly: deal with whitespace, commas after...
921
922         * netrc.c (parse_netrc): Rename local-scope variable "quote" to
923         "qmark", to avoid conflict with the function name.
924
925 2009-07-05  Petr Pisar  <petr.pisar@atlas.cz>
926
927         * main.c (print_version): Mark initial line for translation, along
928         with (env), (user), and (system). Change copyright year to 2009.
929
930         * http.c (http_loop): Space after colon.
931
932         * gnutls.c (ssl_check_certificate): Use quote function, rather
933         than explicit quotes.
934
935 2009-07-05  Micah Cowan  <micah@cowan.name>
936
937         * Makefile.am (version.c): Add dependency on configure.ac.
938
939         * iri.c: Mark some strings for translation.
940
941 2009-07-04  Steven Schweda  <sms@antinode.info>
942
943         * wget.h (ORIG_SFX): Macro added, to supply an alternative "_orig"
944         suffix on VMS.
945
946         * connect.c, host.c, host.h, main.c: Include "vms_ip.h" rather
947         than <netdb.h> on VMS systems.
948
949         * convert.c (write_backup_file): Use "_orig" rather than ".orig"
950         on VMS.
951
952         * ftp-basic.c (ftp_list): Don't use LIST -a on VMS servers.
953
954         * ftp.c [__VMS]: Include "vms.h"
955         * ftp.c (getftp): Disable some unhelpful "for VMS" code. Pass the
956         OS type to ftp_list.
957         (getftp) [__VMS]: Alter the filename as required, and invoke fopen
958         with extra optional arguments.
959         (ftp_retrieve_list): Set permissions before setting the times.
960
961         * ftp-ls.c [__VMS]: Various improvements.
962
963         * http.c (SET_USER_AGENT): Added. Include operating-system info in
964         the User-Agent header.
965         (gethttp): Use ORIG_SFX macro.
966         (gethttp) [__VMS]: invoke fopen with extra arguments to
967         communicate file type.
968         (http_loop): Add cast to time_t.
969
970         * init.c (wgetrc_user_file_name) [__VMS]: Adjustments for where to
971         find the .wgetrc.
972
973         * log.c: Adjustments to improve handling of log files on VMS.
974
975         * main.c [__VMS]: Added --ftp-stmlf option (and associated
976         documentation). Adjust description of backup-suffixes, as they now
977         differ for VMS.
978         (print_help, print_version): Include OS type in version
979         information.
980         (main) [__VMS]: Invoke fopen with extra options, to specify file
981         type information.
982
983         * netrc.c (search_netrc) [__VMS]: Fix .netrc-finding.
984
985         * openssl.c, openssl.h (ssl_connect_wget): Renamed from ssl_connect.
986
987         * options.h (struct options): Add ftp_stmlf field.
988
989         * retr.c (write_data) [__VMS]: Avoid fflush.
990
991         * url.c [__VMS]: Include vms.h.
992         * url.c (url_file_name) [__VMS]: Handle naming as required for VMS.
993
994         * utils.c [__VMS]: Include vms.h. Various added facilities for VMS
995         needs.
996
997 2009-07-04  Micah Cowan  <micah@cowan.name>
998
999         * main.c (print_version): Allow localization of the version-info
1000         labels, eschew attempts at alignment (which is complicated when
1001         handling translated strings), and avoid using printf() with
1002         variable-stored format strings that lack conversion
1003         specifications.
1004         (format_and_print_line): For similar reasons, don't calculate
1005         line-continuation tabulation based on the number of bytes in a
1006         string.
1007
1008 2009-07-04  Steven Schubiger  <stsc@member.fsf.org>
1009
1010         * url.c (url_parse): If an URL scheme is invalid, distinguish
1011         between an unsupported or missing scheme.
1012
1013         * url.c: Add a "missing scheme" entry to parse_errors.
1014
1015 2009-07-03  Micah Cowan  <micah@cowan.name>
1016
1017         * iri.h (iri_dup): Provide macro definition for when IRIs are
1018         disabled.
1019
1020         * Makefile.am (LIBS): Added @LIBICONV@.
1021         (wget_SOURCES): Added iri.h.
1022         (EXTRA_wget_SOURCES): Added iri.c, so it gets packaged even if IRI
1023         support was disabled.
1024
1025 2009-07-02  Micah Cowan  <micah@cowan.name>
1026
1027         * recur.c (url_enqueue): Quote enqueue/dequeue debug messages.
1028
1029         * html-url.c (append_url): Change "merge()" quoting style from
1030         locale_quoting_style to escape_quoting_style.
1031
1032 2009-07-01  Micah Cowan  <micah@cowan.name>
1033
1034         * retr.c (retrieve_url): Use the existing "redirect" label,
1035         instead of superfluous "second_try". Removed no-longer-accurate
1036         debug statement. Use the "newloc" parameter to store the fallback
1037         URL, when IRI version was rejected.
1038
1039         * recur.c (retrieve_tree): Always use the parsed URL for tracking
1040         the Referer, since that's the one we actually requested (if
1041         there's a difference in terms of percent-encodings and such).
1042
1043 2009-07-01  Steven Schubiger  <stsc@member.fsf.org>
1044
1045         * Makefile.am: Add a rule to generate build_info.c and list
1046         the build_info.c.in file in EXTRA_DIST. Adjust elsewhere
1047         where needed.
1048
1049         * build_info.c: Remove this static source file.
1050
1051         * build_info.c.in: Data for generation of build_info.c.
1052
1053 2009-06-29  Micah Cowan  <micah@cowan.name>
1054
1055         * html-url.c (append_url): Quote some more arguments that might
1056         contain characters that are inappropriate to display for the
1057         current locale.
1058
1059         * retr.c (retrieve_from_file): Be sure to pass iri information
1060         when parsing an input-fle url, and be sure to hand a clean iri
1061         struct, off to retrieve_tree and retrieve_url.
1062
1063         * iri.c, iri.h (iri_dup): Added.
1064
1065         * retr.c (retrieve_url): Re-parse for IRI fallback.
1066
1067         * main.c (main): Set up iri before the url_parse invocation (so we
1068         can use it).
1069
1070 2009-06-20  Jay Krell  <jay.krell@cornell.edu>
1071
1072         * sysdep.h (_ALL_SOURCE): (small change) Define the _ALL_SOURCE
1073         macro on INTERIX systems. (I switched the location from ftp.c to
1074         sysdep.h --mjc)
1075
1076 2009-06-15  Micah Cowan  <micah@cowan.name>
1077
1078         * ftp.c (getftp): If we can't accept the connection, return
1079         CONERROR, not whatever the contents of err happens to be. Fixes
1080         bug #25015.
1081
1082         * retr.c (fd_read_body): Make both args to progress_create
1083         consistent, resulting in an accurate progress display. Fixes bug
1084         #24948.
1085
1086 2009-06-14  Micah Cowan  <micah@cowan.name>
1087
1088         * Makefile.am (wget_SOURCES): css-tokens.h needs to ship with
1089         dist, too.
1090
1091 2009-06-13  Micah Cowan  <micah@cowan.name>
1092
1093         * init.c: Rename setval_internal_wrapper to setval_internal_tilde,
1094         ensure we don't "replace" the tilde unless it's actually
1095         present. Clean up some minor GNU style issues.
1096
1097 2009-06-13  Julien Pichon  <julienpichon7@gmail.com>
1098
1099         * init.c: Handle tilde-expansion in wgetrc commands, without
1100         resorting to setting/unsetting globals to change behavior in one
1101         call location.
1102
1103 2009-06-12  Micah Cowan  <micah@cowan.name>
1104
1105         * host.c: Include <sys/types.h> before <sys/socket.h>. Not
1106         required by POSIX any more, but some older systems (such as
1107         FreeBSD 4.1) still need it, and it doesn't seem like it could
1108         hurt...
1109
1110         * build_info.c (library): Handle "https" as a feature in its own
1111         right, apart from "gnutls" and "openssl".
1112
1113         * host.c: Declare h_errno if no declaration is provided. Idea
1114         thanks to Maciej W. Rozycki.
1115
1116 2009-06-11  Xin Zou  <zouxin2008@gmail.com>
1117
1118         * http.c (gethttp): Fix some memory leaks.
1119
1120 2009-06-11  Micah Cowan  <micah@cowan.name>
1121
1122         * http.c (http_atotm): Handle potential for setlocale's return
1123         value to be static storage. Thanks to Benjamin Wolsey
1124         <bwy@benjaminwolsey.de>.
1125
1126         * sysdep.h: Need NAMESPACE_TWEAKS on non-Linux glibc-based
1127         systems, too. Thanks to Robert Millan.
1128
1129 2009-05-28  Steven Schubiger  <stsc@member.fsf.org>
1130
1131         * ftp.c (ftp_get_listing): Update the "listing file"
1132         string after calling ftp_loop_internal().
1133
1134 2009-05-27  Steven Schubiger  <stsc@member.fsf.org>
1135
1136         * ftp.c (ftp_get_listing): Duplicate the "listing file"
1137         string to avoid memory corruption when FOPEN_EXCL_ERR is
1138         encountered.
1139
1140 2009-05-17  Steven Schubiger  <stsc@member.fsf.org>
1141
1142         * progress.c (eta_to_human_short): Fix the remaining hours
1143         to be displayed. Spotted by Tadeu Martins (#26411).
1144
1145 2009-04-24  Micah Cowan  <micah@cowan.name>
1146
1147         * hash.c: Change stdint.h inclusion to use HAVE_STDINT_H, not C99
1148         check.
1149
1150         * connect.c: stdint.h inclusion added.
1151
1152         Thanks to Markus Duft <mduft@gentoo.org> for a similar patch.
1153
1154 2009-04-20  Micah Cowan  <micah@cowan.name>
1155
1156         * Makefile.am (version.c): Fix unportable use of "echo -n".
1157
1158 2009-04-13  Steven Schubiger  <stsc@member.fsf.org>
1159
1160         * ftp.c (ftp_retrieve_list): Move the duplicated code that
1161         determines the local file to a function.
1162
1163         * http.c (http_loop): Likewise.
1164
1165         * retr.c (set_local_file): New function.
1166
1167 2009-04-11  Steven Schubiger  <stsc@member.fsf.org>
1168
1169         * init.c (initialize): Run a custom SYSTEM_WGETRC when
1170         provided as an environment variable.
1171
1172 2009-02-27  Gisle Vanem  <gvanem@broadpark.no>
1173
1174         * main.c (main): "freopen (NULL,.." causes an assertion in MSVC
1175         debug-mode.  I.e. NULL isn't legal. But the "CONOUT$" device works
1176         fine.
1177
1178 2009-02-27  Steven Schubiger  <stsc@member.fsf.org>
1179
1180         * ftp.c (ftp_loop_internal): Don't claim for FTP retrievals
1181         when writing to standard output either that the document
1182         has been saved. Addresses bug #20520 again.
1183
1184 2009-02-21  Steven Schubiger  <stsc@member.fsf.org>
1185
1186         * http.c (http_loop): When a document is written to
1187         standard output, don't claim it has been saved to a file.
1188         Addresses bug #20520.
1189
1190 2009-02-18  Steven Schubiger  <stsc@members.fsf.org>
1191
1192         * recur.h: Remove the dangling declaration for recursive_cleanup().
1193
1194 2009-02-01  Gerardo E. Gidoni  <gerel@gnu.org>
1195
1196         * main.c, recur.c, recur.h, res.c, retr.c, retr.h: restructured code to
1197         avoid multiple 'url_parse' calls.
1198
1199 2008-11-13  Micah Cowan  <micah@cowan.name>
1200
1201         * http.c (gethttp): Don't do anything when content-length >= our
1202         requested range.
1203
1204 2008-11-27  Saint Xavier  <wget@sxav.eu>
1205
1206         * http.c (gethttp): Move authentication code before filename
1207         allocation avoiding fallbacking on default filename because
1208         "Content-Disposition" header wasn't present before authentcation
1209         has been completed. Fixes bug #24862.
1210
1211 2008-11-16  Steven Schubiger  <stsc@members.fsf.org>
1212
1213         * main.c: Declare and initialize the numurls counter.
1214
1215         * ftp.c, http.c: Make the counter visible here and use it.
1216
1217         * options.h: Remove old declaration from options struct.
1218
1219 2008-11-15  Steven Schubiger  <stsc@members.fsf.org>
1220
1221         * init.c (defaults): Set default waitretry value.
1222
1223 2008-11-14  Steven Schubiger  <stsc@members.fsf.org>
1224
1225         * main.c (format_and_print_line): Use a custom format
1226         string for printing leading spaces.
1227
1228 2008-11-12  Micah Cowan  <micah@cowan.name>
1229
1230         * ftp-ls.c (ftp_index): HTML-escape dir name in title, h1, a:href.
1231
1232 2008-11-12  Alexander Belopolsky  <alexander.belopolsky@gmail.com>
1233
1234         * url.c, url.h (url_escape_unsafe_and_reserved): Added.
1235
1236         * ftp-ls.c (ftp_index): URL-escape, rather than HTML-escape, the
1237         filename appearing in the link.
1238
1239 2008-11-12  Steven Schubiger  <stsc@members.fsf.org>
1240
1241         * main.c (print_version): Hand the relevant
1242         xstrdup/xfree calls back to format_and_print_line().
1243
1244 2008-11-11  Steven Schubiger  <stsc@members.fsf.org>
1245
1246         * main.c (format_and_print_line): Move both the memory
1247         allocating and freeing bits upwards to print_version().
1248
1249 2008-11-10  Saint Xavier  <wget@sxav.eu>
1250
1251         * http.c: Make --auth-no-challenge works with user:pass@ in URLs.
1252
1253 2008-11-05  Micah Cowan  <micah@cowan.name>
1254
1255         * ftp.c (print_length): Should print humanized "size remaining"
1256         only when it's at least 1k.
1257
1258 2008-10-31  Micah Cowan  <micah@cowan.name>
1259
1260         * main.c (print_version): Add information about the mailing list.
1261
1262 2008-10-31  Alexander Drozdov  <dzal_mail@mtu-net.ru>
1263
1264         * retr.c (fd_read_hunk): Make assert deal with maxsize == 0.
1265
1266         * ftp-ls.c (clean_line): Prevent underflow on empty lines.
1267
1268 2008-10-26  Gisle Vanem  <gvanem@broadpark.no>
1269
1270         * main.c (format_and_print_line): Put variables on top of
1271         blocks (not all compilers are C99). Add an extra '\n' if
1272         SYSTEM_WGETRC isn't defined and printed.
1273
1274 2008-09-09  Gisle Vanem  <gvanem@broadpark.no>
1275
1276         * url.c (url_error): Use aprintf, not asprintf.
1277
1278 2008-09-09  Micah Cowan  <micah@cowan.name>
1279
1280         * init.c (home_dir): Save the calculated value for home,
1281         to avoid duplicated work on repeated calls.
1282         (wgetrc_file_name) [WINDOWS]: Define and initialize home var.
1283
1284         * build_info.c, main.c: Remove unnecessary extern vars
1285         system_wgetrc and locale_dir.
1286
1287         * main.c: Define program_name for lib/error.c.
1288
1289 2008-09-02  Gisle Vanem  <gvanem@broadpark.no>
1290
1291         * mswindows.h: Must ensure <stdio.h> is included before
1292         we redefine ?vsnprintf().
1293
1294 2008-08-08  Steven Schubiger  <stsc@members.fsf.org>
1295
1296         * main.c, utils.h: Removed some dead conditional DEBUG_MALLOC code.
1297
1298 2008-08-03  Micah Cowan  <micah@cowan.name>
1299
1300         * main.c (print_help): Added --default-page.
1301
1302 2008-08-01  Joao Ferreira  <joao@joaoff.com>
1303
1304         * init.c, main.c, options.h, url.c: Added option --default-page
1305         to support alternative default names for index.html
1306
1307 2008-08-03  Micah Cowan  <micah@cowan.name>
1308
1309         * build_info.c, css-url.c: #include wget.h, not config.h.
1310
1311 2008-08-03  Steven Schubiger  <stsc@members.fsf.org>
1312
1313         * url.c, url.h (url_error): Better messages for unsupported
1314         schemes, especially https.
1315
1316         * html-url.c, recur.c, retr.c: Adjust to new url_error
1317         invocation, and free result.
1318
1319 2008-07-17  Steven Schubiger  <stsc@members.fsf.org>
1320
1321         * retr.c (retrieve_from_file): When given an URL as input file,
1322         use it as baseref if none was specified and treat the input file
1323         as HTML if its content type is text/html.
1324
1325         * init.c (cleanup): Free the memory associated with the base
1326         option (when DEBUG_MALLOC is defined).
1327
1328 2008-07-02  Xavier Saint  <wget@sxav.eu>
1329
1330         * iri.c, iri.h  : New function idn_decode() to decode ASCII
1331         encoded hostname to the locale.
1332
1333         * host.c : Show hostname to be resolved both in locale and
1334         ASCII encoded.
1335
1336 2008-06-28  Steven Schubiger  <stsc@members.fsf.org>
1337
1338         * retr.c (retrieve_from_file): Allow for reading the links from
1339         an external file (HTTP/FTP).
1340
1341 2008-06-26  Xavier Saint  <wget@sxav.eu>
1342
1343         * iri.c, iri.h : New functions locale_to_utf8() and
1344         idn_encode() adding basic capabilities of IRI/IDN.
1345
1346         * url.c : Convert URLs from locale to UTF-8 allowing a basic
1347         support of IRI/IDN
1348
1349 2008-06-25  Steven Schubiger  <stsc@members.fsf.org>
1350
1351         * ftp.c (getftp): When spidering a FTP URL, emit a diagnostic
1352         message if the remote file exists.
1353
1354 2008-06-24  Steven Schubiger  <stsc@members.fsf.org>
1355
1356         * http.c (http_loop): Replace escnonprint() occurence with
1357         a quotearg_style() call.
1358
1359 2008-06-24  Micah Cowan  <micah@cowan.name>
1360
1361         * ftp-ls.c (ftp_index): Don't assume time_t* is compatible with
1362         long*. Fixes crash on Windows, and probably other systems.
1363
1364 2008-06-22  Steven Schubiger  <stsc@members.fsf.org>
1365
1366         * http.c: Explicitly initialize and deallocate the message
1367         string used by the -nv --spider functionality.
1368
1369 2008-06-22  Steven Schubiger  <schubiger@gmail.com>
1370
1371         * http.c: Make -nv --spider include the file's name when it
1372         exists.
1373
1374 2008-06-22  Micah Cowan  <micah@cowan.name>
1375
1376         * Makefile.am (version.c): Fixed version string invocation so it
1377         once again can't result in unterminated strings, made all the
1378         string vars pointers-to-const, and moved line lengths
1379         below 80 (in Makefile.am, not in version.c).
1380
1381 2008-06-19  Xavier Saint  <wget@sxav.eu>
1382
1383         * iri.c, iri.h : New function check_encoding_name() as
1384         a preliminary encoding name check.
1385
1386         * main.c, iri.c : Make use of check_encoding_name().
1387
1388 2008-06-19  Xavier Saint  <wget@sxav.eu>
1389
1390         * iri.c : Include missing stringprep.h file and add a
1391         cast.
1392
1393         * init.c : set a default initial value for opt.enable_iri,
1394         opt.locale and opt.encoding_remote.
1395
1396 2008-06-19  Xavier Saint  <wget@sxav.eu>
1397
1398         * iri.c, iri.h : Add a new function find_locale() to find
1399         out the local system encoding.
1400
1401         * main.c : Make use of find_locale().
1402
1403 2008-06-19  Xavier Saint  <wget@sxav.eu>
1404
1405         * html-url.c : Add "content-type" meta tag parsing for
1406         retrieving page encoding.
1407
1408         * iri.h : Make no-op version of parse_charset() return
1409         NULL.
1410
1411 2008-06-16  Micah Cowan  <micah@cowan.name>
1412
1413         * http.c (http_loop): When hstat.len is higher than the
1414         successfully completed content's length, but it's because we
1415         _set_ it that way, don't abort.
1416
1417 2008-06-14  Xavier Saint  <wget@sxav.eu>
1418
1419         * iri.c, iri.h : New files.
1420
1421         * Makefile.am : Add files iri.h and conditional iri.c.
1422
1423         * build_info.c : Add compiled feature "iri".
1424
1425         * http.c : include iri.h and parse charset from Content-Type
1426         header.
1427
1428         * init.c, main.c, options.h : if an options isn't supported
1429         at compiled time, don't get rid off it and show a dummy
1430         message instead if they are used.
1431
1432 2008-06-13  Micah Cowan  <micah@cowan.name>
1433
1434         * build_info.c: ENABLE_NTLM, not HAVE_NTLM; distinguish OpenSSL
1435         from "ssl".
1436
1437 2008-06-13  Madhusudan Hosaagrahara <com.gmail.hrmadhu>
1438
1439         * Makefile.am, main.c, init.c, init.h, build_info.c: Adds build
1440         information to the --version command line option. Fixes bug
1441         #20636.
1442
1443 2008-06-01  Micah Cowan  <micah@cowan.name>
1444
1445         * main.c [WINDOWS]: Reopen stdout in binary mode, when -O - is
1446         given.
1447
1448 2008-05-31 Micah Cowan  <micah@cowan.name>
1449
1450         * html-url.c, http.c: Avoid casts in a couple spots.
1451
1452 2008-05-30 Henri Häkkinen  <henux@users.sourceforge.net>
1453
1454         * cookies.c, ftp-basic.c, hash.c, html-url.c, http-ntlm.c, http.c,
1455         init.c, log.c, main.c, progress.c, ptimer.c, spider.c, url.c,
1456         utils.c: Minor changes to silence warnings when using -Wall.
1457
1458 2008-05-26  Steven Schubiger  <schubiger@gmail.com>
1459
1460         * ftp.c (getftp): Replace last remaining invocation of escnonprint
1461         with gnulib quote.
1462
1463 2008-05-19  Micah Cowan  <micah@cowan.name>
1464
1465         * main.c (main): Password prompt should be done only once (not
1466         once per argument), and should be done prior to the background
1467         fork.
1468
1469 2008-05-17  Steven Schubiger  <schubiger@gmail.com>
1470
1471         * init.c (defaults): Set the preferred IP family to `none' by
1472         default.
1473
1474 2008-05-17  Kenny Parnell  <k.parnell@gmail.com>
1475
1476         (cmd_spec_prefer_family): Initialize prefer_family to prefer_none.
1477
1478 2008-05-17  Micah Cowan  <micah@cowan.name>
1479
1480         * main.c (main): Handle Ctrl-D on command-line.
1481
1482 2008-05-15  Steven Schubiger  <schubiger@gmail.com>
1483
1484         * ftp.c (getftp): Verify that the file actually exists in FTP, by
1485         checking it against the listing.
1486
1487 2008-05-15  Micah Cowan  <micah@cowan.name>
1488
1489         * main.c (prompt_for_password): Use the quote module.
1490
1491 2008-05-14  Micah Cowan  <micah@cowan.name>
1492
1493         * ftp.c (ftp_retrieve_list): Symlinks and other filenames
1494         should be fully quoted.
1495
1496 2008-05-12  Micah Cowan  <micah@cowan.name>
1497
1498         * main.c (main): Downgrade "-N with -O" to a warning, and switch
1499         it off to avoid confusing messages.
1500
1501 2008-04-30  Micah Cowan  <micah@cowan.name>
1502
1503         * progress.c (create_image): Fix glitch where too many spaces are
1504         printed on lines that don't display the ETA, in multibyte
1505         locales.
1506
1507 2008-04-30  Steven Schubiger  <stsc@members.fsf.org>
1508
1509         * main.c (main): New code that handles prompting for passwords
1510         when specified explicitly via command-line option (using gnulib's
1511         getpass-gnu module).
1512         (main): Include the getpass header.
1513
1514         * init.c: Add "ask-password" to the list of recognized commands.
1515
1516         * options.h: Add an according boolean member to the options
1517         struct.
1518
1519         * sysdep.h: Comment the defines __EXTENSIONS__ and _GNU_SOURCE
1520         out, because they're now defined independently by config.h.
1521
1522 2008-04-27  Rabin Vincent  <rabin@rab.in>
1523
1524         * http.c (http_loop): Fix return for the case where we don't
1525         download a file because of -nc.
1526
1527 2008-04-27  Micah Cowan  <micah@cowan.name>
1528
1529         * url.c (path_simplify): Go back to allowing leading ".." in
1530         paths, but only for FTP URLs.
1531         (test_path_simplify): Add scheme-specificness to tests, adapt for
1532         mu_run_test.
1533
1534         * test.c (all_tests): Add test_path_simplify.
1535
1536         * main.c (main): Downgrade -r, -p with -O to a warning rather than
1537         an error; elaborate just a bit more for other -O combination
1538         cases.
1539
1540 2008-04-26  Micah Cowan  <micah@cowan.name>
1541
1542         * http.c (gethttp): Move proxy CONNECT handling to below the
1543         retry_with_auth label, to deal with properly reconnecting to
1544         proxies when we need to authenticate.
1545
1546 2008-04-25  Micah Cowan  <micah@cowan.name>
1547
1548         * Makefile.am: -I foo -> -Ifoo.
1549
1550 2008-04-24  Micah Cowan  <micah@cowan.name>
1551
1552         * main.c: Revised usage description of --convert-links to apply
1553         to CSS as well as to HTML.
1554
1555 2008-04-23  Micah Cowan  <micah@cowan.name>
1556
1557         * utils.c (test_dir_matches_p): Added a test for the case
1558         described in issue #20518.
1559
1560 2008-04-22  Micah Cowan  <micah@cowan.name>
1561
1562         * Makefile.am, css.lex, css.l: Renamed css.lex to css.l.
1563         * recur.c (retrieve_tree): Fix typo to allow text/css files to
1564         be parsed.
1565
1566 2008-04-22  Ted Mielczarek  <ted.mielczarek@gmail.com>
1567
1568         * css.lex, css-url.c, css-url.h: Added to implement support for
1569         parsing CSS in Wget.
1570         * convert.c: Convert links in CSS files, too.
1571         * convert.h (convert_options): Added for options link_css_p,
1572         link_expect_css.
1573         * convert.h: Added prototype for new register_css function.
1574         * html-parse.c: Added support for parsing element content, in
1575         addition to tag starts and ends.
1576         * html-parse.h (taginfo): Added delimiter fields for element
1577         content.
1578         * html-url.h: Added.
1579         * html-url.c (append_url): No longer internal-linkage only. Now
1580         takes position and size as explicit parameters.
1581         * html-url.c: Use new html-url.h header, add support for
1582         handling of "style" HTML attributes. Mark URIs obtained from
1583         link tags with rel="stylesheet" with link_expect_css. Adapt
1584         uses of append_url to supply the newly-added parameters for
1585         position and size.
1586         * http.c: Add detection for when the content-type is text/css;
1587         and ensure that such files have the ".css" filename extension,
1588         when --convert-links is active.
1589         * recur.h: Remove declarations for functions found in
1590         html-url.c (moved to html-url.h).
1591         * recur.c: Add support for culling links from CSS files, too,
1592         and tracking for when we're expecting the file to be CSS (even
1593         when its content type isn't text/css).
1594         * retr.c (retrieve_url): Add registration of CSS files.
1595         * wget.h: Added TEXTCSS to dt flags enum.
1596         * Makefile.am: Added css.lex, css-url.c, css-url.h, html-url.h
1597         to wget_SOURCES.
1598
1599 2008-04-22  Jim Paris  <jim@jtan.com>
1600
1601         * openssl.c (ssl_init): Enable combined certificate/key in
1602         single file (apparent regression from ~1.9). Resolves issue
1603         #22767.
1604
1605 2008-04-22  Steven Schubiger  <schubiger@gmail.com>
1606
1607         * http.c (print_response_line): Changed to make responses always
1608         be logged, even in --quiet mode, if --server-response was
1609         specified. This is to bring http.c's handling of the situation
1610         in line with ftp.c's.
1611
1612 2008-04-22  Pranab Shenoy  <pranab.loosinit.shenoy@gmail.com>
1613
1614         * init.c: Added test_commands_sorted unit test to check is
1615         commands are sorted.  Fixes bug #21245.
1616
1617         * test.c: Added test_commands_sorted to the test suite.
1618
1619 2008-04-22  Rabin Vincent  <rabin@rab.in>
1620
1621         * ftp.c (ftp_get_listing): Only remove .listing if it has been
1622         created.
1623
1624 2008-04-22  Alain Guibert  <alguibert+bts@free.fr>
1625
1626         * test.h (mu_run_test): Move declaration before statements, for
1627         C90 conformance. Fixes bug #22789.
1628
1629 2008-04-22  Mike Frysinger  <vapier@gentoo.org>
1630
1631         * Makefile.am: Move @LIBS@ after other libraries, for better
1632         static-linking support. Fixes bug #22143.
1633
1634 2008-04-16  Steven Schubiger  <schubiger@gmail.com>
1635
1636         * ftp.c: Use Gnulib's quote function for printing filenames and
1637         such.
1638         * connect.c: Likewise.
1639         * convert.c: Likewise.
1640         * cookies.c: Likewise.
1641         * ftp-opie.c: Likewise.
1642         * gnutls.c: Likewise.
1643         * init.c: Likewise.
1644         * log.c: Likewise.
1645         * mswindows.c: Likewise.
1646         * openssl.c: Likewise.
1647         * progress.c: Likewise.
1648         * recur.c: Likewise.
1649         * res.c: Likewise.
1650         * utils.c: Likewise.
1651
1652 2008-04-16  Steven Schubiger  <schubiger@gmail.com>
1653
1654         * sysdep.h: Comment the defines __EXTENSIONS__ and _GNU_SOURCE
1655         out, because they're now defined independently by config.h.
1656
1657 2008-04-14  Steven Schubiger  <schubiger@gmail.com>
1658
1659         * http.c: Use Gnulib's quote function for printing filenames and
1660         such.
1661         * wget.h: #include "quote.h".
1662
1663 2008-04-12  Rabin Vincent  <rabin@rab.in>
1664
1665         * mswindows.c (fake_fork_child): Don't create a logfile for
1666         --background when --quiet is used, but not --server-response.
1667         Fixes bug #20917.
1668
1669         * utils.c (fork_to_background): Likewise.
1670
1671 2008-04-12  Micah Cowan  <micah@cowan.name>
1672
1673         * utils.c (aprintf): Minor formatting changes to Alex's code (80-
1674         column limit, concatenated string literals, avoiding nesting
1675         levels), and removed invocation of free (since we're aborting
1676         anyway).
1677
1678 2008-04-11  Alexander Dergachev  <cy6erbr4in@gmail.com>
1679
1680         * utils.c (aprintf): Now we are setting limits (1 Mb) for text
1681         buffer when we use non-C99 vsnprintf.
1682
1683 2008-04-11  Micah Cowan  <micah@cowan.name>
1684
1685         * ftp.c (getftp, ftp_loop_internal): Don't append to an existing
1686         .listing when --continue is used.  Fixes bug #22825. Thanks to
1687         Rabin Vincent <rabin@rab.in> for pointing the way with a
1688         suggested fix!
1689
1690 2008-04-10  Alexander Dergachev  <cy6erbr4in@gmail.com>
1691
1692         * xmalloc.c, xmalloc.h (memfatal): Now exported; accepts an
1693         "unknown" value for the attempted allocation size.
1694         * utils.c (aprintf): Now calls memfatal, instead of aborting.
1695
1696 2008-03-19  Micah Cowan  <micah@cowan.name>
1697
1698         * utils.c (test_dir_matches_p): More tests related for
1699         dir_matches_p.
1700
1701 2008-03-17  Micah Cowan  <micah@cowan.name>
1702
1703         * connect.c: Include sys/time.h to support use of the select
1704         function on older systems.
1705
1706 2008-02-11  Benno Schulenberg  <bensberg@justemail.net>
1707
1708         * http.c: More accurate and descriptive messages for when a file
1709         won't be retrieved during spider-mode.
1710
1711 2008-02-10  Micah Cowan  <micah@cowan.name>
1712
1713         * http.c: Added existence_checked member to the http_stat
1714         struct.
1715         (gethttp): Mark hs->existence_checked when we've checked whether
1716         a file-to-download exists; so we don't check it again if the
1717         connection gets lost (and potentially pick a new "unique" name).
1718         This fixes bug 22251.
1719         * progress.c (create_image): Add space for an extra column in
1720         the "eta" portion of the progress bar image; to deal with
1721         too-long Czech translation.
1722         * main.c, http.c, init.c: Added --auth-no-challenge option, to
1723         bring back 1.10.2 unsafe auth behavior when needed. This fixes
1724         bug #22242.
1725
1726 2008-02-07  Micah Cowan  <micah@cowan.name>
1727
1728         * progress.c (create_image): Remove assertion on exceeding
1729         screen width, which given the less-than-robust code there, can
1730         be broken by a number of factors (such as large file downloads).
1731
1732 2008-02-06  Micah Cowan  <micah@cowan.name>
1733
1734         * progress.c (countcols): Use strlen() when mbtowc or wcwidth
1735         not available (or not using NLS).
1736         * utils.c: Ensure we use single-byte separators when not doing
1737         NLS progress-bars.
1738         * wget.h: Determine whether to use NLS for progress-bars, based
1739         on whether wcwidth and mbtowc are available.
1740
1741 2008-02-03  Micah Cowan  <micah@cowan.name>
1742
1743         * progress.c (create_image): Use number of characters/columns
1744         consumed, rather than number of bytes, to determine how much of
1745         a line we've used. Fixes assertion errors and field alignment
1746         bugs (#22161, #20481)
1747         (get_eta, count_cols): Added to support the changes for
1748         create_image.
1749         * http.c (http_loop): Put no-clobber logic back into http_loop,
1750         before starting to fetch, for when we're not doing
1751         content-disposition.
1752
1753 2008-01-31  Micah Cowan  <micah@cowan.name>
1754
1755         * http.c (gethttp): Don't derive hs->contlen from possibly
1756         invalid/missing Content-Length; instead, get the appropriate
1757         value from the Content-Range header values.
1758         (parse_content_range): Handle '*' instance-length field.
1759
1760 2008-01-25  Micah Cowan  <micah@cowan.name>
1761
1762         * main.c: Added notes to translators regarding (C), diacritics
1763         in names.
1764         * Makefile.am, cmpt.c, connect.c, connect.h, convert.c,
1765         cookies.c, cookies.h, ftp-basic.c, ftp-ls.c, ftp-opie.c, ftp.c,
1766         ftp.h, gen-md5.c, gen-md5.h, gnutls.c, hash.c, hash.h, host.c,
1767         host.h, html-parse.c, html-parse.h, html-url.c, http-ntlm.c,
1768         http-ntlm.h, http.c, http.h, init.c, init.h, log.c, log.h,
1769         main.c, mswindows.c, mswindows.h, netrc.c, netrc.h, openssl.c,
1770         options.h, progress.c, progress.h, ptimer.c, ptimer.h, recur.c,
1771         recur.h, res.c, res.h, retr.c, retr.h, spider.c, spider.h,
1772         ssl.h, sysdep.h, test.c, test.h, url.c, url.h, utils.c,
1773         utils.h, wget.h, xmalloc.c, xmalloc.h: Updated copyright year.
1774
1775 2007-12-10  Micah Cowan  <micah@cowan.name>
1776
1777         * main.c: The option is --content-disposition, not
1778         --no-content-disposition (at the moment).
1779
1780 2007-12-08  Hrvoje Niksic  <hniksic@xemacs.org>
1781
1782         * ftp.c (ftp_retrieve_glob): Print both arguments of fnmatch in
1783         fnmatch error message.
1784         (ftp_retrieve_glob): Don't match with fnmatch if we're only
1785         supposed to get one file.
1786
1787 2007-12-07  Micah Cowan  <micah@cowan.name>
1788
1789         * Makefile.am: Plug in vars to include stuff from
1790         $(top_srcdir)/md5 when appropriate.
1791
1792 2007-12-05  Micah Cowan  <micah@cowan.name>
1793
1794         * utils.c (subdir_p): Handle the case where d1 is "".
1795         * convert.c (convert_all_links): Don't return without
1796         deallocating timer.
1797
1798 2007-11-28  Micah Cowan  <micah@cowan.name>
1799
1800         * Makefile.am, cmpt.c, connect.c, connect.h, convert.c,
1801         convert.h, cookies.c, cookies.h, ftp-basic.c, ftp-ls.c,
1802         ftp-opie.c, ftp.c, ftp.h, gen-md5.c, gen-md5.h, gnutls.c,
1803         hash.c, hash.h, host.c, host.h, html-parse.c, html-parse.h,
1804         html-url.c, http-ntlm.c, http-ntlm.h, http.c, http.h, init.c,
1805         init.h, log.c, log.h, main.c, mswindows.c, mswindows.h,
1806         netrc.c, netrc.h, openssl.c, options.h, progress.c, progress.h,
1807         ptimer.c, ptimer.h, recur.c, recur.h, res.c, res.h, retr.c,
1808         retr.h, safe-ctype.c, safe-ctype.h, spider.c, spider.h, ssl.h,
1809         sysdep.h, test.c, test.h, url.c, url.h, utils.c, utils.h,
1810         wget.h, xmalloc.c, xmalloc.h: Updated license exception for
1811         OpenSSL, per the SFLC.
1812
1813 2007-10-30  Micah Cowan  <micah@cowan.name>
1814
1815         * main.c (main): Declare argv parameter as char **argv, rather
1816         than char *const *argv. This fixes usage of getopt_long,
1817         regardless of whether getopt_long has a constified argv or not.
1818
1819 2007-10-22  Gisle Vanem  <gvanem@broadpark.no>
1820
1821         * mswindows.c: Move INHIBIT_WRAP macro definition up with wget.h
1822         inclusion.
1823
1824 2007-10-18  Steven Schweda  <sms@antinode.org>
1825
1826         * sysdep.h: #include <stdint.h> as well as <inttypes.h>, to work
1827         around a glitch on Tru64 systems.
1828
1829 2007-10-18  Micah Cowan  <micah@cowan.name>
1830
1831         * Makefile.am: version.c should not be distributed. Removed
1832         config-post.h. Add version.c dependency and gnulib include path
1833         for libunittest.a.
1834         * sysdep.h: Got contents of config-post.h
1835         * config-post.h: Removed.
1836         * wget.h: #include "config.h".
1837         * alloca.c, cmpt.c, connect.c, convert.c, cookies.c,
1838         ftp-basic.c, ftp-ls.c, ftp-opie.c, ftp.c, gen-md5.c, gnutls.c,
1839         hash.c, host.c, html-parse.c, html-url.c, http-ntlm.c, http.c,
1840         init.c, log.c, main.c, mswindows.c, netrc.c, openssl.c,
1841         progress.c, ptimer.c, recur.c, res.c, retr.c, spider.c, url.c,
1842         utils.c, xmalloc.c: Use wget.h at very top, and instead of
1843         config.h.
1844
1845 2007-10-15  Micah Cowan  <micah@cowan.name>
1846
1847         * Makefile.am: Remove intermediary hg-id file generation, make
1848         version.c-generation more portable.
1849
1850 2007-10-14  Micah Cowan  <micah@cowan.name>
1851
1852         * cmpt.c, cookies.c, ftp-basic.c, ftp-ls.c, ftp.c, hash.c,
1853         host.c, html-parse.c, html-url.c, http-ntlm.c, http.c, init.c,
1854         log.c, main.c, netrc.c, openssl.c, res.c, url.c, utils.c,
1855         wget.h: Replace uses of ISSPACE, etc with c_isspace, etc.
1856         * gnu-md5.c, gnu-md5.h: Removed, in deference to gnulib.
1857         * Makefile.am: Removed gnu-md5.h from wget_SOURCES.
1858         * gen-md5.c: Changed #inclusion of gnu-md5.h to md5.h (gnulib's).
1859         * recur.c (download_child_p): Print error if unlink of
1860         robots.txt fails.
1861         * main.c (main): --spider or --delete-after now implies
1862         --no-directories (thanks, Josh Williams).
1863
1864 2007-10-14  Joshua David Williams  <yurimxpxman@gmail.com>
1865
1866         * recur.c (download_child_p): Remove robots.txt if
1867         --delete-after or --spider is on.
1868
1869 2007-10-13  Micah Cowan  <micah@cowan.name>
1870
1871         * Makefile.am: Make version.c depend on Wget dependencies (source
1872         files, plus such things as LIBOBJS so we get things like
1873         http-ntlm.c). Removed getopt.[ch], as we're now using gnulib for
1874         these.
1875
1876 2007-10-10  Micah Cowan  <micah@cowan.name>
1877
1878         * http-ntlm.c: Include openssl/opensslv.h explicitly, instead of
1879         hoping it'll be included by accident in openssl/des.h.
1880
1881 2007-10-09  Gisle Vanem  <gvanem@broadpark.no>
1882
1883         * mswindows.c: 'argc' and 'argv' in 'windows_main()' are no longer
1884         needed.  Hence simply the prototype. Free 'exec_name' at exit.
1885
1886 2007-10-09  Micah Cowan  <micah@cowan.name>
1887
1888         * gettext.h: Imported from /usr/share/gettext, fuller handling
1889         of --disable-nls.
1890         * wget.h: Remove logic for handling lack of NLS (now in
1891         gettext.h).
1892         * main.c: Use gettext's ENABLE_NLS rather than HAVE_NLS.
1893         * Makefile.am: added @LIBINTL@ to LIBS (though it probably
1894         belongs in LDADD, along with everything else currently assigned
1895         to LIBS).
1896
1897 2007-10-08  Micah Cowan  <micah@cowan.name>
1898
1899         * http.c (http_loop): Add send_head_first conditional back
1900         around code that needs it, but not around the last-modified
1901         header-parsing stuff this time. Removed no-longer-useful (was it
1902         ever?) restart_loop boolean, continuing unconditionally at end
1903         of send_head_first conditional block (if we haven't jumped out).
1904
1905 2007-10-04  Micah Cowan  <micah@cowan.name>
1906
1907         * http.c (http_loop): We've got_name if content_disposition
1908         support isn't on; make sure we continue properly in that case,
1909         even though we're not sending HEAD.
1910         * Makefile.in: Removed, replaced by Makefile.am.
1911         * Makefile.am: Converted from Makefile.in.
1912
1913 2007-10-02  Gisle Vanem  <gvanem@broadpark.no>
1914
1915         * ftp.c: Use "_listing" for MSDOS (".listing" is illegal).
1916
1917         * url.c: Update comment for 'filechr_not_windows'.
1918
1919         * utils.c: Include <process.h> for 'getpid()' on Watcom.
1920
1921 2007-10-02  Micah Cowan  <micah@cowan.name>
1922
1923         * ftp.c (getftp, ftp_loop_internal), http.c (http_loop), main
1924         (main): Use datetime_str instead of time_str, for those who have
1925         potentially long-running sessions. Based on suggestions by Saso
1926         Tomat <miskox@hotmail.com> and Steven M. Schweda
1927         <sms@antinode.org>.
1928         * http.c (gethttp): Warn about host lookup failures. Adjusted
1929         from Stephen Gildea's patch.
1930
1931 2007-10-02  Stephen Gildea  <stepheng+wget@gildea.com>
1932
1933         * connect.c (connect_to_host): Warn about host lookup failures.
1934
1935 2007-09-25  Micah Cowan  <micah@cowan.name>
1936
1937         * Makefile.in: Use EXEEXT instead of exeext.
1938
1939 2007-09-24  Gisle Vanem  <giva@bgnett.no>
1940
1941         * connect.c, init.c, main.c, openssl.c, options.h, sysdep.h,
1942         url.c, utils.c: Added support for building on MS-DOS.
1943
1944 2007-09-24  Jochen Roderburg  <roderburg@uni-koeln.de>
1945
1946         * http.c (http_zero): Remove no-longer-used local_size variable.
1947         Fixes bug #21057.
1948
1949 2007-09-12  Micah Cowan  <micah@cowan.name>
1950
1951         * http.c (http_loop): Remove send_head_first from condition for
1952         parsing timestamp.
1953
1954 2007-08-29  Micah Cowan  <micah@cowan.name>
1955
1956         * openssl.c (ssl_init): Re un-const-ified the meth local
1957         variable, to match current versions of openssl.
1958         * spider.c: Removed visited_url function, as it may be very
1959         inefficient.
1960         (print_broken_links): Removed traversal of referrers, until such
1961         time as a more efficient implementation can be written.
1962         * spider.h: Replaced declaration of visited_url with an
1963         empty-bodied, function-like macro.
1964
1965 2007-08-27  Gisle Vanem  <giva@bgnett.no>
1966
1967         * mswindows.c (run_with_timeout): Ensure that the correct
1968         conversion specification is used for the return result of
1969         the GetLastError function.
1970         * getopt.c: Fix missing (but, accidentally, legal) comment
1971         delimiter after licensing text.
1972         * recur.c (retrieve_tree): Inserted missing cast for strip_auth.
1973         Includes adjustment by Ralf Wildenhues.
1974         * openssl.c (ssl_init): const-ified the meth local variable.
1975         * main.c: Include all the static function definitions in the
1976         "#ifndef TESTING" clause, leaving just the definitions for
1977         exec_name (not set), and opt.
1978         * utils.c (run_with_timeout): Now returns bool, to align with
1979         declaration in utils.h.
1980
1981 2007-08-27  Micah Cowan  <micah@cowan.name>
1982
1983         * wget.h: Added macro replacement for ngettext, for environs
1984         that lack NLS.
1985
1986 2007-08-26  Micah Cowan  <micah@cowan.name>
1987
1988         * spider.c (print_broken_links): Fixed incorrect plurals msgid
1989         usage, switched to use ngettext function.
1990
1991 2007-08-24  Micah Cowan  <micah@cowan.name>
1992
1993         * http.c (http_loop): Introduced time_came_from_head boolean
1994         flag, to help avoid parsing the same Last-Modified header twice.
1995         Replaced spidering returns of RETRUNNEEDED for some situations,
1996         to RETROK, as otherwise it will be interpreted as an error.
1997         RETRUNNEEDED appears never to be referenced outside of
1998         http.c (and wget.h), and, when returned by gethttp, is
1999         translated by http_loop to RETROK.
2000         * url.c (are_urls_equal): Don't call getchar_from_escaped_string
2001         if u2 is shorter than u1.
2002         (getchar_from_escaped_string): Don't decode reserved characters.
2003         Handle illegally appearing '%'s as literal '%'s. Ensure hex
2004         digits before attempting to decode.
2005         (test_are_urls_equal): Added tests to handle u2 shorter than u1,
2006         and %2f not treated the same as /.
2007         * spider.c (in_url_list_p): Don't call are_urls_equal if one of
2008         them is NULL.
2009
2010 2007-08-23  Joshua David Williams  <yurimxpxman@gmail.com>
2011
2012         * spider.c (in_url_list_p): Removed the bool verbose argument
2013
2014 2007-08-22  Mauro Tortonesi  <mauro@ferrara.linux.it>
2015
2016         * http.c (http_loop): Fall back to GET if HEAD fails with a 500 or 501
2017         error code.
2018
2019 2007-08-21  Mauro Tortonesi  <mauro@ferrara.linux.it>
2020
2021         * http.c (http_loop): Send preliminary HEAD request if -N is given and
2022         the destination file exists already.
2023
2024 2007-08-10  Mauro Tortonesi  <mauro@ferrara.linux.it>
2025
2026         * http.c (http_loop): Fixed HTTP HEAD requests logic when --spider is
2027         given.
2028
2029 2007-08-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2030
2031         * url.c (append_uri_pathel): Do not assume dest string to be
2032         zero-terminated.
2033         (test_append_uri_pathel): Terminate string to fix test failure.
2034
2035 2007-08-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2036
2037         * url.c (url_string): Use comparison, not assignment, in
2038         check for auth_mode == URL_AUTH_HIDE_PASSWD.
2039
2040 2007-08-09  Micah Cowan  <micah@cowan.name>
2041
2042         * http.c (http_loop): If we got a HEAD and then a GET, and the
2043         GET had a timestamp, use that one, not any we may have gotten
2044         from the HEAD.
2045
2046 2007-08-08  Micah Cowan  <micah@cowan.name>
2047
2048         * init.c (defaults): Content disposition will not be default,
2049         since it currently results in extra round-trips.
2050
2051 2007-07-31  Micah Cowan  <micah@cowan.name>
2052
2053         * http.c (gethttp): Set contlen = -1 when we encounter a
2054         negative-valued Content-Length header, so we don't consider it
2055         an internal error later on and call abort().
2056
2057 2007-07-29  Micah Cowan  <micah@cowan.name>
2058
2059         * url.h, url.c (url_string): Replaced bool arg of the url_string
2060         function with enum url_auth_mode, with added option to
2061         completely remove user/pass auth information.
2062         * http.c, ftp.c, url.c, recur.c: Adapted call to url_string
2063         function to fit new usage.
2064         * recur.c (retrieve_tree): Remove auth info from Referer header.
2065
2066 2007-07-28  Micah Cowan  <micah@cowan.name>
2067
2068         * options.h, init.c, retr.c, main.c: renamed opt maxredirect
2069         field to max_redirect, for improved consistency.
2070         * init.c: changed max_redirect parser from cmd_number_inf to
2071         cmd_number, as infinite redirects may not be appropriate.
2072         Alternatively, if cmd_number_inf should be used, then
2073         opt.max_redirect's value should be checked a bit differently in
2074         retr.c, to allow for the "infinite" meaning of zero.
2075
2076 2007-07-25  Micah Cowan  <micah@cowan.name>
2077
2078         * http.c (create_authorization_line)
2079         (basic_authentication_encode, known_authentication_scheme_p)
2080         (load_cookies): Moved declarations up.
2081         (basic_authed_hosts): Added. Tracks what hosts have issued Basic
2082         challenge and been given the global username, password.
2083         (maybe_send_basic_creds): Added. Sends Basic creds for hosts that
2084         have issued Basic challenges.
2085         (register_basic_auth_host): Added. Instantiates
2086         basic_authed_hosts if necessary, then registers the host that
2087         has issued a challenge.
2088         (gethttp) <auth>: Only send authentication credentials after
2089         we've received a challenge from that host. This is a stop-gap
2090         fix until a proper fix can be implemented; still isn't quite
2091         right, as we should only be sending credentials automatically
2092         for authenticated paths and below, and not for the entire host.
2093
2094 2007-07-16  Joshua David Williams  <yurimxpxman@gmail.com>
2095
2096         * options.h: added maxredirect to options struct
2097         * init.c: added maxredirect to list of variables
2098         * retr.c (retrieve_url): replaced MAX_REDIRECTIONS with opt.maxredirect
2099         * main.c: added option --max-redirect
2100
2101 2007-07-16  Joshua David Williams  <yurimxpxman@gmail.com>
2102
2103         * test.h: tests made more verbose; now displays the name
2104         of each test run.
2105
2106 2007-07-10  Mauro Tortonesi  <mauro@ferrara.linux.it>
2107
2108         * http.c (http_loop): Fixed the HTTP requests logic. Now it skips the
2109         preliminary HEAD request if either -O or --no-content-disposition are
2110         given, and neither --spider and -N are given.
2111
2112 2007-07-05  Micah Cowan  <micah@cowan.name>
2113
2114         * cmpt.c, connect.c, connect.h, convert.c, convert.h:
2115         * cookies.c, cookies.h, ftp-basic.c, ftp.c, ftp.h, ftp-ls.c:
2116         * ftp-opie.c, gen-md5.c, gen-md5.h, getopt.c, getopt.h, gnu-md5.c:
2117         * gnu-md5.h, gnutls.c, hash.c, hash.h, host.c, host.h:
2118         * html-parse.c, html-parse.h, html-url.c, http.c, http.h:
2119         * http-ntlm.c, http-ntlm.h, init.c, init.h, log.c, log.h, main.c:
2120         * Makefile.in, mswindows.c, mswindows.h, netrc.c, netrc.h:
2121         * openssl.c, options.h, progress.c, progress.h, ptimer.c:
2122         * ptimer.h, recur.c, recur.h, res.c, res.h, retr.c, retr.h:
2123         * safe-ctype.c, safe-ctype.h, spider.c, spider.h, ssl.h, sysdep.h:
2124         * test.c, test.h, url.c, url.h, utils.c, utils.h, wget.h:
2125         * xmalloc.c, xmalloc.h:
2126         Updated GPL reference to version 3 or later, removed FSF
2127         address.
2128
2129 2007-07-04  Mauro Tortonesi  <mauro@ferrara.linux.it>
2130
2131         * http.c (http_loop): Skip HEAD request and start immediately with GET
2132         if -O is given.
2133
2134 2007-02-02  Hrvoje Niksic  <hniksic@xemacs.org>
2135
2136         * http.c (print_server_response): Escape non-printable characters
2137         in server respone.
2138
2139 2007-02-02  Hrvoje Niksic  <hniksic@xemacs.org>
2140
2141         * netrc.c: Don't make netrc_list static, as it prevents
2142         compilation with DEBUG_MALLOC.
2143
2144         * utils.c (aprintf): Don't use vasprintf when DEBUG_MALLOC is
2145         requested because, in that case, we want the calls to malloc to be
2146         coming from us.
2147
2148 2007-01-23  Hrvoje Niksic  <hniksic@xemacs.org>
2149
2150         * cookies.c (parse_set_cookie): Would erroneously discard cookies
2151         with unparsable expiry time.
2152
2153 2007-01-23  Hrvoje Niksic  <hniksic@xemacs.org>
2154
2155         * progress.c (create_image): Check for ETA overflow.
2156         (print_row_stats): Ditto.
2157
2158 2007-01-09  Mauro Tortonesi  <mauro@ferrara.linux.it>
2159
2160         * init.c (cmd_spec_prefer_family): Small fix to get rid of a gcc
2161         warning about strict-aliasing violation.
2162
2163 2007-01-09  Steven M. Schweda  <sms@antinode.org>
2164
2165         * ftp-basic.c (ftp_syst): Fixed segfault if response text is missing.
2166
2167 2006-12-29  Gisle Vanem  <giva@bgnett.no>
2168
2169         * mswindows.c: Avoid a warning if 'ws_hangup()' is unused.
2170
2171 2006-12-27  Mauro Tortonesi  <mauro@ferrara.linux.it>
2172
2173         * http.c (parse_content_disposition): Consider directory prefix, if
2174         specified.
2175
2176 2006-11-21  Hrvoje Niksic  <hniksic@xemacs.org>
2177
2178         * retr.c (retrieve_from_file): Ditto.
2179         (url_uses_proxy): New function.
2180
2181         * main.c (main): Don't check for opt.use_proxy when deciding
2182         whether to call retrieve_url or retrieve_tree; check whether the
2183         proxy would be used for *this* URL.
2184
2185 2006-10-17  Mike Grant  <mggr@pml.ac.uk>
2186
2187         * ftp.c (ftp_loop_internal): Would incorrectly skip changing
2188         working directory when retrying after a failed FTP attempt.
2189         Originally reported by Nate Eldredge.
2190
2191 2006-10-12  Mauro Tortonesi  <mauro@ferrara.linux.it>
2192
2193         * convert.c (downloaded_file): Fixed bug which used to break -E -k -K
2194         mode.
2195
2196 2006-08-28  Mauro Tortonesi  <mauro@ferrara.linux.it>
2197
2198         * http.c: #include'd spider.h to get rid of compiler warnings.
2199
2200         * main.c: Ditto.
2201
2202         * recur.c: Ditto.
2203
2204 2006-08-24  Mauro Tortonesi  <mauro@ferrara.linux.it>
2205
2206         * Makefile.in: Added spider.c to the list of files to compile and
2207         spider.h to the list of header files. Updated copyright information.
2208
2209         * http.c: Major changes to recursive spider mode. Now for every
2210         resource we are supposed to check, we send a HEAD request to find out
2211         if it exists. If the resource is a HTML file, we retrieve it and parse
2212         it to discover links to other resources.
2213
2214         * recur.c: Ditto.
2215
2216         * res.c (res_retrieve_file): Disable opt.timestamping and opt.spider
2217         when retrieving robots.txt. Updated copyright information.
2218
2219         * convert.c: Moved code tracking broken links to spider.c.
2220
2221         * convert.h: Ditto.
2222
2223         * spider.c: Created new file to keep track of visited URLs in spider
2224         mode.
2225
2226         * spider.h: Ditto.
2227
2228 2006-08-21  Mauro Tortonesi  <mauro@ferrara.linux.it>
2229
2230         * http.c: Fixed timestamping-related bug.
2231
2232 2006-08-16  Mauro Tortonesi  <mauro@ferrara.linux.it>
2233
2234         * http.c: Fixed bug which broke --continue feature. Now if -c is
2235         given, http_loop sends a HEAD request to find out the destination
2236         filename before resuming download.
2237
2238 2006-08-08  Hrvoje Niksic  <hniksic@xemacs.org>
2239
2240         * utils.c (datetime_str): Avoid code repetition with time_str.
2241
2242 2006-07-21  Hrvoje Niksic  <hniksic@xemacs.org>
2243
2244         * init.c (commands): Correctly place "contentdisposition".
2245
2246 2006-07-14  Mauro Tortonesi  <mauro@ferrara.linux.it>
2247
2248         * sysdep.h: If intptr_t isn't defined, simply typedef it to long.
2249
2250         * http.c: Added explicit cast to int in logprintf call to remove
2251         compiler warnings on 64-bit platforms.
2252
2253         * connect.c: Added a few casts to intptr_t to remove compiler warnings
2254         on 64-bit platforms.
2255
2256         * main.c: Disable -r, -p and -N when -O is used. Disable -k when -O is
2257         used and multiple URLs are given. Update maintainer information.
2258
2259         * all: Update copyright information.
2260
2261 2006-07-10  KJKHyperion  <hackbunny@reactos.com>
2262
2263         * url.c (filechr_table): Mark DEL (0x7f) as a control character
2264         and | as a character Windows can't handle.
2265
2266 2006-06-28  Mauro Tortonesi  <mauro@ferrara.linux.it>
2267
2268         * res.c: Implemented is_robots_txt_url function for detection of
2269         robots.txt URLs and related test routine.
2270
2271         * res.h: Ditto.
2272
2273         * url.c: Implemented are_urls_equal function for URL comparison and
2274         related testing routine.
2275
2276         * url.h: Ditto.
2277
2278         * convert.c: Fixes for recursive spider mode: don't consider
2279         non-existing robots.txt as a broken link, and use are_urls_equal
2280         instead of strcasecmp for referrer URLs comparison.
2281
2282         * test.c: Call tests routines for are_urls_equal and
2283         is_robots_txt_url.
2284
2285 2006-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
2286
2287         * wget.h (wgint): Typedef to any 64-bit (or larger) type we can
2288         find, not necessarily off_t or long.
2289
2290 2006-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
2291
2292         * cmpt.c (strtoll): Check for overflow and underflow without
2293         relying on (technically) undefined behavior.  Don't assume that
2294         strtoll_type is 64 bits wide.
2295
2296 2006-06-21  Hrvoje Niksic  <hniksic@xemacs.org>
2297
2298         * utils.c (base64_encode): Cast void pointer to char * before
2299         doing arithmetic.
2300
2301 2006-06-20  Hrvoje Niksic  <hniksic@xemacs.org>
2302
2303         * utils.c (base64_encode): Made TBL const.
2304         (base64_decode): Made the base64_char_to_value table const.
2305
2306 2006-06-19  Hrvoje Niksic  <hniksic@xemacs.org>
2307
2308         * utils.c (base64_encode): Made the DATA pointer void * so the
2309         callers can pass it any kind of pointer (including both signed and
2310         unsigned char pointers).
2311         (base64_decode): Ditto for DEST.
2312
2313 2006-06-19  Hrvoje Niksic  <hniksic@xemacs.org>
2314
2315         * utils.c (base64_encode): Would read past end of STR.
2316         Reported by rick@eckle.org.
2317
2318 2006-06-13  Mauro Tortonesi  <mauro@ferrara.linux.it>
2319
2320         * options.h (struct options): Introduced member restrict_files_case to
2321         keep track of preferences on character case restrictions for
2322         filenames.
2323
2324         * init.c: Modified defaults and cmd_spec_restrict_file_names to
2325         support character case restrictions for filenames. Added
2326         test_cmd_spec_restrict_file_names unit test.
2327
2328         * url.c: Modified append_uri_pathel to support character case
2329         restrictions for filenames. Added test_append_uri_pathel unit test.
2330
2331         * test.c: Added test_cmd_spec_restrict_file_names and
2332         test_append_uri_pathel to the list of unit tests to run.
2333
2334 2006-06-12  Mauro Tortonesi  <mauro@ferrara.linux.it>
2335
2336         * retr.c (retrieve_from_file): Use retrieve_tree and automatically
2337         turn on opt.follow_ftp in case of recursive FTP retrieval through HTTP
2338         proxy.
2339
2340         * main.c: Automatically turn on opt.follow_ftp in case of recursive
2341         FTP retrieval through HTTP proxy.
2342
2343 2006-06-12  Tony Lewis  <tlewis@exelana.com>
2344
2345         * main.c: Improved CHEN Peng's patch by proposing a simpler logic.
2346
2347 2006-06-12  CHEN Peng  <chenpeng@alumni.nus.edu.sg>
2348
2349         * main.c: Use retrieve_tree in case of recursive FTP retrieval through
2350         HTTP proxy.
2351
2352 2006-05-25  Mauro Tortonesi  <mauro@ferrara.linux.it>
2353
2354         * convert.c: Added mechanisms to keep track broken links.
2355
2356         * convert.h: Ditto.
2357
2358         * wget.h: Reordered and enumerated uerr_t constants.
2359
2360         * recur.c: Fixes to support recursive spider mode.
2361
2362         * http.c: Ditto.
2363
2364         * main.c: Print broken links in case of recursive spider mode.
2365
2366         * retr.c: Changed interface of retrieve_url.
2367
2368         * retr.h: Ditto.
2369
2370         * ftp.c: Changed interface of ftp_loop.
2371
2372         * ftp.h: Ditto.
2373
2374         * res.c: Minor change to reflect changes in interface of retrieve_url.
2375
2376 2006-05-18  Lawrence Jones  <lawrence.jones@ugs.com>
2377
2378         * ftp-ls.c (ftp_parse_unix_ls): Correct size parsing, add size
2379         and filename debugging output.
2380
2381 2006-04-28  Mauro Tortonesi  <mauro@ferrara.linux.it>
2382
2383         * http.c: If Content-Disposition header is present, allow unique
2384         filename generation unless -nc is given. Permit to disable parsing of
2385         Content-Disposition header.
2386
2387         * options.h: Added option --no-content-disposition to disable parsing
2388         of HTTP Content-Disposition header.
2389
2390         * init.c: Ditto.
2391
2392         * main.c: Ditto.
2393
2394 2006-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
2395
2396         * hash.c (TOLOWER): Wrap macro arg in parentheses.
2397
2398 2006-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
2399
2400         * http.c (parse_content_disposition): Doc fix.
2401
2402 2006-03-15  Mauro Tortonesi  <mauro@ferrara.linux.it>
2403
2404         * utils.c: Restricted operational semantics of frontcmp and proclist
2405         from generic strings to directory names and them to subdir_p and
2406         dir_matches_p respectively.  Applied George Ogata's one line patch to
2407         restrict algorithm of subdir_p to full directory name matching.  Added
2408         testcases for subdir_p and dir_matches_p.
2409
2410         * utils.h: Changed all frontcmp occurrences to subdir_p.
2411
2412         * recur.c: Ditto.
2413
2414         * test.c: Changed type returned by test functions from char * to const
2415         char *.  Added test_subdir_p and test_dir_matches_p to the list of
2416         tests to run.
2417
2418         * http.c (test_parse_content_disposition): Changed return type from
2419         char * to const char *.
2420
2421 2006-03-14  Mauro Tortonesi  <mauro@ferrara.linux.it>
2422
2423         * recur.c (struct queue_element): Changed type of html_allowed member
2424         to bool.
2425
2426 2006-03-09  Mauro Tortonesi  <mauro@ferrara.linux.it>
2427
2428         * ftp.c (ftp_list): Try `LIST -a' command first and revert to `LIST'
2429         in case of failure.
2430
2431 2006-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
2432
2433         * hash.c (TOLOWER): Fix definition when STANDALONE.
2434         Reported by Beni Serfaty.
2435
2436 2006-03-02  Mauro Tortonesi  <mauro@ferrara.linux.it>
2437
2438         * http.c (http_loop): Fixed recursive HTTP retrieval.
2439
2440 2006-02-28  Hrvoje Niksic  <hniksic@xemacs.org>
2441
2442         * http.c (extract_param): Declare extern so it can be used from
2443         other files.
2444         (extract_param): Return error for empty name.
2445
2446 2006-02-28  Hrvoje Niksic  <hniksic@xemacs.org>
2447
2448         * url.c (find_last_char): Define in terms of memrchr.
2449
2450         * cmpt.c (memrchr): Define it on systems that don't have it.
2451
2452         * http.c (extract_param): New function for parsing header values
2453         with parameters.
2454         (parse_content_disposition): Use it.  Don't allow slashes and
2455         backslashes in the file name.
2456
2457 2006-02-27  Hrvoje Niksic  <hniksic@xemacs.org>
2458
2459         * url.c (path_simplify): Don't preserve ".." at beginning of path.
2460         Suggested by Frank McCown.
2461
2462 2006-02-25  Hrvoje Niksic  <hniksic@xemacs.org>
2463
2464         * http.c (gethttp): Only use FILE.N.html if FILE.html exists.
2465
2466 2006-02-09  Hrvoje Niksic  <hniksic@xemacs.org>
2467
2468         * mswindows.c (run_with_timeout): Made thread_hnd non-static.
2469
2470 2006-02-05  Hrvoje Niksic  <hniksic@xemacs.org>
2471
2472         * retr.c (sleep_between_retrievals): Sleep at a minimum of 1/2 of
2473         the specified wait period.
2474
2475 2006-02-03  Hrvoje Niksic  <hniksic@xemacs.org>
2476
2477         * utils.c (number_to_string): Don't use sprintf for printing
2478         WGINT_MIN; simply divide n by 10 and defer printing the last
2479         digit.
2480         (number_to_string): Removed the SPRINTF_WGINT macro.
2481
2482 2006-02-03  Mauro Tortonesi  <mauro@ferrara.linux.it>
2483
2484         * http.c: Fixed support for Content-Disposition header.
2485
2486         * test.c: Added test_parse_content_disposition to the list of unit
2487         tests to run.
2488
2489 2006-02-02  Hrvoje Niksic  <hniksic@xemacs.org>
2490
2491         * hash.c: Don't define countof if it's already defined.
2492
2493         * hash.c: Obtain the definition of uintptr_t when standalone.
2494
2495 2006-01-30  Mauro Tortonesi  <mauro@ferrara.linux.it>
2496
2497         * http.c: Changed output format. Removed excessively verbose debugging
2498         output.
2499
2500 2005-12-07  Mauro Tortonesi  <mauro@ferrara.linux.it>
2501
2502         * http.c: Fixed pre-download verbose output which was broken by
2503         HTTP code refactoring.
2504
2505 2005-11-23  Mauro Tortonesi  <mauro@ferrara.linux.it>
2506
2507         * http.c: Refactored HTTP code.  If -O is not used, the new code
2508         delays the choice of the file name where the downloaded resource
2509         will be saved until the HTTP headers have been retrieved.
2510         Added support for Content-Disposition header.
2511
2512 2005-11-19  Hrvoje Niksic  <hniksic@xemacs.org>
2513
2514         * hash.c (INVALID_PTR): Use uintptr_t instead of unsigned long.
2515         (hash_pointer): Don't assume a pointer fits in `unsigned long'.
2516
2517 2005-11-02  Mauro Tortonesi  <mauro@ferrara.linux.it>
2518
2519         * Makefile.in: Removed support for unit testing (now it is in
2520         tests/Makefile.in).
2521
2522 2005-10-27  Mauro Tortonesi  <mauro@ferrara.linux.it>
2523
2524         * Makefile.in: Added basic support for unit testing.
2525
2526         * test.c: Ditto.
2527
2528         * test.h: Ditto.
2529
2530 2005-10-13  Daniel Stenberg  <daniel@haxx.se>
2531
2532         * http-ntlm.c (ntlm_output): Fixed buffer overflow vulnerability.
2533
2534 2005-10-09  Russ Allbery  <rra@stanford.edu>
2535
2536         * snprintf.c: Remove round to round_int and pow10 to pow10_int, to
2537         avoid warnings from GCC 4.0.
2538
2539 2005-10-05  Mauro Tortonesi  <mauro@ferrara.linux.it>
2540
2541         * retr.c: Changed semantics of no_proxy_match.
2542
2543 2005-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
2544
2545         * main.c (main): Don't print the summary if nothing has been downloaded.
2546
2547 2005-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
2548
2549         * retr.c (retr_rate): Rename parameter from MSECS to SECS since it
2550         no longer holds milliseconds.
2551
2552 2005-09-01  Hrvoje Niksic  <hniksic@xemacs.org>
2553
2554         * progress.c: Introduce symbolic constants for "magic" values of
2555         0.2 and 0.9, REFRESH_INTERVAL and ETA_REFRESH_INTERVAL.
2556
2557 2005-08-27  Hrvoje Niksic  <hniksic@xemacs.org>
2558
2559         * cmpt.c (strtoll): Correctly handle strtoll("0x", ptr, 0) and
2560         strtoll("0x<nonhexchar>", ptr, 0) -- in both cases *ptr must be
2561         set to the position of 'x', not after it.
2562
2563 2005-08-27  Hrvoje Niksic  <hniksic@xemacs.org>
2564
2565         * hash.c (hash_table_map): Rename to hash_table_for_each and
2566         update callers.
2567         Document the meaning of the callback's return value.
2568         (hash_table_iterate): New function.
2569         (hash_table_iter_next): Likewise.
2570         Update most places that used hash_table_for_each to use the
2571         iteration, which doesn't require a temporary function with
2572         explicit state management.
2573
2574 2005-08-26  Albert Chin  <wget@mlists.thewrittenword.com>
2575
2576         * Makefile.in: Use @datadir@.  Define localedir as $(datadir)/locale.
2577
2578 2005-08-26  Jeremy Shapiro  <jnshapiro@gmail.com>
2579
2580         * openssl.c (ssl_init): Set SSL_MODE_AUTO_RETRY.
2581
2582 2005-08-23  Hrvoje Niksic  <hniksic@xemacs.org>
2583
2584         * host.c (address_list_from_ipv4_addresses): Use IP_INADDR_DATA.
2585
2586 2005-08-12  Hrvoje Niksic  <hniksic@xemacs.org>
2587
2588         * wget.h: Renamed strtoll_return to strtoll_type.
2589
2590 2005-08-11  Hrvoje Niksic  <hniksic@xemacs.org>
2591
2592         * progress.c (eta_to_human_short): Switch to days when printing
2593         more than 48h rather than 100h.  (It's not immediately apparent
2594         how many days there are in 83h.)
2595
2596 2005-08-11  Hrvoje Niksic  <hniksic@xemacs.org>
2597
2598         * cmpt.c (strtoll): Define it if missing on the system and if Wget
2599         needs it.
2600
2601         * mswindows.c (str_to_int64): Move to cmpt.c and rename to strtoll.
2602
2603 2005-08-10  Hrvoje Niksic  <hniksic@xemacs.org>
2604
2605         * host.c (print_address): Always use inet_ntop when IPv6 is
2606         enabled.
2607
2608         * host.h (ip_address): Simplify the data union.
2609
2610 2005-08-09  Hrvoje Niksic  <hniksic@xemacs.org>
2611
2612         * mswindows.c (inet_ntop): Also handle IPv4 addresses for
2613         completeness.
2614
2615 2005-08-09  Hrvoje Niksic  <hniksic@xemacs.org>
2616
2617         * http.c (gethttp): Don't read more than the amount of data
2618         specified by the content-length header.
2619
2620 2005-08-09  Vasil Dimov  <vd@datamax.bg>
2621
2622         * ftp.c (getftp): Don't free RESPLINE if ftp_response returns a
2623         status other than FTPOK.
2624
2625 2005-08-04  Giuseppe Bonacci  <g.bonacci@libero.it>
2626
2627         * ftp-ls.c (ftp_parse_unix_ls): Remember the position of the
2628         previous token instead of backtracking back to it.
2629
2630 2005-07-08  Gisle Vanem  <giva@bgnett.no>
2631
2632         * mswindows.h: Include process.h to get getpid() declaration.
2633
2634 2005-07-08  Hrvoje Niksic  <hniksic@xemacs.org>
2635
2636         * utils.c (aprintf): Use vasprintf where available.
2637
2638 2005-07-08  Hrvoje Niksic  <hniksic@xemacs.org>
2639
2640         * url.c (rewrite_shorthand_url): Simplify code using aprintf and
2641         strspn.
2642
2643 2005-07-07  Hrvoje Niksic  <hniksic@xemacs.org>
2644
2645         * gnutls.c (ssl_check_certificate): Check for the validity of the
2646         presented X509 certificate.
2647
2648 2005-07-07  Hrvoje Niksic  <hniksic@xemacs.org>
2649
2650         * openssl.c (ssl_check_certificate): Print custom error messages
2651         for frequent X509 certificate problems.
2652
2653 2005-07-07  Hrvoje Niksic  <hniksic@xemacs.org>
2654
2655         * mswindows.h: Define an alias for stat and fstat, as requested by
2656         config-compiler.h.
2657         (gai_strerror): Define to windows_strerror if NEED_GAI_STRERROR is
2658         defined.
2659
2660 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
2661
2662         * mswindows.h: Use strtoll where available.
2663
2664 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
2665
2666         * sysdep.h: Add a full declaration of fnmatch.h.
2667
2668 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
2669
2670         * utils.c: Unconditionally include <setjmp.h>.
2671
2672 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
2673
2674         * utils.c (fnmatch_nocase): New function.
2675         (proclist): Use it instead of fnmatch when opt.ignore_case is
2676         requested.
2677         (in_acclist): Respect opt.ignore_case.
2678         (frontcmp): Respect opt.ignore_case.
2679
2680         * options.h (struct options): New flag opt.ignore_case.
2681
2682 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
2683
2684         * ptimer.c: Measure time in seconds rather than milliseconds.
2685         Adjusted all callers.
2686
2687 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
2688
2689         * http.c (gethttp): When freeing MESSAGE, take into account that
2690         it can be NULL.
2691
2692 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
2693
2694         * cmpt.c (timegm): Handle years after 2099.
2695
2696 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
2697
2698         * cmpt.c (timegm): Remove unused variable.
2699
2700 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
2701
2702         * cmpt.c (timegm): Don't call mktime; simply count the seconds
2703         between 1970-01-01 and the specified date.
2704
2705 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
2706
2707         * wget.h (or): Define HAVE_SSL when either HAVE_OPENSSL or
2708         HAVE_GNUTLS are defined.
2709
2710         * gnutls.c: New file.
2711
2712 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
2713
2714         * http.c (gethttp): Don't print the request write error message
2715         twice.
2716
2717 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
2718
2719         * openssl.c (openssl_errstr): Instead of always using a large
2720         static buffer, only allocate the error string when there is an
2721         actual error.
2722
2723 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
2724
2725         * xmalloc.c (debugging_free): Prefix hex pointer value with "0x"
2726         when printing.
2727
2728 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
2729
2730         * utils.c (NEXT_BASE64_CHAR): Rename to NEXT_CHAR and simplify to
2731         get the next non-whitespace character.
2732
2733 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
2734
2735         * utils.c (base64_decode): Don't silently tolerate non-base64
2736         non-white-space characters in the base64 stream.
2737
2738 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
2739
2740         * connect.c (LAZY_RETRIEVE_INFO): Make last_tick unsigned to match
2741         transport_map_modified_tick.
2742
2743 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
2744
2745         * config-post.h (alloca): Updated declaration to not enumerate all
2746         Windows compilers.
2747
2748 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
2749
2750         * openssl.c (openssl_errstr): Separate error messages with "; ".
2751
2752 2005-07-03  Hrvoje Niksic  <hniksic@xemacs.org>
2753
2754         * ftp.c (getftp): Ditto.
2755
2756         * http.c (gethttp): Use fd_errstr.
2757
2758         * connect.c (fd_register_transport): Restructure parameters to
2759         include only a single structure that describes transport
2760         implementation.
2761
2762         * openssl.c (openssl_errstr): New function: dump SSL error strings
2763         into a static buffer and return a pointer to the buffer.
2764
2765         * connect.c (fd_errstr): New function; returns transport-specific
2766         error message, or strerror(errno) if transport doesn't supply one.
2767
2768 2005-07-03  Hrvoje Niksic  <hniksic@xemacs.org>
2769
2770         * mswindows.h: Also wrap accept() and listen().
2771
2772 2005-07-03  Hrvoje Niksic  <hniksic@xemacs.org>
2773
2774         * url.c (path_end): Skip separators appropriate for the scheme.
2775         (strpbrk_or_eos): Remove gcc-specific version, as the optimization
2776         it tried to perform no longer applies.
2777
2778 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
2779
2780         * host.c: Don't include "connect.h" now that we no longer have
2781         socket_has_inet6.
2782
2783 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
2784
2785         * host.c: Remove extraneous definition of netdb.h.
2786
2787 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
2788
2789         * http.c (gethttp): Skip error message body in the keep-alive
2790         case.
2791
2792 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
2793
2794         * url.c (url_parse): Would crash when parsing fragments.  Support
2795         fragments for FTP URLs too.
2796
2797 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
2798
2799         * version.c: Don't use "cvs" in version name, since we're not
2800         using CVS anymore.
2801
2802 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
2803
2804         * progress.c (create_image): Ditto.
2805
2806         * retr.c (retr_rate): Display smaller rate numbers with greater
2807         precision.
2808
2809 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
2810
2811         * http.c (response_head_terminator): Minor optimization.
2812
2813         * retr.c (fd_read_hunk): Call terminator with pointer to the start
2814         of the data and the pointer to the current data.  Changed all
2815         callers.
2816
2817 2005-07-01  Hrvoje Niksic  <hniksic@xemacs.org>
2818
2819         * url.c (url_parse): Make sure u->params is not initialized for
2820         http/https URLs.
2821         (url_parse): Don't crash on garbage following []-delimited IPv6
2822         addresses.
2823
2824 2005-07-01  Hrvoje Niksic  <hniksic@xemacs.org>
2825
2826         * main.c (print_help): Don't refer to the non-existent -nr in
2827         description of --mirror.
2828
2829 2005-06-30  Hrvoje Niksic  <hniksic@xemacs.org>
2830
2831         * host.c (pretty_print_address): Renamed to just print_address.
2832         Clarify documentation.
2833
2834 2005-06-30  Hrvoje Niksic  <hniksic@xemacs.org>
2835
2836         * http.c (gethttp): Explicitly document the different cases when
2837         generating the Host header.
2838
2839 2005-06-30  Hrvoje Niksic  <hniksic@xemacs.org>
2840
2841         * host.c (pretty_print_address): Handle error result from
2842         inet_ntop.
2843
2844 2005-06-30  Gisle Vanem  <giva@bgnett.no>
2845
2846         * mswindows.c (inet_ntop): New function.  Print IPv6 addresses
2847         using WSAAddressToString.
2848
2849 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2850
2851         * progress.c (dot_update): Remove unused variable row_qty.
2852
2853 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
2854
2855         * main.c: Check for both SIGHUP and SIGUSR1 before using them.
2856
2857 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
2858
2859         * utils.c: Unconditionally include locale.h.
2860
2861 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
2862
2863         * ptimer.c: Include sys/time.h to get struct timeval.
2864
2865 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
2866
2867         * wget.h: Remove obsolete definition of with_thousand_seps_sum.
2868
2869 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
2870
2871         * gnu-md5.h: Unconditionally include limits.h.
2872
2873 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
2874
2875         * utils.c (random_number): Use lrand48 if available.
2876         (random_float): Use drand48 if available.
2877
2878 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
2879
2880         * main.c (secs_to_human_time): Use print_decimal when printing
2881         total download time in seconds.
2882
2883         * progress.c (print_row_stats): Use it to print total download
2884         time at the end of the download.
2885         (create_image): Ditto.
2886
2887         * utils.c (print_decimal): New function; print small decimal
2888         numbers with more precision than large ones.
2889
2890         * progress.c (print_row_stats): New function.  Print ETA after the
2891         download rate at the end of each row.
2892
2893 2005-06-28  Hrvoje Niksic  <hniksic@xemacs.org>
2894
2895         * init.c (parse_line): Check for alphanumerics.
2896
2897 2005-06-28  Hrvoje Niksic  <hniksic@xemacs.org>
2898
2899         * (dot_create): Remove unnecessary casts.
2900
2901 2005-06-28  Hrvoje Niksic  <hniksic@xemacs.org>
2902
2903         * ftp.c (getftp): Delete trailing newlines from LIST output so
2904         lines don't come out with trailing \015\012 with -S.
2905
2906 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2907
2908         * mswindows.h: Remove superfluous includes.
2909
2910 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2911
2912         * config-post.h (alloca): Amend alloca declaration to take care of
2913         all Win32 compilers, not just MSVC and MinGW.
2914
2915 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2916
2917         * utils.c (get_grouping_data): Force separator to "." rather than
2918         " " when "," is taken.
2919
2920 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2921
2922         * wget.h (PTR_FORMAT): Cast the result of sizeof to int before
2923         passing it to printf's %*.
2924
2925         * retr.h: Declare output_stream and output_stream_regular.
2926
2927         * ftp.h: Declare ftp_last_respline.
2928
2929         * convert.h: Declare dl_url_file_map.
2930
2931         * http.h: New file.
2932
2933 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2934
2935         * cookies.c: Make cookies_now static.
2936
2937 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2938
2939         * utils.c (human_readable): Remove intermediary cast to long; MSVC
2940         has problems casting *unsigned* __int64 to double.
2941
2942 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2943
2944         * sysdep.h: Use the system-provided fnmatch by default.
2945
2946 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2947
2948         * http.c (mktime_from_utc): Renamed to timegm and moved to cmpt.c.
2949         Don't compile it if GNU timegm is available.
2950         (http_atotm): Use timegm.
2951
2952 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2953
2954         * http.c (http_atotm): Correctly query the old locale value.
2955
2956 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2957
2958         * config-post.h (alloca): Don't #define alloca under MinGW32,
2959         which defines it in malloc.h, included from mswindows.h.
2960
2961 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2962
2963         * utils.c (get_grouping_data): Force the use of separators in C
2964         locale.
2965
2966 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2967
2968         * main.c (i18n_initialize): Set all locale categories.
2969
2970         * http.c (http_atotm): Temporarily set locale to "C".
2971
2972 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2973
2974         * http.c (gethttp): Improve "POST data file missing" error
2975         message.
2976
2977 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2978
2979         * progress.c (set_progress_implementation): Type COLON as const
2980         char *.
2981
2982 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
2983
2984         * utils.c (with_thousand_seps): Handle negative numbers.
2985
2986 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
2987
2988         * progress.c (create_image): Mark the "eta" string for translation.
2989
2990 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
2991
2992         * html-url.c (get_urls_file): Don't explicitly set entry->next to
2993         NULL since entry is already zeroed out.
2994
2995 2005-06-26  Gisle Vanem  <giva@bgnett.no>
2996
2997         * mswindows.h: Define gai_strerror under MinGW.
2998
2999 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
3000
3001         * utils.c (with_thousand_seps): Correctly implement thousand seps
3002         consisting of more than one character.
3003
3004 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
3005
3006         * main.c (secs_to_human_time): Ditto.
3007
3008         * progress.c (create_image): Print more exact duration of very
3009         short downloads.
3010
3011         * main.c (secs_to_human_time): Don't translate time suffixes "h",
3012         "m", and "s", which are not strictly SI, but are "accepted for use
3013         with SI".
3014         (secs_to_human_time): Print really small intervals as 0s, not
3015         0.00s.
3016
3017 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
3018
3019         * config-post.h: Replace the alloca declaration with the one from
3020         the latest Autoconf manual.  This should remove a warning with GCC
3021         on AIX.
3022
3023 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
3024
3025         * ftp.c (getftp): Always invoke SIZE, not only when continuing a
3026         download.
3027
3028         * main.c (main): Ditto here.
3029
3030         * progress.c (create_image): When the download is finished, print
3031         how long it took.
3032
3033 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
3034
3035         * main.c (main): Print the downloaded and quota amounts with the
3036         "human_readable" function.
3037
3038         * ftp.c (print_length): Ditto.
3039
3040         * http.c (gethttp): Don't display thousand separators.
3041
3042         * utils.c (with_thousand_seps): Rewritten to respect locale
3043         settings and to be type size agnostic.
3044
3045 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
3046
3047         * utils.c (human_readable): Divide with 1024 instead of shifting
3048         so the operation can work with non-integer N.
3049
3050 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
3051
3052         * progress.c (eta_to_human): New logic for more human-readable
3053         ETA.
3054
3055 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
3056
3057         * utils.c (with_thousand_seps_sum): Decrease buffer size so it
3058         cannot overrun add_thousand_seps's buffer.
3059
3060 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
3061
3062         * utils.c (SPRINTF_WGINT): The correct format is %I64d, not just
3063         %I64.
3064
3065 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
3066
3067         * http.c (http_loop): Don't warn about wildcards in HTTP URLs if
3068         globbing isn't requested in the first place.
3069
3070         * retr.c (retrieve_url): Temporarily turn off globbing when
3071         processing HTTP->FTP redirects.
3072
3073 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
3074
3075         * utils.c (with_thousand_seps_sum): Now defined only if
3076         SUM_SIZE_INT is double.
3077
3078         * wget.h (SUM_SIZE_INT): Instead of bothering with long, long
3079         long, __int64, and friends, simply either use wgint or double, end
3080         of story.  Since we know how to print either, we no longer need
3081         LARGE_INT_FMT.
3082
3083         * sysdeps.h (LARGE_INT): Renamed to SUM_SIZE_INT to better reflect
3084         its intent, and moved to wget.h.
3085
3086 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
3087
3088         * Makefile.in: No need to clean .libs.
3089
3090 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
3091
3092         * cookies.c (parse_set_cookies): Cast pointer subtraction to int
3093         before using it with %d; AIX compiler warns on this.
3094         Reported by Jens Schleusener.
3095
3096 2005-06-24  Hrvoje Niksic  <hniksic@xemacs.org>
3097
3098         * http.c (gethttp): Don't prepend / here.
3099
3100         * cookies.c (cookie_handle_set_cookie): Prepend / to PATH.
3101         (cookie_header): Ditto.
3102
3103 2005-06-24  Hrvoje Niksic  <hniksic@xemacs.org>
3104
3105         * init.c: opt.verbose must be declared as int.
3106
3107 2005-06-23  Hrvoje Niksic  <hniksic@xemacs.org>
3108
3109         * cmpt.c (strpbrk): Removed.
3110         (mktime): Removed.
3111         Include <time.h>.
3112
3113 2005-06-23  Hrvoje Niksic  <hniksic@xemacs.org>
3114
3115         * utils.c (read_file): Ditto.
3116
3117         * main.c (main): Use struct_fstat.
3118
3119         * mswindows.h (struct_fstat): Define a struct_fstat to deal with
3120         the fact that Borland 5.5 has 64-bit stat, but not 64-bit fstat!
3121
3122 2005-06-23  Hrvoje Niksic  <hniksic@xemacs.org>
3123
3124         * sysdep.h: Remove code that deals with Watcom.
3125
3126 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
3127
3128         * all: Use bool instead of int and false/true instead of 0/non-0
3129         for boolean variables and values.
3130
3131 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
3132
3133         * sysdep.h: Include the stdbool.h/_Bool/bool blurb from Autoconf.
3134
3135 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
3136
3137         * init.c (cmd_lockable_boolean): Removed.
3138
3139 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
3140
3141         * cookies.c (struct cookie): Use 1-bit bitfields for booleans
3142         which makes the structure takes less space at no cost in
3143         complexity.
3144
3145 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
3146
3147         * Makefile.in ($(OBJ)): Add the config.h dependency.
3148
3149 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
3150
3151         * openssl.c, connect.c, host.c: Replace instances of #ifdef
3152         ENABLE_DEBUG if (opt.debug) {...} #endif with IF_DEBUG {...}.
3153
3154         * main.c: Rename the IF_DEBUG defined here to WHEN_DEBUG.
3155
3156         * wget.h (IF_DEBUG): New macro.
3157         (DEBUGP): Define in terms of IF_DEBUG.
3158
3159 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
3160
3161         * http.c (gethttp): Only handle --set-cookies (and assert that
3162         cookie jar exists) if opt.cookies is true.  Failure to do so
3163         triggered the assert when --no-cookies was used and the server
3164         sent a Set-Cookie header.  Ouch!
3165
3166 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
3167
3168         * connect.c (select_fd): Expect select() to exist.
3169
3170         * utils.c (xsleep): Always use select() as sleep fallback on
3171         non-Windows platforms.
3172
3173         * ptimer.c: Delete the implementation of PTIMER_TIME.
3174
3175         * main.c: Assume existence of signal(), test for different signal
3176         names instead.
3177
3178         * cmpt.c: Better document reasons why certain functions are
3179         included.
3180
3181 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
3182
3183         * Makefile.in: Remove the manually maintained dependency list;
3184         make all object files depend on every header.
3185
3186 2005-06-20  Hrvoje Niksic  <hniksic@xemacs.org>
3187
3188         * hash.c: Rename "mapping" to "cell" to avoid confusion with the
3189         term "mapping" (or "map") sometimes being used for the entire hash
3190         table.  Also rename "non-empty" to "occupied" for easier reading
3191         of if (!NON_EMPTY (...)) ... .
3192
3193 2005-06-20  Hrvoje Niksic  <hniksic@xemacs.org>
3194
3195         * main.c, ptimer.c, sysdep.h, utils.c: Use #elif to simplify reading of
3196         chained if-else-else-else-... statements.
3197
3198 2005-06-20  Hrvoje Niksic  <hniksic@xemacs.org>
3199
3200         * all: Return type of signal handlers is `void'.  Include signal.h
3201         unconditionally.
3202
3203         * all: Don't explicitly cast values returned by malloc.  We no
3204         longer support ancient compilers that don't declare malloc, and we
3205         never supported C++ builds.
3206
3207 2005-06-19  Hrvoje Niksic  <hniksic@xemacs.org>
3208
3209         * all: Don't declare errno.  Include both time.h and sys/time.h,
3210         as long as sys/time.h exists.  Don't dereference function pointers
3211         when invoking the functions they point to.
3212
3213         * cmpt.c (memmove): Remove function mandated by C89.
3214         (strerror): Ditto.
3215         (strstr): Ditto.
3216
3217         * all: Undo the K&R-ization changes from 2005-05-03.
3218
3219         * all: Remove support for K&R compilers: use C89 function
3220         declarations, remove definition of PARAMS, remove support for
3221         varargs, and remove ansi2knr.  Assume the presence of time.h,
3222         string.h, and other headers mandated by C89.
3223
3224 2005-06-19  Hrvoje Niksic  <hniksic@xemacs.org>
3225
3226         * init.c (cmd_lockable_boolean): Don't recognize literal "2" and
3227         "-1" values; unlike 0 and 1, those should never be exposed to the
3228         user.  Update the error message to be more self-consistent, as
3229         proposed by Benno Schulenberg.
3230
3231 2005-06-18  Hrvoje Niksic  <hniksic@xemacs.org>
3232
3233         * http.c (gethttp): Don't free "head" before using it to save
3234         headers.
3235
3236 2005-06-18  Hrvoje Niksic  <hniksic@xemacs.org>
3237
3238         * http.c (gethttp): When -E is in use, check for file existence
3239         after appending ".html" to the name and modify the file name if
3240         necessary.
3241
3242 2005-06-17  Hrvoje Niksic  <hniksic@xemacs.org>
3243
3244         * connect.c (socket_has_inet6): Removed.
3245
3246         * host.c (lookup_host): Don't use the AI_ADDRCONFIG getaddrinfo
3247         hint.
3248
3249 2005-06-16  Hrvoje Niksic  <hniksic@xemacs.org>
3250
3251         * init.c (cmd_lockable_boolean): Improve the error message so it
3252         lists the more useful values first.
3253
3254 2005-06-15  Hrvoje Niksic  <hniksic@xemacs.org>
3255
3256         * http.c (gethttp): Also report the system error when the POST
3257         data file is missing.
3258
3259 2005-06-15  Benno Schulenberg  <benno@nietvergeten.nl>
3260
3261         * ftp.c, http.c, connect.c, cookies.c, html-url.c, init.c, res.c:
3262         Gettext-ize messages that were previously missed.
3263
3264 2005-06-15  Hrvoje Niksic  <hniksic@xemacs.org>
3265
3266         * host.h (ip_address): Remove the trailing comma from the type
3267         enum in the no-IPv6 case.
3268
3269         * main.c (struct cmdline_option): Remove the trailing comma from
3270         the enum.
3271
3272         Reported by Jens Schleusener.
3273
3274 2005-05-30  Hrvoje Niksic  <hniksic@xemacs.org>
3275
3276         * url.c (strpbrk_or_eos): Check for a recent GCC version before
3277         using the statement-as-expression extension.
3278
3279 2005-05-30  Hrvoje Niksic  <hniksic@xemacs.org>
3280
3281         * http.c (gethttp): Don't attempt to "skip short body" if we're
3282         issuing a HEAD request (in which case the response head is not
3283         followed by a body).
3284
3285 2005-05-30  Hrvoje Niksic  <hniksic@xemacs.org>
3286
3287         * init.c (cmd_spec_header): Don't split the string along the
3288         commas using cmd_vector; just append the new value using
3289         vec_append instead.
3290
3291         * utils.c (vec_append): New function.
3292
3293 2005-05-27  Andreas Beckmann  <debian@abeckmann.de>
3294
3295         * html-url.c (tag_handle_link): Mark the content from the <link
3296         src="..."> tag as expecting HTML.
3297
3298 2005-05-24  Hrvoje Niksic  <hniksic@xemacs.org>
3299
3300         * http.c (http_atotm): Document the origin of the "cookie date"
3301         format.
3302
3303 2005-05-21  Hrvoje Niksic  <hniksic@xemacs.org>
3304
3305         * init.c (setval_internal): Report exact command name alongside
3306         the "display name".
3307
3308 2005-05-18  Hrvoje Niksic  <hniksic@xemacs.org>
3309
3310         * cookies.c (update_cookie_field): Explicitly cast -1 to time_t to
3311         cope with systems where time_t is unsigned.
3312
3313         * cookies.c: Remove unnecessary casts to time_t from values
3314         already of that type.
3315
3316 2005-05-17  Hrvoje Niksic  <hniksic@xemacs.org>
3317
3318         * ftp.c (ftp_loop_internal): Same here.
3319
3320         * http.c (http_loop): Don't clobber the file when -c is specified
3321         and the first attempt to retrieve the file fails.
3322
3323 2005-05-16  Hrvoje Niksic  <hniksic@xemacs.org>
3324
3325         * openssl.c (ssl_check_certificate): Print all issues with a
3326         certificate.
3327
3328 2005-05-16  Hrvoje Niksic  <hniksic@xemacs.org>
3329
3330         * ftp-basic.c: Don't xfree() the line returned by ftp_response if
3331         the returned code is not FTPOK.
3332
3333 2005-05-16  Hrvoje Niksic  <hniksic@xemacs.org>
3334
3335         * init.c (cleanup): Don't free the non-existent opt.ftp_acc.  Free
3336         the SSL-related stuff.
3337
3338 2005-05-16  Hrvoje Niksic  <hniksic@xemacs.org>
3339
3340         * ftp.c (print_length): Consistently print \n at end of the
3341         "Length" line.
3342
3343 2005-05-14  Hrvoje Niksic  <hniksic@xemacs.org>
3344
3345         * openssl.c (ssl_connect): Announce the beginning and the end of
3346         the SSL handshake when in debug mode.
3347
3348         * wget.h (PTR_FORMAT): New macro for easier printing of pointer
3349         values.  Use %0*lx along with PTR_FORMAT instead of %p.
3350
3351 2005-05-14  Hrvoje Niksic  <hniksic@xemacs.org>
3352
3353         * http.c (gethttp): Would forget to close the connection when
3354         keep_alive was not used.
3355
3356 2005-05-13  Hrvoje Niksic  <hniksic@xemacs.org>
3357
3358         * openssl.c (pattern_match): Document the code that decides
3359         whether "*" matches ".".
3360
3361 2005-05-12  Hrvoje Niksic  <hniksic@xemacs.org>
3362
3363         * ftp-ls.c (ftp_index): Use %d to print the port number, which is
3364         now int.
3365         From Steven M. Schweda's VMS patches.
3366
3367 2005-05-12  Hrvoje Niksic  <hniksic@xemacs.org>
3368
3369         * url.c (rewrite_shorthand_url): Don't rewrite "https://host" to
3370         "ftp://https//host" when SSL is not used.
3371
3372 2005-05-11  Hrvoje Niksic  <hniksic@xemacs.org>
3373
3374         * openssl.c (ssl_check_server_identity): Renamed to
3375         ssl_check_certificate because it does more than just checking the
3376         server's identity.
3377         (ssl_check_certificate): Tell the user about
3378         --no-check-certificate.
3379
3380 2005-05-11  Hrvoje Niksic  <hniksic@xemacs.org>
3381
3382         * openssl.c (ssl_init): Always use SSL_VERIFY_NONE, so that the
3383         handshake finishes even if the certificate is invalid.  That way
3384         ssl_check_server_identity can provide better diagnostics on why
3385         the verification failed.
3386
3387 2005-05-11  Hrvoje Niksic  <hniksic@xemacs.org>
3388
3389         * openssl.c (pattern_match): New function.
3390         (ssl_check_server_identity): Treat peer certificate common name as
3391         wildcard.
3392
3393 2005-05-10  Hrvoje Niksic  <hniksic@xemacs.org>
3394
3395         * openssl.c (ssl_check_server_identity): Print certificate subject
3396         and issuer.
3397
3398 2005-05-10  Hrvoje Niksic  <hniksic@xemacs.org>
3399
3400         * res.c (res_register_specs): Correctly pass pointers to
3401         hash_table_get_pair.
3402
3403 2005-05-10  Hrvoje Niksic  <hniksic@xemacs.org>
3404
3405         * http.c (gethttp): Call ssl_check_server_identity.
3406
3407         * openssl.c (ssl_check_server_identity): New function, verifies
3408         that the host name in the certificate matches the actual host
3409         name.
3410         (verify_cert_callback): Removed, since it didn't do anything
3411         except returning the preverify_ok argument.
3412
3413         * connect.c (fd_transport_context): Allow retrieval of the context
3414         pointer registered with fd_register_transport.
3415
3416 2005-05-09  Hrvoje Niksic  <hniksic@xemacs.org>
3417
3418         * openssl.c (verify_cert_callback): Renamed from verify_callback.
3419         Always return the received "ok" value.  Print the X509 name in
3420         debug mode.
3421         (ssl_init): Enable partial writes in SSL context.
3422
3423 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
3424
3425         * http.c (http_loop): Check for wildcards in the URL path
3426         component, not in the whole URL.
3427
3428         * ftp.c (ftp_loop): Check for wildcards in URL path before
3429         unescaping, so the users can escape globbing metacharacters with %
3430         escapes.
3431
3432 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
3433
3434         * init.c (run_command): Correctly interpret the return value of
3435         parse_line.
3436         (commands): Re-alphabetize.
3437
3438 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
3439
3440         * netrc.c (parse_netrc): Explicitly check for assignment != NULL
3441         to silence warning from Borland C.
3442
3443         * url.c (sync_path): Don't unnecessarily increment p.
3444         (url_parse): Don't unnecessarily set url_encode to NULL just
3445         prior to return from the function.
3446
3447 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
3448
3449         * log.c (escnonprint_internal): Place variable declarations
3450         before other statements.
3451
3452 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
3453
3454         * html-url.c: Include recur.h.
3455
3456         * http.c (request_new): Define as accepting no args.
3457
3458 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
3459
3460         * url.c (strpbrk_or_eos): Made inline.  Use strchr(s, '\0') for
3461         finding the NUL char position.
3462
3463 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
3464
3465         * url.c (decide_copy_method): Renamed to char_needs_escaping.
3466         Since it now returns only two possible values, change it to return
3467         boolean (int).
3468
3469 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
3470
3471         * ftp-basic.c (ftp_request): Prevent newlines in VALUE causing
3472         inadvertent sending of multiple FTP commands.
3473
3474 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
3475
3476         * url.c (decide_copy_method): Never cause reencode_escapes to
3477         decode % escapes; it is too intrusive and breaks some servers.
3478
3479 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
3480
3481         * http.c (gethttp): When tunnelling SSL traffic over proxy with
3482         CONNECT, we're really talking to the remote server directly.
3483         Because of this, the request-line argument must be the URL path
3484         rather than the whole URL, as it would be when using regular
3485         proxies.
3486         Reported by Charles Lane.
3487
3488 2005-05-06  Hrvoje Niksic  <hniksic@xemacs.org>
3489
3490         * init.c (cmd_spec_useragent): Allow empty User-Agent.
3491
3492         * http.c (gethttp): Don't print "unknown authentication scheme"
3493         for failed Basic authentication.
3494         (SET_USER_AGENT): Don't set user-agent if opt.useragent is empty.
3495         (gethttp): Use alloca for allocation of www_authenticate.
3496
3497 2005-05-06  Hrvoje Niksic  <hniksic@xemacs.org>
3498
3499         * main.c (print_help): Fix wording of --secure-protocol help text.
3500
3501 2005-05-06  Hrvoje Niksic  <hniksic@xemacs.org>
3502
3503         * cmpt.c (strstr): Updated from glibc 2.3.5.
3504
3505 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
3506
3507         * http.c (http_atotm): Zero out the whole struct tm being passed
3508         to strptime.
3509
3510 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
3511
3512         * main.c (main): Propagate option name to setoptval.
3513
3514         * init.c (setoptval): Accept another argument, OPTNAME.  Propagate
3515         that argument as the option name independently of the actual
3516         command, determined by command_by_name(com).
3517
3518 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
3519
3520         * init.c (parse_line): Make the return value indicate whether
3521         there was a syntax error or a setter failed.
3522         (run_wgetrc): Return an indication on whether an error has been
3523         encountered.
3524         (initialize): Abort if there have been errors running either
3525         .wgetrc file.
3526
3527 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
3528
3529         * log.c (copy_and_escape): Slightly reduce code repetition between
3530         the two loops.
3531
3532 2005-05-05  Charles C.Fu  <ccwf@bacchus.com>
3533
3534         * utils.c (proclist): Strip leading slash when calling fnmatch
3535         too, otherwise wildcard comparisons always fail.
3536
3537 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
3538
3539         * utils.c (touch): Set access time to current time.
3540
3541 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
3542
3543         * url.c (url_unescape): Don't unescape %00, it effectively
3544         truncates the string.
3545
3546 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
3547
3548         * log.c (copy_and_escape): Replace the FOR_URI argument with a
3549         slightly more general mechanism for specifying different kinds of
3550         escape.
3551
3552 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
3553
3554         * ftp-basic.c (ftp_response): Fix printing FTP server response.
3555
3556 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
3557
3558         * retr.c (limit_bandwidth_reset): Reset sleep_adjust.
3559         (limit_bandwidth): Don't allow huge "adjustment" values that
3560         result from being suspended for a while.
3561
3562 2005-05-04  Hrvoje Niksic  <hniksic@xemacs.org>
3563
3564         * wget.h: If gettext was found but libtintl.h wasn't, declare
3565         gettext's return type to avoid type mismatches.
3566
3567 2005-05-03  Hrvoje Niksic  <hniksic@xemacs.org>
3568
3569         * url.c (url_parse): Rename label `error' to avoid conflict with
3570         identifier.
3571
3572         * retr.c (fd_read_body): Rename label `out' to avoid conflict with
3573         identifier.
3574         (fd_read_hunk): Use explicit double constant.
3575         (retrieve_from_file): Don't use string concatenation.
3576         (sleep_between_retrievals): Make sure xsleep is called with a
3577         `double' argument.
3578         (no_proxy_match): Define as static, like it is declared.
3579
3580         * progress.c (bar_create): Use 0.0 instead of 0 because K&R
3581         compilers can't automatically promote it.
3582
3583         * http-ntlm.c (ntlm_output): Replace \xHH sequences with \OOO for
3584         the sake of old compilers.
3585
3586         * ftp.c (ftp_loop_internal): Don't use string concatenation.
3587
3588         * http.c (request_send): Use explicit double constants when
3589         calling fd_read and fd_write.
3590         (post_file): Ditto.
3591         (gethttp): Ditto.
3592         (skip_short_body): Ditto.
3593
3594         * ftp-basic.c: When calling fd_write, specify the last argument as
3595         a `double' constant for the sake of K&R compilers which don't see
3596         the prototype and therefore can't promote it to double
3597         automatically.
3598
3599         * cookies.c (cookie_jar_load): Rename abort label to abort_cookie
3600         to avoid name conflict in K&R compilers.
3601
3602 2005-04-29  Hrvoje Niksic  <hniksic@xemacs.org>
3603
3604         * ptimer.c (posix_init): Since we allow _POSIX_MONOTONIC_CLOCK==0,
3605         it is not enough to check for _POSIX_MONOTONIC_CLOCK-0, we must
3606         also check for defined(_POSIX_MONOTONIC_CLOCK).
3607
3608 2005-04-28  Hrvoje Niksic  <hniksic@xemacs.org>
3609
3610         * ftp.c, hash.c, connect.c, host.c, http.c: Remove unreached code,
3611         such as "break" following return or abort.
3612
3613 2005-04-28  Hrvoje Niksic  <hniksic@xemacs.org>
3614
3615         * init.c (commands): Wrap the use of opt.random_file in #ifdef
3616         HAVE_SSL.
3617
3618 2005-04-28  Hrvoje Niksic  <hniksic@xemacs.org>
3619
3620         * http.c (gethttp): Correctly set the user agent.
3621
3622 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
3623
3624         * init.c (cmd_spec_useragent): Free the old value of
3625         opt.useragent before setting the new one.
3626
3627 2005-04-27  Mauro Tortonesi  <mauro@ferrara.linux.it>
3628
3629         * main.c: Map --ftp-password, --http-password and --proxy-password to
3630         the new ftppassword, httppassword and proxypassword commands
3631         respectively.  Document the --user and --password options in the help
3632         string.
3633
3634 2005-04-27  Mauro Tortonesi  <mauro@ferrara.linux.it>
3635
3636         * ftp.c: Add support for --user and --password.
3637
3638         * http.c: Add support for --user and --password.
3639
3640         * init.c: Deprecated ftppasswd, httppasswd, login, passwd and
3641         proxypasswd commands.  Added ftppassword, ftpuser, httppassword,
3642         password, proxypassword and user commands.
3643
3644         * main.c: Renamed --ftp-passwd to --ftp-password.  Added --ftp-user,
3645         --http-password, --password, --proxy-password and --user.  Deprecated
3646         --http-passwd and --proxy-passwd.  Added documentation for new options
3647         and removed documentation for deprecated options in the help string.
3648
3649         * options.h (struct options): Added user and passwd members to handle
3650         --user and --password respectively.  Renamed ftp_acc and ftp_pass
3651         members to ftp_user and ftp_passwd for consistency.
3652
3653 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
3654
3655         * main.c (print_help): Advertise "DER", not "ASN1".
3656
3657 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
3658
3659         * openssl.c (init_prng): Disable the weak random seed by default.
3660
3661         * http.c (gethttp): Simplify SSL initialization; disable SSL when
3662         anything goes wrong with the initialization.
3663
3664         * options.h (struct options): New option opt.random_file.
3665
3666 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
3667
3668         * init.c: Wrap private key commands in IF_SSL.
3669
3670 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
3671
3672         * openssl.c (ssl_init): Ditto.
3673
3674         * options.h (struct options): Allow separate specification of key
3675         type and certificate type.
3676
3677         * init.c (cmd_spec_cert_type): Provide a "der" synonym for "asn1"
3678         certificate encoding.
3679
3680 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
3681
3682         * openssl.c: Renamed "gen_sslfunc.c" to "openssl.c" and
3683         "gen_sslfunc.h" to "openssl.h".  This reflects the intent of
3684         openssl.c encapsulating the OpenSSL-specific code.
3685
3686 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
3687
3688         * init.c: Renamed "closure" (a synonym for context in some
3689         cultures) to "place", which more accurately reflects the usage.
3690
3691 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
3692
3693         * gen_sslfunc.c (ssl_init): Use default locations for loading the
3694         certificate bundles.
3695         (ssl_init_prng): Disable the cryptographically weak PRNG
3696         initialization fallback.
3697
3698         * init.c: Renamed SSL command-line arguments and wgetrc commands.
3699         (defaults): Check the server certificate by default.
3700
3701 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
3702
3703         * cookies.c (cookie_handle_set_cookie): Delete the part of the
3704         path after the trailing slash.
3705
3706         * http.c (gethttp): Call cookie_handle_set_cookie with path that
3707         begins with '/'.
3708
3709 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
3710
3711         * http.c (gethttp): Call skip_short_body only if keep_alive is in
3712         use.
3713         (gethttp): Send the User-Agent header with the CONNECT request as
3714         well.
3715
3716 2005-04-25  Hrvoje Niksic  <hniksic@xemacs.org>
3717
3718         * main.c (option_data): Removed support for the undocumented flag
3719         --use-proxy.
3720
3721 2005-04-25  Hrvoje Niksic  <hniksic@xemacs.org>
3722
3723         * main.c (option_data): Don't treat -Y as a boolean switch; treat
3724         it as a value switch instead, so "-Y off" continues to work.
3725
3726 2005-04-24  Hrvoje Niksic  <hniksic@xemacs.org>
3727
3728         * utils.c (aprintf): Delete unreachable statement.
3729
3730 2005-04-24  Hrvoje Niksic  <hniksic@xemacs.org>
3731
3732         * host.c (cmp_prefer_ipv4): New function.
3733         (cmp_prefer_ipv6): New function.
3734         (lookup_host): Use the appropriate comparator according to
3735         opt.prefer_family.
3736
3737         * init.c: New option prefer_family.
3738
3739         * host.c (is_valid_ipv6_address): Spell NS_* constants in lower
3740         case to avoid clash with system headers.
3741         (lookup_host): Reorder the addresses so that IPv4 ones come first.
3742
3743         * utils.c (stable_sort): New function.
3744
3745 2005-04-24  Hrvoje Niksic  <hniksic@xemacs.org>
3746
3747         * connect.c (retryable_socket_connect_error): Return 0 for
3748         ENETUNREACH and EHOSTUNREACH.
3749
3750 2005-04-23  Hrvoje Niksic  <hniksic@xemacs.org>
3751
3752         * cmpt.c: Reenable the memmove implementation for systems that
3753         lack it.
3754
3755         * http.c (gethttp): Store the "authorized" state of the persistent
3756         connection.
3757         (request_remove_header): New function.
3758         (gethttp): Don't send the "Basic" authentication if the connection
3759         is already authorized.
3760
3761 2005-04-23  Hrvoje Niksic  <hniksic@xemacs.org>
3762
3763         * utils.c (base64_encode): Treat input as unsigned chars.
3764         Required for correct encoding of binary stuff.
3765
3766 2005-04-23  Hrvoje Niksic  <hniksic@xemacs.org>
3767
3768         * http-ntlm.c: Format the function definitions in an
3769         ansi2knr-friendly fashion.
3770
3771 2005-04-22  Hrvoje Niksic  <hniksic@xemacs.org>
3772
3773         * http.c (gethttp): Handle multiple WWW-Authentication headers,
3774         only one of which is recognized.  Those are sent by IIS with NTLM
3775         authorization.
3776         (create_authorization_line): Propagate information whether
3777         authorization is finished.
3778         (gethttp): Only stop authorization when it's really finished, not
3779         after fixed two steps.
3780
3781 2005-04-21  Hrvoje Niksic  <hniksic@xemacs.org>
3782
3783         * gen_sslfunc.c (ssl_init): Fix warning message text; mark the
3784         message as translatable.
3785
3786 2005-04-21  Hrvoje Niksic  <hniksic@xemacs.org>
3787
3788         * main.c (print_help): Print the EGD option outside the cluster of
3789         SSL options.
3790
3791 2005-04-21  Hrvoje Niksic  <hniksic@xemacs.org>
3792
3793         * http-ntlm.c (ntlm_output): Fix setting the domain.
3794         Suggested by Sami Krank.
3795
3796 2005-04-20  Mauro Tortonesi  <mauro@ferrara.linux.it>
3797
3798         * connect.c: Set IPV6_V6ONLY socket option when -6 switch is used.
3799
3800 2005-04-20  FUJISHIMA Satsuki  <sf@FreeBSD.org>
3801
3802         * http.c (request_set_header): Fix the check whether a new header
3803         needs to be allocated.
3804
3805 2005-04-18  Hrvoje Niksic  <hniksic@xemacs.org>
3806
3807         * utils.c (base64_encode): Use the parameter order that makes more
3808         sense.  Return the length of the base64 written.  Updated all
3809         callers.
3810
3811 2005-04-17  Hrvoje Niksic  <hniksic@xemacs.org>
3812
3813         * http.c (request_set_header): Free NAME when VALUE is NULL and
3814         freeing the header name is requested.
3815
3816 2005-04-17  Hrvoje Niksic  <hniksic@xemacs.org>
3817
3818         * snprintf.c (fmtstr): Declare VALUE as const char *.
3819         Based on patch by Russ Allbery.
3820
3821 2005-04-17  Hrvoje Niksic  <hniksic@xemacs.org>
3822
3823         * snprintf.c (fmtfp): More correct handling of significant digit
3824         count with %g -- 0.002 has one significant digit, not three.
3825
3826 2005-04-16  Hrvoje Niksic  <hniksic@xemacs.org>
3827
3828         * retr.c (fd_read_body): Respect read timeout with non-interactive
3829         or no progress gauge -- treat ETIMEDOUT specially only when
3830         progress_interactive.
3831         Reported by FUJISHIMA Satsuki.
3832
3833 2005-04-16  FUJISHIMA Satsuki  <sf@FreeBSD.org>
3834
3835         * http.c (gethttp): Don't use HTTP/1.0 persistent connections over
3836         proxy.
3837
3838 2005-04-16  Hrvoje Niksic  <hniksic@xemacs.org>
3839
3840         * snprintf.c: Use the PARAMS macro to handle prototypes.  Write
3841         function definitions in the ansi2knr-friendly way.
3842         (fmtstr): If string precision is specified, don't read VALUE past
3843         it.
3844         (dopr): Actually print %g and %e formats.
3845         (fmtfp): Fix a bug that caused 0.01 to be printed as 0.1.
3846         (fmtfp): Use LLONG in floating point conversions to be able to
3847         convert more digits.
3848         (fmtfp): Interpret precision as number of significant digits with
3849         %g.
3850         (fmtfp): Omit trailing decimal zeros with %g.
3851
3852         * snprintf.c: Don't include <ctype.h> because none of it is used.
3853         Include strings.h/string.h, as per Autoconf.
3854
3855 2005-04-15  Hrvoje Niksic  <hniksic@xemacs.org>
3856
3857         * ptimer.c: Use _POSIX_TIMERS - 0 > 0, which handles the case when
3858         _POSIX_TIMERS is defined but empty, as well as the case when it is
3859         undefined.  Do the same with the check for _POSIX_MONOTONIC_CLOCK.
3860         Suggested by Larry Jones.
3861
3862 2005-04-15  Hrvoje Niksic  <hniksic@xemacs.org>
3863
3864         * ptimer.c: Check that _POSIX_TIMERS is defined as well as > 0.
3865         Problem reported by Steven M. Schweda.
3866
3867 2005-04-14  Hrvoje Niksic  <hniksic@xemacs.org>
3868
3869         * http.c (skip_short_body): Print the skipped body data in debug
3870         mode.
3871         (skip_short_body): Don't skip more than 4k of body data.
3872         (skip_short_body): Return whether the skipping was successful.
3873         (gethttp): If skip_short_body failed, invalidate the connection.
3874
3875 2005-04-12  Gisle Vanem  <giva@bgnett.no>
3876
3877         * ftp.c (getftp): Ditto.
3878
3879         * http.c (gethttp): Open the output file in binary mode.
3880
3881 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
3882
3883         * hash.c: Conditionalize including config.h on HAVE_CONFIG_H
3884         instead of on STANDALONE.
3885
3886 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
3887
3888         * gen_sslfunc.c (ssl_print_errors): Made static.
3889         (ssl_print_errors): Eliminate potentially dangerous fixed-size
3890         error buffer.  Passing NULL to ERR_error_string causes it to use
3891         its own static buffer, which is fine for our purposes.
3892
3893         * gen_sslfunc.c: Include gen_sslfunc.h.  Make the declarations of
3894         ssl_init and ssl_conect match the actual definitions.
3895         (ssl_connect): Simply return a boolean, the SSL context is no
3896         longer useful as a return value.
3897
3898         * retr.c: Don't include SSL headers; we don't need them.
3899
3900 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
3901
3902         * config-post.h: Don't define _VA_LIST under Solaris; it breaks
3903         compilation with GCC 3.4 under Solaris 10.  (It was defined to
3904         avoid a warning with previous versions of GCC.)
3905
3906 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
3907
3908         * xmalloc.c (register_ptr): Warn the user to increase SZ prior to
3909         aborting.
3910
3911 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
3912
3913         * convert.c (convert_cleanup): Free converted_files.
3914
3915 2005-04-10  Hrvoje Niksic  <hniksic@xemacs.org>
3916
3917         * wget.h (DEBUGP): Use __builtin_expect to give a hint to GCC that
3918         opt.debug is false in the vast majority of cases.
3919
3920 2005-04-10  Hrvoje Niksic  <hniksic@xemacs.org>
3921
3922         * config-post.h: Declare alloca as void *, not char *.
3923
3924 2005-04-09  Hrvoje Niksic  <hniksic@xemacs.org>
3925
3926         * recur.c (download_child_p): When -p is used, (temporarily)
3927         ignore accept/reject rules for HTMLs, even when they are at the
3928         maximum recursion depth.  That is because with -p we are, if
3929         necessary, overstepping the max. depth to get the requisites.
3930
3931 2004-06-12  Larry Jones <lawrence.jones@ugsplm.com>
3932
3933         * recur.c (download_child_p): Correct the logic in check number 6:
3934         test opt.reclevel (not DEPTH) against INFINITE_RECURSION.
3935
3936 2005-04-09  Hrvoje Niksic  <hniksic@xemacs.org>
3937
3938         * url.c: Use "static const" in preference to "const static".
3939         Sun's cc warns that "storage class after type is obsolescent".
3940
3941         * url.c (urlchr_table): Don't mark ~ as unsafe, too many broken
3942         web sites are confused when ~ is changed to %7E.  Their servers
3943         redirect /%7Efoo/ to /~foo/, which Wget again accesses using %7E,
3944         causing further redirections, therefore looping infinitely.  See
3945         Debian bug #301624 for an example.
3946
3947 2005-04-09  Hrvoje Niksic  <hniksic@xemacs.org>
3948
3949         * alloca.c: Include wget.h to be able to use xmalloc.  In addition
3950         to defining malloc to xmalloc, also define free to xfree.
3951
3952 2005-04-09  Hrvoje Niksic  <hniksic@xemacs.org>
3953
3954         * http-ntlm.c (ntlm_output): Use "char", not "unsigned char" for
3955         ntlmbuf.  Our base64 functions accept char anyway.
3956         (ntlm_output): Join up the format string, since we nominally
3957         support K&R compilers.
3958         (ntlm_output): Ditto.
3959
3960 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
3961
3962         * ptimer.c: Use Windows timers under Cygwin, whose POSIX timer
3963         implementation is incomplete.
3964
3965 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
3966
3967         * ptimer.c (struct ptimer): Remove the unused initialized field.
3968
3969         * ptimer.c: Renamed function parameters from WT (which used to
3970         stand for wget_timer or wtimer) to PT.
3971
3972 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
3973
3974         * ptimer.c (posix_init): Be smarter about choosing clocks.  In
3975         decreasing order of preference, use CLOCK_MONOTONIC,
3976         CLOCK_HIGHRES, and CLOCK_REALTIME.
3977         (ptimer_allocate): Removed.
3978
3979         * ptimer.c: Refactor the code by cleanly separating the
3980         architecture-dependent code from the architecture-independent
3981         code.
3982
3983 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
3984
3985         * ptimer.c (ptimer_init): Explicitly check that
3986         _POSIX_MONOTONIC_CLOCK is *both* defined and >=0.  (Undefined
3987         symbols are >=0.)
3988
3989 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
3990
3991         * ptimer.c (ptimer_diff): Fix typo affecting Windows build.
3992
3993 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
3994
3995         * ptimer.c (ptimer_init): In fact, _POSIX_MONOTONIC_CLOCK needs to
3996         be >= 0.
3997
3998         * ptimer.c (ptimer_init): Check whether _POSIX_MONOTONIC_CLOCK is
3999         defined instead of whether it's greater than 0.  glibc defines it
4000         to 0, but still makes it available via sysconf.
4001
4002 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
4003
4004         * mswindows.c (str_to_int64): Rename OVERFLOW and UNDERFLOW to
4005         INT64_OVERFLOW and INT64_UNDERFLOW, since those names are used.
4006
4007 2005-04-07  Hrvoje Niksic  <hniksic@xemacs.org>
4008
4009         * ptimer.c: New file.  Move the "wtimer" functions from utils.c to
4010         this file and rename them to ptimer_.
4011
4012 2005-04-07  Hrvoje Niksic  <hniksic@xemacs.org>
4013
4014         * host.c (NO_ADDRESS): Define NO_ADDRESS only after the system
4015         headers have been included.
4016
4017 2005-04-06  Hrvoje Niksic  <hniksic@xemacs.org>
4018
4019         * http.c (pconn): Include NTLM data, which is per-connection.
4020         (known_authentication_scheme_p): Recognize NTLM authorization.
4021         (create_authorization_line): Call ntlm_input and ntlm_output.
4022
4023         * http-ntlm.c: New file, donated by Daniel Stenberg and originally
4024         written for curl, heavily modified for Wget.
4025
4026         * utils.c (base64_encode): Relocated from http.c, since it is now
4027         used by http-ntlm.c, and will possibly be used elsewhere.
4028         (base64_decode): New function, originally based on code from GNU
4029         recode.
4030
4031 2005-04-02  Hrvoje Niksic  <hniksic@xemacs.org>
4032
4033         * ftp.c (ftp_loop): Ditto.
4034
4035         * ftp-basic.c (ftp_pasv): Use the xzero shorthand for memset(0).
4036         (ftp_lpsv): Ditto.
4037
4038 2005-04-05  Mauro Tortonesi  <mauro@ferrara.linux.it>
4039
4040         * Makefile.in: removed string_t.c from list of source files.
4041
4042 2005-04-04  Mauro Tortonesi  <mauro@ferrara.linux.it>
4043
4044         * string_t.c: Removed.
4045
4046         * string_t.h: Removed.
4047
4048 2005-04-02  Hrvoje Niksic  <hniksic@xemacs.org>
4049
4050         * url.c (rewrite_shorthand_url): Only accept recognized schemes.
4051         That way "foo:80" will correctly be rewritten to "http://foo:80"
4052         instead of left unchanged and ultimately rejected because of
4053         "unsupported scheme foo".
4054
4055 2005-03-31  Hrvoje Niksic  <hniksic@xemacs.org>
4056
4057         * utils.c (number_to_string): Avoid explicit 64-bit constants;
4058         construct them by multiplication at compile-time.
4059
4060         * utils.c, elsewhere: Don't append "L" to 32-bit integer
4061         constants; we aren't really compilable on 16-bit systems anyway.
4062
4063         * hash.c (prime_size): Remove primes larger than 2^31, but include
4064         2^31-1, which is prime.
4065
4066 2005-03-30  Hrvoje Niksic  <hniksic@xemacs.org>
4067
4068         * utils.c (string_set_to_array): New function.
4069
4070         * convert.c: Replace the use of "slists" with sets/hash-tables,
4071         which in fact suit the intended purpose much better.
4072         downloaded_html_list is removed altogether.
4073
4074 2005-03-29  Hrvoje Niksic  <hniksic@xemacs.org>
4075
4076         * ftp.h (enum): Rename GLOBALL, GETALL, and GETONE to
4077         GLOB_GLOBALL, GLOB_GETALL, and GLOB_GETONE to avoid conflict with
4078         Linux headers.
4079
4080 2005-03-29  Hrvoje Niksic  <hniksic@xemacs.org>
4081
4082         * utils.c (numdigit): More correct handling of negative numbers.
4083
4084 2005-03-21  Hrvoje Niksic  <hniksic@xemacs.org>
4085
4086         * http.c (gethttp): Print the human-readable size.
4087
4088         * ftp.c (getftp): Print the human-readable size of the file to be
4089         downloaded.
4090
4091         * utils.c (human_readable): New function.
4092
4093         * utils.c: Renamed "legible" to "with_thousand_seps",
4094         "legible_large_int" to "with_thousand_seps_large", and "legible_1"
4095         to "add_thousand_seps".
4096
4097 2005-03-21  Hrvoje Niksic  <hniksic@xemacs.org>
4098
4099         * http.c (gethttp): Inhibit persistent connections when talking to
4100         proxies, as mandated by RFC 2068.
4101
4102 2005-03-20  Hrvoje Niksic  <hniksic@xemacs.org>
4103
4104         * url.c (unescape_single_char): New function.
4105         (url_escape_dir): Use it to unescape slashes in directory
4106         components.
4107         (url_string): Escape unsafe chars in host name, except for the ':'
4108         charaters, which can appear in IPv6 addresses.
4109
4110         * main.c (main): Don't access the cookie jar directly.
4111
4112         * log.c (escnonprint_internal): Correctly calculate the needed
4113         string size.  Don't forget the buffer's new size after having
4114         reallocated it.
4115         (log_cleanup): New function.  Free the escnonprint ring data.
4116
4117         * init.c (cleanup): Don't free the cookie jar explicitly, it is
4118         now done by http_cleanup.
4119         (cleanup): opt.user_headers is now a vector, free it with
4120         free_vec.
4121
4122         * http.c (gethttp): Make sure to free the request data, the status
4123         message, and the response data before returning from the function.
4124         (save_cookies): New function.
4125         (http_cleanup): Free the cookie jar here.
4126
4127         * hash.c: Renamed string_hash to hash_string and ptrhash to
4128         hash_pointer.  Exported hash_pointer.
4129
4130         * xmalloc.c: Organized malloc_table (previously malloc_debug) as a
4131         simple EQ hash table.  register_ptr and unregister_ptr are now of
4132         O(1) complexity.
4133
4134         * xmalloc.c: Renamed "*_debug" to debugging_* and "*_real" to
4135         checking_*.
4136
4137 2005-03-12  Hrvoje Niksic  <hniksic@xemacs.org>
4138
4139         * utils.c (debug_test_md5): Moved to gen-md5.c.
4140
4141         * mswindows.h: Don't declare inet_ntop, since we don't use it.
4142
4143         * mswindows.h: For consistency, also wrap closesocket, it being
4144         a Winsock call.
4145
4146         * mswindows.h: Don't declare sleep and usleep; we're defining
4147         xsleep now.
4148
4149         * mswindows.h (mkdir): Don't special-case Borland C, _mkdir
4150         works there as well.
4151
4152         * host.c: Don't include winsock header files; the correct ones
4153         are already included by mswindows.h.
4154
4155         * mswindows.c (xsleep): Round toward the nearest millisecond
4156         in an attempt to avoid average short sleeps.
4157
4158         * utils.c (wtimer_granularity): Report correct values for
4159         Windows timers and for high-resolution timers.
4160
4161         * utils.c (wtimer_initialize_once): New function, called to
4162         initialize the timer frequency.
4163
4164         * utils.c: Replace the use of GetSystemTime with high-resolution
4165         counters under Windows.  When high-resolution counters are
4166         unavailable, use GetTickCount().
4167
4168 2005-03-15  Hrvoje Niksic  <hniksic@xemacs.org>
4169
4170         * retr.c (fd_read_body): Undo the 2004-11-18 change.  Instead,
4171         always be "exact".
4172
4173 2005-03-17  Hrvoje Niksic  <hniksic@xemacs.org>
4174
4175         * ftp-basic.c (ftp_login): Don't free the string if ftp_response
4176         returned an error status because the line didn't get allocated in
4177         the first place.
4178
4179 2005-03-15  Hrvoje Niksic  <hniksic@xemacs.org>
4180
4181         * http.c (read_http_response_head): Limit the response size to 64k
4182         bytes.
4183
4184         * retr.c (fd_read_hunk): Accept a MAXSIZE argument that limits the
4185         number of bytes the function is allowed to allocate.
4186         (fd_read_line): Limit the line to 4096 bytes.
4187
4188 2005-03-12  Hrvoje Niksic  <hniksic@xemacs.org>
4189
4190         * wget.h: Include options.h after wgint has been defined.
4191
4192         * options.h (struct options): Declare options processed with
4193         cmd_bytes as wgint, not long.
4194
4195 2005-03-18  Hrvoje Niksic  <hniksic@xemacs.org>
4196
4197         * init.c (cmd_file): Use concat_strings.
4198
4199         * http.c (basic_authentication_encode): Use concat_strings.
4200
4201         * ftp-ls.c (ftp_index): Use concat_strings.
4202
4203         * ftp-basic.c (ftp_request): Use concat_strings.
4204
4205         * utils.c (concat_strings): New function.
4206
4207 2005-03-12  Hrvoje Niksic  <hniksic@xemacs.org>
4208
4209         * init.c (simple_atof): Handle negative numbers; skip whitespace
4210         before the number.
4211         (simple_atoi): Ditto.  Also, check for overflow and underflow.
4212         (cmd_number): Bail out on negative numbers.
4213         (parse_bytes_helper): Ditto.
4214
4215 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
4216
4217         * http.c (gethttp): Handle multiple Set-Cookie headers sent by
4218         remote server.
4219
4220 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
4221
4222         * init.c (defaults): Use passive FTP by default.
4223
4224 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
4225
4226         * mswindows.c: Provide wrappers to Winsock functions that set
4227         errno to WSAGetLastError() in case of failure.  Also provide a
4228         Windows-specific version of strerror.
4229
4230         * mswindows.h: Wrap calls to socket, bind, connect, recv, send,
4231         select, getsockname, getpeername, and setsockopt.
4232
4233 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
4234
4235         * url.c (url_parse): Reject port numbers larger than 65535.  We
4236         also check for overflow while parsing port numbers.
4237
4238 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
4239
4240         * utils.c (read_file): Don't use wgint for file size; LFS won't
4241         work since the file is mmap'ed as a whole.
4242
4243         * options.h: Don't include stdio.h.
4244
4245         * log.c: Ditto.
4246
4247         * init.c: Disambiguate assignment from non-zero test to avoid
4248         Borland C warning.
4249
4250         * http.c (response_new): Don't needlessly post-increment count.
4251
4252         * hash.c: Include stdio.h.
4253
4254         * gnu-md5.h: Don't include stdio.h.
4255
4256         * getopt.h (struct option): Always use const.
4257
4258         * ftp.c (getftp): Avoid unnecessary assignment to RES to avoid
4259         Borland C warning.
4260
4261         * ftp-ls.c: Disambiguate assignment from non-zero test to avoid
4262         Borland C warning.
4263
4264         * cmpt.c (strptime_internal): Don't initialize rp_backup when
4265         !_NL_CURRENT to avoid Borland C warning.
4266
4267 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
4268
4269         * utils.c (fopen_excl): Fix parse error when O_BINARY is
4270         available.
4271
4272 2005-03-05  Hrvoje Niksic  <hniksic@xemacs.org>
4273
4274         * url.c (url_file_name): Don't allow hosts named ".." to be
4275         appended as path elements.
4276
4277 2005-03-03  Hrvoje Niksic  <hniksic@xemacs.org>
4278
4279         * retr.c (retrieve_url): Escape location header.
4280
4281         * http.c (print_server_response_1): Escape server response when
4282         printing it.
4283         (gethttp): Escape host name, status message, location header, and
4284         content type.
4285         (http_loop): Escape error message from server.
4286
4287         * host.c (lookup_host): Escape host name when printing it.
4288
4289         * ftp.c (getftp): Escape user name when printing it.
4290         (getftp): Escape remote file and directory for printing.
4291         (getftp): Escape server listing when printing it.
4292         (ftp_retrieve_list): Escape link name and file name.
4293         (ftp_retrieve_glob): Escape file name.
4294
4295         * ftp-basic.c (ftp_response): Escape server response when printing
4296         it.
4297
4298         * cookies.c (parse_set_cookies): Escape the cookie field when
4299         printing it.
4300         (parse_set_cookies): Escape contents of remote header.
4301         (cookie_handle_set_cookie): Escape host name and cookie domain.
4302
4303         * connect.c (connect_to_ip): Escape the host name.
4304
4305         * log.c (escnonprint): New function, used for printing strings
4306         coming from the server that possibly contain non-ASCII characters.
4307         (escnonprint_uri): Ditto.
4308
4309 2005-02-24  Hrvoje Niksic  <hniksic@xemacs.org>
4310
4311         * ftp.c (getftp): Ditto.
4312
4313         * http.c (gethttp): When we're not supposed to overwrite files,
4314         use fopen_excl to open the file and recompute the file name.
4315
4316         * log.c (redirect_output): Use unique_create to avoid a race
4317         condition.
4318
4319         * mswindows.c (fake_fork_child): Use unique_create.
4320
4321         * utils.c (fopen_excl): New function that opens a stdio stream
4322         with the O_EXCL flag (where available).
4323         (unique_create): New function, like unique_name, but also creating
4324         the file and returning a file pointer.
4325         (fork_to_background): Use unique_create to create the file
4326         immediately to avoid race condition with multiple instances of
4327         wget -b.
4328
4329 2005-02-24  Hrvoje Niksic  <hniksic@xemacs.org>
4330
4331         * host.c (lookup_host): Test for AI_ADDRCONFIG directly, instead
4332         of checking for HAVE_GETADDRINFO_AI_ADDRCONFIG.
4333
4334 2005-02-23  Hrvoje Niksic  <hniksic@xemacs.org>
4335
4336         * host.c (is_valid_ipv6_address): Move here from url.c.
4337         (lookup_host): If the address is numeric, don't print the
4338         "resolving..." line, don't set up DNS timeouts, and set the
4339         AI_NUMERICHOST hint, where available.
4340
4341 2005-02-26  Gisle Vanem  <giva@bgnett.no>
4342
4343         * utils.c: Use the nnnLL syntax under GCC.  Define struct_stat to
4344         struct _stati64 under __MINGW32__ as well as under MS VC.
4345
4346 2005-02-26  Hrvoje Niksic  <hniksic@xemacs.org>
4347
4348         * utils.c: Use the nnnI64 syntax for __int64 constants under all
4349         Windows compilers.
4350         (SPRINTF_WGINT): Use "%I64" under all Windows compilers.
4351
4352         * mswindows.h (WGINT_MAX): Use the nnnI64 syntax for
4353         __int64 constants under all Windows compilers.
4354         (struct_stat): Use `struct stati64' under Borland C.
4355         (fstat): Don't redefine to _fstati64 under Borland.
4356
4357         * mswindows.c: Define str_to_int64 under Borland C as well as
4358         under (older) Visual C.
4359
4360 2005-02-25  Hrvoje Niksic  <hniksic@xemacs.org>
4361
4362         * ftp.c (getftp): Initialize err to suppress compiler warning.
4363
4364 2005-02-24  Hrvoje Niksic  <hniksic@xemacs.org>
4365
4366         * ftp.c (ftp_expected_bytes): Fix bug that caused infloop because
4367         of not correctly skipping the '(' character.
4368
4369 2005-02-24  Hrvoje Niksic  <hniksic@xemacs.org>
4370
4371         * mswindows.c (wget_ftello): Removed.
4372
4373         * mswindows.h: Remove bogus definition of stat.
4374         (wget_ftello): Remove the leftover ftello replacement.
4375
4376 2005-02-20  Hrvoje Niksic  <hniksic@xemacs.org>
4377
4378         * mswindows.c (wget_ftello): Wget's replacement for ftello.
4379
4380         * utils.c (file_size): Use ftello where available.
4381
4382         * ftp-ls.c (ftp_parse_unix_ls): Use str_to_wgint to parse the file
4383         size.
4384         (ftp_parse_winnt_ls): Ditto.
4385
4386         * ftp-basic.c (ftp_size): Use str_to_wgint to convert number to
4387         wgint; pass 10 instead of 0 as the BASE argument.
4388
4389         * ftp.c (ftp_expected_bytes): Use str_to_wgint to parse the file
4390         size.
4391
4392         * sysdep.h (LARGE_INT_FMT): Use __int64 as LARGE_INT on
4393         MSVC/Windows; print it with "%I64".
4394
4395         * wget.h: Define a `wgint' type, normally aliased to (the possibly
4396         64-bit variant of) off_t.
4397
4398         * all: Use `wgint' instead of `long' for numeric variables that
4399         can hold file sizes.
4400
4401         * utils.c (number_to_string): Support printing of `wgint'
4402         argument.
4403         (number_to_static_string): New function.
4404
4405         * all: Replace printf("%ld", long_value) with printf("%s",
4406         number_to_static_string(wgint_value)).
4407
4408 2005-02-18  Mauro Tortonesi <mauro@ferrara.linux.it>
4409
4410         * main.c: Added the --ftp-passwd command line option.
4411
4412         * init.c: Renamed command passwd to ftppasswd.
4413
4414 2005-02-11  Mauro Tortonesi <mauro@ferrara.linux.it>
4415
4416         * string_t.c: Fixed a bug in do_escape and triggered escape of
4417         backslashes in string_escape to avoid ambiguities in the result
4418         string.
4419
4420 2005-02-10  Mauro Tortonesi <mauro@ferrara.linux.it>
4421
4422         * string.h: Renamed to string_t.h to fix a compilation conflict
4423         with the string.h header in the standard C library.
4424
4425         * string.c: Renamed to string_t.c for consistency with string.h.
4426
4427         * string_t.c: Ditto.
4428
4429         * string_t.h: Ditto.
4430
4431 2004-12-31  Mauro Tortonesi <mauro@ferrara.linux.it>
4432
4433         * string.c: New file.
4434
4435         * string.h: New file.
4436
4437         * Makefile.in: Added string.c to the list of modules to compile.
4438
4439         * main.c: Updated copyright.
4440
4441 2004-11-18  Ulf Harnhammar <ulf.harnhammar.9485@student.uu.se>
4442
4443         * ftp-ls.c: Fixed a problem in ftp_parse_winnt_ls that could allow a
4444         malicious remote FTP server to crash wget.
4445
4446 2004-11-18  Hans-Andreas Engel <engel@node.ch>
4447
4448         * http.c: Enable --convert-links (-k) when a single page is downloaded
4449         via --output-document (-O).
4450
4451 2004-11-18  Mauro Tortonesi <mauro@deepspace6.net>
4452
4453         * connect.c: Minor correction to the comment in front of fd_peek.
4454
4455 2004-11-18  Leonid Petrov <nouser@lpetrov.net>
4456
4457         * retr.c: Fix a timeout problem in fd_read_body when using http_proxy.
4458
4459 2004-11-15  YAMAZAKI Makoto <Yamazaki.Makoto@fujixerox.co.jp>
4460
4461         * netrc.c: Fix termination by assertion bug in netrc parsing.
4462
4463 2004-05-09  David Fritz  <zeroxdf@att.net>
4464
4465         * mswindows.c (fake_fork): Pass entire command line to the child
4466         process.
4467
4468 2004-03-31  Hrvoje Niksic  <hniksic@xemacs.org>
4469
4470         * http.c (gethttp): Fix typo: SCHEME_SSL -> SCHEME_HTTPS.
4471
4472 2004-03-30  Hrvoje Niksic  <hniksic@xemacs.org>
4473
4474         * http.c (gethttp): Send the Proxy-Authorization header over
4475         non-SSL connections too.
4476
4477 2004-03-25  David Fritz  <zeroxdf@att.net>
4478
4479         * mswindows.c (fake_fork_child): Ignore error code when
4480         OpenFileMapping() fails; assume it failed because the object does
4481         not exist.
4482
4483 2004-03-24  David Fritz  <zeroxdf@att.net>
4484
4485         * mswindows.c (fake_fork): New function.
4486
4487         * mswindows.c (fork_to_background): Use it.
4488
4489 2004-03-19  David Fritz  <zeroxdf@att.net>
4490
4491         * mswindows.c (ws_hangup): Incorporate old fork_to_background()
4492         code.  Add event name argument.
4493         (fork_to_backgorund): Now a simple wrapper around ws_hangup().
4494         (ws_handler): Correctly handle the case when neither CTRLC_BACKGND
4495         nor CTRLBREAK_BACKGND are defined.  Don't bother handling close,
4496         logoff, or shutdown events.  Call ws_hangup() with the correct
4497         event name; don't assume it was CTRL+Break.
4498
4499 2004-03-19  Hrvoje Niksic  <hniksic@xemacs.org>
4500
4501         * url.c (url_parse): Decode %HH sequences in host name.
4502
4503 2004-03-04  Hrvoje Niksic  <hniksic@xemacs.org>
4504
4505         * convert.c (local_quote_string): Quote "#" as "%23" and "%" as
4506         "%25" when creating links to local files.
4507
4508 2004-03-02  David Fritz  <zeroxdf@att.net>
4509
4510         * mswindows.c (ws_percenttitle): Guard against future changes by
4511         doing nothing if the proper variables have not been initialized.
4512         Clamp percentage value.
4513
4514 2004-03-04  Gisle Vanem  <giva@bgnett.no>
4515
4516         * retr.c (fd_read_body): Don't change console title if quiet.
4517
4518 2004-02-25  David Fritz  <zeroxdf@att.net>
4519
4520         * mswindows.c (set_sleep_mode): Remove argument and return value.
4521         Call GetModuleHandle() instead of LoadLibrary()/FreeLibrary() for
4522         kernel32.dll.  Use typedef for function-pointer.  Don't cast
4523         l-value.  Don't use dereference operator when calling through
4524         function-pointer.
4525         (ws_startup): Update call to set_sleep_mode().
4526         (ws_cleanup): Remove call to set_sleep_mode().
4527
4528 2004-02-23  David Fritz  <zeroxdf@att.net>
4529
4530         * http.c (http_loop): Ditto.
4531
4532         * ftp.c (ftp_loop_internal): Update call to ws_changetitle().
4533
4534         * main.c (main): Don't bother calling ws_changetitle().
4535
4536         * mswindows.h (ws_changetitle): Update prototype.
4537
4538         * mswindows.c (ws_changetitle): Remove second argument.  Use
4539         xfree_null().
4540         (ws_percenttitle): Only update title when percentage has changed.
4541
4542 2004-02-23  David Fritz  <zeroxdf@att.net>
4543
4544         * mswindows.h: Ditto.
4545
4546         * mswindows.c: Misc. formatting/comment tweaks throughout.
4547
4548 2004-02-20  David Fritz  <zeroxdf@att.net>
4549
4550         * main.c (print_help): Remove call to ws_help().
4551
4552         * mswindows.c (ws_help): Remove.
4553
4554         * mswindows.h (ws_help): Remove.
4555
4556 2004-02-16  David Fritz  <zeroxdf@att.net>
4557
4558         * init.c (home_dir): Use aprintf() instead of xmalloc()/sprintf().
4559         Under Windows, if $HOME is not defined, use the directory that
4560         contains the Wget binary instead of hard-coded `C:\'.
4561         (wgetrc_file_name): Under Windows, look for $HOME/.wgetrc then, if
4562         not found, look for wget.ini in the directory of the Wget binary.
4563
4564         * mswindows.c (ws_mypath): Employ slightly more robust methodology.
4565         Strip trailing path separator.
4566
4567 2004-02-06  Hrvoje Niksic  <hniksic@xemacs.org>
4568
4569         * http.c (gethttp): Respect --ignore-length.
4570         (gethttp): Inhibit keep-alive if --ignore-length is specified.
4571
4572 2004-02-06  Hrvoje Niksic  <hniksic@xemacs.org>
4573
4574         * connect.c (sockaddr_set_data): Zero out
4575         sockaddr_in/sockaddr_in6.  Apparently BSD-derived stacks need this
4576         when binding a socket to local address.
4577
4578 2004-02-04  Hrvoje Niksic  <hniksic@xemacs.org>
4579
4580         * hash.c: Make the file compilable outside Wget source tree when
4581         -DSTANDALONE is used.
4582
4583 2004-01-29  Hrvoje Niksic  <hniksic@xemacs.org>
4584
4585         * utils.c (determine_screen_width): Return 0 if not running on
4586         Windows or on a TIOCGWINSZ-capable system.
4587
4588 2004-01-28  David Fritz  <zeroxdf@att.net>
4589
4590         * utils.c (determine_screen_width): Correctly determine console
4591         width under Windows.
4592
4593 2004-01-28  Christian Biere  <christianbiere@gmx.de>
4594
4595         * progress.c (bar_set_params): Fixed syntax error when HAVE_ISATTY
4596         was undefined.
4597
4598         * ftp.c (ftp_loop_internal): Allocate a larger buffer in case
4599         "try" gets translated to something large.  Ditto in http_loop in
4600         http.c.
4601
4602         * http.c (response_header_copy): Don't write to buf[BUFSIZE].
4603
4604         * ftp-opie.c (skey_response): Eliminate unnecessary string
4605         concatenation; just call gen_md5_update twice.
4606
4607 2004-01-25  Hrvoje Niksic  <hniksic@xemacs.org>
4608
4609         * utils.c (xsleep): Don't call usleep with values larger than
4610         1,000,000.
4611
4612 2003-12-16  Hrvoje Niksic  <hniksic@xemacs.org>
4613
4614         * http.c (gethttp): Fix generation of `Content-Length'.
4615
4616 2003-12-15  Gisle Vanem  <giva@bgnett.no>
4617
4618         * url.c (url_skip_credentials): Fixed return value; 'url' if no
4619         credentials.
4620
4621 2003-12-14  Hrvoje Niksic  <hniksic@xemacs.org>
4622
4623         * url.c (url_skip_credentials): Return a pointer directly.
4624
4625 2003-12-14  Hrvoje Niksic  <hniksic@xemacs.org>
4626
4627         * url.c (url_file_name): Ditto.
4628         (parse_errors): Ditto.
4629
4630         * retr.c (retr_rate): Ditto.
4631
4632         * progress.c (create_image): Ditto.
4633
4634         * netrc.c (parse_netrc): Ditto.
4635
4636         * main.c (struct cmdline_option): Ditto.
4637         (redirect_output_signal): Ditto.
4638
4639         * init.c (commands): Ditto.
4640
4641         * ftp-ls.c (ftp_index): Ditto.
4642
4643         * cookies.c (check_domain_match): Declare the pointer to a literal
4644         string as `const'.
4645
4646 2003-12-12  Hrvoje Niksic  <hniksic@xemacs.org>
4647
4648         * retr.c (fd_read_body): Pass total size to progress_create, not
4649         the remaining amount.
4650
4651 2003-12-12  Hrvoje Niksic  <hniksic@xemacs.org>
4652
4653         * retr.c (fd_read_body): Don't fiddle with "interactive timeout"
4654         if read timeout is unset.
4655
4656 2003-12-12  Hrvoje Niksic  <hniksic@xemacs.org>
4657
4658         * connect.c (bind_local): Don't set the IPV6_V6ONLY option on the
4659         socket.
4660
4661 2003-12-06  Hrvoje Niksic  <hniksic@xemacs.org>
4662
4663         * url.c (url_file_name): Respect the setting of
4664         opt.protocol_directories.
4665
4666         * main.c (main): Only check for ret=='?' when longindex is unset.
4667         (option_data): New option --protocol-directories.
4668
4669 2003-12-06  Hrvoje Niksic  <hniksic@xemacs.org>
4670
4671         * ftp.c (getftp): Ditto.
4672
4673         * http.c (gethttp): Correctly calculate bandwidth as total data
4674         read divided with download time.
4675
4676         * retr.c (fd_read_body): Separate the return values for data
4677         written and read.
4678
4679 2003-12-05  Hrvoje Niksic  <hniksic@xemacs.org>
4680
4681         * http.c (H_REDIRECTED): Respect the HTTP/1.1 "303 See Other"
4682         response code.
4683         Suggested by Dan Razzell.
4684
4685 2003-11-30  Hrvoje Niksic  <hniksic@xemacs.org>
4686
4687         * retr.c (fd_read_body): Report the amount of data *written* as
4688         amount_read.  This is not entirely logical, but that's what the
4689         callers expect, and it's not easy to change.
4690
4691         * ftp.c (ftp_loop_internal): Ditto.
4692
4693         * http.c (http_loop): Be smarter about assigning restval; if we're
4694         in the nth pass of a download, simply use the information we have
4695         about how much data has been retrieved as restval.
4696
4697         * ftp.c (getftp): Ditto for FTP "REST" command.
4698
4699         * http.c (gethttp): When the server doesn't respect range, skip
4700         the first RESTVAL bytes of the read body.  Never truncate the
4701         output file.
4702
4703         * retr.c (fd_read_body): Support skipping initial STARTPOS octets.
4704
4705 2003-11-30  Hrvoje Niksic  <hniksic@xemacs.org>
4706
4707         * http.c (skip_short_body): Renamed skip_body to skip_short_body;
4708         don't bother calling fd_read_body.
4709
4710 2003-11-30  Hrvoje Niksic  <hniksic@xemacs.org>
4711
4712         * retr.c (fd_read_body): Sanitize arguments and document them
4713         better.  Make sure the timer is created and updated only if
4714         necessary.  Updated callers.
4715
4716 2003-11-30  Hrvoje Niksic  <hniksic@xemacs.org>
4717
4718         * http.c (skip_body): New function.
4719         (gethttp): Use it to skip the body of the responses we don't care
4720         to download.  That allows us to reuse the connection.
4721         (gethttp): Trust that the HEAD requests will not generate body
4722         data.
4723
4724         * retr.c (fd_read_body): Don't write to OUT if it's NULL.
4725
4726 2003-11-29  Hrvoje Niksic  <hniksic@xemacs.org>
4727
4728         * http.c (gethttp): Initialize SSL only the first time when SSL
4729         URL is downloaded.
4730
4731 2003-11-29  Hrvoje Niksic  <hniksic@xemacs.org>
4732
4733         * cookies.c (cookie_header): Only generate the contents of the
4734         header, not the leading "Cookie: " or the trailing "\r\n".
4735
4736         * http.c (gethttp): When adding headers specified with `--header',
4737         allow them to override the headers generated by Wget.
4738
4739         * init.c (cmd_spec_header): Made opt.user_headers a vector.
4740
4741         * http.c (request_new): New function.  Returns a request structure
4742         which can be modified in various ways, most notably by adding HTTP
4743         headers to the request.
4744         (request_set_header): New function for adding the header to the
4745         request.  If the header is already available, it gets replaced.
4746         (request_send): Construct and send the request.
4747         (gethttp): Use the request_* functions to generate the request.
4748
4749 2003-11-28  Hrvoje Niksic  <hniksic@xemacs.org>
4750
4751         * http.c (gethttp): Don't include the Proxy-Authorization header
4752         in the request tunneled through proxy.
4753
4754 2003-11-28  Hrvoje Niksic  <hniksic@xemacs.org>
4755
4756         * http.c (gethttp): Use the CONNECT handle to establish SSL
4757         passthrough through non-SSL proxies.
4758
4759 2003-11-28  Hrvoje Niksic  <hniksic@xemacs.org>
4760
4761         * init.c: Don't #include netinet/Winsock stuff.
4762
4763 2003-11-28  Hrvoje Niksic  <hniksic@xemacs.org>
4764
4765         * http.c: Deleted the old functions header_process,
4766         header_extract_number, header_exists, header_strdup,
4767         http_process_range, http_process_none, http_process_type, and
4768         http_process_connection.
4769
4770         * http.c (response_new): New function.
4771         (response_header_bounds): Ditto.
4772         (response_header_copy): Ditto.
4773         (response_header_strdup): Ditto.
4774         (response_status): Ditto.
4775         (gethttp): Use the new response_* functions to parse the response.
4776         Support HTTP/0.9 responses.
4777
4778 2003-11-27  Hrvoje Niksic  <hniksic@xemacs.org>
4779
4780         * progress.c (create_image): Don't calculate ETA if nothing has
4781         been downloaded yet, because it causes division by zero.
4782
4783 2003-11-27  Hrvoje Niksic  <hniksic@xemacs.org>
4784
4785         * connect.c (bind_local): Rename sa_len to addrlen because IRIX
4786         headers define sa_len as a macro.
4787
4788 2003-11-26  Hrvoje Niksic  <hniksic@xemacs.org>
4789
4790         * html-parse.c (convert_and_copy): Remove embedded newlines when
4791         AP_TRIM_BLANKS is specified.
4792
4793 2003-11-26  Hrvoje Niksic  <hniksic@xemacs.org>
4794
4795         * ftp.c: Set con->csock to -1 where rbuf_uninitialize was
4796         previously used.
4797
4798 2003-11-26  Hrvoje Niksic  <hniksic@xemacs.org>
4799
4800         * Makefile.in (http$o): Added the trailing backslash that was
4801         missing.
4802
4803 2003-11-21  Hrvoje Niksic  <hniksic@xemacs.org>
4804
4805         * headers.c: Removed.  The file is no longer relevant, now that no
4806         special handling of headers is done by the rbuf code.  Moved
4807         portions to http.c.
4808
4809 2003-11-21  Hrvoje Niksic  <hniksic@xemacs.org>
4810
4811         * rbuf.c: Removed.
4812
4813         * ftp-basic.c (ftp_response): Use fd_read_line.  No longer use
4814         struct rbuf.  Updated all callers.
4815
4816         * http.c (gethttp): Use fd_read_head to read all the headers in
4817         one go.
4818         (next_header): New function.
4819
4820         * retr.c (fd_read_line): New function: reads a line from FD,
4821         leaving the rest of the data unread.
4822         (fd_read_head): New function.
4823
4824         * connect.c (fd_peek): New function, implements peeking.
4825         (poll_internal): New function.
4826         (fd_read): Use it.
4827         (fd_write): Ditto.
4828         (fd_peek): Ditto.
4829         (fd_register_transport): Allow registering a "peeker" callback.
4830
4831 2003-11-20  Hrvoje Niksic  <hniksic@xemacs.org>
4832
4833         * connect.c: Renamed xread/xwrite/xclose to
4834         fd_read/fd_write/fd_close.  The "x" prefix is not appropriate
4835         because the semantics have diverged from read/write/close too
4836         significantly.  Updated all callers.
4837
4838 2003-11-20  Hrvoje Niksic  <hniksic@xemacs.org>
4839
4840         * connect.c (sock_write): It's not necessary to initialize RES.
4841
4842 2003-11-19  Hrvoje Niksic  <hniksic@xemacs.org>
4843
4844         * main.c (main): Don't reference opt.ipv4_only and opt.ipv6_only
4845         if IPv6 is disabled.
4846
4847 2003-11-19  Hrvoje Niksic  <hniksic@xemacs.org>
4848
4849         * connect.c (socket_has_inet6): Only compile it if IPv6 is enabled
4850         and AI_ADDRCONFIG is missing.
4851
4852 2003-11-18  Hrvoje Niksic  <hniksic@xemacs.org>
4853
4854         * gen_sslfunc.c (ssl_init_prng): Warn the user when using a weak
4855         random seed.
4856
4857 2003-11-18  Hrvoje Niksic  <hniksic@xemacs.org>
4858
4859         * host.c (address_list_contains): Renamed address_list_find to
4860         address_list_contains because its result is boolean.
4861
4862 2003-11-18  Hrvoje Niksic  <hniksic@xemacs.org>
4863
4864         * connect.c (select_fd): Return 1 if select is not available.
4865
4866 2003-11-17  Hrvoje Niksic  <hniksic@xemacs.org>
4867
4868         * connect.c (connect_to_host): Don't reference address list after
4869         releasing it.
4870
4871 2003-11-17  Hrvoje Niksic  <hniksic@xemacs.org>
4872
4873         * main.c (print_help): Fix alignment of FTP options output.
4874
4875 2003-11-17  Hrvoje Niksic  <hniksic@xemacs.org>
4876
4877         * host.c (lookup_host): Check for the ability to create IPv6
4878         sockets here.
4879
4880         * init.c (defaults): Don't auto-set --inet4-only on IPv6-less
4881         systems.
4882
4883 2003-11-16  Hrvoje Niksic  <hniksic@xemacs.org>
4884
4885         * main.c (print_help): Fix typo in `-O' help message.  Fix docs of
4886         -Y/--proxy.  Fix docs of `--cookies' and `--glob'.  Improve docs
4887         of --convert-links.  Fix docs of SSL options.
4888
4889 2003-11-16  Hrvoje Niksic  <hniksic@xemacs.org>
4890
4891         * ftp-basic.c: Don't include <arpa/inet.h> and others because
4892         they're no longer needed.
4893
4894 2003-11-16  Hrvoje Niksic  <hniksic@xemacs.org>
4895
4896         * main.c (main): Don't allow setting of both opt.ipv4_only and
4897         opt.ipv6_only.
4898
4899         * init.c (defaults): Mark opt.ipv4_only specially when set
4900         automatically.
4901
4902 2003-11-15  Hrvoje Niksic  <hniksic@xemacs.org>
4903
4904         * host.c (lookup_host): Use AI_ADDRCONFIG only if the family is
4905         unspecified.  This ensures that specifying `--no-inet4' on systems
4906         where IPv6 resolves, but doesn't work behaves the same regardless
4907         of the availability of AI_ADDRCONFIG.
4908
4909 2003-11-15  Hrvoje Niksic  <hniksic@xemacs.org>
4910
4911         * host.c: Don't refer to the now-removed function
4912         forget_host_lookup in the documentation of lookup_host.
4913
4914 2003-11-15  Hrvoje Niksic  <hniksic@xemacs.org>
4915
4916         * http.c (persistent_available_p): Correctly specify the endpoint
4917         argument to socket_ip_address.
4918         (gethttp): When printing the "reusing connection to..." message,
4919         specify the host name of the reused connection, not the current
4920         host name.  That makes more sense because it provides a useful
4921         piece of information -- we know to which host we're supposed to
4922         connect anyway!
4923
4924 2003-11-15  Hrvoje Niksic  <hniksic@xemacs.org>
4925
4926         * init.c: Make sure the options are in alphabetic order!
4927
4928         * host.c (lookup_host): Merge lookup_host_passive and lookup_host
4929         after all -- having both would result in some code duplication.
4930         (lookup_host): Set hints.ai_family to AF_INET if ipv4_only is
4931         requested.  Likewise, set it to AF_INET6 for ipv6_only.  Specify
4932         AI_ADDRCONFIG where available.
4933         (lookup_host): New flag LH_REFRESH that specifies that a cached
4934         entry for HOST should be refreshed.
4935         (cache_query): New function.
4936         (cache_store): Ditto.
4937         (cache_remove): Ditto.
4938         (forget_host_lookup): No longer necessary, replaced with static
4939         function cache_remove.
4940
4941 2003-11-14  Hrvoje Niksic  <hniksic@xemacs.org>
4942
4943         * main.c: Enable -4 and -6 only if IPv6 is enabled.
4944
4945 2003-11-14  Hrvoje Niksic  <hniksic@xemacs.org>
4946
4947         * connect.c (register_transport): Renamed from register_extended.
4948         Explain the intended usage.
4949
4950 2003-11-14  Hrvoje Niksic  <hniksic@xemacs.org>
4951
4952         * url.c (uri_merge): Merging "foo" and "bar" should result in
4953         "bar", not in "foo/bar".
4954         (path_simplify): Don't remove empty path elements; don't
4955         special-case leading slash.
4956         (path_simplify): Don't swallow ".."'s at the beginning of string.
4957         E.g. simplify "foo/../../bar" as "../bar", not as "bar".
4958         (append_uri_pathel): Defang ".." path element upon encountering
4959         it.
4960
4961 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
4962
4963         * http.c (persistent_available_p): Don't attempt to talk to two
4964         different SSL sites over the same secure connection.
4965
4966 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
4967
4968         * http.c (gethttp): Ditto.
4969
4970         * ftp.c (getftp): Use retryable_socket_connect_error instead of
4971         CONNECT_ERROR.
4972
4973         * wget.h (CONNECT_ERROR): Removed.
4974
4975         * connect.c (retryable_socket_connect_error): New function instead
4976         of unsupported_socket_family_error.
4977
4978 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
4979
4980         * wget.h (CONNECT_ERROR): Use it.
4981
4982         * connect.c (unsupported_socket_family_error): New function.
4983
4984 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
4985
4986         * connect.c (bind_local): Renamed bindport to bind_local; return
4987         the socket directly.  Updated callers.
4988         (accept_connection): Renamed acceptport to accept_connection;
4989         return the created socket directly.  Updated callers.
4990
4991 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
4992
4993         * init.c (defaults): Turn on opt.ipv4_only if we're compiling with
4994         IPv6, and AI_ADDRINFO is not available, and AF_INET6 sockets can't
4995         be created.
4996
4997 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
4998
4999         * host.c (lookup_host): Document the fact that the addresses are
5000         returned in order.
5001
5002 2003-11-12  Hrvoje Niksic  <hniksic@xemacs.org>
5003
5004         * utils.c: Use limits.h only where available.
5005
5006         * hash.c: Use INVALID_PTR and INVALID_PTR_BYTE.  Include limits.h.
5007
5008 2003-11-11  Hrvoje Niksic  <hniksic@xemacs.org>
5009
5010         * main.c: Added options --inet4-only and --inet6-only.
5011
5012 2003-11-11  Hrvoje Niksic  <hniksic@xemacs.org>
5013
5014         * host.c (host_errstr): Use the more standard message "Unknown
5015         host".
5016
5017 2003-11-10  Hrvoje Niksic  <hniksic@xemacs.org>
5018
5019         * connect.c (connect_to_host): Use that flag to decide whether to
5020         re-resolve the host name.
5021
5022         * host.c (struct address_list): Added a flag that maintains
5023         whether the connection worked at some point.
5024
5025 2003-11-10  Hrvoje Niksic  <hniksic@xemacs.org>
5026
5027         * host.c (lookup_host): Special-case the numeric addresses only in
5028         the non-IPv6 case.
5029
5030 2003-11-10  Hrvoje Niksic  <hniksic@xemacs.org>
5031
5032         * connect.c (resolve_bind_address): Call lookup_host_passive.
5033         Make sure that opt.bind_address is resolved only once.
5034
5035         * host.c (lookup_host_passive): New function, handles "passive"
5036         lookups.
5037         (lookup_host): Remove the passive flags.  Remove the
5038         family-related flags -- use ip_default_family instead.
5039
5040 2003-11-09  Hrvoje Niksic  <hniksic@xemacs.org>
5041
5042         * html-url.c: Get URLs from <object data="...">.
5043
5044 2003-11-09  Hrvoje Niksic  <hniksic@xemacs.org>
5045
5046         * main.c (option_data): Specify the command to use for --mirror.
5047
5048 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
5049
5050         * cookies.c (cookie_handle_set_cookie): Specify exact match for
5051         unspecified domains.
5052
5053 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
5054
5055         * main.c (main): Removed one-letter options `-C', `-g', `-G', and
5056         `-s'.
5057
5058 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
5059
5060         * main.c (main): Add --dont-remove-listing for backward
5061         compatibility with previous versions.
5062         (print_help): Fix typo, spotted by Dennis Smit.
5063
5064 2003-11-08  Gisle Vanem  <giva@bgnett.no>
5065
5066         * ftp-basic.c: Support Windows-2000 ftp servers. Win-2000 *is*
5067         Win-NT 5.0 so calling it ST_WINNT is okay I guess.
5068
5069 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
5070
5071         * progress.c (update_speed_ring): Clear the speed ring when the
5072         download stalls.
5073
5074         * retr.c (get_contents): Specify 0.95s read timeout, so that the
5075         progress gauge can be updated even when data arrives very slowly
5076         or stalls.
5077
5078 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
5079
5080         * utils.c (wtimer_allocate): Bless the use of wtimer_read on a
5081         timer that has merely been allocated because get_contents() does
5082         that.
5083         (wtimer_update): Abort if the timer is not initialized.
5084
5085 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
5086
5087         * retr.c (get_contents): Pass the timer to limit_bandwidth().
5088
5089         * utils.c (wtimer_update): New function instead of wget_elapsed;
5090         just update the timer, but don't return anything.
5091         (wtimer_read): Read and return the last known value of the timer.
5092
5093 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
5094
5095         * http.c (persistent_available_p): Instead of matching all the
5096         addresses of HOST and last host, determine the peer's IP address
5097         with socket_ip_address and see if that address is one of those
5098         HOST resolves to.
5099
5100         * host.c (address_list_match_all): Removed.
5101         (address_list_find): New function, finds an IP address in the
5102         address list.
5103
5104         * ftp.c (ftp_do_pasv): Get the peer's address here, and pass it to
5105         ftp_epsv so it doesn't need to call getpeername.
5106
5107         * ftp-basic.c (ftp_port): Use socket_ip_address instead of
5108         getpeername.
5109         (ftp_lprt): Ditto.
5110
5111         * connect.c (socket_ip_address): Replaces conaddr, generalized to
5112         either get peer's or local address.
5113         (sockaddr_get_data): Made local to this file.
5114
5115 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
5116
5117         * hash.c (HASH_POSITION): Explicitly accept the hash function.
5118         (grow_hash_table): Extract ht->hash_function outside the loop.
5119         (hash_table_remove): Ditto.
5120         (hash_table_clear): Fill entries with 0xff to clear them.
5121         (hash_table_remove): Mark entries as deleted with the correct
5122         marker.
5123
5124 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
5125
5126         * http.c (persistent_available_p): No reason for the host lookup
5127         to be silent -- it's a lookup like any other.
5128
5129 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
5130
5131         * connect.c (register_extended): Check that fd >= 0.
5132
5133 2003-11-07  Hrvoje Niksic  <hniksic@xemacs.org>
5134
5135         * connect.c (LAZY_RETRIEVE_INFO): Set LAST_INFO.
5136
5137 2003-11-07  Hrvoje Niksic  <hniksic@xemacs.org>
5138
5139         * hash.c (NON_EMPTY): Use the all-bit-set value as the marker that
5140         the field is empty.  This allows NULL pointer and 0 value to be
5141         used as keys, which is necessary for the connect.c code to work
5142         when fd==0.
5143         (hash_table_new): Fill mappings with 0xff.
5144         (grow_hash_table): Ditto.
5145
5146 2003-11-07  Hrvoje Niksic  <hniksic@xemacs.org>
5147
5148         * url.c (url_parse): Allow empty ports.
5149
5150 2003-11-07  Hrvoje Niksic  <hniksic@xemacs.org>
5151
5152         * main.c (print_help): Break the help string into multiple chunks.
5153         (cmdline_option): New option handler OPT_FUNCALL.  Generalized
5154         HANDLE_CMD to generic DATA.
5155         (option_data): Use the new OPT_FUNCALL feature.
5156
5157 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
5158
5159         * log.h: Declare log_init, log_close, and
5160         log_request_redirect_output here.
5161
5162 2003-11-05  Dennis Smit  <ds@nerds-incorporated.org>
5163
5164         * main.c: (main): added --preserve-permissions option.
5165
5166         * ftp.c (ftp_retrieve_list): added support for
5167         --preserve-permissions option.
5168
5169         * init.c: added support for --preserve-permission option.
5170
5171         * option.h: added support for --preserve-permission option.
5172
5173 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
5174
5175         * main.c (init_switches): New function.  Convert option_data to
5176         long_options and short_options, which can be fed to getopt_long.
5177         (main): Execute command-line options by consulting option_data.
5178
5179 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
5180
5181         * gen_sslfunc.c (ssl_read): Implement a more correct check for
5182         EINTR.
5183         (ssl_write): Ditto.
5184         (init_ssl): Use a global SSL context.
5185
5186 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
5187
5188         * connect.c (xclose): Free INFO even if it doesn't provide a
5189         closer.
5190
5191 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
5192
5193         * connect.c: Updated all callers of
5194         iread/ssl_iread/iwrite/ssl_iwrite to use xread and xwrite instead.
5195
5196         * rbuf.h (struct rbuf): Removed the SSL member because SSL is
5197         handled automatically by xread.
5198
5199         * hash.c (ptrhash): Made private.
5200         (ptrcmp): Ditto.
5201         (inthash): Removed.
5202
5203         * connect.c (select_fd): Don't set errno, leave it to the caller.
5204
5205         * gen_sslfunc.c (connect_ssl): Use register_extended to register
5206         SSL callbacks for communication with SSL-enabled endpoints.
5207         (ssl_read): New function.
5208         (ssl_write): Ditto.
5209         (ssl_poll): Ditto.
5210         (ssl_close): Ditto.
5211
5212         * connect.c (register_extended): New function -- register
5213         callbacks for basic socket operations.
5214         (xread): Ditto.
5215         (xwrite): Ditto.
5216         (xclose): Ditto.
5217         (sock_read): New function, default implementation for reading.
5218         (sock_write): Ditto for writing.
5219         (sock_poll): Ditto for polling.
5220         (sock_close): Ditto for closing.
5221
5222 2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
5223
5224         * connect.c (bindport): Fix compilation under pre-C99 compilers.
5225
5226 2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
5227
5228         * connect.c (connect_to_ip): More compact error checking.
5229         (bindport): Don't treat failed setsockopt as a fatal error.
5230
5231 2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
5232
5233         * connect.c (resolve_bind_address): Use a more accurate error
5234         message -- we're not binding to ANY, we're disabling bind
5235         altogether.
5236
5237 2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
5238
5239         * cookies.c (save_cookies_mapper): Respect the setting of
5240         keep-session-cookies.
5241         (cookie_jar_load): Import session cookies.
5242         Based on code submitted by Nicolas Schodet.
5243
5244         * utils.c (datetime_str): Use information in TM when it's
5245         non-NULL.
5246
5247         * main.c (main): New option `--keep-session-cookies'.
5248
5249 2003-11-04  Hrvoje Niksic  <hniksic@xemacs.org>
5250
5251         * Makefile.in (realclean): Delete config.h.in.
5252
5253 2003-11-04  Hrvoje Niksic  <hniksic@xemacs.org>
5254
5255         * config-post.h: New file, included from now autogenerated
5256         config.h.in.
5257
5258 2003-11-04  Hrvoje Niksic  <hniksic@xemacs.org>
5259
5260         * progress.c (progress_handle_sigwinch): Don't call
5261         determine_screen_width() from the signal handler.  Instead, just
5262         set a volatile variable.
5263         (bar_create): Check whether SIGWINCH was received.
5264         (bar_update): Ditto.
5265
5266         * sysdep.h: Define SYSTEM_FNMATCH only if HAVE_FNMATCH_H is true.
5267
5268 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
5269
5270         * utils.c (xsleep): New function.  Uses nanosleep where available,
5271         resuming sleeps interrupted by signals.  Updated callers of sleep
5272         and usleep to use xsleep.
5273
5274 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
5275
5276         * ftp-basic.c (ftp_login): Remove shadowing (and bogus)
5277         declaration of SEED.
5278
5279 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
5280
5281         * log.c (logvprintf): Documented better.  Renamed to
5282         log_vprintf_internal to avoid confusion with the public API
5283         functions logprintf and logputs.
5284
5285 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
5286
5287         * wget.h (N_): Don't parenthesize argument.
5288
5289 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
5290
5291         * host.h (ADDRESS_IPV4_DATA): Don't take the address of in.s_addr
5292         because that doesn't work on machines that define it as bitfield.
5293
5294 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
5295
5296         * connect.c (select_fd): Generalize the third argument into WAIT,
5297         so that the caller can request waiting for both read and write.
5298         Updated callers.
5299
5300 2003-11-02  Hrvoje Niksic  <hniksic@xemacs.org>
5301
5302         * html-url.c (cleanup_html_url): Destroy the hash tables, don't
5303         just call free on them.
5304         (init_interesting): Use hash_table_put instead of string_set_add
5305         because we don't need the strdup that the latter function
5306         performs.
5307
5308         * init.c (cleanup): Don't pass NULL to cookie_jar_delete.
5309
5310         * xmalloc.c (xfree_real): Abort when passed a NULL pointer.
5311         (xfree_debug): Print at the file and line of the offending call to
5312         free.
5313
5314 2003-11-02  Hrvoje Niksic  <hniksic@xemacs.org>
5315
5316         * wget.h: Retired the `boolean' type.  Moved the DEFAULT_LOGFILE
5317         define to log.h.  Moved the INFINITE_RECURSION define to recur.h.
5318
5319         * xmalloc.h: Renamed FREE_MAYBE to xfree_null and moved the
5320         definition from wget.h to xmalloc.h.
5321
5322 2003-11-02  Hrvoje Niksic  <hniksic@xemacs.org>
5323
5324         * html-parse.c (decode_entity): New function; split the decoding
5325         of entities here.
5326         (convert_and_copy): Use it to decode entities.
5327         (decode_entity): Handle the &apos entity.
5328         (decode_entity): Don't decode Latin 1 numeric entities.  Don't
5329         decode &#0.
5330
5331 2003-11-01  Hrvoje Niksic  <hniksic@xemacs.org>
5332
5333         * ftp-opie.c (calculate_skey_response): Use uint32_t instead of
5334         `unsigned long' for the cheksum array.  Document the function.
5335
5336 2003-11-01  Hrvoje Niksic  <hniksic@xemacs.org>
5337
5338         * connect.c (acceptport): Don't call select_fd when timeout is not
5339         requested.
5340
5341 2003-11-01  Hrvoje Niksic  <hniksic@xemacs.org>
5342
5343         * host.c: Removed the ip_default_family global variable.
5344
5345         * host.c (lookup_host): Document the function.  Fixed declaration
5346         of VEC.
5347
5348 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
5349
5350         * various: Use new macros xnew, xnew0, xnew_array, and xnew0_array
5351         in various places.
5352
5353 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
5354
5355         * wget.h: Move declarations of malloc and logging code to
5356         xmalloc.h and log.h respectively to unclutter this file.
5357         (STRDUP_ALLOCA): Made it side-effect free.
5358
5359         * xmalloc.h: New files.  Define macros xnew, xnew0, xnew_array,
5360         and xnew0_array.
5361
5362         * xmalloc.c: New file.  Move the xmalloc routines here.
5363
5364 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
5365
5366         * connect.c (sockaddr_set_data): Remove the broken code that
5367         checked for NULL address.
5368
5369 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
5370
5371         * host.c (address_list_from_single): Removed.
5372         (address_list_from_ipv4_addresses): Renamed from
5373         address_list_from_vector.
5374
5375 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
5376
5377         * sysdep.h (CLOSE): Don't call close on file descriptors less than
5378         0, i.e. on uncreated sockets.
5379
5380         * connect.c (resolve_bind_address): Work on struct sockaddr
5381         directly.
5382         (connect_to_host): Replacement for connect_to_many.  Resolve HOST
5383         and connect to any of its addresses.  If we can't connect and the
5384         host name lookup was cached, try to resolve it again.  This should
5385         fix problems with hosts behind dynamic DNS.  Updated all callers.
5386         (connect_to_ip): Replacement for connect_to_one.  Removed SILENT;
5387         added the argument PRINT instead.  Updated all callers.
5388         (set_connection_host_name): Removed.
5389
5390         * host.c (address_list_address_at): New function instead of
5391         address_list_copy_one. It returns a pointer to ip_address *, so
5392         it's not necessary to copy the data.
5393         (address_list_cached_p): New function.
5394         (forget_host_lookup): Ditto.
5395
5396         * connect.c: Got rid of the MSOCK global variable.  Made bindport
5397         return the local socket it creates.  Added a new argument to
5398         acceptport, the socket to call accept on.  Updated callers.
5399         (closeport): Removed.
5400
5401         * connect.c: Moved the sockaddr code from host.c to this file,
5402         because most of that stuff is used for connecting, and has nothing
5403         to do with host names anyway.
5404         (sockaddr_set_data, sockaddr_get_data): New functions, replace the
5405         old sockaddr_set_address, sockaddr_set_port, sockaddr_get_address,
5406         and sockaddr_get_port.
5407
5408 2003-10-30  Hrvoje Niksic  <hniksic@xemacs.org>
5409
5410         * sysdep.h: Use `S >= 8' rather than `S == 8' when looking for
5411         large integers.
5412
5413 2003-10-30  Hrvoje Niksic  <hniksic@xemacs.org>
5414
5415         * url.c (append_uri_pathel): New argument ESCAPED_P that says
5416         whether [B, E) is to be treated as URL-escaped or not.  If
5417         ESCAPED_P is false, don't unescape the region.
5418         (url_file_name): u->file is not URL-escaped.
5419
5420 2003-10-30  Hrvoje Niksic  <hniksic@xemacs.org>
5421
5422         * retr.c (retrieve_from_file): Use retrieve_tree for
5423         page-requisites.
5424
5425         * main.c (main): Don't define opt.recursive when -p is used.
5426         Instead, make sure that recursion is used for HTTP in that case.
5427
5428 2003-10-29  Hrvoje Niksic  <hniksic@xemacs.org>
5429
5430         * host.h: Defined accessors for elements of ip_address.  Updated
5431         all callers.
5432         (address_list_match_all): Use memcmp in the non-IPv6 case.
5433
5434         * wget.h (CONNECT_ERROR): Don't retry connecting if connect()
5435         returned EAFNOSUPPORT.
5436
5437 2003-10-27  Mauro Tortonesi <mauro@deepspace6.net>
5438
5439         * connect.h: changed bindport prototype and added the related
5440         BIND_ON_IPV4_ONLY and BIND_ON_IPV6_ONLY flags.
5441
5442         * connect.c: changed bindport and resolve_bind_address to allow
5443         protocol-version specific DNS resolution. modified conaddr,
5444         acceptport and connect_to_one to make use of struct
5445         sockaddr_storage and of the new ip_address structure.
5446
5447         * ftp-basic.c: added LPRT/LPSV (RFC1639) support, refactored
5448         PORT/PASV (RFC959) and EPRT/EPSV (RFC2428) support code.
5449
5450         * ftp.c: added the ftp_do_port and ftp_do_pasv functions to
5451         handle FTP over IPv6.
5452
5453         * ftp.h: changed prototype of ftp_epsv and added prototypes for
5454         ftp_lpsv, ftp_lprt and ftp_eprt.
5455
5456         * host.c: renamed the
5457         wget_sockaddr_set_address and wget_sockaddr_get_addr, and
5458         wget_sockaddr_{s,g}et_port couples to sockaddr_{s,g}et_address and
5459         sockaddr_{g,s}et_port respectively.  changed
5460         address_list_match_all, address_list_from_addrinfo sockaddr_len,
5461         pretty_print_address, lookup_host, sockaddr_{s,g}et_address and
5462         sockaddr_{g,s}et_port to make use of struct sockaddr_storage and
5463         of the new ip_address structure.  removed map_ipv4_to_ip and
5464         map_ip_to_ipv4.
5465
5466         * host.h: redefined structure ip_address and removed structure
5467         wget_sockaddr.
5468
5469 2003-10-26  Hrvoje Niksic  <hniksic@xemacs.org>
5470
5471         * sysdep.h: Include inttypes.h where available.
5472
5473         * host.c: Switch from u_int32_t to uint32_t.
5474
5475 2003-10-26  Hrvoje Niksic  <hniksic@xemacs.org>
5476
5477         * netrc.c (parse_netrc): Reset the QUOTE flag after the closing
5478         quote.
5479
5480 2003-10-25  Hrvoje Niksic  <hniksic@xemacs.org>
5481
5482         * url.c (is_valid_ipv6_address): Reformat to GNU coding style.
5483         Use enums for NS_IN* constants.  Use ISXDIGIT.
5484
5485         * convert.c (construct_relative): Document better how the function
5486         works.
5487
5488 2003-10-23  Hrvoje Niksic  <hniksic@xemacs.org>
5489
5490         * config.h.in: Deploy preprocessor magic to avoid Ultrix's
5491         <netdb.h> include <bitypes.h> which defines its own u_int32_t.
5492         Reported by Bernhard Simon.
5493
5494 2003-10-23  Hrvoje Niksic  <hniksic@xemacs.org>
5495
5496         * version.c: Bump version.
5497
5498 2003-10-23  Hrvoje Niksic  <hniksic@xemacs.org>
5499
5500         * url.c: Ditto.
5501
5502         * html-parse.c (advance_declaration): Don't use trailing comma in
5503         enum because older compilers don't support it.
5504
5505         * utils.c: Don't redefine HAVE_SIGSETJMP.
5506
5507 2003-10-16  Hrvoje Niksic  <hniksic@xemacs.org>
5508
5509         * convert.c (construct_relative): Don't handle absolute files
5510         specially -- for example, -P/tmp/foo shouldn't imply that
5511         converted files must refer to "/tmp/foo/..."!
5512
5513 2003-10-15  Hrvoje Niksic  <hniksic@xemacs.org>
5514
5515         * http.c: Consider status 307 a valid redirect.
5516
5517 2003-10-15  Philip Stadermann  <philip.stadermann@credativ.de>
5518
5519         * ftp.c (ftp_retrieve_glob): Correctly loop through the list whose
5520         elements might have been deleted.
5521
5522 2003-10-13  Hrvoje Niksic  <hniksic@xemacs.org>
5523
5524         * html-url.c (tag_handle_meta): Set the Refresh link to expect
5525         HTML.
5526         (append_one_url): Renamed to append_url.
5527
5528 2003-10-13  Hrvoje Niksic  <hniksic@xemacs.org>
5529
5530         * sysdep.h: Only define u_int32_t.
5531
5532 2003-10-11  Hrvoje Niksic  <hniksic@xemacs.org>
5533
5534         * utils.c (large_int_to_string): Use snprintf() to print the
5535         number.  This will work even on systems where libc doesn't
5536         understand %lld, but the compiler does, because it will use our
5537         snprintf replacement.
5538
5539         * init.c (parse_bytes_helper): New function.
5540         (cmd_bytes): Use it to parse bytes, but cast the result to long.
5541         (cmd_bytes_large): Ditto, but store the result to LARGE_INT.  Used
5542         for --quota so that --quota=10G works even on machines without
5543         long long.
5544
5545         * options.h (struct options): Declare quota as LARGE_INT.
5546
5547         * retr.c (downloaded_exceeds_quota): Removed.
5548         (downloaded_increase): Ditto.
5549         (total_downloaded_bytes): New variable, replaces opt.downloaded,
5550         which was the wrong place for it anyway.  Updated callers of
5551         downloaded_exceeds_quota and downloaded_increase to check this
5552         variable directly.
5553
5554         * sysdep.h: Get rid of VERY_LONG_TYPE.  Use LARGE_INT for the same
5555         purpose, defined as `long', `long long' or `double', depending on
5556         size of long and whether long long is available.
5557
5558 2003-10-11  Hrvoje Niksic  <hniksic@xemacs.org>
5559
5560         * sysdep.h: Also check size of short for int32_t.
5561
5562 2003-10-11  Hrvoje Niksic  <hniksic@xemacs.org>
5563
5564         * host.c (lookup_host): Use u_int32_t to store the result of
5565         inet_addr().  That removes the need for offset fiddling, caring
5566         about endian-ness, etc.
5567
5568         * sysdep.h: Define int32_t and u_int32_t if not available.
5569
5570 2003-10-11  Hrvoje Niksic  <hniksic@xemacs.org>
5571
5572         * ftp-basic.c (ftp_epsv): Use socklen_t * as the third argument to
5573         getpeername.
5574
5575         * config.h.in: Define socklen_t stub.
5576
5577         * host.c (sockaddr_len): Return socklen_t.
5578
5579         * connect.c (conaddr): Use socklen_t as the third argument to
5580         accept, getsockname, and connect.
5581
5582 2003-10-10  Hrvoje Niksic  <hniksic@xemacs.org>
5583
5584         * recur.c (retrieve_tree): Don't descend into documents that are
5585         not expected to contain HTML, regardless of their content-type.
5586
5587         * html-url.c (tag_url_attributes): Record which attributes are
5588         supposed to yield HTML links that can be followed.
5589         (tag_find_urls): Propagate that information to the caller through
5590         struct urlpos.
5591
5592 2003-10-10  Hrvoje Niksic  <hniksic@xemacs.org>
5593
5594         * hash.c (find_mapping): Return the next available mapping when
5595         the key is not found, not NULL.
5596         (hash_table_put): Use find_mapping to find the storage for the new
5597         data.
5598         (hash_table_put): Grow the table before exceeding maximum
5599         fullness, not afterwards.
5600
5601 2003-10-10  Hrvoje Niksic  <hniksic@xemacs.org>
5602
5603         * hash.c (hash_table_new): Slightly change the meaning of the
5604         first parameter.  Instead of being the minimum initial size, it is
5605         now the minimum number of items that the hash table can take
5606         without needing to resize.
5607
5608 2003-10-09  Hrvoje Niksic  <hniksic@xemacs.org>
5609
5610         * html-url.c (init_interesting): Initialize interesting_tags and
5611         interesting_attributes as hash tables.  This simplifies the code
5612         immensely because hash tables handle allocation and remove
5613         duplicates automatically.
5614         (find_tag): Removed.
5615         (collect_tags_mapper): Instead of calling find_tag, simply get the
5616         entry from interesting_tags hash table, which is both simpler and
5617         faster.
5618
5619 2003-10-09  Hrvoje Niksic  <hniksic@xemacs.org>
5620
5621         * hash.c (hash_table_get): Declare hash-table argument as const.
5622         (find_mapping): Ditto.
5623         (hash_table_get_pair): Ditto.
5624         (hash_table_contains): Ditto.
5625         (hash_table_count): Ditto.
5626
5627 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
5628
5629         * html-url.c (get_urls_html): Parse the appropriate flags to
5630         html-parse.c.
5631
5632         * html-parse.c (map_html_tags): Accept FLAGS from the caller
5633         instead of examining OPT.
5634
5635 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
5636
5637         * html-url.c (find_tag): Switch to binary search.
5638
5639 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
5640
5641         * main.c (print_help): Fix typo; stured -> stored.
5642
5643 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
5644
5645         * getopt.c: Add definitions of getopt_long and getopt_long_only.
5646
5647 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
5648
5649         * config.h.in: Renamed DEBUG to ENABLE_DEBUG.  ENABLE_DEBUG is, I
5650         think, a better name, because it implies that debugging output is
5651         merely possible, not "on by default", as might be construed from
5652         just DEBUG.
5653
5654 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
5655
5656         * ftp.c (has_insecure_name_p): Define it here.
5657
5658         * utils.c (has_wildcards_p): Define it here.
5659
5660         * sysdep.h: Declare fnmatch-related macros here, if not using
5661         system fnmatch().  Update .c files to not declare fnmatch.h
5662         directly.
5663
5664         * cmpt.c (fnmatch): Moved here.  Use it only under non-GNU libc.
5665
5666 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
5667
5668         * getopt.c: Newer version, imported from Free libit.
5669
5670 2003-10-07  Hrvoje Niksic  <hniksic@xemacs.org>
5671
5672         * cookies.c (struct cookie): Remove unused backpointer to cookie
5673         jar.
5674
5675 2003-10-07  Hrvoje Niksic  <hniksic@xemacs.org>
5676
5677         * cmpt.c (memmove): Comment out, since it's no longer used.
5678
5679         * cookies.c (cookie_jar_generate_cookie_header): Allocate room for
5680         chains in one pass.
5681         (find_chains_of_host): Assume that the caller has allocated DEST
5682         to be sufficiently large to take all the data.
5683         (eliminate_dups): Run through the array and eliminate dups on the
5684         fly instead of using memmove.
5685         (cookie_jar_process_set_cookie): Free cookie->domain before
5686         re-setting it.
5687
5688 2003-10-05  Gisle Vanem  <giva@bgnett.no>
5689
5690         * mswindows.c (set_sleep_mode): Fix type of
5691         _SetThreadExecutionState.
5692
5693 2003-10-05  Hrvoje Niksic  <hniksic@xemacs.org>
5694
5695         * utils.c (file_size): Return -1 if fopen() returns NULL.  Prior
5696         to this patch, wget --post-file=nosuchfile dumped core.
5697
5698 2003-10-04  Gisle Vanem  <giva@bgnett.no>
5699
5700         * mswindows.c (run_with_timeout): Use WaitForSingleObject to wait
5701         for thread termination.
5702
5703 2003-10-04  Hrvoje Niksic  <hniksic@xemacs.org>
5704
5705         * log.c: Use `...' in function definitions; ansi2knr will convert
5706         them to va_dcl.  This allowed removal of the ugly VA_START_1 and
5707         VA_START_2 macros.
5708
5709 2003-10-03  Gisle Vanem  <giva@bgnett.no>
5710
5711         * connect.c: And don't include them here.
5712
5713         * mswindows.h: Include winsock headers here.
5714
5715 2003-10-03  Hrvoje Niksic  <hniksic@xemacs.org>
5716
5717         * html-parse.c (convert_and_copy): Move variable declarations
5718         before statements.
5719
5720 2003-10-02  Gisle Vanem  <giva@bgnett.no>
5721
5722         * mswindows.c (run_with_timeout): For Windows: Run the 'fun' in a
5723         thread via a helper function. Continually query the thread's
5724         exit-code until finished or timed out.
5725
5726 2003-10-02  Hrvoje Niksic  <hniksic@xemacs.org>
5727
5728         * wget.h (XMALLOC_ARRAY): Removed.
5729         (ALLOCA_ARRAY): Ditto.
5730
5731         * html-parse.c: Renamed alloca_p to resized.
5732         (GROW_ARRAY): Renamed DO_REALLOC_FROM_ALLOCA to GROW_ARRAY and
5733         returned it to html-parse.c, since nothing else was using it.
5734
5735 2003-10-02  Hrvoje Niksic  <hniksic@xemacs.org>
5736
5737         * retr.c (retrieve_url): Initialize DUMMY storage for DT.  Caught
5738         by valgrind.
5739
5740 2003-10-02  Hrvoje Niksic  <hniksic@xemacs.org>
5741
5742         * html-parse.c (convert_and_copy): Handle numeric entities in
5743         hexadecimal, &#xHH.
5744         (convert_and_copy): Copy the contents directly to the pool without
5745         a stack-allocated intermediary.
5746
5747 2003-10-02  Hrvoje Niksic  <hniksic@xemacs.org>
5748
5749         * utils.c (alarm_set): New function; use either setitimer or alarm
5750         to set up the alarm.
5751         (alarm_cancel): New function; cancel the alarm set up by
5752         alarm_set.
5753         (run_with_timeout): Use them.
5754
5755 2003-10-01  Hrvoje Niksic  <hniksic@xemacs.org>
5756
5757         * url.c (url_parse): Don't leak memory when a reencoded URL turns
5758         out to be invalid.
5759
5760         * url.c (parse_errors): Mark error messages for translation.
5761         (url_error): Translate error messages returned to the caller.
5762
5763 2003-10-01  Hrvoje Niksic  <hniksic@xemacs.org>
5764
5765         * ftp.c (ftp_loop_internal): Initialize TMRATE to NULL to shut up
5766         the compiler.
5767
5768 2003-09-26  Gisle Vanem  <giva@bgnett.no>
5769
5770         * src/mswindows.c: Added ws_percenttitle() showing progress in the
5771         window titlebar. Called from retr.c. Secured ws_mypath().
5772
5773         * windows/config.h.ms: alloca() prototype not needed.  Removed
5774         "#undef ENABLE_NLS"; should be in Makefile IMHO. Moved
5775         WGET_USE_STDARG from mswindows.h to config.ms.h because of #ifdef
5776         in log.c. (MSVC's vararg.h and stdarg.h are incompatible).
5777
5778 2003-09-29  Aaron Hawley <Aaron.Hawley@uvm.edu>
5779
5780         * ftp.c (getftp): --spider option should now work with FTP
5781         downloads.
5782         (ftp_loop_internal): quiet reports and calculations of downloads
5783         when --spider option set, nor try deleting when --delete-after
5784         also set.
5785         (ftp_loop): --spider will skip HTML-ification of .listing file.
5786
5787 2003-09-26  Gisle Vanem  <giva@bgnett.no>
5788
5789         * mswindows.c (read_registry): Removed.
5790         (set_sleep_mode): New function.
5791         (windows_main_junk): Call it.
5792
5793 2003-09-26  Gisle Vanem  <giva@bgnett.no>
5794
5795         * mswindows.c (read_registry): Fix invocation of registry
5796         functions.
5797
5798         * mswindows.c (read_registry): Condition definitions of sleep and
5799         usleep with not HAVE_SLEEP and HAVE_USLEEP respectively.  Define
5800         HAVE_SLEEP and HAVE_USLEEP under __DMC__.
5801
5802 2003-09-24  Hrvoje Niksic  <hniksic@xemacs.org>
5803
5804         * url.c (url_escape_1): Revert unintentional change to lowercase
5805         xdigit escapes.
5806         (url_escape_dir): Document that this function depends on the
5807         output of url_escape_1.
5808
5809 2003-09-23  Hrvoje Niksic  <hniksic@xemacs.org>
5810
5811         * progress.c (create_image): Print the current ETA if we're done
5812         with the download.
5813         (create_image): Change '-' display char to '+' in the progress bar.
5814
5815         * Makefile.in (clean): Remove .libs.
5816
5817 2003-09-23  Hrvoje Niksic  <hniksic@xemacs.org>
5818
5819         * cookies.c (struct cookie): New flag domain_exact.
5820         (update_cookie_field): Skip leading dot in domain.
5821         (find_matching_chains): Match numeric addresses exactly; don't
5822         needlessly copy HOST to the stack.
5823         (matching_cookie): Added argument HOST.  If cookie->domain_exact
5824         is set, check that HOST is equal to cookie->domain.
5825         (cookie_jar_load): Only use TAB as delimiter.  Document the
5826         meaning of DOMAIN-FLAG.  Skip leading dot in domain.
5827         (cookie_jar_load): Don't ignore DOMAIN-FLAG -- instead, set
5828         domain_exact to true if DOMAIN-FLAG is false.
5829         (save_cookies_mapper): If domain_exact is false, prepend the
5830         domain with dot, like Mozilla does.
5831
5832 2003-09-22  Hrvoje Niksic  <hniksic@xemacs.org>
5833
5834         * progress.c (create_image): Print the initial part of the
5835         download with '-' characters, analogous to how dot progress prints
5836         the initial part with ','.
5837
5838         * hash.c (ptrhash): New function.
5839         (ptrcmp): Ditto.
5840         (hash_table_new): Default to identity hash table.
5841
5842 2003-09-22  Hrvoje Niksic  <hniksic@xemacs.org>
5843
5844         * safe-ctype.h (_sch_test): The cast of BIT to unsigned char was
5845         broken -- _sch_istable bitmasks are 16-bit, not 8-bit!  Cast BIT
5846         to unsigned short instead.
5847
5848 2003-09-22  Hrvoje Niksic  <hniksic@xemacs.org>
5849
5850         * url.c (path_simplify): Instead of calls to memmove, handle "./"
5851         and "../" by advancing pointers.
5852
5853 2003-09-22  Hrvoje Niksic  <hniksic@xemacs.org>
5854
5855         * retr.c (getproxy): Moved from url.c.
5856
5857         * convert.c: Split off link conversion from url.c into separate
5858         file.  Also included the book-keeping stuff from recur.c.
5859
5860 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
5861
5862         * init.c: Improved documentation of functions.
5863         (cmd_boolean): Attempt to make code that tries to avoid calling
5864         strcmp for "speed" a bit more readable.
5865
5866         * init.c (simple_atof): Report error on encountering non-digit,
5867         non-"." character.
5868         (simple_atoi): Replacement for myatoi(), calling interface
5869         compatible with simple_atof.  Updated myatoi's callers.
5870
5871 2003-09-21  Bertrand Demiddelaer  <bert@b3rt.org>
5872
5873         * url.c (path_simplify): Would read two bytes past the end of the
5874         string in the "./" case.
5875
5876 2003-09-21  Matthew J. Mellon  <mellon@tymenet.com>
5877
5878         * http.c (gethttp): Recognize content-type "application/xhtml+xml"
5879         as what Wget considers "text/html".
5880
5881 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
5882
5883         * connect.c (connect_with_timeout): Made timeout type double.
5884
5885         * options.h (struct options): New members read_timeout,
5886         dns_timeout, and connect_timeout.
5887         Use them.
5888
5889 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
5890
5891         * init.c (simple_atof): New function.
5892         (cmd_time): Use it.
5893         (cmd_bytes): Accept things like "1.5k" and such.  Use simple_atof
5894         to parse decimals.
5895
5896         * retr.c (limit_bandwidth): Adjust each sleep by the error of the
5897         previous one.
5898
5899 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
5900
5901         * main.c (main): Use setoptval() for setting the options.  Use
5902         run_command for `-e'.
5903
5904         * init.c (parse_line): Rewritten to return COMIND right away.
5905         Changed linkage to static.
5906         (run_wgetrc): Use the available comind when calling setval, so it
5907         doesn't have to be computed twice.
5908         (setval_internal): New function, runs the command's action without
5909         any error checking.
5910         (setoptval): New function, does what setval used to do, but exits
5911         in case of error.
5912         (run_command): New function.
5913
5914 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
5915
5916         * connect.c (select_fd): Change MAXTIME's type to double.  Handle
5917         its decimal part.
5918
5919         * retr.c (sleep_between_retrievals): In the random-wait case, use
5920         random_float() to wait between 0 and 2*opt.wait seconds.
5921
5922         * utils.c (run_with_timeout): Accept `double' timeouts.  Correctly
5923         handle timeout values in (0, 1) range.
5924         (random_float): New function.
5925
5926         * options.h (struct options): Change the types of wait, waitretry,
5927         and timeout to double.
5928
5929         * init.c (cmd_time): Accept floating point time.
5930
5931 2003-09-20  Hrvoje Niksic  <hniksic@xemacs.org>
5932
5933         * retr.c (get_contents): Cosmetic fixes.
5934
5935 2003-09-20  Hrvoje Niksic  <hniksic@xemacs.org>
5936
5937         * url.c (uri_merge): Get rid of uri_merge_1.
5938         (uri_merge): Merge "foo//", "bar" as "foo//bar", not "foo///bar",
5939         i.e. don't add an extra slash merely because BASE ends with two
5940         slashes.
5941         (parse_credentials): Renamed from parse_uname.  Rewrittern in
5942         standard [beg, end) calling style.
5943         (url_skip_credentials): Renamed from url_skip_uname.  Made static.
5944         (url_skip_credentials): Include # and ; as terminators.  Old code
5945         would mistakenly consider "http://foo.com#hniksic@iskon.hr" to
5946         contain a username.
5947         (url_skip_scheme): Removed because it was unused.
5948         (url_has_scheme): Require "scheme" to be at least one char long.
5949
5950 2003-09-19  Hrvoje Niksic  <hniksic@xemacs.org>
5951
5952         * url.c (url_file_name): Expect NULL dir_prefix.
5953
5954         * init.c (cmd_file): Use a macro to prevent multiple #ifdef
5955         WINDOWS.
5956         (defaults): Set dir_prefix to NULL by default.
5957
5958 2003-09-19  Hrvoje Niksic  <hniksic@xemacs.org>
5959
5960         * safe-ctype.h (_sch_test): Cast BIT to unsigned char, like latest
5961         gcc does.
5962
5963 2003-09-19  Hrvoje Niksic  <hniksic@xemacs.org>
5964
5965         * wget.h (BOUNDED_TO_ALLOCA): Evaluate PLACE only once.
5966         (ARRAY_SIZE): Renamed to countof.  All callers updated.
5967
5968 2003-09-19  Hrvoje Niksic  <hniksic@xemacs.org>
5969
5970         * main.c (main): New option --strict-comments.
5971
5972         * html-parse.c (find_comment_end): New function: simple BM search
5973         for "-->".
5974         (map_html_tags): Use it if looking at a comment and not in strict
5975         comments mode.
5976
5977 2003-09-17  Aurelien Marchand  <artaxerxes@users.sf.net>
5978
5979         * ftp.h: Added OS400 system in enum
5980         * ftp-basic.c: recognize OS400 systems
5981         * ftp.c: don't prepend the CWD if talking to OS400, since it
5982         breaks the change in library
5983
5984 2003-09-18  Hrvoje Niksic  <hniksic@xemacs.org>
5985
5986         * retr.c (get_contents): Pass the correct argument to ssl_iread.
5987
5988 2003-09-18  Hrvoje Niksic  <hniksic@xemacs.org>
5989
5990         * safe-ctype.h: Don't #define ctype.h macros to errors because
5991         that loses when someone #include's ctype.h after safe-ctype.h.
5992
5993 2003-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
5994
5995         * url.c: Undef U, W, C after use.
5996
5997 2003-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
5998
5999         * init.c (cmd_spec_restrict_file_names): Allow the OS setting to
6000         be augmented by ",nocontrol" which means don't escape the control
6001         characters, but otherwise keep OS settings.
6002
6003         * url.c (file_unsafe_char): Deleted.
6004         (append_uri_pathel): Query filechr_table directly.
6005         (filechr_table): Separated Unix, Windows, and control-unsafe
6006         characters.
6007
6008 2003-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
6009
6010         * url.c (url_escape_1): New function.
6011         (url_escape): Use it.
6012         (sync_path): Handle pathological cases where u->file and u->dir
6013         contain really strange characters.
6014         (ENCODE): Deleted.
6015         (REENCODE): Deleted.
6016
6017 2003-09-16  Hrvoje Niksic  <hniksic@xemacs.org>
6018
6019         * url.c (url_file_name): Don't reallocate FNAME if the file
6020         doesn't exist, as is usually the case.
6021
6022         * utils.c (unique_name): New flag allow_passthrough.
6023
6024 2003-09-16  Hrvoje Niksic  <hniksic@xemacs.org>
6025
6026         * utils.c (wtimer_sys_diff): Convert the time difference to signed
6027         __int64, then to double.  This works around MS VC++ 6 which can't
6028         convert unsigned __int64 to double directly.
6029
6030 2003-09-16  Hrvoje Niksic  <hniksic@xemacs.org>
6031
6032         * Makefile.in (clean): Also remove the core.<number> files
6033         produced by recent Linux systems.
6034
6035 2003-09-16  Hrvoje Niksic  <hniksic@xemacs.org>
6036
6037         * http.c (post_file): Don't pad the file if it's not large
6038         enough.  Bail out instead.
6039
6040 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
6041
6042         * retr.c (get_contents): Reduce the buffer size to the amount of
6043         data that may pass through for one second.  This prevents long
6044         sleeps when limiting bandwidth.
6045
6046         * connect.c (connect_to_one): Reduce the socket's RCVBUF when
6047         bandwidth limitation to small values is requested.
6048
6049 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
6050
6051         * progress.c (update_speed_ring): Moved the speed ring update to a
6052         separate function and documented it better.
6053
6054         * progress.c: Use `double' for most timers to support granularity
6055         smaller than 1ms.
6056
6057 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
6058
6059         * wget.h (XDIGIT_TO_XCHAR): Implement as index into a literal
6060         string.
6061         (XDIGIT_TO_xchar): Ditto.
6062
6063 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
6064
6065         * utils.c: Change the type of timer-related functions from long to
6066         double, for better precision.  On machines supporting gettimeofday
6067         the timers now work with granularity of less than one millisecond.
6068
6069 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
6070
6071         * cookies.c (parse_set_cookies): Fixed the parser to handle more
6072         edge conditions.
6073         (test_cookies): New function, contains a test suite for
6074         parse_set_cookies.
6075
6076 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
6077
6078         * url.c (strpbrk_or_eos): Implement as a macro under Gcc.
6079
6080 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
6081
6082         * cookies.c (parse_set_cookies): Allow trailing space in
6083         set-cookies header.  Also, allow any amount of whitespace, not
6084         only one character.  Allow empty set-cookies header without
6085         spewing an error.
6086
6087 2003-09-14  Hrvoje Niksic  <hniksic@xemacs.org>
6088
6089         * url.c (append_uri_pathel): Use opt.restrict_file_names when
6090         calling file_unsafe_char.
6091
6092         * init.c: New command restrict_file_names.
6093
6094         * main.c (main): New option --restrict-file-names[=windows,unix].
6095
6096         * url.c (url_file_name): Renamed from url_filename.
6097         (url_file_name): Add directory and hostdir prefix here, not in
6098         mkstruct.
6099         (append_dir_structure): New function, does part of the work that
6100         used to be in mkstruct.  Iterates over path elements in u->path,
6101         calling append_uri_pathel on each one to append it to the file
6102         name.
6103         (append_uri_pathel): URL-unescape a path element and reencode it
6104         with a different set of rules, more appropriate for handling of
6105         files.
6106         (file_unsafe_char): New function, uses a lookup table to decide
6107         whether a character should be escaped for use in file name.
6108         (append_string): New utility function.
6109         (append_char): Ditto.
6110         (file_unsafe_char): New argument restrict_for_windows, decide
6111         whether Windows file names should be escaped in run-time.
6112
6113         * connect.c: Include <stdlib.h> to get prototype for abort().
6114
6115 2003-09-14  Hrvoje Niksic  <hniksic@xemacs.org>
6116
6117         * utils.c (wtimer_sys_set): Extracted the code that sets the
6118         current time here.
6119         (wtimer_reset): Call it.
6120         (wtimer_sys_diff): Extracted the code that calculates the
6121         difference between two system times here.
6122         (wtimer_elapsed): Call it.
6123         (wtimer_elapsed): Don't return a value smaller than the previous
6124         one, which could previously happen when system time is set back.
6125         Instead, reset start time to current time and note the elapsed
6126         offset for future calculations.  The returned times are now
6127         guaranteed to be monotonically nondecreasing.
6128
6129 2003-09-10  Hrvoje Niksic  <hniksic@xemacs.org>
6130
6131         * host.c (lookup_host): Print the result of the DNS lookup.
6132
6133 2003-09-10  Hrvoje Niksic  <hniksic@xemacs.org>
6134
6135         * init.c (cmd_boolean): Accept yes/no along with on/off.
6136         (cmd_lockable_boolean): Ditto.
6137
6138 2003-09-10  Hrvoje Niksic  <hniksic@xemacs.org>
6139
6140         * init.c: New command dns_cache.
6141
6142         * main.c (main): New option --dns-cache[=off].
6143
6144 2003-09-09  Hrvoje Niksic  <hniksic@xemacs.org>
6145
6146         * config.h.in: Initialize HAVE_GETADDRINFO and ENABLE_IPV6.
6147
6148         * all: Use #ifdef ENABLE_IPV6 instead of the older INET6.  Use
6149         HAVE_GETADDRINFO for getaddrinfo-related stuff.
6150
6151 2003-09-09  Hrvoje Niksic  <hniksic@xemacs.org>
6152
6153         * url.c (url_parse): Return an error if the URL contains a [...]
6154         IPv6 numeric address and we don't support IPv6.
6155
6156 2003-09-05  Hrvoje Niksic  <hniksic@xemacs.org>
6157
6158         * url.c (is_valid_ipv6_address): Modified to not require
6159         zero-terminated strings.
6160         (is_valid_ipv4_address): Ditto.
6161
6162 2003-09-05  Mauro Tortonesi <mauro@deepspace6.net>
6163
6164         src/url.c: added RFC 2732 compliance for URL parsing. The
6165         functions is_*_address valid are a modified version of
6166         glibc 2.3.2 inet_pton's code.
6167
6168 2003-09-03  Ahmon Dancy  <dancy@dancysoft.com>
6169
6170         * main.c init.c options.h: Added --retry-connrefused option so
6171         that Connection Refused failures are treated as non-fatal (when
6172         trying to retrieve from busy servers).
6173
6174         * wget.h: New CONNECT_ERROR macro for encapsulating this
6175         modification.
6176
6177         * ftp.c http.c : Use CONNECT_ERROR macro in places where
6178         ECONNREFUSED was checked.
6179
6180 2003-01-11  Ian Abbott  <abbotti@mev.co.uk>
6181
6182         * ftp.c (ftp_retrieve_glob): Reject insecure filenames as determined
6183         by calling new function has_insecure_name_p.  This is based on a
6184         patch by Red Hat.
6185
6186         * fnmatch.c (has_insecure_name_p): New function: returns non-zero
6187         if filename starts with `/' or contains `../' and is therefore
6188         considered insecure.
6189
6190         * fnmatch.h: Declare has_insecure_name_p().
6191
6192 2002-08-03  Hrvoje Niksic  <hniksic@xemacs.org>
6193
6194         * init.c (cmd_file): Allocate RESULT correctly.
6195
6196 2002-07-24  Hrvoje Niksic  <hniksic@xemacs.org>
6197
6198         * recur.c (retrieve_tree): Check whether downloaded_html_set is
6199         non-NULL before using it.
6200
6201 2002-05-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6202
6203         * html-parse.c (NAME_CHAR_P): Allow almost any character here.
6204
6205 2002-05-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6206
6207         * progress.c (bar_set_params): Fall back to dot progress if the
6208         terminal type is "emacs".
6209
6210 2002-05-20  Hrvoje Niksic  <hniksic@arsdigita.com>
6211
6212         * log.c: Don't #undef WGET_USE_STDARG.
6213
6214 2002-05-16  Hrvoje Niksic  <hniksic@arsdigita.com>
6215
6216         * hash.c (prime_size): Store the offset of the prime number in the
6217         prime table.  When searching, start with the given offset.
6218         (hash_table_new): Pass the pointer to ht->prime_offset to
6219         prime_size.
6220         (grow_hash_table): Ditto.
6221         (prime_size): Make 13 the first prime to make empty hash tables
6222         slightly smaller.
6223
6224 2002-05-16  Ian Abbott  <abbotti@mev.co.uk>
6225
6226         * recur.c (download_child_p): Minor optimization to avoid an
6227         unnecessary additional call to schemes_are_similar_p function.
6228
6229 2002-05-16  Ian Abbott  <abbotti@mev.co.uk>
6230
6231         * url.c (schemes_are_similar_p): New function to test enumerated
6232         scheme codes for similarity.
6233
6234         * url.h: Declare it.
6235
6236         * recur.c (download_child_p): Use it to compare schemes.  This
6237         also fixes a bug that allows hosts to be spanned (without the
6238         -H option) when the parent scheme is https and the child's is
6239         http or vice versa.
6240
6241 2002-05-14  Bill Richardson  <bill@riverstonenet.com>
6242
6243         * ftp.c (getftp): Don't ftruncate stdout.
6244
6245         * http.c (gethttp): Don't ftruncate stdout.
6246
6247 2002-05-09  Ian Abbott  <abbotti@mev.co.uk>
6248
6249         * cmpt.c (strptime_internal): Synched with glibc-2.1.3.
6250         (get_number): Ditto.
6251         (get_alt_number): Ditto.
6252         (__isleap): New function-like macro used by strptime.
6253         (day_of_the_week): New function used by strptime.
6254         (day_of_the_year): Ditto.
6255         (__mon_yday): Now shared by mktime and strptime implementations.
6256
6257 2002-05-08  Hrvoje Niksic  <hniksic@arsdigita.com>
6258
6259         * cookies.c (check_domain_match): Use match_tail in case
6260         insensitive mode.
6261
6262         * utils.c (match_tail): Allow the caller to specify case
6263         insensitive mode.
6264
6265         * cookies.c (store_cookie): When expiry_time is 0, print it as
6266         undefined, not indefinite.
6267
6268 2002-05-07  Ian Abbott  <abbotti@mev.co.uk>
6269
6270         * cookies.c (cookie_jar_process_set_cookie): Do not store
6271         discarded cookie.
6272
6273 2002-04-21  Hrvoje Niksic  <hniksic@arsdigita.com>
6274
6275         * cookies.c (check_domain_match): Allow cookies to be set for
6276         subdomains of unknown top-level domains under some circumstances.
6277
6278 2002-04-21  Thomas Lussnig  <thomas.lussnig@bewegungsmelder.de>
6279
6280         * gen_ssl.c:
6281         - allow checking of server cert
6282         - allow defining client cert type
6283         - allow limit of ssl protocol
6284         - check more return values
6285         - added debug message on break
6286
6287 2002-04-21  Hrvoje Niksic  <hniksic@arsdigita.com>
6288
6289         * recur.c (download_child_p): Revert order of items in check
6290         number 6 for clarity.
6291
6292 2002-04-20  Hrvoje Niksic  <hniksic@arsdigita.com>
6293
6294         * init.c: Ditto.
6295
6296         * main.c: Ditto.
6297
6298         * http.c: Use the new interface.
6299
6300         * cookies.c: Provide an OO-style "cookie jar" interface to enable
6301         separate cookie jars.
6302
6303         * http.c (http_atotm): Declare argument as const.
6304
6305 2002-04-20  Hrvoje Niksic  <hniksic@arsdigita.com>
6306
6307         * cookies.c (cookie_new): Default to PORT_ANY.
6308         (find_cookie_chain_exact): Only search by DOMAIN.
6309         (find_matching_cookie): Also check that PORT matches.
6310         (store_cookie): Only match the domain.
6311         (set_cookie_header_cb): When a cookie "fakes" a domain, assume it
6312         is valid for that host rather than discarding it completely.
6313         (find_matching_chains): Don't search by PORT.
6314         (matching_cookie): Also match PORT.
6315         (load_cookies): Set the port if specified, otherwise leave it as
6316         ANY.
6317         (save_cookies_mapper): Save the port if specified, otherwise leave
6318         it empty.
6319
6320 2002-04-19  Thomas Lussnig  <thomas.lussnig@bewegungsmelder.de>
6321
6322         * init.c: The option `egdfile' was not in sort order.
6323
6324 2002-04-16  Hrvoje Niksic  <hniksic@arsdigita.com>
6325
6326         * ftp.c (getftp): Treat directories that begin with <letter>: as
6327         absolute.
6328         (getftp): Strip trailing slashes from con->id before merging it
6329         with TARGET.
6330
6331 2002-04-16  Hrvoje Niksic  <hniksic@arsdigita.com>
6332
6333         * http.c (gethttp): If Content-Type is not given, assume
6334         text/html.
6335
6336 2002-04-15  Hrvoje Niksic  <hniksic@arsdigita.com>
6337
6338         * recur.c (download_child_p): Don't ignore rejection of HTML
6339         documents that are themselves leaves of recursion.
6340
6341 2002-04-15  Ian Abbott  <abbotti@mev.co.uk>
6342
6343         Makefile.in: Updated several dependencies for object files to take
6344         account of nested include files.
6345
6346 2002-04-15  Ian Abbott  <abbotti@mev.co.uk>
6347
6348         Makefile.in: The target `connect$o' (connect.o) now depends on
6349         `utils.h'
6350
6351 2002-04-15  Ian Abbott  <abbotti@mev.co.uk>
6352
6353         * host.c (SET_H_ERRNO): New function-like macro to set `h_errno'.
6354         (gethostbyname_with_timeout): Use it.
6355
6356         * utils.c: Don't define `SETJMP()', `run_with_timeout_env' or
6357         `abort_run_with_timeout()' when `USE_SIGNAL_TIMEOUT' is undefined.
6358
6359 2002-04-15  Hrvoje Niksic  <hniksic@arsdigita.com>
6360
6361         * host.c (getaddrinfo_with_timeout): New function.
6362         (gethostbyname_with_timeout): Ditto.
6363         (lookup_host): Use them.
6364
6365 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6366
6367         * utils.c (number_to_string): Handle the case when n < -INT_MAX.
6368
6369 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6370
6371         * init.c (comind): Use a marginally faster implementation of
6372         binary search.  To quote Martin Buchholz, "a nanosecond saved is a
6373         nanosecond earned."
6374
6375 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6376
6377         * main.c (print_help): Document `--post-data' and `--post-file'.
6378
6379 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6380
6381         * http.c (gethttp): Ditto.
6382
6383         * retr.c (retrieve_url): Initialize variables to appease the
6384         compiler.
6385
6386         * gen_sslfunc.c (ssl_iread): Don't handle EINTR when calling
6387         select_fd.
6388         (ssl_iwrite): Ditto.
6389
6390         * connect.c (select_fd): Rewrite to handle EINTR.  Set errno to
6391         ETIMEDOUT in case of timeout.
6392         (iread): No need to handle EINTR when calling select_fd.
6393         (iwrite): Ditto.
6394
6395 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6396
6397         * retr.c (retrieve_url): Make sure that POST is not honored for
6398         redirections.
6399
6400         * http.c (gethttp): Send the POST data when requested.
6401         (post_file): New function.
6402         (gethttp): Use it.
6403
6404         * main.c (main): Ditto.
6405
6406         * init.c: Add new options.
6407
6408         * options.h (struct options): New options post_data and
6409         post_file_name.
6410
6411 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6412
6413         * connect.c (connect_with_timeout): Firing SIGALRM can result in
6414         connect() exiting with EINTR.  Treat EINTR the same as ETIMEDOUT.
6415
6416 2002-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6417
6418         * connect.c (connect_with_timeout): Use it.
6419
6420         * utils.c (run_with_timeout): New function.
6421
6422 2002-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6423
6424         * url.c (getproxy): Accept a struct url argument.  This obviates
6425         the need for USE_PROXY_P.
6426
6427         * retr.c (retrieve_url): Allow proxy to be a non-FTP URL.
6428
6429         * ftp.c (getftp): Recognize FWTK-style proxy.
6430
6431 2002-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
6432
6433         * config.h.in: Only define _VA_LIST when compiled with gcc.
6434
6435 2002-04012  Ian Abbott  <abbotti@mev.co.uk>
6436
6437         * http.c (http_loop): Compensate for MS Windows two-second
6438         granularity of file modification time when comparing timestamps.
6439
6440         * ftp.c (ftp_retrieve_list): Ditto.
6441
6442 2002-04-12  Ian Abbott  <abbotti@mev.co.uk>
6443
6444         * utils.c (has_html_suffix_p): New function to test filename for
6445         common html extensions.
6446
6447         * utils.h: Declare it.
6448
6449         * http.c (http_loop): Use it instead of previous test.
6450
6451         * retr.c (retrieve_url): Ditto.
6452
6453         * recur.c (download_child_p): Ditto.
6454
6455 2002-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
6456
6457         * config.h.in: Define _VA_LIST on Solaris to prevent stdio.h from
6458         declaring va_list.
6459         From Kevin Rodgers <kevinr@ihs.com>.
6460
6461 2002-04-12  Ian Abbott  <abbotti@mev.co.uk>
6462
6463         * Makefile.in: Specify libtool mode explicitly when linking.
6464
6465 2002-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
6466
6467         * connect.c (connect_with_timeout): New function.
6468         (connect_to_one): Use it.
6469
6470         * config.h.in: Add stubs for HAVE_SIGSETJMP, HAVE_SIGBLOCK, and
6471         HAVE_SETJMP_H.
6472
6473 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
6474
6475         * log.c: Set WGET_USE_STDARG if __STDC__ is defined and stdarg.h
6476         is present.
6477
6478 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
6479
6480         * progress.c (bar_create): If INITIAL is larger than TOTAL, fix
6481         TOTAL.
6482         (bar_finish): Likewise.
6483
6484 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
6485
6486         * html-url.c (tag_handle_form): New function.  Pick up form
6487         actions and mark them for conversion only.
6488
6489 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
6490
6491         * progress.c (struct progress_implementation): Use PARAMS when
6492         declaring the parameters of *create, *update, *finish, and
6493         *set_params.
6494
6495         * netrc.c: Ditto.
6496
6497         * http.c: Reformat some function definitions so that ansi2knr can
6498         read them.
6499
6500         * hash.c (struct hash_table): Use the PARAMS macro around
6501         parameters in the declaration of hash_function and test_function.
6502         (prime_size): Spell 2580823717UL and 3355070839UL as (unsigned
6503         long)0x99d43ea5 and (unsigned long)0xc7fa5177 respectively, so
6504         that pre-ANSI compilers can read them.
6505         (find_mapping): Use PARAMS when declaring EQUALS.
6506         (hash_table_put): Ditto.
6507
6508         * ftp.h: Wrap the parameters of ftp_index declaration in PARAMS.
6509
6510         * cookies.c (cookie_new): Use (unsigned long)0 instead of 0UL,
6511         which was unsupported by pre-ANSI compilers.
6512
6513         From Nelson H. F. Beebe <beebe@math.utah.edu>, for the most part.
6514
6515 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
6516
6517         * url.c (url_filename): Use compose_file_name regardless of
6518         whether opt.dirstruct is set.
6519         (mkstruct): Don't handle the query and the reencoding of DIR; that
6520         is done in compose_file_name.
6521
6522 2002-04-10  Hrvoje Niksic  <hniksic@arsdigita.com>
6523
6524         * wget.h: Ditto for extern char *exec_name.
6525
6526         * options.h: Don't guard against OPTIONS_DEFINED_HERE -- it is
6527         perfectly legal to follow an `extern' with a non-`extern' ones,
6528         provided the types match.
6529
6530         * main.c: Don't define OPTIONS_DEFINED_HERE.
6531
6532 2002-04-10  Hrvoje Niksic  <hniksic@arsdigita.com>
6533
6534         * progress.c (create_image): Revert to calculating ETA based on
6535         average download speed.
6536         (create_image): Don't print ETA until the download has been active
6537         for at least 3 seconds.
6538         (create_image): When ETA is not available, don't print anything.
6539         The previous version would print --:--.
6540
6541 2002-04-10  Hrvoje Niksic  <hniksic@arsdigita.com>
6542
6543         * progress.c (bar_update): Keep updating a subinterval until it
6544         reaches or exceeds a watermark.  That way the measurement will be
6545         guaranteed to span a configurable minimum of time.  The current
6546         default is 3s in 30 100ms intervals.
6547
6548 2002-04-09  Hrvoje Niksic  <hniksic@arsdigita.com>
6549
6550         * progress.c (bar_update): Maintain an array of the time it took
6551         to perform previous 30 network reads.
6552         (create_image): Calculate the download speed and ETA based on the
6553         last 30 reads, not the entire download.
6554         (create_image): Make sure that the ETA is not changed more than
6555         once per second.
6556
6557 2002-04-09  Ian Abbott  <abbotti@mev.co.uk>
6558
6559         * mswindows.c (borland_utime): New function conditionally defined
6560         when `HACK_BCC_UTIME_BUG' is defined.  A reimplementation of
6561         `utime()' as Borland's `utime()' function is broken on Windows 9x
6562         systems.  (Original patch by Chin-yuan Kuo <sr1111111@yahoo.com.tw>.)
6563
6564 2002-04-08  Hrvoje Niksic  <hniksic@arsdigita.com>
6565
6566         * ftp.c (ftp_loop): Propagate the result of ftp_retrieve_glob.
6567
6568 2002-03-26  Ian Abbott  <abbotti@mev.co.uk>
6569
6570         * Makefile.in: Updated several dependencies for object files.
6571
6572 2002-03-20  Ian Abbott  <abbotti@mev.co.uk>
6573
6574         * mswindows.c: Include "utils.h".
6575
6576 2002-03-18  Ian Abbott  <abbotti@mev.co.uk>
6577
6578         * host.h: Don't include netdb.h on windows.
6579
6580 2002-02-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6581
6582         * recur.c (retrieve_tree): Handle the case when start_url doesn't
6583         parse.
6584
6585 2002-02-19  Andreas Damm  <andreas-sourceforge@radab.org>
6586
6587         * wget.h (DO_REALLOC_FROM_ALLOCA): Multiply with sizeof(type) when
6588         calling xmalloc and memcpy.
6589
6590 2002-02-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6591
6592         * host.h: Include Unix-specific includes #ifndef WINDOWS.
6593         Patch originally provided by Christian Lackas.
6594
6595 2002-02-11  Christian Lackas  <delta@lackas.net>
6596
6597         * recur.c: recurive downloading for https fixed.
6598
6599 2002-02-19  Alan Eldridge  <alane@geeksrus.net>
6600
6601         * host.h: Also include <netinet/in.h> and <sys/socket.h>.
6602
6603         * ftp-basic.c: Also include <netinet/in.h>.
6604
6605 2002-02-05  Ian Abbott  <abbotti@mev.co.uk>
6606
6607         * http.c (gethttp): when -c used, mark already fully retrieved
6608         file as successfully retrieved.
6609
6610 2002-02-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6611
6612         * url.c (url_parse): Don't treat '?' as query string separator
6613         when parsing FTP URLs.
6614
6615 2002-02-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6616
6617         * html-url.c (tag_handle_meta): Don't crash on <meta
6618         http-equiv=refresh> where content is missing.
6619
6620 2002-01-31  Herold Heiko  <Heiko.Herold@previnet.it>
6621
6622         * ftp-basic.c, host.c: don't include sys/socket.h, arpa/inet.h,
6623         netdb.h on windows.
6624
6625 2002-01-30  Hrvoje Niksic  <hniksic@arsdigita.com>
6626
6627         * retr.c (retrieve_url): Remove redirection cycle detection.  This
6628         is because some sites legitimately redirect the user back to the
6629         same location, e.g. after an authorization check performed by
6630         another page.  MAX_REDIRECTIONS is still used to prevent infinite
6631         redirection loops.
6632
6633 2002-01-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6634
6635         * http.c (gethttp): Wrap host name in square brackets if it
6636         contains a colon.
6637
6638 2002-01-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6639
6640         * url.c (url_parse): Allow all hex digits, not only decimal ones,
6641         to form an IP address.
6642
6643 2002-01-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6644
6645         * url.c (urlchr_table): Make square braces reserved, so we can
6646         parse http://[::1]/.
6647         (url_parse): Handle host in braces.
6648         (url_string): If url->host contains colons, wrap it in braces.
6649
6650 2002-01-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6651
6652         * connect.c (resolve_bind_address): New function.
6653         (connect_to_one): Use it.
6654         (bindport): Ditto.
6655
6656         * init.c: Don't resolve bind-address here.
6657
6658         * host.c (wget_sockaddr_set_address): Would bug out with ADDR == NULL.
6659
6660 2002-01-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6661
6662         * host.c (lookup_host): Use sizeof(ip4_address) to calculate the
6663         offset.
6664         (address_list_new): Use map_ipv4_to_ip.
6665         (wget_sockaddr_set_address): Convert ADDR to IPv4 before using it
6666         in IPv4 context.
6667
6668 2002-01-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6669
6670         * source: Integrated IPv6 support.
6671         Written by Thomas Lussnig <thomas.lussnig@bewegungsmelder.de>.
6672
6673 2002-01-15  Ian Abbott  <abbotti@mev.co.uk>
6674
6675         * init.c (cmd_file): Change `\' to `/' for Windows (yes, really!)
6676         (cmd_directory): New function. Like cmd_file(), but strips
6677         trailing directory separators.
6678         (commands): Change action for "dirprefix" from `cmd_file' to
6679         `cmd_directory'.
6680
6681         * utils.c (make_directory): Allow intermediate `mkdir' calls to
6682         fail, as not all path components that do not exist should be
6683         directory components, especially under Windows.
6684
6685 2002-01-17  Hrvoje Niksic  <hniksic@arsdigita.com>
6686
6687         * netrc.c (parse_netrc): Skip leading whitespace before testing
6688         whether the line is empty.  Empty lines still contain the line
6689         terminator.
6690
6691 2002-01-15  Hrvoje Niksic  <hniksic@arsdigita.com>
6692
6693         * gen_sslfunc.c (ssl_iread): Call select on the file descriptor
6694         only if no data is pending in SSL buffers.
6695         From tony@bluetail.com.
6696
6697 2002-01-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6698
6699         * headers.c (header_get): Strip trailing whitespace from the
6700         header.
6701
6702 2002-01-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6703
6704         * url.c (parse_uname): URL-decode *USER and *PASSWD.
6705
6706 2002-01-07  Ian Abbott <abbotti@mev.co.uk>
6707
6708         * url.c (uri_merge_1): Deal with "net path" relative URL (one that
6709         starts with "//").
6710
6711 2002-01-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6712
6713         * http.c (gethttp): Invalidate SOCK if get_contents encountered an
6714         error.
6715
6716 2001-12-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6717
6718         * version.c: Wget 1.8.1 is released.
6719
6720 2001-12-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6721
6722         * version.c: Wget 1.8.1-pre3 is released.
6723
6724 2001-12-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6725
6726         * recur.c (retrieve_tree): Enqueue the canonical representation of
6727         start_url, so that the test against dl_url_file_map works.
6728
6729 2001-12-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6730
6731         * log.c (logputs): Check for requested verbosity before printing
6732         anything.
6733
6734 2001-12-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6735
6736         * html-url.c (tag_handle_link): Treat the "shortcut icon" link as
6737         inline.
6738
6739 2001-12-18  Hrvoje Niksic  <hniksic@arsdigita.com>
6740
6741         * recur.c (retrieve_tree): Make a copy of file obtained from
6742         dl_url_file_map because the code calls xfree(file) later.
6743
6744 2001-12-18  Hrvoje Niksic  <hniksic@arsdigita.com>
6745
6746         * recur.c (register_html): Maintain a hash table of HTML files
6747         along with the list.  Disallow duplicates.
6748         (retrieve_tree): Use downloaded_html_set to check whether the file
6749         found in dl_url_file_map is an HTML file, and descend into it if
6750         so.
6751         (convert_all_links): Don't guard against duplicates in
6752         downloaded_html_list, since they are no longer possible.
6753
6754 2001-12-18  Ian Abbott  <abbotti@mev.co.uk>
6755
6756         * recur.c (retrieve_tree): Pass on referring URL when retrieving
6757         recursed URL.
6758
6759 2001-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
6760
6761         * version.c: Wget 1.8.1-pre2 is released.
6762
6763 2001-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
6764
6765         * retr.c (sleep_between_retrievals): Simplify indentation.
6766
6767 2001-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
6768
6769         * gen_sslfunc.c (ssl_init_prng): Use random_number to get a byte
6770         of "randomness" at a time.
6771         (ssl_init_prng): Don't seed the PRNG; random_number will do that.
6772
6773         * retr.c (sleep_between_retrievals): Use it.  Make sure that the
6774         random amount averages in opt.wait.
6775         (sleep_between_retrievals): Don't seed the PRNG; random_number
6776         will do that.
6777
6778         * utils.c (random_number): New function.
6779
6780 2001-12-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6781
6782         * url.c (path_simplify): Move here from utils.c, and make static.
6783
6784 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6785
6786         * init.c (wgetrc_file_name): Print correct message when loading
6787         getenv("WGETRC") fails.
6788
6789 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6790
6791         * recur.c (register_download): Don't abort when one URL references
6792         two different files.
6793
6794 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6795
6796         * http.c (gethttp): Check for conn->scheme, not u->scheme, before
6797         calling ssl_iwrite.
6798
6799 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6800
6801         * version.c: Wget 1.8.1-pre1 is released.
6802
6803 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6804
6805         * res.c (matches): Fix broken URL in the docstring.
6806
6807 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6808
6809         * html-url.c (tag_url_attributes): Mark <embed href=...> as
6810         external.
6811
6812 2001-12-12  Hrvoje Niksic  <hniksic@arsdigita.com>
6813
6814         * url.c (get_urls_file): Cosmetic changes.
6815
6816 2001-12-12  Hrvoje Niksic  <hniksic@arsdigita.com>
6817
6818         * html-url.c (append_one_url): Resurrect warning when unable to
6819         resolve a relative link.
6820
6821 2001-12-12  Hrvoje Niksic  <hniksic@arsdigita.com>
6822
6823         * html-url.c (collect_tags_mapper): Break into several functions.
6824         (tag_url_attributes): Collect <embed href=...>.
6825
6826 2001-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
6827
6828         * host.c: New type ipv4_address.  Use it consistently instead of
6829         `unsigned char[4]' and `unsigned char *'.
6830         (pretty_print_address): Accept a `const void *', to require even
6831         less casting.
6832
6833 2001-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
6834
6835         * ftp-ls.c (ftp_parse_vms_ls): Fix obvious memory leaks.
6836
6837 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
6838
6839         * main.c (main): Initialize progress after fork_to_background, so
6840         that it knows when to use dots.
6841
6842         * mswindows.c (ws_hangup): Call log_request_redirect_output.
6843
6844         * utils.c (fork_to_background): Print the PID of the child
6845         process.
6846
6847         * log.c (log_request_redirect_output): Set a flag that output
6848         redirection has been requested.  Doing anything else in a signal
6849         handler is unsafe.
6850         (check_redirect_output): New function: check whether redirection
6851         has been requested and, if so, call redirect_output().
6852         (logputs): Call check_redirect_output.
6853         (logprintf): Ditto.
6854         (debug_logprintf): Ditto.
6855         (redirect_output): Print clearer messages.
6856
6857         * main.c (redirect_output_signal): Don't call
6858         redirect_output_signal directly.  Instead, call
6859         log_request_redirect_output.
6860
6861         * utils.c (memfatal): Ditto.
6862
6863         * progress.c (display_image): Use it.
6864
6865         * log.c (log_set_save_context): New function: allow the caller to
6866         turn off saving log context lines.
6867
6868 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
6869
6870         * host.c (address_list_set_faulty): Uncomment a sanity check.
6871
6872 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
6873
6874         * utils.c (long_to_string): Return a pointer after where the
6875         number ends.
6876         (long_to_string): Rename to number_to_string.
6877
6878 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
6879
6880         * utils.c (path_simplify): Correctly handle the unlikely case that
6881         b starts out as path + 1.
6882
6883 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
6884
6885         * utils.c (path_simplify): Rewrite, with better comments, and
6886         without the use of strcpy to move overlapping blocks.
6887
6888 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
6889
6890         * init.c (cmd_spec_progress): Resurrect.  Check whether VAL is a
6891         valid progress type before setting it.
6892
6893 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
6894
6895         * main.c (main): Remove stray debugging message.
6896
6897 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
6898
6899         * progress.c (create_image): Fix ETA padding when hours are prined.
6900
6901 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
6902
6903         * version.c: Wget 1.8 is released.
6904
6905 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
6906
6907         * url.c (reencode_string): Declare static.
6908
6909         * res.c (registered_specs): Declare static.
6910
6911         * progress.c (current_impl_locked): Declare static.
6912
6913         * log.c (flush_log_p): Declare static.
6914         (needs_flushing): Ditto.
6915
6916         * http.c (digest_authentication_encode): Declare static.
6917
6918         * html-url.c (init_interesting): Declare static.
6919
6920         * host.c (host_name_addresses_map): Declare static.
6921
6922         * cookies.c (find_matching_chains): Declare static.
6923
6924         * ftp-ls.c (ftp_parse_vms_ls): Warn about the memory leak
6925         indicated by lint.
6926
6927         * utils.c (path_simplify): Remove unused variable STUB_CHAR.
6928
6929         * host.c (address_list_set_faulty): Document that INDEX is
6930         currently unused.
6931
6932         * url.c (rewrite_shorthand_url): Remove unused variable PATH.
6933
6934 2001-12-08  Hrvoje Niksic  <hniksic@arsdigita.com>
6935
6936         * version.c: Wget 1.8-pre2 is released.
6937
6938 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6939
6940         * progress.c (progress_handle_sigwinch): Set up the signal again.
6941
6942         * utils.c: Include <sys/termios.h>, where Solaris defines
6943         TIOCGWINSZ.
6944
6945         * progress.c (bar_create): Don't use the last column on the screen.
6946         (create_image): Pad ETA to constant size.  Pad SIZE to nine digits
6947         only until it exceeded them.
6948
6949 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6950
6951         * version.c: Wget 1.8-pre1 is released.
6952
6953 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6954
6955         * progress.c (progress_create): Make sure that, when the output is
6956         redirected, the progress implementation gets changed to the
6957         fallback one.
6958         (bar_set_params): Set current_impl_locked to 1 when "force" is
6959         specified.
6960         (progress_create): Don't change the progress implementation if
6961         current_impl_locked is non-zero.
6962
6963         * main.c (redirect_output_signal): Call
6964         progress_schedule_redirect.
6965
6966         * progress.c (progress_schedule_redirect): New function.
6967
6968 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6969
6970         * log.c (logvprintf): Restructure to allow being called multiple
6971         times.
6972         (logprintf): Call logvprintf in a loop.
6973         (debug_logprintf): Ditto.
6974
6975 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6976
6977         * gen_sslfunc.c (ssl_init_prng): Allow the user to disable EGD by
6978         setting egd_file it to empty string.
6979
6980         * main.c (main): Change the option name from --sslegdsock to
6981         --egd-file.
6982
6983 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6984
6985         * gen_sslfunc.c (ssl_init_prng): Make the printed message
6986         translatable.
6987
6988 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
6989
6990         * url.c (scheme_disable): New function.
6991
6992         * main.c (main): Call ssl_init_prng from here rather than from
6993         init_ssl, so that it has a chance to disable support for https
6994         before a URL has been resolved.
6995
6996         * gen_sslfunc.c (ssl_init_prng): Seed with rand() if all else
6997         failed.
6998         (ssl_init_prng): Disable support for https if seeding the PRNG
6999         fails.
7000
7001 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7002
7003         * utils.c (read_whole_line): Handle lines beginning with \0.
7004
7005 2001-12-05  Hrvoje Niksic  <hniksic@arsdigita.com>
7006
7007         * recur.c (convert_all_links): Guard against duplicates in
7008         downloaded_html_files.
7009         (register_download): Don't invalidate similar-looking URLs.
7010         (match_except_index): New function.
7011
7012 2001-12-05  Hrvoje Niksic  <hniksic@arsdigita.com>
7013
7014         * utils.c (path_simplify): Document with test cases.
7015
7016 2001-12-04  Hrvoje Niksic  <hniksic@arsdigita.com>
7017
7018         * gen_sslfunc.c: Ditto.
7019
7020         * rbuf.c: Include <string.h>.
7021
7022 2001-12-04  Hrvoje Niksic  <hniksic@arsdigita.com>
7023
7024         * recur.c (retrieve_tree): Check whether the URL was already
7025         downloaded before downloading it again.
7026         (descend_child_p): Renamed to download_child_p.
7027         (register_download): When one URL is downloaded to a file already
7028         "owned" by another URL, delete all references that map any URL to
7029         that file.
7030         (register_delete_file): New function.
7031         (retrieve_tree): Use it after deleting a file.
7032
7033         * url.c (url_parse): Re-canonicalize the URL also if the path is
7034         empty, so that e.g. "http://www.server.com" ->
7035         "http://www.server.com/".
7036         (lowercase_str): Use ISUPPER instead of !ISLOWER.
7037
7038         * retr.c (retrieve_url): Use the canonical URL form when calling
7039         register_download().
7040
7041 2001-12-04  Ian Abbott <abbotti@mev.co.uk>
7042
7043         * snprintf.c (dopr): Use `unsigned int' as the second argument to
7044         va_arg when casting to `unsigned short' is intended.
7045
7046 2001-12-04  Herold Heiko  <Heiko.Herold@previnet.it>
7047
7048         * gen_sslfunc.c: on windows provide ssl crypto random
7049           initialization through RAND_screen(); could possibly
7050           be not enough for strong ssl communication (see the
7051           relevant manual page from the openssl package).
7052
7053 2001-12-04  Hrvoje Niksic  <hniksic@arsdigita.com>
7054
7055         * url.c (local_quote_string): Reenable quoting of question marks,
7056         but only when `--html-extension' is used.
7057
7058 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
7059
7060         * version.c: Wget 1.8-beta3 is released.
7061
7062 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
7063
7064         * snprintf.c (dopr): Cast the result of va_arg to short int and
7065         short unsigned int where these types are expected to be used.
7066
7067 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
7068
7069         * snprintf.c (dopr): Replace `short int' and `unsigned short int'
7070         with `int' when using it as the second argument to `va_arg'.
7071
7072 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
7073
7074         * host.c (address_list_new_one): New function.
7075         (lookup_host): Use it.
7076
7077 2001-12-03  Andre Majorel  <amajorel@teaser.fr>
7078
7079         * host.c (lookup_host): Don't initialize TMPSTORE directly because
7080         it's not legal C.
7081
7082 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
7083
7084         * ftp-basic.c (ftp_port): Don't return HOSTERR if we fail getting
7085         the socket data.
7086
7087         * ftp.c: Ditto.
7088
7089         * http.c: No need to declare h_errno.
7090
7091         * host.c: Declare h_errno.
7092
7093 2001-12-02  Hrvoje Niksic  <hniksic@arsdigita.com>
7094
7095         * utils.c (file_merge): If BASE doesn't contain a slash, just
7096         return a copy of FILE.
7097
7098 2001-12-02  Hrvoje Niksic  <hniksic@arsdigita.com>
7099
7100         * version.c: Wget 1.8-beta2 is released.
7101
7102 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
7103
7104         * ftp.c (getftp): When PWD fails, assume "/".
7105
7106         * ftp-basic.c (ftp_syst): Fix indentation.
7107
7108 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
7109
7110         * url.c (get_urls_file): If opt.base_href is specified, merge each
7111         URL with the base.
7112
7113 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
7114
7115         * main.c (print_help): Don't document the removed `-nh'.
7116
7117 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
7118
7119         * url.c (url_full_path): Document better.
7120
7121         * http.c (gethttp): Use the full path when creating digest
7122         authorization.
7123
7124 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
7125
7126         * cookies.c (path_matches): Return 0 if PREFIX doesn't begin with
7127         '/'.
7128
7129 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
7130
7131         * cookies.c (path_matches): FULL_PATH doesn't begin with '/', but
7132         PREFIX does.
7133
7134 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
7135
7136         * cookies.c (check_domain_match): Reimplement to match Netscape's
7137         "preliminary specification" for cookies.
7138
7139 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
7140
7141         * url.c (replace_attr_refresh_hack): New function.
7142         (convert_links): Call replace_attr_refresh_hack for Refresh
7143         links.  It will add the "TMOUT; URL=" junk before the link.
7144
7145         * html-url.c (collect_tags_mapper): Set ID to the ID of the
7146         "content" attribute, not "http-equiv".
7147         (collect_tags_mapper): Don't use OFFSET to hack the raw_* values;
7148         instead, store the information that this entry belongs to a
7149         "refresh" link.
7150
7151 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
7152
7153         * version.c: Wget 1.8-beta1 is released.
7154
7155 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
7156
7157         * recur.c (retrieve_tree): Allow -p retrievals to exceed maximum
7158         depth by more than one.
7159
7160 2001-11-30  Hrvoje Niksic  <hniksic@arsdigita.com>
7161
7162         * retr.c (retrieve_url): Don't allow more than 20 redirections.
7163
7164 2001-11-30  Hrvoje Niksic  <hniksic@arsdigita.com>
7165
7166         * recur.c (retrieve_tree): Skip the non-inline entries when
7167         enqueuing the children of a leaf HTML node in -p mode.
7168         (descend_url_p): Ignore opt.no_parent when in -p mode and UPOS is
7169         "inline".
7170
7171         * html-url.c (get_urls_html): Don't accept dash_p_leaf_HTML.
7172         (collect_tags_mapper): When an entry is "inline", mark it as such.
7173
7174         * recur.c (descend_url_p): Fix test when checking for
7175         acceptance/rejection rules.
7176
7177 2001-10-31 Daniel BODEA <dali@dali-designs.com>
7178
7179         * netrc.c (search_netrc): When slack_default is 0, still look for
7180         an account with matching password, just not the "default account".
7181         HTTP Authorization using .netrc should now work as expected.
7182
7183 2001-11-30  T. Bharath  <TBharath@responsenetworks.com>
7184
7185         * http.c (persistent_available_p): Call SHUTDOWN_SSL if
7186         test_socket_open fails.
7187
7188 2001-11-30  Hrvoje Niksic  <hniksic@arsdigita.com>
7189
7190         * progress.c (display_image): Just print one CR to reset the
7191         cursor position.
7192
7193 2001-11-30  Christian Fraenkel  <c.fraenkel@gmx.net>
7194
7195         * init.c: New command `ssl_egd_sock'.
7196
7197         * main.c (main): New option `--sslegdsock'.
7198
7199         * gen_sslfunc.c (ssl_init_prng): Seed the RNG using EGD.
7200
7201 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
7202
7203         * cmpt.c (memmove): Include a simple memmove implementation.
7204
7205 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
7206
7207         * headers: Guard against header files being included twice.
7208
7209 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
7210
7211         * gen-md5.c: Use unsigned char * as the buffer argument to
7212         gen_md5_update.
7213
7214 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
7215
7216         * connect.h: Declare select_fd.
7217
7218 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
7219
7220         * recur.c (descend_url_p): When resolving no_parent, compare with
7221         start_url, not parent url.  Otherwise link from /a/b/ to /a/c/
7222         wouldn't be followed, although the download started from /a/.
7223
7224 2001-01-23  Herold Heiko  <Heiko.Herold@previnet.it>
7225
7226         * config.h.ms, mswindows.h: defined HAVE_ISATTY, use _isatty for
7227         MS VC; somebody with Borland compiler please check and provide
7228         patch if possible;
7229
7230         * cmpt.c: provided a usleep emulation.
7231
7232 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
7233
7234         * host.c (address_list_new): Initialize al->faulty.
7235
7236 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
7237
7238         * http.c (http_process_range): Accept the broken output of
7239         "JavaWebServer/1.1.1".
7240
7241 2001-11-28  Hrvoje Niksic  <hniksic@arsdigita.com>
7242
7243         * progress.c (dot_set_params): If PARAMS is unspecified, use
7244         dot_style, if available.
7245
7246         * init.c: Ditto.
7247
7248         * main.c (main): Resurect --dot-style.
7249
7250         * progress.c (dot_finish): Print the quantity if we're left at the
7251         beginning of a row.
7252
7253 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7254
7255         * cmpt.c (random): Removed.
7256
7257         * retr.c (sleep_between_retrievals): Use the more portable rand()
7258         instead of random().
7259
7260 2001-11-27  Ian Abbott <abbotti@mev.co.uk>
7261
7262         * retr.c (retrieve_from_file): Initialize `new_file' to NULL to
7263         prevent seg fault.
7264
7265 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7266
7267         * connect.c (connect_to_many): Use address_list_set_faulty to
7268         prevent the faulty address from being reused.
7269
7270         * host.c (address_list_set_faulty): New function.
7271         (address_list_get_bounds): New function, instead of
7272         address_list_count.
7273
7274 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7275
7276         * url.c (convert_links): Don't translate %d-%d.
7277
7278         * main.c (print_help): Remove stray HAVE_RANDOM code.
7279
7280 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7281
7282         * ftp.c (getftp): Improve output after sending PASV.  Don't
7283         attempt to "look up" the IP address we already know; call
7284         connect_to_one directly.
7285
7286 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7287
7288         * progress.c: Change the default progress implementation to "bar".
7289
7290 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7291
7292         * progress.c (bar_create): Print two newlines.
7293
7294 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7295
7296         * cmpt.c (random): New function, a simple-minded replacement for
7297         random() on systems that don't have it.
7298
7299 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7300
7301         * config.h.in: Put a HAVE_USLEEP stub.
7302
7303         * cmpt.c (usleep): Replacement implementation of usleep using
7304         select.
7305
7306         * init.c: New option init_rate.
7307
7308         * main.c (main): New option --limit-rate.
7309
7310         * retr.c (limit_bandwidth): New function.
7311         (get_contents): Call it to limit the bandwidth used when
7312         downloading.
7313
7314         * progress.c (dot_update): Would print the wrong download speed on
7315         rows other than the first one when the download was continued.
7316         (dot_finish): Ditto.
7317
7318 2001-11-26  Ian Abbott <abbotti@mev.co.uk>
7319
7320         * http.c (gethttp): fix undeclared variable 'err' when compiled
7321         with HAVE_SSL.
7322
7323 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7324
7325         * progress.c: Don't allocate new timers; use the timing data
7326         propagated from the caller.
7327
7328         * retr.c (get_contents): Allocate and use a timer.
7329
7330 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7331
7332         * http.c (last_host_ip): Made into an address_list.
7333         (invalidate_persistent): Release pc_last_host_ip.
7334         (register_persistent): Use lookup_host.
7335         (persistent_available_p): Check for equality of hosts using
7336         address_list_match_all.  Call address_list_release.
7337         (http_cleanup): New function.
7338
7339         * ftp.c (getftp): Use lookup_host and connect_to_many.
7340
7341         * http.c (gethttp): Use lookup_host and connect_to_many.
7342
7343         * connect.c (make_connection): Removed.
7344         (connect_to_one): New function.
7345         (connect_to_many): Ditto.
7346         (set_connection_host_name): Ditto.
7347
7348         * host.c (lookup_host): New function; new return type.
7349         (address_list_new): New function.
7350         (address_list_count): Ditto.
7351         (address_list_copy_one): Ditto.
7352         (address_list_delete): Ditto.
7353         (address_list_release): Ditto.
7354         (pretty_print_address): Ditto.
7355
7356 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7357
7358         * recur.c (retrieve_tree): In case of followed redirection,
7359         blacklist the pre-redirection URL.
7360
7361 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7362
7363         * recur.c (descend_redirect_p): New function.
7364         (retrieve_tree): Make sure redirections are not blindly followed.
7365
7366 2001-11-04  Alan Eldridge  <alane@geeksrus.net>
7367
7368         * config.h.in: added HAVE_RANDOM.
7369
7370         * options.h: added random_wait to struct options.
7371
7372         * main.c (print_help [HAVE_RANDOM], main): added arg parsing, help
7373         for --random-wait.
7374
7375         * retr.c (sleep_between_retrievals) [HAVE_RANDOM]: added
7376         implementation of random wait times.
7377
7378         * init.c (commands): added "randomwait" keyword.
7379
7380 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7381
7382         * recur.c (descend_url_p): Be more conservative with blacklisting
7383         URLs.
7384         (convert_all_links): Print how many files have been converted, and
7385         how long it took.
7386
7387         * progress.c (create_image): Place the number of downloaded bytes
7388         right after the progress bar.
7389
7390         * utils.c (suffix): Return a pointer into the string.
7391
7392 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7393
7394         * url.c (convert_links): Handle CO_NULLIFY_BASE.
7395
7396         * recur.c (retrieve_tree): Ignore download-ignorable children.
7397         (convert_all_links): Specify CO_NULLIFY_BASE when link_base_p.
7398
7399         * html-url.c (handle_link): Return the newly created urlpos.
7400         (collect_tags_mapper): When dealing with BASE, store the base
7401         reference and mark it as download-ignorable.
7402
7403 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7404
7405         * url.c (convert_links): Attempt to quote '?' as "%3F" when
7406         linking to local files.  Given up on the attempt, as it breaks
7407         local browsing.
7408
7409 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7410
7411         * main.c (private_initialize): Removed.
7412         (main): Don't call private_initialize.
7413
7414         * http.c: Call lookup_host.
7415
7416         * host.c (host_init): Removed.
7417         (add_host_to_cache): Initialize host_name_address_map here, on
7418         demand.
7419         (ngethostbyname): Commented out.
7420
7421         * connect.c (make_connection): Remove dead code; use lookup_host.
7422
7423         * host.c (store_hostaddress): Renamed to lookup_host and reversed
7424         the args.
7425         Removed host_address_name_map and host_slave_master_map.
7426
7427 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7428
7429         * progress.c (dot_create): Align the "[ skipping ... ]" string
7430         with the dots.
7431
7432         * retr.c (rate): Split into two functions: calc_rate and
7433         retr_rate.
7434
7435         * progress.c (create_image): Draw a dummy progress bar even when
7436         total size is unknown.
7437         (display_image): Place the text cursor at the end of the "image".
7438
7439 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7440
7441         * url.c (reencode_string): Use unsigned char, not char --
7442         otherwise the hex digits come out wrong for 8-bit chars such as
7443         nbsp.
7444         (lowercase_str): New function.
7445         (url_parse): Canonicalize u->url if needed.
7446         (get_urls_file): Parse each URL, and return only the valid ones.
7447         (free_urlpos): Call url_free.
7448         (mkstruct): Add :port if the port is non-standard.
7449         (mkstruct): Append the query string to the file name, if any.
7450         (urlpath_length): Use strpbrk_or_eos.
7451         (uri_merge_1): Handle the cases where LINK is an empty string,
7452         where LINK consists only of query, and where LINK consists only of
7453         fragment.
7454         (convert_links): Count and report both kinds of conversion.
7455         (downloaded_file): Use a hash table, not a list.
7456         (downloaded_files_free): Free the hash table.
7457
7458         * retr.c (retrieve_from_file): Ditto.
7459
7460         * main.c (main): Call either retrieve_url or retrieve_tree
7461         for each URL, not both.
7462
7463         * retr.c (register_all_redirections): New function.
7464         (register_redirections_mapper): Ditto.
7465         (retrieve_url): Register the redirections.
7466         (retrieve_url): Make the string "Error parsing proxy ..."
7467         translatable.
7468
7469         * res.c (add_path): Strip leading slash from robots.txt paths so
7470         that the path representations are "compatible".
7471         (free_specs): Free each individual path, too.
7472         (res_cleanup): New function.
7473         (cleanup_hash_table_mapper): Ditto.
7474
7475         * recur.c (url_queue_new): New function.
7476         (url_queue_delete): Ditto.
7477         (url_enqueue): Ditto.
7478         (url_dequeue): Ditto.
7479         (retrieve_tree): New function, replacement for recursive_retrieve.
7480         (descend_url_p): New function.
7481         (register_redirection): New function.
7482
7483         * progress.c (create_image): Cosmetic changes.
7484
7485         * init.c (cleanup): Do all those complex cleanups only if
7486         DEBUG_MALLOC is defined.
7487
7488         * main.c: Removed --simple-check and the corresponding
7489         simple_host_check in init.c.
7490
7491         * html-url.c (handle_link): Parse the URL here, and propagate the
7492         parsed URL to the caller, who would otherwise have to parse it
7493         again.
7494
7495         * host.c (xstrdup_lower): Moved to utils.c.
7496         (realhost): Removed.
7497         (same_host): Ditto.
7498
7499 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7500
7501         * utils.c (path_simplify): Preserver the (non-)existence of
7502         leading slash.  Return non-zero if changes were made.
7503
7504 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7505
7506         * progress.c (bar_update): Don't modify bp->total_length if it is
7507         zero.
7508
7509 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7510
7511         * retr.c (retrieve_url): When the redirection URL doesn't parse,
7512         print the correct error message rather than "UNKNOWN".
7513
7514 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7515
7516         * progress.c (bar_finish): If the timer didn't record any time
7517         since the download beginning, fake 1ms.
7518
7519 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7520
7521         * recur.c (recursive_retrieve): Fix typo.
7522
7523 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
7524
7525         * progress.c (create_image): Don't translate "%ld ".
7526
7527 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
7528
7529         * progress.c (bar_set_params): Allow the user to force the use of
7530         the bar.
7531
7532 2001-11-23  Lemble Gregory  <gregory.lemble@st.com>
7533
7534         * gen_sslfunc.c (ssl_init_prng): New function; seed the SSL RNG.
7535
7536 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
7537
7538         * progress.c: Renamed dp_* functions to dot_* for greater clarity
7539         and consistency with bar_*.
7540         (print_download_speed): Get rid of the unneeded '@' character.
7541         (create_image): Fix download rate geometry.
7542
7543         * progress.c (print_elapsed): Remove spurious space.
7544         (print_elapsed): Renamed to print_download_speed, since that's
7545         what it does.
7546
7547 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
7548
7549         * progress.c (bar_update): If the downloaded amount becomes larger
7550         than the expected amount, adjust the expected amount accordingly.
7551
7552 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
7553
7554         * utils.c (determine_screen_width): New function.
7555
7556         * main.c (main): New option `--progress=TYPE'.
7557         (main): Implement compatibility with the old option `--dot-style'.
7558
7559         * init.c: Removed cmd_spec_dotstyle -- that logic is now in
7560         dp_set_params.
7561         (cmd_spec_progress): New function.
7562
7563         * retr.c (get_contents): Use the progress_* functions instead of
7564         the old show_progress().
7565         (show_progress): Removed.
7566         (rate): Print "xxxx.xx K/s" instead of "KB/s".  Ditto for MB/s,
7567         etc.
7568
7569         * progress.c (set_progress_implementation): New function.
7570         (valid_progress_implementation_p): Ditto.
7571         (progress_create): Ditto.
7572         (progress_update): Ditto.
7573         (progress_finish): Ditto.
7574         (dp_create): Ditto.
7575         (dp_update): Ditto.
7576         (dp_finish): Ditto.
7577         (dp_set_params): Ditto.
7578         (print_elapsed): Ditto.
7579
7580 2001-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
7581
7582         * retr.c (show_progress): Use it.
7583
7584         * log.c (log_set_flush): New function.
7585
7586 2001-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
7587
7588         * utils.c (path_simplify): Don't remove trailing slashes.
7589
7590         * ftp.c (ftp_get_listing): Use it.
7591
7592         * utils.c (file_merge): New function.
7593
7594         * url.c (opt_url): Removed.
7595
7596         * recur.c (recursive_retrieve): Inline "opt_url" logic.
7597
7598         * main.c (main): Use xfree(), not free().
7599
7600         * url.c (rewrite_url_maybe): Renamed to rewrite_shorthand_url.
7601
7602         * ftp.c (ccon): Move `ccon' typedef here, since it's only used
7603         internally.
7604
7605         * config.h.in: Include a stub for HAVE_STRPBRK.
7606
7607         * cmpt.c (strpbrk): Include a replacement for systems without
7608         strpbrk().
7609
7610         * ftp.c: Use url_set_dir and url_set_file when modifying the URL.
7611
7612         * url.c (url_set_dir): New function.
7613         (url_set_file): Ditto.
7614
7615         * ftp-basic.c (ftp_process_type): Process FTP type here; the URL
7616         parser makes the URL "params" available, so we can do that in this
7617         function.
7618
7619         * retr.c: Ditto.
7620
7621         * ftp.c: Ditto; pass the local file information in `ccon'.
7622
7623         * http.c: Get rid of the ugly kludge that had URL being replaced
7624         with the proxy URL when proxy retrieval was requested.  Use a
7625         separate parameter to http_loop and gethttp for the proxy URL.
7626
7627         * http.c: Changed to reflect the fact that local file, proxy, and
7628         referer information are no longer stored in struct url.  The local
7629         file information is passed in `struct hstat' now.
7630
7631         * url.c: Reworked URL parsing to be more regular.  Reencode the
7632         URL using reencode_string.
7633         Removed non-URL-related information from struct url.  This
7634         includes fields `proxy', `local', and `referer'.
7635
7636 2001-11-22  Jochen Hein  <jochen@jochen.org>
7637
7638         * main.c (main): Split the copyright notice for easier
7639         translation.
7640
7641 2001-08-21  Dave Turner <dct25@hermes.cam.ac.uk>
7642
7643         * ftp-basic.c (ftp_size): New function to send non-standard SIZE
7644           command to server to request file size.
7645         * ftp.h (ftp_size): Export it.
7646         * ftp.c (getftp): Use new ftp_size function if restoring
7647           transfer of a file with unknown size.
7648
7649 2001-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
7650
7651         * url.c (parseurl): Don't depend on the now-obsolete TYPE.
7652
7653 2001-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
7654
7655         * url.c (getproxy): Handle URL shorthands.
7656
7657 2001-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
7658
7659         * main.c: Remove --wait / --waitretry backwards compatibility
7660         code.
7661
7662 2001-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
7663
7664         * main.c (main): Use it.
7665
7666         * url.c (rewrite_url_maybe): New function.
7667
7668 2001-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
7669
7670         * url.c: Clean up handling of URL schemes.
7671
7672 2001-05-13  Hrvoje Niksic  <hniksic@arsdigita.com>
7673
7674         * url.c: Get rid of `protostrings'.
7675         (skip_proto): Don't use protostrings.
7676         (has_proto): Ditto.
7677
7678 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
7679
7680         * Makefile.in: Conditionally compile getopt.o.
7681
7682 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
7683
7684         * md5.h: Renamed to gnu-md5.h.
7685
7686         * md5.c: Renamed to gnu-md5.c.
7687
7688         * http.c: Ditto.
7689
7690         * ftp-opie.c: Use the new macros.
7691
7692         * sysdep.h: Define md5-related macros.
7693
7694         * config.h.in: Define HAVE_SOLARIS_MD5 or HAVE_BUILTIN_MD5
7695         depending on which md5 implementation is used.
7696
7697 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
7698
7699         * res.c (res_register_specs): Initialize OLD and HP_OLD to appease
7700         the compiler.
7701
7702 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
7703
7704         * http.c (gethttp): Print the whole response line when printing
7705         headers is requested.
7706
7707 2001-05-12  Hrvoje Niksic  <hniksic@arsdigita.com>
7708
7709         * res.c: New file.  Implement all RES-related code here.
7710
7711 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
7712
7713         * version.c: Wget 1.7.1 is released.
7714
7715 2001-11-16  Hrvoje Niksic  <hniksic@arsdigita.com>
7716
7717         * headers.c (header_extract_number): Ignore trailing whitespace.
7718
7719 2001-08-24  Ian Abbott  <abbotti@mev.co.uk>
7720
7721         * html-url.c (collect_tags_mapper): Fix bug converting links
7722         with -k option for tags with multiple link attributes by
7723         handling links in the order they appear.
7724
7725 2001-08-15  Ian Abbott  <abbotti@mev.co.uk>
7726
7727         * ftp.c (ftp_loop_internal): Avoid a potential buffer overflow in
7728           the call to the 'rate' function by moving it past the error
7729           checking for the 'getftp' function return value.
7730
7731 2001-11-16  Hrvoje Niksic  <hniksic@arsdigita.com>
7732
7733         * html-parse.c (advance_declaration): Use 0x22 instead of '"' or
7734         '\"'.  Different compilers' assert macros are broken in different
7735         ways.
7736
7737 2001-09-29  Christian Fraenkel  <c.fraenkel@gmx.net>
7738
7739         * http.c (gethttp): print debug output for errors occuring during
7740         the ssl handshake.
7741
7742 2001-11-16  Chris Seawood  <cls@seawood.org>
7743
7744         * init.c: Ditto.
7745
7746         * host.c: Ditto.
7747
7748         * connect.c: Ditto.
7749
7750         * sysdep.h: Support compilation under BEOS.
7751
7752 2001-06-08  Edward J. Sabol  <sabol@alderaan.gsfc.nasa.gov>
7753
7754         * url.c (url_equal): Fix a memory leak when parseurl returns an
7755         error on the second URL. Also, since url_equal is not used at the
7756         moment, do not compile it.
7757
7758         * url.h: Ditto for the prototype of url_equal.
7759
7760 2001-11-16  Hrvoje Niksic  <hniksic@arsdigita.com>
7761
7762         * html-parse.c (map_html_tags): Support XML-style empty tags.
7763
7764 2001-06-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7765
7766         * wget.h (DO_REALLOC_FROM_ALLOCA): Check for do_realloc_newsize in
7767         loop condition because we're no longer setting SIZEVAR here.
7768
7769 2001-06-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7770
7771         * wget.h (DO_REALLOC_FROM_ALLOCA): Set SIZEVAR after the memcpy()
7772         call because it needs the old value.
7773
7774 2001-06-18  Hrvoje Niksic  <hniksic@arsdigita.com>
7775
7776         * cookies.c (ATTR_NAME_CHAR): Allow almost any character to be in
7777         an attribute name.
7778
7779 2001-06-18  Hrvoje Niksic  <hniksic@arsdigita.com>
7780
7781         * url.c (url_filename): Make sure that slashes that sneak in to
7782         u->file via query string get protected.
7783         (file_name_protect_query_string): New function.
7784
7785 2001-06-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7786
7787         * recur.c (recursive_retrieve): Also check undesirable_urls with
7788         canonicalized URL.
7789
7790 2001-06-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7791
7792         * http.c (gethttp): Search `.netrc' with real host, not the proxy
7793         one.
7794
7795 2001-06-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7796
7797         * sysdep.h (MAP_FAILED): Provide MAP_FAILED for systems that don't
7798         define it.
7799
7800 2001-06-09  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
7801
7802         * ftp.h: Provide correct prototype for ftp_parse_ls().
7803
7804 2001-06-04  Hrvoje Niksic  <hniksic@arsdigita.com>
7805
7806         * version.c: Wget 1.7 is released.
7807
7808 2001-06-03  Karl Eichwalder  <ke@suse.de>
7809
7810         * ftp-ls.c (ftp_parse_ls): Fix typo.
7811
7812 2001-05-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7813
7814         * all: Update copyright information.
7815
7816 2001-05-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7817
7818         * http.c (gethttp): Indicate that the continued download failed
7819         for *this* file.
7820
7821 2001-05-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7822
7823         * version.c: Wget 1.7-pre1 is released.
7824
7825 2001-05-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7826
7827         * version.c: Updated version to 1.7-pre1.
7828
7829 2001-05-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7830
7831         * gen_sslfunc.c: Don't include <sys/time.h> directly.
7832
7833 2001-05-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7834
7835         * http.c (gethttp): Use real URL data for cookies, not the proxy
7836         stuff.
7837
7838 2001-05-12  Hrvoje Niksic  <hniksic@arsdigita.com>
7839
7840         * main.c (print_help): Document `--no-http-keep-alive'.
7841
7842         * utils.c (numdigit): Handle negative numbers *correctly*.
7843
7844         * hash.c (make_nocase_string_hash_table): Use term "nocase" rather
7845         than the confusing "unsigned".
7846
7847         * utils.c (string_set_contains): Renamed from string_set_exists.
7848
7849         * hash.c (hash_table_contains): Renamed from hash_table_exists.
7850
7851         * cookies.c: Move case-insensitive hash tables to hash.c.
7852
7853 2001-05-09  Hrvoje Niksic  <hniksic@arsdigita.com>
7854
7855         * http.c (gethttp): Before concluding that the file is already
7856         fully retrieved, make sure that the file existed and `Range' was
7857         actually requested.
7858
7859 2001-05-09  Hrvoje Niksic  <hniksic@arsdigita.com>
7860
7861         * cookies.c (eliminate_dups): New function.
7862         (build_cookies_request): Use it.
7863         (build_cookies_request): Set chain_store_size after reallocating
7864         all_chains.
7865         (check_domain_match): Annotated for easier future debugging.
7866         (store_cookie): In the debug message, print whether the cookie is
7867         permanent.
7868
7869 2001-05-08  Hrvoje Niksic  <hniksic@arsdigita.com>
7870
7871         * http.c (http_loop): Reset no_truncate before deciding whether to
7872         set it.
7873         (gethttp): Further clarify "-c conflicts with existing file" error
7874         message, based on input from Herold Heiko.
7875
7876 2001-05-07  Hrvoje Niksic  <hniksic@arsdigita.com>
7877
7878         * http.c (http_loop): If restval is set, set no_truncate to 1
7879         unconditionally.
7880
7881 2001-05-02  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
7882
7883         * ftp-ls.c (ftp_parse_winnt_ls): Assure months are being correctly
7884         converted. Pointed out by <Stefan.Weil@de.heidelberg.com>.
7885         (ftp_parse_vms_ls): Ditto.
7886
7887 2001-04-30  Hrvoje Niksic  <hniksic@arsdigita.com>
7888
7889         * init.c (cmd_address): Zero SIN before using it; apparently
7890         needed on *BSD.
7891
7892 2001-04-29  Hrvoje Niksic  <hniksic@arsdigita.com>
7893
7894         * ftp.c (ftp_loop_internal): Don't set NO_TRUNCATE if the file is
7895         empty.
7896
7897 2001-04-29  Hrvoje Niksic  <hniksic@arsdigita.com>
7898
7899         * main.c (main): Make `--cookies' respect its argument.
7900
7901 2001-04-28  Hrvoje Niksic  <hniksic@arsdigita.com>
7902
7903         * main.c (main): Removed undocumented option `--email-address'.
7904
7905         * netrc.c: Use the latest read_whole_line.
7906
7907         * init.c (defaults): Set opt.ftp_pass to "-wget@".
7908
7909         * mswindows.c (pwd_cuserid): Ditto.
7910
7911         * utils.c (pwd_cuserid): Removed.
7912
7913         * host.c (ftp_getaddress): Removed.
7914
7915 2001-04-28  Hrvoje Niksic  <hniksic@arsdigita.com>
7916
7917         (http_loop): Allocate space for filename_plus_orig_suffix with
7918         alloca; this is more efficient and removes the need to free it
7919         before each and every return.
7920
7921 2001-04-28  Hrvoje Niksic  <hniksic@arsdigita.com>
7922
7923         * http.c (gethttp): Return RETRUNNEEDED when the retrieval is
7924         unneeded because the file is already there and fully downloaded,
7925         and -c is specified.
7926         (http_loop): Handle RETRUNNEEDED.
7927
7928         * wget.h (uerr_t): New value RETRUNNEEDED.
7929
7930         * http.c (http_loop): Set no_truncate for files that both exist
7931         and are non-empty.
7932         (gethttp): Consider the download finished when restval >= contlen,
7933         not only when restval==contlen.
7934         (gethttp): Handle redirection before giving up due to -c.
7935         (gethttp): Clarify error message which explains that -c will not
7936         truncate the file.
7937         (gethttp): When returning CONTNOTSUPPORTED, don't forget to free
7938         the stuff that needs freeing and release the socket.
7939
7940 2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7941
7942         * main.c (print_help): Wget booleans accept "off", not "no".
7943
7944 2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7945
7946         * http.c (http_loop): If allow_cache is zero, always disable
7947         caching, not only when retrieving through proxy.
7948
7949         * init.c: Ditto.
7950
7951         * options.h (struct options): Rename proxy_cache to allow_cache.
7952
7953 2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7954
7955         * http.c (mktime_from_utc): Improve documentation.
7956         (http_atotm): Put format strings into a separate array.
7957
7958 2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7959
7960         * safe-ctype.h: Instead of throwing #error when isalpha is
7961         defined, redefine it to something that will throw a compile-time
7962         error if actually *used*.  Do the same for the rest of the
7963         standard C macros.
7964
7965 2001-04-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7966
7967         * url.c (getproxy): Ignore empty proxy vars.
7968
7969 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7970
7971         * http.c (http_loop): Would load cookies every time.
7972
7973         * cookies.c (load_cookies): Handle cookies whose values contain
7974         embedded spaces.
7975
7976 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7977
7978         * utils.c: Define each DIGITS_* in one line.
7979
7980 2001-04-25  Roger L. Beeman  <beeman@cisco.com>
7981
7982         * http.c (http_atotm): Initialize t.tm_isdst to 0.
7983         (mktime_from_utc): Prevent mktime() from having discontinuities at
7984         DST transition points.
7985
7986 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7987
7988         * html-url.c (get_urls_html): Fix documentation.
7989
7990 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7991
7992         * url.c (UNSAFE_CHAR): Reimplement using a static table.
7993         (url_init): Removed.
7994         (init_unsafe_char_table): Removed.
7995
7996 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7997
7998         * snprintf.c (dopr): Replace ISDIGIT with '0' <= ch && ch <= '9'.
7999
8000 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
8001
8002         * utils.c: Document timer functions.
8003
8004         * retr.c (rate): Use it.
8005         (rate): Print in GB/s if transfer rate exceeds 1 GB/s.
8006
8007         * utils.c (wtimer_granularity): New function.
8008
8009 2001-04-24  Hrvoje Niksic  <hniksic@arsdigita.com>
8010
8011         * retr.c (show_progress): Ditto.
8012
8013         * ftp.c (getftp): Ditto.
8014
8015         * http.c (gethttp): Use new timer functions.
8016
8017         * utils.c (wtimer_allocate): New function.
8018         (wtimer_new): Ditto.
8019         (wtimer_delete): Ditto.
8020         (wtimer_reset): Ditto.
8021         (wtimer_elapsed): Ditto.
8022
8023 2001-04-24  Hrvoje Niksic  <hniksic@arsdigita.com>
8024
8025         * utils.c (long_to_string): New, faster version.  Favors smaller
8026         numbers; much of the calculation is now done at compile-time.
8027
8028 2001-04-24  Hrvoje Niksic  <hniksic@arsdigita.com>
8029
8030         * utils.c (numdigit): Handle negative numbers.
8031
8032 2001-04-23  Hrvoje Niksic  <hniksic@arsdigita.com>
8033
8034         * retr.c (show_progress): Print the download rate even when the
8035         percentages are not available.
8036
8037 2001-04-21  Hrvoje Niksic  <hniksic@arsdigita.com>
8038
8039         * ftp.c (getftp): Adjust expected_bytes if the length is
8040         authoritative.
8041
8042 2001-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
8043
8044         * url.c: Don't declare `construct'.
8045
8046         * hash.c (grow_hash_table): Speed up rehashing; inline storing of
8047         mappings to new locations.
8048         (hash_table_new): Make resize_threshold a field in the hash table,
8049         so we don't have to recalculate it in each hash_table_put.
8050         (grow_hash_table): Update resize_threshold.
8051         (MAX): Remove unused macro.
8052         (prime_size): Made static.
8053
8054 2001-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
8055
8056         * retr.c (retrieve_url): Call uri_merge, not url_concat.
8057
8058         * html-url.c (collect_tags_mapper): Call uri_merge, not
8059         url_concat.
8060
8061         * url.c (mkstruct): Use encode_string instead of xstrdup followed
8062         by URL_CLEANSE.
8063         (path_simplify_with_kludge): Deleted.
8064         (contains_unsafe): Deleted.
8065         (construct): Renamed to uri_merge_1.
8066         (url_concat): Renamed to uri_merge.
8067
8068 2001-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
8069
8070         * url.c (str_url): Use encode_string instead of the unnecessary
8071         CLEANDUP.
8072         (encode_string_maybe): New function, returns input string if no
8073         encoding is needed.
8074         (encode_string): Call encode_string_maybe to do the dirty work,
8075         xstrdup if no work needed.
8076
8077 2001-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
8078
8079         * wget.h (XDIGIT_TO_xchar): Define here.
8080
8081         * url.c (decode_string): Use new name.
8082         (encode_string): Ditto.
8083
8084         * http.c (XDIGIT_TO_xchar): Rename HEXD2asc to XDIGIT_TO_xchar.
8085         (dump_hash): Use new name.
8086
8087         * wget.h: Rename ASC2HEXD and HEXD2ASC to XCHAR_TO_XDIGIT and
8088         XDIGIT_TO_XCHAR respectively.
8089
8090 2001-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
8091
8092         * init.c: Include cookies.h.
8093
8094         * cookies.h: Declare cookies_cleanup.
8095
8096         * cookies.c (check_domain_match): Remove unused variable.
8097         (save_cookies): Remove extraneous argument from debug statement.
8098
8099         * host.c (same_host): Don't call skip_url.
8100
8101         * url.c (skip_url): Removed.  Removed its calls from various
8102         functions in url.c.
8103
8104 2001-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
8105
8106         * cookies.c (unsigned_string_hash): Use the new code in
8107         string_hash as reference.
8108
8109         * hash.c (hash_table_map): Allow deletion and change of the
8110         element processed by MAPFUN.
8111         (string_hash): Use the function from glib.
8112
8113 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
8114
8115         * config.h.in: Include #undef stub.
8116
8117         * hash.c (hash_table_remove): Rewrite to actually clear deleted
8118         entries instead of just marking them as deleted.
8119
8120 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
8121
8122         * hash.h: Declare hash_table_get_pair and hash_table_count.
8123
8124 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
8125
8126         * cookies.c: Declare http_atotm.
8127
8128 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
8129
8130         * ftp-ls.c (ftp_parse_unix_ls): Use octal constants for
8131         permissions.  A compiler that doesn't accept octal constants is
8132         seriously broken and shouldn't be used -- octal constants were
8133         present in K&R C!
8134
8135 2001-01-20  Karl Eichwalder  <ke@suse.de>
8136
8137         * Makefile.in: Provide and use DESTDIR according to the Coding
8138         Standards.
8139
8140 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
8141
8142         * ftp-ls.c (ftp_parse_vms_ls): Make seconds optional in time
8143         specification.
8144
8145 2001-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
8146
8147         * url.c (parseurl): Don't strip trailing slash when u->dir is "/"
8148         because that strips the *leading* slash, thus forcing relative
8149         FTP retrieval.
8150
8151 2001-04-10  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8152
8153         * ftp.c (getftp): Convert initial FTP directory from VMS to UNIX
8154         notation for VMS servers.
8155         (ftp_retrieve_dirs): Do not prepend '/' to f->name when
8156         odir is an empty string.
8157
8158 2001-04-10  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8159
8160         * ftp-ls.c (ftp_parse_winnt_ls): Made the fix for AM/PM more
8161         effective. Suggested by Edward J. Sabol.
8162
8163 2001-04-10  Hrvoje Niksic  <hniksic@arsdigita.com>
8164
8165         * cookies.c (build_cookies_request): Use and sort cookies from all
8166         matching domains.
8167         (build_cookies_request): Check for duplicates before generating
8168         the `Cookies' header.
8169
8170         * main.c (main): Don't load cookies here.
8171         (main): Make loadcookies and savecookies call the correct command.
8172
8173         * http.c (http_loop): Load cookies on-demand.
8174
8175 2001-04-09  Hrvoje Niksic  <hniksic@arsdigita.com>
8176
8177         * http.c (gethttp): Fix indentation of SSL ifdef.
8178
8179 2001-04-09  Hrvoje Niksic  <hniksic@arsdigita.com>
8180
8181         * ftp.c (ftp_retrieve_dirs): Don't forcibly prepend "/" to u->dir;
8182         that hack is no longer necessary.
8183         (getftp): Prepend initial directory to *non*-absolute u->dir's.
8184
8185 2001-04-09  Hrvoje Niksic  <hniksic@arsdigita.com>
8186
8187         * init.c (cmd_file): New function.
8188         (enable_tilde_expansion): New variable.
8189         (run_wgetrc): Use it.
8190         (cmd_file): Use it.
8191
8192 2001-04-08  Hrvoje Niksic  <hniksic@arsdigita.com>
8193
8194         * init.c: Include cookie-related options.
8195
8196         * main.c (main): Include cookie-specific options.
8197         (main): Load cookies before download is finished.
8198         (main): Save cookies when done.
8199
8200         * http.c (gethttp): Process the `Set-Cookie' header.
8201         (gethttp): Include cookies in the response.
8202
8203         * cookies.c: New file.
8204
8205 2001-04-08  Hrvoje Niksic  <hniksic@arsdigita.com>
8206
8207         * utils.c (datetime_str): New function.
8208
8209 2001-04-08  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8210
8211         * ftp-ls.c (ftp_parse_winnt_ls): The AM/PM change did assume
8212         12:01PM == 00:01, which was obviously wrong. Taken care of this
8213         anomaly.
8214
8215         * ChangeLog: Removed an excess conflict marker. Reformatted the
8216         entry by Philipp Thomas from 2001-03-09.
8217
8218         * ftp-ls.c (ftp_parse_winnt_ls): Ensure that adjusted PM hours lay
8219         between 0 and 23. Elminate unused variable `sec'.
8220
8221 2001-04-08  Hrvoje Niksic  <hniksic@arsdigita.com>
8222
8223         * hash.c (hash_table_count): New function.
8224
8225 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8226
8227         * utils.c (read_file): Cast MAP_FAILED to char *.  Enforced by
8228         Digital Unix cc.
8229
8230 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8231
8232         * config.h.in: Oops, do the namespace tweaks only on systems we
8233         know about.
8234
8235 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8236
8237         * hash.c: Include <string.h>.
8238
8239 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8240
8241         * config.h.in: Define "compilation environment" options that work
8242         under Linux and Solaris.  To be reviewed on other OS'es.
8243
8244 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8245
8246         * http.c (gethttp): Prepend literal newline with `\n\'.
8247
8248 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8249
8250         * sysdep.h: Don't define VERY_LONG_FORMAT.
8251
8252         * utils.c (very_long_to_string): New function.
8253         (legible_very_long): Use it; don't use VERY_LONG_FORMAT.
8254
8255 2001-04-04  Christian Fraenkel  <christian.fraenkel@gmx.net>
8256
8257         * url.c (parse_uname): Would run past the end of the string if the
8258         username was present, but the URL did not contain a slash, e.g.
8259         http://foo:bar@myhost.
8260
8261 2001-04-03  KOJIMA Hajime  <kjm@rins.ryukoku.ac.jp>
8262
8263         * http.c (http_atotm): Use %A instead of %a to match full
8264         weekday.  (On most systems there is no difference.)
8265
8266 2001-04-03  Paul Bludov  <paul@ozero.net>
8267
8268         * mswindows.c (sleep): Use SleepEx() instead of Sleep().
8269         (ws_changetitle): Use alloca() instead of malloc() to avoid memory
8270         leak.
8271         (ws_mypath): Use GetModuleFileName instead of argv[0].
8272         (ws_startup): Use data.wVersion for comparison.
8273
8274 2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
8275
8276         * http.c (http_loop): Ditto.
8277
8278         * ftp.c (ftp_loop_internal): Made the check whether to continue
8279         retrieval `-O'-friendly.
8280
8281 2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
8282
8283         * netrc.c (parse_netrc): Don't trim the line endings explicitly;
8284         they will be handled as whitespace.
8285         (parse_netrc): Correctly handle lines that end with whitespace.
8286
8287 2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
8288
8289         * retr.c (retrieve_url): New variable global_download_count used
8290         to identify first retrieval.
8291
8292         * ftp.c (getftp): Ditto.
8293
8294         * http.c (gethttp): Rewind opt.dfp only on first retrieval.
8295
8296 2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
8297
8298         * init.c (cmd_address): Heap-allocate the address that gets stored
8299         to CLOSURE.  Old code would simply assign an address on the stack.
8300
8301 2001-04-01  Nicolas Lichtmaier <nick@debian.org>
8302
8303         * ftp.c (ftp_get_listing): Propagate error status.
8304         (ftp_retrieve_glob): Use it.
8305         (ftp_loop): Ditto.
8306
8307 2001-04-01  Nicolas Lichtmaier <nick@debian.org>
8308
8309         * main.c (main): Add -C to the string that is the third arg to
8310         getopt_long().
8311
8312 2001-04-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8313
8314         * ftp.c (getftp): Don't start the download from scratch if `-c'
8315         was specified, but the file is already fully downloaded.
8316
8317         * http.c (gethttp): Don't truncate a pre-existing file if `-c' was
8318         specified and the server doesn't support continued download.
8319         (gethttp): Don't start the download from scratch if `-c' was
8320         specified, but the file is already fully downloaded.
8321
8322 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
8323
8324         (recursive_retrieve): Don't clear the hash tables at this point at
8325         all; it interferes with the normal operation of register_download.
8326
8327 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
8328
8329         * recur.c (recursive_retrieve): Clear the hash tables only when
8330         they are defined.
8331
8332 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
8333
8334         * http.c (gethttp): Make sure the socket is closed with
8335         CLOSE_INVALIDATE before we have drained the body.
8336
8337 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
8338
8339         * retr.c (retrieve_url): Call register_download() for downloaded
8340         files and register_html() for downloaded HTML files.
8341
8342         * recur.c (register_download): New function; register here that a
8343         file has been downloaded, rather than in recursive_retrieve().
8344         (register_html): New function; enqueue the location of HTML files
8345         here rather than in recursive_retrieve().
8346
8347 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
8348
8349         * main.c (print_help): Use multiple fputs instead of a single ugly
8350         printf().
8351         (main): Consistently assign numbers >128 to options without a
8352         corresponding character.
8353
8354 2001-03-09  Philipp Thomas  <pthomas@suse.de>
8355
8356         * safe-ctype.h: New file. Locale independent ctype.h replacement
8357         taken from libiberty.
8358
8359         * safe-ctype.c: New file. Tables for above.
8360
8361         * Makefile.in: Add safe-ctype$o to OBJS.  Add dependencies for
8362         safe-ctype$o.
8363
8364         * cmpt.c: Remove include of ctype.h. Use ISSPACE instead of
8365         isspace.
8366
8367         * ftp-basic.c: Don't include ctype.h.
8368
8369         * ftp-ls.c: Likewise.
8370
8371         * ftp.c: Likewise.
8372
8373         * headers.c: Likewise.
8374
8375         * host.c: Likewise.
8376
8377         * html-parse.c: Likewise.
8378
8379         * html-url.c: Likewise.
8380
8381         * http.c: Likewise.
8382
8383         * init.c: Likewise.
8384
8385         * main.c: Likewise. Set LC_CTYPE along with LC_MESSAGES.
8386
8387         * netrc.c: Likewise.
8388
8389         * recur.c: Likewise.
8390
8391         * retr.c: Likewise.
8392
8393         * snprintf.c: Replace ctype.h with safe-ctype.h. Use ISDIGIT
8394         instead of isdigit.
8395
8396         * sysdep.h: Remove defines of ctype macros as they aren't needed
8397         for safe-ctype-h.
8398
8399         * url.c: Don't include ctype.h.
8400
8401         * utils.c: Likewise.
8402
8403         * wget.h: Include safe-ctype.h.
8404
8405 2001-03-27  Dan Harkless  <wget@harkless.org>
8406
8407         * Makefile.in: Moved top_builddir out of "User configuration
8408         section" of top Makefile and analogous spot in this one.
8409
8410 2001-03-17  Dan Harkless  <wget@harkless.org>
8411
8412         * Makefile.in: Include @SSL_INCLUDES@ substition in INCLUDES.
8413         Define top_builddir.  Link wget with libtool so the user doesn't
8414         have to supply a bunch of custom environment variables to
8415         correctly link with the OpenSSL shared libraries.
8416
8417 2001-03-06  Hack Kampbjorn  <hack@hackdata.com>
8418
8419         * http.c (gethttp): skip :port in host header if it is the
8420         DEFAULT_HTTPS_PORT when using SSL.
8421
8422         * url.c: move the #define of DEFAULT_HTTP_PORT, DEFAULT_FTP_PORT
8423         and DEFAULT_HTTPS_PORT to the header file so it can be use in the
8424         rest of the code.
8425         * url.h: Ditto
8426
8427 2001-03-01  Jonas Jensen  <bones@huleboer.dk>
8428
8429         * retr.c (show_progress): Correctly calculate the number of bytes
8430         in the first line of the download that have been actually
8431         downloaded in this run.
8432
8433 2001-02-23  Dan Harkless  <wget@harkless.org>
8434
8435         * main.c (print_help): --help documentation for -N said it would
8436         re-download files if they had the _same_ timestamp on server.
8437         (print_help): -nr belongs in "FTP options" section of --help
8438         output, not "Recursive retrieval" section.  Alphabetized FTP
8439         options by long option name.
8440
8441 2001-02-16  Dan Harkless  <wget@harkless.org>
8442
8443         * init.c (commands): Hack Kampbjørn <hack@hackdata.com> discovered
8444         that "httpsproxy" had been inserted into commands[] out of
8445         alphabetical order, causing "BUG: unknown command `httpuser'".
8446
8447 2001-02-13  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8448
8449         * ftp-ls.c (ftp_parse_ls): Added support of ST_MACOS (Unix-like
8450         listing without correct permissons).
8451
8452         * ftp.h (stype): Added ST_MACOS to identify the NetPresenz MacOS
8453         FTP server.
8454
8455         * ftp.c (ftp_retrieve_list): New mirroring logic: A remote file
8456         shall be donwloaded only when it's newer than the local copy or
8457         when it has the same timeestamp but its size is different. ST_VMS
8458         and ST_MACOS as special cases that lie about file size.
8459
8460         * ftp-ls.c (ftp_parse_ls): Support for ST_MACOS.
8461
8462         * Makefile.in: Removed dependency on ftpparse library due to unclear
8463         copyright issues and absence of any feedback to our queries.
8464
8465         * ftp-ls.c: Removed dependency on ftpparse library due to unclear
8466         copyright issues and absence of any feedback to our queries.
8467         (ftp_parse_ls): Added a warning message when remote server system
8468         does not seem to be suported by wget.
8469         (ftp_parse_vms_ls): New function for parsing VMS ftp
8470         server listing output.
8471         (clean_line): New function responsible for removing
8472         end-of-line characters from FTP listing texts.
8473
8474         * ftp.c (getftp): Global variables pwd and host_type are now
8475         member of the ccon structure under names ccon.id and ccon.rs.
8476
8477         * ftp.h (struct ccon): Added formed global variables from ftp.c,
8478         enum stype rs (remote system identification) and char *id (initial
8479         working directory), as suggested by Hrvoje.
8480
8481         * url.c (parse_uname): Added support for passwords containing '@'
8482         characters.
8483         (skip_uname): Ditto.
8484
8485 2001-02-11  Hrvoje Niksic  <hniksic@arsdigita.com>
8486
8487         * ftp.c (ftp_loop): Reset con.
8488
8489 2001-01-06  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8490
8491         * url.c (parse_uname): Added support for passwords containing '@'
8492         characters.
8493         (skip_uname): Ditto.
8494
8495 2001-02-11  Hack Kampbjørn  <hack@hackdata.com>
8496
8497         * url.c (parseurl): Debug-print u->ftp_type.
8498
8499 2001-02-11  Hrvoje Niksic  <hniksic@arsdigita.com>
8500
8501         * ftp.c (ftp_loop_internal): Disable padding.
8502         (getftp): Ditto.
8503
8504         * http.c (http_loop): Disable padding.
8505
8506         * retr.c (show_progress): Use it to enable padding.
8507
8508         * retr.c (rate): Optional parameter PAD for padding the rate.
8509
8510 2001-02-10  Hrvoje Niksic  <hniksic@arsdigita.com>
8511
8512         * retr.c (show_progress): Make sure that the last output line
8513         includes progress.
8514
8515 2001-02-10  Jonas Jensen  <bones@huleboer.dk>
8516
8517         * retr.c (show_progress): Print the download rate along with the
8518         percentages.
8519         Along with Anders Thorsby <anders@thorsby.dk>.
8520
8521 2001-02-10  Tim Mooney  <mooney@dogbert.cc.ndsu.NoDak.edu>
8522
8523         * ftp.h: Rename enums `command' to `wget_ftp_command' and
8524         `fstatus' to `wget_ftp_status' because old names clash with Tru64
8525         net/if.h.
8526
8527 2001-02-08  Christian Fraenkel <christian.fraenkel@gmx.net>
8528
8529         * gen_sslfunc.c: verify_callback is now static
8530
8531         * gen_sslfunc.c (init_ssl): load certificate if specified
8532
8533         * gen_sslfunc.c (ssl_printerr): new function
8534
8535         * init.c: added new --sslcertfile and --sslcertkey switches
8536
8537         * main.c: ditto
8538
8539         * options.h: ditto
8540
8541         * http.c (gethttp): abort when init_ssl fails
8542
8543 2001-01-23  Herold Heiko  <Heiko.Herold@previnet.it>
8544
8545         * mswindows.h: Include <malloc.h>; it's needed for alloca().
8546
8547 2001-01-10  Dan Harkless  <wget@harkless.org>
8548
8549         * url.c (str_url): Clarified this function's comment header after
8550         Hrvoje answered my question on the list as to when hide != 1.
8551         Also Hrvoje pointed out I need to use xstrdup() on the string literal.
8552
8553 2001-01-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8554
8555         * connect.c (bindport): Declare addrlen as int.  Diagnosed by
8556         Drazen Kacar <dave@arsdigita.com>.
8557         (conaddr): Ditto.
8558
8559 2001-01-09  Dan Harkless  <wget@harkless.org>
8560
8561         * html-url.c: A bunch of fixup of `--page-requisites'-related
8562         comments to reflect Hrvoje's changes to my code when transplanting
8563         it into this new file, to fix spelling mistakes, to clarify, etc.
8564
8565         * url.c (write_backup_file): Clarified a comment.
8566         (str_url): Henrik van Ginhoven pointed out on the list that we
8567         shouldn't give away the number of characters in the password by
8568         replacing each character with a 'x'.  Use "<password>" instead.
8569
8570         * ftp.c (ftp_retrieve_dirs): The bug where recursion into FTP
8571         directories didn't work if logging in put you in a directory other
8572         than "/" is fixed now.  Removed the comment here warning of the bug.
8573
8574         * main.c (print_help): --continue's description was misleading.
8575         We don't "restart", we "resume".  Also, better to say
8576         "partially-downloaded file" rather than just "existing file".
8577
8578 2001-01-06  Dan Harkless  <wget@harkless.org>
8579
8580         * ChangeLog: The '[Not in 1.6 branch.]'s were decided not to be
8581         the best way to go about my aim.  Removed them in favor of:
8582
8583         * ChangeLog-branches/1.6_branch.ChangeLog: New file.
8584
8585 2001-01-04  Hrvoje Niksic  <hniksic@arsdigita.com>
8586
8587         * url.c (replace_attr): New function, to be used by both
8588         TO_COMPLETE and TO_RELATIVE case in convert_links.
8589         (find_fragment): New function for finding URL fragments.
8590         (replace_attr): Better handle the case where the original string
8591         is not quoted.  Use find_fragment.
8592         (convert_links): Use replace_attr().
8593
8594 2000-12-31  Dan Harkless  <wget@harkless.org>
8595
8596         * ChangeLog: Since this flat file doesn't have multiple branches,
8597         looking at the dates would make you think that things went into
8598         1.6 that actually just went into the 1.7-dev branch.  Added "[Not
8599         in 1.6 branch.]" where appropriate to clarify.
8600
8601 2000-12-30  Dan Harkless  <wget@harkless.org>
8602
8603         * ftp.c, http.c:  Applied Hack Kampbjørn <hack@hackdata.com>'s
8604         patch to deal with h_errno not being defined in netdb.h under Cygwin.
8605
8606 2000-12-18  Csaba Raduly  <csaba.raduly@sophos.com>
8607
8608         * sysdep.h: Include <malloc.h> and <io.h> under Watcom.
8609
8610 2000-12-17  Igor Khristophorov  <igor@atdot.org>
8611
8612         * http.c (check_end): Fix test for '+' or '-'.
8613
8614 2000-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
8615
8616         * url.c (parseurl): Rename inner loop var from i to ind to avoid
8617         clash with the function top-level-declared variable i.
8618         (str_url): Likewise, rename inner-loop i to j.
8619
8620         * recur.c (parse_robots): Don't declare LEN at top of function.
8621         (robots_match): Renamed parameter FORBIDDEN to avoid hiding of
8622         global variable.
8623
8624         * main.c (main): Change erroneous use of bitwise and to logical.
8625
8626         * init.c (cmd_address): Don't heap-allocate `sin'; it can be on
8627         the stack because it will be copied to closure.
8628
8629         Thanks to Csaba Raduly's run of PC-LINT over the sources.
8630
8631 2000-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
8632
8633         * http.c (basic_authentication_encode): Use xmalloc(), not
8634         malloc().  Thanks to Csaba Raduly's run of PC-LINT over the
8635         sources.
8636
8637 2000-12-17  Csaba Raduly  <csaba.raduly@sophos.com>
8638
8639         * sysdep.h: Test for __EMX__ rather than for EMXOS2 for OS/2
8640         compilation.
8641
8642 2000-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
8643
8644         * mswindows.c: Include <errno.h>.
8645
8646         * gen_sslfunc.c: Include <errno.h>.
8647
8648         * ftp-basic.c: Don't attempt to declare errno or h_errno because
8649         they're not used.
8650
8651         * main.c: Include <errno.h> because errno is used.
8652
8653         * ftp.c: Ditto.
8654
8655         * http.c: Include <netdb.h> for h_errno.
8656
8657 2000-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
8658
8659         * html-parse.c (advance_declaration): MSVC assert() chokes on
8660         '\"'.  Use '"' instead.
8661
8662 2000-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
8663
8664         * utils.c (xfree_real): Removed.
8665         (xfree_debug): Just call free().
8666
8667         * wget.h (xfree): Make it an alias for free.
8668
8669 2000-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
8670
8671         * http.c (http_loop): Furthermore, touch output_document only if
8672         it is known to be an existing regular file.
8673
8674 2000-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
8675
8676         * ftp.c (ftp_retrieve_list): Ditto.
8677
8678         * http.c (http_loop): Touch output_document if that is used for
8679         output.
8680
8681 2000-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8682
8683         * http.c: Include gen_sslfunc.h after including Wget's headers.
8684         (persistent_available_p): Needed coma before `int ssl'.
8685
8686 2000-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8687
8688         * ftp.c (ftp_loop_internal): Ditto.
8689
8690         * http.c (http_loop): Use it.
8691
8692         * retr.c (sleep_between_retrievals): New function that handles the
8693         logic of opt.wait and opt.waitretry.
8694
8695 2000-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8696
8697         * rbuf.h: Implement only a single version of RBUF_READCHAR, using
8698         rbuf_read_bufferful when the buffer is depleted.
8699
8700         * rbuf.c (rbuf_read_bufferful): New function.
8701
8702 2000-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8703
8704         * gen_sslfunc.h: Use ansi2knr style function declarations.
8705
8706         * gen_sslfunc.c: Reformat according to the GNU coding standards.
8707         More should be done.
8708
8709         * http.c (persistent_available_p): Place the cheap SSL test nearer
8710         the top of the function.
8711         (CLOSE_FINISH, CLOSE_INVALIDATE): Define only one version of each.
8712
8713 2000-12-05  Hrvoje Niksic  <hniksic@arsdigita.com>
8714
8715         * url.c (init_unsafe_char_table): Reinstate space as an unsafe
8716         char.
8717
8718 2000-12-03  Christian Fraenkel <christian.fraenkel@gmx.net>
8719
8720         * Makefile.in: added gen_sslfunc object
8721         * config.h.in: added HAVE_SSL define
8722         * connect.c: changed select_fd from static int to int
8723         * connect.h: ditto
8724         * gen_sslfunc.h: New file
8725         * gen_sslfunc.c: ditto
8726         * http.c: added HTTPS fuctionality
8727         * retrc.c: ditto
8728         * url.c: ditto
8729         * init.c: added opt.httpsproxy
8730         * options.h: ditto
8731         * rbuf.h: added alternate rbuf struct
8732         * wget.h: added CONSSLERR
8733         * rbuf.c: ditto
8734
8735         * http.c: Added HTTPS fuctionality.
8736
8737         * retrc.c: Ditto.
8738
8739         * url.c: Ditto.
8740
8741         * init.c: Added opt.httpsproxy.
8742
8743         * options.h: Ditto.
8744
8745         * rbuf.h: Added alternate rbuf struct.
8746
8747         * wget.h: Added CONSSLERR.
8748
8749         * rbuf.c: Ditto.
8750
8751 2000-11-30  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8752
8753         * ftp-ls.c (ftp_parse_unix_ls): Added second parameter
8754         "ignore_perms" to ignore file and directory permissions for
8755         Windows NT FTP server listings.
8756         (ftp_parse_winnt_ls): New function.
8757         (ftp_parse_ls): Parses UNIX and Windows NT listings
8758         separately. Simple heuristics for distinguishing between UNIX and
8759         MS-DOS-like FTP listing provided by Windows NT FTP service.
8760
8761 2000-11-18  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8762
8763         * ftpparse.c, ftpparse.h: New files.
8764
8765         * ftp-ls.c (ftp_parse_ls): Use ftp_parse_unix_ls for UNIX servers
8766         only. Use ftp_parse_nonunix_ls otherwise.
8767         (ftp_parse_nonunix_ls): Stub to the ftpparse library handling all
8768         exotic FTP servers.
8769
8770         * ftp.h (stype): New enum, distinguishes UNIX, VMS, and "other"
8771         FTP servers.
8772
8773         * ftp.c: New static wariables host_type, pwd, and pwd_len.
8774         (getftp): Support for VMS. Support for FTP servers that do not
8775         place you in the root directory after login.
8776         (ftp_retrieve_list): VMS is silent about the real file size, issue
8777         a more appropriate message.
8778         (ftp_get_listing): Pass host_type to ftp_parse_ls.
8779
8780         * ftp-basic.c (ftp_pwd, ftp_syst): New functions.
8781
8782 2000-11-30  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8783
8784         * ftp-ls.c (ftp_parse_unix_ls): Added second parameter
8785         "ignore_perms" to ignore file and directory permissions for
8786         Windows NT FTP server listings.
8787         (ftp_parse_winnt_ls): New function.
8788         (ftp_parse_ls): Parses UNIX and Windows NT listings
8789         separately. Simple heuristics for distinguishing between UNIX
8790         and MS-DOS-like FTP listing provided by Windows NT FTP service.
8791
8792 2000-11-29  John Summerfield  <summer@OS2.ami.com.au>
8793
8794         * netrc.c (parse_netrc): Get rid of line ending.
8795
8796 2000-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
8797
8798         * ftp.c (ftp_retrieve_list): Undo typo "fix" until resolution by
8799         Dan.
8800
8801 2000-11-24  Karl Eichwalder  <ke@suse.de>
8802
8803         * main.c (print_help): Untabify.
8804
8805 2000-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
8806
8807         * utils.c (xrealloc_debug): Do the unregister/register thing only
8808         if the pointer has actually changed.
8809         (xmalloc_real): Declare `static' in DEBUG_MALLOC builds.
8810         (xfree_real): Ditto.
8811         (xrealloc_real): Ditto.
8812         (xstrdup_real): Ditto.
8813
8814 2000-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
8815
8816         * ftp.c (getftp): ftp_getaddress() returns a malloc'ed copy of the
8817         string; no need to strdup() it.
8818         (getftp): Make pwd_len a local variable.
8819         (ftp_loop): Free PWD before returning.
8820
8821         * init.c (cleanup): Free opt.ftp_pass only if it's non-NULL.
8822
8823 2000-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
8824
8825         * all: Use xfree() instead of free.
8826
8827         * utils.c (xfree): New function.
8828
8829 2000-11-21  Hrvoje Niksic  <hniksic@arsdigita.com>
8830
8831         * url.c (convert_links): HTML-quote the converted string.
8832
8833         * utils.c (html_quote_string): Move here from ftp-ls.c
8834         (html_quote_string): Make non-static; declare in utils.h.
8835         (html_quote_string): Convert SP to &#32;.
8836
8837 2000-11-21  Hrvoje Niksic  <hniksic@arsdigita.com>
8838
8839         * ftp.c (getftp): Reformat Jan's code according to GNU coding
8840         standards; remove (debugging?) printf's; use '\0' for the ASCII
8841         zero character.  Use alloca() instead of malloc() for
8842         inter-function temporary allocations.
8843
8844 2000-11-18  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8845
8846         * ftpparse.c, ftpparse.h: New files.
8847
8848         * ftp-ls.c (ftp_parse_ls): Use ftp_parse_unix_ls for UNIX servers
8849         only. Use ftp_parse_nonunix_ls otherwise.
8850         (ftp_parse_nonunix_ls): Stub to the ftpparse library handling all
8851         exotic FTP servers.
8852
8853         * ftp.h (stype): New enum, distinguishes UNIX, VMS, and "other"
8854         FTP servers.
8855
8856         * ftp.c: New static wariables host_type, pwd, and pwd_len.
8857         (getftp): Support for VMS. Support for FTP servers that do not
8858         place you in the root directory after login.
8859         (ftp_retrieve_list): VMS is silent about the real file size, issue
8860         a more appropriate message.
8861         (ftp_get_listing): Pass host_type to ftp_parse_ls.
8862
8863         * ftp-basic.c (ftp_pwd, ftp_syst): New functions.
8864
8865 2000-11-21  Hrvoje Niksic  <hniksic@arsdigita.com>
8866
8867         * hash.c (hash_table_put): Don't overwrite deleted mappings.
8868
8869 2000-11-21  Hrvoje Niksic  <hniksic@arsdigita.com>
8870
8871         * hash.c (find_mapping): New function.
8872         (hash_table_get): Use it.
8873         (hash_table_get_pair): Ditto.
8874         (hash_table_exists): Ditto.
8875         (hash_table_remove): Ditto.
8876         (hash_table_remove): Really delete the entry if the mapping
8877         following LOCATION is empty.
8878
8879         * utils.c (string_set_add): Check whether the element has existed
8880         before.
8881
8882         * hash.c (hash_table_get_pair): New function.
8883
8884 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
8885
8886         * http.c (http_process_type): Ignore trailing whitespace; use
8887         strdupdelim().
8888
8889         * recur.c (recursive_retrieve): Use the new `convert' field.
8890         (convert_all_links): Ditto.
8891         (convert_all_links): Don't respect meta_disallow_follow.
8892
8893         * html-url.c (handle_link): Fill out link_relative_p and
8894         link_complete_p.
8895
8896         * url.h (struct _urlpos): Make elements more readable.
8897
8898         * recur.c (recursive_retrieve): Call slist_prepend instead of
8899         slist_append.
8900         (convert_all_links): Call slist_nreverse before iterating through
8901         urls_html.
8902
8903         * utils.c (slist_prepend): New function.
8904         (slist_nreverse): Ditto.
8905
8906 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
8907
8908         * http.c (check_end): Constify.
8909
8910 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
8911
8912         * http.c (http_loop): If username and password are known, try the
8913         `Basic' authentication scheme by default.
8914
8915         * connect.h: Declare test_socket_open.
8916
8917 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
8918
8919         * version.c: Bump version from 1.5.3+dev to 1.7-dev.
8920
8921 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
8922
8923         * http.c (gethttp): Don't use the return value of sprintf().
8924         (gethttp): Inhibit keep-alive if opt.http_keep_alive is 0.
8925
8926 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
8927
8928         * recur.c (recursive_retrieve): Print the "so we don't load"
8929         debugging message only if we really don't load.
8930
8931         * http.c (gethttp): Inhibit keep-alive if proxy is being used.
8932         (gethttp): Don't request keep-alive if keep-alive is inhibited.
8933
8934 2000-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
8935
8936         * http.c (gethttp): Make the HTTP persistent connections more
8937         robust.
8938
8939 2000-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
8940
8941         * retr.c (get_contents): If use_expected, make sure that the
8942         appropriate amount of data is being read.
8943
8944         * http.c (gethttp): Check for both `Keep-Alive: ...' and
8945         `Connection: Keep-Alive'.
8946
8947         * wget.h (DEBUGP): Call debug_logprintf only if opt.debug is
8948         turned on.
8949
8950 2000-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
8951
8952         * http.c (connection_available_p): Use it.
8953
8954         * connect.c (test_socket_open): New function.
8955
8956         * http.c (gethttp): Support persistent connections.  Based on the
8957         ideas, and partly on code, by Sam Horrocks <sam@daemoninc.com>.
8958         (register_persistent): New function.
8959         (connection_available_p): Ditto.
8960         (invalidate_connection): Ditto.
8961
8962 2000-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
8963
8964         * url.c (convert_links): Handle UREL2ABS case.
8965
8966         * recur.c (recursive_retrieve): Instead of the list
8967         urls_downloaded, use hash tables dl_file_url_map and
8968         dl_url_file_map.
8969         (convert_all_links): Use them to retrieve data.
8970
8971         * host.c (clean_hosts): Free the hash tables.
8972
8973         * main.c (private_initialize): Call host_init().
8974
8975         * host.c (store_hostaddress): Use a saner, hash table-based data
8976         model.
8977         (realhost): Ditto.
8978         (host_init): Initialize the hash tables.
8979
8980 2000-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
8981
8982         * utils.c (slist_append): Eviscerate NOSORT.  Hash tables are now
8983         used for what the sorted slists used to be used for.
8984         (slist_contains): Don't rely on the list being sorted.
8985         (slist_append): Simplify the code.
8986
8987         * recur.c (recursive_cleanup): Use free_string_set.
8988
8989         * utils.c (string_set_add, string_set_exists, string_set_free):
8990         New functions for easier freeing of hash tables whose keys are
8991         strdup'ed strings.
8992
8993         * recur.c (recursive_retrieve): Use the hash table functions for
8994         storing undesirable URLs.
8995
8996         * hash.c: New file.
8997
8998 2000-11-17  Hrvoje Niksic  <hniksic@arsdigita.com>
8999
9000         * main.c (private_initialize): Call url_init.
9001         (main): Call private_initialize.
9002
9003         * url.c (unsafe_char_table): New table.
9004         (UNSAFE_CHAR): Use it.
9005         (init_unsafe_char_table): New function.
9006         (url_init): New function; call init_unsafe_char_table.
9007
9008 2000-11-16  Hrvoje Niksic  <hniksic@arsdigita.com>
9009
9010         * mswindows.h: Define snprintf and vsnprintf to _snprintf and
9011         _vsnprintf respectively.
9012
9013 2000-11-15  Hrvoje Niksic  <hniksic@arsdigita.com>
9014
9015         * config.h.in: Do the _XOPEN_SOURCE and _SVID_SOURCE things only
9016         on Linux.
9017
9018 2000-11-15  Hrvoje Niksic  <hniksic@arsdigita.com>
9019
9020         * html-url.c (handle_link): Handle HTML fragment identifiers.
9021
9022         * recur.c (recursive_retrieve): If norobot info is respected and
9023         the file is specified not to be followed by robots, respect that.
9024
9025         * html-url.c (collect_tags_mapper): Handle <meta name=robots
9026         content=X>.  For us the important cases are where X is NONE or
9027         where X contains NOFOLLOW.
9028         (get_urls_html): Propagate that information to the caller.
9029
9030 2000-11-13  Hrvoje Niksic  <hniksic@arsdigita.com>
9031
9032         * url.c (convert_links): Unlink the file we might be reading from
9033         before writing to it.
9034         (convert_links): Use alloca instead of malloc for
9035         filename_plus_orig_suffix.
9036
9037 2000-11-12  Hrvoje Niksic  <hniksic@arsdigita.com>
9038
9039         * host.c (realhost): Add HOST to the list with quality==0 only if
9040         it wasn't already there.
9041         Based on analysis by Lu Guohan <feng@public.bjnet.edu.cn>.
9042
9043 2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
9044
9045         * url.c (get_urls_file): Ditto.
9046         (convert_links): Ditto.
9047
9048         * html-url.c (get_urls_html): Use read_file() instead of
9049         load_file().
9050
9051         * utils.c (read_file): New function, instead of the old
9052         load_file().
9053         (read_file_free): Ditto.
9054
9055         * url.c (findurl): Search only for the supported protocols.
9056         (convert_links): Use fwrite() when writing out a region of
9057         characters.
9058
9059 2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
9060
9061         * ftp-ls.c: Move html_quote_string and ftp_index here.
9062
9063         * url.c: Remove get_urls_html, since that's now in html-url.c.
9064
9065         * html-url.c: New file.
9066
9067         * html-parse.c: New file.
9068
9069 2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
9070
9071         * init.c (run_wgetrc): Don't bother killing off '\r' since
9072         pars_line() skips whitespace at end of line anyway.
9073         (parse_line): Oops, it didn't.  Now it does.
9074
9075         * recur.c (parse_robots): Ditto here.
9076
9077         * ftp-ls.c (ftp_parse_unix_ls): Kill off the newline character
9078         manually because read_whole_line no longer does.
9079
9080         * utils.c (read_whole_line): Rewrite to: a) use less memory
9081         (reallocates to needed size after work), b) work faster -->
9082         fgets() instead of getc, c) be more correct --> doesn't kill the
9083         newline character at the end of line.
9084
9085 2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
9086
9087         * init.c (comind): Initialize MAX to array size - 1.
9088
9089 2000-11-08  Hrvoje Niksic  <hniksic@arsdigita.com>
9090
9091         * url.c (construct): Changed last_slash[-1] to *(last_slash - 1).
9092         Suggested by Edward J. Sabol.
9093
9094 2000-11-08  Hrvoje Niksic  <hniksic@arsdigita.com>
9095
9096         * url.c (construct): Handle the case where host name is not
9097         followed by a slash.
9098
9099 2000-11-06  Hrvoje Niksic  <hniksic@arsdigita.com>
9100
9101         * init.c: commands[] need to be sorted!  ("base" wasn't.)
9102
9103 2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
9104
9105         * wget.h (DO_REALLOC_FROM_ALLOCA): Use braces to disambiguate
9106         `if'.
9107
9108 2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
9109
9110         * url.c (construct): Insert unneeded initialization for the
9111         compiler to shut up.
9112
9113         * config.h.in: Define _XOPEN_SOURCE to 500 to get the prototype
9114         for strptime() (*duh*).  Define _SVID_SOURCE to get S_IFLNK which
9115         otherwise gets lost when you define _XOPEN_SOURCE.
9116
9117         * utils.c (touch): Include the file name in the error message.
9118         From Debian.
9119
9120 2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
9121
9122         * log.c (logvprintf): Use vsnprintf() in all cases.  If necessary,
9123         resize the buffer to fit the formated message.  That way, messages
9124         of arbitrary size may be printed.
9125         (logvprintf): Use saved_append() to optionally log the last
9126         several lines of output.
9127         (logputs): Ditto.
9128         (log_close): Adapt to new data structures.
9129         (log_dump): Ditto.
9130         (redirect_output): Print messages to stderr, not to stdout.
9131
9132         * log.c (saved_append_1): New function.  Replaces the old logging
9133         system ("log all output until 10M characters") with a new, much
9134         more reasonable one ("log last screenful of text").
9135         (saved_append): New function; call saved_append_1.
9136         (free_log_line): New function.
9137
9138 2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
9139
9140         * url.c (construct): Fix comment.
9141         (find_last_char): Document.
9142
9143 2000-11-04  Hrvoje Niksic  <hniksic@arsdigita.com>
9144
9145         * snprintf.c: New file.
9146
9147 2000-11-03  Hrvoje Niksic  <hniksic@arsdigita.com>
9148
9149         * wget.h: If HAVE_STDARG_H is not defined, don't declare argument
9150         types to logprintf() and debug_logprintf().
9151
9152 2000-11-02  Hrvoje Niksic  <hniksic@arsdigita.com>
9153
9154         * ftp.c (ftp_loop_internal): Hide the password from the URL when
9155         printing non-verbose.  Problem spotted by Dariusz Mlynarczyk
9156         <darekm@bydg.lomac.com.pl>.
9157
9158 2000-11-02  Junio Hamano  <junio@twinsun.com>
9159
9160         * ftp-basic.c (ftp_login): Make comparison case-insensitive.
9161
9162 2000-11-02  Tyler Riddle  <triddle@liquidmarket.com>
9163
9164         * http.c (known_authentication_scheme_p): Recognize NTML
9165         authentication.
9166         (create_authorization_line): Treat NTML the same as `Basic'.
9167
9168 2000-11-02  Hrvoje Niksic  <hniksic@arsdigita.com>
9169
9170         * retr.c (retrieve_url): Free url before returning.
9171         (retrieve_url): Free mynewloc before returning.
9172         Spotted by Mark A. Mankins <Mankins_Mark@prc.com>.
9173
9174 2000-11-02  Hrvoje Niksic  <hniksic@arsdigita.com>
9175
9176         * url.c (parseurl): Remove possible reading past the end of
9177         sup_protos[].  Spotted by Mark A. Mankins <Mankins_Mark@prc.com>.
9178
9179 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
9180
9181         * main.c (main): In case of opt.downloaded overflowing, print
9182         <overflow> instead of a totally bogus random value.
9183
9184         * retr.c (retrieve_from_file): Ditto.
9185
9186         * recur.c (recursive_retrieve): Ditto.
9187
9188         * main.c (main): Ditto.
9189
9190         * http.c (http_loop): Ditto.
9191
9192         * ftp.c (ftp_loop_internal): Use downloaded_increase() instead of
9193         `+=', and downloaded_exceeds_quota() instead of the simple-minded
9194         check.
9195         (ftp_retrieve_list): Ditto.
9196         (ftp_retrieve_dirs): Ditto.
9197         (ftp_retrieve_glob): Ditto.
9198
9199         * retr.c (downloaded_increase): New function.  Notice overflows of
9200         opt.downloaded.
9201         (downloaded_exceeds_quota): Make sure that opt.downloaded is not
9202         used if it overflowed.
9203
9204         * options.h (struct options): New member downloaded_overflow.
9205
9206 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
9207
9208         * wget.h (enum): Remove extra space after last enumeration.
9209
9210 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
9211
9212         * main.c (main): Use legible_very_long() for printing
9213         opt.downloaded.
9214
9215         * utils.c (legible_1): New function that operates on strings and
9216         does the brunt of legible()'s work.
9217         (legible): Use legible_1().
9218         (legible_very_long): New function; dump the argument with
9219         sprintf(), and call legible_1().
9220
9221         * options.h (struct options): Use VERY_LONG_TYPE for
9222         opt.downloaded.
9223
9224         * sysdep.h (VERY_LONG_TYPE): Define it to have a 64-bit or greater
9225         type.
9226
9227         * config.h.in: Make sure that SIZEOF_LONG and SIZEOF_LONG_LONG get
9228         defined.  Define HAVE_LONG_LONG if long long is available.
9229
9230 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
9231
9232         * utils.c (long_to_string): Update with a later, better version.
9233
9234 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
9235
9236         * url.c (path_simplify_with_kludge): New function.
9237         (path_simplify_with_kludge): Disable it.  Instead...
9238         (parse_dir): ...make sure that at this point the right thing is
9239         done, i.e. that "query" part of the URL (?...) is always assigned
9240         to the file, never to the directory portion of the path.
9241
9242 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
9243
9244         * retr.c (retrieve_url): Detect redirection cycles.
9245
9246 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
9247
9248         * url.c (get_urls_html): Decode HTML entities using
9249         html_decode_entities.
9250
9251         * html.c (htmlfindurl): Don't count the `#' in numeric entities
9252         (&#NNN;) as an HTML fragemnt.
9253         (html_decode_entities): New function.
9254
9255 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
9256
9257         * html.c (htmlfindurl): Fix recognition of # HTML fragments.
9258
9259 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
9260
9261         * url.c (construct): Rewritten for clarity.  Avoids the
9262         unnecessary copying and stack-allocation the old version
9263         performed.
9264
9265 2000-10-31  Hrvoje Niksic  <hniksic@arsdigita.com>
9266
9267         * ftp.c (getftp): Ditto.
9268
9269         * http.c (gethttp): Rewind the stream when retrying from scratch.
9270
9271 2000-10-31  Hrvoje Niksic  <hniksic@arsdigita.com>
9272
9273         * retr.c (retrieve_url): Use url_concat() to handle relative
9274         redirections instead of /ad hoc/ code.
9275
9276         * url.c (url_concat): New function encapsulating weird
9277         construct().
9278         (urllen_http_hack): New function.
9279         (construct): When constructing new URLs, recognize that `?' does
9280         not form part of the file name in HTTP.
9281
9282 2000-10-13  Adrian Aichner  <adrian@xemacs.org>
9283
9284         * retr.c: Add msec timing support for WINDOWS.
9285         * retr.c (reset_timer): GetSystemTime() on WINDOWS.
9286         * retr.c (elapsed_time): Calculate delta time to msec on WINDOWS.
9287
9288 2000-10-27  Dan Harkless  <wget@harkless.org>
9289
9290         * retr.c (retrieve_url): Manually applied T. Bharath
9291         <TBharath@responsenetworks.com>'s patch to get wget to grok
9292         illegal relative URL redirects.  Reformatted and re-commented it.
9293
9294 2000-10-23  Dan Harkless  <wget@harkless.org>
9295
9296         * connect.c (make_connection and bindport): Manually applied Rob
9297         Mayoff <mayoff@dqd.com>'s 1.5.3 patch to add --bind-address,
9298         changing coding style to GNU's.
9299
9300         * ftp.c (ftp_loop_internal): --delete-after wasn't implemented for
9301         files downloaded via FTP.  Per a comment, .listing files were not
9302         counted towards number of bytes and files downloaded because they're
9303         deleted anyway.  Well, they aren't under -nr, so count them then.
9304
9305         * init.c: Manually applied Rob Mayoff's 1.5.3 patch to add
9306         --bind-address, alphabetizing, changing coding style to GNU's,
9307         commenting, and renaming cmd_ip_address() to cmd_address() to
9308         imply hostnames also okay.
9309
9310         * main.c (main): --delete-after didn't delete the root of the
9311         tree.  Ignore --convert-links if --delete-after was specified.
9312         Manually applied Rob Mayoff's 1.5.3 patch to add --bind-address,
9313         fixing duplicate use of added-since-1.5.3 case value.
9314         (print_help): Clarified that --delete-after deletes local files.
9315         Rob forgot to add a line for his new --bind-address option.
9316
9317         * options.h (struct options): Manually applied Rob Mayoff's patch
9318         to add --bind-address (bind_address structure member).
9319
9320         * recur.c (recursive_retrieve): Improved comment; added DEBUGP().
9321         Ignore --convert-links if --delete-after was specified.
9322
9323         * retr.c (retrieve_from_file): Just added a DEBUGP().
9324
9325 2000-10-19  Dan Harkless  <wget@harkless.org>
9326
9327         * ftp.c (ftp_loop_internal): downloaded_file() enumerators changed.
9328         (getftp): Applied Piotr Sulecki <Piotr.Sulecki@ios.krakow.pl>'s
9329         patch to work around FTP servers that incorrectly respond to the
9330         "REST" command with the remaining size rather than the total file size.
9331
9332         * http.c (gethttp): Improved a comment and added code to tack on
9333         ".html" to text/html files without that extension when -E specified.
9334         (http_loop): Use new downloaded_file() enumerators and deal with
9335         the case of gethttp() called xrealloc() on u->local.
9336
9337         * init.c (commands): Added new "htmlextension" command.
9338         Also renamed John Daily's cmd_quad() to the more descriptive
9339         cmd_lockable_boolean(), alpha-sorted the CMD_DECLARE()s and
9340         removed duplicate cmd_boolean() declaration.
9341
9342         * main.c (print_help): Added my new -E / --html-extension option.
9343         (main): Undocumented --email-address option previously used -E synonym.
9344         Stole it away for the much more deserving --html-extension's use.
9345
9346         * options.h (struct options): Added html_extension field.
9347
9348         * url.c (convert_links): URL X that we saved as X.html locally due
9349         to -E needs to be backed up as X.orig, not X.html.orig.  Added comments.
9350         (downloaded_file): Now remembers if we added .html extension to a file.
9351
9352         * url.h (downloaded_file_t): Added extra enumerators to support above.
9353         (downloaded_file): Now takes and returns a downloaded_file_t.
9354
9355         * wget.h (unnamed "dt" enum): Added ADDED_HTML_EXTENSION enumerator.
9356
9357 2000-10-09  Dan Harkless  <wget@harkless.org>
9358
9359         * html.c (htmlfindurl): Added unneeded initialization to quiet warning.
9360
9361         * main.c (print_help): Clarified what --retr-symlinks does.
9362
9363 2000-09-15  John Daily  <jdaily@cyberdude.com>
9364
9365         * init.c: Add support for "always" and "never" values to allow
9366         .wgetrc to override commandline (useful e.g. with .pm files
9367         calling `wget --passive-ftp' when your firewall doesn't allow that).
9368
9369         * ftp.c (getftp): passive_ftp is first option to support always/never.
9370
9371 2000-08-30  Dan Harkless  <wget@harkless.org>
9372
9373         * ftp.c (ftp_retrieve_list): Use new INFINITE_RECURSION #define.
9374
9375         * html.c: htmlfindurl() now takes final `dash_p_leaf_HTML' parameter.
9376         Wrapped some > 80-column lines.  When -p is specified and we're at a
9377         leaf node, do not traverse <A>, <AREA>, or <LINK> tags other than
9378         <LINK REL="stylesheet">.
9379
9380         * html.h (htmlfindurl): Now takes final `dash_p_leaf_HTML' parameter.
9381
9382         * init.c: Added new -p / --page-requisites / page_requisites option.
9383
9384         * main.c (print_help): Clarified that -l inf and -l 0 both allow
9385         infinite recursion.  Changed the unhelpful --mirrior description
9386         to simply give the options it's equivalent to.  Added new -p option.
9387         (main): Added some comments; handle new -p / --page-requisites.
9388
9389         * options.h (struct options): Added new page_requisites field.
9390
9391         * recur.c: Changed "URL-s" to "URLs" and "HTML-s" to "HTMLs".
9392         Calculate and pass down new `dash_p_leaf_HTML' parameter to
9393         get_urls_html().  Use new INFINITE_RECURSION #define.
9394
9395         * retr.c: Changed "URL-s" to "URLs".  get_urls_html() now takes
9396         final `dash_p_leaf_HTML' parameter.
9397
9398         * url.c: get_urls_html() and htmlfindurl() now take final
9399         `dash_p_leaf_HTML' parameter.
9400
9401         * url.h (get_urls_html): Now takes final `dash_p_leaf_HTML' parameter.
9402
9403         * wget.h: Added some comments and new INFINITE_RECURSION #define.
9404
9405 2000-08-23  Dan Harkless  <wget@harkless.org>
9406
9407         * main.c (print_help): -B / --base was not mentioned.
9408
9409 2000-08-22  Dan Harkless  <wget@harkless.org>
9410
9411         * main.c (print_help): Modified -nc description to mention that it
9412         also prevents the creation of multiple versions of the same file
9413         with ".<number>" suffixes.
9414
9415 2000-07-14  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
9416
9417         * retr.c (retrieve_url): Consistently strdup opt.referer when
9418         setting u->referer.
9419
9420 2000-06-09  Dan Harkless  <wget@harkless.org>
9421
9422         * main.c (print_help): --help output for --waitretry was over 80 cols.
9423
9424 2000-06-09  Hrvoje Niksic  <hniksic@iskon.hr>
9425
9426         * url.c (encode_string): Fix comment.
9427         Suggested by Herold Heiko <Heiko.Herold@previnet.it>.
9428
9429 2000-06-01  Const Kaplinsky  <const@ce.cctpu.edu.ru>
9430
9431         * ftp.c (ftp_retrieve_list): Change permissions only on plain
9432         files.
9433
9434 2000-06-01  Hrvoje Niksic  <hniksic@iskon.hr>
9435
9436         * url.c (str_url): Print the port number only if it's different
9437         from the default port number for that protocol.
9438
9439 2000-05-22  Dan Harkless  <wget@harkless.org>
9440
9441         * main.c (print_help): Added --help line for Damir Dzeko
9442         <ddzeko@zesoi.fer.hr>'s until-now-undocumented --referer option.
9443         Removed comments that --referer and --waitretry were undocumented.
9444         Changed "`.wgetrc' command" to "`.wgetrc'-style command" on --help
9445         line for --execute.
9446
9447 2000-05-18  Hrvoje Niksic  <hniksic@iskon.hr>
9448
9449         * ftp.c (getftp): Ditto.
9450
9451         * http.c (gethttp): Check for return value of fclose/fflush.
9452
9453 2000-04-12  Hrvoje Niksic  <hniksic@iskon.hr>
9454
9455         * host.c (store_hostaddress): Instead of shifting ADDR, start
9456         copying from the correct address.
9457
9458 2000-04-12  Hrvoje Niksic  <hniksic@iskon.hr>
9459
9460         * http.c (gethttp): Don't free REQUEST -- it was allocated with
9461         alloca().
9462         Pointed out by Gisle Vanem <gvanem@eunet.no>.
9463
9464 2000-04-04  Dan Harkless  <wget@harkless.org>
9465
9466         * host.c (store_hostaddress): R. K. Owen's patch introduces a
9467         "left shift count >= width of type" warning on 32-bit
9468         architectures.  Got rid of it by tricking the compiler w/ a variable.
9469
9470         * url.c (UNSAFE_CHAR): The macro didn't include all the illegal
9471         characters per RFC1738, namely everything above '~'.  It also
9472         generated a warning on OSes where char =~ unsigned char.  Fixed.
9473
9474 1998-10-17  Hrvoje Niksic  <hniksic@srce.hr>
9475
9476         * http.c (http_process_type): Removed needless strdup(), a memory
9477         leak.
9478
9479 1998-09-25  Hrvoje Niksic  <hniksic@srce.hr>
9480
9481         * html.c (htmlfindurl): Set PH to the first occurrence of `#'.
9482
9483 1998-09-25  Simon Munton  <simonm@m4data.co.uk>
9484
9485         * init.c (wgetrc_file_name): Don't free HOME under Windows.
9486
9487 1998-12-01  "R. K. Owen"  <rkowen@Nersc.GOV>
9488
9489         * host.c (store_hostaddress): Fix for big endian 64-bit machines.
9490
9491 1998-12-01  Hrvoje Niksic  <hniksic@srce.hr>
9492
9493         * url.c (UNSAFE_CHAR): New macro.
9494         (contains_unsafe): Use it.
9495         (encode_string): Ditto.
9496
9497 1998-12-01  Hrvoje Niksic  <hniksic@srce.hr>
9498
9499         * main.c (i18n_initialize): Use LC_MESSAGES only if available.
9500
9501 2000-03-31  Hrvoje Niksic  <hniksic@srce.hr>
9502
9503         * Use TOUPPER/TOLOWER.
9504
9505 1998-12-22  Alexander V. Lukyanov  <lav@yars.free.net>
9506
9507         * ftp-opie.c (btoe): Zero-terminate OSTORE.
9508
9509 2000-03-21  Hrvoje Niksic  <hniksic@iskon.hr>
9510
9511         * wget.h (DO_REALLOC_FROM_ALLOCA): Ditto.
9512
9513         * sysdep.h (ISALNUM): New macro.
9514         (TOLOWER): Ditto.
9515         (TOUPPER): Ditto.
9516
9517 2000-03-10  Dan Harkless  <wget@harkless.org>
9518
9519         * html.c (idmatch): Implemented checking of my new --follow-tags
9520         and --ignore-tags options.
9521
9522         * init.c (commands): Added comment reminding people adding new
9523         entries doing allocation to add corresponding freeing in cleanup().
9524         (commands): Added new followtags and ignoretags commands.
9525         (cleanup): Free storage for new followtags and ignoretags.
9526
9527         * main.c: Use of "comma-separated list" was random -- normalized
9528         it.  Did some alphabetization.  Added comments pointing out
9529         "Options without arguments" and "Options accepting an argument"
9530         sections of long_options[].  Added new options --follow-tags and
9531         -G / --ignore-tags.  Added comment that Damir's --referer is
9532         currently undocumented.  Added comment that Heiko's --waitretry is
9533         partially undocumented (mentioned in --help but not in
9534         wget.texi).  Moved improperly sorted 24, 129, and 'G' cases.
9535
9536         * options.h (struct options): Added new fields follow_tags and
9537         ignore_tags.
9538
9539         * wget.h: Added "#define EQ 0" so we can say "strcmp(a, b) == EQ".
9540
9541 2000-03-02  Dan Harkless  <wget@harkless.org>
9542
9543         * ftp.c (ftp_loop_internal): Heiko introduced "suggest explicit
9544         braces to avoid ambiguous `else'" warnings.  Eliminated them.
9545
9546         * http.c (gethttp): Dan Berger's query string patch is totally
9547         bogus.  If you have two different URLs, gen_page.cgi?page1 and
9548         get_page.cgi?page2, they'll both be saved as get_page.cgi and the
9549         second will overwrite the first.  Also, parameters to implicit
9550         CGIs, like "http://www.host.com/db/?2000-03-02" cause the URLs to
9551         be printed with trailing garbage characters, and could seg fault.
9552         Backing out the patch, which Dan B. informed me by email was just
9553         a kludge to download StarOffice from Sun made necessary due to
9554         wget's unconditional escaping of certain characters (room for an
9555         option there?).
9556         (http_loop): Heiko introduced "suggest explicit braces to avoid
9557         ambiguous `else'" warnings.  Eliminated them.
9558
9559         * main.c: Heiko's --wait / --waitretry backwards compatibility
9560         code looks to have been totally untested -- automatic variable
9561         'wr' was used without being initialized, and a long int was passed
9562         into setval()'s char* val parameter.
9563
9564         * recur.c (parse_robots): Applied Edward J. Sabol
9565         <sabol@alderaan.gsfc.nasa.gov>'s patch for Guan Yang's reported
9566         problem with "User-agent:<space>*<space>" lines in robots.txt.
9567
9568         * url.c (parseurl, str_url): Removing Dan Berger's code (see
9569         http.c above for explanation).
9570
9571 1999-08-25  Heiko Herold  <Heiko.Herold@previnet.it>
9572
9573         * ftp.c: Respect new option waitretry.
9574
9575 2000-01-30  Damir Dzeko  <ddzeko@zesoi.fer.hr>
9576
9577         * http.c (gethttp): Send custom Referer, if required.
9578
9579 1999-09-24  Charles G Waldman  <cgw@fnal.gov>
9580
9581         * netrc.c (parse_netrc): Allow passwords to contain spaces.
9582
9583         * netrc.c (parse_netrc): New function.
9584
9585 1999-09-17  Dan Berger  <dberger@ix.netcom.com>
9586
9587         * http.c (gethttp): Send it.
9588
9589         * url.c (parseurl): Detect query string in HTTP URL-s.
9590         (str_url): Print it.
9591
9592 2000-03-02  HIROSE Masaaki  <hirose31@t3.rim.or.jp>
9593
9594         * html.c (html_allow): Add <link href=...> and <script src=...>.
9595
9596 1999-05-02  andrew deryabin  <djsf@softhome.net>
9597
9598         * http.c (gethttp): Specify port in `Host' header only if it's
9599         different from 80.
9600
9601 1998-11-03  Edward J. Sabol  <sabol@alderaan.gsfc.nasa.gov>
9602
9603         * recur.c (recursive_retrieve): If a finite maximum depth is
9604         specified, and we're are already at that depth, don't download the
9605         HTML file for parsing.
9606
9607 2000-03-01  Dan Harkless  <wget@harkless.org>
9608
9609         * ftp.c (ftp_loop_internal): Call new downloaded_file() function,
9610         even though we don't do conversion on HTML files retrieved via
9611         FTP, so _current_ usage of downloaded_file() makes this call unneeded.
9612         (ftp_retrieve_list): Added a comment saying where we need to
9613         stat() a .orig file if FTP'd HTML file conversion is ever implemented.
9614         (ftp_retrieve_list): "Local file '%s' is more recent," is sometimes
9615         a lie -- reworded as "Server file no newer than local file '%s' --".
9616
9617         * http.c (http_loop): Fixed a typo and clarified a comment.
9618         (http_loop): When -K and -N are specified together, compare size
9619         and timestamp of server file X against local file X.orig (if
9620         extant) rather than converted local file X.
9621         (http_loop): "Local file '%s' is more recent," is sometimes a lie
9622         -- reworded as "Server file no newer than local file '%s' --".
9623         (http_loop): Call new downloaded_file() function to prevent
9624         wrongful overwriting of .orig file when -N is specified.
9625
9626         * url.c (convert_links): When -K specified, only rename X to
9627         X.orig if downloaded_file() returns TRUE.  Otherwise when we skip
9628         file X due to -N, we clobber an X.orig from a previous invocation.
9629         (convert_links): Call the failsafe xstrdup(), not the real strdup().
9630         (convert_links): Added a note asking anyone who understands how
9631         multiple URLs can correspond to a single file to comment it.
9632         (downloaded_file): Added this new function.
9633
9634         * url.h (downloaded_file): Added prototype for this new function
9635         as well as its downloaded_file_t enum type.
9636
9637         * wget.h (boolean): Added this new typedef and TRUE and FALSE #defines.
9638
9639 2000-02-29  Dan Harkless  <wget@harkless.org>
9640
9641         * version.c: Upped version to developer-only "1.5.3+dev".
9642
9643 2000-02-18  Dan Harkless  <wget@harkless.org>
9644
9645         * init.c (backup_converted): Added this new option.
9646
9647         * main.c (-K / --backup-converted): Added this new option.
9648
9649         * options.h (backup_converted): Added this new option.
9650
9651         * url.c (convert_links): When backup_converted is specified, save
9652         file X as X.orig before converting.
9653
9654         * url.h (urlpos): Fixed typo -- said "Rekative" instead of "Relative".
9655
9656 1998-09-21  Hrvoje Niksic  <hniksic@srce.hr>
9657
9658         * version.c: Wget 1.5.3 is released.
9659
9660 1998-09-21  Hrvoje Niksic  <hniksic@srce.hr>
9661
9662         * host.c (ftp_getaddress): Don't warn when reverse-lookup of local
9663         address doesn't yield FQDN.
9664
9665 1998-09-21  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
9666
9667         * cmpt.c (strerror): Fix declaration of sys_errlist.
9668
9669 1998-09-11  Hrvoje Niksic  <hniksic@srce.hr>
9670
9671         * main.c (main): Don't use an array subscript as the first
9672         argument to STRDUP_ALLOCA.
9673         From Kaveh R. Ghazi.
9674
9675 1998-09-11  Szakacsits Szabolcs  <szaka@sienet.hu>
9676
9677         * html.c (htmlfindurl): Download table background.
9678
9679 1998-09-11  Hans Grobler  <grobh@conde.ee.sun.ac.za>
9680
9681         * init.c (parse_line): Would free *com before allocating it.
9682         (parse_line): Would free com instead of *com.
9683
9684 1998-09-10  Howard Gayle  <howard@fjst.com>
9685
9686         * url.c (get_urls_html): Would drop the last character of the
9687         link.
9688
9689 1998-09-10  Hrvoje Niksic  <hniksic@srce.hr>
9690
9691         * http.c (http_loop): Don't print status code if quiet.
9692
9693 1998-09-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9694
9695         * log.c: Use <stdarg.h> only when __STDC__.
9696
9697 1998-09-10  Adam D. Moss  <adam@foxbox.org>
9698
9699         * html.c (htmlfindurl): Download <layer src=...>.
9700
9701 1998-09-10  Howard Gayle  <howard@fjst.com>
9702
9703         * ftp.c (ftp_retrieve_list): Don't update the time stamp of a file
9704         not retrieved.
9705
9706 1998-06-27  Hrvoje Niksic  <hniksic@srce.hr>
9707
9708         * utils.c: Include <libc.h> on NeXT.
9709
9710 1998-06-26  Heinz Salzmann  <heinz.salzmann@intermetall.de>
9711
9712         * url.c (get_urls_html): Fix calculation of URL position.
9713
9714 1998-06-23  Hrvoje Niksic  <hniksic@srce.hr>
9715
9716         * version.c: Wget 1.5.2 is released.
9717
9718 1998-06-23  Dave Love  <d.love@dl.ac.uk>
9719
9720         * ftp.c, init.c, netrc.c: Include errno.h.
9721
9722         * http.c: Include errno.h and time header.
9723
9724         * Makefile.in (exext): Define.
9725         (install.bin, uninstall.bin): Use it.
9726
9727 1998-06-21  Hrvoje Niksic  <hniksic@srce.hr>
9728
9729         * http.c (http_loop): Don't attempt to compare local and remote
9730         sizes if the remote size is unknown.
9731
9732 1998-06-16  Hrvoje Niksic  <hniksic@srce.hr>
9733
9734         * url.c (get_urls_html): Use malloc() instead of alloca in the
9735         loop.
9736
9737 1998-06-13  Hrvoje Niksic  <hniksic@srce.hr>
9738
9739         * version.c: Wget 1.5.2-b4 is released.
9740
9741 1998-06-13  Hrvoje Niksic  <hniksic@srce.hr>
9742
9743         * url.c (get_urls_html): Ignore spaces before and after the URI.
9744
9745 1998-06-08  Wanderlei Antonio Cavassin  <cavassin@conectiva.com.br>
9746
9747         * ftp.c (getftp): Translate `done'.
9748
9749 1998-06-06  Hrvoje Niksic  <hniksic@srce.hr>
9750
9751         * version.c: Wget 1.5.2-b3 is released.
9752
9753 1998-06-06  Alexander Kourakos  <awk@bnt.com>
9754
9755         * init.c (cleanup): Close dfp, don't free it.
9756
9757 1998-06-06  Hrvoje Niksic  <hniksic@srce.hr>
9758
9759         * utils.c (make_directory): Twiddle.
9760
9761         * config.h.in: Added template for access().
9762
9763 1998-06-05  Mathieu Guillaume  <mat@cythere.com>
9764
9765         * html.c (htmlfindurl): Download <input src=...>
9766
9767 1998-06-03  Hrvoje Niksic  <hniksic@srce.hr>
9768
9769         * utils.c (file_exists_p): Use access() with two arguments.
9770
9771 1998-05-27  Martin Kraemer  <Martin.Kraemer@mch.sni.de>
9772
9773         * netrc.c (parse_netrc): Correct logic.
9774
9775 1998-05-27  Hrvoje Niksic  <hniksic@srce.hr>
9776
9777         * ftp.c (getftp): Added `break'; suggested by Lin Zhe Min
9778         <ljm@ljm.wownet.net>.
9779
9780 1998-05-24  Hrvoje Niksic  <hniksic@srce.hr>
9781
9782         * version.c: Wget 1.5.2-b2 is released.
9783
9784 1998-05-18  Juan Jose Rodriguez  <jcnsoft@jal1.telmex.net.mx>
9785
9786         * mswindows.h: Don't translate mkdir to _mkdir under Borland.
9787
9788 1998-05-17  Hrvoje Niksic  <hniksic@srce.hr>
9789
9790         * retr.c (elapsed_time): Return correct value when
9791         HAVE_GETTIMEOFDAY is undefined.
9792
9793 1998-05-13  Hrvoje Niksic  <hniksic@srce.hr>
9794
9795         * version.c: Wget 1.5.2-b1 is released.
9796
9797 1998-05-08  Hrvoje Niksic  <hniksic@srce.hr>
9798
9799         * getopt.c (_getopt_internal): Use exec_name instead of argv[0].
9800         (_getopt_internal): Don't translate `#if 0'-ed strings.
9801
9802 1998-05-06  Douglas E. Wegscheid  <wegscd@whirlpool.com>
9803
9804         * mswindows.c (ws_handler): Use fork_to_background().
9805
9806 1998-05-05  Hrvoje Niksic  <hniksic@srce.hr>
9807
9808         * version.c: Wget 1.5.1 is released.
9809
9810 1998-05-05  Hrvoje Niksic  <hniksic@srce.hr>
9811
9812         * http.c (parse_http_status_line): Avoid `minor' and `major'
9813         names.
9814
9815 1998-05-02  Hrvoje Niksic  <hniksic@srce.hr>
9816
9817         * utils.c (mkdirhier): Renamed to make_directory.
9818
9819 1998-05-01  Hrvoje Niksic  <hniksic@srce.hr>
9820
9821         * mswindows.c (fork_to_background): Define under Windows.
9822
9823         * utils.c (fork_to_background): New function.
9824
9825         * html.c (htmlfindurl): Removed rerdundant casts.
9826
9827 1998-05-01  Douglas E. Wegscheid  <wegscd@whirlpool.com>
9828
9829         * mswindows.c (ws_mypath): Cache the path.
9830
9831 1998-04-30  Douglas E. Wegscheid  <wegscd@whirlpool.com>
9832
9833         * ftp.h: Prefix enum ftype members with FT_.
9834
9835         * ftp-ls.c, ftp.c, html.h: Adjust accordingly.
9836
9837         * mswindows.h: Use stat under Borland, _stat under MSVC.
9838
9839 1998-04-28  Hrvoje Niksic  <hniksic@srce.hr>
9840
9841         * http.c (known_authentication_scheme_p): New function.
9842         (gethttp): Handle authorization more correctly.
9843
9844         * ftp-basic.h: Removed.
9845
9846         * cmpt.h: Removed.
9847
9848         * utils.c: Include <unistd.h> before <pwd.h>; needed under SunOS
9849         with gcc 2.8.
9850         (numdigit): Use `while' loop.
9851
9852         * http.c (create_authorization_line): Detect authentication
9853         schemes case-insensitively.
9854
9855         * http.c (extract_header_attr): Use strdupdelim().
9856         (digest_authentication_encode): Move declaration of local
9857         variables to smaller scope.
9858         (digest_authentication_encode): Reset REALM, OPAQUE and NONCE.
9859         (create_authorization_line): Detect authentication schemes
9860         case-insensitively.
9861
9862         * utils.c (touch): Constify.
9863
9864         * http.c (gethttp): Report a nicer error when no data is received.
9865
9866         * rbuf.h (RBUF_READCHAR): Ditto.
9867
9868         * ftp-basic.c (ftp_response): Use sizeof.
9869
9870 1998-04-27  Hrvoje Niksic  <hniksic@srce.hr>
9871
9872         * retr.c (print_percentage): EXPECTED is long, not int.
9873         (print_percentage): Use floating-point arithmetic to avoid
9874         overflow with large files' sizes multiplied with 100.
9875
9876 1998-04-27  Gregor Hoffleit  <flight@mathi.uni-heidelberg.de>
9877
9878         * config.h.in: Added pid_t stub.
9879
9880         * sysdep.h (S_ISREG): Moved here from mswindows.h (NeXT doesn't
9881         define it).
9882
9883 1998-04-20  Hrvoje Niksic  <hniksic@srce.hr>
9884
9885         * version.c: Wget 1.5.0 is released.
9886
9887 1998-04-18  Hrvoje Niksic  <hniksic@srce.hr>
9888
9889         * url.c (str_url): Ditto.
9890
9891         * ftp-basic.c (ftp_rest): Use new name.
9892
9893         * utils.c (long_to_string): Renamed from prnum().
9894
9895 1998-04-16  Hrvoje Niksic  <hniksic@srce.hr>
9896
9897         * version.c: Wget 1.5-b17 is released.
9898
9899 1998-04-08  Hrvoje Niksic  <hniksic@srce.hr>
9900
9901         * headers.c (header_get): New argument FLAGS.
9902
9903         * http.c (gethttp): If request is malformed, bail out of the
9904         header loop.
9905         (gethttp): Check for empty header *after* the status line checks.
9906         (gethttp): Disallow continuations for status line.
9907
9908 1998-04-08  Hrvoje Niksic  <hniksic@srce.hr>
9909
9910         * version.c: Wget 1.5-b16 is released.
9911
9912 1998-04-08  Hrvoje Niksic  <hniksic@srce.hr>
9913
9914         * init.c (commands): Renamed `always_rest' to `continue'.
9915
9916 1998-04-05  Hrvoje Niksic  <hniksic@srce.hr>
9917
9918         * all: Use it.
9919
9920         * log.c (logputs): New argument.
9921         (logvprintf): Ditto.
9922         (logprintf): Ditto.
9923
9924 1998-04-04  Hrvoje Niksic  <hniksic@srce.hr>
9925
9926         * http.c (http_atotm): Update comment.
9927
9928         * main.c (i18n_initialize): Set LC_MESSAGES, not LC_ALL.
9929
9930         * wget.h: Renamed ENABLED_NLS to HAVE_NLS.
9931
9932         * main.c (i18n_initialize): New function.
9933         (main): Use it.
9934
9935         * log.c: Include <unistd.h>.
9936
9937         * retr.c (show_progress): Cast alloca to char *.
9938
9939 1998-04-04  Hrvoje Niksic  <hniksic@srce.hr>
9940
9941         * version.c: Wget 1.5-b15 is released.
9942
9943 1998-04-04  Hrvoje Niksic  <hniksic@srce.hr>
9944
9945         * utils.h: Declare file_non_directory_p().
9946
9947 1998-04-03  Hrvoje Niksic  <hniksic@srce.hr>
9948
9949         * main.c (main): It's `tries', not `numtries' now.
9950
9951 1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
9952
9953         * init.c (getperms): Removed.
9954
9955 1998-04-01  Tim Charron  <tcharron@interlog.com>
9956
9957         * log.c (logvprintf): Don't use ARGS twice.
9958
9959 1998-04-01  John  <john@futuresguide.com>
9960
9961         * mswindows.c: Cleaned up.
9962
9963 1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
9964
9965         * version.c: Wget 1.5-b14 is released.
9966
9967 1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
9968
9969         * ftp-opie.c (STRLEN4): New macro.
9970         (btoe): Use it.
9971
9972 1998-04-01  Junio Hamano  <junio@twinsun.com>
9973
9974         * http.c: Document all the Digest functions.
9975
9976 1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
9977
9978         * utils.c (file_non_directory_p): Renamed from isfile().
9979
9980         * mswindows.h (S_ISREG): New macro, suggested by Tim Adam.
9981
9982 1998-03-31  Hrvoje Niksic  <hniksic@srce.hr>
9983
9984         * utils.c (mkdirhier): Use 0777 instead of opt.dirmode.
9985
9986         * init.c (cmd_spec_dotstyle): Use 48 dots per line for binary
9987         style.
9988         (cmd_permissions): Removed.
9989
9990         * config.h.in: Add template for WORDS_BIGENDIAN.
9991
9992 1998-03-31  Junio Hamano  <junio@twinsun.com>
9993
9994         * http.c (HEXD2asc): New macro.
9995         (dump_hash): Use it.
9996
9997 1998-03-31  Hrvoje Niksic  <hniksic@srce.hr>
9998
9999         * version.c: Wget 1.5-b13 is released.
10000
10001 1998-03-31  Hrvoje Niksic  <hniksic@srce.hr>
10002
10003         * main.c (main): Don't try to use `com'.
10004
10005 1998-03-30  Hrvoje Niksic  <hniksic@srce.hr>
10006
10007         * init.c (cmd_permissions): New function.
10008
10009 1998-03-30  Hrvoje Niksic  <hniksic@srce.hr>
10010
10011         * version.c: Wget 1.5-b12 is released.
10012
10013 1998-03-30  Hrvoje Niksic  <hniksic@srce.hr>
10014
10015         * init.c (commands): Renamed `numtries' to `tries'.
10016         (cmd_spec_debug): Removed.
10017         (home_dir): Under Windows, return `C:\' if HOME is undefined.
10018
10019 1998-03-29  Hrvoje Niksic  <hniksic@srce.hr>
10020
10021         * config.h.in: Define _XOPEN_SOURCE.
10022
10023         * init.c (check_user_specified_header): New function.
10024         (cmd_spec_header): Use it.
10025         (cmd_spec_useragent): New function.
10026
10027 1998-03-29  Hrvoje Niksic  <hniksic@srce.hr>
10028
10029         * version.c: Wget 1.5-b11 is released.
10030
10031 1998-03-28  Hrvoje Niksic  <hniksic@srce.hr>
10032
10033         * wget.h: Include <libintl.h> only if NLS is enabled.
10034
10035 1998-03-26  Hrvoje Niksic  <hniksic@srce.hr>
10036
10037         * options.h (struct options): Made `wait' a long.
10038         (struct options): Ditto for `timeout'.
10039
10040 1998-03-19  Hrvoje Niksic  <hniksic@srce.hr>
10041
10042         * utils.c (exists): Renamed to file_exists_p.
10043         (file_exists_p): Use access() if available.
10044
10045 1998-03-17  Hrvoje Niksic  <hniksic@srce.hr>
10046
10047         * utils.c (memfatal): Set save_log_p to 0 to avoid potential
10048         infloop.
10049
10050         * log.c: do_logging -> save_log_p.
10051
10052         * config.h.in: Added template for HAVE_VSNPRINTF.
10053
10054 1998-03-16  Hrvoje Niksic  <hniksic@srce.hr>
10055
10056         * init.c: Ditto.
10057
10058         * http.c: Protect declaration against non-ANSI compiler.
10059
10060         * log.c (logvprintf): Use vsnprintf() if available.
10061
10062         * getopt.c (main): Don't translate test stuff.
10063
10064 1998-03-16  Hrvoje Niksic  <hniksic@srce.hr>
10065
10066         * version.c: Wget 1.5-b10 is released.
10067
10068 1998-03-11  Hrvoje Niksic  <hniksic@srce.hr>
10069
10070         * ftp.c (getftp): Don't translate "CWD %s".
10071
10072         * wget.h (GCC_FORMAT_ATTR): Renamed from FORMAT_ATTR.
10073
10074 1998-03-07  Hrvoje Niksic  <hniksic@srce.hr>
10075
10076         * ftp-opie.c (btoe): Use memcpy() instead of strncat().
10077
10078         * log.c (logputs): New function.
10079         (logvprintf): Renamed from vlogmsg; use logputs().
10080
10081         * retr.c (show_progress): Print `[100%]' when the retrieval is
10082         finished.
10083
10084         * init.c (run_wgetrc): Use FILE, not PATH.
10085         (wgetrc_file_name): Ditto.
10086
10087 1998-03-07  Tim Adam  <tma@osa.com.au>
10088
10089         * recur.c (parse_robots): Correctly reset `entries' on empty
10090         disallow.
10091
10092 1998-03-07  Hrvoje Niksic  <hniksic@srce.hr>
10093
10094         * init.c (cmd_spec_debug): Use cmd_boolean().
10095
10096 1998-02-23  Hrvoje Niksic  <hniksic@srce.hr>
10097
10098         * http.c (gethttp): Create proxy-authorization correctly.
10099
10100 1998-02-22  Hrvoje Niksic  <hniksic@srce.hr>
10101
10102         * md5.c: Ditto.
10103
10104         * getopt.c: Use ANSI function definitions.
10105
10106         * ftp-opie.c: New file.
10107
10108         * options.h: Don't redefine EXTERN.
10109
10110         * init.c: Sort it correctly.
10111
10112 1998-02-22  Hrvoje Niksic  <hniksic@srce.hr>
10113
10114         * version.c: Wget 1.5-b9 is released.
10115
10116 1998-02-22  Hrvoje Niksic  <hniksic@srce.hr>
10117
10118         * recur.c (recursive_retrieve): Reset `first_time'.
10119
10120         * ftp.c (getftp): Added `default' clause to switches of uerr_t.
10121
10122         * rbuf.c (rbuf_peek): Simplified.
10123         (rbuf_flush): Use MINVAL.
10124
10125         * wget.h (MINVAL): Moved from url.h.
10126
10127         * rbuf.h (RBUF_FD): New macro.
10128
10129         * url.c (add_url): Add to the head of the list.
10130
10131         * ftp.c (ftp_retrieve_list): Set the permissions to downloaded
10132         file.
10133         (getftp): Set the default permissions to 0600.
10134
10135 1998-02-21  Hrvoje Niksic  <hniksic@srce.hr>
10136
10137         * url.c (get_urls_html): Ditto.
10138         (convert_links): Ditto.
10139
10140         * recur.c (parse_robots): Ditto.
10141
10142         * html.c (ftp_index): Ditto.
10143
10144         * ftp-ls.c (ftp_parse_unix_ls): Open file as binary.
10145
10146         * init.c (defaults): Initialize `opt' to zero via memset.
10147
10148         * http.c (digest_authentication_encode): goto considered harmful.
10149
10150 1998-02-19  Hrvoje Niksic  <hniksic@srce.hr>
10151
10152         * ftp.c (delelement): Simplify and fix leak.
10153
10154 1998-02-18  Hrvoje Niksic  <hniksic@srce.hr>
10155
10156         * http.c (dump_hash): Use HEXD2ASC instead of home-grown stuff.
10157
10158         * url.h (HEXD2ASC): Removed warning.
10159
10160         * init.c (comind): Use binary search.
10161         (commands): Reorganized.
10162         (setval): Ditto.
10163         (cmd_boolean): New function.
10164         (cmd_number): Ditto.
10165         (cmd_number_inf): Ditto.
10166         (cmd_string): Ditto.
10167         (cmd_vector): Ditto.
10168         (cmd_directory_vector): Ditto.
10169         (cmd_bytes): Ditto.
10170         (cmd_time): Ditto.
10171         (cmd_spec_debug): Ditto.
10172         (cmd_spec_dirmode): Ditto.
10173         (cmd_spec_dirstruct): Ditto.
10174         (cmd_spec_dotstyle): Ditto.
10175         (cmd_spec_header): Ditto.
10176         (cmd_spec_htmlify): Ditto.
10177         (cmd_spec_mirror): Ditto.
10178         (cmd_spec_outputdocument): Ditto.
10179         (cmd_spec_recursive): Ditto.
10180         (settime): Merged with cmd_time().
10181         (setbytes): Merged with cmd_bytes().
10182         (setonoff): Merged with cmd_boolean().
10183         (onoff): Ditto.
10184
10185 1998-02-17  Hrvoje Niksic  <hniksic@srce.hr>
10186
10187         * Makefile.in (distclean): Remove `config.h'.
10188
10189 1998-02-17  Hrvoje Niksic  <hniksic@srce.hr>
10190
10191         * version.c: Wget 1.5-b8 is released.
10192
10193 1998-02-17  Hrvoje Niksic  <hniksic@srce.hr>
10194
10195         * http.c (digest_authentication_encode): New function.
10196         (create_authorization_line): Use it.
10197         (dump_hash): New function.
10198         (digest_authentication_encode): Use it.
10199
10200         * fnmatch.c: Renamed from `mtch.c'.
10201
10202 1998-02-15  Karl Eichwalder  <ke@suse.de>
10203
10204         * main.c (main): Tag "Written by..." string as translatable.
10205
10206 1998-02-15  Hrvoje Niksic  <hniksic@srce.hr>
10207
10208         * wget.h (FREE_MAYBE): New macro.
10209
10210         * http.c (create_authorization_line): Don't use ANSI C string
10211         concatenation feature.
10212         (basic_authentication_encode): Use alloca() for temporary
10213         variables.
10214
10215         * recur.h: Ditto.
10216
10217         * http.c: Ditto.
10218
10219         * headers.h: Ditto.
10220
10221         * ftp-basic.c: Protect declaration against non-ANSI compiler.
10222
10223         * http.c (create_authorization_line): Cast `unsigned char *' to
10224         `char *' for sprintf, to shut up the noisy Digital Unix cc.
10225
10226 1998-02-15  Hrvoje Niksic  <hniksic@srce.hr>
10227
10228         * version.c: Wget 1.5-b7 is released.
10229
10230 1998-02-15  Hrvoje Niksic  <hniksic@srce.hr>
10231
10232         * cmpt.c (strstr): Synched with glibc-2.0.6.
10233
10234         * ftp-basic.c (calculate_skey_response): Ditto.
10235         (calculate_skey_response): Use alloca().
10236
10237         * http.c (create_authorization_line): Work with FSF's version of
10238         md5.c.
10239
10240         * md5.c: New file, from GNU libc.
10241
10242 1998-02-14  Hrvoje Niksic  <hniksic@srce.hr>
10243
10244         * url.h (URL_CLEANSE): Name the temporary variable more carefully.
10245
10246 1998-02-13  Hrvoje Niksic  <hniksic@srce.hr>
10247
10248         * http.c (basic_authentication_encode): New function, instead of
10249         the macro.
10250
10251 1998-02-13  Junio Hamano  <junio@twinsun.com>
10252
10253         * http.c: Add HTTP-DA support.
10254         * ftp-basic.c: Add Opie/S-key support.
10255         * config.h.in, Makefile.in: Add HTTP-DA and Opie/S-key support.
10256         * md5.c, md5.h: New files.
10257
10258 1998-02-13  Hrvoje Niksic  <hniksic@srce.hr>
10259
10260         * http.c (http_process_range): Renamed from hprocrange().
10261         (http_process_range): Parse the whole header.
10262
10263         * headers.c: New file.
10264         (header_process): New function.
10265         (header_get): Renamed from fetch_next_header.
10266
10267         * all: Include utils.h only where necessary.
10268
10269         * wget.h: Declare xmalloc(), xrealloc() and xstrdup() here.
10270
10271         * wget.h: Add provisions for dmalloc.
10272
10273 1998-02-12  Hrvoje Niksic  <hniksic@srce.hr>
10274
10275         * version.c: Wget 1.5-b6 is released.
10276
10277 1998-02-12  Hrvoje Niksic  <hniksic@srce.hr>
10278
10279         * ftp.c (ftp_loop): Determine `filename' more precisely.
10280
10281         * init.c (setval): Don't set `opt.quiet' if output-document is
10282         `-'.
10283
10284         * log.c (log_init): Print to STDERR instead of STDOUT.
10285         (vlogmsg): Use STDERR by default.
10286         (logflush): Ditto.
10287
10288 1998-02-11  Simon Josefsson  <jas@pdc.kth.se>
10289
10290         * host.c: Use addr_in again.
10291
10292 1998-02-08  Karl Eichwalder  <karl@suse.de>
10293
10294         * http.c (gethttp): Fixed typo.
10295
10296 1998-02-08  Hrvoje Niksic  <hniksic@srce.hr>
10297
10298         * version.c: Wget 1.5-b5 is released.
10299
10300 1998-02-08  Hrvoje Niksic  <hniksic@srce.hr>
10301
10302         * retr.c (show_progress): Use it.
10303
10304         * log.c (logflush): New function.
10305
10306         * wget.h: Utilize __attribute__ if on gcc.
10307
10308 1998-02-07  Hrvoje Niksic  <hniksic@srce.hr>
10309
10310         * http.c (base64_encode_line): New argument LENGTH.
10311         (BASIC_AUTHENTICATION_ENCODE): Use it.
10312         (BASIC_AUTHENTICATION_ENCODE): Take length of HEADER into account.
10313
10314         * main.c (main): Fixed fprintf() format mismatch.
10315
10316 1998-02-06  Hrvoje Niksic  <hniksic@srce.hr>
10317
10318         * version.c: Wget 1.5-b4 is released.
10319
10320 1998-02-03  Simon Josefsson  <jas@pdc.kth.se>
10321
10322         * host.c: use sockaddr_in instead of addr_in.
10323
10324 1998-02-04  Hrvoje Niksic  <hniksic@srce.hr>
10325
10326         * init.c (cleanup): Use it.
10327
10328         * recur.c (recursive_cleanup): New function.
10329
10330         * retr.c (retrieve_from_file): Ditto.
10331
10332         * main.c (main): Use it.
10333
10334         * recur.c (recursive_reset): New function.
10335
10336         * retr.c (retrieve_from_file): Ditto.
10337
10338         * main.c (main): Simplify call to recursive_retrieve().
10339
10340         * recur.c (recursive_retrieve): Removed FLAGS argument.
10341
10342         * http.c (gethttp): Changed call to iwrite().
10343
10344 1998-02-03  Hrvoje Niksic  <hniksic@srce.hr>
10345
10346         * url.c (get_urls_html): Ditto.
10347         (free_urlpos): Ditto.
10348         (mkstruct): Ditto.
10349         (construct): Ditto.
10350
10351         * retr.c (retrieve_url): Move declaration of local variables to
10352         smaller scope.
10353
10354         * url.c (urlproto): Use it.
10355         (parseurl): Ditto.
10356         (str_url): Ditto.
10357         (get_urls_html): Ditto.
10358
10359         * utils.h (ARRAY_SIZE): New macro.
10360
10361         * url.c (proto): Moved from url.h.
10362
10363         * url.h (URL_CLEANSE): Reformatted.
10364         (USE_PROXY_P): Renamed from USE_PROXY.
10365
10366         * ftp-basic.c: Adjust to the new interface of iwrite().
10367
10368         * ftp-basic.c (ftp_port): Use alloca().
10369
10370 1998-02-03  Hrvoje Niksic  <hniksic@srce.hr>
10371
10372         * version.c: Wget 1.5-b3 is released.
10373
10374         * host.c (ftp_getaddress): Don't print to stderr directly.
10375
10376         * init.c (setbytes): Support `g' for gigabytes.
10377         (cmdtype): New specification CTIME.
10378         (setval): Use it with settime().
10379         (commands): Use it for WAIT and TIMEOUT.
10380
10381 1998-02-02  Hrvoje Niksic  <hniksic@srce.hr>
10382
10383         * http.c (BASIC_AUTHENTICATION_ENCODE): New macro.
10384         (gethttp): Use it.
10385
10386         * utils.c (unique_name_1): Moved from url.c.
10387         (unique_name): Ditto.
10388
10389         * url.c (url_filename): Ditto.
10390
10391         * log.c (redirect_output): Changed call to unique_name().
10392
10393         * url.c (unique_name_1): Renamed from unique_name().
10394         (unique_name): Changed interface.
10395
10396         * init.c (enum cmdid): Moved from init.h.
10397         (cmdtype): Ditto.
10398         (struct cmd): Ditto.
10399
10400         * main.c (main): Use it.
10401         (main): Moved `--backups' to not have a short option.
10402
10403         * options.h (struct options): New member BACKGROUND.
10404
10405         * main.c (print_help): Rearranged.
10406         (main): New long options for -n* short options: --no-directories,
10407         --no-host-directories, --non-verbose, --no-host-lookup and
10408         --dont-remove-listing.
10409
10410 1998-02-01  Hrvoje Niksic  <hniksic@srce.hr>
10411
10412         * main.c (main): Use log_close().
10413
10414         * log.c: New variable LOGFP.
10415         (vlogmsg): Use it.
10416         (redirect_output): Don't open /dev/null; set LOGFP to stdin
10417         instead.
10418         (log_close): New function.
10419
10420         * options.h (struct options): Removed LFILE.
10421
10422         * log.c (log_enable): Removed.
10423
10424         * main.c (main): Use it.
10425
10426         * log.c (log_init): New function.
10427
10428         * url.c (get_urls_html): Removed needless assignment to BASE.
10429
10430         * host.c (add_hlist): Don't set CMP needlessly.
10431
10432         * utils.c (match_backwards): Ditto.
10433         (in_acclist): Ditto.
10434
10435         * url.c (findurl): Ditto.
10436
10437         * netrc.c (parse_netrc): Ditto.
10438
10439         * log.c (log_dump): Ditto.
10440
10441         * html.c (html_quote_string): Ditto.
10442
10443         * ftp-basic.c (ftp_request): Made static.
10444
10445         * connect.c: Made global variables static.
10446
10447         * url.c (construct): Ditto.
10448
10449         * init.c (init_path): Avoid assignment inside `if'-condition.
10450
10451         * ftp.c: Don't include in.h or winsock.h.
10452
10453         * ftp.c (ftp_loop): Use SZ.
10454
10455         * connect.c (bindport): Cast &addrlen to int *.
10456         (conaddr): Ditto.
10457
10458         * init.c (initialize): Don't use SYSTEM_WGETRC unconditionally.
10459
10460 1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
10461
10462         * ftp.c (getftp): Initialize opt.ftp_pass here.
10463         (ftp_retrieve_dirs): Use alloca().
10464
10465         * init.c (defaults): Don't initialize opt.ftp_pass.
10466
10467         * sysdep.h (S_ISLNK): Declare for OS/2; ditto for lstat.
10468         From Ivan F. Martinez <ivanfm@ecodigit.com.br>.
10469
10470 1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
10471
10472         * recur.c (parse_robots): Check for comments more correctly.
10473
10474         * host.c (ftp_getaddress): Use STRDUP_ALLOCA.
10475         (ftp_getaddress): Add diagnostics when reverse-lookup yields only
10476         hostname.
10477
10478 1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
10479
10480         * version.c: Wget 1.5-b2 is released.
10481
10482         * netrc.c (NETRC_FILE_NAME): Moved from netrc.h.
10483
10484         * utils.c (proclist): Pass FNM_PATHNAME to fnmatch().
10485
10486         * ftp-basic.c (ftp_pasv): Avoid unnecessary casting to unsigned
10487         char.
10488
10489         * log.c: Don't attempt to hide arguments from ansi2knr.
10490
10491         * cmpt.c: Synched strptime() and mktime() with glibc-2.0.6.
10492
10493         * ansi2knr.c: Use a later version, from fileutils-3.16l alpha.
10494
10495         * ftp.c (getftp): Ditto.
10496
10497         * http.c (gethttp): Use it.
10498
10499         * retr.c (get_contents): New argument EXPECTED; pass it to
10500         show_progress().
10501         (show_progress): New argument EXPECTED; use it to display
10502         percentages.
10503
10504         * init.c (setval): Ditto.
10505
10506         * http.c (gethttp): Ditto.
10507         (http_loop): Ditto.
10508
10509         * ftp.c (getftp): Ditto.
10510         (ftp_loop_internal): Ditto.
10511
10512         * ftp-ls.c (ftp_parse_unix_ls): Use abort() instead of assert(0).
10513
10514         * sysdep.h (CLOSE): Simplify; use DEBUGP.
10515
10516         * netrc.c (search_netrc): Use alloca().
10517
10518         * init.c (defaults): Initialize no_flush.
10519
10520         * log.c (vlogmsg): Don't flush if no_flush.
10521
10522         * options.h (struct options): New variable no_flush.
10523
10524         * main.c (main): Don't play games with buffering.
10525
10526         * log.c (vlogmsg): Flush the output after every message.
10527
10528 1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
10529
10530         * init.c (parse_line): Ditto.
10531
10532         * url.c (get_urls_html): Ditto.
10533
10534         * main.c (main): Don't cast to unsigned char.
10535
10536         * init.c (run_wgetrc): Don't cast to unsigned char.
10537         (parse_line): Accept char instead of unsigned char.
10538
10539         * html.c (htmlfindurl): Use char instead of unsigned char.
10540
10541         * all: Use them.
10542
10543         * sysdep.h: Add wrappers to ctype macros to make them
10544         eight-bit-clean:
10545
10546 1998-01-30  Hrvoje Niksic  <hniksic@srce.hr>
10547
10548         * html.c (htmlfindurl): Download <img lowsrc=...>
10549
10550         * main.c (main): Ignore SIGPIPE.
10551
10552         * connect.c (select_fd): New argument WRITEP.
10553         (iwrite): Call select_fd().
10554
10555 1997-02-27  Fila Kolodny <fila@ibi.com>
10556
10557         * ftp.c (ftp_retrieve_list): If retrieving symlink and the proper
10558         one already exists, just skip it.
10559
10560 1998-01-30  Hrvoje Niksic  <hniksic@srce.hr>
10561
10562         * http.c (gethttp): Cosmetic changes.
10563
10564         * http.c (check_end): Allow `+D...' instead of `GMT'.
10565         From Fabrizio Pollastri <pollastri@cstv.to.cnr.it>.
10566
10567         * url.c (process_ftp_type): New function.
10568         (parseurl): Use it.
10569
10570         * connect.c (iwrite): Allow writing in a few chunks.
10571         (bindport): Made SRV static, so addr can point to it.
10572         (select_fd): Removed HPUX kludge.
10573
10574         * host.c (free_hlist): Incorporated into clean_hosts().
10575
10576 1998-01-29  Hrvoje Niksic  <hniksic@srce.hr>
10577
10578         * host.c (hlist): Made static.
10579         (search_address): Cosmetic change.
10580
10581 1998-01-29  Hrvoje Niksic  <hniksic@srce.hr>
10582
10583         * version.c: Wget v1.5-b1 is released.
10584
10585         * http.c (hgetlen): Use sizeof() to get the header length.
10586         (hgetrange): Ditto.
10587         (hgettype): Ditto.
10588         (hgetlocation): Ditto.
10589         (hgetmodified): Ditto.
10590         (haccepts_none): Ditto.
10591
10592         * main.c (main): Updated `--version' and `--help' output, as per
10593         Francois Pinard's suggestions.
10594
10595         * main.c: Include locale.h; call setlocale(), bindtextdomain() and
10596         textdomain().
10597
10598         * config.h.in: Define stubs for I18N3.
10599
10600         * wget.h: Include libintl.h.
10601
10602 1998-01-28  Hrvoje Niksic  <hniksic@srce.hr>
10603
10604         * url.c (mkstruct): Check for opt.cut_dirs.
10605         (mkstruct): alloca()-te more, xmalloc() less.
10606
10607         * utils.c (load_file): Check for ferror().
10608
10609         * url.c (get_urls_file): Close only the files we opened.
10610         (get_urls_html): Ditto.
10611         (count_slashes): New function.
10612
10613         * http.h: Removed.
10614
10615         * http.c (gethttp): Respect username and password provided by
10616         proxy URL.
10617         (base64_encode_line): Write into an existing buffer instead of
10618         malloc-ing a new one.
10619         (struct http_stat): Moved from http.h
10620
10621         * retr.c (retrieve_url): Free SUF.
10622
10623         * all: Removed lots of unnecessary .h dependencies.
10624
10625         * html.c (global_state): Made static.
10626
10627         * utils.h (ALLOCA_ARRAY): New macro.
10628
10629         * main.c (main): New option `--cut-dirs'.
10630
10631         * url.c (construct): Use alloca() for T.
10632
10633         * utils.c (mkdirhier): Use STRDUP_ALLOCA.
10634
10635         * host.c (_host_t): Moved from host.h.
10636         (struct host): Renamed from _host_t.
10637         (store_hostaddress): Use STRDUP_ALLOCA for INET_S.
10638         (realhost): Ditto.
10639
10640         * host.h: Don't include url.h.
10641
10642         * ftp.c (LIST_FILENAME): Moved from ftp.h.
10643
10644         * init.c (DEFAULT_FTP_ACCT): Moved from ftp.h.
10645
10646         * main.c (main): Enable log if the output goes to a TTY.
10647
10648         * connect.h: Removed unused constant `BACKLOG'.
10649
10650         * config.h.in: Check for isatty().
10651
10652         * Makefile.in (LINK): Use CFLAGS when linking.
10653
10654 1998-01-27  Hrvoje Niksic  <hniksic@srce.hr>
10655
10656         * mswindows.c (ws_hangup): Use redirect_output().
10657
10658         * main.c (redirect_output_signal): New function; use
10659         redirect_output().
10660
10661         * log.c (redirect_output): New function, based on hangup(), which
10662         is deleted.
10663
10664         * log.c (vlogmsg): New function.
10665
10666         * wget.h (DEBUGP): Use debug_logmsg().
10667
10668         * main.c (hangup): Use it.
10669
10670         * log.c (log_dump): New function.
10671
10672         * utils.h (DO_REALLOC): Use `long' for various sizes.
10673
10674         * http.c (hskip_lws): Use `while', for clarity.
10675         (HTTP_DYNAMIC_LINE_BUFFER): New constant.
10676         (fetch_next_header): Use it instead of DYNAMIC_LINE_BUFFER.
10677
10678         * ftp-basic.c (FTP_DYNAMIC_LINE_BUFFER): New constant.
10679         (ftp_response): Use it instead of DYNAMIC_LINE_BUFFER.
10680
10681         * utils.c (DYNAMIC_LINE_BUFFER): Moved from utils.c.
10682         (LEGIBLE_SEPARATOR): Ditto.
10683         (FILE_BUFFER_SIZE): Ditto.
10684
10685         * retr.c (BUFFER_SIZE): Moved from retr.h.
10686
10687         * log.c: New file.
10688         (logmsg): Moved from utils.c.
10689         (debug_logmsg): New function.
10690
10691         * mswindows.h: Include it here.
10692
10693         * init.c: Ditto.
10694
10695         * utils.c: Don't include <windows.h>.
10696
10697 1998-01-25  Hrvoje Niksic  <hniksic@srce.hr>
10698
10699         * host.c (ftp_getaddress): Ditto.
10700
10701         * main.c (main): Use it.
10702
10703         * utils.h (STRDUP_ALLOCA): New macro.
10704
10705         * init.c: Prepend `wget: ' to error messages printed on stderr.
10706
10707         * utils.c (mkdirhier): Renamed from mymkdir.
10708         (touch): Renamed from my_touch.
10709         (pwd_cuserid): Renamed from my_cuserid().
10710
10711 1998-01-24  Andy Eskilsson  <andy.eskilsson@telelogic.se>
10712
10713         * utils.c (accdir): Process wildcards.
10714         (proclist): New function.
10715         (accdir): Use it to avoid code repetition.
10716
10717 1998-01-24  Hrvoje Niksic  <hniksic@srce.hr>
10718
10719         * recur.c (parse_robots): Respect opt.useragent; use alloca().
10720
10721         * http.c (gethttp): Construct useragent accordingly.
10722
10723         * version.c: Changed version string to numbers-only.
10724
10725         * main.c (print_help): List all the options.
10726
10727         * mswindows.c (windows_main_junk): Initialize argv0 here.
10728
10729 1998-01-24  Karl Heuer  <kwzh@gnu.org>
10730
10731         * netrc.c (search_netrc): Initialize `l' only after processing
10732         netrc.
10733
10734         * main.c (main): Don't trap SIGHUP if it's being ignored.
10735
10736 1998-01-24  Hrvoje Niksic  <hniksic@srce.hr>
10737
10738         * all: Use logmsg().
10739
10740         * utils.c (time_str): Moved from retr.c.
10741         (logmsg): New function.
10742         (logmsg_noflush): Ditto.
10743
10744         * rbuf.c: New file, moved buf_* functions here.
10745
10746         * ftp.c (ftp_expected_bytes): Moved from ftp-basic.c.
10747
10748         * ftp-basic.c (ftp_rest): Use prnum().
10749
10750         * ftp-basic.c: Ditto.
10751
10752         * ftp.c: Use the new reading functions and macros.
10753
10754         * retr.c (buf_initialize): New function.
10755         (buf_initialized_p): Ditto.
10756         (buf_uninitialize): Ditto.
10757         (buf_fd): Ditto.
10758
10759         * http.c (fetch_next_header): Use the BUF_READCHAR macro for
10760         efficiency.
10761         (gethttp): Use alloca() where appropriate.
10762
10763         * retr.c (buf_readchar): Use it.
10764         (buf_peek): Use rstreams.
10765
10766         * retr.h (BUF_READCHAR): New macro.
10767
10768         * init.c (home_dir): Rewritten for clarity.
10769         (init_path): Ditto.
10770
10771         * mswindows.c (ws_backgnd): Made static.
10772         (read_registry): Ditto.
10773         (ws_cleanup): Ditto.
10774         (ws_handler): Ditto.
10775
10776 1998-01-23  Hrvoje Niksic  <hniksic@srce.hr>
10777
10778         * alloca.c: New file.
10779
10780         * Makefile.in (ALLOCA): Define.
10781
10782         * mswindows.c (ws_help): Constify.
10783         (ws_help): Use alloca.
10784
10785         * mswindows.c: Reformat.
10786
10787         * all: Added _(...) annotations for I18N snarfing and translation.
10788
10789         * host.c (ftp_getaddress): Nuke SYSINFO.
10790         (ftp_getaddress): Don't use getdomainname().
10791         (ftp_getaddress): Use uname(), where available.
10792
10793         * http.c (gethttp): Protect a stray fprintf().
10794
10795         * init.c (settime): New function.
10796         (setval): Treat WAIT specially, allowing suffixes like `m' for
10797         minutes, etc.
10798
10799 1998-01-21  Hrvoje Niksic  <hniksic@srce.hr>
10800
10801         * url.c (get_urls_html): Use alloca() for TEMP.
10802
10803 1998-01-21  Jordan Mendelson  <jordy@wserv.com>
10804
10805         * url.c (rotate_backups): New function.
10806
10807         * http.c (gethttp): Ditto.
10808
10809         * ftp.c (getftp): Rotate backups.
10810
10811 1997-12-18  Hrvoje Niksic  <hniksic@srce.hr>
10812
10813         * all: Renamed nmalloc(), nrealloc() and nstrdup() to xmalloc(),
10814         xrealloc() and xstrdup().  Use the new functions.
10815
10816         * url.c (decode_string): Made static.
10817         (has_proto): Ditto.
10818         (parse_dir): Ditto.
10819         (parse_uname): Ditto.
10820         (mkstruct): Ditto.
10821         (construct): Ditto.
10822         (construct_relative): Ditto.
10823
10824         * retr.c (show_progress): Made static.
10825
10826         * recur.c (robots_url): Made static.
10827         (retrieve_robots): Ditto.
10828         (parse_robots): Ditto.
10829         (robots_match): Ditto.
10830
10831         * main.h: Removed.
10832
10833         * main.c (printhelp): Made static.
10834         (hangup): Ditto.
10835
10836         * init.c (comind): Made static.
10837         (defaults): Ditto.
10838         (init_path): Ditto.
10839         (run_wgetrc): Ditto.
10840         (onoff): Ditto.
10841         (setonoff): Ditto.
10842         (setnum): Ditto.
10843         (myatoi): Ditto.
10844         (getperms): Ditto.
10845         (setbytes): Ditto.
10846
10847         * http.c (fetch_next_header): Made static.
10848         (hparsestatline): Ditto.
10849         (hskip_lws): Ditto.
10850         (hgetlen): Ditto.
10851         (hgetrange): Ditto.
10852         (hgettype): Ditto.
10853         (hgetlocation): Ditto.
10854         (hgetmodified): Ditto.
10855         (haccepts_none): Ditto.
10856         (gethttp): Ditto.
10857         (base64_encode_line): Ditto.
10858         (mktime_from_utc): Ditto.
10859         (http_atotm): Ditto.
10860
10861         * html.c (idmatch): Made static.
10862
10863         * host.c (search_host): Made static.
10864         (search_address): Ditto.
10865         (free_hlist): Ditto.
10866
10867         * ftp.c (getftp): Made static.
10868         (ftp_loop_internal): Ditto.
10869         (ftp_get_listing): Ditto.
10870         (ftp_retrieve_list): Ditto.
10871         (ftp_retrieve_dirs): Ditto.
10872         (ftp_retrieve_glob): Ditto.
10873         (freefileinfo): Ditto.
10874         (delelement): Ditto.
10875
10876         * ftp-ls.c (symperms): Made static.
10877         (ftp_parse_unix_ls): Ditto.
10878
10879         * connect.c (select_fd): Made static.
10880
10881         * utils.c (xmalloc): Renamed from nmalloc.
10882         (xrealloc): Renamed from nrealloc.
10883         (xstrdup): Renamed from nstrdup.
10884
10885         * getopt.c (exchange): Use alloca.
10886
10887         * mswindows.c (mycuserid): Use strncpy.
10888
10889         * New files mswindows.c, mswindows.h, sysdep.h.  winjunk.c,
10890         systhings.h, windecl.h and winjunk.h removed.
10891
10892         * mswindows.c (sleep): New function.
10893
10894         * utils.c: Include <windows.h> under Windows.
10895
10896 1997-06-12  Darko Budor  <dbudor@zesoi.fer.hr>
10897
10898         * url.h (URL_UNSAFE): Change default under Windows.
10899
10900         * retr.c (retrieve_from_file): Respect opt.delete_after.
10901
10902         * main.c (main): Call ws_help on Windows.
10903
10904         * winjunk.c (windows_main_junk): New function.
10905
10906         * main.c (main): Junk-process argv[0].
10907
10908         * http.c (mktime_from_utc): Return -1 if mktime failed.
10909
10910         * http.c (http_loop): Ditto.
10911
10912         * ftp.c (ftp_loop_internal): Change title on Windows when using a
10913         new URL.
10914
10915         * winjunk.c (getdomainname): Lots of functions.
10916
10917 1997-06-12  Hrvoje Niksic  <hniksic@srce.hr>
10918
10919         * cmpt.c (strptime_internal): Handle years more correctly for
10920         `%y'.
10921
10922 1997-06-09  Mike Thomas <mthomas@reality.ctron.com>
10923
10924         * http.c (gethttp): Allocate enough space for
10925         `Proxy-Authorization' header.
10926
10927 1997-05-10  Hrvoje Niksic  <hniksic@srce.hr>
10928
10929         * version.c: Wget/1.4.5 is released.
10930
10931 1997-05-10  Hrvoje Niksic  <hniksic@srce.hr>
10932
10933         * retr.c (get_contents): Check return value of fwrite more
10934         carefully.
10935
10936 1997-03-30  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
10937
10938         * cmpt.c (strptime_internal) [case 'Y']: Always subtract 1900 from
10939         year, regardless of century.
10940
10941 1997-03-30  Hrvoje Niksic  <hniksic@srce.hr>
10942
10943         * utils.c (isfile): Use `lstat' instead of `stat'.
10944
10945 1997-03-29  Hrvoje Niksic  <hniksic@srce.hr>
10946
10947         * utils.c (numdigit): Use explicit test.
10948
10949 1997-03-21  Hrvoje Niksic  <hniksic@srce.hr>
10950
10951         * http.c (http_loop): Always use `url_filename' to get u->local.
10952
10953 1997-03-20  Hrvoje Niksic  <hniksic@srce.hr>
10954
10955         * url.c: Recognize https.
10956
10957 1997-03-13  Hrvoje Niksic  <hniksic@srce.hr>
10958
10959         * recur.c (recursive_retrieve): Lowercase just the host name.
10960
10961 1997-03-09  Hrvoje Niksic  <hniksic@srce.hr>
10962
10963         * url.c (get_urls_file): Use the correct test.
10964         (get_urls_html): Ditto.
10965
10966 1997-03-07  Hrvoje Niksic  <hniksic@srce.hr>
10967
10968         * connect.c: Reverted addrlen to int.
10969
10970         * init.c (parse_line): Check for -1 instead of NONE.
10971
10972         * version.c: Changed version to 1.4.5.
10973
10974 1997-02-17  Hrvoje Niksic  <hniksic@srce.hr>
10975
10976         * init.c: New option netrc.
10977         (initialize): Don't parse .netrc.
10978
10979         * cmpt.c (recursive): Return rp.
10980         (strptime_internal): Match the long strings first, the abbreviated
10981         second.
10982
10983 1997-02-16  Hrvoje Niksic  <hniksic@srce.hr>
10984
10985         * http.c (check_end): New function.
10986         (http_atotm): Use it.
10987
10988 1997-02-13  gilles Cedoc  <gilles@cedocar.fr>
10989
10990         * http.c (gethttp): Use them.
10991
10992         * init.c: New options proxy_user and proxy_passwd.
10993
10994 1997-02-14  Hrvoje Niksic  <hniksic@srce.hr>
10995
10996         * ftp.c (ftp_retrieve_list): Create links even if not relative.
10997
10998 1997-02-10  Hrvoje Niksic  <hniksic@srce.hr>
10999
11000         * recur.c (recursive_retrieve): Lowercase the host name, if the
11001         URL is not "optimized".
11002
11003         * host.c (realhost): Return l->hostname, even if it matches with
11004         host.
11005
11006 1997-02-10  Marin Purgar  <pmc@asgard.hr>
11007
11008         * connect.c: Make addrlen size_t instead of int.
11009         (conaddr): Ditto.
11010
11011 1997-02-09  Gregor Hoffleit  <flight@mathi.uni-heidelberg.DE>
11012
11013         * systhings.h: Define S_ISLNK on NeXT too.
11014
11015 1997-02-09  Hrvoje Niksic  <hniksic@srce.hr>
11016
11017         * version.c: Released 1.4.3.
11018
11019         * url.c: Futher update to list of protostrings.
11020         (skip_proto): Skip `//' correctly for FTP and HTTP.
11021
11022         * url.c (get_urls_html): Handle bogus `http:' things a little
11023         different.
11024
11025         * main.c (main): Removed `follow-ftp' from `f'.
11026         (main): Dumped the `prefix-files' and `file-prefix' options and
11027         features; old and bogus.
11028         (main): Exit on failed setval() in `-e'.
11029
11030         * http.c (fetch_next_header): Use it to detect header continuation
11031         correctly.
11032
11033         * retr.c (buf_peek): New function.
11034
11035 1997-02-08  Hrvoje Niksic  <hniksic@srce.hr>
11036
11037         * wget.h: Include time.h and stuff.
11038
11039 1997-02-08  Roger Beeman  <beeman@cisco.com>
11040
11041         * ftp.c: Include <time.h>
11042
11043 1997-02-07  Hrvoje Niksic  <hniksic@srce.hr>
11044
11045         * url.c (findurl): Would read over buffer limits.
11046
11047 1997-02-06  Hrvoje Niksic  <hniksic@srce.hr>
11048
11049         * ftp-ls.c (ftp_parse_unix_ls): Allow spaces in file names.
11050
11051 1997-02-05  Hrvoje Niksic  <hniksic@srce.hr>
11052
11053         * http.c (http_atotm): Initialize tm.is_dst.
11054
11055 1997-02-02  Hrvoje Niksic  <hniksic@srce.hr>
11056
11057         * http.c (gethttp): Don't print the number of retrieved headers.
11058
11059         * main.c (main): New option `--no-clobber', alias for `-nc'.
11060
11061         * url.c: Recognize `https://'.
11062
11063 1997-02-01  Hrvoje Niksic  <hniksic@srce.hr>
11064
11065         * host.c (herrmsg): Don't use h_errno.
11066
11067 1997-01-30  Hrvoje Niksic  <hniksic@srce.hr>
11068
11069         * host.c (accept_domain): Use it.
11070
11071         * main.c (main): New option `--exclude-domains'.
11072
11073         * retr.c (retrieve_url): Use it.
11074         (retrieve_url): Bail out when an URL is redirecting to itself.
11075
11076         * url.c (url_equal): New function.
11077
11078 1997-01-29  Hrvoje Niksic  <hniksic@srce.hr>
11079
11080         * connect.c: Include arpa/inet.h instead of arpa/nameser.h.
11081
11082         * http.c (mk_utc_time): New function.
11083         (http_atotm): Use it; handle time zones correctly.
11084
11085 1997-01-28  Hrvoje Niksic  <hniksic@srce.hr>
11086
11087         * http.c: Ditto.
11088
11089         * ftp-basic.c: Use it instead of WRITE.
11090
11091         * connect.c (iwrite): New function.
11092
11093 1997-01-27  Hrvoje Niksic  <hniksic@srce.hr>
11094
11095         * cmpt.c (mktime): New function.
11096
11097         * netrc.c: Include <sys/types.h>.
11098
11099         * main.c (main): Wouldn't recognize --spider.
11100
11101         * retr.c (rate): Use `B', `KB' and `MB'.
11102         (reset_timer,elapsed_time): Moved from utils.c.
11103
11104         * ftp.c (ftp_retrieve_list): Ditto.
11105
11106         * http.c (http_loop): Don't touch the file if opt.dfp.
11107
11108 1997-01-24  Hrvoje Niksic  <hniksic@srce.hr>
11109
11110         * cmpt.c: New file.
11111
11112         * ftp.c (ftp_retrieve_glob): New argument semantics.
11113         (ftp_retrieve_dirs): Use it.
11114         (ftp_loop): Ditto.
11115
11116         * html.c (htmlfindurl): Recognize `'' as the quote char.
11117
11118 1997-01-23  Hrvoje Niksic  <hniksic@srce.hr>
11119
11120         * ftp.c (ftp_loop_internal): Use it.
11121
11122         * utils.c (remove_link): New function.
11123
11124 1997-01-22  Hrvoje Niksic  <hniksic@srce.hr>
11125
11126         * retr.c (retrieve_url): Require STRICT redirection URL.
11127
11128         * url.c (parseurl): New argument STRICT.
11129
11130         * http.c (hparsestatline): Be a little-bit less strict about
11131         status line format.
11132
11133 1997-01-21  Hrvoje Niksic  <hniksic@srce.hr>
11134
11135         * http.c (gethttp): Use it.
11136
11137         * main.c (main): Don't use '<digit>' as options.
11138
11139         * init.c: New option ignore_length.
11140
11141         * http.c (gethttp): Ditto.
11142         (http_loop): Check for redirection without Location:.
11143         (gethttp): Don't print Length unless RETROKF.
11144
11145         * ftp.c (getftp): Use it.
11146
11147         * url.c (mkalldirs): New function.
11148
11149         * utils.c (mymkdir): Don't check for existing non-directory.
11150
11151         * url.c (mkstruct): Don't create the directory.
11152
11153 1997-01-20  Hrvoje Niksic  <hniksic@srce.hr>
11154
11155         * init.c (setval): Removed NO_RECURSION checks.
11156
11157 1997-01-19  Hrvoje Niksic  <hniksic@srce.hr>
11158
11159         * version.c: "Released" 1.4.3-pre2.
11160
11161         * recur.c (recursive_retrieve): Bypass host checking only if URL
11162         is ftp AND parent URL is not ftp.
11163
11164         * ftp-basic.c (ftp_request): Print out Turtle Power.
11165
11166         * ftp.c (ftp_loop): Call ftp_retrieve_glob with 0 if there's no
11167         wildcard.
11168         (ftp_retrieve_glob): Call ftp_loop_internal even on empty list, if
11169         not glob.
11170
11171         * http.c (gethttp): Be a little bit smarter about status codes.
11172
11173         * recur.c (recursive_retrieve): Always reset opt.recursive when
11174         dealing with FTP.
11175
11176 1997-01-18  Hrvoje Niksic  <hniksic@srce.hr>
11177
11178         * retr.c (retrieve_url): New variable location_changed; use it for
11179         tests instead of mynewloc.
11180         (retrieve_url): Allow heuristic adding of html.
11181
11182         * url.c (url_filename): Don't use the `%' in Windows file names.
11183
11184         * http.c (http_loop): Always time-stamp the local file.
11185
11186         * http.c (http_loop): Ditto.
11187
11188         * ftp.c (ftp_retrieve_list): Use it.
11189
11190         * utils.c (my_touch): New function.
11191
11192         * ftp.c (ftp_retrieve_list): Use #ifdef HAVE_STRUCT_UTIMBUF
11193         instead of #ifndef NeXT.
11194
11195         * utils.c (strptime): New version, by Ulrich Drepper.
11196
11197 1997-01-17  Hrvoje Niksic  <hniksic@srce.hr>
11198
11199         * http.c (haccepts_none): Renamed from `haccepts_bytes'.
11200         (gethttp): If haccepts_none(), disable ACCEPTRANGES.
11201         (http_loop): Would remove ACCEPTRANGES.
11202
11203         * ftp.c (getftp): Call ftp_list with NULL.
11204
11205 1997-01-15  Hrvoje Niksic  <hniksic@srce.hr>
11206
11207         * html.c (ftp_index): Don't print minutes and seconds if we don't
11208         know them; beautify the output.
11209
11210         * ftp.c (getftp): Don't close the socket on FTPNSFOD.
11211
11212 1997-01-14  Hrvoje Niksic  <hniksic@srce.hr>
11213
11214         * utils.c (strptime): New function.
11215         (strptime): Don't use get_alt_number.
11216         (strptime): Don't use locale.
11217         (match_string): Made it a function.
11218
11219 1997-01-12  Hrvoje Niksic  <hniksic@srce.hr>
11220
11221         * http.c (http_atotm): New function.
11222         (http_loop): Use it.
11223
11224         * atotm.c: Removed from the distribution.
11225
11226         * http.c (base64_encode_line): Rewrite.
11227
11228 1997-01-09  Hrvoje Niksic  <hniksic@srce.hr>
11229
11230         * ftp.c (getftp): Use ftp_expected_bytes; print size.
11231
11232         * ftp-basic.c (ftp_response): Use ftp_last_respline.
11233         (ftp_expected_bytes): New function.
11234
11235         * ftp.c (getftp): Print the unauthoritative file length.
11236
11237         * ftp-ls.c: Renamed from ftp-unix.c.
11238         (ftp_parse_ls): Moved from ftp.c.
11239         (ftp_parse_unix_ls): Recognize seconds in time spec.
11240         (ftp_parse_unix_ls): Recognize year-less dates of the previous
11241         year.
11242
11243 1997-01-08  Hrvoje Niksic  <hniksic@srce.hr>
11244
11245         * ftp-basic.c: Don't declare errno if #defined.
11246
11247         * host.c (ftp_getaddress): Check for sysinfo legally.
11248
11249 1997-01-08  Darko Budor  <dbudor@diana.zems.fer.hr>
11250
11251         * connect.c (iread): Use READ.
11252
11253 1996-12-23  Hrvoje Niksic  <hniksic@srce.hr>
11254
11255         * url.c: Recognize finger, rlogin, tn3270, mid and cid as valid
11256         schemes.
11257
11258 1996-12-22  Hrvoje Niksic  <hniksic@srce.hr>
11259
11260         * host.c (ftp_getaddress): Allow `.' in hostname.
11261
11262 1996-12-26  Darko Budor <dbudor@zems.fer.hr>
11263
11264         * wget.h: READ and WRITE macros for use instead of read and write
11265         on sockets, grep READ *.c, grep WRITE *.c
11266
11267         * wsstartup.c: new file - startup for winsock
11268
11269         * wsstartup.h: new file
11270
11271         * win32decl.h: new file - fixup for <errno.h> and winsock trouble
11272
11273         * configure.bat: Configure utility for MSVC
11274
11275         * src/Makefile.ms,config.h.ms: new files for use with MSVC 4.x
11276
11277 1996-12-22  Hrvoje Niksic  <hniksic@srce.hr>
11278
11279         * version.c: Released 1.4.3-pre.
11280
11281         * utils.c (prnum): Accept long.
11282         (legible): Use prnum().
11283
11284         * connect.c (make_connection): Accept port as short.
11285         (bindport): Ditto.
11286
11287         * http.c (gethttp): Use search_netrc.
11288
11289 1996-12-21  Hrvoje Niksic  <hniksic@srce.hr>
11290
11291         * ftp.c (getftp): Use search_netrc.
11292
11293         * netrc.c (free_netrc): New function.
11294
11295         * init.c (home_dir): New function.
11296
11297         * url.c (convert_links): Allow REL2ABS changes.
11298
11299 1996-12-21  Gordon Matzigkeit  <gord@gnu.ai.mit.edu>
11300
11301         * netrc.c: New file.
11302         (parse_netrc, maybe_add_to_list): New functions.
11303
11304 1996-12-17  Hrvoje Niksic  <hniksic@srce.hr>
11305
11306         * retr.c (retrieve_url): Reset opt.recursion before calling
11307         ftp_loop if it is reached through newloc.
11308
11309         * init.c (run_wgetrc): Print the wgetrc path too, when reporting
11310         error; don't use "Syntax error", since we don't know if it is
11311         really a syntax error.
11312
11313 1996-12-16  Hrvoje Niksic  <hniksic@srce.hr>
11314
11315         * utils.c (acceptable): Extract the filename part of the path.
11316
11317         * recur.c (recursive_retrieve): Call acceptable() with the right
11318         argument; would bug out on wildcards.
11319
11320         * init.c (parse_line): Likewise.
11321
11322         * html.c (htmlfindurl): Cast to char * when calling stuff.
11323
11324 1996-12-15  Hrvoje Niksic  <hniksic@srce.hr>
11325
11326         * ftp.c (getftp): Use ftp_pasv.
11327
11328         * ftp-basic.c (ftp_request): Accept NULL value.
11329         (ftp_pasv): New function.
11330
11331         * options.h (struct options): Add passive FTP option.
11332
11333 1996-12-15  Hrvoje Niksic  <hniksic@srce.hr>
11334
11335         * url.c (parseurl): Debug output.
11336
11337         * utils.c (path_simplify): New one, adapted from bash's
11338         canonicalize_pathname().
11339
11340 1996-12-14  Hrvoje Niksic  <hniksic@srce.hr>
11341
11342         * ftp.c (getftp): Don't discard the buffer.
11343
11344         * retr.c (get_contents): New parameter nobuf.
11345
11346 1996-12-13  Shawn McHorse  <riffraff@txdirect.net>
11347
11348         * html.c (htmlfindurl): Recognize <meta contents="d; URL=...".
11349
11350         * init.c (setval): Strip the trailing slashes on CVECDIR.
11351
11352 1996-12-13  Hrvoje Niksic  <hniksic@srce.hr>
11353
11354         * init.c: Make excludes and includes under CVECDIR instead of
11355         CVEC.
11356
11357 1996-12-13  Shawn McHorse  <riffraff@txdirect.net>
11358
11359         * url.c (get_urls_html): Skip "http:".
11360
11361 1996-12-13  Hrvoje Niksic  <hniksic@srce.hr>
11362
11363         * utils.c (strcasecmp): From glibc.
11364         (strncasecmp): Also.
11365         (strstr): Also.
11366
11367         * url.c: Added javascript: to the list of URLs prefixes.
11368
11369 1996-12-12  Shawn McHorse  <riffraff@txdirect.net>
11370
11371         * recur.c (retrieve_robots): Print the warning message only if
11372         verbose.
11373
11374 1996-12-12  Gregor Hoffleit  <flight@mathi.uni-heidelberg.DE>
11375
11376         * ftp.c (ftp_retrieve_list): Use NeXT old utime interface.
11377
11378 1996-12-12  Hrvoje Niksic  <hniksic@srce.hr>
11379
11380         * systhings.h: New file.
11381
11382         * ../configure.in: Check for utime.h
11383
11384         * ftp.c: Check whether we have unistd.h.
11385
11386 1996-11-27  Hrvoje Niksic  <hniksic@srce.hr>
11387
11388         * recur.c (recursive_retrieve): Send the canonical URL as referer.
11389         (recursive_retrieve): Call get_urls_html with the canonical URL.
11390
11391 1996-12-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11392
11393         * (configure.in, config.h.in, src/Makefile.in, src/*.[ch]): Add
11394         ansi2knr support for compilers which don't support ANSI style
11395         function prototypes and signatures.
11396
11397         * (aclocal.m4, src/ansi2knr.c, src/ansi2knr.1): New files.
11398
11399 1996-11-26  Hrvoje Niksic  <hniksic@srce.hr>
11400
11401         * url.c: Use it; Recognize paths ending with "." and ".." as
11402         directories.
11403         (url_filename): Append .n whenever file exists and could be a
11404         directory.
11405
11406         * url.h (ISDDOT): New macro.
11407
11408         * init.c (parse_line): Use unsigned char.
11409
11410         * url.c (get_urls_html): Cast to unsigned char * when calling
11411         htmlfindurl.
11412
11413         * html.c (htmlfindurl): Use unsigned char.
11414
11415         * version.c: Changed version to 1.4.3.
11416
11417 1996-11-25  Hrvoje Niksic  <hniksic@srce.hr>
11418
11419         * version.c: Released 1.4.2.
11420
11421         * ftp.c (getftp): Simplified assertion.
11422         (ftp_loop_internal): Remove symlink before downloading.
11423         (ftp_retrieve_list): Unlink the symlink name before attempting to
11424         create a symlink!
11425
11426         * options.h (struct options): Renamed print_server_response to
11427         server_response.
11428
11429         * ftp.c (rel_constr): Removed.
11430         (ftp_retrieve_list): Don't use it.
11431         (ftp_retrieve_list): Use opt.retr_symlinks.
11432
11433 1996-11-24  Hrvoje Niksic  <hniksic@srce.hr>
11434
11435         * main.c (main): New option retr_symlinks.
11436
11437         * url.c (convert_links): Print verbose message.
11438
11439 1996-11-24  Hrvoje Niksic  <hniksic@srce.hr>
11440
11441         * http.c (http_loop): Reset newloc in the beginning of function;
11442         would cause FMR in retrieve_url.
11443
11444 1996-11-23  Hrvoje Niksic  <hniksic@srce.hr>
11445
11446         * recur.c (convert_all_links): Find the URL of each HTML document,
11447         and feed it to get_urls_html; would bug out.
11448         (convert_all_links): Check for l2 instead of dl; removed dl.
11449
11450         * url.c (convert_links): Don't refer to freed newname.
11451
11452         * recur.c (recursive_retrieve): Add this_url to urls_downloaded.
11453
11454         * main.c (main): Print the OS_TYPE in the debug output, too.
11455
11456         * recur.c (recursive_retrieve): Check for opt.delete_after.
11457
11458         * main.c (main): New option delete-after.
11459
11460         * init.c (setval): Cleaned up.
11461
11462 1996-11-21  Hrvoje Niksic  <hniksic@srce.hr>
11463
11464         * Makefile.in (wget): Make `wget' the default target.
11465
11466         * ftp.c (ftp_loop_internal): Move noclobber checking out of the
11467         loop.
11468         (ftp_retrieve_list): Warn about non-matching sizes.
11469
11470         * http.c (http_loop): Made -nc non-dependent on opt.recursive.
11471
11472         * init.c (setnum): Renamed from setnuminf; New argument flags.
11473         (setval): Use it.
11474
11475         * main.c (main): Sorted the options.
11476         (main): New option --wait.
11477
11478 1996-11-21  Shawn McHorse  <riffraff@txdirect.net>
11479
11480         * html.c (htmlfindurl): Reset s->in_quote after getting out of
11481         quotes.
11482
11483 1996-11-20  Hrvoje Niksic  <hniksic@srce.hr>
11484
11485         * version.c: Changed version to 1.4.2.
11486
11487 1996-11-20  Hrvoje Niksic  <hniksic@srce.hr>
11488
11489         * version.c: Released 1.4.1.
11490
11491         * html.c (html_quote_string): New function.
11492         (ftp_index): Use it.
11493         (htmlfindurl): A more gentle ending debug message.
11494
11495         * ftp.c (ftp_loop): Check for opt.htmlify.
11496
11497         * init.c: New command htmlify.
11498
11499         * ftp.c (getftp): Nicer error messages, with `'-encapsulated
11500         strings.
11501         (ftp_loop): Print size of index.html.
11502
11503         * init.c (setval): Implement "styles".
11504
11505         * main.c (main): New option dotstyle.
11506
11507 1996-11-19  Hrvoje Niksic  <hniksic@srce.hr>
11508
11509         * ftp.c (getftp): Close the master socket in case of errors, after
11510         bindport().
11511
11512         * connect.c (bindport): Initialize msock to -1.
11513
11514         * ftp.c (getftp): Initialize dtsock to -1.
11515
11516         * connect.c (closeport): Don't close sock if sock == -1.
11517
11518 1996-11-18  Hrvoje Niksic  <hniksic@srce.hr>
11519
11520         * init.c (setnuminf): Nuked default value -- just leave unchanged.
11521         (setval): Don't send default values.
11522         (defaults): Use DEFAULT_TIMEOUT -- aaargh.
11523
11524         * options.h (struct options): Use long for dot_bytes.
11525
11526         * init.c (setquota): Renamed to setbytes.
11527         (setval): Use setbytes on DOTBYTES.
11528
11529 1996-11-17  Hrvoje Niksic  <hniksic@srce.hr>
11530
11531         * ftp.c (getftp): Initialize con->dltime.
11532
11533         * recur.c (recursive_retrieve): Use same_host instead of
11534         try_robots; simply load robots_txt whenever the host is changed.
11535         (recursive_retrieve): Free forbidden before calling parse_robots.
11536
11537 1996-11-16  Hrvoje Niksic  <hniksic@srce.hr>
11538
11539         * retr.c (show_progress): Use them.
11540
11541         * options.h (struct options): New options dot_bytes, dots_on_line
11542         and dot_spacing.
11543
11544 1996-11-16  Mark Boyns  <boyns@sdsu.edu>
11545
11546         * recur.c (recursive_retrieve): Retrieve directories regardless of
11547         acc/rej rules; check for empty u->file.
11548
11549 1996-11-14  Hrvoje Niksic  <hniksic@srce.hr>
11550
11551         * init.c (setval): Use it.
11552
11553         * utils.c (merge_vecs): New function.
11554
11555         * init.c (setval): Reset the list-type functions when encountering
11556         "".
11557
11558 1996-11-14  Shawn McHorse  <riffraff@txdirect.net>
11559
11560         * recur.c (recursive_retrieve): Use base_url instead of this_url
11561         for no_parent.
11562
11563 1996-11-14  Shawn McHorse  <riffraff@txdirect.net>
11564
11565         * html.c (htmlfindurl): Reset s->in_quote after exiting the quote.
11566
11567 1996-11-13  Hrvoje Niksic  <hniksic@srce.hr>
11568
11569         * utils.c (sepstring): Rewrote; don't use strtok.
11570
11571         * recur.c (recursive_retrieve): Enter assorted this_url to slist
11572         when running the first time.
11573         (retrieve_robots): Warn to ignore errors when robots are loaded.
11574
11575         * utils.c (load_file): Moved from url.c.
11576
11577         * http.c: Made static variables const too in h* functions.
11578
11579         * main.c (main): Renamed --continue-ftp to --continue.
11580
11581         * recur.c (recursive_retrieve): Use it.
11582
11583         * utils.c (frontcmp): New function.
11584
11585         * url.c (accdir): New function.
11586
11587         * html.c (htmlfindurl): Recognize <area href=...>.
11588
11589         * ftp.c (ftp_retrieve_dirs): Implemented opt.includes.
11590
11591         * init.c (setval): Free the existing opt.excludes and
11592         opt.includes, if available.
11593
11594         * main.c (main): New option -I.
11595
11596 1996-11-12  Hrvoje Niksic  <hniksic@srce.hr>
11597
11598         * ftp.c (ftp_retrieve_glob): Do not weed out directories.
11599
11600         * version.c: Changed version to 1.4.1.
11601
11602 1996-11-11  Hrvoje Niksic  <hniksic@srce.hr>
11603
11604         * version.c: Released 1.4.0.
11605
11606 1996-11-10  Hrvoje Niksic  <hniksic@srce.hr>
11607
11608         * main.c (main): Free com and val after parse_line.
11609         (printhelp): Reorder the listing.
11610
11611         * http.c: More robust header parsing.
11612
11613         * http.c: Allow any number of spaces, or no spaces, precede ':'.
11614         (hskip_lws): New function.
11615         (haccepts_bytes): New function.
11616         (gethttp): Use it.
11617
11618         * init.c (setval): Check header sanity.
11619         (setval): Allow resetting of headers.
11620
11621 1996-11-10  Hrvoje Niksic  <hniksic@srce.hr>
11622
11623         * http.c (http_loop): Don't use has_wildcards.
11624
11625         * http.c (gethttp): Free all_headers -- would leak.
11626
11627         * recur.c (recursive_retrieve): Initialize depth to 1 instead of
11628         0 -- this fixes a long-standing bug in -rl.
11629
11630 1996-11-09  Hrvoje Niksic  <hniksic@srce.hr>
11631
11632         * ftp.c: Use -1 as "impossible" value for con->fd.
11633
11634         * url.h (URL_SEPARATOR): Don't treat `*' and `+' as separators.
11635
11636         * init.c (parse_line): Use isalpha.
11637
11638         * ftp-unix.c: Use HAVE_UNISTD_H.
11639
11640         * mtch.c (has_wildcards): Don't match \.
11641
11642         * http.c (http_loop): Warn on HTTP wildcard usage.
11643
11644 1996-11-08  Hrvoje Niksic  <hniksic@srce.hr>
11645
11646         * url.c (url_filename): Do not create numbered suffixes if
11647         opt.noclobber -- would bug out on -nc.
11648
11649 1996-11-07  Hrvoje Niksic  <hniksic@srce.hr>
11650
11651         * recur.c (parse_robots): Don't chuck out the commands without
11652         arguments (`Disallow:<empty>' didn't work).
11653         (parse_robots): Compare versions lowercase.
11654         (parse_robots): Match on base_version, not version_string!
11655         (parse_robots): Handle comments properly.
11656         (parse_robots): Match versions in a sane way.
11657
11658         * init.c: Print nicer error messages.
11659
11660         * version.c: Changed version to 1.4.0.
11661
11662 1996-11-06  Hrvoje Niksic  <hniksic@srce.hr>
11663
11664         * version.c: Released 1.4.0-test2.
11665
11666         * init.c (run_wgetrc): Close fp.
11667
11668         * ftp.c (ftp_retrieve_dirs): Allocate the correct length for
11669         u->dir.
11670
11671 1996-11-06  Hrvoje Niksic  <hniksic@srce.hr>
11672
11673         * init.c (setquota): Allow inf as quota specification.
11674
11675 1996-11-05  Hrvoje Niksic  <hniksic@srce.hr>
11676
11677         * ftp.c (ftp_retrieve_dirs): Return QUOTEXC if quota exceeded.
11678         (ftp_retrieve_glob): Return QUOTEXC on quota exceeded.
11679
11680         * main.c (main): Check for quota by comparison with downloaded
11681         stuff, not from status.
11682
11683         * connect.c (select_fd): Should compile on HPUX without warnings now.
11684
11685         * ftp.c (ftp_get_listing): Check whether ftp_loop_internal
11686         returned RETROK.
11687
11688 1996-11-04  Hrvoje Niksic  <hniksic@srce.hr>
11689
11690         * ftp.c (ftp_retrieve_glob): Print the pattern nicely.
11691         (getftp): Return FTPRETRINT on control connection error.
11692
11693         * html.c (htmlfindurl): Recognize <embed src=...> and
11694         <bgsound src=...>.
11695         (ftp_index): Handle username and password correctly.
11696
11697         * main.c (main): Made `-np' a synonim for --no-parent.
11698
11699 1996-11-02  Hrvoje Niksic  <hniksic@srce.hr>
11700
11701         * ftp.c (ftp_loop): Check for opt.ftp_glob too before calling
11702         ftp_retrieve_glob.
11703
11704         * version.c: Changed version to 1.4.0-test2.
11705
11706 1996-11-02  Hrvoje Niksic  <hniksic@srce.hr>
11707
11708         * version.c: Released 1.4.0-test1.
11709
11710         * url.c (str_url): Don't use sprintf when creating %2F-prefixed
11711         directory.
11712         (convert_links): Removed definition of make_backup.
11713
11714         * http.h: Removed definition of MAX_ERROR_LENGTH.
11715
11716         * host.c (ftp_getaddress): Check for "(none)" domains.
11717
11718         * ftp.c (ftp_retrieve_dirs): Docfix.
11719
11720         * http.c (gethttp): Use ou->referer instead of u->referer.
11721
11722         * retr.c (retrieve_url): Reset u to avoid freeing pointers twice;
11723         this was known to cause coredumps on Linux.
11724
11725         * html.c (ftp_index): Cast the argument to local_time to time_t *.
11726
11727 1996-11-01  Hrvoje Niksic  <hniksic@srce.hr>
11728
11729         * connect.c (select_fd): Use exceptfds -- once and for all.
11730
11731         * retr.c (retrieve_from_file): Free filename after
11732         recursive_retrieve.
11733         (retrieve_from_file): Send RFIRST_TIME to recursive_retrieve on
11734         first-time retrieval.
11735         (retrieve_from_file): Return uerr_t; new argument, count.
11736         (retrieve_from_file): Break on QUOTEXC.
11737
11738         * init.c (setquota): Fixed a bug that caused rejection of
11739         non-postfixed values..
11740
11741 1996-10-30  Hrvoje Niksic  <hniksic@srce.hr>
11742
11743         * version.c: Changed name to wget.
11744
11745         * connect.c (iread): Smarter use of select.
11746         (select_fd): Set errno on timeout.  If not timeout, return 1
11747         instead of 0.
11748
11749 1996-10-29  Hrvoje Niksic  <hniksic@srce.hr>
11750
11751         * ftp.c (ftp_loop_internal): Don't use con->cmd before
11752         establishing it.
11753
11754 1996-10-26  Hrvoje Niksic  <hniksic@srce.hr>
11755
11756         * http.c (gethttp): Send correct referer when using proxy.
11757         (gethttp): Use struct urlinfo ou to access the relevant data; send
11758         correct authorization in all cases.
11759
11760         * host.c (same_host): Use skip_uname to skip username and
11761         password.
11762
11763         * url.c (skip_uname): New function.
11764         (parseurl): Use it.
11765
11766         * host.c (same_host): Do not assume HTTP -- same_host should now
11767         be totally foolproof.
11768
11769         * url.c (skip_proto): New function.
11770         (parse_uname): Use it.
11771
11772         * http.c (gethttp): Create local user and passwd from what is
11773         given.
11774
11775         * url.c (parseurl): Check for HTTP username and password too.
11776
11777 1996-10-25  Hrvoje Niksic  <hniksic@srce.hr>
11778
11779         * config.h.in: Removed #define gethostbyname R...
11780
11781 1996-10-22  Hrvoje Niksic  <hniksic@srce.hr>
11782
11783         * version.c: Changed version to 1.4.0-test1.
11784
11785 1996-10-21  Hrvoje Niksic  <hniksic@srce.hr>
11786
11787         * version.c: "Released" 1.4b29.
11788
11789         * recur.c (recursive_retrieve): Check for no_parent.
11790
11791         * init.c (setval): Option update.
11792
11793         * main.c (main): New option no-parent.
11794
11795         * options.h (struct options): New variable no_parent.
11796
11797         * recur.c (recursive_retrieve): Only files are checked for
11798         opt.accepts and opt.rejects.
11799         (recursive_retrieve): Check directories for opt.excludes.
11800         (recursive_retrieve): Make the dir absolute when checking
11801         opt.excludes.
11802
11803         * html.c (htmlfindurl): Recognize <applet code=...> and <script
11804         src=...>
11805
11806 1996-10-18  Hrvoje Niksic  <hniksic@srce.hr>
11807
11808         * ftp.c (getftp): Do not line-break assert entries at all.
11809         (ftp_retrieve_dirs): docfix.
11810
11811         * connect.c (select_fd): Use fd + 1 as nfds.
11812
11813         * version.c: Changed version to 1.4b29.
11814
11815 1996-10-18  Hrvoje Niksic  <hniksic@srce.hr>
11816
11817         * version.c: "Released" 1.4b28.
11818
11819         * ftp.c (ftp_loop_internal): Check whether f->size == len and
11820         don't continue the loop if it is.
11821         (ftp_get_listing): Remove list_filename on unsuccesful loop.
11822
11823 1996-10-17  Hrvoje Niksic  <hniksic@srce.hr>
11824
11825         * ftp.c (ftp_loop_internal): Use strcpy to initialize tmp.
11826         (getftp): Do not use multiline assert.
11827
11828         * http.c (hparsestatline): Use mjr and mnr instead of major and
11829         minor, which don't compile on Ultrix.
11830         (http_loop): Use strcpy() to initialize tmp.
11831
11832         * all: Geturl -> Fetch
11833
11834 1996-10-17  Hrvoje Niksic  <hniksic@srce.hr>
11835
11836         * recur.c (parse_robots): Fixed an off-by-one bug when looking for
11837         ':'.
11838
11839         * html.c (htmlfindurl): Fixed several possible off-by-one bugs by
11840         moving `bufsize &&' to the beginning of each check in for-loops.
11841
11842         * recur.c (parse_robots): Close fp on exit.
11843
11844         * url.c (mymkdir): Check for each directory before creating.
11845
11846 1996-10-16  Hrvoje Niksic  <hniksic@srce.hr>
11847
11848         * version.c: Changed version to 1.4b28.
11849
11850 1996-10-16  Hrvoje Niksic  <hniksic@srce.hr>
11851
11852         * version.c: "Released" 1.4b27.
11853
11854         * init.c (parse_line): Use isspace.
11855         (parse_line): Free *com on all errors.
11856
11857         * ftp.c (ftp_loop): Change FTPOK to RETROK before exiting.
11858         (delelement): Use next instead of f->next and prev instead of
11859         f->prev.
11860         (delelement): Free the members of the deleted element.
11861
11862         * http.c (http_loop): Do not return RETROK on code != 20x.
11863
11864         * init.c (cleanup): Free opt.user_header.
11865         (cleanup): Free opt.domains.
11866
11867         * url.c (freelists): Moved to cleanup().
11868
11869         * http.c (hparsestatline): Docfix.
11870
11871         * main.c (main): Return with error status on unsuccesful
11872         retrieval.
11873
11874         * init.c (setval): Do not remove listing when mirroring.
11875
11876         * url.c (url_filename): Use opt.fileprefix.
11877
11878         * ftp.c (ftp_get_listing): Use url_filename to get filename for
11879         .listing.
11880
11881         * main.c (main): New option: -rn.
11882
11883 1996-10-15  Hrvoje Niksic  <hniksic@srce.hr>
11884
11885         * Makefile.in (RM): Added RM = rm -f.
11886
11887         * host.c (clean_hosts): New function.
11888         (free_hlist): Just free the list, no reset.
11889
11890         * version.c: Changed version to 1.4b27.
11891
11892 1996-10-13  Hrvoje Niksic  <hniksic@srce.hr>
11893
11894         * version.c: "Released" 1.4b26.
11895
11896         * retr.c (retrieve_from_file): If call get_urls_html with
11897         opt.spider to make it silent in spider mode.
11898
11899         * url.c (str_url): Use CLEANDUP instead of URL_CLEANSE.
11900
11901         * url.h (CLEANDUP): New macro.
11902
11903         * http.c (gethttp): Fixed a bug that freed location only when it
11904         was NULL.
11905
11906         * retr.c (retrieve_url): Free url if it will not be stored,
11907         i.e. newloc is NULL.
11908
11909         * html.c (htmlfindurl): Handle exiting from quotes correctly; the
11910         old version would bug out on <a href="x#a"href="y">.
11911
11912         * html.h (state_t): New member in_quote.
11913
11914         * html.c (htmlfindurl): Free s->attr at the beginning of
11915         attr-loop.
11916
11917         * recur.c (recursive_retrieve): Recognize RCLEANUP.
11918         (tried_robots): Make hosts a global variable.
11919         (recursive_retrieve): Free constr after URL host optimization.
11920         (tried_robots): Free urlinfo before exiting.
11921
11922         * utils.c (free_slist): New function.
11923
11924         * recur.c (recursive_retrieve): Use flags to add cleanup
11925         possibility.
11926
11927         * main.c (main): Free filename after recursive_retrieve.
11928
11929         * http.c (gethttp): Store successful responses too.
11930
11931 1996-10-12  Hrvoje Niksic  <hniksic@srce.hr>
11932
11933         * all: Constified the whole source.  This required some minor
11934         changes in many functions in url.c, possibly introducing bugs -- I
11935         hope not.
11936
11937         * ftp-basic.c: Removed last_respline.
11938
11939         * http.c (gethttp): Free type.
11940
11941         * host.c (same_host): Free real1 and real2.
11942
11943         * main.c (main): New option --spider.
11944
11945         * retr.c (get_contents): Don't reset errno.
11946
11947         * main.c (main): Sorted the options.
11948
11949         * connect.c (iread): Set errno to ETIMEDOUT only if it was left
11950         uninitialized by select().
11951
11952         * http.c (http_loop): Print the time when the connection is
11953         closed.
11954         (gethttp): Debug-print the HTTP request.
11955
11956 1996-10-11  Hrvoje Niksic  <hniksic@srce.hr>
11957
11958         * connect.c (iread): Do not try reading after timeout.
11959
11960         * main.c (main): Would bug out on -T.
11961
11962         * connect.c (select_fd): Do not use exceptfds.
11963         (iread): Set ETIMEDOUT on select_fd <= 0.
11964
11965         * version.c: Changed version to 1.4b26.
11966
11967 1996-10-10  Hrvoje Niksic  <hniksic@srce.hr>
11968
11969         * version.c: "Released" 1.4b25.
11970
11971         * ftp-unix.c (ftp_parse_unix_ls): Ignore lines without file name
11972         or link name.
11973
11974         * http.c (gethttp): Add errcode to struct hstat.
11975         (http_loop): Use it.
11976
11977         * url.c (no_proxy_match): Simplify using char** for no_proxy.
11978
11979         * options.h (struct options): Make opt.no_proxy a vector.
11980
11981         * utils.c (sepstring): Use !*s instead of !strlen(s).
11982
11983         * init.c (setval): Set opt.maxreclevel to 0 on --mirror.
11984         (getperms): Use ISODIGIT instead of isdigit.
11985
11986         * ftp.c (getftp): Print time.
11987
11988         * main.c (main): Use legible output of downloaded quantity.
11989
11990         * ftp.c (getftp): Use elapsed_time().
11991         (ftp_loop_internal): Use rate().
11992
11993         * http.c (http_loop): Add download ratio output; Use rate().
11994
11995         * utils.c (rate): New function.
11996
11997 1996-10-09  Hrvoje Niksic  <hniksic@srce.hr>
11998
11999         * http.c (http_loop): Use timer.
12000
12001         * ftp.c: Split to ftp-basic.c and ftp.c
12002
12003         * utils.c (reset_timer): New function.
12004         (elapsed_time): New function.
12005
12006         * retr.c (show_progress): Make bytes_in_line and offs long; should
12007         work on 16-bit machines.
12008
12009 1996-10-08  Hrvoje Niksic  <hniksic@srce.hr>
12010
12011         * url.c (in_acclist): New argument backward.
12012
12013         * ftp.c (ftp_retrieve_glob): Use acceptable() to determine whether
12014         a file should be retrieved according to suffix.
12015         (ftp_get_listing): Check the return value of unlink; Do not call
12016         ftp_retrieve_dirs if depth reached maxreclevel.
12017         (ftp_retrieve_dirs): Check whether the directory is in
12018         exclude-list.
12019
12020         * main.c (main): Print the version number at the beginning of
12021         DEBUG output.
12022         (main): Use strrchr when creating exec_name.
12023
12024         * ftp.c (ftp_retrieve_glob): Do not close control connection.
12025
12026         * version.c: Changed version to 1.4b25.
12027
12028 1996-10-07  Hrvoje Niksic  <hniksic@srce.hr>
12029
12030         * version.c: "Released" 1.4b24.
12031
12032         * Makefile.in: Rewrite.
12033
12034         * ftp.c (ftp_loop_internal): Likewise.
12035
12036         * retr.c (time_str): Check for failed time().
12037
12038         * html.c (htmlfindurl): Recognize <fig src> and <overlay src> from
12039         HTML3.0.
12040
12041         * retr.c (time_str): Return time_t *.
12042
12043         * connect.c (bindport): Close msock on unsuccesful bind.
12044         (bindport): The same for getsockname and listen.
12045
12046         * retr.c (retrieve_url): Allow any number of retries on
12047         proxy.
12048
12049         * http.c (gethttp): Do not treat errno == 0 as timeout.
12050         (http_loop): Likewise.
12051         (http_loop): Cosmetic changes.
12052
12053         * connect.c (iread): Set errno to ETIMEDOUT in case of timeout.
12054
12055         * retr.c (get_contents): Reset errno.
12056
12057         * ftp.c (getftp): Minor fixes.
12058
12059 1996-10-06  Hrvoje Niksic  <hniksic@srce.hr>
12060
12061         * http.c: Do not use backups.
12062
12063         * geturl.1 (WARNING): Warn that man-page could be obsolete.
12064
12065         * getopt.c (getopt_long): Moved to getopt.c
12066
12067         * geturl.texi: Enhanced.
12068
12069         * main.c (main): Use it.
12070
12071         * recur.c (convert_all_links): New function.
12072
12073         * utils.c (add_slist): New argument flags.
12074
12075         * recur.c (recursive_retrieve): Update a list of downloaded URLs.
12076         (parse_robots): Do not chuck out empty value fields.
12077         (parse_robots): Make yourself welcome on empty Disallow.
12078
12079         * version.c: Changed version to 1.4b24.
12080
12081 1996-10-06  Hrvoje Niksic  <hniksic@srce.hr>
12082
12083         * version.c: "Released" 1.4b23.
12084
12085         * ftp.c (ftp_loop_internal): Get the time after getftp.
12086
12087         * Makefile.in (install.info): New target.
12088         (install): Use it.
12089
12090         * http.c (http_loop): Fix output when doing -O.
12091
12092 1996-10-05  Hrvoje Niksic  <hniksic@srce.hr>
12093
12094         * geturl.texi: New file.
12095
12096         * main.c (main): Do not print the warnings and download summary if
12097         opt.quiet is set.
12098
12099         * version.c: Changed version to 1.4b23.
12100
12101 1996-10-05  Hrvoje Niksic  <hniksic@srce.hr>
12102
12103         * "Released" 1.4b22.
12104
12105         * atotm.c (atotm): Use True and False instead of TRUE and FALSE,
12106         to avoid redefinition warnings.
12107
12108         * host.c (store_hostaddress): Use memcpy() to copy the address
12109         returned by inet_addr.
12110
12111         * version.c: Changed version to 1.4b22.
12112
12113 1996-10-04  Hrvoje Niksic  <hniksic@srce.hr>
12114
12115         * version.c: "Released" 1.4b21.
12116
12117         * ftp-unix.c (ftp_parse_ls): Renamed to ftp_parse_unix_ls.
12118
12119         * ftp.c (ftp_port): Use conaddr.
12120         (getftp): Print the file length.
12121         (ftp_retrieve_list): Check the stamps of plain files only.
12122
12123         * connect.c (closeport): Do not call shutdown().
12124         (conaddr): New function.
12125
12126         * html.c (ftp_index): Made it dfp-aware.
12127
12128         * init.c (cleanup): New name of freemem. Close opt.dfp.
12129
12130         * ftp.c (getftp): Use opt.dfp if it is set.
12131
12132         * ftp-unix.c (ftp_parse_ls): Recognize time in h:mm format.
12133
12134         * ftp.c (ftp_retrieve_dirs): Fixed a bug that caused incorrect
12135         CWDs to be sent with recursive FTP retrievals.
12136
12137 1996-10-03  Hrvoje Niksic  <hniksic@srce.hr>
12138
12139         * recur.c (parse_robots): Made it more compliant with "official"
12140         specifications.
12141
12142         * http.c: New function.
12143
12144         * ftp-unix.c (ftp_parse_ls): Added better debug output.
12145
12146         * ftp.c (getftp): Print out the LIST in case of
12147         opt.print_server_response.
12148
12149         * version.c: Changed version to 1.4b21.
12150
12151 1996-10-01  Hrvoje Niksic  <hniksic@srce.hr>
12152
12153         * version.c: "Released" 1.4b20.
12154
12155         * README: Update.
12156
12157         * http.c (gethttp): Preset lengths of various headers instead of
12158         calculating them dynamically.
12159         (gethttp): Check for 206 partial contents.
12160
12161 1996-09-30  Hrvoje Niksic  <hniksic@srce.hr>
12162
12163         * configure.in: Set SYSTEM_GETURLRC to $libdir/geturlrc
12164
12165         * http.c (gethttp): Send the port number in the Host: header.
12166
12167 1996-09-29  Hrvoje Niksic  <hniksic@srce.hr>
12168
12169         * http.c (gethttp): Send host: header.
12170         (gethttp): Add the possibility of user-defined headers.
12171         (gethttp): Move decision about pragma: no-cache to http_loop,
12172         where it belongs.
12173         (gethttp): Pass a struct instead of enormous argument list.
12174         (http_loop): Use a new, fancier display format.
12175         (ftp_loop): Likewise.
12176
12177         * main.c: (hangup): Turn off buffering of the new log file.
12178
12179         * install-sh: Likewise.
12180
12181         * config.sub: Replace with the one in autoconf-2.10
12182
12183         * geturl.1: Update.
12184
12185         * init.c: New options httpuser and httppasswd.
12186
12187         * http.c: (base64_encode_line): New function.
12188         (gethttp): Send authentication.
12189
12190         * connect.c (make_connection): Use store_hostaddress.
12191
12192 1996-09-28  Hrvoje Niksic  <hniksic@srce.hr>
12193
12194         * host.c (store_hostaddress): New function.
12195
12196         * NEWS: Update.
12197
12198         * http.c (hgetrange): New function.
12199         (gethttp): Use ranges.
12200
12201         * utils.c (numdigit): Accept long instead of int.
12202
12203         * http.c (http_loop): Add restart capabilities.
12204
12205         * ftp.c (ftp_retrieve_glob): Fixed a bug that could cause matchres
12206         being used uninitialized.
12207         (ftp_retrieve_list): Similar fix.
12208
12209         * host.c (add_hlist): Fixed a bug that could cause cmp being used
12210         uninitialized.
12211
12212         * url.c (construct_relative): New function.
12213
12214         * recur.c (recursive_retrieve): Use it.
12215
12216         * retr.c (convert_links): New function.
12217
12218 1996-09-27  Hrvoje Niksic  <hniksic@srce.hr>
12219
12220         * url.c (free_urlpos): New function.
12221
12222         * recur.c (recursive_retrieve): Adapt.
12223
12224         * url.c (get_urls_html): Return a linked list instead of a vector.
12225
12226         * url.c (get_urls_file): Return a linked list instead of a vector.
12227
12228         * geturl.1: Update.
12229
12230         * http.c (gethttp): Implement it.
12231
12232         * init.c (setval): New option: SAVEHEADERS
12233
12234         * ftp.c (ftp_loop_internal): Do not set restval if listing is to
12235         be retrieved. Lack of this test caused bugs when the connection
12236         was lost during listing.
12237
12238         * retr.c (retrieve_url): Fixed a bug that caused
12239         coredumps. *newloc is now reset by default.
12240         (retrieve_url): Lift the twenty-tries limit on proxies.
12241
12242         * version.c: Changed version to 1.4b20.
12243
12244 1996-09-20  Hrvoje Niksic  <hniksic@srce.hr>
12245
12246         * version.c: "Released" 1.4b19.
12247
12248 1996-09-19  Hrvoje Niksic  <hniksic@srce.hr>
12249
12250         * ftp.c (ftp_loop_internal): Renamed from ftp_1fl_loop.
12251         (getftp): Changed prototype to accept ccon *.
12252
12253 1996-09-17  Hrvoje Niksic  <hniksic@srce.hr>
12254
12255         * ftp.c (ftp_retrieve_list): Fixed a bug that caused setting
12256         incorrect values to files pointed to by symbolic links.
12257         (ftp_1fl_loop): Do not count listings among the downloaded URL-s.
12258
12259 1996-09-16  Hrvoje Niksic  <hniksic@srce.hr>
12260
12261         * url.c (mkstruct): Do not prepend "./" in front of a pathname.
12262
12263         * main.c (main): New option: --user-agent.
12264
12265         * geturl.1: Ditto.
12266
12267         * init.h: Ditto.
12268
12269         * init.c (setval): Ditto.
12270
12271         * main.c (main): Rename "server-headers" to "server-response".
12272
12273         * ftp-unix.c (ftp_parse_ls): Check for asterisks at the end of
12274         executables in 'ls -F' listings.
12275
12276 1996-09-15  Hrvoje Niksic  <hniksic@srce.hr>
12277
12278         * url.c (parseurl): Remove realloc() and sprintf().
12279         (str_url): Get rid of sprintf().
12280
12281         * recur.c (recursive_retrieve): Enable FTP recursion through proxy
12282         servers.
12283
12284         * url.h (URL_CLEANSE): Made it else-resistant.
12285         (USE_PROXY): New macro.
12286
12287 1996-09-14  Hrvoje Niksic  <hniksic@srce.hr>
12288
12289         * NEWS: Update.
12290
12291         * version.c: Changed version to 1.4b19.
12292
12293 1996-09-14  Hrvoje Niksic  <hniksic@srce.hr>
12294
12295         * version.c: "Released" 1.4b18.
12296
12297         * url.c: Made it reallocate space exponentially.
12298
12299 1996-09-14  Drazen Kacar  <dave@fly.cc.fer.hr>
12300
12301         * html.c (htmlfindurl): Added <frame src> and <iframe src> among
12302         the list of stuff to fetch.
12303
12304 1996-09-13  Hrvoje Niksic  <hniksic@srce.hr>
12305
12306         * url.c (get_urls_html): Fixed a bug that caused SIGSEGV's with
12307         -Fi.
12308
12309         * html.c (htmlfindurl): Rewrite.
12310
12311         * http.c (gethttp): Use opt.proxy_cache.
12312
12313         * main.c (main): Added --cache option.
12314
12315         * ftp.c (ftp_response): Print server response if opt.print_server
12316         response is set.
12317         (getftp): Print newlines after each request if the server response
12318         is to be printed.
12319         (ftp_response): Copy the last response line to last_respline.
12320
12321         * http.c (gethttp): Add Pragma: nocache for retried
12322         proxy-retrievals.
12323
12324         * ftp.c (getftp): Use it.
12325
12326         * retr.c (buf_discard): New function.
12327
12328         * ftp.c (ftp_response): Use buf_readchar().
12329         (getftp): Flush the control connection buffer before calling
12330         get_contents().
12331
12332         * retr.c (buf_readchar): New function.
12333         (buf_flush): New function.
12334         (get_contents): Use buf_readchar() instead of read(x, x, 1).
12335         (get_contents): Use buf_flush.
12336
12337 1996-09-12  Hrvoje Niksic  <hniksic@srce.hr>
12338
12339         * ftp.c: Incorporate changes to ftp_response.
12340
12341         * ftp.c (ftp_response): Allocate the server response dynamically,
12342         as in read_whole_line and fetch_next_header.
12343
12344         * utils.c (read_whole_line): Fixed a bug that prevented reading
12345         the last line if it is not \n-terminated. Also fixed a possible
12346         memory overflow.
12347
12348         * http.c (fetch_next_header): Return malloc-ed string as large as
12349         needed.
12350         (gethttp): Use new fetch_next_header.
12351
12352 1996-09-12  Hrvoje Niksic  <hniksic@srce.hr>
12353
12354         * http.c (hgetlen): Compute the header length the first time only.
12355         (hgettype): Ditto.
12356         (hgetlocation): Ditto.
12357         (hgetmodified): Ditto.
12358
12359 1996-09-11  Hrvoje Niksic  <hniksic@srce.hr>
12360
12361         * sample.geturlrc: Update.
12362
12363 1996-09-10  Hrvoje Niksic  <hniksic@srce.hr>
12364
12365         * http.c (http_loop): Ditto.
12366
12367         * ftp.c (getftp): Open the output file as binary.
12368
12369         * version.c: Changed version to 1.4b18.
12370
12371 1996-09-10  Hrvoje Niksic  <hniksic@srce.hr>
12372
12373         * version.c: "Released" 1.4b17.
12374
12375         * ftp-unix.c (ftp_parse_ls): If unable to open file, return NULL
12376         instead of failed assertion.
12377
12378 1996-09-09  Hrvoje Niksic  <hniksic@srce.hr>
12379
12380         * ftp.c (ftp_get_listing): Add a numbered suffix to LIST_FILENAME
12381         if a file of that name already exists.
12382
12383 1996-09-05  Hrvoje Niksic  <hniksic@srce.hr>
12384
12385         * ftp.c (ftp_1fl_loop): Handler FTPPORTERR and FOPENERR correctly.
12386
12387         * config.h.in: Define gethostbyname as Rgethostbyname when using
12388         Socks.
12389
12390         * configure.in: Check for -lresolv if using Socks.
12391
12392         * version.c: Changed version to 1.4b17.
12393
12394 1996-07-15  Hrvoje Niksic  <hniksic@srce.hr>
12395
12396         * version.c: "Released" 1.4b16.
12397
12398         * http.c (gethttp): More intelligent check for first line of HTTP
12399         response.
12400         (gethttp): Would bug out on time-stamping.
12401
12402         * version.c: Changed version to 1.4b16.
12403
12404 1996-07-11  Hrvoje Niksic  <hniksic@srce.hr>
12405
12406         * version.c: Released 1.4b15.
12407
12408         * http.c (http_loop): Print \n after the loop entry, not before.
12409
12410         * url.c (url_filename): Use ISDOT.
12411
12412         * url.h (ISDOT): New macro.
12413
12414         * recur.c (recursive_retrieve): Change only opt.recursive for
12415         following FTP.
12416
12417 1996-07-11  Antonio Rosella <antonio.rosella@agip.it>
12418
12419         * socks/geturl.cgi: Fixed version No.
12420
12421         * socks/download-netscape.html: Ditto.
12422
12423         * socks/download.html: Changed socks.html to download.html.
12424
12425 1996-07-11  Hrvoje Niksic  <hniksic@srce.hr>
12426
12427         * url.c (url_filename): Check for opt.dirstruct instead for
12428         opt.recursive && opt.dirstruct.
12429
12430         * init.c (defaults): Ditto.
12431         (defaults): Reset dirstruct by default.
12432         (setval): Set opt.dirstruct whenever setting recursive.
12433
12434         * init.h: Removed FORCEDIRHIER.
12435
12436         * INSTALL: Added -L to socks-description.
12437
12438         * version.c: Changed version to 1.4b15.
12439
12440 1996-07-10  Hrvoje Niksic  <hniksic@srce.hr>
12441
12442         * version.c: "Released" 1.4b14.
12443
12444         * geturl.1: Update AUTHOR to include Rosella as contributor.
12445
12446         * NEWS: Update.
12447
12448         * socks/geturl.cgi: Simplified command creation, nuked <blink>.
12449
12450         * socks/geturl.cgi: Wrap nutscape extensions within if $netscape.
12451         (cal_time): Fix == to eq.
12452
12453         * socks/geturl.cgi: GPL-ized with permission of A. Rosella.
12454
12455         * geturl.1 (hostname): Moved URL CONVENTIONS to the beginning.
12456
12457         * Makefile.in: Use @VERSION@.
12458
12459         * configure.in: Check version from version.c.
12460
12461         * socks/geturl.cgi: Changed /pub/bin/perl to /usr/bin/perl.
12462
12463         * socks/download.html: Created from download-netscape.html, made
12464         HTML-2.0 compliant.
12465
12466         * recur.c (recursive_retrieve): Set opt.force_dir_hier when
12467         following FTP links from recursions.
12468
12469 1996-07-09  Hrvoje Niksic  <hniksic@srce.hr>
12470
12471         * url.c (mymkdir): Fixed a bug that prevented mymkdir() to create
12472         absolute directories correctly.
12473
12474         * version.c: Changed version to 1.4b14.
12475
12476 1996-07-09  Hrvoje Niksic  <hniksic@srce.hr>
12477
12478         * version.c: "Released" 1.4b13.
12479
12480         * url.c (make_backup): New function.
12481
12482         * http.c (http_loop): Make a backup copy of the local file (using
12483         rename(2)) before opening it.
12484
12485         * main.c (main): Added --backups.
12486
12487         * host.c (ftp_getaddress): Bail out on failed mycuserid().
12488         (ftp_getaddress): Check for leading dot on MY_DOMAIN.
12489         (ftp_getaddress): Check for empty, null or (null) domain.
12490
12491         * url.c (get_urls_html): If this_url is NULL, the base must have a
12492         protocol.
12493         (parseurl): Use has_proto.
12494
12495         * retr.c (retrieve_url): Warn when proxy is used with more than 20
12496         retries.
12497
12498         * url.c (mkstruct): Create the directory (calling mymkdir()) only
12499         if it is not already there.
12500         (has_proto): New function.
12501         (get_urls_html): Eliminate the remaining call to findurl -- use
12502         has_proto.
12503
12504         * geturl.1: Ditto.
12505
12506         * main.c: Change -X to -x.
12507
12508         * url.c (url_filename): Simplify creation of filename if
12509         prefix_files is set.
12510         (url_filename): Simplify everything. And I do mean *everything*.
12511         (mkstruct): Add dir_prefix before hostname.
12512         (path_simplify): Fixed a bug that caused writing outside the path
12513         string in case of "." and ".." path strings.
12514
12515 1996-07-06  Hrvoje Niksic  <hniksic@srce.hr>
12516
12517         * init.c: Added --mirror.
12518
12519         * main.c (main): Added -X to force saving of directory hierarchy.
12520
12521         * ftp.c (ftp_retrieve_list): Added recursion depth counter.
12522         (ftp_retrieve_list): Check whether quota is exceeded.
12523
12524         * url.c (get_urls_html): Skip leading blanks for absolute URIs.
12525
12526         * http.c (gethttp): Use referer if present.
12527
12528         * recur.c (recursive_retrieve): Set u->referer before calling
12529         retrieve_url.
12530
12531         * url.c (newurl): Use memset to nullify the struct members.
12532         (freeurl): Free the referer field too.
12533
12534         * url.h: Added referer to urlinfo.
12535
12536         * geturl.1: Updated the manual to document some of the new features.
12537
12538         * utils.c (numdigit): Moved from url.c.
12539
12540         * README: Rewritten.
12541
12542         * config.h.in: Add the support for socks.
12543
12544         * configure.in: Add the support for socks.
12545
12546         * url.c (url_filename): If the dir_prefix is ".", work with just
12547         the file name.
12548         (url_filename): Do not look for .n extensions if timestamping if
12549         turned on.
12550
12551         * retr.c (show_progress): Skip the over-abundant restval data, and
12552         print the rest of it with ',' instead of '.'.
12553
12554 1996-07-05  Hrvoje Niksic  <hniksic@srce.hr>
12555
12556         * retr.c (show_progress): Changed second arg. to long (as it
12557         should be).
12558         (show_progress): Moved to retr.c.
12559         (get_contents): Moved to retr.c.
12560
12561         * version.c: Change version to 1.4b13.
12562
12563 1996-07-05  Hrvoje Lacko <hlacko@fly.cc.fer.hr>
12564
12565         * url.c (in_acclist): Would return after the first suffix.
12566
12567 1996-07-04  Hrvoje Niksic  <hniksic@srce.hr>
12568
12569         * version.c: "Released" 1.4b12.
12570
12571         * url.c (path_simplify): More kludgifications.
12572         (get_urls_html): Use new parameters for htmlfindurl.
12573
12574         * html.c: Removed memorizing "parser states", since the new
12575         organization does not require them.
12576
12577         * init.c (run_geturlrc): Use read_whole_line.
12578
12579         * ftp-unix.c (ftp_parse_ls): Use read_whole_line.
12580
12581         * recur.c (parse_robots): Use read_whole_line.
12582
12583         * utils.c (read_whole_line): New function.
12584
12585         * recur.c (tried_robots): Use add_slist/in_slist, *much* cleaner.
12586
12587         * host.c (ngethostbyname): Call inet_addr just once. Yet to be
12588         tested on OSF and Ultrix.
12589         (add_hlist): New function.
12590         (free_hlist): New function.
12591         (search_host): New function.
12592         (search_address): New function.
12593         (realhost): Use search_host, search_address and add_hlist.
12594         (same_host): Replaced realloc() with strdupdelim(), made
12595         case-insensitive, fixed a memory leak.
12596
12597         * html.c (ftp_index): Fixed tm_min and tm_sec to be tm_hour and
12598         tm_min, like intended.
12599
12600         * version.c: Change user agent information to
12601         Geturl/version.
12602
12603 1996-07-03  Hrvoje Niksic  <hniksic@srce.hr>
12604
12605         * utils.c: Renamed nmalloc.c to utils.c, .h likewise.
12606
12607         * url.c (acceptable): Always accept directories.
12608
12609         * ftp-unix.c (ftp_parse_ls): Support brain-damaged "ls -F"-loving
12610         servers by stripping trailing @ from symlinks and trailing / from
12611         directories.
12612
12613         * ftp.c (ftp_loop): Debugged the "enhanced" heuristics. :-)
12614
12615         * url.c (skip_url): Use toupper instead of UCASE.
12616
12617         * host.c (sufmatch): Made it case-insensitive.
12618
12619         * url.c (match_backwards_or_pattern): Fixed i == -1 to j == -1.
12620         (match_backwards): New function, instead of
12621         match_backwards_or_pattern.
12622
12623         * recur.c (recursive_retrieve): Increased performance by
12624         introducing inl, which reduces number of calls to in_slist to only
12625         one.
12626
12627         * ftp.c (ftp_loop): Enhanced the heuristics that decides which
12628         routine to use.
12629
12630         * main.c (printhelp): Removed the warranty stuff.
12631
12632 1996-07-02  Hrvoje Niksic  <hniksic@srce.hr>
12633
12634         * url.c (add_slist): Simplify.
12635         (match_backwards_or_pattern): New function.
12636         (in_acclist): Use match_backwards_or_pattern.
12637         (matches): Remove.
12638
12639 1996-06-30  Hrvoje Niksic  <hniksic@srce.hr>
12640
12641         * ftp.c (ftp_loop): Call ftp_index on empty file names, if not
12642         recursive.
12643
12644         * html.c (ftp_index): Fixed to work. Beautified the output.
12645
12646         * ftp.c (ftp_retrieve_glob): Another argument to control whether
12647         globbing is to be used.
12648         (ftp_retrieve_list): Compare the time-stamps of local and remote
12649         files to determine whether to download.
12650
12651 1996-06-29  Hrvoje Niksic  <hniksic@srce.hr>
12652
12653         * ftp.c (rel_constr): New function.
12654
12655         * retr.c (retrieve_from_file): Check for text/html before
12656         retrieving recursively.
12657
12658         * main.c (main): Check whether the file is HTML before going into
12659         recursive HTML retrieving.
12660
12661         * ftp.c (ftp_retrieve_list): Manage directories.
12662         (ftp_retrieve_glob): Pass all the file-types to ftp_retrieve_list.
12663         (ftp_1fl_loop): Fixed a bug that caused con->com to be incorrectly
12664         initialized, causing bugchecks in getftp to fail.
12665
12666         * configure.in: Check for symlink.
12667
12668         * ftp.c (ftp_retrieve_list): Added support for symlinks.
12669
12670         * version.c: "Released" 1.4b10.
12671
12672         * atotm.c (atotm): Redeclared as time_t.
12673
12674         * init.c: New variable "timestamping".
12675
12676         * main.c (main): New option 'N'.
12677
12678         * http.c (hgetlocation): Case-insensitive match.
12679         (hgetmodified): New function.
12680         (http_loop): Implement time-stamping.
12681
12682 1996-06-28  Hrvoje Niksic  <hniksic@srce.hr>
12683
12684         * version.c: Changed version to 1.4b10
12685
12686         * atotm.c: New file, from phttpd.
12687
12688         * options.h (struct options): New parameter timestamping.
12689
12690         * version.c: 1.4b9 "released".
12691
12692         * recur.c (recursive_retrieve): Used linked list (ulist) for
12693         faster storing of URLs.
12694
12695         * url.c (get_urls_html): Removed the old kludge with comparing the
12696         outputs of htmlfindurl and findurl.
12697         (get_urls_html): Added better protocol support here.
12698         (create_hash): Removed, as well as add_hash and in_hash.
12699         (addslist): New function.
12700         (in_slist): ditto
12701
12702         * version.c: Released 1.4b8, changed version to b9.
12703
12704 1996-06-27  Hrvoje Niksic  <hniksic@srce.hr>
12705
12706         * ftp.c (freefileinfo): New function.
12707         (delelement): New function.
12708
12709         * everywhere: GPL!
12710
12711         * ftp.c (ftp_loop): Use ccon.
12712         (ftp_retrieve_glob): Likewise.
12713
12714         * ftp.h: Define ccon, to define status of control connection.
12715
12716         * ftp.c (ftp_get_listing): New function.
12717         (ftp_retrieve_more): New function.
12718         (ftp_retrieve_glob): New function.
12719
12720 1996-06-25  Hrvoje Niksic  <hniksic@srce.hr>
12721
12722         * configure.in: Removed the search for cuserid().
12723
12724         * init.c (getmode): Renamed to getperms.
12725
12726 1996-06-24  Hrvoje Niksic  <hniksic@srce.hr>
12727
12728         * version.c: New version.
12729
12730         * main.c (hangup): New function, that handles hangup. Hangup
12731         signal now causes geturl to stop writing on stdout, and to write
12732         to a log file.
12733
12734         * ftp.c (getftp): "Released" 1.4b7.
12735
12736         * html.c (htmlfindurl): Ignore everything inside <head>...</head>.
12737         (ftp_index): Use fileinfo/urlinfo.
12738
12739         * ftp-unix.c (ftp_parse_ls): New function.
12740         (symperms): New function.
12741
12742         * ftp.c (ftp_1fl_loop): New function, to handle 1-file loops.
12743
12744         * retr.c (retrieve_url): Added FTP support.
12745
12746 1996-06-23  Hrvoje Niksic  <hniksic@srce.hr>
12747
12748         * geturl.h: Removed NOTFTP2HTML enum.
12749         Added DO_LOGIN, DO_CWD and DO_LIST. LIST_ONLY is obsolete.
12750
12751         * ftp.c (getftp): Resynched with urlinfo.
12752         (getftp): Removed HMTL-ization of index.html from getftp.
12753
12754         * version.c: 1.4b6 "released".
12755
12756         * options.h (options): New struct, to keep options in.
12757
12758         * http.c (http_loop,gethttp): Synched with proxy.
12759
12760         * retr.c (retrieve_url): Implemented proxy retrieval.
12761
12762         * main.c (main): Use retrieve_from_file.
12763
12764 1996-06-22  Hrvoje Niksic  <hniksic@srce.hr>
12765
12766         * retr.c (retrieve_from_file): New function.
12767
12768         * url.c (parseurl): Modified to return URLOK if all OK. Protocol
12769         can be found in u->proto.
12770
12771         * ftp.c (ftp_response): Fixed to accept multi-line responses as
12772         per RFC 959.
12773
12774         * recr.c (recursive_retrieve): Take newloc from retrieve_url.
12775
12776         * url.c (mymkdir): Removed the file of the same name, if one
12777         exists.
12778         (isfile): New function.
12779         (mkstruct): Fixed the '/' glitches.
12780         (path_simplify): Hacked to treat something/.. correctly.
12781
12782 1996-06-21  Hrvoje Niksic  <hniksic@srce.hr>
12783
12784         * http.c (gethttp): Close the socket after error in headers.
12785         (http_loop): HEOF no longer a fatal header.
12786
12787         * loop.c (retrieve_url): When dt is NULL, do not modify it. This
12788         simplifies the syntax of calling retrieve_url.
12789
12790         * recr.c (recursive_retrieve): Modified to use get_urls_html.
12791
12792         * url.c (get_urls_file): New function.
12793         (get_urls_html): New function.
12794
12795         * recr.c (recursive_retrieve): Patched up to conform to the
12796         standards.
12797
12798         * http.c (gethttp): Synched with the rest...
12799         (gethttp): Treat only CONREFUSED specially, with connection
12800         errors.
12801
12802         * init.c,geturl.1,http.c (http_loop): Removed kill_error.
12803
12804 1996-06-20  Hrvoje Niksic  <hniksic@srce.hr>
12805
12806         * http.c (http_loop): New function.
12807
12808         * loop.c: Removed *lots* of stuff from retrieve_url.
12809
12810         * url.c (parseurl): Changed to work with urlinfo. Integrated
12811         username finding and path parsing.
12812         (newurl): New function.
12813         (freeurl): New function.
12814         (mkstruct): Removed the old bogosities, made it urlinfo-compliant.
12815         (url_filename): Likewise.
12816         (path_simplify): Accept relative paths too.
12817         (opt_url): Made urlinfo-compliant, removed bogosities.
12818         (path_simplify): Expanded to accept relative paths.
12819         (str_url): A replacement for hide_url
12820         (decode_string): Fixed a bug that caused malfunctioning when
12821         encountering an illegal %.. combination.
12822         (opt_url): Removed the argument. Dot-optimizations are now default.
12823
12824         * nmalloc.c (strdupdelim): New function.
12825
12826         * url.h: Added the urlinfo structure
12827
12828 1996-06-19  Hrvoje Niksic  <hniksic@srce.hr>
12829
12830         * url.c (hide_url): Thrown out the protocol assertion. Do not
12831         change the URL if the protocol if not recognized.
12832         (findurl): Put continue instead of break.
12833
12834 1996-06-18  Hrvoje Niksic  <hniksic@srce.hr>
12835
12836         * sample.geturlrc: Changed the defaults to be commented out and
12837         harmless (previous defaults caused pains if copied to
12838         ~/.geturlrc).
12839
12840         * http.c (gethttp): Print the HTTP request in debug mode.
12841
12842         * connect.c (iread): Added EINTR check loop to select-ing
12843         too. EINTR is now correctly handled with select().
12844
12845         * TODO: new file
12846
12847 1996-05-07  Hrvoje Niksic  <hniksic@srce.hr>
12848
12849         * host.c (same_host): Made the function a little bit more
12850         intelligent regarding diversified URL syntaxes.
12851
12852         * url.c (skip_url): Spaces are now skipped after URL:
12853
12854         * Released 1.3.1 with the patch to prevent crashing when sending
12855         NULL to robot* functions and the patch to compile "out of the box"
12856         on AIX.
12857
12858         * recr.c (recursive_retrieve): Added checking whether this_url is
12859         NULL when calling the robot functions.
12860
12861         * ChangeLog: New file.