]> sjero.net Git - wget/blob - src/ChangeLog
gnutls: fix memory leak.
[wget] / src / ChangeLog
1 2011-11-01  Steven Schweda  <address@hidden>
2
3         * gnutls.c (ssl_init): Ensure GNU TLS is loaded only once.
4
5 2011-10-07  Steven Schweda  <address@hidden>
6
7         * connect.c: Add HAVE_SYS_SELECT_H and HAVE_SYS_SOCKET_H conditions
8         on includes of <sys/select.h> and <sys/socket.h>, respectively.
9         * ftp.c (getftp): Move BIN_TYPE_TRANSFER macro into VMS-specific
10         section.  On VMS, use Stream_LF attributes for listing files.  Pass
11         BIN_TYPE_FILE to fopen_excl() instead of constant-everywhere "true".
12         * ftp.c (ftp_retrieve_list): Restore lost test of opt.preserve_perm
13         (--preserve-permissions) on the chmod() operation.
14         * init.c, main.c: Remove "deprecated" from opt.preserve_perm
15         (--preserve-permissions).
16         * init.c (initialize): Use distinct messages for errors in C macro
17         SYSTEM_WGETRC and environment-variable SYSTEM_WGETRC.  Avoid use of
18         C macro SYSTEM_WGETRC when it's not defined.
19         * log.c (log_close): Avoid closing logfp when it's stderr.
20         * main.c (print_help):  Restore --preserve-permissions.
21         * main.c (main): Avoid using a negative value of longindex as a
22         subscript (for long_options[]) when searching for "--config".
23         * main.c (main): Exit the program using exit() instead of "return".
24         (VMS handles these differently, and exit() is better.)
25         * openssl.c (ssl_init): Add type cast (SSL_METHOD *) to newly "const"
26         "meth" argument to accommodate OpenSSL version 0.9.8, where that
27         argument is not "const" in the OpenSSL function (SSL_CTX_new).
28         * test.c: Declare "program_argstring".
29         * utils.c (fopen_excl): Comment typography.
30         * warc.h: New file.
31         * warc.c: New file.
32
33 2011-10-02  Henrik Holst <henrik.holst@millistream.com> (tiny change)
34         * http.c (gethttp): If 'contentonerror' is used then do not
35         skip the http body on 4xx and 5xx errors.
36
37         * init.c (commands): Add 'contentonerror'.
38
39         * main.c (print_help, option_data): Add new option 'contentonerror'
40         to make wget not skip the http content on 4xx and 5xx errors.
41
42         * options.h: New variable 'content_on_error'.
43
44 2011-09-19  Giuseppe Scrivano  <gscrivano@gnu.org>
45
46         * main.c (print_version): Update copyright year.
47         (print_version): Fix typo.
48
49 2011-09-13  Giuseppe Scrivano  <gscrivano@gnu.org>
50
51         * ftp.c (ftp_retrieve_glob): Propagate correctly the `res' error
52         code.
53
54 2011-09-07  Giuseppe Scrivano  <gscrivano@gnu.org>
55
56         * http.c (gethttp): Don't inhibit arest request if opt.timestamping is
57         set.
58         Reported by <natrio@list.ru>
59
60 2011-09-06  Jakob Matthes <jakob.matthes@gmail.com> (tiny change)
61
62         * main.c (print_version): Do not exit prematurely when --help is passed.
63
64 2011-09-04  Christian Jullien <eligis@orange.fr> (tiny change)
65
66         * gnutls.c: Include <sys/fcntl.h>.
67
68 2011-09-02  Mojca Miklavec <mojca.miklavec.lists@gmail.com> (tiny change)
69
70         * main.c (print_version): Do not exit prematurely when --version is passed.
71
72 2011-08-30  Giuseppe Scrivano  <gscrivano@gnu.org>
73
74         * gnutls.c (wgnutls_read_timeout): Use the non blocking socket only for
75         `gnutls_record_recv'.  Set errno to ETIMEDOUT on a read timeout.
76
77 2011-08-29  Giuseppe Scrivano  <gscrivano@gnu.org>
78
79         * gnutls.c (wgnutls_read_timeout): New function.
80         (wgnutls_read): Use wgnutls_read_timeout.
81         (wgnutls_peek): Likewise.
82
83 2011-08-27  Giuseppe Scrivano  <gscrivano@gnu.org>
84
85         * main.c (print_help): Exit with an error status if print to stdout
86         fails.
87         (print_usage): Change method signature and return a status code.
88         (print_version): Likewise.
89
90 2011-08-26  Giuseppe Scrivano  <gscrivano@gnu.org>
91
92         * gnutls.c: Include "ptimer.h".
93         (wgnutls_read): Honor read timeout.
94
95         * openssl.c (ssl_init): Make `meth' const.
96
97 2011-08-25  Giuseppe Scrivano  <gscrivano@gnu.org>
98
99         * utils.c [HAVE_UTIME && HAVE_UTIME_H]: Include <utime.h>.
100         [HAVE_UTIME && HAVE_SYS_UTIME_H]: Include <sys/utime.h>.
101         (touch) [HAVE_UTIME: Prefers utime over futimens when it is available.
102         It was reported that Cygwin has a not working futimens.
103
104 2011-08-19  Giuseppe Scrivano  <gscrivano@gnu.org>
105
106         * init.c (home_dir) [MSDOS]: Move local variable `len' here.
107
108 2011-08-18  Giuseppe Scrivano  <giuseppe@southpole.se>
109
110         * http.c (gethttp): Fix a memory leak on some errors.  Free the head
111         buffer.
112
113         * Makefile.am: Use an additional file "css_.c" which in turn includes
114         "wget.h" and immediately "css.c".
115
116         * http.c (gethttp): Reset chunked_transfer_encoding on redirections.
117
118 2011-08-13  Giuseppe Scrivano  <gscrivano@gnu.org>
119
120         * retr.c (fd_read_body): Ensure max is not already defined.
121
122         * mswindows.h (snprintf): Remove definition.
123         (vsnprintf): Likewise.
124
125 2011-08-12  Giuseppe Scrivano  <gscrivano@gnu.org>
126
127         * css.l: Remove include "wget.h".
128         Reported by: Perry Smith <pedzsan@gmail.com>.
129
130 2011-08-11  Giuseppe Scrivano  <gscrivano@gnu.org>
131
132         * utils.c (abort_run_with_timeout): Use sigprocmask instead of
133         sigsetmask.
134
135         * gnutls.c (ssl_connect_wget): Remove call to deprecated function
136         `gnutls_certificate_type_set_priority'.
137
138         * Makefile.am (version.c): Don't invoke hg to set version string.
139
140 2011-08-10  Giuseppe Scrivano  <gscrivano@gnu.org>
141
142         Fix a linker error on systems with an older gnutls version.
143         * gnutls.c (ssl_connect_wget)
144         [HAVE_GNUTLS_PRIORITY_SET_DIRECT]:  Use gnutls_priority_set_direct.
145         [! HAVE_GNUTLS_PRIORITY_SET_DIRECT]:  Use gnutls_protocol_set_priority.
146         Reported by: Karl Berry <karl@freefriends.org>
147
148 2011-08-06  Jochen Roderburg <Roderburg@Uni-Koeln.DE>
149
150         * host.c (lookup_host): Ensure it doesn't print more IPs than available
151         ones.
152
153 2011-08-06  Giuseppe Scrivano  <gscrivano@gnu.org>
154
155         * init.c (defaults): Set default value for show_all_dns_entries.
156
157         * host.c (lookup_host): If `showalldnsentries' is used then print all
158         the IP corresponding to a DNS entry.
159         * init.c (commands): Add `showalldnsentries'.
160         Suggested by: Witold Baryluk <baryluk@smp.if.uj.edu.pl>
161
162         * http.c (gethttp): Add the Cache-Control HTTP header when --no-cache
163         is specified.
164         Reported by: Коренберг Марк <socketpair@gmail.com>.
165
166 2011-08-05  Giuseppe Scrivano  <gscrivano@gnu.org>
167
168         * utils.c (acceptable): Accept always the file if it is the specified
169         output destination.
170         Reported by: Shai Berger <shai@platonix.com>
171
172 2011-08-05  Giuseppe Scrivano  <giuseppe@southpole.se>
173
174         * gnutls.c (ssl_connect_wget): Use `gnutls_priority_set_direct' instead
175         of the deprecated `gnutls_protocol_set_priority'.
176
177 2011-08-02  Giuseppe Scrivano  <giuseppe@southpole.se>
178
179         * cookies.c (parse_set_cookie): If the value is quoted, do not modify
180         it.
181         Reported by: Nirgal Vourgère <jmv_deb@nirgal.com>
182
183 2011-07-29  Giuseppe Scrivano  <giuseppe@southpole.se>
184
185         * log.c (logprintf): Exit immediately on a SIGPIPE error.
186         Reported by: Noèl Köthe  <noel@debian.org>.
187
188 2011-07-26  Carlos Martín Nieto  <carlos@cmartin.tk>  (tiny change)
189
190         * init.c (home_dir): Allocate path buffer dinamically.
191
192 2011-07-26  Giuseppe Scrivano  <giuseppe@southpole.se>
193
194         * retr.c (retrieve_url): Do not register redirects when in spider mode.
195
196 2011-07-20 Merinov Nikolay <kim.roader@gmail.com>
197
198         * iri.c (remote_to_utf8): Add test for non-ASCII symbols with
199         UTF-8 URI encoding.
200         * res.c (res_retrieve_file): Fix url_parse call.
201
202 2011-06-08  Giuseppe Scrivano  <giuseppe@southpole.se>
203
204         * retr.c (retrieve_from_file): Parse the url careless if IRI is enabled.
205         Reported by: Volker Kuhlmann <list0570@paradise.net.nz>.
206
207 2011-05-24  Giuseppe Scrivano  <gscrivano@gnu.org>
208
209         * retr.c (fd_read_body): Define max.
210
211 2010-12-28  Adrien Nader  <adrien@notk.org> (tiny change)
212
213         * main.c [WINDOWS]: Include <io.h> and <fcntl.h>.
214         (main) [WINDOWS]: Set the stdout file mode to binary.
215         Submitted also by: Martin Panter <vadmium@gmail.com>
216
217 2011-05-23  Giuseppe Scrivano  <gscrivano@gnu.org>
218
219         * retr.c (fd_read_body): Be sure the buffer size is at least 8Kb.
220         BUFSIZ may assume very small values with a negative impact on the
221         performances.
222
223         * mswindows.h [NEED_GAI_STRERROR]: remove definition for gai_strerror.
224
225 2011-05-15  Ray Satiro <raysatiro@yahoo.com>
226
227         * connect.c (select_fd) [WINDOWS]: Ensure the socket is blocking.
228         * mswindows.h: Add declaration for set_windows_fd_as_blocking_socket.
229         * mswindows.c (set_windows_fd_as_blocking_socket): New function.
230
231         * openssl.c (openssl_read): Prevent loops on read errors.
232
233 2011-04-24  Giuseppe Scrivano  <gscrivano@gnu.org>
234
235         * html-url.c: Include "exists.h".
236         * gnutls.c (wgnutls_peek): Remove local variable `ret'.
237
238 2011-04-21  Daniel Manrique <roadmr@tomechangosubanana.com> (tiny change)
239         * main.c (main): Set exit status when invalid host name given in
240         command line.
241         * html-url.c (get_urls_file): Set exit status when invalid host
242         name given in input file.
243
244 2011-04-19  Giuseppe Scrivano  <gscrivano@gnu.org>
245
246         * gnutls.c: Do not include <fcntl.h>.
247         * gnutls.c (wgnutls_peek): Ensure there is data available before attempt
248         a read on the blocking socket.
249
250         * Makefile.am (LIBS): Add $(LIB_CLOCK_GETTIME)
251         * utils.c: Include <sys/stat.h>.  Do not include <sys/time.h>.
252         (touch): Use `futimens' instead of `utimes'.
253
254         * mswindows.h: Do not include <direct.h>.  Remove macro definition for
255         mkdir.
256
257 2011-04-18  Giuseppe Scrivano  <gscrivano@gnu.org>
258
259         * utils.c: Include <sys/time.h>.  Do not include <sys/utime.h>.
260         (touch): Use `utimes' instead of `utime'.
261
262         * openssl.c (openssl_read): Fix build error.
263
264 2011-04-17  Giuseppe Scrivano  <gscrivano@gnu.org>
265
266         * wget.h [HAVE_LIBSSL32]: Define HAVE_SSL.
267
268         * gnutls.c (wgnutls_peek): Use correctly FIONBIO codes under Mingw32.
269         Reported by: Ray Satiro <raysatiro@yahoo.com>
270
271 2011-04-13  Giuseppe Scrivano  <gscrivano@gnu.org>
272
273         * openssl.c (openssl_poll): Check if the specified timeout is zero after
274         SSL_pending.
275         (openssl_peek): Make the call non-blocking.
276
277 2011-04-11  Cristian Rodríguez  <crrodriguez@opensuse.org> (tiny change)
278
279         * openssl.c (ssl_init) [! OPENSSL_NO_SSL2]: Use SSLv2 only when
280         available.
281
282 2011-04-07  Giuseppe Scrivano  <gscrivano@gnu.org>
283
284         * gnutls.c (ssl_init): Allow X509 v1 certificates.
285         Suggested by: Ray Satiro <raysatiro@yahoo.com>
286
287         (wgnutls_peek): Remove tight loop around gnutls_record_recv.
288
289 2011-04-07  Ray Satiro  <raysatiro@yahoo.com> (tiny change)
290
291         (wgnutls_read): Check for the GNUTLS_E_AGAIN return code in the recv
292         tight loop.
293         (wgnutls_write): Likewise.
294         (wgnutls_peek): Likewise.
295
296 2011-04-07  Giuseppe Scrivano  <gscrivano@gnu.org>
297
298         * gnutls.c (wgnutls_peek): New local variable `read'.
299         Use `read' instead of `ret' to store the number of read bytes.
300         Reported by: Ray Satiro <raysatiro@yahoo.com>
301
302 2011-04-04  Giuseppe Scrivano  <gscrivano@gnu.org>
303
304         * openssl.c [WINDOWS]: Include <w32sock.h>.
305         (openssl_read): Retry the read on SSL_ERROR_WANT_READ.
306
307         * host.c [WINDOWS]: Include <winsock2.h> and <ws2tcpip.h>.
308         Suggested by: Ray Satiro <raysatiro@yahoo.com>.
309
310         * Makefile.am (LIBS): Remove  @LIBSSL@ @W32LIBS@
311
312 2011-04-03  Giuseppe Scrivano  <gscrivano@gnu.org>
313
314         * gnutls.c: Include <fcntl.h>.
315         (wgnutls_peek): Make the socket non blocking before attempt a read.
316
317         * gnutls.c: Include <sys/ioctl.h>.
318         (wgnutls_peek) [F_GETFL]: Use fcntl.
319         (wgnutls_peek) [! F_GETFL]: Use ioctl.
320
321
322 2011-03-31  Giuseppe Scrivano  <gscrivano@gnu.org>
323
324         * recur.c (download_child_p): When --no-parent is used, check that the
325         ports are the same only in case the same protocol is used.
326         Reported by: Karl Berry <karl@freefriends.org>
327
328         * res.c (res_parse): Add new line to debug messages.
329
330 2011-03-21  Giuseppe Scrivano  <gscrivano@gnu.org>
331
332         * iri.h (parse_charset) [!ENABLE_IRI]: Use the parameter to avoid a
333         compiler warning.
334
335         * iri.h: Declare `dummy_iri' as extern not static.
336         * main.c [!ENABLE_IRI]: Define `dummy_iri'.
337         (main) [!ENABLE_IRI]: Initialize `dummy_iri'.
338
339 2011-03-11  Giuseppe Scrivano  <gscrivano@gnu.org>
340
341         * ftp.c (getftp): Fix some memory leaks.
342         * ftp-ls.c (ftp_parse_winnt_ls): Likewise.
343         Reported by: Zhenbo Xu <zhenbo1987@gmail.com>.
344
345 2010-11-20  Filipe Brandenburger <filbranden@gmail.com> (tiny change)
346
347         * http.c (gethttp): Repeat a POST request on a 307 response.
348         * retr.c (retrieve_url): Use NEWLOCATION_KEEP_POST.
349         * wget.h: Define NEWLOCATION_KEEP_POST.
350
351 2011-03-02  Tomasz Buchert <tomek.buchert@gmail.com> (tiny change)
352
353         * http.c (ensure_extension): Do not adjust the extension if the file
354         ends in .htm.
355
356 2011-02-22  Gilles Carry  <gilles.carry@st.com>
357
358         * main.c (prompt_for_password): Use stderr instead of stdout
359         to prompt password. This allows to use --output-document=- and
360         --ask-password simultaneously. Without this, redirecting stdout
361         makes password prompt invisible and mucks up payload such as in
362         this example:
363         wget --output-document=- --ask-password -user=foo \
364                 http://foo.com/tarball.tgz | tar zxf -
365
366 2011-02-22  Steven Schubiger  <stsc@member.fsf.org>
367
368         * http.c (gethttp, http_loop): Move duplicated code which is run
369         when an existing file is not to be clobbered to a function.
370         (get_file_flags): New static function.
371
372 2010-12-10  Evgeniy Philippov <egphilippov@googlemail.com> (tiny change)
373
374         * main.c (main): Initialize `total_downloaded_bytes'.
375
376 2010-12-09  Giuseppe Scrivano  <gscrivano@gnu.org>
377
378         * main.c (main): If --no-clobber and --convert-links are used at the
379         same time, use only the latter.
380         Reported by: Romain Vimont <rom@rom1v.com>
381
382 2010-12-07  Jessica McKellar <jesstess@mit.edu> (tiny change)
383
384         * main.c: Make help message clearer.
385
386 2010-12-02  Giuseppe Scrivano  <gscrivano@gnu.org>
387
388         * build_info.c.in: Do not list md5.
389
390 2010-12-01  Giuseppe Scrivano  <gscrivano@gnu.org>
391
392         * cmpt.c: Include <unistd.h> inconditionally.
393         * connect.c: Likewise.
394         * convert.c: Likewise.
395         * ftp-basic.c: Likewise.
396         * ftp-ls.c: Likewise.
397         * ftp.c: Likewise.
398         * gnutls.c: Likewise.
399         * http.c: Likewise.
400         * init.c: Likewise.
401         * log.c: Likewise.
402         * main.c: Likewise.
403         * openssl.c: Likewise.
404         * progress.c: Likewise.
405         * ptimer.c: Likewise.
406         * recur.c: Likewise.
407         * retr.c: Likewise.
408         * url.c: Likewise.
409         * utils.c: Likewise.
410
411         * retr.c (fd_read_body): Dinamically allocate `dlbuf'.
412
413 2010-11-27  Reza Snowdon  <vivi@mage.me.uk>
414
415         * init.c (initialize): If 'ok' is not zero; exit, as this
416         indicates there was a problem parsing 'SYSTEM_WGETRC'.
417         Fixes bug #20370.
418
419 2010-11-22  Giuseppe Scrivano  <gscrivano@gnu.org>
420
421         Revert last commit.
422         * ftp.c (getftp): When count > 0, don't append to the existing file.
423         * http.c (gethttp): Likewise.
424
425 2010-11-21  Giuseppe Scrivano  <gscrivano@gnu.org>
426
427         * ftp.c (getftp): If `count' is bigger than zero, try to resume the
428         download, not restart it.
429         * http.c (gethttp): Likewise.
430         Suggested by: Evgeny Kapun <abacabadabacaba@gmail.com>.
431
432 2010-11-19  Giuseppe Scrivano  <gscrivano@gnu.org>
433
434         * ftp.c (getftp): Accept new argument `count'.  When `count' is
435         bigger than zero, assume the file can be overwritten.
436         (ftp_loop_internal): Pass new argument `count' to `getftp'.
437
438         * http.c (gethttp): Accept new argument `count'.  When `count' is
439         bigger than zero, assume the file can be overwritten.
440         (http_loop): Pass new argument `count' to `gethttp'.
441         Reported by: Evgeny Kapun <abacabadabacaba@gmail.com>.
442
443 2010-08-08  Reza Snowdon <vivi@mage.me.uk>
444
445         * main.c (main): inserted 'defaults'.
446           Added additional 'getopt_long' while loop to search and apply a
447           user specified config file before any other options.
448           New variables 'retconf', 'use_userconfig',
449           'confval', 'userrc_ret', 'config_opt'.
450         * init.c: Include stdbool.h.
451           (commands): Added config details.
452           (defaults): Removed static.
453           (wgetrc): Removed static.
454           (initialize): Removed 'defaults ()',
455           changed 'int ok' to 'bool ok'.
456         * options.h: New variable 'choose_config'.
457         * init.h (defaults): exported function.
458           (run_wgetrc): exported function.
459
460 2010-10-24  Jessica McKellar <jesstess@mit.edu> (tiny change)
461
462         * main.c (main): Print the total download time as part of the
463         summary for downloads using the recursive or page requisites
464         options. Fixes bug #21359.
465
466 2010-10-24  Giuseppe Scrivano  <gscrivano@gnu.org>
467
468         * gnutls.c (wgnutls_peek): Do not return an error when
469         `gnutls_record_recv' fails but some data is already available.
470
471 2010-10-23  Giuseppe Scrivano  <gscrivano@gnu.org>
472
473         * Makefile.am (LIBS): Remove @LIBGNUTLS@ and use @W32LIBS@ as last
474         component.
475
476         * gnutls.c (wgnutls_peek): Block until data is available.
477
478 2010-10-21  Giuseppe Scrivano  <gscrivano@gnu.org>
479
480         * retr.c (retrieve_url): Do not register HTML files twice.
481         Reported by: Manfred Koizar <mkoi-pg@aon.at>.
482
483 2010-10-18  Manfred Koizar <mkoi-pg@aon.at> (tiny change)
484
485         * html-url.c (tag_handle_link): Do not assume external links type
486         to be always "text/html".
487
488 2010-10-16  Giuseppe Scrivano  <gscrivano@gnu.org>
489
490         * connect.c (socket_ip_address): Initialize `sockaddr' to zero.
491         * ftp-basic.c (ftp_epsv): Remove dead assignment to `s'.
492         * ftp-ls.c (ftp_parse_vms_ls): Remove dead assignment to `len'.
493         * http.c (skip_short_body): Remove dead assignment to `ret'.
494         * init.c (wgetrc_user_file_name): Remove dead assignment to `home'.
495         * main.c (main): Silent warning reported by clang.
496         (http_loop): Silent warning reported by clang.
497         * retr.c (retrieve_url): Likewise.
498         * url.c (init_seps): Remove dead assignment to `p'.
499
500 2010-10-11  Giuseppe Scrivano  <gscrivano@gnu.org>
501
502         * ftp.c (getftp): Fix indentation.
503
504 2010-10-11  Steven Schubiger <stsc@member.fsf.org>
505
506         * ftp.c (getftp): Initialize `targ'.
507
508 2010-10-08  Ivanov Anton <x86mail@gmail.com> (tiny change)
509
510     * src/html-url.c (check_style_attr): Skip quotes when they are present.
511
512 2010-10-06  Giuseppe Scrivano  <gscrivano@gnu.org>
513
514         * main.c (main): Remove unused variable `status'.
515
516 2010-09-25  Merinov Nikolay  <kim.roader@gmail.com>
517
518         * init.c: Add "unlink" command into command list.
519         * main.c: Add "unlink" option into option_data list.
520         * options.h: Adding unlink field into struct options.
521         * wget.h: Addind UNLINKERR error into uerr_t enum.
522         * exits.c (get_status_for_err): define status for UNLINKERR.
523         * ftp.c (getftp): unlink file if exists, instead clobbering.
524         (ftp_loop_internal): processing UNLINKERR.
525         * http.c (gethttp): unlink file if exists, instead clobbering.
526         (http_loop): processing UNLINKERR.
527
528 2010-09-24  Dennis, CHENG Renquan <crquan@fedoraproject.org>
529
530         Fix problem when content-disposition is used with recursive downloading.
531         * url.h (url_file_name): Add a new argument `replaced_filename'.
532         * url.c (url_file_name): Likewise.
533         * http.c (parse_content_disposition): Do not add a prefix to the return
534         value.
535         (test_parse_content_disposition): Adjust tests.
536         (gethttp): Pass additional parameter to `url_file_name'.
537         (http_loop): Likewise.
538         * ftp.c (ftp_loop_internal, ftp_get_listing, ftp_retrieve_list)
539         (ftp_loop): Likewise.
540
541 2010-09-14  Giuseppe Scrivano  <gscrivano@gnu.org>
542
543         * convert.c (local_quote_string): Accept new parameter `no_html_quote'.
544         Inhibit HTML quoting when `no_html_quote'.
545         (convert_links): Disable HTML quoting in CSS files.
546         Reported by: Manuel Reinhardt <reinhardt@syslab.com>.
547
548 2010-09-12  Giuseppe Scrivano  <gscrivano@gnu.org>
549
550         * main.c (print_help): Align --trust-server-names help text with
551         the rest of the text.
552         Suggested by: Mike Frysinger  <vapier@gentoo.org>.
553
554 2010-08-20  Giuseppe Scrivano  <gscrivano@gnu.org>
555
556         * convert.c: Include "iri.h".
557         (convert_links_in_hashtable): Parse the url, if
558         necessary, before check if it is present in the dowloaded url
559         map.
560         Reported by: <sk.random@gmail.com>.
561
562 2010-08-09  Giuseppe Scrivano  <gscrivano@gnu.org>
563
564         Fix a problem with HTTP/1.0 proxies.
565         * http.c (gethttp): Specify the connection header when keep alive
566         connections are not used.
567
568         Use persistent connections with proxies supporting them.
569         * http.c (gethttp): Specify Proxy-Connection to the HTTP proxy.
570
571 2010-08-06  Giuseppe Scrivano  <gscrivano@gnu.org>
572
573         * css-url.c (get_uri_string): Skip empty urls.
574
575 2010-07-25  John Trengrove  <jtrengrove@gmail.com> (tiny change)
576
577         * ftp.h: Added enum `parsetype'.  Modified struct to hold parsetype.
578
579         * ftp-ls.c (ftp_parse_unix_ls): Default to TT_DAY. Change to TT_HOUR_MIN
580         if hours/minutes parsed.
581         (ftp_parse_winnt_ls): Default to TT_HOUR_MIN.
582         (ftp_parse_vms_ls): Default to TT_HOUR_MIN.
583         (ftp_index): Print only if fileinfo struct value ttype set to TT_HOUR_MIN.
584
585 2010-07-30  Giuseppe Scrivano  <gscrivano@gnu.org>
586
587         * html-url.h (struct map_context): Remove member `tail'.
588
589         * html-url.c (append_url): Append the new url ordered by `position'.
590         (get_urls_html): Do not initialize `ctx.tail'.
591
592         * css-url.c (get_urls_css_file): Do not initialize `ctx.tail'.
593
594 2010-07-29  Giuseppe Scrivano  <gscrivano@gnu.org>
595
596         * gnutls.c (wgnutls_peek): Don't read more data if the buffered peek
597         data is sufficient.
598
599 2010-07-28  Giuseppe Scrivano  <gscrivano@gnu.org>
600
601         * http.h (http_loop): Add new argument `original_url'
602         * http.c (http_loop): Add new argument `original_url'.  Use
603         `original_url' to get a filename if `trustservernames' is false.
604
605         * init.c (commands): Add "trustservernames".
606
607         * options.h (library): Add variable `trustservernames'.
608
609         * main.c (option_data): Add trust-server-names.
610         (print_help): Describe --trust-server-names.
611
612         * retr.c (retrieve_url): Pass new argument to `http_loop'.
613
614 2010-07-20  Alan Jenkins <alan-jenkins@tuffmail.co.uk> (tiny change)
615
616         * http.c (gethttp): Check content-length was set before trying to
617         compare it with the already downloded filesize.
618
619 2010-07-20  Leonid Petrov <nouser@lpetrov.net>
620
621         * ftp.c (getftp): Don't attempt to retrieve the file if it is already
622         completely.
623         (ftp_loop_internal): Force the length to be zero for symlinks.
624
625 2010-07-18  Giuseppe Scrivano  <gscrivano@gnu.org>
626
627         * http.c (gethttp): If -N is used, don't exit immediately if the content
628         length is less or equal than the existing file size.  Specify "Range"
629         only if -N is not used.
630         Reported by: Caleb Cushing <xenoterracide@gmail.com>.
631
632 2010-07-14  Giuseppe Scrivano  <gscrivano@gnu.org>
633
634         * ftp.c (max): Remove definition.
635         (getftp): New variable `got_expected_bytes'.  Let `expected_bytes' be
636         the value SIZE returns, otherwise use the bytes count returned by RETR.
637         Suggested by Daniel Stenberg <daniel@haxx.se>.
638
639 2010-07-14  Giuseppe Scrivano  <gscrivano@gnu.org>
640
641         * ftp.c (max): Add definition.
642         (getftp): Consider for `expected_bytes' the greatest value between the
643         bytes count returned by SIZE and the bytes count returned by RETR.
644         Reported by: Jozua <jozua@sparky.za.net>.
645
646 2010-07-11  Giuseppe Scrivano  <gscrivano@gnu.org>
647
648         * http.c (http_loop): New variable `force_full_retrieve'.  If the remote
649         file is newer that the local one then inhibit -c.
650         Reported by: Caleb Cushing <xenoterracide@gmail.com>.
651
652 2010-07-09  Giuseppe Scrivano  <gscrivano@gnu.org>
653
654         * css-url.c (get_urls_css_file): Use `wget_read_file' instead of
655         `read_file'.  Use `wget_read_file_free' instead of `read_file_free'.
656         * convert.c (convert_links): Likewise.
657         * html-url.c (get_urls_html, get_urls_file): Likewise.
658         * res.c (res_parse_from_file): Likewise.
659
660         * utils.h: Rename `read_file' to `wget_read_file'.  Rename
661         `read_file_free' to `wget_read_file_free'.
662
663         * utils.c (wget_read_file): Renamed from `read_file'.
664         (wget_read_file_free): Renamed from `read_file_free'.
665
666 2010-07-05  Giuseppe Scrivano  <gscrivano@gnu.org>
667
668         * gnutls.c (ssl_init): New local variables `ca_directory' and `dir'.
669         Load default root certificates under the `ca_directory' directory.
670
671 2010-07-03  Giuseppe Scrivano  <gscrivano@gnu.org>
672
673         * gnutls.c (ssl_connect_wget): New local variable `allowed_protocols'.
674         Honor the --secure-protocol flag.
675
676 2010-06-20  Giuseppe Scrivano  <gscrivano@gnu.org>
677
678         * main.c (print_help): Fix help string for --random-wait.  Its range is
679         [0.5*wait, 1.5*wait) not [0, 2*wait).
680         Reported by: Tom Mizutani <gombei1970@gmail.com>.
681
682 2010-06-15  Giuseppe Scrivano  <gscrivano@gnu.org>
683
684         * gnutls.c [WIN32]: Include "w32sock.h".
685         (FD_TO_SOCKET): Add definition.
686         (ssl_connect_wget): Get the real socket handle by FD_TO_SOCKET.
687         Define FD_TO_SOCKET if it is not yet defined.
688
689 2010-06-14  Giuseppe Scrivano  <gscrivano@gnu.org>
690
691         * gnutls.c: Include <stdlib.h>.
692         (struct wgnutls_transport_context): Remove `peekstart'.
693         (ssl_connect_wget): Renamed from `ssl_connect'.
694         (wgnutls_poll): New variable `ctx'.
695         (wgnutls_read): Don't use `ctx->peekstart'.
696         (wgnutls_peek): Likewise.  Don't attempt to read if there is not
697         ready data.
698
699 2010-06-14  Giuseppe Scrivano  <gscrivano@gnu.org>
700         * http.c (http_loop): Always send a HEAD request when -N is used
701         together with --content-disposition.
702         Reported by: Jochen Roderburg <Roderburg@Uni-Koeln.DE>.
703
704 2010-06-10  Muthu Subramanian K <muthusuba@gmail.com> (tiny change)
705
706         * http.c (http_loop): Increase `total_downloaded_bytes' by
707         `hstat.rd_size', not `hstat.len'.
708
709 2010-06-10  Giuseppe Scrivano  <gscrivano@gnu.org>
710
711         * main.c (print_version): Drop the current maintainer line.
712
713 2010-06-10  Giuseppe Scrivano  <gscrivano@gnu.org>
714
715         * Makefile.am (build_info.c): Generate the `build_info.c' file under
716         the build directory.
717         Patch by: Daniel Stenberg <daniel@haxx.se>.
718
719 2010-06-03  Giuseppe Scrivano  <gscrivano@gnu.org>
720
721         * http.c (http_loop): Do not send a HEAD request before the GET request
722         when --content-disposition is used.
723         Reported by: alex_wh@mail.ru.
724
725 2010-05-31  Giuseppe Scrivano  <gscrivano@gnu.org>
726
727         * css.l: Use option "nounput".
728         (YY_NO_INPUT): Add macro definition.
729
730 2010-05-31  Giuseppe Scrivano  <gscrivano@gnu.org>
731
732         * html-parse.c (map_html_tags): Fix condition for closed tag.  Handle
733         the case '>' is not specified after '/'.
734
735 2010-05-31  Giuseppe Scrivano  <gscrivano@gnu.org>
736
737         * sysdep.h (_SVID_SOURCE): Remove definition.
738         (_BSD_SOURCE): Remove definition.
739
740 2010-05-31  Giuseppe Scrivano  <gscrivano@gnu.org>
741
742         * recur.c (retrieve_tree): Remove variable `up_error_code'.
743
744         * iri.c (open_locale_to_utf8): Remove function.
745
746 2010-05-30  Giuseppe Scrivano  <gscrivano@gnu.org>
747
748         * html-parse.c (NAME_CHAR_P): Consider '<' an invalid character.
749         (advance_declaration): Close the tag if '<' is found.
750         (map_html_tags): Likewise.
751
752 2010-05-27  Giuseppe Scrivano  <gscrivano@gnu.org>
753
754         * main.c (print_usage): Accept a new parameter `error'.
755         (main): Print diagnostic messages to stderr, not stdout.
756
757 2010-05-27  Giuseppe Scrivano  <gscrivano@gnu.org>
758
759         * Makefile.am (wget_SOURCES): Remove `snprintf.c'.
760
761         * snprintf.c: Remove file.
762
763 2010-05-27  Giuseppe Scrivano  <gscrivano@gnu.org>
764
765         * main.c (main): Exit with failure when -k is specified and -O is not
766         a regular file.
767
768 2010-05-27  Giuseppe Scrivano  <gscrivano@gnu.org>
769
770         * http.c (gethttp): Consider new cookies retrieved when the
771         authorization fails.
772
773 2010-05-25  Giuseppe Scrivano  <gscrivano@gnu.org>
774
775         * host.c (sufmatch): Do not consider zero length entries.
776
777         * http.c (H_10X): New macro.
778         (gethttp): Silently ignore 1xx responses.
779
780 2010-05-24  Giuseppe Scrivano  <gscrivano@gnu.org>
781
782         * iri.h (dummy_iri): Define static.
783
784         * css-tokens.h (css_tokens): Remove variable.
785
786 2010-05-23  Giuseppe Scrivano  <gscrivano@gnu.org>
787
788         * http.c (http_atotm): Count the NUL character when copying the locale
789         string.
790         Reported by: Florian Weimer <fw@deneb.enyo.de>
791
792 2010-05-16  Giuseppe Scrivano  <gscrivano@gnu.org>
793
794         * Makefile.am (LDADD): Remove MD5_LDADD.
795         (MD5_LDADD): Remove definition.
796         (AM_CPPFLAGS): Remove MD5_CPPFLAGS.
797         (version.c): Remove dependency from MD5_LDADD.
798         (../md5/libmd5.a): Remove rule.
799
800         * ftp-opie.c: Include "md5.h".  Do not include "gen-md5.h".
801         (skey_response): New variable ctx.  Use md5 functions from the gnulib
802         module instead of functions defined previously in the "gen-md5.h" file.
803
804         * gen-md5.h: Remove file.
805         * gen-md5.c: Likewise.
806
807         * http.c: Include "md5.h".  Do not include "gen-md5.h".
808         (digest_authentication_encode): New variable ctx.  Use md5 functions
809         from the gnulib module instead of functions defined previously in the
810         "gen-md5.h" file.
811
812 2010-05-15  Giuseppe Scrivano  <gscrivano@gnu.org>
813
814         * Makefile.am: Quote any path using $(top_srcdir) or $(top_builddir).
815         (version.c): Remove dependency from configure.ac and Makefile.am.
816
817         * css.l: Include "wget.h".
818
819 2010-05-08  Giuseppe Scrivano  <gscrivano@gnu.org>
820
821         * Makefile.am: Update copyright years.
822         * cmpt.c: Likewise.
823         * connect.h: Likewise.
824         * convert.c: Likewise.
825         * convert.h: Likewise.
826         * cookies.c: Likewise.
827         * cookies.h: Likewise.
828         * css-tokens.h: Likewise.
829         * css-url.c: Likewise.
830         * css-url.h: Likewise.
831         * css.l: Likewise.
832         * exits.c: Likewise.
833         * exits.h: Likewise.
834         * ftp-basic.c: Likewise.
835         * ftp-ls.c: Likewise.
836         * ftp-opie.c: Likewise.
837         * ftp.c: Likewise.
838         * ftp.h: Likewise.
839         * gen-md5.c: Likewise.
840         * gen-md5.h: Likewise.
841         * gettext.h: Likewise.
842         * gnutls.c: Likewise.
843         * hash.c: Likewise.
844         * hash.h: Likewise.
845         * host.c: Likewise.
846         * host.h: Likewise.
847         * html-parse.c: Likewise.
848         * html-parse.h: Likewise.
849         * html-url.c: Likewise.
850         * html-url.h: Likewise.
851         * http-ntlm.c: Likewise.
852         * http-ntlm.h: Likewise.
853         * http.c: Likewise.
854         * http.h: Likewise.
855         * init.c: Likewise.
856         * init.h: Likewise.
857         * iri.c: Likewise.
858         * iri.h: Likewise.
859         * log.c: Likewise.
860         * log.h: Likewise.
861         * main.c: Likewise.
862         * mswindows.c: Likewise.
863         * mswindows.h: Likewise.
864         * netrc.c: Likewise.
865         * netrc.h: Likewise.
866         * openssl.c: Likewise.
867         * options.h: Likewise.
868         * progress.c: Likewise.
869         * progress.h: Likewise.
870         * ptimer.c: Likewise.
871         * ptimer.h: Likewise.
872         * recur.c: Likewise.
873         * recur.h: Likewise.
874         * res.c: Likewise.
875         * res.h: Likewise.
876         * retr.c: Likewise.
877         * retr.h: Likewise.
878         * spider.c: Likewise.
879         * spider.h: Likewise.
880         * ssl.h: Likewise.
881         * sysdep.h: Likewise.
882         * test.c: Likewise.
883         * test.h: Likewise.
884         * url.c: Likewise.
885         * url.h: Likewise.
886         * utils.c: Likewise.
887         * utils.h: Likewise.
888         * wget.h: Likewise.
889
890 2010-05-07  Giuseppe Scrivano  <gscrivano@gnu.org>
891
892         * gnutls.c (wgnutls_close): Use always `close', not `closesocket'.
893         * openssl.c (openssl_close): Use always `close', not `closesocket'.
894         (ssl_connect_wget): Get the real socket handle by FD_TO_SOCKET.
895         Define FD_TO_SOCKET if it is not yet defined.
896         * Makefile.am (libunittest_a_CPPFLAGS): Add -I$(top_builddir)/lib.
897         * mswindows.h: Always include <winsock2.h> and <ws2tcpip.h>.  Do not
898         include <winsock.h>.
899         [! INHIBIT_WRAP]: Remove macro's socket, bind, connect, accept, recv,
900         send, select, getsockname, getpeername, setsockopt, closesocket.
901         Remove wrapped_socket, wrapped_bind, wrapped_connect, wrapped_listen,
902         wrapped_accept, wrapped_recv, wrapped_send, wrapped_select,
903         wrapped_getsockname, wrapped_getpeername, wrapped_setsockopt,
904         wrapped_closesocket prototypes.
905         * mswindows.c:  Remove wrapped_socket, wrapped_bind, wrapped_connect,
906         wrapped_listen, wrapped_accept, wrapped_recv, wrapped_send,
907         wrapped_select, wrapped_getsockname, wrapped_getpeername,
908         wrapped_setsockopt, wrapped_closesocket functions.  Remove WRAP macro.
909         * host.h [WINDOWS]: Include <winsock2.h> not <winsock.h>.
910         * connect.c: Include <sys/socket.h> and <sys/select.h> on any platform,
911         gnulib ensures they exist.  Remove `read', `write', `close' macros.
912         * Makefile.am: Copy build_info.c.in only if we are working in a VPATH.
913         (AM_CPPFLAGS): Add directory with generated gnulib files.
914
915 2010-05-06  Giuseppe Scrivano  <gscrivano@gnu.org>
916
917         * Makefile.am (build_info.c): Generate build_info.c in the builddir,
918         not srcdir.
919
920 2010-05-05  Giuseppe Scrivano  <gscrivano@gnu.org>
921
922         * http.c (gethttp): Give a nicer message on a malformed status line.
923
924 2010-05-04  Giuseppe Scrivano  <gscrivano@gnu.org>
925
926         * http.c (gethttp): Check `resp_status' return code and handle
927         errors.
928
929 2010-05-01  Giuseppe Scrivano <gscrivano@gnu.org>
930
931         * http.c (request_send): Specify 1.1 as HTTP version for requests.
932         (skip_short_body): Accept new parameter `chunked'.  New variable
933         `remaining_chunk_size'.  Handle the chunked transfer encoding.
934         (gethttp): New variable `chunked_transfer_encoding`.  Set `keepalive'
935         by default to true.  Check if the server is using the chunked transfer
936         encoding.
937
938         * retr.h: Define `rb_chunked_transfer_encoding'.
939
940         * retr.c (fd_read_body): New variable `chunked'.  New variable
941         `remaining_chunk_size'.  Handle the chunked transfer encoding.
942
943 2010-03-04  Steven Schubiger  <stsc@member.fsf.org>
944
945         * ftp.c (ftp_loop_internal): Omit input file from being
946         deleted after retrieval.
947
948         * retr.c (input_file_url): New function.
949
950         * retr.h: Add declaration for input_file_url.
951
952 2010-03-02  Steven Schubiger  <stsc@member.fsf.org>
953
954         * retr.c (retrieve_from_file): Improve checking for a URL
955         by invoking url_valid_scheme instead of url_has_scheme.
956
957         * url.c (url_valid_scheme): New function.
958
959         * url.h: Add declaration for url_valid_scheme.
960
961 2010-03-02  Steven Schubiger  <stsc@member.fsf.org>
962
963         * retr.c (retrieve_from_file): Free memory of input file.
964
965 2010-03-01  Steven Schubiger  <stsc@member.fsf.org>
966
967         * retr.c (retrieve_url): Retrieve the local filename from ftp_loop.
968         (retrieve_from_file): Return if there's no input file.
969
970         * ftp.c (ftp_loop_internal): Duplicate the local filename into
971         retrieve_url's scope when a valid reference is being passed.
972         (ftp_loop): Call ftp_loop_internal here with passing a
973         reference to the local filename, elsewhere with NULL.
974
975         * ftp.h: Adjust declaration of ftp_loop.
976
977 2010-01-27  Paul Townsend  <aab@purdue.edu>  (tiny change)
978
979         * retr.c (fd_read_body): Be sure to measure timer when time has
980         elapsed, too, not just when we've made progress.
981
982 2010-01-13  Micah Cowan  <micah@cowan.name>
983
984         * openssl.c: Fixed some mixed declarations-and-code.
985
986 2010-01-09  Micah Cowan  <micah@cowan.name>
987
988         * init.c, main.c, http.c, ftp.c, options.h: Renamed
989         --no-match-server-timestamps to --no-use-server-timestamps, and
990         add it to print_help.
991
992 2010-01-09  David Holman  <holman.david@gmail.com>  (tiny change)
993
994         * init.c, main.c, http.c, ftp.c, options.h: Added support for
995         --no-match-server-timestamps.
996
997 2009-12-03  Peter Rosin  <peda@lysator.liu.se>
998
999         * snprintf.c (dopr): Output %p as unsigned.
1000
1001 2010-01-09  Jeremy Olexa  <darkside@gentoo.org>  (tiny change)
1002
1003         * init.c: Deal with systems which provide PATH_MAX in
1004         sys/param.h rather than limits.h.
1005
1006 2009-10-09  Steven Schweda  <sms@antinode.info>
1007
1008         * utils.c: Added characters " : \ | to the list of normal
1009         caret-escaped (ODS5) characters in the char_prop[] table.
1010
1011 2009-09-22  Arvind Jamuna Dixit  <ardsrk@gmail.com>
1012
1013         * http.c (extract_param, parse_content_disposition): Support
1014         RFC 2231 while parsing Content-Disposition header
1015
1016 2009-10-24  Petr Pisar  <petr.pisar@atlas.cz>
1017
1018         * openssl.c: Implement support for (multiple) subjectAltNames in
1019         X509 certificates, not just the commonName.
1020
1021 2009-10-09  Micah Cowan  <micah@cowan.name>
1022
1023         * main.c: Fix declaration of compiled_features.
1024
1025         * build_info.c.in: Adapt to new input format. Added a check for
1026         large-file support. Replaced the "openssl" and "gnutls"
1027         advertisements with a single "ssl/foo" advertisement.
1028
1029 2009-09-30  Micah Cowan  <micah@cowan.name>
1030
1031         * sysdep.h: Unconditionally include stdbool.h (gnulib has it for
1032         systems that don't supply it.)
1033
1034         * vms.c: Added functions vms_basename(), used to extract the
1035         bare executable name from argv[0], and vms_getpass(), a
1036         VMS-specific replacement for GNU getpass().
1037
1038          vms.c: Added global string constants: compilation_string
1039         (NULL), link_string (NULL), and version_string (real).
1040
1041 2009-09-24  Micah Cowan  <micah@cowan.name>
1042
1043         * vms.c: Moved from vms/vms.c.
1044
1045         * sysdep.h: Use proper prototypes for snprintf, vsnprintf (thanks
1046         to Steven Schweda).
1047
1048 2009-09-24  Steven Schweda  <sms@antinode.info>
1049
1050         * main.c (print_version): Remove VMS-conditional build info
1051         string; the new VMS builders use OS_TYPE.
1052
1053         * ftp.c (getftp): Fix accidental use of target -> targ.
1054
1055 2009-09-24  Micah Cowan  <micah@cowan.name>
1056
1057         * host.c (host_errstr): host_errstr should return const char *.
1058
1059 2009-09-22  Micah Cowan  <micah@cowan.name>
1060
1061         * Makefile.am (version.c): Explicitly tell Mercurial where the
1062         top-source repository should be, so it doesn't accidentally use
1063         the repository for a containing directory (for instance, if the
1064         user's home directory is managed by a Mercurial repo). Also
1065         ensures we find the repository, even if the build directory is
1066         outside the source directory.
1067
1068         * wget.h: define WINDOWS if _WIN32 or __WIN32__ is defined, but
1069         not __CYGWIN__.
1070
1071         * mswindows.c (xsleep): Check for availability of the sleep
1072         function, in addition to the usleep function.
1073         (get_winsock_error, windows_strerror): Removed (gnulib already
1074         supplies this functionality).
1075
1076         * mswindows.h [NEED_GAI_STRERROR]: define gai_strerror
1077         to (gnulib's) strerror, rather than windows_strerror. Removed
1078         error macro definitions provided by gnulib.
1079         (windows_strerror): Removed (gnulib already supplies this
1080         functionality).
1081
1082         * host.c: Don't declare h_errno when building on Windows.
1083
1084         * Makefile.am (LIBS): Added @W32LIBS@.
1085         (EXTRA_wget_SOURCES): Removed (it's in LIBOBJ now).
1086         (version.c): Removed dependency on $(LDADD), since it may include
1087         dependencies that are not part of the Wget sources (-lwsock32, for
1088         instance).
1089
1090         * openssl.c (ssl_check_certificate): Avoid reusing the same buffer
1091         space for successive quoted arguments. Thanks to Steven Schweda
1092         for pointing out the problem.
1093
1094 2009-09-21  Micah Cowan  <micah@cowan.name>
1095
1096         * progress.c (update_speed_ring): "the the" -> "the".
1097
1098         * css-url.c, iri.c, mswindows.c: Removed assert.h inclusion (not
1099         using it).
1100
1101 2009-09-11  Steven Schweda  <sms@antinode.info>
1102
1103         * utils.c, utils.h (fopen_excl): Make second argument an int,
1104         rather than a bool (so it can handle the appropriate VMS version
1105         of the flag).
1106
1107         * main.c (print_version): Don't print LOCALEDIR unless NLS is
1108         enabled.
1109
1110         * http.c (gethttp): Pass FOPEN_BIN_FLAG, instead of true.
1111
1112         * ftp.c (ftp_retrieve_glob): Cast strcmp to assign to cmp, for a
1113         silly HP build environment.
1114
1115 2009-09-08  Steven Schubiger  <stsc@member.fsf.org>
1116
1117         * main.c, init.c: Mark the --preserve-permissions and
1118         --html-extension option as deprecated.
1119
1120 2009-09-06  Micah Cowan  <micah@cowan.name>
1121
1122         * ftp.c (getftp, ftp_loop_internal): Separate "len" input/output
1123         parameter (with different meanings for input and output), into two
1124         separate parameters, one input (passed_expected_bytes) and one
1125         output (qtyread). Fixes bug #26870.
1126
1127 2009-09-05  Steven Schubiger  <stsc@member.fsf.org>
1128
1129         * retr.h: Declare set_local_file() to avoid build warnings.
1130
1131 2009-09-05  Gisle Vanem  <gvanem@broadpark.no>
1132
1133         * connect.c, init.c, main.c, openssl.c, options.h:  Replace
1134         "ifdef MSDOS" with "ifdef USE_WATT32" since DOS-targets in fact
1135         use the Watt-32 tcp/ip stack.
1136
1137 2009-09-04  Micah Cowan  <micah@cowan.name>
1138
1139         * Makefile.am: Move build_info.c to wget_SOURCES from
1140         nodist_wget_SOURCES, reduce dependencies, and invoke build_info.pl
1141         in its new home, $(top_srcdir)/build-aux.
1142
1143 2009-09-03  Micah Cowan  <micah@cowan.name>
1144
1145         * ftp-ls.c (ftp_parse_vms_ls): Replace use of localtime_r with
1146         localtime, as not all platforms have localtime_r.
1147
1148         * Makefile.am (wget_SOURCES): Rearranged some of the file order,
1149         so .c files and .h files are apart. Added gettext.h, so that it
1150         shows up in the dist.
1151
1152 2009-09-02  Micah Cowan  <micah@cowan.name>
1153
1154         * gettext.h: Refreshed from gettext 0.17.
1155
1156         * test.c: Added definition of program_name variable, required by
1157         lib/error.c (libgnu.a). Doesn't cause problems until you try to
1158         build on a non-GNU system...
1159
1160         * build_info.c.in: Removed useless "+gettext" feature ad.
1161
1162 2009-08-29  Steven Schubiger  <stsc@member.fsf.org>
1163
1164         * convert.c (local_quote_string): Percent-encode semicolons
1165         in local file strings.
1166
1167 2009-08-27  Micah Cowan  <micah@cowan.name>
1168
1169         * wget.h (uerr_t): added new VERIFCERTERR code for SSL certificate
1170         problems. Marked exit codes that are defined but never used (at
1171         least, the ones I could find).
1172
1173         * retr.c, retr.h (retrieve_url): Added a new boolean argument to
1174         determine whether an exit status should be recorded.
1175         (retrieve_from_file): Adjust to new retrieve_url signature.
1176
1177         * res.c (res_retrieve_file): Don't have retrieve_url record an
1178         exit status for robots.txt.
1179
1180         * recur.c (retrieve_tree): Adjust to new retrieve_url signature.
1181
1182         * main.c (main): Use the exit status stored by retrieve_url.
1183
1184         * http.c (gethttp): Distinguish certificate verification problems
1185         from SSL connection issues.
1186         (http_loop): Handle newly-created VERIFCERTERR error code.
1187
1188         * exits.c, exits.h: Newly added.
1189
1190         * Makefile.am (wget_SOURCES): Add exits.c and exits.h.
1191
1192 2009-08-27  Micah Cowan  <micah@cowan.name>
1193
1194         * http.c (gethttp): Make sure Wget heeds cookies when they
1195         are sent with a 401 response; or any other sort of response for
1196         that matter (#26775).
1197
1198 2009-08-19  Micah Cowan  <micah@cowan.name>
1199
1200         * openssl.c (ssl_check_certificate): Only warn about an attack if
1201         the hostname would otherwise have matched. Also some formatting
1202         cleanup.
1203
1204 2009-08-19  Joao Ferreira  <joao@joaoff.com>
1205
1206         * openssl.c (ssl_check_certificate): Detect embedded NUL
1207         characters in the SSL certificate common name.
1208
1209 2009-08-17  Tony Lewis  <tlewis@exelana.com>
1210
1211         * http.c (gethttp): Ensure that we parse Content-Length before we
1212         attempt to refer to its value. Without this fix, NTLM support was
1213         completely buggered. #27192
1214
1215 2009-08-09  Michael Baeuerle  <michael.baeuerle@gmx.net>
1216
1217         * ftp.c: #include <strings.h> for strcasecmp.
1218
1219 2009-07-28  Micah Cowan  <micah@cowan.name>
1220
1221         * main.c (option_data): Rename --html-extension to
1222         --adjust-extension.
1223         (print_help): Ditto.
1224
1225         * options.h (struct option): Rename html_extension to
1226         adjust_extension.
1227         * http.c (gethttp): Ditto.
1228         * convert.c (local_quote_string): Ditto.
1229
1230         * init.c (commands): Add "adjustextension", and reflect rename
1231         change for opt.adjust_extension, for both "adjustextension" and
1232         "htmlextension".
1233
1234 2009-07-27  Micah Cowan  <micah@cowan.name>
1235
1236         * options.h (struct options): Added restrict_files_nonascii
1237         boolean field.
1238
1239         * url.c (FILE_CHAR_TEST): Add check for chars outside the ASCII
1240         range.
1241
1242         * init.c (defaults): Add restrict_files_nonascii to initialization.
1243         (cmd_spec_restrict_file_names): Allow parsing of "ascii" keyword.
1244
1245 2009-07-27  Marcel Telka  <marcel@telka.sk>
1246
1247         * iri.c (do_conversion): Typo: invalide -> invalid
1248
1249 2009-07-27  Petr Pisar  <petr.pisar@atlas.cz>
1250
1251         * main.c (print_help): Fixed a couple typos.
1252
1253 2009-07-26  Micah Cowan  <micah@cowan.name>
1254
1255         * main.c (option_data): Rename --locale option to --local-encoding
1256         (print_help): Document --no-iri, --local-encoding, and
1257         --remote-encoding, within usage message. Remove defunct
1258         --preserve-permissions.
1259
1260 2009-07-23  Micah Cowan  <micah@cowan.name>
1261
1262         * progress.c (get_eta): Change "Translation note" in comment to
1263         "TRANSLATORS", so it actually appears in wget.pot.
1264
1265 2009-07-06  Micah Cowan  <micah@cowan.name>
1266
1267         * main.c (print_help): Improve documentation of --base.
1268
1269 2009-07-05  Micah Cowan  <micah@cowan.name>
1270
1271         * html-url.c (tag_handle_meta): Handle meta name="robots"
1272         properly: deal with whitespace, commas after...
1273
1274         * netrc.c (parse_netrc): Rename local-scope variable "quote" to
1275         "qmark", to avoid conflict with the function name.
1276
1277 2009-07-05  Petr Pisar  <petr.pisar@atlas.cz>
1278
1279         * main.c (print_version): Mark initial line for translation, along
1280         with (env), (user), and (system). Change copyright year to 2009.
1281
1282         * http.c (http_loop): Space after colon.
1283
1284         * gnutls.c (ssl_check_certificate): Use quote function, rather
1285         than explicit quotes.
1286
1287 2009-07-05  Micah Cowan  <micah@cowan.name>
1288
1289         * Makefile.am (version.c): Add dependency on configure.ac.
1290
1291         * iri.c: Mark some strings for translation.
1292
1293 2009-07-04  Steven Schweda  <sms@antinode.info>
1294
1295         * wget.h (ORIG_SFX): Macro added, to supply an alternative "_orig"
1296         suffix on VMS.
1297
1298         * connect.c, host.c, host.h, main.c: Include "vms_ip.h" rather
1299         than <netdb.h> on VMS systems.
1300
1301         * convert.c (write_backup_file): Use "_orig" rather than ".orig"
1302         on VMS.
1303
1304         * ftp-basic.c (ftp_list): Don't use LIST -a on VMS servers.
1305
1306         * ftp.c [__VMS]: Include "vms.h"
1307         * ftp.c (getftp): Disable some unhelpful "for VMS" code. Pass the
1308         OS type to ftp_list.
1309         (getftp) [__VMS]: Alter the filename as required, and invoke fopen
1310         with extra optional arguments.
1311         (ftp_retrieve_list): Set permissions before setting the times.
1312
1313         * ftp-ls.c [__VMS]: Various improvements.
1314
1315         * http.c (SET_USER_AGENT): Added. Include operating-system info in
1316         the User-Agent header.
1317         (gethttp): Use ORIG_SFX macro.
1318         (gethttp) [__VMS]: invoke fopen with extra arguments to
1319         communicate file type.
1320         (http_loop): Add cast to time_t.
1321
1322         * init.c (wgetrc_user_file_name) [__VMS]: Adjustments for where to
1323         find the .wgetrc.
1324
1325         * log.c: Adjustments to improve handling of log files on VMS.
1326
1327         * main.c [__VMS]: Added --ftp-stmlf option (and associated
1328         documentation). Adjust description of backup-suffixes, as they now
1329         differ for VMS.
1330         (print_help, print_version): Include OS type in version
1331         information.
1332         (main) [__VMS]: Invoke fopen with extra options, to specify file
1333         type information.
1334
1335         * netrc.c (search_netrc) [__VMS]: Fix .netrc-finding.
1336
1337         * openssl.c, openssl.h (ssl_connect_wget): Renamed from ssl_connect.
1338
1339         * options.h (struct options): Add ftp_stmlf field.
1340
1341         * retr.c (write_data) [__VMS]: Avoid fflush.
1342
1343         * url.c [__VMS]: Include vms.h.
1344         * url.c (url_file_name) [__VMS]: Handle naming as required for VMS.
1345
1346         * utils.c [__VMS]: Include vms.h. Various added facilities for VMS
1347         needs.
1348
1349 2009-07-04  Micah Cowan  <micah@cowan.name>
1350
1351         * main.c (print_version): Allow localization of the version-info
1352         labels, eschew attempts at alignment (which is complicated when
1353         handling translated strings), and avoid using printf() with
1354         variable-stored format strings that lack conversion
1355         specifications.
1356         (format_and_print_line): For similar reasons, don't calculate
1357         line-continuation tabulation based on the number of bytes in a
1358         string.
1359
1360 2009-07-04  Steven Schubiger  <stsc@member.fsf.org>
1361
1362         * url.c (url_parse): If an URL scheme is invalid, distinguish
1363         between an unsupported or missing scheme.
1364
1365         * url.c: Add a "missing scheme" entry to parse_errors.
1366
1367 2009-07-03  Micah Cowan  <micah@cowan.name>
1368
1369         * iri.h (iri_dup): Provide macro definition for when IRIs are
1370         disabled.
1371
1372         * Makefile.am (LIBS): Added @LIBICONV@.
1373         (wget_SOURCES): Added iri.h.
1374         (EXTRA_wget_SOURCES): Added iri.c, so it gets packaged even if IRI
1375         support was disabled.
1376
1377 2009-07-02  Micah Cowan  <micah@cowan.name>
1378
1379         * recur.c (url_enqueue): Quote enqueue/dequeue debug messages.
1380
1381         * html-url.c (append_url): Change "merge()" quoting style from
1382         locale_quoting_style to escape_quoting_style.
1383
1384 2009-07-01  Micah Cowan  <micah@cowan.name>
1385
1386         * retr.c (retrieve_url): Use the existing "redirect" label,
1387         instead of superfluous "second_try". Removed no-longer-accurate
1388         debug statement. Use the "newloc" parameter to store the fallback
1389         URL, when IRI version was rejected.
1390
1391         * recur.c (retrieve_tree): Always use the parsed URL for tracking
1392         the Referer, since that's the one we actually requested (if
1393         there's a difference in terms of percent-encodings and such).
1394
1395 2009-07-01  Steven Schubiger  <stsc@member.fsf.org>
1396
1397         * Makefile.am: Add a rule to generate build_info.c and list
1398         the build_info.c.in file in EXTRA_DIST. Adjust elsewhere
1399         where needed.
1400
1401         * build_info.c: Remove this static source file.
1402
1403         * build_info.c.in: Data for generation of build_info.c.
1404
1405 2009-06-29  Micah Cowan  <micah@cowan.name>
1406
1407         * html-url.c (append_url): Quote some more arguments that might
1408         contain characters that are inappropriate to display for the
1409         current locale.
1410
1411         * retr.c (retrieve_from_file): Be sure to pass iri information
1412         when parsing an input-fle url, and be sure to hand a clean iri
1413         struct, off to retrieve_tree and retrieve_url.
1414
1415         * iri.c, iri.h (iri_dup): Added.
1416
1417         * retr.c (retrieve_url): Re-parse for IRI fallback.
1418
1419         * main.c (main): Set up iri before the url_parse invocation (so we
1420         can use it).
1421
1422 2009-06-20  Jay Krell  <jay.krell@cornell.edu>
1423
1424         * sysdep.h (_ALL_SOURCE): (small change) Define the _ALL_SOURCE
1425         macro on INTERIX systems. (I switched the location from ftp.c to
1426         sysdep.h --mjc)
1427
1428 2009-06-15  Micah Cowan  <micah@cowan.name>
1429
1430         * ftp.c (getftp): If we can't accept the connection, return
1431         CONERROR, not whatever the contents of err happens to be. Fixes
1432         bug #25015.
1433
1434         * retr.c (fd_read_body): Make both args to progress_create
1435         consistent, resulting in an accurate progress display. Fixes bug
1436         #24948.
1437
1438 2009-06-14  Micah Cowan  <micah@cowan.name>
1439
1440         * Makefile.am (wget_SOURCES): css-tokens.h needs to ship with
1441         dist, too.
1442
1443 2009-06-13  Micah Cowan  <micah@cowan.name>
1444
1445         * init.c: Rename setval_internal_wrapper to setval_internal_tilde,
1446         ensure we don't "replace" the tilde unless it's actually
1447         present. Clean up some minor GNU style issues.
1448
1449 2009-06-13  Julien Pichon  <julienpichon7@gmail.com>
1450
1451         * init.c: Handle tilde-expansion in wgetrc commands, without
1452         resorting to setting/unsetting globals to change behavior in one
1453         call location.
1454
1455 2009-06-12  Micah Cowan  <micah@cowan.name>
1456
1457         * host.c: Include <sys/types.h> before <sys/socket.h>. Not
1458         required by POSIX any more, but some older systems (such as
1459         FreeBSD 4.1) still need it, and it doesn't seem like it could
1460         hurt...
1461
1462         * build_info.c (library): Handle "https" as a feature in its own
1463         right, apart from "gnutls" and "openssl".
1464
1465         * host.c: Declare h_errno if no declaration is provided. Idea
1466         thanks to Maciej W. Rozycki.
1467
1468 2009-06-11  Xin Zou  <zouxin2008@gmail.com>
1469
1470         * http.c (gethttp): Fix some memory leaks.
1471
1472 2009-06-11  Micah Cowan  <micah@cowan.name>
1473
1474         * http.c (http_atotm): Handle potential for setlocale's return
1475         value to be static storage. Thanks to Benjamin Wolsey
1476         <bwy@benjaminwolsey.de>.
1477
1478         * sysdep.h: Need NAMESPACE_TWEAKS on non-Linux glibc-based
1479         systems, too. Thanks to Robert Millan.
1480
1481 2009-05-28  Steven Schubiger  <stsc@member.fsf.org>
1482
1483         * ftp.c (ftp_get_listing): Update the "listing file"
1484         string after calling ftp_loop_internal().
1485
1486 2009-05-27  Steven Schubiger  <stsc@member.fsf.org>
1487
1488         * ftp.c (ftp_get_listing): Duplicate the "listing file"
1489         string to avoid memory corruption when FOPEN_EXCL_ERR is
1490         encountered.
1491
1492 2009-05-17  Steven Schubiger  <stsc@member.fsf.org>
1493
1494         * progress.c (eta_to_human_short): Fix the remaining hours
1495         to be displayed. Spotted by Tadeu Martins (#26411).
1496
1497 2009-04-24  Micah Cowan  <micah@cowan.name>
1498
1499         * hash.c: Change stdint.h inclusion to use HAVE_STDINT_H, not C99
1500         check.
1501
1502         * connect.c: stdint.h inclusion added.
1503
1504         Thanks to Markus Duft <mduft@gentoo.org> for a similar patch.
1505
1506 2009-04-20  Micah Cowan  <micah@cowan.name>
1507
1508         * Makefile.am (version.c): Fix unportable use of "echo -n".
1509
1510 2009-04-13  Steven Schubiger  <stsc@member.fsf.org>
1511
1512         * ftp.c (ftp_retrieve_list): Move the duplicated code that
1513         determines the local file to a function.
1514
1515         * http.c (http_loop): Likewise.
1516
1517         * retr.c (set_local_file): New function.
1518
1519 2009-04-11  Steven Schubiger  <stsc@member.fsf.org>
1520
1521         * init.c (initialize): Run a custom SYSTEM_WGETRC when
1522         provided as an environment variable.
1523
1524 2009-02-27  Gisle Vanem  <gvanem@broadpark.no>
1525
1526         * main.c (main): "freopen (NULL,.." causes an assertion in MSVC
1527         debug-mode.  I.e. NULL isn't legal. But the "CONOUT$" device works
1528         fine.
1529
1530 2009-02-27  Steven Schubiger  <stsc@member.fsf.org>
1531
1532         * ftp.c (ftp_loop_internal): Don't claim for FTP retrievals
1533         when writing to standard output either that the document
1534         has been saved. Addresses bug #20520 again.
1535
1536 2009-02-21  Steven Schubiger  <stsc@member.fsf.org>
1537
1538         * http.c (http_loop): When a document is written to
1539         standard output, don't claim it has been saved to a file.
1540         Addresses bug #20520.
1541
1542 2009-02-18  Steven Schubiger  <stsc@members.fsf.org>
1543
1544         * recur.h: Remove the dangling declaration for recursive_cleanup().
1545
1546 2009-02-01  Gerardo E. Gidoni  <gerel@gnu.org>
1547
1548         * main.c, recur.c, recur.h, res.c, retr.c, retr.h: restructured code to
1549         avoid multiple 'url_parse' calls.
1550
1551 2008-11-13  Micah Cowan  <micah@cowan.name>
1552
1553         * http.c (gethttp): Don't do anything when content-length >= our
1554         requested range.
1555
1556 2008-11-27  Saint Xavier  <wget@sxav.eu>
1557
1558         * http.c (gethttp): Move authentication code before filename
1559         allocation avoiding fallbacking on default filename because
1560         "Content-Disposition" header wasn't present before authentcation
1561         has been completed. Fixes bug #24862.
1562
1563 2008-11-16  Steven Schubiger  <stsc@members.fsf.org>
1564
1565         * main.c: Declare and initialize the numurls counter.
1566
1567         * ftp.c, http.c: Make the counter visible here and use it.
1568
1569         * options.h: Remove old declaration from options struct.
1570
1571 2008-11-15  Steven Schubiger  <stsc@members.fsf.org>
1572
1573         * init.c (defaults): Set default waitretry value.
1574
1575 2008-11-14  Steven Schubiger  <stsc@members.fsf.org>
1576
1577         * main.c (format_and_print_line): Use a custom format
1578         string for printing leading spaces.
1579
1580 2008-11-12  Micah Cowan  <micah@cowan.name>
1581
1582         * ftp-ls.c (ftp_index): HTML-escape dir name in title, h1, a:href.
1583
1584 2008-11-12  Alexander Belopolsky  <alexander.belopolsky@gmail.com>
1585
1586         * url.c, url.h (url_escape_unsafe_and_reserved): Added.
1587
1588         * ftp-ls.c (ftp_index): URL-escape, rather than HTML-escape, the
1589         filename appearing in the link.
1590
1591 2008-11-12  Steven Schubiger  <stsc@members.fsf.org>
1592
1593         * main.c (print_version): Hand the relevant
1594         xstrdup/xfree calls back to format_and_print_line().
1595
1596 2008-11-11  Steven Schubiger  <stsc@members.fsf.org>
1597
1598         * main.c (format_and_print_line): Move both the memory
1599         allocating and freeing bits upwards to print_version().
1600
1601 2008-11-10  Saint Xavier  <wget@sxav.eu>
1602
1603         * http.c: Make --auth-no-challenge works with user:pass@ in URLs.
1604
1605 2008-11-05  Micah Cowan  <micah@cowan.name>
1606
1607         * ftp.c (print_length): Should print humanized "size remaining"
1608         only when it's at least 1k.
1609
1610 2008-10-31  Micah Cowan  <micah@cowan.name>
1611
1612         * main.c (print_version): Add information about the mailing list.
1613
1614 2008-10-31  Alexander Drozdov  <dzal_mail@mtu-net.ru>
1615
1616         * retr.c (fd_read_hunk): Make assert deal with maxsize == 0.
1617
1618         * ftp-ls.c (clean_line): Prevent underflow on empty lines.
1619
1620 2008-10-26  Gisle Vanem  <gvanem@broadpark.no>
1621
1622         * main.c (format_and_print_line): Put variables on top of
1623         blocks (not all compilers are C99). Add an extra '\n' if
1624         SYSTEM_WGETRC isn't defined and printed.
1625
1626 2008-09-09  Gisle Vanem  <gvanem@broadpark.no>
1627
1628         * url.c (url_error): Use aprintf, not asprintf.
1629
1630 2008-09-09  Micah Cowan  <micah@cowan.name>
1631
1632         * init.c (home_dir): Save the calculated value for home,
1633         to avoid duplicated work on repeated calls.
1634         (wgetrc_file_name) [WINDOWS]: Define and initialize home var.
1635
1636         * build_info.c, main.c: Remove unnecessary extern vars
1637         system_wgetrc and locale_dir.
1638
1639         * main.c: Define program_name for lib/error.c.
1640
1641 2008-09-02  Gisle Vanem  <gvanem@broadpark.no>
1642
1643         * mswindows.h: Must ensure <stdio.h> is included before
1644         we redefine ?vsnprintf().
1645
1646 2008-08-08  Steven Schubiger  <stsc@members.fsf.org>
1647
1648         * main.c, utils.h: Removed some dead conditional DEBUG_MALLOC code.
1649
1650 2008-08-03  Micah Cowan  <micah@cowan.name>
1651
1652         * main.c (print_help): Added --default-page.
1653
1654 2008-08-01  Joao Ferreira  <joao@joaoff.com>
1655
1656         * init.c, main.c, options.h, url.c: Added option --default-page
1657         to support alternative default names for index.html
1658
1659 2008-08-03  Micah Cowan  <micah@cowan.name>
1660
1661         * build_info.c, css-url.c: #include wget.h, not config.h.
1662
1663 2008-08-03  Steven Schubiger  <stsc@members.fsf.org>
1664
1665         * url.c, url.h (url_error): Better messages for unsupported
1666         schemes, especially https.
1667
1668         * html-url.c, recur.c, retr.c: Adjust to new url_error
1669         invocation, and free result.
1670
1671 2008-07-17  Steven Schubiger  <stsc@members.fsf.org>
1672
1673         * retr.c (retrieve_from_file): When given an URL as input file,
1674         use it as baseref if none was specified and treat the input file
1675         as HTML if its content type is text/html.
1676
1677         * init.c (cleanup): Free the memory associated with the base
1678         option (when DEBUG_MALLOC is defined).
1679
1680 2008-07-02  Xavier Saint  <wget@sxav.eu>
1681
1682         * iri.c, iri.h  : New function idn_decode() to decode ASCII
1683         encoded hostname to the locale.
1684
1685         * host.c : Show hostname to be resolved both in locale and
1686         ASCII encoded.
1687
1688 2008-06-28  Steven Schubiger  <stsc@members.fsf.org>
1689
1690         * retr.c (retrieve_from_file): Allow for reading the links from
1691         an external file (HTTP/FTP).
1692
1693 2008-06-26  Xavier Saint  <wget@sxav.eu>
1694
1695         * iri.c, iri.h : New functions locale_to_utf8() and
1696         idn_encode() adding basic capabilities of IRI/IDN.
1697
1698         * url.c : Convert URLs from locale to UTF-8 allowing a basic
1699         support of IRI/IDN
1700
1701 2008-06-25  Steven Schubiger  <stsc@members.fsf.org>
1702
1703         * ftp.c (getftp): When spidering a FTP URL, emit a diagnostic
1704         message if the remote file exists.
1705
1706 2008-06-24  Steven Schubiger  <stsc@members.fsf.org>
1707
1708         * http.c (http_loop): Replace escnonprint() occurence with
1709         a quotearg_style() call.
1710
1711 2008-06-24  Micah Cowan  <micah@cowan.name>
1712
1713         * ftp-ls.c (ftp_index): Don't assume time_t* is compatible with
1714         long*. Fixes crash on Windows, and probably other systems.
1715
1716 2008-06-22  Steven Schubiger  <stsc@members.fsf.org>
1717
1718         * http.c: Explicitly initialize and deallocate the message
1719         string used by the -nv --spider functionality.
1720
1721 2008-06-22  Steven Schubiger  <schubiger@gmail.com>
1722
1723         * http.c: Make -nv --spider include the file's name when it
1724         exists.
1725
1726 2008-06-22  Micah Cowan  <micah@cowan.name>
1727
1728         * Makefile.am (version.c): Fixed version string invocation so it
1729         once again can't result in unterminated strings, made all the
1730         string vars pointers-to-const, and moved line lengths
1731         below 80 (in Makefile.am, not in version.c).
1732
1733 2008-06-19  Xavier Saint  <wget@sxav.eu>
1734
1735         * iri.c, iri.h : New function check_encoding_name() as
1736         a preliminary encoding name check.
1737
1738         * main.c, iri.c : Make use of check_encoding_name().
1739
1740 2008-06-19  Xavier Saint  <wget@sxav.eu>
1741
1742         * iri.c : Include missing stringprep.h file and add a
1743         cast.
1744
1745         * init.c : set a default initial value for opt.enable_iri,
1746         opt.locale and opt.encoding_remote.
1747
1748 2008-06-19  Xavier Saint  <wget@sxav.eu>
1749
1750         * iri.c, iri.h : Add a new function find_locale() to find
1751         out the local system encoding.
1752
1753         * main.c : Make use of find_locale().
1754
1755 2008-06-19  Xavier Saint  <wget@sxav.eu>
1756
1757         * html-url.c : Add "content-type" meta tag parsing for
1758         retrieving page encoding.
1759
1760         * iri.h : Make no-op version of parse_charset() return
1761         NULL.
1762
1763 2008-06-16  Micah Cowan  <micah@cowan.name>
1764
1765         * http.c (http_loop): When hstat.len is higher than the
1766         successfully completed content's length, but it's because we
1767         _set_ it that way, don't abort.
1768
1769 2008-06-14  Xavier Saint  <wget@sxav.eu>
1770
1771         * iri.c, iri.h : New files.
1772
1773         * Makefile.am : Add files iri.h and conditional iri.c.
1774
1775         * build_info.c : Add compiled feature "iri".
1776
1777         * http.c : include iri.h and parse charset from Content-Type
1778         header.
1779
1780         * init.c, main.c, options.h : if an options isn't supported
1781         at compiled time, don't get rid off it and show a dummy
1782         message instead if they are used.
1783
1784 2008-06-13  Micah Cowan  <micah@cowan.name>
1785
1786         * build_info.c: ENABLE_NTLM, not HAVE_NTLM; distinguish OpenSSL
1787         from "ssl".
1788
1789 2008-06-13  Madhusudan Hosaagrahara <com.gmail.hrmadhu>
1790
1791         * Makefile.am, main.c, init.c, init.h, build_info.c: Adds build
1792         information to the --version command line option. Fixes bug
1793         #20636.
1794
1795 2008-06-01  Micah Cowan  <micah@cowan.name>
1796
1797         * main.c [WINDOWS]: Reopen stdout in binary mode, when -O - is
1798         given.
1799
1800 2008-05-31 Micah Cowan  <micah@cowan.name>
1801
1802         * html-url.c, http.c: Avoid casts in a couple spots.
1803
1804 2008-05-30 Henri Häkkinen  <henux@users.sourceforge.net>
1805
1806         * cookies.c, ftp-basic.c, hash.c, html-url.c, http-ntlm.c, http.c,
1807         init.c, log.c, main.c, progress.c, ptimer.c, spider.c, url.c,
1808         utils.c: Minor changes to silence warnings when using -Wall.
1809
1810 2008-05-26  Steven Schubiger  <schubiger@gmail.com>
1811
1812         * ftp.c (getftp): Replace last remaining invocation of escnonprint
1813         with gnulib quote.
1814
1815 2008-05-19  Micah Cowan  <micah@cowan.name>
1816
1817         * main.c (main): Password prompt should be done only once (not
1818         once per argument), and should be done prior to the background
1819         fork.
1820
1821 2008-05-17  Steven Schubiger  <schubiger@gmail.com>
1822
1823         * init.c (defaults): Set the preferred IP family to `none' by
1824         default.
1825
1826 2008-05-17  Kenny Parnell  <k.parnell@gmail.com>
1827
1828         (cmd_spec_prefer_family): Initialize prefer_family to prefer_none.
1829
1830 2008-05-17  Micah Cowan  <micah@cowan.name>
1831
1832         * main.c (main): Handle Ctrl-D on command-line.
1833
1834 2008-05-15  Steven Schubiger  <schubiger@gmail.com>
1835
1836         * ftp.c (getftp): Verify that the file actually exists in FTP, by
1837         checking it against the listing.
1838
1839 2008-05-15  Micah Cowan  <micah@cowan.name>
1840
1841         * main.c (prompt_for_password): Use the quote module.
1842
1843 2008-05-14  Micah Cowan  <micah@cowan.name>
1844
1845         * ftp.c (ftp_retrieve_list): Symlinks and other filenames
1846         should be fully quoted.
1847
1848 2008-05-12  Micah Cowan  <micah@cowan.name>
1849
1850         * main.c (main): Downgrade "-N with -O" to a warning, and switch
1851         it off to avoid confusing messages.
1852
1853 2008-04-30  Micah Cowan  <micah@cowan.name>
1854
1855         * progress.c (create_image): Fix glitch where too many spaces are
1856         printed on lines that don't display the ETA, in multibyte
1857         locales.
1858
1859 2008-04-30  Steven Schubiger  <stsc@members.fsf.org>
1860
1861         * main.c (main): New code that handles prompting for passwords
1862         when specified explicitly via command-line option (using gnulib's
1863         getpass-gnu module).
1864         (main): Include the getpass header.
1865
1866         * init.c: Add "ask-password" to the list of recognized commands.
1867
1868         * options.h: Add an according boolean member to the options
1869         struct.
1870
1871         * sysdep.h: Comment the defines __EXTENSIONS__ and _GNU_SOURCE
1872         out, because they're now defined independently by config.h.
1873
1874 2008-04-27  Rabin Vincent  <rabin@rab.in>
1875
1876         * http.c (http_loop): Fix return for the case where we don't
1877         download a file because of -nc.
1878
1879 2008-04-27  Micah Cowan  <micah@cowan.name>
1880
1881         * url.c (path_simplify): Go back to allowing leading ".." in
1882         paths, but only for FTP URLs.
1883         (test_path_simplify): Add scheme-specificness to tests, adapt for
1884         mu_run_test.
1885
1886         * test.c (all_tests): Add test_path_simplify.
1887
1888         * main.c (main): Downgrade -r, -p with -O to a warning rather than
1889         an error; elaborate just a bit more for other -O combination
1890         cases.
1891
1892 2008-04-26  Micah Cowan  <micah@cowan.name>
1893
1894         * http.c (gethttp): Move proxy CONNECT handling to below the
1895         retry_with_auth label, to deal with properly reconnecting to
1896         proxies when we need to authenticate.
1897
1898 2008-04-25  Micah Cowan  <micah@cowan.name>
1899
1900         * Makefile.am: -I foo -> -Ifoo.
1901
1902 2008-04-24  Micah Cowan  <micah@cowan.name>
1903
1904         * main.c: Revised usage description of --convert-links to apply
1905         to CSS as well as to HTML.
1906
1907 2008-04-23  Micah Cowan  <micah@cowan.name>
1908
1909         * utils.c (test_dir_matches_p): Added a test for the case
1910         described in issue #20518.
1911
1912 2008-04-22  Micah Cowan  <micah@cowan.name>
1913
1914         * Makefile.am, css.lex, css.l: Renamed css.lex to css.l.
1915         * recur.c (retrieve_tree): Fix typo to allow text/css files to
1916         be parsed.
1917
1918 2008-04-22  Ted Mielczarek  <ted.mielczarek@gmail.com>
1919
1920         * css.lex, css-url.c, css-url.h: Added to implement support for
1921         parsing CSS in Wget.
1922         * convert.c: Convert links in CSS files, too.
1923         * convert.h (convert_options): Added for options link_css_p,
1924         link_expect_css.
1925         * convert.h: Added prototype for new register_css function.
1926         * html-parse.c: Added support for parsing element content, in
1927         addition to tag starts and ends.
1928         * html-parse.h (taginfo): Added delimiter fields for element
1929         content.
1930         * html-url.h: Added.
1931         * html-url.c (append_url): No longer internal-linkage only. Now
1932         takes position and size as explicit parameters.
1933         * html-url.c: Use new html-url.h header, add support for
1934         handling of "style" HTML attributes. Mark URIs obtained from
1935         link tags with rel="stylesheet" with link_expect_css. Adapt
1936         uses of append_url to supply the newly-added parameters for
1937         position and size.
1938         * http.c: Add detection for when the content-type is text/css;
1939         and ensure that such files have the ".css" filename extension,
1940         when --convert-links is active.
1941         * recur.h: Remove declarations for functions found in
1942         html-url.c (moved to html-url.h).
1943         * recur.c: Add support for culling links from CSS files, too,
1944         and tracking for when we're expecting the file to be CSS (even
1945         when its content type isn't text/css).
1946         * retr.c (retrieve_url): Add registration of CSS files.
1947         * wget.h: Added TEXTCSS to dt flags enum.
1948         * Makefile.am: Added css.lex, css-url.c, css-url.h, html-url.h
1949         to wget_SOURCES.
1950
1951 2008-04-22  Jim Paris  <jim@jtan.com>
1952
1953         * openssl.c (ssl_init): Enable combined certificate/key in
1954         single file (apparent regression from ~1.9). Resolves issue
1955         #22767.
1956
1957 2008-04-22  Steven Schubiger  <schubiger@gmail.com>
1958
1959         * http.c (print_response_line): Changed to make responses always
1960         be logged, even in --quiet mode, if --server-response was
1961         specified. This is to bring http.c's handling of the situation
1962         in line with ftp.c's.
1963
1964 2008-04-22  Pranab Shenoy  <pranab.loosinit.shenoy@gmail.com>
1965
1966         * init.c: Added test_commands_sorted unit test to check is
1967         commands are sorted.  Fixes bug #21245.
1968
1969         * test.c: Added test_commands_sorted to the test suite.
1970
1971 2008-04-22  Rabin Vincent  <rabin@rab.in>
1972
1973         * ftp.c (ftp_get_listing): Only remove .listing if it has been
1974         created.
1975
1976 2008-04-22  Alain Guibert  <alguibert+bts@free.fr>
1977
1978         * test.h (mu_run_test): Move declaration before statements, for
1979         C90 conformance. Fixes bug #22789.
1980
1981 2008-04-22  Mike Frysinger  <vapier@gentoo.org>
1982
1983         * Makefile.am: Move @LIBS@ after other libraries, for better
1984         static-linking support. Fixes bug #22143.
1985
1986 2008-04-16  Steven Schubiger  <schubiger@gmail.com>
1987
1988         * ftp.c: Use Gnulib's quote function for printing filenames and
1989         such.
1990         * connect.c: Likewise.
1991         * convert.c: Likewise.
1992         * cookies.c: Likewise.
1993         * ftp-opie.c: Likewise.
1994         * gnutls.c: Likewise.
1995         * init.c: Likewise.
1996         * log.c: Likewise.
1997         * mswindows.c: Likewise.
1998         * openssl.c: Likewise.
1999         * progress.c: Likewise.
2000         * recur.c: Likewise.
2001         * res.c: Likewise.
2002         * utils.c: Likewise.
2003
2004 2008-04-16  Steven Schubiger  <schubiger@gmail.com>
2005
2006         * sysdep.h: Comment the defines __EXTENSIONS__ and _GNU_SOURCE
2007         out, because they're now defined independently by config.h.
2008
2009 2008-04-14  Steven Schubiger  <schubiger@gmail.com>
2010
2011         * http.c: Use Gnulib's quote function for printing filenames and
2012         such.
2013         * wget.h: #include "quote.h".
2014
2015 2008-04-12  Rabin Vincent  <rabin@rab.in>
2016
2017         * mswindows.c (fake_fork_child): Don't create a logfile for
2018         --background when --quiet is used, but not --server-response.
2019         Fixes bug #20917.
2020
2021         * utils.c (fork_to_background): Likewise.
2022
2023 2008-04-12  Micah Cowan  <micah@cowan.name>
2024
2025         * utils.c (aprintf): Minor formatting changes to Alex's code (80-
2026         column limit, concatenated string literals, avoiding nesting
2027         levels), and removed invocation of free (since we're aborting
2028         anyway).
2029
2030 2008-04-11  Alexander Dergachev  <cy6erbr4in@gmail.com>
2031
2032         * utils.c (aprintf): Now we are setting limits (1 Mb) for text
2033         buffer when we use non-C99 vsnprintf.
2034
2035 2008-04-11  Micah Cowan  <micah@cowan.name>
2036
2037         * ftp.c (getftp, ftp_loop_internal): Don't append to an existing
2038         .listing when --continue is used.  Fixes bug #22825. Thanks to
2039         Rabin Vincent <rabin@rab.in> for pointing the way with a
2040         suggested fix!
2041
2042 2008-04-10  Alexander Dergachev  <cy6erbr4in@gmail.com>
2043
2044         * xmalloc.c, xmalloc.h (memfatal): Now exported; accepts an
2045         "unknown" value for the attempted allocation size.
2046         * utils.c (aprintf): Now calls memfatal, instead of aborting.
2047
2048 2008-03-19  Micah Cowan  <micah@cowan.name>
2049
2050         * utils.c (test_dir_matches_p): More tests related for
2051         dir_matches_p.
2052
2053 2008-03-17  Micah Cowan  <micah@cowan.name>
2054
2055         * connect.c: Include sys/time.h to support use of the select
2056         function on older systems.
2057
2058 2008-02-11  Benno Schulenberg  <bensberg@justemail.net>
2059
2060         * http.c: More accurate and descriptive messages for when a file
2061         won't be retrieved during spider-mode.
2062
2063 2008-02-10  Micah Cowan  <micah@cowan.name>
2064
2065         * http.c: Added existence_checked member to the http_stat
2066         struct.
2067         (gethttp): Mark hs->existence_checked when we've checked whether
2068         a file-to-download exists; so we don't check it again if the
2069         connection gets lost (and potentially pick a new "unique" name).
2070         This fixes bug 22251.
2071         * progress.c (create_image): Add space for an extra column in
2072         the "eta" portion of the progress bar image; to deal with
2073         too-long Czech translation.
2074         * main.c, http.c, init.c: Added --auth-no-challenge option, to
2075         bring back 1.10.2 unsafe auth behavior when needed. This fixes
2076         bug #22242.
2077
2078 2008-02-07  Micah Cowan  <micah@cowan.name>
2079
2080         * progress.c (create_image): Remove assertion on exceeding
2081         screen width, which given the less-than-robust code there, can
2082         be broken by a number of factors (such as large file downloads).
2083
2084 2008-02-06  Micah Cowan  <micah@cowan.name>
2085
2086         * progress.c (countcols): Use strlen() when mbtowc or wcwidth
2087         not available (or not using NLS).
2088         * utils.c: Ensure we use single-byte separators when not doing
2089         NLS progress-bars.
2090         * wget.h: Determine whether to use NLS for progress-bars, based
2091         on whether wcwidth and mbtowc are available.
2092
2093 2008-02-03  Micah Cowan  <micah@cowan.name>
2094
2095         * progress.c (create_image): Use number of characters/columns
2096         consumed, rather than number of bytes, to determine how much of
2097         a line we've used. Fixes assertion errors and field alignment
2098         bugs (#22161, #20481)
2099         (get_eta, count_cols): Added to support the changes for
2100         create_image.
2101         * http.c (http_loop): Put no-clobber logic back into http_loop,
2102         before starting to fetch, for when we're not doing
2103         content-disposition.
2104
2105 2008-01-31  Micah Cowan  <micah@cowan.name>
2106
2107         * http.c (gethttp): Don't derive hs->contlen from possibly
2108         invalid/missing Content-Length; instead, get the appropriate
2109         value from the Content-Range header values.
2110         (parse_content_range): Handle '*' instance-length field.
2111
2112 2008-01-25  Micah Cowan  <micah@cowan.name>
2113
2114         * main.c: Added notes to translators regarding (C), diacritics
2115         in names.
2116         * Makefile.am, cmpt.c, connect.c, connect.h, convert.c,
2117         cookies.c, cookies.h, ftp-basic.c, ftp-ls.c, ftp-opie.c, ftp.c,
2118         ftp.h, gen-md5.c, gen-md5.h, gnutls.c, hash.c, hash.h, host.c,
2119         host.h, html-parse.c, html-parse.h, html-url.c, http-ntlm.c,
2120         http-ntlm.h, http.c, http.h, init.c, init.h, log.c, log.h,
2121         main.c, mswindows.c, mswindows.h, netrc.c, netrc.h, openssl.c,
2122         options.h, progress.c, progress.h, ptimer.c, ptimer.h, recur.c,
2123         recur.h, res.c, res.h, retr.c, retr.h, spider.c, spider.h,
2124         ssl.h, sysdep.h, test.c, test.h, url.c, url.h, utils.c,
2125         utils.h, wget.h, xmalloc.c, xmalloc.h: Updated copyright year.
2126
2127 2007-12-10  Micah Cowan  <micah@cowan.name>
2128
2129         * main.c: The option is --content-disposition, not
2130         --no-content-disposition (at the moment).
2131
2132 2007-12-08  Hrvoje Niksic  <hniksic@xemacs.org>
2133
2134         * ftp.c (ftp_retrieve_glob): Print both arguments of fnmatch in
2135         fnmatch error message.
2136         (ftp_retrieve_glob): Don't match with fnmatch if we're only
2137         supposed to get one file.
2138
2139 2007-12-07  Micah Cowan  <micah@cowan.name>
2140
2141         * Makefile.am: Plug in vars to include stuff from
2142         $(top_srcdir)/md5 when appropriate.
2143
2144 2007-12-05  Micah Cowan  <micah@cowan.name>
2145
2146         * utils.c (subdir_p): Handle the case where d1 is "".
2147         * convert.c (convert_all_links): Don't return without
2148         deallocating timer.
2149
2150 2007-11-28  Micah Cowan  <micah@cowan.name>
2151
2152         * Makefile.am, cmpt.c, connect.c, connect.h, convert.c,
2153         convert.h, cookies.c, cookies.h, ftp-basic.c, ftp-ls.c,
2154         ftp-opie.c, ftp.c, ftp.h, gen-md5.c, gen-md5.h, gnutls.c,
2155         hash.c, hash.h, host.c, host.h, html-parse.c, html-parse.h,
2156         html-url.c, http-ntlm.c, http-ntlm.h, http.c, http.h, init.c,
2157         init.h, log.c, log.h, main.c, mswindows.c, mswindows.h,
2158         netrc.c, netrc.h, openssl.c, options.h, progress.c, progress.h,
2159         ptimer.c, ptimer.h, recur.c, recur.h, res.c, res.h, retr.c,
2160         retr.h, safe-ctype.c, safe-ctype.h, spider.c, spider.h, ssl.h,
2161         sysdep.h, test.c, test.h, url.c, url.h, utils.c, utils.h,
2162         wget.h, xmalloc.c, xmalloc.h: Updated license exception for
2163         OpenSSL, per the SFLC.
2164
2165 2007-10-30  Micah Cowan  <micah@cowan.name>
2166
2167         * main.c (main): Declare argv parameter as char **argv, rather
2168         than char *const *argv. This fixes usage of getopt_long,
2169         regardless of whether getopt_long has a constified argv or not.
2170
2171 2007-10-22  Gisle Vanem  <gvanem@broadpark.no>
2172
2173         * mswindows.c: Move INHIBIT_WRAP macro definition up with wget.h
2174         inclusion.
2175
2176 2007-10-18  Steven Schweda  <sms@antinode.org>
2177
2178         * sysdep.h: #include <stdint.h> as well as <inttypes.h>, to work
2179         around a glitch on Tru64 systems.
2180
2181 2007-10-18  Micah Cowan  <micah@cowan.name>
2182
2183         * Makefile.am: version.c should not be distributed. Removed
2184         config-post.h. Add version.c dependency and gnulib include path
2185         for libunittest.a.
2186         * sysdep.h: Got contents of config-post.h
2187         * config-post.h: Removed.
2188         * wget.h: #include "config.h".
2189         * alloca.c, cmpt.c, connect.c, convert.c, cookies.c,
2190         ftp-basic.c, ftp-ls.c, ftp-opie.c, ftp.c, gen-md5.c, gnutls.c,
2191         hash.c, host.c, html-parse.c, html-url.c, http-ntlm.c, http.c,
2192         init.c, log.c, main.c, mswindows.c, netrc.c, openssl.c,
2193         progress.c, ptimer.c, recur.c, res.c, retr.c, spider.c, url.c,
2194         utils.c, xmalloc.c: Use wget.h at very top, and instead of
2195         config.h.
2196
2197 2007-10-15  Micah Cowan  <micah@cowan.name>
2198
2199         * Makefile.am: Remove intermediary hg-id file generation, make
2200         version.c-generation more portable.
2201
2202 2007-10-14  Micah Cowan  <micah@cowan.name>
2203
2204         * cmpt.c, cookies.c, ftp-basic.c, ftp-ls.c, ftp.c, hash.c,
2205         host.c, html-parse.c, html-url.c, http-ntlm.c, http.c, init.c,
2206         log.c, main.c, netrc.c, openssl.c, res.c, url.c, utils.c,
2207         wget.h: Replace uses of ISSPACE, etc with c_isspace, etc.
2208         * gnu-md5.c, gnu-md5.h: Removed, in deference to gnulib.
2209         * Makefile.am: Removed gnu-md5.h from wget_SOURCES.
2210         * gen-md5.c: Changed #inclusion of gnu-md5.h to md5.h (gnulib's).
2211         * recur.c (download_child_p): Print error if unlink of
2212         robots.txt fails.
2213         * main.c (main): --spider or --delete-after now implies
2214         --no-directories (thanks, Josh Williams).
2215
2216 2007-10-14  Joshua David Williams  <yurimxpxman@gmail.com>
2217
2218         * recur.c (download_child_p): Remove robots.txt if
2219         --delete-after or --spider is on.
2220
2221 2007-10-13  Micah Cowan  <micah@cowan.name>
2222
2223         * Makefile.am: Make version.c depend on Wget dependencies (source
2224         files, plus such things as LIBOBJS so we get things like
2225         http-ntlm.c). Removed getopt.[ch], as we're now using gnulib for
2226         these.
2227
2228 2007-10-10  Micah Cowan  <micah@cowan.name>
2229
2230         * http-ntlm.c: Include openssl/opensslv.h explicitly, instead of
2231         hoping it'll be included by accident in openssl/des.h.
2232
2233 2007-10-09  Gisle Vanem  <gvanem@broadpark.no>
2234
2235         * mswindows.c: 'argc' and 'argv' in 'windows_main()' are no longer
2236         needed.  Hence simply the prototype. Free 'exec_name' at exit.
2237
2238 2007-10-09  Micah Cowan  <micah@cowan.name>
2239
2240         * gettext.h: Imported from /usr/share/gettext, fuller handling
2241         of --disable-nls.
2242         * wget.h: Remove logic for handling lack of NLS (now in
2243         gettext.h).
2244         * main.c: Use gettext's ENABLE_NLS rather than HAVE_NLS.
2245         * Makefile.am: added @LIBINTL@ to LIBS (though it probably
2246         belongs in LDADD, along with everything else currently assigned
2247         to LIBS).
2248
2249 2007-10-08  Micah Cowan  <micah@cowan.name>
2250
2251         * http.c (http_loop): Add send_head_first conditional back
2252         around code that needs it, but not around the last-modified
2253         header-parsing stuff this time. Removed no-longer-useful (was it
2254         ever?) restart_loop boolean, continuing unconditionally at end
2255         of send_head_first conditional block (if we haven't jumped out).
2256
2257 2007-10-04  Micah Cowan  <micah@cowan.name>
2258
2259         * http.c (http_loop): We've got_name if content_disposition
2260         support isn't on; make sure we continue properly in that case,
2261         even though we're not sending HEAD.
2262         * Makefile.in: Removed, replaced by Makefile.am.
2263         * Makefile.am: Converted from Makefile.in.
2264
2265 2007-10-02  Gisle Vanem  <gvanem@broadpark.no>
2266
2267         * ftp.c: Use "_listing" for MSDOS (".listing" is illegal).
2268
2269         * url.c: Update comment for 'filechr_not_windows'.
2270
2271         * utils.c: Include <process.h> for 'getpid()' on Watcom.
2272
2273 2007-10-02  Micah Cowan  <micah@cowan.name>
2274
2275         * ftp.c (getftp, ftp_loop_internal), http.c (http_loop), main
2276         (main): Use datetime_str instead of time_str, for those who have
2277         potentially long-running sessions. Based on suggestions by Saso
2278         Tomat <miskox@hotmail.com> and Steven M. Schweda
2279         <sms@antinode.org>.
2280         * http.c (gethttp): Warn about host lookup failures. Adjusted
2281         from Stephen Gildea's patch.
2282
2283 2007-10-02  Stephen Gildea  <stepheng+wget@gildea.com>
2284
2285         * connect.c (connect_to_host): Warn about host lookup failures.
2286
2287 2007-09-25  Micah Cowan  <micah@cowan.name>
2288
2289         * Makefile.in: Use EXEEXT instead of exeext.
2290
2291 2007-09-24  Gisle Vanem  <giva@bgnett.no>
2292
2293         * connect.c, init.c, main.c, openssl.c, options.h, sysdep.h,
2294         url.c, utils.c: Added support for building on MS-DOS.
2295
2296 2007-09-24  Jochen Roderburg  <roderburg@uni-koeln.de>
2297
2298         * http.c (http_zero): Remove no-longer-used local_size variable.
2299         Fixes bug #21057.
2300
2301 2007-09-12  Micah Cowan  <micah@cowan.name>
2302
2303         * http.c (http_loop): Remove send_head_first from condition for
2304         parsing timestamp.
2305
2306 2007-08-29  Micah Cowan  <micah@cowan.name>
2307
2308         * openssl.c (ssl_init): Re un-const-ified the meth local
2309         variable, to match current versions of openssl.
2310         * spider.c: Removed visited_url function, as it may be very
2311         inefficient.
2312         (print_broken_links): Removed traversal of referrers, until such
2313         time as a more efficient implementation can be written.
2314         * spider.h: Replaced declaration of visited_url with an
2315         empty-bodied, function-like macro.
2316
2317 2007-08-27  Gisle Vanem  <giva@bgnett.no>
2318
2319         * mswindows.c (run_with_timeout): Ensure that the correct
2320         conversion specification is used for the return result of
2321         the GetLastError function.
2322         * getopt.c: Fix missing (but, accidentally, legal) comment
2323         delimiter after licensing text.
2324         * recur.c (retrieve_tree): Inserted missing cast for strip_auth.
2325         Includes adjustment by Ralf Wildenhues.
2326         * openssl.c (ssl_init): const-ified the meth local variable.
2327         * main.c: Include all the static function definitions in the
2328         "#ifndef TESTING" clause, leaving just the definitions for
2329         exec_name (not set), and opt.
2330         * utils.c (run_with_timeout): Now returns bool, to align with
2331         declaration in utils.h.
2332
2333 2007-08-27  Micah Cowan  <micah@cowan.name>
2334
2335         * wget.h: Added macro replacement for ngettext, for environs
2336         that lack NLS.
2337
2338 2007-08-26  Micah Cowan  <micah@cowan.name>
2339
2340         * spider.c (print_broken_links): Fixed incorrect plurals msgid
2341         usage, switched to use ngettext function.
2342
2343 2007-08-24  Micah Cowan  <micah@cowan.name>
2344
2345         * http.c (http_loop): Introduced time_came_from_head boolean
2346         flag, to help avoid parsing the same Last-Modified header twice.
2347         Replaced spidering returns of RETRUNNEEDED for some situations,
2348         to RETROK, as otherwise it will be interpreted as an error.
2349         RETRUNNEEDED appears never to be referenced outside of
2350         http.c (and wget.h), and, when returned by gethttp, is
2351         translated by http_loop to RETROK.
2352         * url.c (are_urls_equal): Don't call getchar_from_escaped_string
2353         if u2 is shorter than u1.
2354         (getchar_from_escaped_string): Don't decode reserved characters.
2355         Handle illegally appearing '%'s as literal '%'s. Ensure hex
2356         digits before attempting to decode.
2357         (test_are_urls_equal): Added tests to handle u2 shorter than u1,
2358         and %2f not treated the same as /.
2359         * spider.c (in_url_list_p): Don't call are_urls_equal if one of
2360         them is NULL.
2361
2362 2007-08-23  Joshua David Williams  <yurimxpxman@gmail.com>
2363
2364         * spider.c (in_url_list_p): Removed the bool verbose argument
2365
2366 2007-08-22  Mauro Tortonesi  <mauro@ferrara.linux.it>
2367
2368         * http.c (http_loop): Fall back to GET if HEAD fails with a 500 or 501
2369         error code.
2370
2371 2007-08-21  Mauro Tortonesi  <mauro@ferrara.linux.it>
2372
2373         * http.c (http_loop): Send preliminary HEAD request if -N is given and
2374         the destination file exists already.
2375
2376 2007-08-10  Mauro Tortonesi  <mauro@ferrara.linux.it>
2377
2378         * http.c (http_loop): Fixed HTTP HEAD requests logic when --spider is
2379         given.
2380
2381 2007-08-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2382
2383         * url.c (append_uri_pathel): Do not assume dest string to be
2384         zero-terminated.
2385         (test_append_uri_pathel): Terminate string to fix test failure.
2386
2387 2007-08-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2388
2389         * url.c (url_string): Use comparison, not assignment, in
2390         check for auth_mode == URL_AUTH_HIDE_PASSWD.
2391
2392 2007-08-09  Micah Cowan  <micah@cowan.name>
2393
2394         * http.c (http_loop): If we got a HEAD and then a GET, and the
2395         GET had a timestamp, use that one, not any we may have gotten
2396         from the HEAD.
2397
2398 2007-08-08  Micah Cowan  <micah@cowan.name>
2399
2400         * init.c (defaults): Content disposition will not be default,
2401         since it currently results in extra round-trips.
2402
2403 2007-07-31  Micah Cowan  <micah@cowan.name>
2404
2405         * http.c (gethttp): Set contlen = -1 when we encounter a
2406         negative-valued Content-Length header, so we don't consider it
2407         an internal error later on and call abort().
2408
2409 2007-07-29  Micah Cowan  <micah@cowan.name>
2410
2411         * url.h, url.c (url_string): Replaced bool arg of the url_string
2412         function with enum url_auth_mode, with added option to
2413         completely remove user/pass auth information.
2414         * http.c, ftp.c, url.c, recur.c: Adapted call to url_string
2415         function to fit new usage.
2416         * recur.c (retrieve_tree): Remove auth info from Referer header.
2417
2418 2007-07-28  Micah Cowan  <micah@cowan.name>
2419
2420         * options.h, init.c, retr.c, main.c: renamed opt maxredirect
2421         field to max_redirect, for improved consistency.
2422         * init.c: changed max_redirect parser from cmd_number_inf to
2423         cmd_number, as infinite redirects may not be appropriate.
2424         Alternatively, if cmd_number_inf should be used, then
2425         opt.max_redirect's value should be checked a bit differently in
2426         retr.c, to allow for the "infinite" meaning of zero.
2427
2428 2007-07-25  Micah Cowan  <micah@cowan.name>
2429
2430         * http.c (create_authorization_line)
2431         (basic_authentication_encode, known_authentication_scheme_p)
2432         (load_cookies): Moved declarations up.
2433         (basic_authed_hosts): Added. Tracks what hosts have issued Basic
2434         challenge and been given the global username, password.
2435         (maybe_send_basic_creds): Added. Sends Basic creds for hosts that
2436         have issued Basic challenges.
2437         (register_basic_auth_host): Added. Instantiates
2438         basic_authed_hosts if necessary, then registers the host that
2439         has issued a challenge.
2440         (gethttp) <auth>: Only send authentication credentials after
2441         we've received a challenge from that host. This is a stop-gap
2442         fix until a proper fix can be implemented; still isn't quite
2443         right, as we should only be sending credentials automatically
2444         for authenticated paths and below, and not for the entire host.
2445
2446 2007-07-16  Joshua David Williams  <yurimxpxman@gmail.com>
2447
2448         * options.h: added maxredirect to options struct
2449         * init.c: added maxredirect to list of variables
2450         * retr.c (retrieve_url): replaced MAX_REDIRECTIONS with opt.maxredirect
2451         * main.c: added option --max-redirect
2452
2453 2007-07-16  Joshua David Williams  <yurimxpxman@gmail.com>
2454
2455         * test.h: tests made more verbose; now displays the name
2456         of each test run.
2457
2458 2007-07-10  Mauro Tortonesi  <mauro@ferrara.linux.it>
2459
2460         * http.c (http_loop): Fixed the HTTP requests logic. Now it skips the
2461         preliminary HEAD request if either -O or --no-content-disposition are
2462         given, and neither --spider and -N are given.
2463
2464 2007-07-05  Micah Cowan  <micah@cowan.name>
2465
2466         * cmpt.c, connect.c, connect.h, convert.c, convert.h:
2467         * cookies.c, cookies.h, ftp-basic.c, ftp.c, ftp.h, ftp-ls.c:
2468         * ftp-opie.c, gen-md5.c, gen-md5.h, getopt.c, getopt.h, gnu-md5.c:
2469         * gnu-md5.h, gnutls.c, hash.c, hash.h, host.c, host.h:
2470         * html-parse.c, html-parse.h, html-url.c, http.c, http.h:
2471         * http-ntlm.c, http-ntlm.h, init.c, init.h, log.c, log.h, main.c:
2472         * Makefile.in, mswindows.c, mswindows.h, netrc.c, netrc.h:
2473         * openssl.c, options.h, progress.c, progress.h, ptimer.c:
2474         * ptimer.h, recur.c, recur.h, res.c, res.h, retr.c, retr.h:
2475         * safe-ctype.c, safe-ctype.h, spider.c, spider.h, ssl.h, sysdep.h:
2476         * test.c, test.h, url.c, url.h, utils.c, utils.h, wget.h:
2477         * xmalloc.c, xmalloc.h:
2478         Updated GPL reference to version 3 or later, removed FSF
2479         address.
2480
2481 2007-07-04  Mauro Tortonesi  <mauro@ferrara.linux.it>
2482
2483         * http.c (http_loop): Skip HEAD request and start immediately with GET
2484         if -O is given.
2485
2486 2007-02-02  Hrvoje Niksic  <hniksic@xemacs.org>
2487
2488         * http.c (print_server_response): Escape non-printable characters
2489         in server respone.
2490
2491 2007-02-02  Hrvoje Niksic  <hniksic@xemacs.org>
2492
2493         * netrc.c: Don't make netrc_list static, as it prevents
2494         compilation with DEBUG_MALLOC.
2495
2496         * utils.c (aprintf): Don't use vasprintf when DEBUG_MALLOC is
2497         requested because, in that case, we want the calls to malloc to be
2498         coming from us.
2499
2500 2007-01-23  Hrvoje Niksic  <hniksic@xemacs.org>
2501
2502         * cookies.c (parse_set_cookie): Would erroneously discard cookies
2503         with unparsable expiry time.
2504
2505 2007-01-23  Hrvoje Niksic  <hniksic@xemacs.org>
2506
2507         * progress.c (create_image): Check for ETA overflow.
2508         (print_row_stats): Ditto.
2509
2510 2007-01-09  Mauro Tortonesi  <mauro@ferrara.linux.it>
2511
2512         * init.c (cmd_spec_prefer_family): Small fix to get rid of a gcc
2513         warning about strict-aliasing violation.
2514
2515 2007-01-09  Steven M. Schweda  <sms@antinode.org>
2516
2517         * ftp-basic.c (ftp_syst): Fixed segfault if response text is missing.
2518
2519 2006-12-29  Gisle Vanem  <giva@bgnett.no>
2520
2521         * mswindows.c: Avoid a warning if 'ws_hangup()' is unused.
2522
2523 2006-12-27  Mauro Tortonesi  <mauro@ferrara.linux.it>
2524
2525         * http.c (parse_content_disposition): Consider directory prefix, if
2526         specified.
2527
2528 2006-11-21  Hrvoje Niksic  <hniksic@xemacs.org>
2529
2530         * retr.c (retrieve_from_file): Ditto.
2531         (url_uses_proxy): New function.
2532
2533         * main.c (main): Don't check for opt.use_proxy when deciding
2534         whether to call retrieve_url or retrieve_tree; check whether the
2535         proxy would be used for *this* URL.
2536
2537 2006-10-17  Mike Grant  <mggr@pml.ac.uk>
2538
2539         * ftp.c (ftp_loop_internal): Would incorrectly skip changing
2540         working directory when retrying after a failed FTP attempt.
2541         Originally reported by Nate Eldredge.
2542
2543 2006-10-12  Mauro Tortonesi  <mauro@ferrara.linux.it>
2544
2545         * convert.c (downloaded_file): Fixed bug which used to break -E -k -K
2546         mode.
2547
2548 2006-08-28  Mauro Tortonesi  <mauro@ferrara.linux.it>
2549
2550         * http.c: #include'd spider.h to get rid of compiler warnings.
2551
2552         * main.c: Ditto.
2553
2554         * recur.c: Ditto.
2555
2556 2006-08-24  Mauro Tortonesi  <mauro@ferrara.linux.it>
2557
2558         * Makefile.in: Added spider.c to the list of files to compile and
2559         spider.h to the list of header files. Updated copyright information.
2560
2561         * http.c: Major changes to recursive spider mode. Now for every
2562         resource we are supposed to check, we send a HEAD request to find out
2563         if it exists. If the resource is a HTML file, we retrieve it and parse
2564         it to discover links to other resources.
2565
2566         * recur.c: Ditto.
2567
2568         * res.c (res_retrieve_file): Disable opt.timestamping and opt.spider
2569         when retrieving robots.txt. Updated copyright information.
2570
2571         * convert.c: Moved code tracking broken links to spider.c.
2572
2573         * convert.h: Ditto.
2574
2575         * spider.c: Created new file to keep track of visited URLs in spider
2576         mode.
2577
2578         * spider.h: Ditto.
2579
2580 2006-08-21  Mauro Tortonesi  <mauro@ferrara.linux.it>
2581
2582         * http.c: Fixed timestamping-related bug.
2583
2584 2006-08-16  Mauro Tortonesi  <mauro@ferrara.linux.it>
2585
2586         * http.c: Fixed bug which broke --continue feature. Now if -c is
2587         given, http_loop sends a HEAD request to find out the destination
2588         filename before resuming download.
2589
2590 2006-08-08  Hrvoje Niksic  <hniksic@xemacs.org>
2591
2592         * utils.c (datetime_str): Avoid code repetition with time_str.
2593
2594 2006-07-21  Hrvoje Niksic  <hniksic@xemacs.org>
2595
2596         * init.c (commands): Correctly place "contentdisposition".
2597
2598 2006-07-14  Mauro Tortonesi  <mauro@ferrara.linux.it>
2599
2600         * sysdep.h: If intptr_t isn't defined, simply typedef it to long.
2601
2602         * http.c: Added explicit cast to int in logprintf call to remove
2603         compiler warnings on 64-bit platforms.
2604
2605         * connect.c: Added a few casts to intptr_t to remove compiler warnings
2606         on 64-bit platforms.
2607
2608         * main.c: Disable -r, -p and -N when -O is used. Disable -k when -O is
2609         used and multiple URLs are given. Update maintainer information.
2610
2611         * all: Update copyright information.
2612
2613 2006-07-10  KJKHyperion  <hackbunny@reactos.com>
2614
2615         * url.c (filechr_table): Mark DEL (0x7f) as a control character
2616         and | as a character Windows can't handle.
2617
2618 2006-06-28  Mauro Tortonesi  <mauro@ferrara.linux.it>
2619
2620         * res.c: Implemented is_robots_txt_url function for detection of
2621         robots.txt URLs and related test routine.
2622
2623         * res.h: Ditto.
2624
2625         * url.c: Implemented are_urls_equal function for URL comparison and
2626         related testing routine.
2627
2628         * url.h: Ditto.
2629
2630         * convert.c: Fixes for recursive spider mode: don't consider
2631         non-existing robots.txt as a broken link, and use are_urls_equal
2632         instead of strcasecmp for referrer URLs comparison.
2633
2634         * test.c: Call tests routines for are_urls_equal and
2635         is_robots_txt_url.
2636
2637 2006-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
2638
2639         * wget.h (wgint): Typedef to any 64-bit (or larger) type we can
2640         find, not necessarily off_t or long.
2641
2642 2006-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
2643
2644         * cmpt.c (strtoll): Check for overflow and underflow without
2645         relying on (technically) undefined behavior.  Don't assume that
2646         strtoll_type is 64 bits wide.
2647
2648 2006-06-21  Hrvoje Niksic  <hniksic@xemacs.org>
2649
2650         * utils.c (base64_encode): Cast void pointer to char * before
2651         doing arithmetic.
2652
2653 2006-06-20  Hrvoje Niksic  <hniksic@xemacs.org>
2654
2655         * utils.c (base64_encode): Made TBL const.
2656         (base64_decode): Made the base64_char_to_value table const.
2657
2658 2006-06-19  Hrvoje Niksic  <hniksic@xemacs.org>
2659
2660         * utils.c (base64_encode): Made the DATA pointer void * so the
2661         callers can pass it any kind of pointer (including both signed and
2662         unsigned char pointers).
2663         (base64_decode): Ditto for DEST.
2664
2665 2006-06-19  Hrvoje Niksic  <hniksic@xemacs.org>
2666
2667         * utils.c (base64_encode): Would read past end of STR.
2668         Reported by rick@eckle.org.
2669
2670 2006-06-13  Mauro Tortonesi  <mauro@ferrara.linux.it>
2671
2672         * options.h (struct options): Introduced member restrict_files_case to
2673         keep track of preferences on character case restrictions for
2674         filenames.
2675
2676         * init.c: Modified defaults and cmd_spec_restrict_file_names to
2677         support character case restrictions for filenames. Added
2678         test_cmd_spec_restrict_file_names unit test.
2679
2680         * url.c: Modified append_uri_pathel to support character case
2681         restrictions for filenames. Added test_append_uri_pathel unit test.
2682
2683         * test.c: Added test_cmd_spec_restrict_file_names and
2684         test_append_uri_pathel to the list of unit tests to run.
2685
2686 2006-06-12  Mauro Tortonesi  <mauro@ferrara.linux.it>
2687
2688         * retr.c (retrieve_from_file): Use retrieve_tree and automatically
2689         turn on opt.follow_ftp in case of recursive FTP retrieval through HTTP
2690         proxy.
2691
2692         * main.c: Automatically turn on opt.follow_ftp in case of recursive
2693         FTP retrieval through HTTP proxy.
2694
2695 2006-06-12  Tony Lewis  <tlewis@exelana.com>
2696
2697         * main.c: Improved CHEN Peng's patch by proposing a simpler logic.
2698
2699 2006-06-12  CHEN Peng  <chenpeng@alumni.nus.edu.sg>
2700
2701         * main.c: Use retrieve_tree in case of recursive FTP retrieval through
2702         HTTP proxy.
2703
2704 2006-05-25  Mauro Tortonesi  <mauro@ferrara.linux.it>
2705
2706         * convert.c: Added mechanisms to keep track broken links.
2707
2708         * convert.h: Ditto.
2709
2710         * wget.h: Reordered and enumerated uerr_t constants.
2711
2712         * recur.c: Fixes to support recursive spider mode.
2713
2714         * http.c: Ditto.
2715
2716         * main.c: Print broken links in case of recursive spider mode.
2717
2718         * retr.c: Changed interface of retrieve_url.
2719
2720         * retr.h: Ditto.
2721
2722         * ftp.c: Changed interface of ftp_loop.
2723
2724         * ftp.h: Ditto.
2725
2726         * res.c: Minor change to reflect changes in interface of retrieve_url.
2727
2728 2006-05-18  Lawrence Jones  <lawrence.jones@ugs.com>
2729
2730         * ftp-ls.c (ftp_parse_unix_ls): Correct size parsing, add size
2731         and filename debugging output.
2732
2733 2006-04-28  Mauro Tortonesi  <mauro@ferrara.linux.it>
2734
2735         * http.c: If Content-Disposition header is present, allow unique
2736         filename generation unless -nc is given. Permit to disable parsing of
2737         Content-Disposition header.
2738
2739         * options.h: Added option --no-content-disposition to disable parsing
2740         of HTTP Content-Disposition header.
2741
2742         * init.c: Ditto.
2743
2744         * main.c: Ditto.
2745
2746 2006-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
2747
2748         * hash.c (TOLOWER): Wrap macro arg in parentheses.
2749
2750 2006-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
2751
2752         * http.c (parse_content_disposition): Doc fix.
2753
2754 2006-03-15  Mauro Tortonesi  <mauro@ferrara.linux.it>
2755
2756         * utils.c: Restricted operational semantics of frontcmp and proclist
2757         from generic strings to directory names and them to subdir_p and
2758         dir_matches_p respectively.  Applied George Ogata's one line patch to
2759         restrict algorithm of subdir_p to full directory name matching.  Added
2760         testcases for subdir_p and dir_matches_p.
2761
2762         * utils.h: Changed all frontcmp occurrences to subdir_p.
2763
2764         * recur.c: Ditto.
2765
2766         * test.c: Changed type returned by test functions from char * to const
2767         char *.  Added test_subdir_p and test_dir_matches_p to the list of
2768         tests to run.
2769
2770         * http.c (test_parse_content_disposition): Changed return type from
2771         char * to const char *.
2772
2773 2006-03-14  Mauro Tortonesi  <mauro@ferrara.linux.it>
2774
2775         * recur.c (struct queue_element): Changed type of html_allowed member
2776         to bool.
2777
2778 2006-03-09  Mauro Tortonesi  <mauro@ferrara.linux.it>
2779
2780         * ftp.c (ftp_list): Try `LIST -a' command first and revert to `LIST'
2781         in case of failure.
2782
2783 2006-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
2784
2785         * hash.c (TOLOWER): Fix definition when STANDALONE.
2786         Reported by Beni Serfaty.
2787
2788 2006-03-02  Mauro Tortonesi  <mauro@ferrara.linux.it>
2789
2790         * http.c (http_loop): Fixed recursive HTTP retrieval.
2791
2792 2006-02-28  Hrvoje Niksic  <hniksic@xemacs.org>
2793
2794         * http.c (extract_param): Declare extern so it can be used from
2795         other files.
2796         (extract_param): Return error for empty name.
2797
2798 2006-02-28  Hrvoje Niksic  <hniksic@xemacs.org>
2799
2800         * url.c (find_last_char): Define in terms of memrchr.
2801
2802         * cmpt.c (memrchr): Define it on systems that don't have it.
2803
2804         * http.c (extract_param): New function for parsing header values
2805         with parameters.
2806         (parse_content_disposition): Use it.  Don't allow slashes and
2807         backslashes in the file name.
2808
2809 2006-02-27  Hrvoje Niksic  <hniksic@xemacs.org>
2810
2811         * url.c (path_simplify): Don't preserve ".." at beginning of path.
2812         Suggested by Frank McCown.
2813
2814 2006-02-25  Hrvoje Niksic  <hniksic@xemacs.org>
2815
2816         * http.c (gethttp): Only use FILE.N.html if FILE.html exists.
2817
2818 2006-02-09  Hrvoje Niksic  <hniksic@xemacs.org>
2819
2820         * mswindows.c (run_with_timeout): Made thread_hnd non-static.
2821
2822 2006-02-05  Hrvoje Niksic  <hniksic@xemacs.org>
2823
2824         * retr.c (sleep_between_retrievals): Sleep at a minimum of 1/2 of
2825         the specified wait period.
2826
2827 2006-02-03  Hrvoje Niksic  <hniksic@xemacs.org>
2828
2829         * utils.c (number_to_string): Don't use sprintf for printing
2830         WGINT_MIN; simply divide n by 10 and defer printing the last
2831         digit.
2832         (number_to_string): Removed the SPRINTF_WGINT macro.
2833
2834 2006-02-03  Mauro Tortonesi  <mauro@ferrara.linux.it>
2835
2836         * http.c: Fixed support for Content-Disposition header.
2837
2838         * test.c: Added test_parse_content_disposition to the list of unit
2839         tests to run.
2840
2841 2006-02-02  Hrvoje Niksic  <hniksic@xemacs.org>
2842
2843         * hash.c: Don't define countof if it's already defined.
2844
2845         * hash.c: Obtain the definition of uintptr_t when standalone.
2846
2847 2006-01-30  Mauro Tortonesi  <mauro@ferrara.linux.it>
2848
2849         * http.c: Changed output format. Removed excessively verbose debugging
2850         output.
2851
2852 2005-12-07  Mauro Tortonesi  <mauro@ferrara.linux.it>
2853
2854         * http.c: Fixed pre-download verbose output which was broken by
2855         HTTP code refactoring.
2856
2857 2005-11-23  Mauro Tortonesi  <mauro@ferrara.linux.it>
2858
2859         * http.c: Refactored HTTP code.  If -O is not used, the new code
2860         delays the choice of the file name where the downloaded resource
2861         will be saved until the HTTP headers have been retrieved.
2862         Added support for Content-Disposition header.
2863
2864 2005-11-19  Hrvoje Niksic  <hniksic@xemacs.org>
2865
2866         * hash.c (INVALID_PTR): Use uintptr_t instead of unsigned long.
2867         (hash_pointer): Don't assume a pointer fits in `unsigned long'.
2868
2869 2005-11-02  Mauro Tortonesi  <mauro@ferrara.linux.it>
2870
2871         * Makefile.in: Removed support for unit testing (now it is in
2872         tests/Makefile.in).
2873
2874 2005-10-27  Mauro Tortonesi  <mauro@ferrara.linux.it>
2875
2876         * Makefile.in: Added basic support for unit testing.
2877
2878         * test.c: Ditto.
2879
2880         * test.h: Ditto.
2881
2882 2005-10-13  Daniel Stenberg  <daniel@haxx.se>
2883
2884         * http-ntlm.c (ntlm_output): Fixed buffer overflow vulnerability.
2885
2886 2005-10-09  Russ Allbery  <rra@stanford.edu>
2887
2888         * snprintf.c: Remove round to round_int and pow10 to pow10_int, to
2889         avoid warnings from GCC 4.0.
2890
2891 2005-10-05  Mauro Tortonesi  <mauro@ferrara.linux.it>
2892
2893         * retr.c: Changed semantics of no_proxy_match.
2894
2895 2005-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
2896
2897         * main.c (main): Don't print the summary if nothing has been downloaded.
2898
2899 2005-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
2900
2901         * retr.c (retr_rate): Rename parameter from MSECS to SECS since it
2902         no longer holds milliseconds.
2903
2904 2005-09-01  Hrvoje Niksic  <hniksic@xemacs.org>
2905
2906         * progress.c: Introduce symbolic constants for "magic" values of
2907         0.2 and 0.9, REFRESH_INTERVAL and ETA_REFRESH_INTERVAL.
2908
2909 2005-08-27  Hrvoje Niksic  <hniksic@xemacs.org>
2910
2911         * cmpt.c (strtoll): Correctly handle strtoll("0x", ptr, 0) and
2912         strtoll("0x<nonhexchar>", ptr, 0) -- in both cases *ptr must be
2913         set to the position of 'x', not after it.
2914
2915 2005-08-27  Hrvoje Niksic  <hniksic@xemacs.org>
2916
2917         * hash.c (hash_table_map): Rename to hash_table_for_each and
2918         update callers.
2919         Document the meaning of the callback's return value.
2920         (hash_table_iterate): New function.
2921         (hash_table_iter_next): Likewise.
2922         Update most places that used hash_table_for_each to use the
2923         iteration, which doesn't require a temporary function with
2924         explicit state management.
2925
2926 2005-08-26  Albert Chin  <wget@mlists.thewrittenword.com>
2927
2928         * Makefile.in: Use @datadir@.  Define localedir as $(datadir)/locale.
2929
2930 2005-08-26  Jeremy Shapiro  <jnshapiro@gmail.com>
2931
2932         * openssl.c (ssl_init): Set SSL_MODE_AUTO_RETRY.
2933
2934 2005-08-23  Hrvoje Niksic  <hniksic@xemacs.org>
2935
2936         * host.c (address_list_from_ipv4_addresses): Use IP_INADDR_DATA.
2937
2938 2005-08-12  Hrvoje Niksic  <hniksic@xemacs.org>
2939
2940         * wget.h: Renamed strtoll_return to strtoll_type.
2941
2942 2005-08-11  Hrvoje Niksic  <hniksic@xemacs.org>
2943
2944         * progress.c (eta_to_human_short): Switch to days when printing
2945         more than 48h rather than 100h.  (It's not immediately apparent
2946         how many days there are in 83h.)
2947
2948 2005-08-11  Hrvoje Niksic  <hniksic@xemacs.org>
2949
2950         * cmpt.c (strtoll): Define it if missing on the system and if Wget
2951         needs it.
2952
2953         * mswindows.c (str_to_int64): Move to cmpt.c and rename to strtoll.
2954
2955 2005-08-10  Hrvoje Niksic  <hniksic@xemacs.org>
2956
2957         * host.c (print_address): Always use inet_ntop when IPv6 is
2958         enabled.
2959
2960         * host.h (ip_address): Simplify the data union.
2961
2962 2005-08-09  Hrvoje Niksic  <hniksic@xemacs.org>
2963
2964         * mswindows.c (inet_ntop): Also handle IPv4 addresses for
2965         completeness.
2966
2967 2005-08-09  Hrvoje Niksic  <hniksic@xemacs.org>
2968
2969         * http.c (gethttp): Don't read more than the amount of data
2970         specified by the content-length header.
2971
2972 2005-08-09  Vasil Dimov  <vd@datamax.bg>
2973
2974         * ftp.c (getftp): Don't free RESPLINE if ftp_response returns a
2975         status other than FTPOK.
2976
2977 2005-08-04  Giuseppe Bonacci  <g.bonacci@libero.it>
2978
2979         * ftp-ls.c (ftp_parse_unix_ls): Remember the position of the
2980         previous token instead of backtracking back to it.
2981
2982 2005-07-08  Gisle Vanem  <giva@bgnett.no>
2983
2984         * mswindows.h: Include process.h to get getpid() declaration.
2985
2986 2005-07-08  Hrvoje Niksic  <hniksic@xemacs.org>
2987
2988         * utils.c (aprintf): Use vasprintf where available.
2989
2990 2005-07-08  Hrvoje Niksic  <hniksic@xemacs.org>
2991
2992         * url.c (rewrite_shorthand_url): Simplify code using aprintf and
2993         strspn.
2994
2995 2005-07-07  Hrvoje Niksic  <hniksic@xemacs.org>
2996
2997         * gnutls.c (ssl_check_certificate): Check for the validity of the
2998         presented X509 certificate.
2999
3000 2005-07-07  Hrvoje Niksic  <hniksic@xemacs.org>
3001
3002         * openssl.c (ssl_check_certificate): Print custom error messages
3003         for frequent X509 certificate problems.
3004
3005 2005-07-07  Hrvoje Niksic  <hniksic@xemacs.org>
3006
3007         * mswindows.h: Define an alias for stat and fstat, as requested by
3008         config-compiler.h.
3009         (gai_strerror): Define to windows_strerror if NEED_GAI_STRERROR is
3010         defined.
3011
3012 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
3013
3014         * mswindows.h: Use strtoll where available.
3015
3016 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
3017
3018         * sysdep.h: Add a full declaration of fnmatch.h.
3019
3020 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
3021
3022         * utils.c: Unconditionally include <setjmp.h>.
3023
3024 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
3025
3026         * utils.c (fnmatch_nocase): New function.
3027         (proclist): Use it instead of fnmatch when opt.ignore_case is
3028         requested.
3029         (in_acclist): Respect opt.ignore_case.
3030         (frontcmp): Respect opt.ignore_case.
3031
3032         * options.h (struct options): New flag opt.ignore_case.
3033
3034 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
3035
3036         * ptimer.c: Measure time in seconds rather than milliseconds.
3037         Adjusted all callers.
3038
3039 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
3040
3041         * http.c (gethttp): When freeing MESSAGE, take into account that
3042         it can be NULL.
3043
3044 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
3045
3046         * cmpt.c (timegm): Handle years after 2099.
3047
3048 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
3049
3050         * cmpt.c (timegm): Remove unused variable.
3051
3052 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
3053
3054         * cmpt.c (timegm): Don't call mktime; simply count the seconds
3055         between 1970-01-01 and the specified date.
3056
3057 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
3058
3059         * wget.h (or): Define HAVE_SSL when either HAVE_OPENSSL or
3060         HAVE_GNUTLS are defined.
3061
3062         * gnutls.c: New file.
3063
3064 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
3065
3066         * http.c (gethttp): Don't print the request write error message
3067         twice.
3068
3069 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
3070
3071         * openssl.c (openssl_errstr): Instead of always using a large
3072         static buffer, only allocate the error string when there is an
3073         actual error.
3074
3075 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
3076
3077         * xmalloc.c (debugging_free): Prefix hex pointer value with "0x"
3078         when printing.
3079
3080 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
3081
3082         * utils.c (NEXT_BASE64_CHAR): Rename to NEXT_CHAR and simplify to
3083         get the next non-whitespace character.
3084
3085 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
3086
3087         * utils.c (base64_decode): Don't silently tolerate non-base64
3088         non-white-space characters in the base64 stream.
3089
3090 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
3091
3092         * connect.c (LAZY_RETRIEVE_INFO): Make last_tick unsigned to match
3093         transport_map_modified_tick.
3094
3095 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
3096
3097         * config-post.h (alloca): Updated declaration to not enumerate all
3098         Windows compilers.
3099
3100 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
3101
3102         * openssl.c (openssl_errstr): Separate error messages with "; ".
3103
3104 2005-07-03  Hrvoje Niksic  <hniksic@xemacs.org>
3105
3106         * ftp.c (getftp): Ditto.
3107
3108         * http.c (gethttp): Use fd_errstr.
3109
3110         * connect.c (fd_register_transport): Restructure parameters to
3111         include only a single structure that describes transport
3112         implementation.
3113
3114         * openssl.c (openssl_errstr): New function: dump SSL error strings
3115         into a static buffer and return a pointer to the buffer.
3116
3117         * connect.c (fd_errstr): New function; returns transport-specific
3118         error message, or strerror(errno) if transport doesn't supply one.
3119
3120 2005-07-03  Hrvoje Niksic  <hniksic@xemacs.org>
3121
3122         * mswindows.h: Also wrap accept() and listen().
3123
3124 2005-07-03  Hrvoje Niksic  <hniksic@xemacs.org>
3125
3126         * url.c (path_end): Skip separators appropriate for the scheme.
3127         (strpbrk_or_eos): Remove gcc-specific version, as the optimization
3128         it tried to perform no longer applies.
3129
3130 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
3131
3132         * host.c: Don't include "connect.h" now that we no longer have
3133         socket_has_inet6.
3134
3135 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
3136
3137         * host.c: Remove extraneous definition of netdb.h.
3138
3139 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
3140
3141         * http.c (gethttp): Skip error message body in the keep-alive
3142         case.
3143
3144 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
3145
3146         * url.c (url_parse): Would crash when parsing fragments.  Support
3147         fragments for FTP URLs too.
3148
3149 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
3150
3151         * version.c: Don't use "cvs" in version name, since we're not
3152         using CVS anymore.
3153
3154 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
3155
3156         * progress.c (create_image): Ditto.
3157
3158         * retr.c (retr_rate): Display smaller rate numbers with greater
3159         precision.
3160
3161 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
3162
3163         * http.c (response_head_terminator): Minor optimization.
3164
3165         * retr.c (fd_read_hunk): Call terminator with pointer to the start
3166         of the data and the pointer to the current data.  Changed all
3167         callers.
3168
3169 2005-07-01  Hrvoje Niksic  <hniksic@xemacs.org>
3170
3171         * url.c (url_parse): Make sure u->params is not initialized for
3172         http/https URLs.
3173         (url_parse): Don't crash on garbage following []-delimited IPv6
3174         addresses.
3175
3176 2005-07-01  Hrvoje Niksic  <hniksic@xemacs.org>
3177
3178         * main.c (print_help): Don't refer to the non-existent -nr in
3179         description of --mirror.
3180
3181 2005-06-30  Hrvoje Niksic  <hniksic@xemacs.org>
3182
3183         * host.c (pretty_print_address): Renamed to just print_address.
3184         Clarify documentation.
3185
3186 2005-06-30  Hrvoje Niksic  <hniksic@xemacs.org>
3187
3188         * http.c (gethttp): Explicitly document the different cases when
3189         generating the Host header.
3190
3191 2005-06-30  Hrvoje Niksic  <hniksic@xemacs.org>
3192
3193         * host.c (pretty_print_address): Handle error result from
3194         inet_ntop.
3195
3196 2005-06-30  Gisle Vanem  <giva@bgnett.no>
3197
3198         * mswindows.c (inet_ntop): New function.  Print IPv6 addresses
3199         using WSAAddressToString.
3200
3201 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
3202
3203         * progress.c (dot_update): Remove unused variable row_qty.
3204
3205 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
3206
3207         * main.c: Check for both SIGHUP and SIGUSR1 before using them.
3208
3209 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
3210
3211         * utils.c: Unconditionally include locale.h.
3212
3213 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
3214
3215         * ptimer.c: Include sys/time.h to get struct timeval.
3216
3217 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
3218
3219         * wget.h: Remove obsolete definition of with_thousand_seps_sum.
3220
3221 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
3222
3223         * gnu-md5.h: Unconditionally include limits.h.
3224
3225 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
3226
3227         * utils.c (random_number): Use lrand48 if available.
3228         (random_float): Use drand48 if available.
3229
3230 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
3231
3232         * main.c (secs_to_human_time): Use print_decimal when printing
3233         total download time in seconds.
3234
3235         * progress.c (print_row_stats): Use it to print total download
3236         time at the end of the download.
3237         (create_image): Ditto.
3238
3239         * utils.c (print_decimal): New function; print small decimal
3240         numbers with more precision than large ones.
3241
3242         * progress.c (print_row_stats): New function.  Print ETA after the
3243         download rate at the end of each row.
3244
3245 2005-06-28  Hrvoje Niksic  <hniksic@xemacs.org>
3246
3247         * init.c (parse_line): Check for alphanumerics.
3248
3249 2005-06-28  Hrvoje Niksic  <hniksic@xemacs.org>
3250
3251         * (dot_create): Remove unnecessary casts.
3252
3253 2005-06-28  Hrvoje Niksic  <hniksic@xemacs.org>
3254
3255         * ftp.c (getftp): Delete trailing newlines from LIST output so
3256         lines don't come out with trailing \015\012 with -S.
3257
3258 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
3259
3260         * mswindows.h: Remove superfluous includes.
3261
3262 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
3263
3264         * config-post.h (alloca): Amend alloca declaration to take care of
3265         all Win32 compilers, not just MSVC and MinGW.
3266
3267 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
3268
3269         * utils.c (get_grouping_data): Force separator to "." rather than
3270         " " when "," is taken.
3271
3272 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
3273
3274         * wget.h (PTR_FORMAT): Cast the result of sizeof to int before
3275         passing it to printf's %*.
3276
3277         * retr.h: Declare output_stream and output_stream_regular.
3278
3279         * ftp.h: Declare ftp_last_respline.
3280
3281         * convert.h: Declare dl_url_file_map.
3282
3283         * http.h: New file.
3284
3285 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
3286
3287         * cookies.c: Make cookies_now static.
3288
3289 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
3290
3291         * utils.c (human_readable): Remove intermediary cast to long; MSVC
3292         has problems casting *unsigned* __int64 to double.
3293
3294 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
3295
3296         * sysdep.h: Use the system-provided fnmatch by default.
3297
3298 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
3299
3300         * http.c (mktime_from_utc): Renamed to timegm and moved to cmpt.c.
3301         Don't compile it if GNU timegm is available.
3302         (http_atotm): Use timegm.
3303
3304 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
3305
3306         * http.c (http_atotm): Correctly query the old locale value.
3307
3308 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
3309
3310         * config-post.h (alloca): Don't #define alloca under MinGW32,
3311         which defines it in malloc.h, included from mswindows.h.
3312
3313 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
3314
3315         * utils.c (get_grouping_data): Force the use of separators in C
3316         locale.
3317
3318 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
3319
3320         * main.c (i18n_initialize): Set all locale categories.
3321
3322         * http.c (http_atotm): Temporarily set locale to "C".
3323
3324 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
3325
3326         * http.c (gethttp): Improve "POST data file missing" error
3327         message.
3328
3329 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
3330
3331         * progress.c (set_progress_implementation): Type COLON as const
3332         char *.
3333
3334 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
3335
3336         * utils.c (with_thousand_seps): Handle negative numbers.
3337
3338 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
3339
3340         * progress.c (create_image): Mark the "eta" string for translation.
3341
3342 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
3343
3344         * html-url.c (get_urls_file): Don't explicitly set entry->next to
3345         NULL since entry is already zeroed out.
3346
3347 2005-06-26  Gisle Vanem  <giva@bgnett.no>
3348
3349         * mswindows.h: Define gai_strerror under MinGW.
3350
3351 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
3352
3353         * utils.c (with_thousand_seps): Correctly implement thousand seps
3354         consisting of more than one character.
3355
3356 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
3357
3358         * main.c (secs_to_human_time): Ditto.
3359
3360         * progress.c (create_image): Print more exact duration of very
3361         short downloads.
3362
3363         * main.c (secs_to_human_time): Don't translate time suffixes "h",
3364         "m", and "s", which are not strictly SI, but are "accepted for use
3365         with SI".
3366         (secs_to_human_time): Print really small intervals as 0s, not
3367         0.00s.
3368
3369 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
3370
3371         * config-post.h: Replace the alloca declaration with the one from
3372         the latest Autoconf manual.  This should remove a warning with GCC
3373         on AIX.
3374
3375 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
3376
3377         * ftp.c (getftp): Always invoke SIZE, not only when continuing a
3378         download.
3379
3380         * main.c (main): Ditto here.
3381
3382         * progress.c (create_image): When the download is finished, print
3383         how long it took.
3384
3385 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
3386
3387         * main.c (main): Print the downloaded and quota amounts with the
3388         "human_readable" function.
3389
3390         * ftp.c (print_length): Ditto.
3391
3392         * http.c (gethttp): Don't display thousand separators.
3393
3394         * utils.c (with_thousand_seps): Rewritten to respect locale
3395         settings and to be type size agnostic.
3396
3397 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
3398
3399         * utils.c (human_readable): Divide with 1024 instead of shifting
3400         so the operation can work with non-integer N.
3401
3402 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
3403
3404         * progress.c (eta_to_human): New logic for more human-readable
3405         ETA.
3406
3407 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
3408
3409         * utils.c (with_thousand_seps_sum): Decrease buffer size so it
3410         cannot overrun add_thousand_seps's buffer.
3411
3412 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
3413
3414         * utils.c (SPRINTF_WGINT): The correct format is %I64d, not just
3415         %I64.
3416
3417 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
3418
3419         * http.c (http_loop): Don't warn about wildcards in HTTP URLs if
3420         globbing isn't requested in the first place.
3421
3422         * retr.c (retrieve_url): Temporarily turn off globbing when
3423         processing HTTP->FTP redirects.
3424
3425 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
3426
3427         * utils.c (with_thousand_seps_sum): Now defined only if
3428         SUM_SIZE_INT is double.
3429
3430         * wget.h (SUM_SIZE_INT): Instead of bothering with long, long
3431         long, __int64, and friends, simply either use wgint or double, end
3432         of story.  Since we know how to print either, we no longer need
3433         LARGE_INT_FMT.
3434
3435         * sysdeps.h (LARGE_INT): Renamed to SUM_SIZE_INT to better reflect
3436         its intent, and moved to wget.h.
3437
3438 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
3439
3440         * Makefile.in: No need to clean .libs.
3441
3442 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
3443
3444         * cookies.c (parse_set_cookies): Cast pointer subtraction to int
3445         before using it with %d; AIX compiler warns on this.
3446         Reported by Jens Schleusener.
3447
3448 2005-06-24  Hrvoje Niksic  <hniksic@xemacs.org>
3449
3450         * http.c (gethttp): Don't prepend / here.
3451
3452         * cookies.c (cookie_handle_set_cookie): Prepend / to PATH.
3453         (cookie_header): Ditto.
3454
3455 2005-06-24  Hrvoje Niksic  <hniksic@xemacs.org>
3456
3457         * init.c: opt.verbose must be declared as int.
3458
3459 2005-06-23  Hrvoje Niksic  <hniksic@xemacs.org>
3460
3461         * cmpt.c (strpbrk): Removed.
3462         (mktime): Removed.
3463         Include <time.h>.
3464
3465 2005-06-23  Hrvoje Niksic  <hniksic@xemacs.org>
3466
3467         * utils.c (read_file): Ditto.
3468
3469         * main.c (main): Use struct_fstat.
3470
3471         * mswindows.h (struct_fstat): Define a struct_fstat to deal with
3472         the fact that Borland 5.5 has 64-bit stat, but not 64-bit fstat!
3473
3474 2005-06-23  Hrvoje Niksic  <hniksic@xemacs.org>
3475
3476         * sysdep.h: Remove code that deals with Watcom.
3477
3478 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
3479
3480         * all: Use bool instead of int and false/true instead of 0/non-0
3481         for boolean variables and values.
3482
3483 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
3484
3485         * sysdep.h: Include the stdbool.h/_Bool/bool blurb from Autoconf.
3486
3487 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
3488
3489         * init.c (cmd_lockable_boolean): Removed.
3490
3491 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
3492
3493         * cookies.c (struct cookie): Use 1-bit bitfields for booleans
3494         which makes the structure takes less space at no cost in
3495         complexity.
3496
3497 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
3498
3499         * Makefile.in ($(OBJ)): Add the config.h dependency.
3500
3501 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
3502
3503         * openssl.c, connect.c, host.c: Replace instances of #ifdef
3504         ENABLE_DEBUG if (opt.debug) {...} #endif with IF_DEBUG {...}.
3505
3506         * main.c: Rename the IF_DEBUG defined here to WHEN_DEBUG.
3507
3508         * wget.h (IF_DEBUG): New macro.
3509         (DEBUGP): Define in terms of IF_DEBUG.
3510
3511 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
3512
3513         * http.c (gethttp): Only handle --set-cookies (and assert that
3514         cookie jar exists) if opt.cookies is true.  Failure to do so
3515         triggered the assert when --no-cookies was used and the server
3516         sent a Set-Cookie header.  Ouch!
3517
3518 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
3519
3520         * connect.c (select_fd): Expect select() to exist.
3521
3522         * utils.c (xsleep): Always use select() as sleep fallback on
3523         non-Windows platforms.
3524
3525         * ptimer.c: Delete the implementation of PTIMER_TIME.
3526
3527         * main.c: Assume existence of signal(), test for different signal
3528         names instead.
3529
3530         * cmpt.c: Better document reasons why certain functions are
3531         included.
3532
3533 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
3534
3535         * Makefile.in: Remove the manually maintained dependency list;
3536         make all object files depend on every header.
3537
3538 2005-06-20  Hrvoje Niksic  <hniksic@xemacs.org>
3539
3540         * hash.c: Rename "mapping" to "cell" to avoid confusion with the
3541         term "mapping" (or "map") sometimes being used for the entire hash
3542         table.  Also rename "non-empty" to "occupied" for easier reading
3543         of if (!NON_EMPTY (...)) ... .
3544
3545 2005-06-20  Hrvoje Niksic  <hniksic@xemacs.org>
3546
3547         * main.c, ptimer.c, sysdep.h, utils.c: Use #elif to simplify reading of
3548         chained if-else-else-else-... statements.
3549
3550 2005-06-20  Hrvoje Niksic  <hniksic@xemacs.org>
3551
3552         * all: Return type of signal handlers is `void'.  Include signal.h
3553         unconditionally.
3554
3555         * all: Don't explicitly cast values returned by malloc.  We no
3556         longer support ancient compilers that don't declare malloc, and we
3557         never supported C++ builds.
3558
3559 2005-06-19  Hrvoje Niksic  <hniksic@xemacs.org>
3560
3561         * all: Don't declare errno.  Include both time.h and sys/time.h,
3562         as long as sys/time.h exists.  Don't dereference function pointers
3563         when invoking the functions they point to.
3564
3565         * cmpt.c (memmove): Remove function mandated by C89.
3566         (strerror): Ditto.
3567         (strstr): Ditto.
3568
3569         * all: Undo the K&R-ization changes from 2005-05-03.
3570
3571         * all: Remove support for K&R compilers: use C89 function
3572         declarations, remove definition of PARAMS, remove support for
3573         varargs, and remove ansi2knr.  Assume the presence of time.h,
3574         string.h, and other headers mandated by C89.
3575
3576 2005-06-19  Hrvoje Niksic  <hniksic@xemacs.org>
3577
3578         * init.c (cmd_lockable_boolean): Don't recognize literal "2" and
3579         "-1" values; unlike 0 and 1, those should never be exposed to the
3580         user.  Update the error message to be more self-consistent, as
3581         proposed by Benno Schulenberg.
3582
3583 2005-06-18  Hrvoje Niksic  <hniksic@xemacs.org>
3584
3585         * http.c (gethttp): Don't free "head" before using it to save
3586         headers.
3587
3588 2005-06-18  Hrvoje Niksic  <hniksic@xemacs.org>
3589
3590         * http.c (gethttp): When -E is in use, check for file existence
3591         after appending ".html" to the name and modify the file name if
3592         necessary.
3593
3594 2005-06-17  Hrvoje Niksic  <hniksic@xemacs.org>
3595
3596         * connect.c (socket_has_inet6): Removed.
3597
3598         * host.c (lookup_host): Don't use the AI_ADDRCONFIG getaddrinfo
3599         hint.
3600
3601 2005-06-16  Hrvoje Niksic  <hniksic@xemacs.org>
3602
3603         * init.c (cmd_lockable_boolean): Improve the error message so it
3604         lists the more useful values first.
3605
3606 2005-06-15  Hrvoje Niksic  <hniksic@xemacs.org>
3607
3608         * http.c (gethttp): Also report the system error when the POST
3609         data file is missing.
3610
3611 2005-06-15  Benno Schulenberg  <benno@nietvergeten.nl>
3612
3613         * ftp.c, http.c, connect.c, cookies.c, html-url.c, init.c, res.c:
3614         Gettext-ize messages that were previously missed.
3615
3616 2005-06-15  Hrvoje Niksic  <hniksic@xemacs.org>
3617
3618         * host.h (ip_address): Remove the trailing comma from the type
3619         enum in the no-IPv6 case.
3620
3621         * main.c (struct cmdline_option): Remove the trailing comma from
3622         the enum.
3623
3624         Reported by Jens Schleusener.
3625
3626 2005-05-30  Hrvoje Niksic  <hniksic@xemacs.org>
3627
3628         * url.c (strpbrk_or_eos): Check for a recent GCC version before
3629         using the statement-as-expression extension.
3630
3631 2005-05-30  Hrvoje Niksic  <hniksic@xemacs.org>
3632
3633         * http.c (gethttp): Don't attempt to "skip short body" if we're
3634         issuing a HEAD request (in which case the response head is not
3635         followed by a body).
3636
3637 2005-05-30  Hrvoje Niksic  <hniksic@xemacs.org>
3638
3639         * init.c (cmd_spec_header): Don't split the string along the
3640         commas using cmd_vector; just append the new value using
3641         vec_append instead.
3642
3643         * utils.c (vec_append): New function.
3644
3645 2005-05-27  Andreas Beckmann  <debian@abeckmann.de>
3646
3647         * html-url.c (tag_handle_link): Mark the content from the <link
3648         src="..."> tag as expecting HTML.
3649
3650 2005-05-24  Hrvoje Niksic  <hniksic@xemacs.org>
3651
3652         * http.c (http_atotm): Document the origin of the "cookie date"
3653         format.
3654
3655 2005-05-21  Hrvoje Niksic  <hniksic@xemacs.org>
3656
3657         * init.c (setval_internal): Report exact command name alongside
3658         the "display name".
3659
3660 2005-05-18  Hrvoje Niksic  <hniksic@xemacs.org>
3661
3662         * cookies.c (update_cookie_field): Explicitly cast -1 to time_t to
3663         cope with systems where time_t is unsigned.
3664
3665         * cookies.c: Remove unnecessary casts to time_t from values
3666         already of that type.
3667
3668 2005-05-17  Hrvoje Niksic  <hniksic@xemacs.org>
3669
3670         * ftp.c (ftp_loop_internal): Same here.
3671
3672         * http.c (http_loop): Don't clobber the file when -c is specified
3673         and the first attempt to retrieve the file fails.
3674
3675 2005-05-16  Hrvoje Niksic  <hniksic@xemacs.org>
3676
3677         * openssl.c (ssl_check_certificate): Print all issues with a
3678         certificate.
3679
3680 2005-05-16  Hrvoje Niksic  <hniksic@xemacs.org>
3681
3682         * ftp-basic.c: Don't xfree() the line returned by ftp_response if
3683         the returned code is not FTPOK.
3684
3685 2005-05-16  Hrvoje Niksic  <hniksic@xemacs.org>
3686
3687         * init.c (cleanup): Don't free the non-existent opt.ftp_acc.  Free
3688         the SSL-related stuff.
3689
3690 2005-05-16  Hrvoje Niksic  <hniksic@xemacs.org>
3691
3692         * ftp.c (print_length): Consistently print \n at end of the
3693         "Length" line.
3694
3695 2005-05-14  Hrvoje Niksic  <hniksic@xemacs.org>
3696
3697         * openssl.c (ssl_connect): Announce the beginning and the end of
3698         the SSL handshake when in debug mode.
3699
3700         * wget.h (PTR_FORMAT): New macro for easier printing of pointer
3701         values.  Use %0*lx along with PTR_FORMAT instead of %p.
3702
3703 2005-05-14  Hrvoje Niksic  <hniksic@xemacs.org>
3704
3705         * http.c (gethttp): Would forget to close the connection when
3706         keep_alive was not used.
3707
3708 2005-05-13  Hrvoje Niksic  <hniksic@xemacs.org>
3709
3710         * openssl.c (pattern_match): Document the code that decides
3711         whether "*" matches ".".
3712
3713 2005-05-12  Hrvoje Niksic  <hniksic@xemacs.org>
3714
3715         * ftp-ls.c (ftp_index): Use %d to print the port number, which is
3716         now int.
3717         From Steven M. Schweda's VMS patches.
3718
3719 2005-05-12  Hrvoje Niksic  <hniksic@xemacs.org>
3720
3721         * url.c (rewrite_shorthand_url): Don't rewrite "https://host" to
3722         "ftp://https//host" when SSL is not used.
3723
3724 2005-05-11  Hrvoje Niksic  <hniksic@xemacs.org>
3725
3726         * openssl.c (ssl_check_server_identity): Renamed to
3727         ssl_check_certificate because it does more than just checking the
3728         server's identity.
3729         (ssl_check_certificate): Tell the user about
3730         --no-check-certificate.
3731
3732 2005-05-11  Hrvoje Niksic  <hniksic@xemacs.org>
3733
3734         * openssl.c (ssl_init): Always use SSL_VERIFY_NONE, so that the
3735         handshake finishes even if the certificate is invalid.  That way
3736         ssl_check_server_identity can provide better diagnostics on why
3737         the verification failed.
3738
3739 2005-05-11  Hrvoje Niksic  <hniksic@xemacs.org>
3740
3741         * openssl.c (pattern_match): New function.
3742         (ssl_check_server_identity): Treat peer certificate common name as
3743         wildcard.
3744
3745 2005-05-10  Hrvoje Niksic  <hniksic@xemacs.org>
3746
3747         * openssl.c (ssl_check_server_identity): Print certificate subject
3748         and issuer.
3749
3750 2005-05-10  Hrvoje Niksic  <hniksic@xemacs.org>
3751
3752         * res.c (res_register_specs): Correctly pass pointers to
3753         hash_table_get_pair.
3754
3755 2005-05-10  Hrvoje Niksic  <hniksic@xemacs.org>
3756
3757         * http.c (gethttp): Call ssl_check_server_identity.
3758
3759         * openssl.c (ssl_check_server_identity): New function, verifies
3760         that the host name in the certificate matches the actual host
3761         name.
3762         (verify_cert_callback): Removed, since it didn't do anything
3763         except returning the preverify_ok argument.
3764
3765         * connect.c (fd_transport_context): Allow retrieval of the context
3766         pointer registered with fd_register_transport.
3767
3768 2005-05-09  Hrvoje Niksic  <hniksic@xemacs.org>
3769
3770         * openssl.c (verify_cert_callback): Renamed from verify_callback.
3771         Always return the received "ok" value.  Print the X509 name in
3772         debug mode.
3773         (ssl_init): Enable partial writes in SSL context.
3774
3775 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
3776
3777         * http.c (http_loop): Check for wildcards in the URL path
3778         component, not in the whole URL.
3779
3780         * ftp.c (ftp_loop): Check for wildcards in URL path before
3781         unescaping, so the users can escape globbing metacharacters with %
3782         escapes.
3783
3784 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
3785
3786         * init.c (run_command): Correctly interpret the return value of
3787         parse_line.
3788         (commands): Re-alphabetize.
3789
3790 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
3791
3792         * netrc.c (parse_netrc): Explicitly check for assignment != NULL
3793         to silence warning from Borland C.
3794
3795         * url.c (sync_path): Don't unnecessarily increment p.
3796         (url_parse): Don't unnecessarily set url_encode to NULL just
3797         prior to return from the function.
3798
3799 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
3800
3801         * log.c (escnonprint_internal): Place variable declarations
3802         before other statements.
3803
3804 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
3805
3806         * html-url.c: Include recur.h.
3807
3808         * http.c (request_new): Define as accepting no args.
3809
3810 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
3811
3812         * url.c (strpbrk_or_eos): Made inline.  Use strchr(s, '\0') for
3813         finding the NUL char position.
3814
3815 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
3816
3817         * url.c (decide_copy_method): Renamed to char_needs_escaping.
3818         Since it now returns only two possible values, change it to return
3819         boolean (int).
3820
3821 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
3822
3823         * ftp-basic.c (ftp_request): Prevent newlines in VALUE causing
3824         inadvertent sending of multiple FTP commands.
3825
3826 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
3827
3828         * url.c (decide_copy_method): Never cause reencode_escapes to
3829         decode % escapes; it is too intrusive and breaks some servers.
3830
3831 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
3832
3833         * http.c (gethttp): When tunnelling SSL traffic over proxy with
3834         CONNECT, we're really talking to the remote server directly.
3835         Because of this, the request-line argument must be the URL path
3836         rather than the whole URL, as it would be when using regular
3837         proxies.
3838         Reported by Charles Lane.
3839
3840 2005-05-06  Hrvoje Niksic  <hniksic@xemacs.org>
3841
3842         * init.c (cmd_spec_useragent): Allow empty User-Agent.
3843
3844         * http.c (gethttp): Don't print "unknown authentication scheme"
3845         for failed Basic authentication.
3846         (SET_USER_AGENT): Don't set user-agent if opt.useragent is empty.
3847         (gethttp): Use alloca for allocation of www_authenticate.
3848
3849 2005-05-06  Hrvoje Niksic  <hniksic@xemacs.org>
3850
3851         * main.c (print_help): Fix wording of --secure-protocol help text.
3852
3853 2005-05-06  Hrvoje Niksic  <hniksic@xemacs.org>
3854
3855         * cmpt.c (strstr): Updated from glibc 2.3.5.
3856
3857 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
3858
3859         * http.c (http_atotm): Zero out the whole struct tm being passed
3860         to strptime.
3861
3862 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
3863
3864         * main.c (main): Propagate option name to setoptval.
3865
3866         * init.c (setoptval): Accept another argument, OPTNAME.  Propagate
3867         that argument as the option name independently of the actual
3868         command, determined by command_by_name(com).
3869
3870 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
3871
3872         * init.c (parse_line): Make the return value indicate whether
3873         there was a syntax error or a setter failed.
3874         (run_wgetrc): Return an indication on whether an error has been
3875         encountered.
3876         (initialize): Abort if there have been errors running either
3877         .wgetrc file.
3878
3879 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
3880
3881         * log.c (copy_and_escape): Slightly reduce code repetition between
3882         the two loops.
3883
3884 2005-05-05  Charles C.Fu  <ccwf@bacchus.com>
3885
3886         * utils.c (proclist): Strip leading slash when calling fnmatch
3887         too, otherwise wildcard comparisons always fail.
3888
3889 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
3890
3891         * utils.c (touch): Set access time to current time.
3892
3893 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
3894
3895         * url.c (url_unescape): Don't unescape %00, it effectively
3896         truncates the string.
3897
3898 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
3899
3900         * log.c (copy_and_escape): Replace the FOR_URI argument with a
3901         slightly more general mechanism for specifying different kinds of
3902         escape.
3903
3904 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
3905
3906         * ftp-basic.c (ftp_response): Fix printing FTP server response.
3907
3908 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
3909
3910         * retr.c (limit_bandwidth_reset): Reset sleep_adjust.
3911         (limit_bandwidth): Don't allow huge "adjustment" values that
3912         result from being suspended for a while.
3913
3914 2005-05-04  Hrvoje Niksic  <hniksic@xemacs.org>
3915
3916         * wget.h: If gettext was found but libtintl.h wasn't, declare
3917         gettext's return type to avoid type mismatches.
3918
3919 2005-05-03  Hrvoje Niksic  <hniksic@xemacs.org>
3920
3921         * url.c (url_parse): Rename label `error' to avoid conflict with
3922         identifier.
3923
3924         * retr.c (fd_read_body): Rename label `out' to avoid conflict with
3925         identifier.
3926         (fd_read_hunk): Use explicit double constant.
3927         (retrieve_from_file): Don't use string concatenation.
3928         (sleep_between_retrievals): Make sure xsleep is called with a
3929         `double' argument.
3930         (no_proxy_match): Define as static, like it is declared.
3931
3932         * progress.c (bar_create): Use 0.0 instead of 0 because K&R
3933         compilers can't automatically promote it.
3934
3935         * http-ntlm.c (ntlm_output): Replace \xHH sequences with \OOO for
3936         the sake of old compilers.
3937
3938         * ftp.c (ftp_loop_internal): Don't use string concatenation.
3939
3940         * http.c (request_send): Use explicit double constants when
3941         calling fd_read and fd_write.
3942         (post_file): Ditto.
3943         (gethttp): Ditto.
3944         (skip_short_body): Ditto.
3945
3946         * ftp-basic.c: When calling fd_write, specify the last argument as
3947         a `double' constant for the sake of K&R compilers which don't see
3948         the prototype and therefore can't promote it to double
3949         automatically.
3950
3951         * cookies.c (cookie_jar_load): Rename abort label to abort_cookie
3952         to avoid name conflict in K&R compilers.
3953
3954 2005-04-29  Hrvoje Niksic  <hniksic@xemacs.org>
3955
3956         * ptimer.c (posix_init): Since we allow _POSIX_MONOTONIC_CLOCK==0,
3957         it is not enough to check for _POSIX_MONOTONIC_CLOCK-0, we must
3958         also check for defined(_POSIX_MONOTONIC_CLOCK).
3959
3960 2005-04-28  Hrvoje Niksic  <hniksic@xemacs.org>
3961
3962         * ftp.c, hash.c, connect.c, host.c, http.c: Remove unreached code,
3963         such as "break" following return or abort.
3964
3965 2005-04-28  Hrvoje Niksic  <hniksic@xemacs.org>
3966
3967         * init.c (commands): Wrap the use of opt.random_file in #ifdef
3968         HAVE_SSL.
3969
3970 2005-04-28  Hrvoje Niksic  <hniksic@xemacs.org>
3971
3972         * http.c (gethttp): Correctly set the user agent.
3973
3974 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
3975
3976         * init.c (cmd_spec_useragent): Free the old value of
3977         opt.useragent before setting the new one.
3978
3979 2005-04-27  Mauro Tortonesi  <mauro@ferrara.linux.it>
3980
3981         * main.c: Map --ftp-password, --http-password and --proxy-password to
3982         the new ftppassword, httppassword and proxypassword commands
3983         respectively.  Document the --user and --password options in the help
3984         string.
3985
3986 2005-04-27  Mauro Tortonesi  <mauro@ferrara.linux.it>
3987
3988         * ftp.c: Add support for --user and --password.
3989
3990         * http.c: Add support for --user and --password.
3991
3992         * init.c: Deprecated ftppasswd, httppasswd, login, passwd and
3993         proxypasswd commands.  Added ftppassword, ftpuser, httppassword,
3994         password, proxypassword and user commands.
3995
3996         * main.c: Renamed --ftp-passwd to --ftp-password.  Added --ftp-user,
3997         --http-password, --password, --proxy-password and --user.  Deprecated
3998         --http-passwd and --proxy-passwd.  Added documentation for new options
3999         and removed documentation for deprecated options in the help string.
4000
4001         * options.h (struct options): Added user and passwd members to handle
4002         --user and --password respectively.  Renamed ftp_acc and ftp_pass
4003         members to ftp_user and ftp_passwd for consistency.
4004
4005 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
4006
4007         * main.c (print_help): Advertise "DER", not "ASN1".
4008
4009 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
4010
4011         * openssl.c (init_prng): Disable the weak random seed by default.
4012
4013         * http.c (gethttp): Simplify SSL initialization; disable SSL when
4014         anything goes wrong with the initialization.
4015
4016         * options.h (struct options): New option opt.random_file.
4017
4018 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
4019
4020         * init.c: Wrap private key commands in IF_SSL.
4021
4022 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
4023
4024         * openssl.c (ssl_init): Ditto.
4025
4026         * options.h (struct options): Allow separate specification of key
4027         type and certificate type.
4028
4029         * init.c (cmd_spec_cert_type): Provide a "der" synonym for "asn1"
4030         certificate encoding.
4031
4032 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
4033
4034         * openssl.c: Renamed "gen_sslfunc.c" to "openssl.c" and
4035         "gen_sslfunc.h" to "openssl.h".  This reflects the intent of
4036         openssl.c encapsulating the OpenSSL-specific code.
4037
4038 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
4039
4040         * init.c: Renamed "closure" (a synonym for context in some
4041         cultures) to "place", which more accurately reflects the usage.
4042
4043 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
4044
4045         * gen_sslfunc.c (ssl_init): Use default locations for loading the
4046         certificate bundles.
4047         (ssl_init_prng): Disable the cryptographically weak PRNG
4048         initialization fallback.
4049
4050         * init.c: Renamed SSL command-line arguments and wgetrc commands.
4051         (defaults): Check the server certificate by default.
4052
4053 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
4054
4055         * cookies.c (cookie_handle_set_cookie): Delete the part of the
4056         path after the trailing slash.
4057
4058         * http.c (gethttp): Call cookie_handle_set_cookie with path that
4059         begins with '/'.
4060
4061 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
4062
4063         * http.c (gethttp): Call skip_short_body only if keep_alive is in
4064         use.
4065         (gethttp): Send the User-Agent header with the CONNECT request as
4066         well.
4067
4068 2005-04-25  Hrvoje Niksic  <hniksic@xemacs.org>
4069
4070         * main.c (option_data): Removed support for the undocumented flag
4071         --use-proxy.
4072
4073 2005-04-25  Hrvoje Niksic  <hniksic@xemacs.org>
4074
4075         * main.c (option_data): Don't treat -Y as a boolean switch; treat
4076         it as a value switch instead, so "-Y off" continues to work.
4077
4078 2005-04-24  Hrvoje Niksic  <hniksic@xemacs.org>
4079
4080         * utils.c (aprintf): Delete unreachable statement.
4081
4082 2005-04-24  Hrvoje Niksic  <hniksic@xemacs.org>
4083
4084         * host.c (cmp_prefer_ipv4): New function.
4085         (cmp_prefer_ipv6): New function.
4086         (lookup_host): Use the appropriate comparator according to
4087         opt.prefer_family.
4088
4089         * init.c: New option prefer_family.
4090
4091         * host.c (is_valid_ipv6_address): Spell NS_* constants in lower
4092         case to avoid clash with system headers.
4093         (lookup_host): Reorder the addresses so that IPv4 ones come first.
4094
4095         * utils.c (stable_sort): New function.
4096
4097 2005-04-24  Hrvoje Niksic  <hniksic@xemacs.org>
4098
4099         * connect.c (retryable_socket_connect_error): Return 0 for
4100         ENETUNREACH and EHOSTUNREACH.
4101
4102 2005-04-23  Hrvoje Niksic  <hniksic@xemacs.org>
4103
4104         * cmpt.c: Reenable the memmove implementation for systems that
4105         lack it.
4106
4107         * http.c (gethttp): Store the "authorized" state of the persistent
4108         connection.
4109         (request_remove_header): New function.
4110         (gethttp): Don't send the "Basic" authentication if the connection
4111         is already authorized.
4112
4113 2005-04-23  Hrvoje Niksic  <hniksic@xemacs.org>
4114
4115         * utils.c (base64_encode): Treat input as unsigned chars.
4116         Required for correct encoding of binary stuff.
4117
4118 2005-04-23  Hrvoje Niksic  <hniksic@xemacs.org>
4119
4120         * http-ntlm.c: Format the function definitions in an
4121         ansi2knr-friendly fashion.
4122
4123 2005-04-22  Hrvoje Niksic  <hniksic@xemacs.org>
4124
4125         * http.c (gethttp): Handle multiple WWW-Authentication headers,
4126         only one of which is recognized.  Those are sent by IIS with NTLM
4127         authorization.
4128         (create_authorization_line): Propagate information whether
4129         authorization is finished.
4130         (gethttp): Only stop authorization when it's really finished, not
4131         after fixed two steps.
4132
4133 2005-04-21  Hrvoje Niksic  <hniksic@xemacs.org>
4134
4135         * gen_sslfunc.c (ssl_init): Fix warning message text; mark the
4136         message as translatable.
4137
4138 2005-04-21  Hrvoje Niksic  <hniksic@xemacs.org>
4139
4140         * main.c (print_help): Print the EGD option outside the cluster of
4141         SSL options.
4142
4143 2005-04-21  Hrvoje Niksic  <hniksic@xemacs.org>
4144
4145         * http-ntlm.c (ntlm_output): Fix setting the domain.
4146         Suggested by Sami Krank.
4147
4148 2005-04-20  Mauro Tortonesi  <mauro@ferrara.linux.it>
4149
4150         * connect.c: Set IPV6_V6ONLY socket option when -6 switch is used.
4151
4152 2005-04-20  FUJISHIMA Satsuki  <sf@FreeBSD.org>
4153
4154         * http.c (request_set_header): Fix the check whether a new header
4155         needs to be allocated.
4156
4157 2005-04-18  Hrvoje Niksic  <hniksic@xemacs.org>
4158
4159         * utils.c (base64_encode): Use the parameter order that makes more
4160         sense.  Return the length of the base64 written.  Updated all
4161         callers.
4162
4163 2005-04-17  Hrvoje Niksic  <hniksic@xemacs.org>
4164
4165         * http.c (request_set_header): Free NAME when VALUE is NULL and
4166         freeing the header name is requested.
4167
4168 2005-04-17  Hrvoje Niksic  <hniksic@xemacs.org>
4169
4170         * snprintf.c (fmtstr): Declare VALUE as const char *.
4171         Based on patch by Russ Allbery.
4172
4173 2005-04-17  Hrvoje Niksic  <hniksic@xemacs.org>
4174
4175         * snprintf.c (fmtfp): More correct handling of significant digit
4176         count with %g -- 0.002 has one significant digit, not three.
4177
4178 2005-04-16  Hrvoje Niksic  <hniksic@xemacs.org>
4179
4180         * retr.c (fd_read_body): Respect read timeout with non-interactive
4181         or no progress gauge -- treat ETIMEDOUT specially only when
4182         progress_interactive.
4183         Reported by FUJISHIMA Satsuki.
4184
4185 2005-04-16  FUJISHIMA Satsuki  <sf@FreeBSD.org>
4186
4187         * http.c (gethttp): Don't use HTTP/1.0 persistent connections over
4188         proxy.
4189
4190 2005-04-16  Hrvoje Niksic  <hniksic@xemacs.org>
4191
4192         * snprintf.c: Use the PARAMS macro to handle prototypes.  Write
4193         function definitions in the ansi2knr-friendly way.
4194         (fmtstr): If string precision is specified, don't read VALUE past
4195         it.
4196         (dopr): Actually print %g and %e formats.
4197         (fmtfp): Fix a bug that caused 0.01 to be printed as 0.1.
4198         (fmtfp): Use LLONG in floating point conversions to be able to
4199         convert more digits.
4200         (fmtfp): Interpret precision as number of significant digits with
4201         %g.
4202         (fmtfp): Omit trailing decimal zeros with %g.
4203
4204         * snprintf.c: Don't include <ctype.h> because none of it is used.
4205         Include strings.h/string.h, as per Autoconf.
4206
4207 2005-04-15  Hrvoje Niksic  <hniksic@xemacs.org>
4208
4209         * ptimer.c: Use _POSIX_TIMERS - 0 > 0, which handles the case when
4210         _POSIX_TIMERS is defined but empty, as well as the case when it is
4211         undefined.  Do the same with the check for _POSIX_MONOTONIC_CLOCK.
4212         Suggested by Larry Jones.
4213
4214 2005-04-15  Hrvoje Niksic  <hniksic@xemacs.org>
4215
4216         * ptimer.c: Check that _POSIX_TIMERS is defined as well as > 0.
4217         Problem reported by Steven M. Schweda.
4218
4219 2005-04-14  Hrvoje Niksic  <hniksic@xemacs.org>
4220
4221         * http.c (skip_short_body): Print the skipped body data in debug
4222         mode.
4223         (skip_short_body): Don't skip more than 4k of body data.
4224         (skip_short_body): Return whether the skipping was successful.
4225         (gethttp): If skip_short_body failed, invalidate the connection.
4226
4227 2005-04-12  Gisle Vanem  <giva@bgnett.no>
4228
4229         * ftp.c (getftp): Ditto.
4230
4231         * http.c (gethttp): Open the output file in binary mode.
4232
4233 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
4234
4235         * hash.c: Conditionalize including config.h on HAVE_CONFIG_H
4236         instead of on STANDALONE.
4237
4238 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
4239
4240         * gen_sslfunc.c (ssl_print_errors): Made static.
4241         (ssl_print_errors): Eliminate potentially dangerous fixed-size
4242         error buffer.  Passing NULL to ERR_error_string causes it to use
4243         its own static buffer, which is fine for our purposes.
4244
4245         * gen_sslfunc.c: Include gen_sslfunc.h.  Make the declarations of
4246         ssl_init and ssl_conect match the actual definitions.
4247         (ssl_connect): Simply return a boolean, the SSL context is no
4248         longer useful as a return value.
4249
4250         * retr.c: Don't include SSL headers; we don't need them.
4251
4252 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
4253
4254         * config-post.h: Don't define _VA_LIST under Solaris; it breaks
4255         compilation with GCC 3.4 under Solaris 10.  (It was defined to
4256         avoid a warning with previous versions of GCC.)
4257
4258 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
4259
4260         * xmalloc.c (register_ptr): Warn the user to increase SZ prior to
4261         aborting.
4262
4263 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
4264
4265         * convert.c (convert_cleanup): Free converted_files.
4266
4267 2005-04-10  Hrvoje Niksic  <hniksic@xemacs.org>
4268
4269         * wget.h (DEBUGP): Use __builtin_expect to give a hint to GCC that
4270         opt.debug is false in the vast majority of cases.
4271
4272 2005-04-10  Hrvoje Niksic  <hniksic@xemacs.org>
4273
4274         * config-post.h: Declare alloca as void *, not char *.
4275
4276 2005-04-09  Hrvoje Niksic  <hniksic@xemacs.org>
4277
4278         * recur.c (download_child_p): When -p is used, (temporarily)
4279         ignore accept/reject rules for HTMLs, even when they are at the
4280         maximum recursion depth.  That is because with -p we are, if
4281         necessary, overstepping the max. depth to get the requisites.
4282
4283 2004-06-12  Larry Jones <lawrence.jones@ugsplm.com>
4284
4285         * recur.c (download_child_p): Correct the logic in check number 6:
4286         test opt.reclevel (not DEPTH) against INFINITE_RECURSION.
4287
4288 2005-04-09  Hrvoje Niksic  <hniksic@xemacs.org>
4289
4290         * url.c: Use "static const" in preference to "const static".
4291         Sun's cc warns that "storage class after type is obsolescent".
4292
4293         * url.c (urlchr_table): Don't mark ~ as unsafe, too many broken
4294         web sites are confused when ~ is changed to %7E.  Their servers
4295         redirect /%7Efoo/ to /~foo/, which Wget again accesses using %7E,
4296         causing further redirections, therefore looping infinitely.  See
4297         Debian bug #301624 for an example.
4298
4299 2005-04-09  Hrvoje Niksic  <hniksic@xemacs.org>
4300
4301         * alloca.c: Include wget.h to be able to use xmalloc.  In addition
4302         to defining malloc to xmalloc, also define free to xfree.
4303
4304 2005-04-09  Hrvoje Niksic  <hniksic@xemacs.org>
4305
4306         * http-ntlm.c (ntlm_output): Use "char", not "unsigned char" for
4307         ntlmbuf.  Our base64 functions accept char anyway.
4308         (ntlm_output): Join up the format string, since we nominally
4309         support K&R compilers.
4310         (ntlm_output): Ditto.
4311
4312 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
4313
4314         * ptimer.c: Use Windows timers under Cygwin, whose POSIX timer
4315         implementation is incomplete.
4316
4317 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
4318
4319         * ptimer.c (struct ptimer): Remove the unused initialized field.
4320
4321         * ptimer.c: Renamed function parameters from WT (which used to
4322         stand for wget_timer or wtimer) to PT.
4323
4324 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
4325
4326         * ptimer.c (posix_init): Be smarter about choosing clocks.  In
4327         decreasing order of preference, use CLOCK_MONOTONIC,
4328         CLOCK_HIGHRES, and CLOCK_REALTIME.
4329         (ptimer_allocate): Removed.
4330
4331         * ptimer.c: Refactor the code by cleanly separating the
4332         architecture-dependent code from the architecture-independent
4333         code.
4334
4335 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
4336
4337         * ptimer.c (ptimer_init): Explicitly check that
4338         _POSIX_MONOTONIC_CLOCK is *both* defined and >=0.  (Undefined
4339         symbols are >=0.)
4340
4341 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
4342
4343         * ptimer.c (ptimer_diff): Fix typo affecting Windows build.
4344
4345 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
4346
4347         * ptimer.c (ptimer_init): In fact, _POSIX_MONOTONIC_CLOCK needs to
4348         be >= 0.
4349
4350         * ptimer.c (ptimer_init): Check whether _POSIX_MONOTONIC_CLOCK is
4351         defined instead of whether it's greater than 0.  glibc defines it
4352         to 0, but still makes it available via sysconf.
4353
4354 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
4355
4356         * mswindows.c (str_to_int64): Rename OVERFLOW and UNDERFLOW to
4357         INT64_OVERFLOW and INT64_UNDERFLOW, since those names are used.
4358
4359 2005-04-07  Hrvoje Niksic  <hniksic@xemacs.org>
4360
4361         * ptimer.c: New file.  Move the "wtimer" functions from utils.c to
4362         this file and rename them to ptimer_.
4363
4364 2005-04-07  Hrvoje Niksic  <hniksic@xemacs.org>
4365
4366         * host.c (NO_ADDRESS): Define NO_ADDRESS only after the system
4367         headers have been included.
4368
4369 2005-04-06  Hrvoje Niksic  <hniksic@xemacs.org>
4370
4371         * http.c (pconn): Include NTLM data, which is per-connection.
4372         (known_authentication_scheme_p): Recognize NTLM authorization.
4373         (create_authorization_line): Call ntlm_input and ntlm_output.
4374
4375         * http-ntlm.c: New file, donated by Daniel Stenberg and originally
4376         written for curl, heavily modified for Wget.
4377
4378         * utils.c (base64_encode): Relocated from http.c, since it is now
4379         used by http-ntlm.c, and will possibly be used elsewhere.
4380         (base64_decode): New function, originally based on code from GNU
4381         recode.
4382
4383 2005-04-02  Hrvoje Niksic  <hniksic@xemacs.org>
4384
4385         * ftp.c (ftp_loop): Ditto.
4386
4387         * ftp-basic.c (ftp_pasv): Use the xzero shorthand for memset(0).
4388         (ftp_lpsv): Ditto.
4389
4390 2005-04-05  Mauro Tortonesi  <mauro@ferrara.linux.it>
4391
4392         * Makefile.in: removed string_t.c from list of source files.
4393
4394 2005-04-04  Mauro Tortonesi  <mauro@ferrara.linux.it>
4395
4396         * string_t.c: Removed.
4397
4398         * string_t.h: Removed.
4399
4400 2005-04-02  Hrvoje Niksic  <hniksic@xemacs.org>
4401
4402         * url.c (rewrite_shorthand_url): Only accept recognized schemes.
4403         That way "foo:80" will correctly be rewritten to "http://foo:80"
4404         instead of left unchanged and ultimately rejected because of
4405         "unsupported scheme foo".
4406
4407 2005-03-31  Hrvoje Niksic  <hniksic@xemacs.org>
4408
4409         * utils.c (number_to_string): Avoid explicit 64-bit constants;
4410         construct them by multiplication at compile-time.
4411
4412         * utils.c, elsewhere: Don't append "L" to 32-bit integer
4413         constants; we aren't really compilable on 16-bit systems anyway.
4414
4415         * hash.c (prime_size): Remove primes larger than 2^31, but include
4416         2^31-1, which is prime.
4417
4418 2005-03-30  Hrvoje Niksic  <hniksic@xemacs.org>
4419
4420         * utils.c (string_set_to_array): New function.
4421
4422         * convert.c: Replace the use of "slists" with sets/hash-tables,
4423         which in fact suit the intended purpose much better.
4424         downloaded_html_list is removed altogether.
4425
4426 2005-03-29  Hrvoje Niksic  <hniksic@xemacs.org>
4427
4428         * ftp.h (enum): Rename GLOBALL, GETALL, and GETONE to
4429         GLOB_GLOBALL, GLOB_GETALL, and GLOB_GETONE to avoid conflict with
4430         Linux headers.
4431
4432 2005-03-29  Hrvoje Niksic  <hniksic@xemacs.org>
4433
4434         * utils.c (numdigit): More correct handling of negative numbers.
4435
4436 2005-03-21  Hrvoje Niksic  <hniksic@xemacs.org>
4437
4438         * http.c (gethttp): Print the human-readable size.
4439
4440         * ftp.c (getftp): Print the human-readable size of the file to be
4441         downloaded.
4442
4443         * utils.c (human_readable): New function.
4444
4445         * utils.c: Renamed "legible" to "with_thousand_seps",
4446         "legible_large_int" to "with_thousand_seps_large", and "legible_1"
4447         to "add_thousand_seps".
4448
4449 2005-03-21  Hrvoje Niksic  <hniksic@xemacs.org>
4450
4451         * http.c (gethttp): Inhibit persistent connections when talking to
4452         proxies, as mandated by RFC 2068.
4453
4454 2005-03-20  Hrvoje Niksic  <hniksic@xemacs.org>
4455
4456         * url.c (unescape_single_char): New function.
4457         (url_escape_dir): Use it to unescape slashes in directory
4458         components.
4459         (url_string): Escape unsafe chars in host name, except for the ':'
4460         charaters, which can appear in IPv6 addresses.
4461
4462         * main.c (main): Don't access the cookie jar directly.
4463
4464         * log.c (escnonprint_internal): Correctly calculate the needed
4465         string size.  Don't forget the buffer's new size after having
4466         reallocated it.
4467         (log_cleanup): New function.  Free the escnonprint ring data.
4468
4469         * init.c (cleanup): Don't free the cookie jar explicitly, it is
4470         now done by http_cleanup.
4471         (cleanup): opt.user_headers is now a vector, free it with
4472         free_vec.
4473
4474         * http.c (gethttp): Make sure to free the request data, the status
4475         message, and the response data before returning from the function.
4476         (save_cookies): New function.
4477         (http_cleanup): Free the cookie jar here.
4478
4479         * hash.c: Renamed string_hash to hash_string and ptrhash to
4480         hash_pointer.  Exported hash_pointer.
4481
4482         * xmalloc.c: Organized malloc_table (previously malloc_debug) as a
4483         simple EQ hash table.  register_ptr and unregister_ptr are now of
4484         O(1) complexity.
4485
4486         * xmalloc.c: Renamed "*_debug" to debugging_* and "*_real" to
4487         checking_*.
4488
4489 2005-03-12  Hrvoje Niksic  <hniksic@xemacs.org>
4490
4491         * utils.c (debug_test_md5): Moved to gen-md5.c.
4492
4493         * mswindows.h: Don't declare inet_ntop, since we don't use it.
4494
4495         * mswindows.h: For consistency, also wrap closesocket, it being
4496         a Winsock call.
4497
4498         * mswindows.h: Don't declare sleep and usleep; we're defining
4499         xsleep now.
4500
4501         * mswindows.h (mkdir): Don't special-case Borland C, _mkdir
4502         works there as well.
4503
4504         * host.c: Don't include winsock header files; the correct ones
4505         are already included by mswindows.h.
4506
4507         * mswindows.c (xsleep): Round toward the nearest millisecond
4508         in an attempt to avoid average short sleeps.
4509
4510         * utils.c (wtimer_granularity): Report correct values for
4511         Windows timers and for high-resolution timers.
4512
4513         * utils.c (wtimer_initialize_once): New function, called to
4514         initialize the timer frequency.
4515
4516         * utils.c: Replace the use of GetSystemTime with high-resolution
4517         counters under Windows.  When high-resolution counters are
4518         unavailable, use GetTickCount().
4519
4520 2005-03-15  Hrvoje Niksic  <hniksic@xemacs.org>
4521
4522         * retr.c (fd_read_body): Undo the 2004-11-18 change.  Instead,
4523         always be "exact".
4524
4525 2005-03-17  Hrvoje Niksic  <hniksic@xemacs.org>
4526
4527         * ftp-basic.c (ftp_login): Don't free the string if ftp_response
4528         returned an error status because the line didn't get allocated in
4529         the first place.
4530
4531 2005-03-15  Hrvoje Niksic  <hniksic@xemacs.org>
4532
4533         * http.c (read_http_response_head): Limit the response size to 64k
4534         bytes.
4535
4536         * retr.c (fd_read_hunk): Accept a MAXSIZE argument that limits the
4537         number of bytes the function is allowed to allocate.
4538         (fd_read_line): Limit the line to 4096 bytes.
4539
4540 2005-03-12  Hrvoje Niksic  <hniksic@xemacs.org>
4541
4542         * wget.h: Include options.h after wgint has been defined.
4543
4544         * options.h (struct options): Declare options processed with
4545         cmd_bytes as wgint, not long.
4546
4547 2005-03-18  Hrvoje Niksic  <hniksic@xemacs.org>
4548
4549         * init.c (cmd_file): Use concat_strings.
4550
4551         * http.c (basic_authentication_encode): Use concat_strings.
4552
4553         * ftp-ls.c (ftp_index): Use concat_strings.
4554
4555         * ftp-basic.c (ftp_request): Use concat_strings.
4556
4557         * utils.c (concat_strings): New function.
4558
4559 2005-03-12  Hrvoje Niksic  <hniksic@xemacs.org>
4560
4561         * init.c (simple_atof): Handle negative numbers; skip whitespace
4562         before the number.
4563         (simple_atoi): Ditto.  Also, check for overflow and underflow.
4564         (cmd_number): Bail out on negative numbers.
4565         (parse_bytes_helper): Ditto.
4566
4567 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
4568
4569         * http.c (gethttp): Handle multiple Set-Cookie headers sent by
4570         remote server.
4571
4572 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
4573
4574         * init.c (defaults): Use passive FTP by default.
4575
4576 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
4577
4578         * mswindows.c: Provide wrappers to Winsock functions that set
4579         errno to WSAGetLastError() in case of failure.  Also provide a
4580         Windows-specific version of strerror.
4581
4582         * mswindows.h: Wrap calls to socket, bind, connect, recv, send,
4583         select, getsockname, getpeername, and setsockopt.
4584
4585 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
4586
4587         * url.c (url_parse): Reject port numbers larger than 65535.  We
4588         also check for overflow while parsing port numbers.
4589
4590 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
4591
4592         * utils.c (read_file): Don't use wgint for file size; LFS won't
4593         work since the file is mmap'ed as a whole.
4594
4595         * options.h: Don't include stdio.h.
4596
4597         * log.c: Ditto.
4598
4599         * init.c: Disambiguate assignment from non-zero test to avoid
4600         Borland C warning.
4601
4602         * http.c (response_new): Don't needlessly post-increment count.
4603
4604         * hash.c: Include stdio.h.
4605
4606         * gnu-md5.h: Don't include stdio.h.
4607
4608         * getopt.h (struct option): Always use const.
4609
4610         * ftp.c (getftp): Avoid unnecessary assignment to RES to avoid
4611         Borland C warning.
4612
4613         * ftp-ls.c: Disambiguate assignment from non-zero test to avoid
4614         Borland C warning.
4615
4616         * cmpt.c (strptime_internal): Don't initialize rp_backup when
4617         !_NL_CURRENT to avoid Borland C warning.
4618
4619 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
4620
4621         * utils.c (fopen_excl): Fix parse error when O_BINARY is
4622         available.
4623
4624 2005-03-05  Hrvoje Niksic  <hniksic@xemacs.org>
4625
4626         * url.c (url_file_name): Don't allow hosts named ".." to be
4627         appended as path elements.
4628
4629 2005-03-03  Hrvoje Niksic  <hniksic@xemacs.org>
4630
4631         * retr.c (retrieve_url): Escape location header.
4632
4633         * http.c (print_server_response_1): Escape server response when
4634         printing it.
4635         (gethttp): Escape host name, status message, location header, and
4636         content type.
4637         (http_loop): Escape error message from server.
4638
4639         * host.c (lookup_host): Escape host name when printing it.
4640
4641         * ftp.c (getftp): Escape user name when printing it.
4642         (getftp): Escape remote file and directory for printing.
4643         (getftp): Escape server listing when printing it.
4644         (ftp_retrieve_list): Escape link name and file name.
4645         (ftp_retrieve_glob): Escape file name.
4646
4647         * ftp-basic.c (ftp_response): Escape server response when printing
4648         it.
4649
4650         * cookies.c (parse_set_cookies): Escape the cookie field when
4651         printing it.
4652         (parse_set_cookies): Escape contents of remote header.
4653         (cookie_handle_set_cookie): Escape host name and cookie domain.
4654
4655         * connect.c (connect_to_ip): Escape the host name.
4656
4657         * log.c (escnonprint): New function, used for printing strings
4658         coming from the server that possibly contain non-ASCII characters.
4659         (escnonprint_uri): Ditto.
4660
4661 2005-02-24  Hrvoje Niksic  <hniksic@xemacs.org>
4662
4663         * ftp.c (getftp): Ditto.
4664
4665         * http.c (gethttp): When we're not supposed to overwrite files,
4666         use fopen_excl to open the file and recompute the file name.
4667
4668         * log.c (redirect_output): Use unique_create to avoid a race
4669         condition.
4670
4671         * mswindows.c (fake_fork_child): Use unique_create.
4672
4673         * utils.c (fopen_excl): New function that opens a stdio stream
4674         with the O_EXCL flag (where available).
4675         (unique_create): New function, like unique_name, but also creating
4676         the file and returning a file pointer.
4677         (fork_to_background): Use unique_create to create the file
4678         immediately to avoid race condition with multiple instances of
4679         wget -b.
4680
4681 2005-02-24  Hrvoje Niksic  <hniksic@xemacs.org>
4682
4683         * host.c (lookup_host): Test for AI_ADDRCONFIG directly, instead
4684         of checking for HAVE_GETADDRINFO_AI_ADDRCONFIG.
4685
4686 2005-02-23  Hrvoje Niksic  <hniksic@xemacs.org>
4687
4688         * host.c (is_valid_ipv6_address): Move here from url.c.
4689         (lookup_host): If the address is numeric, don't print the
4690         "resolving..." line, don't set up DNS timeouts, and set the
4691         AI_NUMERICHOST hint, where available.
4692
4693 2005-02-26  Gisle Vanem  <giva@bgnett.no>
4694
4695         * utils.c: Use the nnnLL syntax under GCC.  Define struct_stat to
4696         struct _stati64 under __MINGW32__ as well as under MS VC.
4697
4698 2005-02-26  Hrvoje Niksic  <hniksic@xemacs.org>
4699
4700         * utils.c: Use the nnnI64 syntax for __int64 constants under all
4701         Windows compilers.
4702         (SPRINTF_WGINT): Use "%I64" under all Windows compilers.
4703
4704         * mswindows.h (WGINT_MAX): Use the nnnI64 syntax for
4705         __int64 constants under all Windows compilers.
4706         (struct_stat): Use `struct stati64' under Borland C.
4707         (fstat): Don't redefine to _fstati64 under Borland.
4708
4709         * mswindows.c: Define str_to_int64 under Borland C as well as
4710         under (older) Visual C.
4711
4712 2005-02-25  Hrvoje Niksic  <hniksic@xemacs.org>
4713
4714         * ftp.c (getftp): Initialize err to suppress compiler warning.
4715
4716 2005-02-24  Hrvoje Niksic  <hniksic@xemacs.org>
4717
4718         * ftp.c (ftp_expected_bytes): Fix bug that caused infloop because
4719         of not correctly skipping the '(' character.
4720
4721 2005-02-24  Hrvoje Niksic  <hniksic@xemacs.org>
4722
4723         * mswindows.c (wget_ftello): Removed.
4724
4725         * mswindows.h: Remove bogus definition of stat.
4726         (wget_ftello): Remove the leftover ftello replacement.
4727
4728 2005-02-20  Hrvoje Niksic  <hniksic@xemacs.org>
4729
4730         * mswindows.c (wget_ftello): Wget's replacement for ftello.
4731
4732         * utils.c (file_size): Use ftello where available.
4733
4734         * ftp-ls.c (ftp_parse_unix_ls): Use str_to_wgint to parse the file
4735         size.
4736         (ftp_parse_winnt_ls): Ditto.
4737
4738         * ftp-basic.c (ftp_size): Use str_to_wgint to convert number to
4739         wgint; pass 10 instead of 0 as the BASE argument.
4740
4741         * ftp.c (ftp_expected_bytes): Use str_to_wgint to parse the file
4742         size.
4743
4744         * sysdep.h (LARGE_INT_FMT): Use __int64 as LARGE_INT on
4745         MSVC/Windows; print it with "%I64".
4746
4747         * wget.h: Define a `wgint' type, normally aliased to (the possibly
4748         64-bit variant of) off_t.
4749
4750         * all: Use `wgint' instead of `long' for numeric variables that
4751         can hold file sizes.
4752
4753         * utils.c (number_to_string): Support printing of `wgint'
4754         argument.
4755         (number_to_static_string): New function.
4756
4757         * all: Replace printf("%ld", long_value) with printf("%s",
4758         number_to_static_string(wgint_value)).
4759
4760 2005-02-18  Mauro Tortonesi <mauro@ferrara.linux.it>
4761
4762         * main.c: Added the --ftp-passwd command line option.
4763
4764         * init.c: Renamed command passwd to ftppasswd.
4765
4766 2005-02-11  Mauro Tortonesi <mauro@ferrara.linux.it>
4767
4768         * string_t.c: Fixed a bug in do_escape and triggered escape of
4769         backslashes in string_escape to avoid ambiguities in the result
4770         string.
4771
4772 2005-02-10  Mauro Tortonesi <mauro@ferrara.linux.it>
4773
4774         * string.h: Renamed to string_t.h to fix a compilation conflict
4775         with the string.h header in the standard C library.
4776
4777         * string.c: Renamed to string_t.c for consistency with string.h.
4778
4779         * string_t.c: Ditto.
4780
4781         * string_t.h: Ditto.
4782
4783 2004-12-31  Mauro Tortonesi <mauro@ferrara.linux.it>
4784
4785         * string.c: New file.
4786
4787         * string.h: New file.
4788
4789         * Makefile.in: Added string.c to the list of modules to compile.
4790
4791         * main.c: Updated copyright.
4792
4793 2004-11-18  Ulf Harnhammar <ulf.harnhammar.9485@student.uu.se>
4794
4795         * ftp-ls.c: Fixed a problem in ftp_parse_winnt_ls that could allow a
4796         malicious remote FTP server to crash wget.
4797
4798 2004-11-18  Hans-Andreas Engel <engel@node.ch>
4799
4800         * http.c: Enable --convert-links (-k) when a single page is downloaded
4801         via --output-document (-O).
4802
4803 2004-11-18  Mauro Tortonesi <mauro@deepspace6.net>
4804
4805         * connect.c: Minor correction to the comment in front of fd_peek.
4806
4807 2004-11-18  Leonid Petrov <nouser@lpetrov.net>
4808
4809         * retr.c: Fix a timeout problem in fd_read_body when using http_proxy.
4810
4811 2004-11-15  YAMAZAKI Makoto <Yamazaki.Makoto@fujixerox.co.jp>
4812
4813         * netrc.c: Fix termination by assertion bug in netrc parsing.
4814
4815 2004-05-09  David Fritz  <zeroxdf@att.net>
4816
4817         * mswindows.c (fake_fork): Pass entire command line to the child
4818         process.
4819
4820 2004-03-31  Hrvoje Niksic  <hniksic@xemacs.org>
4821
4822         * http.c (gethttp): Fix typo: SCHEME_SSL -> SCHEME_HTTPS.
4823
4824 2004-03-30  Hrvoje Niksic  <hniksic@xemacs.org>
4825
4826         * http.c (gethttp): Send the Proxy-Authorization header over
4827         non-SSL connections too.
4828
4829 2004-03-25  David Fritz  <zeroxdf@att.net>
4830
4831         * mswindows.c (fake_fork_child): Ignore error code when
4832         OpenFileMapping() fails; assume it failed because the object does
4833         not exist.
4834
4835 2004-03-24  David Fritz  <zeroxdf@att.net>
4836
4837         * mswindows.c (fake_fork): New function.
4838
4839         * mswindows.c (fork_to_background): Use it.
4840
4841 2004-03-19  David Fritz  <zeroxdf@att.net>
4842
4843         * mswindows.c (ws_hangup): Incorporate old fork_to_background()
4844         code.  Add event name argument.
4845         (fork_to_backgorund): Now a simple wrapper around ws_hangup().
4846         (ws_handler): Correctly handle the case when neither CTRLC_BACKGND
4847         nor CTRLBREAK_BACKGND are defined.  Don't bother handling close,
4848         logoff, or shutdown events.  Call ws_hangup() with the correct
4849         event name; don't assume it was CTRL+Break.
4850
4851 2004-03-19  Hrvoje Niksic  <hniksic@xemacs.org>
4852
4853         * url.c (url_parse): Decode %HH sequences in host name.
4854
4855 2004-03-04  Hrvoje Niksic  <hniksic@xemacs.org>
4856
4857         * convert.c (local_quote_string): Quote "#" as "%23" and "%" as
4858         "%25" when creating links to local files.
4859
4860 2004-03-02  David Fritz  <zeroxdf@att.net>
4861
4862         * mswindows.c (ws_percenttitle): Guard against future changes by
4863         doing nothing if the proper variables have not been initialized.
4864         Clamp percentage value.
4865
4866 2004-03-04  Gisle Vanem  <giva@bgnett.no>
4867
4868         * retr.c (fd_read_body): Don't change console title if quiet.
4869
4870 2004-02-25  David Fritz  <zeroxdf@att.net>
4871
4872         * mswindows.c (set_sleep_mode): Remove argument and return value.
4873         Call GetModuleHandle() instead of LoadLibrary()/FreeLibrary() for
4874         kernel32.dll.  Use typedef for function-pointer.  Don't cast
4875         l-value.  Don't use dereference operator when calling through
4876         function-pointer.
4877         (ws_startup): Update call to set_sleep_mode().
4878         (ws_cleanup): Remove call to set_sleep_mode().
4879
4880 2004-02-23  David Fritz  <zeroxdf@att.net>
4881
4882         * http.c (http_loop): Ditto.
4883
4884         * ftp.c (ftp_loop_internal): Update call to ws_changetitle().
4885
4886         * main.c (main): Don't bother calling ws_changetitle().
4887
4888         * mswindows.h (ws_changetitle): Update prototype.
4889
4890         * mswindows.c (ws_changetitle): Remove second argument.  Use
4891         xfree_null().
4892         (ws_percenttitle): Only update title when percentage has changed.
4893
4894 2004-02-23  David Fritz  <zeroxdf@att.net>
4895
4896         * mswindows.h: Ditto.
4897
4898         * mswindows.c: Misc. formatting/comment tweaks throughout.
4899
4900 2004-02-20  David Fritz  <zeroxdf@att.net>
4901
4902         * main.c (print_help): Remove call to ws_help().
4903
4904         * mswindows.c (ws_help): Remove.
4905
4906         * mswindows.h (ws_help): Remove.
4907
4908 2004-02-16  David Fritz  <zeroxdf@att.net>
4909
4910         * init.c (home_dir): Use aprintf() instead of xmalloc()/sprintf().
4911         Under Windows, if $HOME is not defined, use the directory that
4912         contains the Wget binary instead of hard-coded `C:\'.
4913         (wgetrc_file_name): Under Windows, look for $HOME/.wgetrc then, if
4914         not found, look for wget.ini in the directory of the Wget binary.
4915
4916         * mswindows.c (ws_mypath): Employ slightly more robust methodology.
4917         Strip trailing path separator.
4918
4919 2004-02-06  Hrvoje Niksic  <hniksic@xemacs.org>
4920
4921         * http.c (gethttp): Respect --ignore-length.
4922         (gethttp): Inhibit keep-alive if --ignore-length is specified.
4923
4924 2004-02-06  Hrvoje Niksic  <hniksic@xemacs.org>
4925
4926         * connect.c (sockaddr_set_data): Zero out
4927         sockaddr_in/sockaddr_in6.  Apparently BSD-derived stacks need this
4928         when binding a socket to local address.
4929
4930 2004-02-04  Hrvoje Niksic  <hniksic@xemacs.org>
4931
4932         * hash.c: Make the file compilable outside Wget source tree when
4933         -DSTANDALONE is used.
4934
4935 2004-01-29  Hrvoje Niksic  <hniksic@xemacs.org>
4936
4937         * utils.c (determine_screen_width): Return 0 if not running on
4938         Windows or on a TIOCGWINSZ-capable system.
4939
4940 2004-01-28  David Fritz  <zeroxdf@att.net>
4941
4942         * utils.c (determine_screen_width): Correctly determine console
4943         width under Windows.
4944
4945 2004-01-28  Christian Biere  <christianbiere@gmx.de>
4946
4947         * progress.c (bar_set_params): Fixed syntax error when HAVE_ISATTY
4948         was undefined.
4949
4950         * ftp.c (ftp_loop_internal): Allocate a larger buffer in case
4951         "try" gets translated to something large.  Ditto in http_loop in
4952         http.c.
4953
4954         * http.c (response_header_copy): Don't write to buf[BUFSIZE].
4955
4956         * ftp-opie.c (skey_response): Eliminate unnecessary string
4957         concatenation; just call gen_md5_update twice.
4958
4959 2004-01-25  Hrvoje Niksic  <hniksic@xemacs.org>
4960
4961         * utils.c (xsleep): Don't call usleep with values larger than
4962         1,000,000.
4963
4964 2003-12-16  Hrvoje Niksic  <hniksic@xemacs.org>
4965
4966         * http.c (gethttp): Fix generation of `Content-Length'.
4967
4968 2003-12-15  Gisle Vanem  <giva@bgnett.no>
4969
4970         * url.c (url_skip_credentials): Fixed return value; 'url' if no
4971         credentials.
4972
4973 2003-12-14  Hrvoje Niksic  <hniksic@xemacs.org>
4974
4975         * url.c (url_skip_credentials): Return a pointer directly.
4976
4977 2003-12-14  Hrvoje Niksic  <hniksic@xemacs.org>
4978
4979         * url.c (url_file_name): Ditto.
4980         (parse_errors): Ditto.
4981
4982         * retr.c (retr_rate): Ditto.
4983
4984         * progress.c (create_image): Ditto.
4985
4986         * netrc.c (parse_netrc): Ditto.
4987
4988         * main.c (struct cmdline_option): Ditto.
4989         (redirect_output_signal): Ditto.
4990
4991         * init.c (commands): Ditto.
4992
4993         * ftp-ls.c (ftp_index): Ditto.
4994
4995         * cookies.c (check_domain_match): Declare the pointer to a literal
4996         string as `const'.
4997
4998 2003-12-12  Hrvoje Niksic  <hniksic@xemacs.org>
4999
5000         * retr.c (fd_read_body): Pass total size to progress_create, not
5001         the remaining amount.
5002
5003 2003-12-12  Hrvoje Niksic  <hniksic@xemacs.org>
5004
5005         * retr.c (fd_read_body): Don't fiddle with "interactive timeout"
5006         if read timeout is unset.
5007
5008 2003-12-12  Hrvoje Niksic  <hniksic@xemacs.org>
5009
5010         * connect.c (bind_local): Don't set the IPV6_V6ONLY option on the
5011         socket.
5012
5013 2003-12-06  Hrvoje Niksic  <hniksic@xemacs.org>
5014
5015         * url.c (url_file_name): Respect the setting of
5016         opt.protocol_directories.
5017
5018         * main.c (main): Only check for ret=='?' when longindex is unset.
5019         (option_data): New option --protocol-directories.
5020
5021 2003-12-06  Hrvoje Niksic  <hniksic@xemacs.org>
5022
5023         * ftp.c (getftp): Ditto.
5024
5025         * http.c (gethttp): Correctly calculate bandwidth as total data
5026         read divided with download time.
5027
5028         * retr.c (fd_read_body): Separate the return values for data
5029         written and read.
5030
5031 2003-12-05  Hrvoje Niksic  <hniksic@xemacs.org>
5032
5033         * http.c (H_REDIRECTED): Respect the HTTP/1.1 "303 See Other"
5034         response code.
5035         Suggested by Dan Razzell.
5036
5037 2003-11-30  Hrvoje Niksic  <hniksic@xemacs.org>
5038
5039         * retr.c (fd_read_body): Report the amount of data *written* as
5040         amount_read.  This is not entirely logical, but that's what the
5041         callers expect, and it's not easy to change.
5042
5043         * ftp.c (ftp_loop_internal): Ditto.
5044
5045         * http.c (http_loop): Be smarter about assigning restval; if we're
5046         in the nth pass of a download, simply use the information we have
5047         about how much data has been retrieved as restval.
5048
5049         * ftp.c (getftp): Ditto for FTP "REST" command.
5050
5051         * http.c (gethttp): When the server doesn't respect range, skip
5052         the first RESTVAL bytes of the read body.  Never truncate the
5053         output file.
5054
5055         * retr.c (fd_read_body): Support skipping initial STARTPOS octets.
5056
5057 2003-11-30  Hrvoje Niksic  <hniksic@xemacs.org>
5058
5059         * http.c (skip_short_body): Renamed skip_body to skip_short_body;
5060         don't bother calling fd_read_body.
5061
5062 2003-11-30  Hrvoje Niksic  <hniksic@xemacs.org>
5063
5064         * retr.c (fd_read_body): Sanitize arguments and document them
5065         better.  Make sure the timer is created and updated only if
5066         necessary.  Updated callers.
5067
5068 2003-11-30  Hrvoje Niksic  <hniksic@xemacs.org>
5069
5070         * http.c (skip_body): New function.
5071         (gethttp): Use it to skip the body of the responses we don't care
5072         to download.  That allows us to reuse the connection.
5073         (gethttp): Trust that the HEAD requests will not generate body
5074         data.
5075
5076         * retr.c (fd_read_body): Don't write to OUT if it's NULL.
5077
5078 2003-11-29  Hrvoje Niksic  <hniksic@xemacs.org>
5079
5080         * http.c (gethttp): Initialize SSL only the first time when SSL
5081         URL is downloaded.
5082
5083 2003-11-29  Hrvoje Niksic  <hniksic@xemacs.org>
5084
5085         * cookies.c (cookie_header): Only generate the contents of the
5086         header, not the leading "Cookie: " or the trailing "\r\n".
5087
5088         * http.c (gethttp): When adding headers specified with `--header',
5089         allow them to override the headers generated by Wget.
5090
5091         * init.c (cmd_spec_header): Made opt.user_headers a vector.
5092
5093         * http.c (request_new): New function.  Returns a request structure
5094         which can be modified in various ways, most notably by adding HTTP
5095         headers to the request.
5096         (request_set_header): New function for adding the header to the
5097         request.  If the header is already available, it gets replaced.
5098         (request_send): Construct and send the request.
5099         (gethttp): Use the request_* functions to generate the request.
5100
5101 2003-11-28  Hrvoje Niksic  <hniksic@xemacs.org>
5102
5103         * http.c (gethttp): Don't include the Proxy-Authorization header
5104         in the request tunneled through proxy.
5105
5106 2003-11-28  Hrvoje Niksic  <hniksic@xemacs.org>
5107
5108         * http.c (gethttp): Use the CONNECT handle to establish SSL
5109         passthrough through non-SSL proxies.
5110
5111 2003-11-28  Hrvoje Niksic  <hniksic@xemacs.org>
5112
5113         * init.c: Don't #include netinet/Winsock stuff.
5114
5115 2003-11-28  Hrvoje Niksic  <hniksic@xemacs.org>
5116
5117         * http.c: Deleted the old functions header_process,
5118         header_extract_number, header_exists, header_strdup,
5119         http_process_range, http_process_none, http_process_type, and
5120         http_process_connection.
5121
5122         * http.c (response_new): New function.
5123         (response_header_bounds): Ditto.
5124         (response_header_copy): Ditto.
5125         (response_header_strdup): Ditto.
5126         (response_status): Ditto.
5127         (gethttp): Use the new response_* functions to parse the response.
5128         Support HTTP/0.9 responses.
5129
5130 2003-11-27  Hrvoje Niksic  <hniksic@xemacs.org>
5131
5132         * progress.c (create_image): Don't calculate ETA if nothing has
5133         been downloaded yet, because it causes division by zero.
5134
5135 2003-11-27  Hrvoje Niksic  <hniksic@xemacs.org>
5136
5137         * connect.c (bind_local): Rename sa_len to addrlen because IRIX
5138         headers define sa_len as a macro.
5139
5140 2003-11-26  Hrvoje Niksic  <hniksic@xemacs.org>
5141
5142         * html-parse.c (convert_and_copy): Remove embedded newlines when
5143         AP_TRIM_BLANKS is specified.
5144
5145 2003-11-26  Hrvoje Niksic  <hniksic@xemacs.org>
5146
5147         * ftp.c: Set con->csock to -1 where rbuf_uninitialize was
5148         previously used.
5149
5150 2003-11-26  Hrvoje Niksic  <hniksic@xemacs.org>
5151
5152         * Makefile.in (http$o): Added the trailing backslash that was
5153         missing.
5154
5155 2003-11-21  Hrvoje Niksic  <hniksic@xemacs.org>
5156
5157         * headers.c: Removed.  The file is no longer relevant, now that no
5158         special handling of headers is done by the rbuf code.  Moved
5159         portions to http.c.
5160
5161 2003-11-21  Hrvoje Niksic  <hniksic@xemacs.org>
5162
5163         * rbuf.c: Removed.
5164
5165         * ftp-basic.c (ftp_response): Use fd_read_line.  No longer use
5166         struct rbuf.  Updated all callers.
5167
5168         * http.c (gethttp): Use fd_read_head to read all the headers in
5169         one go.
5170         (next_header): New function.
5171
5172         * retr.c (fd_read_line): New function: reads a line from FD,
5173         leaving the rest of the data unread.
5174         (fd_read_head): New function.
5175
5176         * connect.c (fd_peek): New function, implements peeking.
5177         (poll_internal): New function.
5178         (fd_read): Use it.
5179         (fd_write): Ditto.
5180         (fd_peek): Ditto.
5181         (fd_register_transport): Allow registering a "peeker" callback.
5182
5183 2003-11-20  Hrvoje Niksic  <hniksic@xemacs.org>
5184
5185         * connect.c: Renamed xread/xwrite/xclose to
5186         fd_read/fd_write/fd_close.  The "x" prefix is not appropriate
5187         because the semantics have diverged from read/write/close too
5188         significantly.  Updated all callers.
5189
5190 2003-11-20  Hrvoje Niksic  <hniksic@xemacs.org>
5191
5192         * connect.c (sock_write): It's not necessary to initialize RES.
5193
5194 2003-11-19  Hrvoje Niksic  <hniksic@xemacs.org>
5195
5196         * main.c (main): Don't reference opt.ipv4_only and opt.ipv6_only
5197         if IPv6 is disabled.
5198
5199 2003-11-19  Hrvoje Niksic  <hniksic@xemacs.org>
5200
5201         * connect.c (socket_has_inet6): Only compile it if IPv6 is enabled
5202         and AI_ADDRCONFIG is missing.
5203
5204 2003-11-18  Hrvoje Niksic  <hniksic@xemacs.org>
5205
5206         * gen_sslfunc.c (ssl_init_prng): Warn the user when using a weak
5207         random seed.
5208
5209 2003-11-18  Hrvoje Niksic  <hniksic@xemacs.org>
5210
5211         * host.c (address_list_contains): Renamed address_list_find to
5212         address_list_contains because its result is boolean.
5213
5214 2003-11-18  Hrvoje Niksic  <hniksic@xemacs.org>
5215
5216         * connect.c (select_fd): Return 1 if select is not available.
5217
5218 2003-11-17  Hrvoje Niksic  <hniksic@xemacs.org>
5219
5220         * connect.c (connect_to_host): Don't reference address list after
5221         releasing it.
5222
5223 2003-11-17  Hrvoje Niksic  <hniksic@xemacs.org>
5224
5225         * main.c (print_help): Fix alignment of FTP options output.
5226
5227 2003-11-17  Hrvoje Niksic  <hniksic@xemacs.org>
5228
5229         * host.c (lookup_host): Check for the ability to create IPv6
5230         sockets here.
5231
5232         * init.c (defaults): Don't auto-set --inet4-only on IPv6-less
5233         systems.
5234
5235 2003-11-16  Hrvoje Niksic  <hniksic@xemacs.org>
5236
5237         * main.c (print_help): Fix typo in `-O' help message.  Fix docs of
5238         -Y/--proxy.  Fix docs of `--cookies' and `--glob'.  Improve docs
5239         of --convert-links.  Fix docs of SSL options.
5240
5241 2003-11-16  Hrvoje Niksic  <hniksic@xemacs.org>
5242
5243         * ftp-basic.c: Don't include <arpa/inet.h> and others because
5244         they're no longer needed.
5245
5246 2003-11-16  Hrvoje Niksic  <hniksic@xemacs.org>
5247
5248         * main.c (main): Don't allow setting of both opt.ipv4_only and
5249         opt.ipv6_only.
5250
5251         * init.c (defaults): Mark opt.ipv4_only specially when set
5252         automatically.
5253
5254 2003-11-15  Hrvoje Niksic  <hniksic@xemacs.org>
5255
5256         * host.c (lookup_host): Use AI_ADDRCONFIG only if the family is
5257         unspecified.  This ensures that specifying `--no-inet4' on systems
5258         where IPv6 resolves, but doesn't work behaves the same regardless
5259         of the availability of AI_ADDRCONFIG.
5260
5261 2003-11-15  Hrvoje Niksic  <hniksic@xemacs.org>
5262
5263         * host.c: Don't refer to the now-removed function
5264         forget_host_lookup in the documentation of lookup_host.
5265
5266 2003-11-15  Hrvoje Niksic  <hniksic@xemacs.org>
5267
5268         * http.c (persistent_available_p): Correctly specify the endpoint
5269         argument to socket_ip_address.
5270         (gethttp): When printing the "reusing connection to..." message,
5271         specify the host name of the reused connection, not the current
5272         host name.  That makes more sense because it provides a useful
5273         piece of information -- we know to which host we're supposed to
5274         connect anyway!
5275
5276 2003-11-15  Hrvoje Niksic  <hniksic@xemacs.org>
5277
5278         * init.c: Make sure the options are in alphabetic order!
5279
5280         * host.c (lookup_host): Merge lookup_host_passive and lookup_host
5281         after all -- having both would result in some code duplication.
5282         (lookup_host): Set hints.ai_family to AF_INET if ipv4_only is
5283         requested.  Likewise, set it to AF_INET6 for ipv6_only.  Specify
5284         AI_ADDRCONFIG where available.
5285         (lookup_host): New flag LH_REFRESH that specifies that a cached
5286         entry for HOST should be refreshed.
5287         (cache_query): New function.
5288         (cache_store): Ditto.
5289         (cache_remove): Ditto.
5290         (forget_host_lookup): No longer necessary, replaced with static
5291         function cache_remove.
5292
5293 2003-11-14  Hrvoje Niksic  <hniksic@xemacs.org>
5294
5295         * main.c: Enable -4 and -6 only if IPv6 is enabled.
5296
5297 2003-11-14  Hrvoje Niksic  <hniksic@xemacs.org>
5298
5299         * connect.c (register_transport): Renamed from register_extended.
5300         Explain the intended usage.
5301
5302 2003-11-14  Hrvoje Niksic  <hniksic@xemacs.org>
5303
5304         * url.c (uri_merge): Merging "foo" and "bar" should result in
5305         "bar", not in "foo/bar".
5306         (path_simplify): Don't remove empty path elements; don't
5307         special-case leading slash.
5308         (path_simplify): Don't swallow ".."'s at the beginning of string.
5309         E.g. simplify "foo/../../bar" as "../bar", not as "bar".
5310         (append_uri_pathel): Defang ".." path element upon encountering
5311         it.
5312
5313 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
5314
5315         * http.c (persistent_available_p): Don't attempt to talk to two
5316         different SSL sites over the same secure connection.
5317
5318 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
5319
5320         * http.c (gethttp): Ditto.
5321
5322         * ftp.c (getftp): Use retryable_socket_connect_error instead of
5323         CONNECT_ERROR.
5324
5325         * wget.h (CONNECT_ERROR): Removed.
5326
5327         * connect.c (retryable_socket_connect_error): New function instead
5328         of unsupported_socket_family_error.
5329
5330 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
5331
5332         * wget.h (CONNECT_ERROR): Use it.
5333
5334         * connect.c (unsupported_socket_family_error): New function.
5335
5336 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
5337
5338         * connect.c (bind_local): Renamed bindport to bind_local; return
5339         the socket directly.  Updated callers.
5340         (accept_connection): Renamed acceptport to accept_connection;
5341         return the created socket directly.  Updated callers.
5342
5343 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
5344
5345         * init.c (defaults): Turn on opt.ipv4_only if we're compiling with
5346         IPv6, and AI_ADDRINFO is not available, and AF_INET6 sockets can't
5347         be created.
5348
5349 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
5350
5351         * host.c (lookup_host): Document the fact that the addresses are
5352         returned in order.
5353
5354 2003-11-12  Hrvoje Niksic  <hniksic@xemacs.org>
5355
5356         * utils.c: Use limits.h only where available.
5357
5358         * hash.c: Use INVALID_PTR and INVALID_PTR_BYTE.  Include limits.h.
5359
5360 2003-11-11  Hrvoje Niksic  <hniksic@xemacs.org>
5361
5362         * main.c: Added options --inet4-only and --inet6-only.
5363
5364 2003-11-11  Hrvoje Niksic  <hniksic@xemacs.org>
5365
5366         * host.c (host_errstr): Use the more standard message "Unknown
5367         host".
5368
5369 2003-11-10  Hrvoje Niksic  <hniksic@xemacs.org>
5370
5371         * connect.c (connect_to_host): Use that flag to decide whether to
5372         re-resolve the host name.
5373
5374         * host.c (struct address_list): Added a flag that maintains
5375         whether the connection worked at some point.
5376
5377 2003-11-10  Hrvoje Niksic  <hniksic@xemacs.org>
5378
5379         * host.c (lookup_host): Special-case the numeric addresses only in
5380         the non-IPv6 case.
5381
5382 2003-11-10  Hrvoje Niksic  <hniksic@xemacs.org>
5383
5384         * connect.c (resolve_bind_address): Call lookup_host_passive.
5385         Make sure that opt.bind_address is resolved only once.
5386
5387         * host.c (lookup_host_passive): New function, handles "passive"
5388         lookups.
5389         (lookup_host): Remove the passive flags.  Remove the
5390         family-related flags -- use ip_default_family instead.
5391
5392 2003-11-09  Hrvoje Niksic  <hniksic@xemacs.org>
5393
5394         * html-url.c: Get URLs from <object data="...">.
5395
5396 2003-11-09  Hrvoje Niksic  <hniksic@xemacs.org>
5397
5398         * main.c (option_data): Specify the command to use for --mirror.
5399
5400 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
5401
5402         * cookies.c (cookie_handle_set_cookie): Specify exact match for
5403         unspecified domains.
5404
5405 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
5406
5407         * main.c (main): Removed one-letter options `-C', `-g', `-G', and
5408         `-s'.
5409
5410 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
5411
5412         * main.c (main): Add --dont-remove-listing for backward
5413         compatibility with previous versions.
5414         (print_help): Fix typo, spotted by Dennis Smit.
5415
5416 2003-11-08  Gisle Vanem  <giva@bgnett.no>
5417
5418         * ftp-basic.c: Support Windows-2000 ftp servers. Win-2000 *is*
5419         Win-NT 5.0 so calling it ST_WINNT is okay I guess.
5420
5421 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
5422
5423         * progress.c (update_speed_ring): Clear the speed ring when the
5424         download stalls.
5425
5426         * retr.c (get_contents): Specify 0.95s read timeout, so that the
5427         progress gauge can be updated even when data arrives very slowly
5428         or stalls.
5429
5430 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
5431
5432         * utils.c (wtimer_allocate): Bless the use of wtimer_read on a
5433         timer that has merely been allocated because get_contents() does
5434         that.
5435         (wtimer_update): Abort if the timer is not initialized.
5436
5437 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
5438
5439         * retr.c (get_contents): Pass the timer to limit_bandwidth().
5440
5441         * utils.c (wtimer_update): New function instead of wget_elapsed;
5442         just update the timer, but don't return anything.
5443         (wtimer_read): Read and return the last known value of the timer.
5444
5445 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
5446
5447         * http.c (persistent_available_p): Instead of matching all the
5448         addresses of HOST and last host, determine the peer's IP address
5449         with socket_ip_address and see if that address is one of those
5450         HOST resolves to.
5451
5452         * host.c (address_list_match_all): Removed.
5453         (address_list_find): New function, finds an IP address in the
5454         address list.
5455
5456         * ftp.c (ftp_do_pasv): Get the peer's address here, and pass it to
5457         ftp_epsv so it doesn't need to call getpeername.
5458
5459         * ftp-basic.c (ftp_port): Use socket_ip_address instead of
5460         getpeername.
5461         (ftp_lprt): Ditto.
5462
5463         * connect.c (socket_ip_address): Replaces conaddr, generalized to
5464         either get peer's or local address.
5465         (sockaddr_get_data): Made local to this file.
5466
5467 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
5468
5469         * hash.c (HASH_POSITION): Explicitly accept the hash function.
5470         (grow_hash_table): Extract ht->hash_function outside the loop.
5471         (hash_table_remove): Ditto.
5472         (hash_table_clear): Fill entries with 0xff to clear them.
5473         (hash_table_remove): Mark entries as deleted with the correct
5474         marker.
5475
5476 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
5477
5478         * http.c (persistent_available_p): No reason for the host lookup
5479         to be silent -- it's a lookup like any other.
5480
5481 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
5482
5483         * connect.c (register_extended): Check that fd >= 0.
5484
5485 2003-11-07  Hrvoje Niksic  <hniksic@xemacs.org>
5486
5487         * connect.c (LAZY_RETRIEVE_INFO): Set LAST_INFO.
5488
5489 2003-11-07  Hrvoje Niksic  <hniksic@xemacs.org>
5490
5491         * hash.c (NON_EMPTY): Use the all-bit-set value as the marker that
5492         the field is empty.  This allows NULL pointer and 0 value to be
5493         used as keys, which is necessary for the connect.c code to work
5494         when fd==0.
5495         (hash_table_new): Fill mappings with 0xff.
5496         (grow_hash_table): Ditto.
5497
5498 2003-11-07  Hrvoje Niksic  <hniksic@xemacs.org>
5499
5500         * url.c (url_parse): Allow empty ports.
5501
5502 2003-11-07  Hrvoje Niksic  <hniksic@xemacs.org>
5503
5504         * main.c (print_help): Break the help string into multiple chunks.
5505         (cmdline_option): New option handler OPT_FUNCALL.  Generalized
5506         HANDLE_CMD to generic DATA.
5507         (option_data): Use the new OPT_FUNCALL feature.
5508
5509 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
5510
5511         * log.h: Declare log_init, log_close, and
5512         log_request_redirect_output here.
5513
5514 2003-11-05  Dennis Smit  <ds@nerds-incorporated.org>
5515
5516         * main.c: (main): added --preserve-permissions option.
5517
5518         * ftp.c (ftp_retrieve_list): added support for
5519         --preserve-permissions option.
5520
5521         * init.c: added support for --preserve-permission option.
5522
5523         * option.h: added support for --preserve-permission option.
5524
5525 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
5526
5527         * main.c (init_switches): New function.  Convert option_data to
5528         long_options and short_options, which can be fed to getopt_long.
5529         (main): Execute command-line options by consulting option_data.
5530
5531 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
5532
5533         * gen_sslfunc.c (ssl_read): Implement a more correct check for
5534         EINTR.
5535         (ssl_write): Ditto.
5536         (init_ssl): Use a global SSL context.
5537
5538 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
5539
5540         * connect.c (xclose): Free INFO even if it doesn't provide a
5541         closer.
5542
5543 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
5544
5545         * connect.c: Updated all callers of
5546         iread/ssl_iread/iwrite/ssl_iwrite to use xread and xwrite instead.
5547
5548         * rbuf.h (struct rbuf): Removed the SSL member because SSL is
5549         handled automatically by xread.
5550
5551         * hash.c (ptrhash): Made private.
5552         (ptrcmp): Ditto.
5553         (inthash): Removed.
5554
5555         * connect.c (select_fd): Don't set errno, leave it to the caller.
5556
5557         * gen_sslfunc.c (connect_ssl): Use register_extended to register
5558         SSL callbacks for communication with SSL-enabled endpoints.
5559         (ssl_read): New function.
5560         (ssl_write): Ditto.
5561         (ssl_poll): Ditto.
5562         (ssl_close): Ditto.
5563
5564         * connect.c (register_extended): New function -- register
5565         callbacks for basic socket operations.
5566         (xread): Ditto.
5567         (xwrite): Ditto.
5568         (xclose): Ditto.
5569         (sock_read): New function, default implementation for reading.
5570         (sock_write): Ditto for writing.
5571         (sock_poll): Ditto for polling.
5572         (sock_close): Ditto for closing.
5573
5574 2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
5575
5576         * connect.c (bindport): Fix compilation under pre-C99 compilers.
5577
5578 2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
5579
5580         * connect.c (connect_to_ip): More compact error checking.
5581         (bindport): Don't treat failed setsockopt as a fatal error.
5582
5583 2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
5584
5585         * connect.c (resolve_bind_address): Use a more accurate error
5586         message -- we're not binding to ANY, we're disabling bind
5587         altogether.
5588
5589 2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
5590
5591         * cookies.c (save_cookies_mapper): Respect the setting of
5592         keep-session-cookies.
5593         (cookie_jar_load): Import session cookies.
5594         Based on code submitted by Nicolas Schodet.
5595
5596         * utils.c (datetime_str): Use information in TM when it's
5597         non-NULL.
5598
5599         * main.c (main): New option `--keep-session-cookies'.
5600
5601 2003-11-04  Hrvoje Niksic  <hniksic@xemacs.org>
5602
5603         * Makefile.in (realclean): Delete config.h.in.
5604
5605 2003-11-04  Hrvoje Niksic  <hniksic@xemacs.org>
5606
5607         * config-post.h: New file, included from now autogenerated
5608         config.h.in.
5609
5610 2003-11-04  Hrvoje Niksic  <hniksic@xemacs.org>
5611
5612         * progress.c (progress_handle_sigwinch): Don't call
5613         determine_screen_width() from the signal handler.  Instead, just
5614         set a volatile variable.
5615         (bar_create): Check whether SIGWINCH was received.
5616         (bar_update): Ditto.
5617
5618         * sysdep.h: Define SYSTEM_FNMATCH only if HAVE_FNMATCH_H is true.
5619
5620 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
5621
5622         * utils.c (xsleep): New function.  Uses nanosleep where available,
5623         resuming sleeps interrupted by signals.  Updated callers of sleep
5624         and usleep to use xsleep.
5625
5626 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
5627
5628         * ftp-basic.c (ftp_login): Remove shadowing (and bogus)
5629         declaration of SEED.
5630
5631 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
5632
5633         * log.c (logvprintf): Documented better.  Renamed to
5634         log_vprintf_internal to avoid confusion with the public API
5635         functions logprintf and logputs.
5636
5637 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
5638
5639         * wget.h (N_): Don't parenthesize argument.
5640
5641 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
5642
5643         * host.h (ADDRESS_IPV4_DATA): Don't take the address of in.s_addr
5644         because that doesn't work on machines that define it as bitfield.
5645
5646 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
5647
5648         * connect.c (select_fd): Generalize the third argument into WAIT,
5649         so that the caller can request waiting for both read and write.
5650         Updated callers.
5651
5652 2003-11-02  Hrvoje Niksic  <hniksic@xemacs.org>
5653
5654         * html-url.c (cleanup_html_url): Destroy the hash tables, don't
5655         just call free on them.
5656         (init_interesting): Use hash_table_put instead of string_set_add
5657         because we don't need the strdup that the latter function
5658         performs.
5659
5660         * init.c (cleanup): Don't pass NULL to cookie_jar_delete.
5661
5662         * xmalloc.c (xfree_real): Abort when passed a NULL pointer.
5663         (xfree_debug): Print at the file and line of the offending call to
5664         free.
5665
5666 2003-11-02  Hrvoje Niksic  <hniksic@xemacs.org>
5667
5668         * wget.h: Retired the `boolean' type.  Moved the DEFAULT_LOGFILE
5669         define to log.h.  Moved the INFINITE_RECURSION define to recur.h.
5670
5671         * xmalloc.h: Renamed FREE_MAYBE to xfree_null and moved the
5672         definition from wget.h to xmalloc.h.
5673
5674 2003-11-02  Hrvoje Niksic  <hniksic@xemacs.org>
5675
5676         * html-parse.c (decode_entity): New function; split the decoding
5677         of entities here.
5678         (convert_and_copy): Use it to decode entities.
5679         (decode_entity): Handle the &apos entity.
5680         (decode_entity): Don't decode Latin 1 numeric entities.  Don't
5681         decode &#0.
5682
5683 2003-11-01  Hrvoje Niksic  <hniksic@xemacs.org>
5684
5685         * ftp-opie.c (calculate_skey_response): Use uint32_t instead of
5686         `unsigned long' for the cheksum array.  Document the function.
5687
5688 2003-11-01  Hrvoje Niksic  <hniksic@xemacs.org>
5689
5690         * connect.c (acceptport): Don't call select_fd when timeout is not
5691         requested.
5692
5693 2003-11-01  Hrvoje Niksic  <hniksic@xemacs.org>
5694
5695         * host.c: Removed the ip_default_family global variable.
5696
5697         * host.c (lookup_host): Document the function.  Fixed declaration
5698         of VEC.
5699
5700 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
5701
5702         * various: Use new macros xnew, xnew0, xnew_array, and xnew0_array
5703         in various places.
5704
5705 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
5706
5707         * wget.h: Move declarations of malloc and logging code to
5708         xmalloc.h and log.h respectively to unclutter this file.
5709         (STRDUP_ALLOCA): Made it side-effect free.
5710
5711         * xmalloc.h: New files.  Define macros xnew, xnew0, xnew_array,
5712         and xnew0_array.
5713
5714         * xmalloc.c: New file.  Move the xmalloc routines here.
5715
5716 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
5717
5718         * connect.c (sockaddr_set_data): Remove the broken code that
5719         checked for NULL address.
5720
5721 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
5722
5723         * host.c (address_list_from_single): Removed.
5724         (address_list_from_ipv4_addresses): Renamed from
5725         address_list_from_vector.
5726
5727 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
5728
5729         * sysdep.h (CLOSE): Don't call close on file descriptors less than
5730         0, i.e. on uncreated sockets.
5731
5732         * connect.c (resolve_bind_address): Work on struct sockaddr
5733         directly.
5734         (connect_to_host): Replacement for connect_to_many.  Resolve HOST
5735         and connect to any of its addresses.  If we can't connect and the
5736         host name lookup was cached, try to resolve it again.  This should
5737         fix problems with hosts behind dynamic DNS.  Updated all callers.
5738         (connect_to_ip): Replacement for connect_to_one.  Removed SILENT;
5739         added the argument PRINT instead.  Updated all callers.
5740         (set_connection_host_name): Removed.
5741
5742         * host.c (address_list_address_at): New function instead of
5743         address_list_copy_one. It returns a pointer to ip_address *, so
5744         it's not necessary to copy the data.
5745         (address_list_cached_p): New function.
5746         (forget_host_lookup): Ditto.
5747
5748         * connect.c: Got rid of the MSOCK global variable.  Made bindport
5749         return the local socket it creates.  Added a new argument to
5750         acceptport, the socket to call accept on.  Updated callers.
5751         (closeport): Removed.
5752
5753         * connect.c: Moved the sockaddr code from host.c to this file,
5754         because most of that stuff is used for connecting, and has nothing
5755         to do with host names anyway.
5756         (sockaddr_set_data, sockaddr_get_data): New functions, replace the
5757         old sockaddr_set_address, sockaddr_set_port, sockaddr_get_address,
5758         and sockaddr_get_port.
5759
5760 2003-10-30  Hrvoje Niksic  <hniksic@xemacs.org>
5761
5762         * sysdep.h: Use `S >= 8' rather than `S == 8' when looking for
5763         large integers.
5764
5765 2003-10-30  Hrvoje Niksic  <hniksic@xemacs.org>
5766
5767         * url.c (append_uri_pathel): New argument ESCAPED_P that says
5768         whether [B, E) is to be treated as URL-escaped or not.  If
5769         ESCAPED_P is false, don't unescape the region.
5770         (url_file_name): u->file is not URL-escaped.
5771
5772 2003-10-30  Hrvoje Niksic  <hniksic@xemacs.org>
5773
5774         * retr.c (retrieve_from_file): Use retrieve_tree for
5775         page-requisites.
5776
5777         * main.c (main): Don't define opt.recursive when -p is used.
5778         Instead, make sure that recursion is used for HTTP in that case.
5779
5780 2003-10-29  Hrvoje Niksic  <hniksic@xemacs.org>
5781
5782         * host.h: Defined accessors for elements of ip_address.  Updated
5783         all callers.
5784         (address_list_match_all): Use memcmp in the non-IPv6 case.
5785
5786         * wget.h (CONNECT_ERROR): Don't retry connecting if connect()
5787         returned EAFNOSUPPORT.
5788
5789 2003-10-27  Mauro Tortonesi <mauro@deepspace6.net>
5790
5791         * connect.h: changed bindport prototype and added the related
5792         BIND_ON_IPV4_ONLY and BIND_ON_IPV6_ONLY flags.
5793
5794         * connect.c: changed bindport and resolve_bind_address to allow
5795         protocol-version specific DNS resolution. modified conaddr,
5796         acceptport and connect_to_one to make use of struct
5797         sockaddr_storage and of the new ip_address structure.
5798
5799         * ftp-basic.c: added LPRT/LPSV (RFC1639) support, refactored
5800         PORT/PASV (RFC959) and EPRT/EPSV (RFC2428) support code.
5801
5802         * ftp.c: added the ftp_do_port and ftp_do_pasv functions to
5803         handle FTP over IPv6.
5804
5805         * ftp.h: changed prototype of ftp_epsv and added prototypes for
5806         ftp_lpsv, ftp_lprt and ftp_eprt.
5807
5808         * host.c: renamed the
5809         wget_sockaddr_set_address and wget_sockaddr_get_addr, and
5810         wget_sockaddr_{s,g}et_port couples to sockaddr_{s,g}et_address and
5811         sockaddr_{g,s}et_port respectively.  changed
5812         address_list_match_all, address_list_from_addrinfo sockaddr_len,
5813         pretty_print_address, lookup_host, sockaddr_{s,g}et_address and
5814         sockaddr_{g,s}et_port to make use of struct sockaddr_storage and
5815         of the new ip_address structure.  removed map_ipv4_to_ip and
5816         map_ip_to_ipv4.
5817
5818         * host.h: redefined structure ip_address and removed structure
5819         wget_sockaddr.
5820
5821 2003-10-26  Hrvoje Niksic  <hniksic@xemacs.org>
5822
5823         * sysdep.h: Include inttypes.h where available.
5824
5825         * host.c: Switch from u_int32_t to uint32_t.
5826
5827 2003-10-26  Hrvoje Niksic  <hniksic@xemacs.org>
5828
5829         * netrc.c (parse_netrc): Reset the QUOTE flag after the closing
5830         quote.
5831
5832 2003-10-25  Hrvoje Niksic  <hniksic@xemacs.org>
5833
5834         * url.c (is_valid_ipv6_address): Reformat to GNU coding style.
5835         Use enums for NS_IN* constants.  Use ISXDIGIT.
5836
5837         * convert.c (construct_relative): Document better how the function
5838         works.
5839
5840 2003-10-23  Hrvoje Niksic  <hniksic@xemacs.org>
5841
5842         * config.h.in: Deploy preprocessor magic to avoid Ultrix's
5843         <netdb.h> include <bitypes.h> which defines its own u_int32_t.
5844         Reported by Bernhard Simon.
5845
5846 2003-10-23  Hrvoje Niksic  <hniksic@xemacs.org>
5847
5848         * version.c: Bump version.
5849
5850 2003-10-23  Hrvoje Niksic  <hniksic@xemacs.org>
5851
5852         * url.c: Ditto.
5853
5854         * html-parse.c (advance_declaration): Don't use trailing comma in
5855         enum because older compilers don't support it.
5856
5857         * utils.c: Don't redefine HAVE_SIGSETJMP.
5858
5859 2003-10-16  Hrvoje Niksic  <hniksic@xemacs.org>
5860
5861         * convert.c (construct_relative): Don't handle absolute files
5862         specially -- for example, -P/tmp/foo shouldn't imply that
5863         converted files must refer to "/tmp/foo/..."!
5864
5865 2003-10-15  Hrvoje Niksic  <hniksic@xemacs.org>
5866
5867         * http.c: Consider status 307 a valid redirect.
5868
5869 2003-10-15  Philip Stadermann  <philip.stadermann@credativ.de>
5870
5871         * ftp.c (ftp_retrieve_glob): Correctly loop through the list whose
5872         elements might have been deleted.
5873
5874 2003-10-13  Hrvoje Niksic  <hniksic@xemacs.org>
5875
5876         * html-url.c (tag_handle_meta): Set the Refresh link to expect
5877         HTML.
5878         (append_one_url): Renamed to append_url.
5879
5880 2003-10-13  Hrvoje Niksic  <hniksic@xemacs.org>
5881
5882         * sysdep.h: Only define u_int32_t.
5883
5884 2003-10-11  Hrvoje Niksic  <hniksic@xemacs.org>
5885
5886         * utils.c (large_int_to_string): Use snprintf() to print the
5887         number.  This will work even on systems where libc doesn't
5888         understand %lld, but the compiler does, because it will use our
5889         snprintf replacement.
5890
5891         * init.c (parse_bytes_helper): New function.
5892         (cmd_bytes): Use it to parse bytes, but cast the result to long.
5893         (cmd_bytes_large): Ditto, but store the result to LARGE_INT.  Used
5894         for --quota so that --quota=10G works even on machines without
5895         long long.
5896
5897         * options.h (struct options): Declare quota as LARGE_INT.
5898
5899         * retr.c (downloaded_exceeds_quota): Removed.
5900         (downloaded_increase): Ditto.
5901         (total_downloaded_bytes): New variable, replaces opt.downloaded,
5902         which was the wrong place for it anyway.  Updated callers of
5903         downloaded_exceeds_quota and downloaded_increase to check this
5904         variable directly.
5905
5906         * sysdep.h: Get rid of VERY_LONG_TYPE.  Use LARGE_INT for the same
5907         purpose, defined as `long', `long long' or `double', depending on
5908         size of long and whether long long is available.
5909
5910 2003-10-11  Hrvoje Niksic  <hniksic@xemacs.org>
5911
5912         * sysdep.h: Also check size of short for int32_t.
5913
5914 2003-10-11  Hrvoje Niksic  <hniksic@xemacs.org>
5915
5916         * host.c (lookup_host): Use u_int32_t to store the result of
5917         inet_addr().  That removes the need for offset fiddling, caring
5918         about endian-ness, etc.
5919
5920         * sysdep.h: Define int32_t and u_int32_t if not available.
5921
5922 2003-10-11  Hrvoje Niksic  <hniksic@xemacs.org>
5923
5924         * ftp-basic.c (ftp_epsv): Use socklen_t * as the third argument to
5925         getpeername.
5926
5927         * config.h.in: Define socklen_t stub.
5928
5929         * host.c (sockaddr_len): Return socklen_t.
5930
5931         * connect.c (conaddr): Use socklen_t as the third argument to
5932         accept, getsockname, and connect.
5933
5934 2003-10-10  Hrvoje Niksic  <hniksic@xemacs.org>
5935
5936         * recur.c (retrieve_tree): Don't descend into documents that are
5937         not expected to contain HTML, regardless of their content-type.
5938
5939         * html-url.c (tag_url_attributes): Record which attributes are
5940         supposed to yield HTML links that can be followed.
5941         (tag_find_urls): Propagate that information to the caller through
5942         struct urlpos.
5943
5944 2003-10-10  Hrvoje Niksic  <hniksic@xemacs.org>
5945
5946         * hash.c (find_mapping): Return the next available mapping when
5947         the key is not found, not NULL.
5948         (hash_table_put): Use find_mapping to find the storage for the new
5949         data.
5950         (hash_table_put): Grow the table before exceeding maximum
5951         fullness, not afterwards.
5952
5953 2003-10-10  Hrvoje Niksic  <hniksic@xemacs.org>
5954
5955         * hash.c (hash_table_new): Slightly change the meaning of the
5956         first parameter.  Instead of being the minimum initial size, it is
5957         now the minimum number of items that the hash table can take
5958         without needing to resize.
5959
5960 2003-10-09  Hrvoje Niksic  <hniksic@xemacs.org>
5961
5962         * html-url.c (init_interesting): Initialize interesting_tags and
5963         interesting_attributes as hash tables.  This simplifies the code
5964         immensely because hash tables handle allocation and remove
5965         duplicates automatically.
5966         (find_tag): Removed.
5967         (collect_tags_mapper): Instead of calling find_tag, simply get the
5968         entry from interesting_tags hash table, which is both simpler and
5969         faster.
5970
5971 2003-10-09  Hrvoje Niksic  <hniksic@xemacs.org>
5972
5973         * hash.c (hash_table_get): Declare hash-table argument as const.
5974         (find_mapping): Ditto.
5975         (hash_table_get_pair): Ditto.
5976         (hash_table_contains): Ditto.
5977         (hash_table_count): Ditto.
5978
5979 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
5980
5981         * html-url.c (get_urls_html): Parse the appropriate flags to
5982         html-parse.c.
5983
5984         * html-parse.c (map_html_tags): Accept FLAGS from the caller
5985         instead of examining OPT.
5986
5987 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
5988
5989         * html-url.c (find_tag): Switch to binary search.
5990
5991 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
5992
5993         * main.c (print_help): Fix typo; stured -> stored.
5994
5995 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
5996
5997         * getopt.c: Add definitions of getopt_long and getopt_long_only.
5998
5999 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
6000
6001         * config.h.in: Renamed DEBUG to ENABLE_DEBUG.  ENABLE_DEBUG is, I
6002         think, a better name, because it implies that debugging output is
6003         merely possible, not "on by default", as might be construed from
6004         just DEBUG.
6005
6006 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
6007
6008         * ftp.c (has_insecure_name_p): Define it here.
6009
6010         * utils.c (has_wildcards_p): Define it here.
6011
6012         * sysdep.h: Declare fnmatch-related macros here, if not using
6013         system fnmatch().  Update .c files to not declare fnmatch.h
6014         directly.
6015
6016         * cmpt.c (fnmatch): Moved here.  Use it only under non-GNU libc.
6017
6018 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
6019
6020         * getopt.c: Newer version, imported from Free libit.
6021
6022 2003-10-07  Hrvoje Niksic  <hniksic@xemacs.org>
6023
6024         * cookies.c (struct cookie): Remove unused backpointer to cookie
6025         jar.
6026
6027 2003-10-07  Hrvoje Niksic  <hniksic@xemacs.org>
6028
6029         * cmpt.c (memmove): Comment out, since it's no longer used.
6030
6031         * cookies.c (cookie_jar_generate_cookie_header): Allocate room for
6032         chains in one pass.
6033         (find_chains_of_host): Assume that the caller has allocated DEST
6034         to be sufficiently large to take all the data.
6035         (eliminate_dups): Run through the array and eliminate dups on the
6036         fly instead of using memmove.
6037         (cookie_jar_process_set_cookie): Free cookie->domain before
6038         re-setting it.
6039
6040 2003-10-05  Gisle Vanem  <giva@bgnett.no>
6041
6042         * mswindows.c (set_sleep_mode): Fix type of
6043         _SetThreadExecutionState.
6044
6045 2003-10-05  Hrvoje Niksic  <hniksic@xemacs.org>
6046
6047         * utils.c (file_size): Return -1 if fopen() returns NULL.  Prior
6048         to this patch, wget --post-file=nosuchfile dumped core.
6049
6050 2003-10-04  Gisle Vanem  <giva@bgnett.no>
6051
6052         * mswindows.c (run_with_timeout): Use WaitForSingleObject to wait
6053         for thread termination.
6054
6055 2003-10-04  Hrvoje Niksic  <hniksic@xemacs.org>
6056
6057         * log.c: Use `...' in function definitions; ansi2knr will convert
6058         them to va_dcl.  This allowed removal of the ugly VA_START_1 and
6059         VA_START_2 macros.
6060
6061 2003-10-03  Gisle Vanem  <giva@bgnett.no>
6062
6063         * connect.c: And don't include them here.
6064
6065         * mswindows.h: Include winsock headers here.
6066
6067 2003-10-03  Hrvoje Niksic  <hniksic@xemacs.org>
6068
6069         * html-parse.c (convert_and_copy): Move variable declarations
6070         before statements.
6071
6072 2003-10-02  Gisle Vanem  <giva@bgnett.no>
6073
6074         * mswindows.c (run_with_timeout): For Windows: Run the 'fun' in a
6075         thread via a helper function. Continually query the thread's
6076         exit-code until finished or timed out.
6077
6078 2003-10-02  Hrvoje Niksic  <hniksic@xemacs.org>
6079
6080         * wget.h (XMALLOC_ARRAY): Removed.
6081         (ALLOCA_ARRAY): Ditto.
6082
6083         * html-parse.c: Renamed alloca_p to resized.
6084         (GROW_ARRAY): Renamed DO_REALLOC_FROM_ALLOCA to GROW_ARRAY and
6085         returned it to html-parse.c, since nothing else was using it.
6086
6087 2003-10-02  Hrvoje Niksic  <hniksic@xemacs.org>
6088
6089         * retr.c (retrieve_url): Initialize DUMMY storage for DT.  Caught
6090         by valgrind.
6091
6092 2003-10-02  Hrvoje Niksic  <hniksic@xemacs.org>
6093
6094         * html-parse.c (convert_and_copy): Handle numeric entities in
6095         hexadecimal, &#xHH.
6096         (convert_and_copy): Copy the contents directly to the pool without
6097         a stack-allocated intermediary.
6098
6099 2003-10-02  Hrvoje Niksic  <hniksic@xemacs.org>
6100
6101         * utils.c (alarm_set): New function; use either setitimer or alarm
6102         to set up the alarm.
6103         (alarm_cancel): New function; cancel the alarm set up by
6104         alarm_set.
6105         (run_with_timeout): Use them.
6106
6107 2003-10-01  Hrvoje Niksic  <hniksic@xemacs.org>
6108
6109         * url.c (url_parse): Don't leak memory when a reencoded URL turns
6110         out to be invalid.
6111
6112         * url.c (parse_errors): Mark error messages for translation.
6113         (url_error): Translate error messages returned to the caller.
6114
6115 2003-10-01  Hrvoje Niksic  <hniksic@xemacs.org>
6116
6117         * ftp.c (ftp_loop_internal): Initialize TMRATE to NULL to shut up
6118         the compiler.
6119
6120 2003-09-26  Gisle Vanem  <giva@bgnett.no>
6121
6122         * src/mswindows.c: Added ws_percenttitle() showing progress in the
6123         window titlebar. Called from retr.c. Secured ws_mypath().
6124
6125         * windows/config.h.ms: alloca() prototype not needed.  Removed
6126         "#undef ENABLE_NLS"; should be in Makefile IMHO. Moved
6127         WGET_USE_STDARG from mswindows.h to config.ms.h because of #ifdef
6128         in log.c. (MSVC's vararg.h and stdarg.h are incompatible).
6129
6130 2003-09-29  Aaron Hawley <Aaron.Hawley@uvm.edu>
6131
6132         * ftp.c (getftp): --spider option should now work with FTP
6133         downloads.
6134         (ftp_loop_internal): quiet reports and calculations of downloads
6135         when --spider option set, nor try deleting when --delete-after
6136         also set.
6137         (ftp_loop): --spider will skip HTML-ification of .listing file.
6138
6139 2003-09-26  Gisle Vanem  <giva@bgnett.no>
6140
6141         * mswindows.c (read_registry): Removed.
6142         (set_sleep_mode): New function.
6143         (windows_main_junk): Call it.
6144
6145 2003-09-26  Gisle Vanem  <giva@bgnett.no>
6146
6147         * mswindows.c (read_registry): Fix invocation of registry
6148         functions.
6149
6150         * mswindows.c (read_registry): Condition definitions of sleep and
6151         usleep with not HAVE_SLEEP and HAVE_USLEEP respectively.  Define
6152         HAVE_SLEEP and HAVE_USLEEP under __DMC__.
6153
6154 2003-09-24  Hrvoje Niksic  <hniksic@xemacs.org>
6155
6156         * url.c (url_escape_1): Revert unintentional change to lowercase
6157         xdigit escapes.
6158         (url_escape_dir): Document that this function depends on the
6159         output of url_escape_1.
6160
6161 2003-09-23  Hrvoje Niksic  <hniksic@xemacs.org>
6162
6163         * progress.c (create_image): Print the current ETA if we're done
6164         with the download.
6165         (create_image): Change '-' display char to '+' in the progress bar.
6166
6167         * Makefile.in (clean): Remove .libs.
6168
6169 2003-09-23  Hrvoje Niksic  <hniksic@xemacs.org>
6170
6171         * cookies.c (struct cookie): New flag domain_exact.
6172         (update_cookie_field): Skip leading dot in domain.
6173         (find_matching_chains): Match numeric addresses exactly; don't
6174         needlessly copy HOST to the stack.
6175         (matching_cookie): Added argument HOST.  If cookie->domain_exact
6176         is set, check that HOST is equal to cookie->domain.
6177         (cookie_jar_load): Only use TAB as delimiter.  Document the
6178         meaning of DOMAIN-FLAG.  Skip leading dot in domain.
6179         (cookie_jar_load): Don't ignore DOMAIN-FLAG -- instead, set
6180         domain_exact to true if DOMAIN-FLAG is false.
6181         (save_cookies_mapper): If domain_exact is false, prepend the
6182         domain with dot, like Mozilla does.
6183
6184 2003-09-22  Hrvoje Niksic  <hniksic@xemacs.org>
6185
6186         * progress.c (create_image): Print the initial part of the
6187         download with '-' characters, analogous to how dot progress prints
6188         the initial part with ','.
6189
6190         * hash.c (ptrhash): New function.
6191         (ptrcmp): Ditto.
6192         (hash_table_new): Default to identity hash table.
6193
6194 2003-09-22  Hrvoje Niksic  <hniksic@xemacs.org>
6195
6196         * safe-ctype.h (_sch_test): The cast of BIT to unsigned char was
6197         broken -- _sch_istable bitmasks are 16-bit, not 8-bit!  Cast BIT
6198         to unsigned short instead.
6199
6200 2003-09-22  Hrvoje Niksic  <hniksic@xemacs.org>
6201
6202         * url.c (path_simplify): Instead of calls to memmove, handle "./"
6203         and "../" by advancing pointers.
6204
6205 2003-09-22  Hrvoje Niksic  <hniksic@xemacs.org>
6206
6207         * retr.c (getproxy): Moved from url.c.
6208
6209         * convert.c: Split off link conversion from url.c into separate
6210         file.  Also included the book-keeping stuff from recur.c.
6211
6212 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
6213
6214         * init.c: Improved documentation of functions.
6215         (cmd_boolean): Attempt to make code that tries to avoid calling
6216         strcmp for "speed" a bit more readable.
6217
6218         * init.c (simple_atof): Report error on encountering non-digit,
6219         non-"." character.
6220         (simple_atoi): Replacement for myatoi(), calling interface
6221         compatible with simple_atof.  Updated myatoi's callers.
6222
6223 2003-09-21  Bertrand Demiddelaer  <bert@b3rt.org>
6224
6225         * url.c (path_simplify): Would read two bytes past the end of the
6226         string in the "./" case.
6227
6228 2003-09-21  Matthew J. Mellon  <mellon@tymenet.com>
6229
6230         * http.c (gethttp): Recognize content-type "application/xhtml+xml"
6231         as what Wget considers "text/html".
6232
6233 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
6234
6235         * connect.c (connect_with_timeout): Made timeout type double.
6236
6237         * options.h (struct options): New members read_timeout,
6238         dns_timeout, and connect_timeout.
6239         Use them.
6240
6241 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
6242
6243         * init.c (simple_atof): New function.
6244         (cmd_time): Use it.
6245         (cmd_bytes): Accept things like "1.5k" and such.  Use simple_atof
6246         to parse decimals.
6247
6248         * retr.c (limit_bandwidth): Adjust each sleep by the error of the
6249         previous one.
6250
6251 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
6252
6253         * main.c (main): Use setoptval() for setting the options.  Use
6254         run_command for `-e'.
6255
6256         * init.c (parse_line): Rewritten to return COMIND right away.
6257         Changed linkage to static.
6258         (run_wgetrc): Use the available comind when calling setval, so it
6259         doesn't have to be computed twice.
6260         (setval_internal): New function, runs the command's action without
6261         any error checking.
6262         (setoptval): New function, does what setval used to do, but exits
6263         in case of error.
6264         (run_command): New function.
6265
6266 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
6267
6268         * connect.c (select_fd): Change MAXTIME's type to double.  Handle
6269         its decimal part.
6270
6271         * retr.c (sleep_between_retrievals): In the random-wait case, use
6272         random_float() to wait between 0 and 2*opt.wait seconds.
6273
6274         * utils.c (run_with_timeout): Accept `double' timeouts.  Correctly
6275         handle timeout values in (0, 1) range.
6276         (random_float): New function.
6277
6278         * options.h (struct options): Change the types of wait, waitretry,
6279         and timeout to double.
6280
6281         * init.c (cmd_time): Accept floating point time.
6282
6283 2003-09-20  Hrvoje Niksic  <hniksic@xemacs.org>
6284
6285         * retr.c (get_contents): Cosmetic fixes.
6286
6287 2003-09-20  Hrvoje Niksic  <hniksic@xemacs.org>
6288
6289         * url.c (uri_merge): Get rid of uri_merge_1.
6290         (uri_merge): Merge "foo//", "bar" as "foo//bar", not "foo///bar",
6291         i.e. don't add an extra slash merely because BASE ends with two
6292         slashes.
6293         (parse_credentials): Renamed from parse_uname.  Rewrittern in
6294         standard [beg, end) calling style.
6295         (url_skip_credentials): Renamed from url_skip_uname.  Made static.
6296         (url_skip_credentials): Include # and ; as terminators.  Old code
6297         would mistakenly consider "http://foo.com#hniksic@iskon.hr" to
6298         contain a username.
6299         (url_skip_scheme): Removed because it was unused.
6300         (url_has_scheme): Require "scheme" to be at least one char long.
6301
6302 2003-09-19  Hrvoje Niksic  <hniksic@xemacs.org>
6303
6304         * url.c (url_file_name): Expect NULL dir_prefix.
6305
6306         * init.c (cmd_file): Use a macro to prevent multiple #ifdef
6307         WINDOWS.
6308         (defaults): Set dir_prefix to NULL by default.
6309
6310 2003-09-19  Hrvoje Niksic  <hniksic@xemacs.org>
6311
6312         * safe-ctype.h (_sch_test): Cast BIT to unsigned char, like latest
6313         gcc does.
6314
6315 2003-09-19  Hrvoje Niksic  <hniksic@xemacs.org>
6316
6317         * wget.h (BOUNDED_TO_ALLOCA): Evaluate PLACE only once.
6318         (ARRAY_SIZE): Renamed to countof.  All callers updated.
6319
6320 2003-09-19  Hrvoje Niksic  <hniksic@xemacs.org>
6321
6322         * main.c (main): New option --strict-comments.
6323
6324         * html-parse.c (find_comment_end): New function: simple BM search
6325         for "-->".
6326         (map_html_tags): Use it if looking at a comment and not in strict
6327         comments mode.
6328
6329 2003-09-17  Aurelien Marchand  <artaxerxes@users.sf.net>
6330
6331         * ftp.h: Added OS400 system in enum
6332         * ftp-basic.c: recognize OS400 systems
6333         * ftp.c: don't prepend the CWD if talking to OS400, since it
6334         breaks the change in library
6335
6336 2003-09-18  Hrvoje Niksic  <hniksic@xemacs.org>
6337
6338         * retr.c (get_contents): Pass the correct argument to ssl_iread.
6339
6340 2003-09-18  Hrvoje Niksic  <hniksic@xemacs.org>
6341
6342         * safe-ctype.h: Don't #define ctype.h macros to errors because
6343         that loses when someone #include's ctype.h after safe-ctype.h.
6344
6345 2003-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
6346
6347         * url.c: Undef U, W, C after use.
6348
6349 2003-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
6350
6351         * init.c (cmd_spec_restrict_file_names): Allow the OS setting to
6352         be augmented by ",nocontrol" which means don't escape the control
6353         characters, but otherwise keep OS settings.
6354
6355         * url.c (file_unsafe_char): Deleted.
6356         (append_uri_pathel): Query filechr_table directly.
6357         (filechr_table): Separated Unix, Windows, and control-unsafe
6358         characters.
6359
6360 2003-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
6361
6362         * url.c (url_escape_1): New function.
6363         (url_escape): Use it.
6364         (sync_path): Handle pathological cases where u->file and u->dir
6365         contain really strange characters.
6366         (ENCODE): Deleted.
6367         (REENCODE): Deleted.
6368
6369 2003-09-16  Hrvoje Niksic  <hniksic@xemacs.org>
6370
6371         * url.c (url_file_name): Don't reallocate FNAME if the file
6372         doesn't exist, as is usually the case.
6373
6374         * utils.c (unique_name): New flag allow_passthrough.
6375
6376 2003-09-16  Hrvoje Niksic  <hniksic@xemacs.org>
6377
6378         * utils.c (wtimer_sys_diff): Convert the time difference to signed
6379         __int64, then to double.  This works around MS VC++ 6 which can't
6380         convert unsigned __int64 to double directly.
6381
6382 2003-09-16  Hrvoje Niksic  <hniksic@xemacs.org>
6383
6384         * Makefile.in (clean): Also remove the core.<number> files
6385         produced by recent Linux systems.
6386
6387 2003-09-16  Hrvoje Niksic  <hniksic@xemacs.org>
6388
6389         * http.c (post_file): Don't pad the file if it's not large
6390         enough.  Bail out instead.
6391
6392 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
6393
6394         * retr.c (get_contents): Reduce the buffer size to the amount of
6395         data that may pass through for one second.  This prevents long
6396         sleeps when limiting bandwidth.
6397
6398         * connect.c (connect_to_one): Reduce the socket's RCVBUF when
6399         bandwidth limitation to small values is requested.
6400
6401 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
6402
6403         * progress.c (update_speed_ring): Moved the speed ring update to a
6404         separate function and documented it better.
6405
6406         * progress.c: Use `double' for most timers to support granularity
6407         smaller than 1ms.
6408
6409 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
6410
6411         * wget.h (XDIGIT_TO_XCHAR): Implement as index into a literal
6412         string.
6413         (XDIGIT_TO_xchar): Ditto.
6414
6415 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
6416
6417         * utils.c: Change the type of timer-related functions from long to
6418         double, for better precision.  On machines supporting gettimeofday
6419         the timers now work with granularity of less than one millisecond.
6420
6421 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
6422
6423         * cookies.c (parse_set_cookies): Fixed the parser to handle more
6424         edge conditions.
6425         (test_cookies): New function, contains a test suite for
6426         parse_set_cookies.
6427
6428 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
6429
6430         * url.c (strpbrk_or_eos): Implement as a macro under Gcc.
6431
6432 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
6433
6434         * cookies.c (parse_set_cookies): Allow trailing space in
6435         set-cookies header.  Also, allow any amount of whitespace, not
6436         only one character.  Allow empty set-cookies header without
6437         spewing an error.
6438
6439 2003-09-14  Hrvoje Niksic  <hniksic@xemacs.org>
6440
6441         * url.c (append_uri_pathel): Use opt.restrict_file_names when
6442         calling file_unsafe_char.
6443
6444         * init.c: New command restrict_file_names.
6445
6446         * main.c (main): New option --restrict-file-names[=windows,unix].
6447
6448         * url.c (url_file_name): Renamed from url_filename.
6449         (url_file_name): Add directory and hostdir prefix here, not in
6450         mkstruct.
6451         (append_dir_structure): New function, does part of the work that
6452         used to be in mkstruct.  Iterates over path elements in u->path,
6453         calling append_uri_pathel on each one to append it to the file
6454         name.
6455         (append_uri_pathel): URL-unescape a path element and reencode it
6456         with a different set of rules, more appropriate for handling of
6457         files.
6458         (file_unsafe_char): New function, uses a lookup table to decide
6459         whether a character should be escaped for use in file name.
6460         (append_string): New utility function.
6461         (append_char): Ditto.
6462         (file_unsafe_char): New argument restrict_for_windows, decide
6463         whether Windows file names should be escaped in run-time.
6464
6465         * connect.c: Include <stdlib.h> to get prototype for abort().
6466
6467 2003-09-14  Hrvoje Niksic  <hniksic@xemacs.org>
6468
6469         * utils.c (wtimer_sys_set): Extracted the code that sets the
6470         current time here.
6471         (wtimer_reset): Call it.
6472         (wtimer_sys_diff): Extracted the code that calculates the
6473         difference between two system times here.
6474         (wtimer_elapsed): Call it.
6475         (wtimer_elapsed): Don't return a value smaller than the previous
6476         one, which could previously happen when system time is set back.
6477         Instead, reset start time to current time and note the elapsed
6478         offset for future calculations.  The returned times are now
6479         guaranteed to be monotonically nondecreasing.
6480
6481 2003-09-10  Hrvoje Niksic  <hniksic@xemacs.org>
6482
6483         * host.c (lookup_host): Print the result of the DNS lookup.
6484
6485 2003-09-10  Hrvoje Niksic  <hniksic@xemacs.org>
6486
6487         * init.c (cmd_boolean): Accept yes/no along with on/off.
6488         (cmd_lockable_boolean): Ditto.
6489
6490 2003-09-10  Hrvoje Niksic  <hniksic@xemacs.org>
6491
6492         * init.c: New command dns_cache.
6493
6494         * main.c (main): New option --dns-cache[=off].
6495
6496 2003-09-09  Hrvoje Niksic  <hniksic@xemacs.org>
6497
6498         * config.h.in: Initialize HAVE_GETADDRINFO and ENABLE_IPV6.
6499
6500         * all: Use #ifdef ENABLE_IPV6 instead of the older INET6.  Use
6501         HAVE_GETADDRINFO for getaddrinfo-related stuff.
6502
6503 2003-09-09  Hrvoje Niksic  <hniksic@xemacs.org>
6504
6505         * url.c (url_parse): Return an error if the URL contains a [...]
6506         IPv6 numeric address and we don't support IPv6.
6507
6508 2003-09-05  Hrvoje Niksic  <hniksic@xemacs.org>
6509
6510         * url.c (is_valid_ipv6_address): Modified to not require
6511         zero-terminated strings.
6512         (is_valid_ipv4_address): Ditto.
6513
6514 2003-09-05  Mauro Tortonesi <mauro@deepspace6.net>
6515
6516         src/url.c: added RFC 2732 compliance for URL parsing. The
6517         functions is_*_address valid are a modified version of
6518         glibc 2.3.2 inet_pton's code.
6519
6520 2003-09-03  Ahmon Dancy  <dancy@dancysoft.com>
6521
6522         * main.c init.c options.h: Added --retry-connrefused option so
6523         that Connection Refused failures are treated as non-fatal (when
6524         trying to retrieve from busy servers).
6525
6526         * wget.h: New CONNECT_ERROR macro for encapsulating this
6527         modification.
6528
6529         * ftp.c http.c : Use CONNECT_ERROR macro in places where
6530         ECONNREFUSED was checked.
6531
6532 2003-01-11  Ian Abbott  <abbotti@mev.co.uk>
6533
6534         * ftp.c (ftp_retrieve_glob): Reject insecure filenames as determined
6535         by calling new function has_insecure_name_p.  This is based on a
6536         patch by Red Hat.
6537
6538         * fnmatch.c (has_insecure_name_p): New function: returns non-zero
6539         if filename starts with `/' or contains `../' and is therefore
6540         considered insecure.
6541
6542         * fnmatch.h: Declare has_insecure_name_p().
6543
6544 2002-08-03  Hrvoje Niksic  <hniksic@xemacs.org>
6545
6546         * init.c (cmd_file): Allocate RESULT correctly.
6547
6548 2002-07-24  Hrvoje Niksic  <hniksic@xemacs.org>
6549
6550         * recur.c (retrieve_tree): Check whether downloaded_html_set is
6551         non-NULL before using it.
6552
6553 2002-05-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6554
6555         * html-parse.c (NAME_CHAR_P): Allow almost any character here.
6556
6557 2002-05-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6558
6559         * progress.c (bar_set_params): Fall back to dot progress if the
6560         terminal type is "emacs".
6561
6562 2002-05-20  Hrvoje Niksic  <hniksic@arsdigita.com>
6563
6564         * log.c: Don't #undef WGET_USE_STDARG.
6565
6566 2002-05-16  Hrvoje Niksic  <hniksic@arsdigita.com>
6567
6568         * hash.c (prime_size): Store the offset of the prime number in the
6569         prime table.  When searching, start with the given offset.
6570         (hash_table_new): Pass the pointer to ht->prime_offset to
6571         prime_size.
6572         (grow_hash_table): Ditto.
6573         (prime_size): Make 13 the first prime to make empty hash tables
6574         slightly smaller.
6575
6576 2002-05-16  Ian Abbott  <abbotti@mev.co.uk>
6577
6578         * recur.c (download_child_p): Minor optimization to avoid an
6579         unnecessary additional call to schemes_are_similar_p function.
6580
6581 2002-05-16  Ian Abbott  <abbotti@mev.co.uk>
6582
6583         * url.c (schemes_are_similar_p): New function to test enumerated
6584         scheme codes for similarity.
6585
6586         * url.h: Declare it.
6587
6588         * recur.c (download_child_p): Use it to compare schemes.  This
6589         also fixes a bug that allows hosts to be spanned (without the
6590         -H option) when the parent scheme is https and the child's is
6591         http or vice versa.
6592
6593 2002-05-14  Bill Richardson  <bill@riverstonenet.com>
6594
6595         * ftp.c (getftp): Don't ftruncate stdout.
6596
6597         * http.c (gethttp): Don't ftruncate stdout.
6598
6599 2002-05-09  Ian Abbott  <abbotti@mev.co.uk>
6600
6601         * cmpt.c (strptime_internal): Synched with glibc-2.1.3.
6602         (get_number): Ditto.
6603         (get_alt_number): Ditto.
6604         (__isleap): New function-like macro used by strptime.
6605         (day_of_the_week): New function used by strptime.
6606         (day_of_the_year): Ditto.
6607         (__mon_yday): Now shared by mktime and strptime implementations.
6608
6609 2002-05-08  Hrvoje Niksic  <hniksic@arsdigita.com>
6610
6611         * cookies.c (check_domain_match): Use match_tail in case
6612         insensitive mode.
6613
6614         * utils.c (match_tail): Allow the caller to specify case
6615         insensitive mode.
6616
6617         * cookies.c (store_cookie): When expiry_time is 0, print it as
6618         undefined, not indefinite.
6619
6620 2002-05-07  Ian Abbott  <abbotti@mev.co.uk>
6621
6622         * cookies.c (cookie_jar_process_set_cookie): Do not store
6623         discarded cookie.
6624
6625 2002-04-21  Hrvoje Niksic  <hniksic@arsdigita.com>
6626
6627         * cookies.c (check_domain_match): Allow cookies to be set for
6628         subdomains of unknown top-level domains under some circumstances.
6629
6630 2002-04-21  Thomas Lussnig  <thomas.lussnig@bewegungsmelder.de>
6631
6632         * gen_ssl.c:
6633         - allow checking of server cert
6634         - allow defining client cert type
6635         - allow limit of ssl protocol
6636         - check more return values
6637         - added debug message on break
6638
6639 2002-04-21  Hrvoje Niksic  <hniksic@arsdigita.com>
6640
6641         * recur.c (download_child_p): Revert order of items in check
6642         number 6 for clarity.
6643
6644 2002-04-20  Hrvoje Niksic  <hniksic@arsdigita.com>
6645
6646         * init.c: Ditto.
6647
6648         * main.c: Ditto.
6649
6650         * http.c: Use the new interface.
6651
6652         * cookies.c: Provide an OO-style "cookie jar" interface to enable
6653         separate cookie jars.
6654
6655         * http.c (http_atotm): Declare argument as const.
6656
6657 2002-04-20  Hrvoje Niksic  <hniksic@arsdigita.com>
6658
6659         * cookies.c (cookie_new): Default to PORT_ANY.
6660         (find_cookie_chain_exact): Only search by DOMAIN.
6661         (find_matching_cookie): Also check that PORT matches.
6662         (store_cookie): Only match the domain.
6663         (set_cookie_header_cb): When a cookie "fakes" a domain, assume it
6664         is valid for that host rather than discarding it completely.
6665         (find_matching_chains): Don't search by PORT.
6666         (matching_cookie): Also match PORT.
6667         (load_cookies): Set the port if specified, otherwise leave it as
6668         ANY.
6669         (save_cookies_mapper): Save the port if specified, otherwise leave
6670         it empty.
6671
6672 2002-04-19  Thomas Lussnig  <thomas.lussnig@bewegungsmelder.de>
6673
6674         * init.c: The option `egdfile' was not in sort order.
6675
6676 2002-04-16  Hrvoje Niksic  <hniksic@arsdigita.com>
6677
6678         * ftp.c (getftp): Treat directories that begin with <letter>: as
6679         absolute.
6680         (getftp): Strip trailing slashes from con->id before merging it
6681         with TARGET.
6682
6683 2002-04-16  Hrvoje Niksic  <hniksic@arsdigita.com>
6684
6685         * http.c (gethttp): If Content-Type is not given, assume
6686         text/html.
6687
6688 2002-04-15  Hrvoje Niksic  <hniksic@arsdigita.com>
6689
6690         * recur.c (download_child_p): Don't ignore rejection of HTML
6691         documents that are themselves leaves of recursion.
6692
6693 2002-04-15  Ian Abbott  <abbotti@mev.co.uk>
6694
6695         Makefile.in: Updated several dependencies for object files to take
6696         account of nested include files.
6697
6698 2002-04-15  Ian Abbott  <abbotti@mev.co.uk>
6699
6700         Makefile.in: The target `connect$o' (connect.o) now depends on
6701         `utils.h'
6702
6703 2002-04-15  Ian Abbott  <abbotti@mev.co.uk>
6704
6705         * host.c (SET_H_ERRNO): New function-like macro to set `h_errno'.
6706         (gethostbyname_with_timeout): Use it.
6707
6708         * utils.c: Don't define `SETJMP()', `run_with_timeout_env' or
6709         `abort_run_with_timeout()' when `USE_SIGNAL_TIMEOUT' is undefined.
6710
6711 2002-04-15  Hrvoje Niksic  <hniksic@arsdigita.com>
6712
6713         * host.c (getaddrinfo_with_timeout): New function.
6714         (gethostbyname_with_timeout): Ditto.
6715         (lookup_host): Use them.
6716
6717 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6718
6719         * utils.c (number_to_string): Handle the case when n < -INT_MAX.
6720
6721 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6722
6723         * init.c (comind): Use a marginally faster implementation of
6724         binary search.  To quote Martin Buchholz, "a nanosecond saved is a
6725         nanosecond earned."
6726
6727 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6728
6729         * main.c (print_help): Document `--post-data' and `--post-file'.
6730
6731 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6732
6733         * http.c (gethttp): Ditto.
6734
6735         * retr.c (retrieve_url): Initialize variables to appease the
6736         compiler.
6737
6738         * gen_sslfunc.c (ssl_iread): Don't handle EINTR when calling
6739         select_fd.
6740         (ssl_iwrite): Ditto.
6741
6742         * connect.c (select_fd): Rewrite to handle EINTR.  Set errno to
6743         ETIMEDOUT in case of timeout.
6744         (iread): No need to handle EINTR when calling select_fd.
6745         (iwrite): Ditto.
6746
6747 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6748
6749         * retr.c (retrieve_url): Make sure that POST is not honored for
6750         redirections.
6751
6752         * http.c (gethttp): Send the POST data when requested.
6753         (post_file): New function.
6754         (gethttp): Use it.
6755
6756         * main.c (main): Ditto.
6757
6758         * init.c: Add new options.
6759
6760         * options.h (struct options): New options post_data and
6761         post_file_name.
6762
6763 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6764
6765         * connect.c (connect_with_timeout): Firing SIGALRM can result in
6766         connect() exiting with EINTR.  Treat EINTR the same as ETIMEDOUT.
6767
6768 2002-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6769
6770         * connect.c (connect_with_timeout): Use it.
6771
6772         * utils.c (run_with_timeout): New function.
6773
6774 2002-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6775
6776         * url.c (getproxy): Accept a struct url argument.  This obviates
6777         the need for USE_PROXY_P.
6778
6779         * retr.c (retrieve_url): Allow proxy to be a non-FTP URL.
6780
6781         * ftp.c (getftp): Recognize FWTK-style proxy.
6782
6783 2002-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
6784
6785         * config.h.in: Only define _VA_LIST when compiled with gcc.
6786
6787 2002-04012  Ian Abbott  <abbotti@mev.co.uk>
6788
6789         * http.c (http_loop): Compensate for MS Windows two-second
6790         granularity of file modification time when comparing timestamps.
6791
6792         * ftp.c (ftp_retrieve_list): Ditto.
6793
6794 2002-04-12  Ian Abbott  <abbotti@mev.co.uk>
6795
6796         * utils.c (has_html_suffix_p): New function to test filename for
6797         common html extensions.
6798
6799         * utils.h: Declare it.
6800
6801         * http.c (http_loop): Use it instead of previous test.
6802
6803         * retr.c (retrieve_url): Ditto.
6804
6805         * recur.c (download_child_p): Ditto.
6806
6807 2002-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
6808
6809         * config.h.in: Define _VA_LIST on Solaris to prevent stdio.h from
6810         declaring va_list.
6811         From Kevin Rodgers <kevinr@ihs.com>.
6812
6813 2002-04-12  Ian Abbott  <abbotti@mev.co.uk>
6814
6815         * Makefile.in: Specify libtool mode explicitly when linking.
6816
6817 2002-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
6818
6819         * connect.c (connect_with_timeout): New function.
6820         (connect_to_one): Use it.
6821
6822         * config.h.in: Add stubs for HAVE_SIGSETJMP, HAVE_SIGBLOCK, and
6823         HAVE_SETJMP_H.
6824
6825 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
6826
6827         * log.c: Set WGET_USE_STDARG if __STDC__ is defined and stdarg.h
6828         is present.
6829
6830 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
6831
6832         * progress.c (bar_create): If INITIAL is larger than TOTAL, fix
6833         TOTAL.
6834         (bar_finish): Likewise.
6835
6836 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
6837
6838         * html-url.c (tag_handle_form): New function.  Pick up form
6839         actions and mark them for conversion only.
6840
6841 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
6842
6843         * progress.c (struct progress_implementation): Use PARAMS when
6844         declaring the parameters of *create, *update, *finish, and
6845         *set_params.
6846
6847         * netrc.c: Ditto.
6848
6849         * http.c: Reformat some function definitions so that ansi2knr can
6850         read them.
6851
6852         * hash.c (struct hash_table): Use the PARAMS macro around
6853         parameters in the declaration of hash_function and test_function.
6854         (prime_size): Spell 2580823717UL and 3355070839UL as (unsigned
6855         long)0x99d43ea5 and (unsigned long)0xc7fa5177 respectively, so
6856         that pre-ANSI compilers can read them.
6857         (find_mapping): Use PARAMS when declaring EQUALS.
6858         (hash_table_put): Ditto.
6859
6860         * ftp.h: Wrap the parameters of ftp_index declaration in PARAMS.
6861
6862         * cookies.c (cookie_new): Use (unsigned long)0 instead of 0UL,
6863         which was unsupported by pre-ANSI compilers.
6864
6865         From Nelson H. F. Beebe <beebe@math.utah.edu>, for the most part.
6866
6867 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
6868
6869         * url.c (url_filename): Use compose_file_name regardless of
6870         whether opt.dirstruct is set.
6871         (mkstruct): Don't handle the query and the reencoding of DIR; that
6872         is done in compose_file_name.
6873
6874 2002-04-10  Hrvoje Niksic  <hniksic@arsdigita.com>
6875
6876         * wget.h: Ditto for extern char *exec_name.
6877
6878         * options.h: Don't guard against OPTIONS_DEFINED_HERE -- it is
6879         perfectly legal to follow an `extern' with a non-`extern' ones,
6880         provided the types match.
6881
6882         * main.c: Don't define OPTIONS_DEFINED_HERE.
6883
6884 2002-04-10  Hrvoje Niksic  <hniksic@arsdigita.com>
6885
6886         * progress.c (create_image): Revert to calculating ETA based on
6887         average download speed.
6888         (create_image): Don't print ETA until the download has been active
6889         for at least 3 seconds.
6890         (create_image): When ETA is not available, don't print anything.
6891         The previous version would print --:--.
6892
6893 2002-04-10  Hrvoje Niksic  <hniksic@arsdigita.com>
6894
6895         * progress.c (bar_update): Keep updating a subinterval until it
6896         reaches or exceeds a watermark.  That way the measurement will be
6897         guaranteed to span a configurable minimum of time.  The current
6898         default is 3s in 30 100ms intervals.
6899
6900 2002-04-09  Hrvoje Niksic  <hniksic@arsdigita.com>
6901
6902         * progress.c (bar_update): Maintain an array of the time it took
6903         to perform previous 30 network reads.
6904         (create_image): Calculate the download speed and ETA based on the
6905         last 30 reads, not the entire download.
6906         (create_image): Make sure that the ETA is not changed more than
6907         once per second.
6908
6909 2002-04-09  Ian Abbott  <abbotti@mev.co.uk>
6910
6911         * mswindows.c (borland_utime): New function conditionally defined
6912         when `HACK_BCC_UTIME_BUG' is defined.  A reimplementation of
6913         `utime()' as Borland's `utime()' function is broken on Windows 9x
6914         systems.  (Original patch by Chin-yuan Kuo <sr1111111@yahoo.com.tw>.)
6915
6916 2002-04-08  Hrvoje Niksic  <hniksic@arsdigita.com>
6917
6918         * ftp.c (ftp_loop): Propagate the result of ftp_retrieve_glob.
6919
6920 2002-03-26  Ian Abbott  <abbotti@mev.co.uk>
6921
6922         * Makefile.in: Updated several dependencies for object files.
6923
6924 2002-03-20  Ian Abbott  <abbotti@mev.co.uk>
6925
6926         * mswindows.c: Include "utils.h".
6927
6928 2002-03-18  Ian Abbott  <abbotti@mev.co.uk>
6929
6930         * host.h: Don't include netdb.h on windows.
6931
6932 2002-02-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6933
6934         * recur.c (retrieve_tree): Handle the case when start_url doesn't
6935         parse.
6936
6937 2002-02-19  Andreas Damm  <andreas-sourceforge@radab.org>
6938
6939         * wget.h (DO_REALLOC_FROM_ALLOCA): Multiply with sizeof(type) when
6940         calling xmalloc and memcpy.
6941
6942 2002-02-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6943
6944         * host.h: Include Unix-specific includes #ifndef WINDOWS.
6945         Patch originally provided by Christian Lackas.
6946
6947 2002-02-11  Christian Lackas  <delta@lackas.net>
6948
6949         * recur.c: recurive downloading for https fixed.
6950
6951 2002-02-19  Alan Eldridge  <alane@geeksrus.net>
6952
6953         * host.h: Also include <netinet/in.h> and <sys/socket.h>.
6954
6955         * ftp-basic.c: Also include <netinet/in.h>.
6956
6957 2002-02-05  Ian Abbott  <abbotti@mev.co.uk>
6958
6959         * http.c (gethttp): when -c used, mark already fully retrieved
6960         file as successfully retrieved.
6961
6962 2002-02-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6963
6964         * url.c (url_parse): Don't treat '?' as query string separator
6965         when parsing FTP URLs.
6966
6967 2002-02-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6968
6969         * html-url.c (tag_handle_meta): Don't crash on <meta
6970         http-equiv=refresh> where content is missing.
6971
6972 2002-01-31  Herold Heiko  <Heiko.Herold@previnet.it>
6973
6974         * ftp-basic.c, host.c: don't include sys/socket.h, arpa/inet.h,
6975         netdb.h on windows.
6976
6977 2002-01-30  Hrvoje Niksic  <hniksic@arsdigita.com>
6978
6979         * retr.c (retrieve_url): Remove redirection cycle detection.  This
6980         is because some sites legitimately redirect the user back to the
6981         same location, e.g. after an authorization check performed by
6982         another page.  MAX_REDIRECTIONS is still used to prevent infinite
6983         redirection loops.
6984
6985 2002-01-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6986
6987         * http.c (gethttp): Wrap host name in square brackets if it
6988         contains a colon.
6989
6990 2002-01-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6991
6992         * url.c (url_parse): Allow all hex digits, not only decimal ones,
6993         to form an IP address.
6994
6995 2002-01-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6996
6997         * url.c (urlchr_table): Make square braces reserved, so we can
6998         parse http://[::1]/.
6999         (url_parse): Handle host in braces.
7000         (url_string): If url->host contains colons, wrap it in braces.
7001
7002 2002-01-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7003
7004         * connect.c (resolve_bind_address): New function.
7005         (connect_to_one): Use it.
7006         (bindport): Ditto.
7007
7008         * init.c: Don't resolve bind-address here.
7009
7010         * host.c (wget_sockaddr_set_address): Would bug out with ADDR == NULL.
7011
7012 2002-01-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7013
7014         * host.c (lookup_host): Use sizeof(ip4_address) to calculate the
7015         offset.
7016         (address_list_new): Use map_ipv4_to_ip.
7017         (wget_sockaddr_set_address): Convert ADDR to IPv4 before using it
7018         in IPv4 context.
7019
7020 2002-01-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7021
7022         * source: Integrated IPv6 support.
7023         Written by Thomas Lussnig <thomas.lussnig@bewegungsmelder.de>.
7024
7025 2002-01-15  Ian Abbott  <abbotti@mev.co.uk>
7026
7027         * init.c (cmd_file): Change `\' to `/' for Windows (yes, really!)
7028         (cmd_directory): New function. Like cmd_file(), but strips
7029         trailing directory separators.
7030         (commands): Change action for "dirprefix" from `cmd_file' to
7031         `cmd_directory'.
7032
7033         * utils.c (make_directory): Allow intermediate `mkdir' calls to
7034         fail, as not all path components that do not exist should be
7035         directory components, especially under Windows.
7036
7037 2002-01-17  Hrvoje Niksic  <hniksic@arsdigita.com>
7038
7039         * netrc.c (parse_netrc): Skip leading whitespace before testing
7040         whether the line is empty.  Empty lines still contain the line
7041         terminator.
7042
7043 2002-01-15  Hrvoje Niksic  <hniksic@arsdigita.com>
7044
7045         * gen_sslfunc.c (ssl_iread): Call select on the file descriptor
7046         only if no data is pending in SSL buffers.
7047         From tony@bluetail.com.
7048
7049 2002-01-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7050
7051         * headers.c (header_get): Strip trailing whitespace from the
7052         header.
7053
7054 2002-01-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7055
7056         * url.c (parse_uname): URL-decode *USER and *PASSWD.
7057
7058 2002-01-07  Ian Abbott <abbotti@mev.co.uk>
7059
7060         * url.c (uri_merge_1): Deal with "net path" relative URL (one that
7061         starts with "//").
7062
7063 2002-01-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7064
7065         * http.c (gethttp): Invalidate SOCK if get_contents encountered an
7066         error.
7067
7068 2001-12-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7069
7070         * version.c: Wget 1.8.1 is released.
7071
7072 2001-12-19  Hrvoje Niksic  <hniksic@arsdigita.com>
7073
7074         * version.c: Wget 1.8.1-pre3 is released.
7075
7076 2001-12-19  Hrvoje Niksic  <hniksic@arsdigita.com>
7077
7078         * recur.c (retrieve_tree): Enqueue the canonical representation of
7079         start_url, so that the test against dl_url_file_map works.
7080
7081 2001-12-19  Hrvoje Niksic  <hniksic@arsdigita.com>
7082
7083         * log.c (logputs): Check for requested verbosity before printing
7084         anything.
7085
7086 2001-12-19  Hrvoje Niksic  <hniksic@arsdigita.com>
7087
7088         * html-url.c (tag_handle_link): Treat the "shortcut icon" link as
7089         inline.
7090
7091 2001-12-18  Hrvoje Niksic  <hniksic@arsdigita.com>
7092
7093         * recur.c (retrieve_tree): Make a copy of file obtained from
7094         dl_url_file_map because the code calls xfree(file) later.
7095
7096 2001-12-18  Hrvoje Niksic  <hniksic@arsdigita.com>
7097
7098         * recur.c (register_html): Maintain a hash table of HTML files
7099         along with the list.  Disallow duplicates.
7100         (retrieve_tree): Use downloaded_html_set to check whether the file
7101         found in dl_url_file_map is an HTML file, and descend into it if
7102         so.
7103         (convert_all_links): Don't guard against duplicates in
7104         downloaded_html_list, since they are no longer possible.
7105
7106 2001-12-18  Ian Abbott  <abbotti@mev.co.uk>
7107
7108         * recur.c (retrieve_tree): Pass on referring URL when retrieving
7109         recursed URL.
7110
7111 2001-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
7112
7113         * version.c: Wget 1.8.1-pre2 is released.
7114
7115 2001-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
7116
7117         * retr.c (sleep_between_retrievals): Simplify indentation.
7118
7119 2001-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
7120
7121         * gen_sslfunc.c (ssl_init_prng): Use random_number to get a byte
7122         of "randomness" at a time.
7123         (ssl_init_prng): Don't seed the PRNG; random_number will do that.
7124
7125         * retr.c (sleep_between_retrievals): Use it.  Make sure that the
7126         random amount averages in opt.wait.
7127         (sleep_between_retrievals): Don't seed the PRNG; random_number
7128         will do that.
7129
7130         * utils.c (random_number): New function.
7131
7132 2001-12-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7133
7134         * url.c (path_simplify): Move here from utils.c, and make static.
7135
7136 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
7137
7138         * init.c (wgetrc_file_name): Print correct message when loading
7139         getenv("WGETRC") fails.
7140
7141 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
7142
7143         * recur.c (register_download): Don't abort when one URL references
7144         two different files.
7145
7146 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
7147
7148         * http.c (gethttp): Check for conn->scheme, not u->scheme, before
7149         calling ssl_iwrite.
7150
7151 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
7152
7153         * version.c: Wget 1.8.1-pre1 is released.
7154
7155 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
7156
7157         * res.c (matches): Fix broken URL in the docstring.
7158
7159 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
7160
7161         * html-url.c (tag_url_attributes): Mark <embed href=...> as
7162         external.
7163
7164 2001-12-12  Hrvoje Niksic  <hniksic@arsdigita.com>
7165
7166         * url.c (get_urls_file): Cosmetic changes.
7167
7168 2001-12-12  Hrvoje Niksic  <hniksic@arsdigita.com>
7169
7170         * html-url.c (append_one_url): Resurrect warning when unable to
7171         resolve a relative link.
7172
7173 2001-12-12  Hrvoje Niksic  <hniksic@arsdigita.com>
7174
7175         * html-url.c (collect_tags_mapper): Break into several functions.
7176         (tag_url_attributes): Collect <embed href=...>.
7177
7178 2001-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
7179
7180         * host.c: New type ipv4_address.  Use it consistently instead of
7181         `unsigned char[4]' and `unsigned char *'.
7182         (pretty_print_address): Accept a `const void *', to require even
7183         less casting.
7184
7185 2001-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
7186
7187         * ftp-ls.c (ftp_parse_vms_ls): Fix obvious memory leaks.
7188
7189 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
7190
7191         * main.c (main): Initialize progress after fork_to_background, so
7192         that it knows when to use dots.
7193
7194         * mswindows.c (ws_hangup): Call log_request_redirect_output.
7195
7196         * utils.c (fork_to_background): Print the PID of the child
7197         process.
7198
7199         * log.c (log_request_redirect_output): Set a flag that output
7200         redirection has been requested.  Doing anything else in a signal
7201         handler is unsafe.
7202         (check_redirect_output): New function: check whether redirection
7203         has been requested and, if so, call redirect_output().
7204         (logputs): Call check_redirect_output.
7205         (logprintf): Ditto.
7206         (debug_logprintf): Ditto.
7207         (redirect_output): Print clearer messages.
7208
7209         * main.c (redirect_output_signal): Don't call
7210         redirect_output_signal directly.  Instead, call
7211         log_request_redirect_output.
7212
7213         * utils.c (memfatal): Ditto.
7214
7215         * progress.c (display_image): Use it.
7216
7217         * log.c (log_set_save_context): New function: allow the caller to
7218         turn off saving log context lines.
7219
7220 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
7221
7222         * host.c (address_list_set_faulty): Uncomment a sanity check.
7223
7224 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
7225
7226         * utils.c (long_to_string): Return a pointer after where the
7227         number ends.
7228         (long_to_string): Rename to number_to_string.
7229
7230 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
7231
7232         * utils.c (path_simplify): Correctly handle the unlikely case that
7233         b starts out as path + 1.
7234
7235 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
7236
7237         * utils.c (path_simplify): Rewrite, with better comments, and
7238         without the use of strcpy to move overlapping blocks.
7239
7240 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
7241
7242         * init.c (cmd_spec_progress): Resurrect.  Check whether VAL is a
7243         valid progress type before setting it.
7244
7245 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
7246
7247         * main.c (main): Remove stray debugging message.
7248
7249 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
7250
7251         * progress.c (create_image): Fix ETA padding when hours are prined.
7252
7253 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
7254
7255         * version.c: Wget 1.8 is released.
7256
7257 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
7258
7259         * url.c (reencode_string): Declare static.
7260
7261         * res.c (registered_specs): Declare static.
7262
7263         * progress.c (current_impl_locked): Declare static.
7264
7265         * log.c (flush_log_p): Declare static.
7266         (needs_flushing): Ditto.
7267
7268         * http.c (digest_authentication_encode): Declare static.
7269
7270         * html-url.c (init_interesting): Declare static.
7271
7272         * host.c (host_name_addresses_map): Declare static.
7273
7274         * cookies.c (find_matching_chains): Declare static.
7275
7276         * ftp-ls.c (ftp_parse_vms_ls): Warn about the memory leak
7277         indicated by lint.
7278
7279         * utils.c (path_simplify): Remove unused variable STUB_CHAR.
7280
7281         * host.c (address_list_set_faulty): Document that INDEX is
7282         currently unused.
7283
7284         * url.c (rewrite_shorthand_url): Remove unused variable PATH.
7285
7286 2001-12-08  Hrvoje Niksic  <hniksic@arsdigita.com>
7287
7288         * version.c: Wget 1.8-pre2 is released.
7289
7290 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7291
7292         * progress.c (progress_handle_sigwinch): Set up the signal again.
7293
7294         * utils.c: Include <sys/termios.h>, where Solaris defines
7295         TIOCGWINSZ.
7296
7297         * progress.c (bar_create): Don't use the last column on the screen.
7298         (create_image): Pad ETA to constant size.  Pad SIZE to nine digits
7299         only until it exceeded them.
7300
7301 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7302
7303         * version.c: Wget 1.8-pre1 is released.
7304
7305 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7306
7307         * progress.c (progress_create): Make sure that, when the output is
7308         redirected, the progress implementation gets changed to the
7309         fallback one.
7310         (bar_set_params): Set current_impl_locked to 1 when "force" is
7311         specified.
7312         (progress_create): Don't change the progress implementation if
7313         current_impl_locked is non-zero.
7314
7315         * main.c (redirect_output_signal): Call
7316         progress_schedule_redirect.
7317
7318         * progress.c (progress_schedule_redirect): New function.
7319
7320 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7321
7322         * log.c (logvprintf): Restructure to allow being called multiple
7323         times.
7324         (logprintf): Call logvprintf in a loop.
7325         (debug_logprintf): Ditto.
7326
7327 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7328
7329         * gen_sslfunc.c (ssl_init_prng): Allow the user to disable EGD by
7330         setting egd_file it to empty string.
7331
7332         * main.c (main): Change the option name from --sslegdsock to
7333         --egd-file.
7334
7335 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7336
7337         * gen_sslfunc.c (ssl_init_prng): Make the printed message
7338         translatable.
7339
7340 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7341
7342         * url.c (scheme_disable): New function.
7343
7344         * main.c (main): Call ssl_init_prng from here rather than from
7345         init_ssl, so that it has a chance to disable support for https
7346         before a URL has been resolved.
7347
7348         * gen_sslfunc.c (ssl_init_prng): Seed with rand() if all else
7349         failed.
7350         (ssl_init_prng): Disable support for https if seeding the PRNG
7351         fails.
7352
7353 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7354
7355         * utils.c (read_whole_line): Handle lines beginning with \0.
7356
7357 2001-12-05  Hrvoje Niksic  <hniksic@arsdigita.com>
7358
7359         * recur.c (convert_all_links): Guard against duplicates in
7360         downloaded_html_files.
7361         (register_download): Don't invalidate similar-looking URLs.
7362         (match_except_index): New function.
7363
7364 2001-12-05  Hrvoje Niksic  <hniksic@arsdigita.com>
7365
7366         * utils.c (path_simplify): Document with test cases.
7367
7368 2001-12-04  Hrvoje Niksic  <hniksic@arsdigita.com>
7369
7370         * gen_sslfunc.c: Ditto.
7371
7372         * rbuf.c: Include <string.h>.
7373
7374 2001-12-04  Hrvoje Niksic  <hniksic@arsdigita.com>
7375
7376         * recur.c (retrieve_tree): Check whether the URL was already
7377         downloaded before downloading it again.
7378         (descend_child_p): Renamed to download_child_p.
7379         (register_download): When one URL is downloaded to a file already
7380         "owned" by another URL, delete all references that map any URL to
7381         that file.
7382         (register_delete_file): New function.
7383         (retrieve_tree): Use it after deleting a file.
7384
7385         * url.c (url_parse): Re-canonicalize the URL also if the path is
7386         empty, so that e.g. "http://www.server.com" ->
7387         "http://www.server.com/".
7388         (lowercase_str): Use ISUPPER instead of !ISLOWER.
7389
7390         * retr.c (retrieve_url): Use the canonical URL form when calling
7391         register_download().
7392
7393 2001-12-04  Ian Abbott <abbotti@mev.co.uk>
7394
7395         * snprintf.c (dopr): Use `unsigned int' as the second argument to
7396         va_arg when casting to `unsigned short' is intended.
7397
7398 2001-12-04  Herold Heiko  <Heiko.Herold@previnet.it>
7399
7400         * gen_sslfunc.c: on windows provide ssl crypto random
7401           initialization through RAND_screen(); could possibly
7402           be not enough for strong ssl communication (see the
7403           relevant manual page from the openssl package).
7404
7405 2001-12-04  Hrvoje Niksic  <hniksic@arsdigita.com>
7406
7407         * url.c (local_quote_string): Reenable quoting of question marks,
7408         but only when `--html-extension' is used.
7409
7410 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
7411
7412         * version.c: Wget 1.8-beta3 is released.
7413
7414 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
7415
7416         * snprintf.c (dopr): Cast the result of va_arg to short int and
7417         short unsigned int where these types are expected to be used.
7418
7419 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
7420
7421         * snprintf.c (dopr): Replace `short int' and `unsigned short int'
7422         with `int' when using it as the second argument to `va_arg'.
7423
7424 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
7425
7426         * host.c (address_list_new_one): New function.
7427         (lookup_host): Use it.
7428
7429 2001-12-03  Andre Majorel  <amajorel@teaser.fr>
7430
7431         * host.c (lookup_host): Don't initialize TMPSTORE directly because
7432         it's not legal C.
7433
7434 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
7435
7436         * ftp-basic.c (ftp_port): Don't return HOSTERR if we fail getting
7437         the socket data.
7438
7439         * ftp.c: Ditto.
7440
7441         * http.c: No need to declare h_errno.
7442
7443         * host.c: Declare h_errno.
7444
7445 2001-12-02  Hrvoje Niksic  <hniksic@arsdigita.com>
7446
7447         * utils.c (file_merge): If BASE doesn't contain a slash, just
7448         return a copy of FILE.
7449
7450 2001-12-02  Hrvoje Niksic  <hniksic@arsdigita.com>
7451
7452         * version.c: Wget 1.8-beta2 is released.
7453
7454 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
7455
7456         * ftp.c (getftp): When PWD fails, assume "/".
7457
7458         * ftp-basic.c (ftp_syst): Fix indentation.
7459
7460 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
7461
7462         * url.c (get_urls_file): If opt.base_href is specified, merge each
7463         URL with the base.
7464
7465 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
7466
7467         * main.c (print_help): Don't document the removed `-nh'.
7468
7469 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
7470
7471         * url.c (url_full_path): Document better.
7472
7473         * http.c (gethttp): Use the full path when creating digest
7474         authorization.
7475
7476 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
7477
7478         * cookies.c (path_matches): Return 0 if PREFIX doesn't begin with
7479         '/'.
7480
7481 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
7482
7483         * cookies.c (path_matches): FULL_PATH doesn't begin with '/', but
7484         PREFIX does.
7485
7486 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
7487
7488         * cookies.c (check_domain_match): Reimplement to match Netscape's
7489         "preliminary specification" for cookies.
7490
7491 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
7492
7493         * url.c (replace_attr_refresh_hack): New function.
7494         (convert_links): Call replace_attr_refresh_hack for Refresh
7495         links.  It will add the "TMOUT; URL=" junk before the link.
7496
7497         * html-url.c (collect_tags_mapper): Set ID to the ID of the
7498         "content" attribute, not "http-equiv".
7499         (collect_tags_mapper): Don't use OFFSET to hack the raw_* values;
7500         instead, store the information that this entry belongs to a
7501         "refresh" link.
7502
7503 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
7504
7505         * version.c: Wget 1.8-beta1 is released.
7506
7507 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
7508
7509         * recur.c (retrieve_tree): Allow -p retrievals to exceed maximum
7510         depth by more than one.
7511
7512 2001-11-30  Hrvoje Niksic  <hniksic@arsdigita.com>
7513
7514         * retr.c (retrieve_url): Don't allow more than 20 redirections.
7515
7516 2001-11-30  Hrvoje Niksic  <hniksic@arsdigita.com>
7517
7518         * recur.c (retrieve_tree): Skip the non-inline entries when
7519         enqueuing the children of a leaf HTML node in -p mode.
7520         (descend_url_p): Ignore opt.no_parent when in -p mode and UPOS is
7521         "inline".
7522
7523         * html-url.c (get_urls_html): Don't accept dash_p_leaf_HTML.
7524         (collect_tags_mapper): When an entry is "inline", mark it as such.
7525
7526         * recur.c (descend_url_p): Fix test when checking for
7527         acceptance/rejection rules.
7528
7529 2001-10-31 Daniel BODEA <dali@dali-designs.com>
7530
7531         * netrc.c (search_netrc): When slack_default is 0, still look for
7532         an account with matching password, just not the "default account".
7533         HTTP Authorization using .netrc should now work as expected.
7534
7535 2001-11-30  T. Bharath  <TBharath@responsenetworks.com>
7536
7537         * http.c (persistent_available_p): Call SHUTDOWN_SSL if
7538         test_socket_open fails.
7539
7540 2001-11-30  Hrvoje Niksic  <hniksic@arsdigita.com>
7541
7542         * progress.c (display_image): Just print one CR to reset the
7543         cursor position.
7544
7545 2001-11-30  Christian Fraenkel  <c.fraenkel@gmx.net>
7546
7547         * init.c: New command `ssl_egd_sock'.
7548
7549         * main.c (main): New option `--sslegdsock'.
7550
7551         * gen_sslfunc.c (ssl_init_prng): Seed the RNG using EGD.
7552
7553 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
7554
7555         * cmpt.c (memmove): Include a simple memmove implementation.
7556
7557 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
7558
7559         * headers: Guard against header files being included twice.
7560
7561 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
7562
7563         * gen-md5.c: Use unsigned char * as the buffer argument to
7564         gen_md5_update.
7565
7566 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
7567
7568         * connect.h: Declare select_fd.
7569
7570 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
7571
7572         * recur.c (descend_url_p): When resolving no_parent, compare with
7573         start_url, not parent url.  Otherwise link from /a/b/ to /a/c/
7574         wouldn't be followed, although the download started from /a/.
7575
7576 2001-01-23  Herold Heiko  <Heiko.Herold@previnet.it>
7577
7578         * config.h.ms, mswindows.h: defined HAVE_ISATTY, use _isatty for
7579         MS VC; somebody with Borland compiler please check and provide
7580         patch if possible;
7581
7582         * cmpt.c: provided a usleep emulation.
7583
7584 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
7585
7586         * host.c (address_list_new): Initialize al->faulty.
7587
7588 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
7589
7590         * http.c (http_process_range): Accept the broken output of
7591         "JavaWebServer/1.1.1".
7592
7593 2001-11-28  Hrvoje Niksic  <hniksic@arsdigita.com>
7594
7595         * progress.c (dot_set_params): If PARAMS is unspecified, use
7596         dot_style, if available.
7597
7598         * init.c: Ditto.
7599
7600         * main.c (main): Resurect --dot-style.
7601
7602         * progress.c (dot_finish): Print the quantity if we're left at the
7603         beginning of a row.
7604
7605 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7606
7607         * cmpt.c (random): Removed.
7608
7609         * retr.c (sleep_between_retrievals): Use the more portable rand()
7610         instead of random().
7611
7612 2001-11-27  Ian Abbott <abbotti@mev.co.uk>
7613
7614         * retr.c (retrieve_from_file): Initialize `new_file' to NULL to
7615         prevent seg fault.
7616
7617 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7618
7619         * connect.c (connect_to_many): Use address_list_set_faulty to
7620         prevent the faulty address from being reused.
7621
7622         * host.c (address_list_set_faulty): New function.
7623         (address_list_get_bounds): New function, instead of
7624         address_list_count.
7625
7626 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7627
7628         * url.c (convert_links): Don't translate %d-%d.
7629
7630         * main.c (print_help): Remove stray HAVE_RANDOM code.
7631
7632 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7633
7634         * ftp.c (getftp): Improve output after sending PASV.  Don't
7635         attempt to "look up" the IP address we already know; call
7636         connect_to_one directly.
7637
7638 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7639
7640         * progress.c: Change the default progress implementation to "bar".
7641
7642 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7643
7644         * progress.c (bar_create): Print two newlines.
7645
7646 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7647
7648         * cmpt.c (random): New function, a simple-minded replacement for
7649         random() on systems that don't have it.
7650
7651 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7652
7653         * config.h.in: Put a HAVE_USLEEP stub.
7654
7655         * cmpt.c (usleep): Replacement implementation of usleep using
7656         select.
7657
7658         * init.c: New option init_rate.
7659
7660         * main.c (main): New option --limit-rate.
7661
7662         * retr.c (limit_bandwidth): New function.
7663         (get_contents): Call it to limit the bandwidth used when
7664         downloading.
7665
7666         * progress.c (dot_update): Would print the wrong download speed on
7667         rows other than the first one when the download was continued.
7668         (dot_finish): Ditto.
7669
7670 2001-11-26  Ian Abbott <abbotti@mev.co.uk>
7671
7672         * http.c (gethttp): fix undeclared variable 'err' when compiled
7673         with HAVE_SSL.
7674
7675 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7676
7677         * progress.c: Don't allocate new timers; use the timing data
7678         propagated from the caller.
7679
7680         * retr.c (get_contents): Allocate and use a timer.
7681
7682 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7683
7684         * http.c (last_host_ip): Made into an address_list.
7685         (invalidate_persistent): Release pc_last_host_ip.
7686         (register_persistent): Use lookup_host.
7687         (persistent_available_p): Check for equality of hosts using
7688         address_list_match_all.  Call address_list_release.
7689         (http_cleanup): New function.
7690
7691         * ftp.c (getftp): Use lookup_host and connect_to_many.
7692
7693         * http.c (gethttp): Use lookup_host and connect_to_many.
7694
7695         * connect.c (make_connection): Removed.
7696         (connect_to_one): New function.
7697         (connect_to_many): Ditto.
7698         (set_connection_host_name): Ditto.
7699
7700         * host.c (lookup_host): New function; new return type.
7701         (address_list_new): New function.
7702         (address_list_count): Ditto.
7703         (address_list_copy_one): Ditto.
7704         (address_list_delete): Ditto.
7705         (address_list_release): Ditto.
7706         (pretty_print_address): Ditto.
7707
7708 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7709
7710         * recur.c (retrieve_tree): In case of followed redirection,
7711         blacklist the pre-redirection URL.
7712
7713 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7714
7715         * recur.c (descend_redirect_p): New function.
7716         (retrieve_tree): Make sure redirections are not blindly followed.
7717
7718 2001-11-04  Alan Eldridge  <alane@geeksrus.net>
7719
7720         * config.h.in: added HAVE_RANDOM.
7721
7722         * options.h: added random_wait to struct options.
7723
7724         * main.c (print_help [HAVE_RANDOM], main): added arg parsing, help
7725         for --random-wait.
7726
7727         * retr.c (sleep_between_retrievals) [HAVE_RANDOM]: added
7728         implementation of random wait times.
7729
7730         * init.c (commands): added "randomwait" keyword.
7731
7732 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7733
7734         * recur.c (descend_url_p): Be more conservative with blacklisting
7735         URLs.
7736         (convert_all_links): Print how many files have been converted, and
7737         how long it took.
7738
7739         * progress.c (create_image): Place the number of downloaded bytes
7740         right after the progress bar.
7741
7742         * utils.c (suffix): Return a pointer into the string.
7743
7744 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7745
7746         * url.c (convert_links): Handle CO_NULLIFY_BASE.
7747
7748         * recur.c (retrieve_tree): Ignore download-ignorable children.
7749         (convert_all_links): Specify CO_NULLIFY_BASE when link_base_p.
7750
7751         * html-url.c (handle_link): Return the newly created urlpos.
7752         (collect_tags_mapper): When dealing with BASE, store the base
7753         reference and mark it as download-ignorable.
7754
7755 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7756
7757         * url.c (convert_links): Attempt to quote '?' as "%3F" when
7758         linking to local files.  Given up on the attempt, as it breaks
7759         local browsing.
7760
7761 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7762
7763         * main.c (private_initialize): Removed.
7764         (main): Don't call private_initialize.
7765
7766         * http.c: Call lookup_host.
7767
7768         * host.c (host_init): Removed.
7769         (add_host_to_cache): Initialize host_name_address_map here, on
7770         demand.
7771         (ngethostbyname): Commented out.
7772
7773         * connect.c (make_connection): Remove dead code; use lookup_host.
7774
7775         * host.c (store_hostaddress): Renamed to lookup_host and reversed
7776         the args.
7777         Removed host_address_name_map and host_slave_master_map.
7778
7779 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7780
7781         * progress.c (dot_create): Align the "[ skipping ... ]" string
7782         with the dots.
7783
7784         * retr.c (rate): Split into two functions: calc_rate and
7785         retr_rate.
7786
7787         * progress.c (create_image): Draw a dummy progress bar even when
7788         total size is unknown.
7789         (display_image): Place the text cursor at the end of the "image".
7790
7791 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7792
7793         * url.c (reencode_string): Use unsigned char, not char --
7794         otherwise the hex digits come out wrong for 8-bit chars such as
7795         nbsp.
7796         (lowercase_str): New function.
7797         (url_parse): Canonicalize u->url if needed.
7798         (get_urls_file): Parse each URL, and return only the valid ones.
7799         (free_urlpos): Call url_free.
7800         (mkstruct): Add :port if the port is non-standard.
7801         (mkstruct): Append the query string to the file name, if any.
7802         (urlpath_length): Use strpbrk_or_eos.
7803         (uri_merge_1): Handle the cases where LINK is an empty string,
7804         where LINK consists only of query, and where LINK consists only of
7805         fragment.
7806         (convert_links): Count and report both kinds of conversion.
7807         (downloaded_file): Use a hash table, not a list.
7808         (downloaded_files_free): Free the hash table.
7809
7810         * retr.c (retrieve_from_file): Ditto.
7811
7812         * main.c (main): Call either retrieve_url or retrieve_tree
7813         for each URL, not both.
7814
7815         * retr.c (register_all_redirections): New function.
7816         (register_redirections_mapper): Ditto.
7817         (retrieve_url): Register the redirections.
7818         (retrieve_url): Make the string "Error parsing proxy ..."
7819         translatable.
7820
7821         * res.c (add_path): Strip leading slash from robots.txt paths so
7822         that the path representations are "compatible".
7823         (free_specs): Free each individual path, too.
7824         (res_cleanup): New function.
7825         (cleanup_hash_table_mapper): Ditto.
7826
7827         * recur.c (url_queue_new): New function.
7828         (url_queue_delete): Ditto.
7829         (url_enqueue): Ditto.
7830         (url_dequeue): Ditto.
7831         (retrieve_tree): New function, replacement for recursive_retrieve.
7832         (descend_url_p): New function.
7833         (register_redirection): New function.
7834
7835         * progress.c (create_image): Cosmetic changes.
7836
7837         * init.c (cleanup): Do all those complex cleanups only if
7838         DEBUG_MALLOC is defined.
7839
7840         * main.c: Removed --simple-check and the corresponding
7841         simple_host_check in init.c.
7842
7843         * html-url.c (handle_link): Parse the URL here, and propagate the
7844         parsed URL to the caller, who would otherwise have to parse it
7845         again.
7846
7847         * host.c (xstrdup_lower): Moved to utils.c.
7848         (realhost): Removed.
7849         (same_host): Ditto.
7850
7851 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7852
7853         * utils.c (path_simplify): Preserver the (non-)existence of
7854         leading slash.  Return non-zero if changes were made.
7855
7856 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7857
7858         * progress.c (bar_update): Don't modify bp->total_length if it is
7859         zero.
7860
7861 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7862
7863         * retr.c (retrieve_url): When the redirection URL doesn't parse,
7864         print the correct error message rather than "UNKNOWN".
7865
7866 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7867
7868         * progress.c (bar_finish): If the timer didn't record any time
7869         since the download beginning, fake 1ms.
7870
7871 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7872
7873         * recur.c (recursive_retrieve): Fix typo.
7874
7875 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
7876
7877         * progress.c (create_image): Don't translate "%ld ".
7878
7879 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
7880
7881         * progress.c (bar_set_params): Allow the user to force the use of
7882         the bar.
7883
7884 2001-11-23  Lemble Gregory  <gregory.lemble@st.com>
7885
7886         * gen_sslfunc.c (ssl_init_prng): New function; seed the SSL RNG.
7887
7888 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
7889
7890         * progress.c: Renamed dp_* functions to dot_* for greater clarity
7891         and consistency with bar_*.
7892         (print_download_speed): Get rid of the unneeded '@' character.
7893         (create_image): Fix download rate geometry.
7894
7895         * progress.c (print_elapsed): Remove spurious space.
7896         (print_elapsed): Renamed to print_download_speed, since that's
7897         what it does.
7898
7899 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
7900
7901         * progress.c (bar_update): If the downloaded amount becomes larger
7902         than the expected amount, adjust the expected amount accordingly.
7903
7904 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
7905
7906         * utils.c (determine_screen_width): New function.
7907
7908         * main.c (main): New option `--progress=TYPE'.
7909         (main): Implement compatibility with the old option `--dot-style'.
7910
7911         * init.c: Removed cmd_spec_dotstyle -- that logic is now in
7912         dp_set_params.
7913         (cmd_spec_progress): New function.
7914
7915         * retr.c (get_contents): Use the progress_* functions instead of
7916         the old show_progress().
7917         (show_progress): Removed.
7918         (rate): Print "xxxx.xx K/s" instead of "KB/s".  Ditto for MB/s,
7919         etc.
7920
7921         * progress.c (set_progress_implementation): New function.
7922         (valid_progress_implementation_p): Ditto.
7923         (progress_create): Ditto.
7924         (progress_update): Ditto.
7925         (progress_finish): Ditto.
7926         (dp_create): Ditto.
7927         (dp_update): Ditto.
7928         (dp_finish): Ditto.
7929         (dp_set_params): Ditto.
7930         (print_elapsed): Ditto.
7931
7932 2001-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
7933
7934         * retr.c (show_progress): Use it.
7935
7936         * log.c (log_set_flush): New function.
7937
7938 2001-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
7939
7940         * utils.c (path_simplify): Don't remove trailing slashes.
7941
7942         * ftp.c (ftp_get_listing): Use it.
7943
7944         * utils.c (file_merge): New function.
7945
7946         * url.c (opt_url): Removed.
7947
7948         * recur.c (recursive_retrieve): Inline "opt_url" logic.
7949
7950         * main.c (main): Use xfree(), not free().
7951
7952         * url.c (rewrite_url_maybe): Renamed to rewrite_shorthand_url.
7953
7954         * ftp.c (ccon): Move `ccon' typedef here, since it's only used
7955         internally.
7956
7957         * config.h.in: Include a stub for HAVE_STRPBRK.
7958
7959         * cmpt.c (strpbrk): Include a replacement for systems without
7960         strpbrk().
7961
7962         * ftp.c: Use url_set_dir and url_set_file when modifying the URL.
7963
7964         * url.c (url_set_dir): New function.
7965         (url_set_file): Ditto.
7966
7967         * ftp-basic.c (ftp_process_type): Process FTP type here; the URL
7968         parser makes the URL "params" available, so we can do that in this
7969         function.
7970
7971         * retr.c: Ditto.
7972
7973         * ftp.c: Ditto; pass the local file information in `ccon'.
7974
7975         * http.c: Get rid of the ugly kludge that had URL being replaced
7976         with the proxy URL when proxy retrieval was requested.  Use a
7977         separate parameter to http_loop and gethttp for the proxy URL.
7978
7979         * http.c: Changed to reflect the fact that local file, proxy, and
7980         referer information are no longer stored in struct url.  The local
7981         file information is passed in `struct hstat' now.
7982
7983         * url.c: Reworked URL parsing to be more regular.  Reencode the
7984         URL using reencode_string.
7985         Removed non-URL-related information from struct url.  This
7986         includes fields `proxy', `local', and `referer'.
7987
7988 2001-11-22  Jochen Hein  <jochen@jochen.org>
7989
7990         * main.c (main): Split the copyright notice for easier
7991         translation.
7992
7993 2001-08-21  Dave Turner <dct25@hermes.cam.ac.uk>
7994
7995         * ftp-basic.c (ftp_size): New function to send non-standard SIZE
7996           command to server to request file size.
7997         * ftp.h (ftp_size): Export it.
7998         * ftp.c (getftp): Use new ftp_size function if restoring
7999           transfer of a file with unknown size.
8000
8001 2001-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
8002
8003         * url.c (parseurl): Don't depend on the now-obsolete TYPE.
8004
8005 2001-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
8006
8007         * url.c (getproxy): Handle URL shorthands.
8008
8009 2001-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
8010
8011         * main.c: Remove --wait / --waitretry backwards compatibility
8012         code.
8013
8014 2001-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
8015
8016         * main.c (main): Use it.
8017
8018         * url.c (rewrite_url_maybe): New function.
8019
8020 2001-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
8021
8022         * url.c: Clean up handling of URL schemes.
8023
8024 2001-05-13  Hrvoje Niksic  <hniksic@arsdigita.com>
8025
8026         * url.c: Get rid of `protostrings'.
8027         (skip_proto): Don't use protostrings.
8028         (has_proto): Ditto.
8029
8030 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
8031
8032         * Makefile.in: Conditionally compile getopt.o.
8033
8034 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
8035
8036         * md5.h: Renamed to gnu-md5.h.
8037
8038         * md5.c: Renamed to gnu-md5.c.
8039
8040         * http.c: Ditto.
8041
8042         * ftp-opie.c: Use the new macros.
8043
8044         * sysdep.h: Define md5-related macros.
8045
8046         * config.h.in: Define HAVE_SOLARIS_MD5 or HAVE_BUILTIN_MD5
8047         depending on which md5 implementation is used.
8048
8049 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
8050
8051         * res.c (res_register_specs): Initialize OLD and HP_OLD to appease
8052         the compiler.
8053
8054 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
8055
8056         * http.c (gethttp): Print the whole response line when printing
8057         headers is requested.
8058
8059 2001-05-12  Hrvoje Niksic  <hniksic@arsdigita.com>
8060
8061         * res.c: New file.  Implement all RES-related code here.
8062
8063 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
8064
8065         * version.c: Wget 1.7.1 is released.
8066
8067 2001-11-16  Hrvoje Niksic  <hniksic@arsdigita.com>
8068
8069         * headers.c (header_extract_number): Ignore trailing whitespace.
8070
8071 2001-08-24  Ian Abbott  <abbotti@mev.co.uk>
8072
8073         * html-url.c (collect_tags_mapper): Fix bug converting links
8074         with -k option for tags with multiple link attributes by
8075         handling links in the order they appear.
8076
8077 2001-08-15  Ian Abbott  <abbotti@mev.co.uk>
8078
8079         * ftp.c (ftp_loop_internal): Avoid a potential buffer overflow in
8080           the call to the 'rate' function by moving it past the error
8081           checking for the 'getftp' function return value.
8082
8083 2001-11-16  Hrvoje Niksic  <hniksic@arsdigita.com>
8084
8085         * html-parse.c (advance_declaration): Use 0x22 instead of '"' or
8086         '\"'.  Different compilers' assert macros are broken in different
8087         ways.
8088
8089 2001-09-29  Christian Fraenkel  <c.fraenkel@gmx.net>
8090
8091         * http.c (gethttp): print debug output for errors occuring during
8092         the ssl handshake.
8093
8094 2001-11-16  Chris Seawood  <cls@seawood.org>
8095
8096         * init.c: Ditto.
8097
8098         * host.c: Ditto.
8099
8100         * connect.c: Ditto.
8101
8102         * sysdep.h: Support compilation under BEOS.
8103
8104 2001-06-08  Edward J. Sabol  <sabol@alderaan.gsfc.nasa.gov>
8105
8106         * url.c (url_equal): Fix a memory leak when parseurl returns an
8107         error on the second URL. Also, since url_equal is not used at the
8108         moment, do not compile it.
8109
8110         * url.h: Ditto for the prototype of url_equal.
8111
8112 2001-11-16  Hrvoje Niksic  <hniksic@arsdigita.com>
8113
8114         * html-parse.c (map_html_tags): Support XML-style empty tags.
8115
8116 2001-06-26  Hrvoje Niksic  <hniksic@arsdigita.com>
8117
8118         * wget.h (DO_REALLOC_FROM_ALLOCA): Check for do_realloc_newsize in
8119         loop condition because we're no longer setting SIZEVAR here.
8120
8121 2001-06-26  Hrvoje Niksic  <hniksic@arsdigita.com>
8122
8123         * wget.h (DO_REALLOC_FROM_ALLOCA): Set SIZEVAR after the memcpy()
8124         call because it needs the old value.
8125
8126 2001-06-18  Hrvoje Niksic  <hniksic@arsdigita.com>
8127
8128         * cookies.c (ATTR_NAME_CHAR): Allow almost any character to be in
8129         an attribute name.
8130
8131 2001-06-18  Hrvoje Niksic  <hniksic@arsdigita.com>
8132
8133         * url.c (url_filename): Make sure that slashes that sneak in to
8134         u->file via query string get protected.
8135         (file_name_protect_query_string): New function.
8136
8137 2001-06-14  Hrvoje Niksic  <hniksic@arsdigita.com>
8138
8139         * recur.c (recursive_retrieve): Also check undesirable_urls with
8140         canonicalized URL.
8141
8142 2001-06-14  Hrvoje Niksic  <hniksic@arsdigita.com>
8143
8144         * http.c (gethttp): Search `.netrc' with real host, not the proxy
8145         one.
8146
8147 2001-06-14  Hrvoje Niksic  <hniksic@arsdigita.com>
8148
8149         * sysdep.h (MAP_FAILED): Provide MAP_FAILED for systems that don't
8150         define it.
8151
8152 2001-06-09  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8153
8154         * ftp.h: Provide correct prototype for ftp_parse_ls().
8155
8156 2001-06-04  Hrvoje Niksic  <hniksic@arsdigita.com>
8157
8158         * version.c: Wget 1.7 is released.
8159
8160 2001-06-03  Karl Eichwalder  <ke@suse.de>
8161
8162         * ftp-ls.c (ftp_parse_ls): Fix typo.
8163
8164 2001-05-27  Hrvoje Niksic  <hniksic@arsdigita.com>
8165
8166         * all: Update copyright information.
8167
8168 2001-05-26  Hrvoje Niksic  <hniksic@arsdigita.com>
8169
8170         * http.c (gethttp): Indicate that the continued download failed
8171         for *this* file.
8172
8173 2001-05-26  Hrvoje Niksic  <hniksic@arsdigita.com>
8174
8175         * version.c: Wget 1.7-pre1 is released.
8176
8177 2001-05-26  Hrvoje Niksic  <hniksic@arsdigita.com>
8178
8179         * version.c: Updated version to 1.7-pre1.
8180
8181 2001-05-14  Hrvoje Niksic  <hniksic@arsdigita.com>
8182
8183         * gen_sslfunc.c: Don't include <sys/time.h> directly.
8184
8185 2001-05-14  Hrvoje Niksic  <hniksic@arsdigita.com>
8186
8187         * http.c (gethttp): Use real URL data for cookies, not the proxy
8188         stuff.
8189
8190 2001-05-12  Hrvoje Niksic  <hniksic@arsdigita.com>
8191
8192         * main.c (print_help): Document `--no-http-keep-alive'.
8193
8194         * utils.c (numdigit): Handle negative numbers *correctly*.
8195
8196         * hash.c (make_nocase_string_hash_table): Use term "nocase" rather
8197         than the confusing "unsigned".
8198
8199         * utils.c (string_set_contains): Renamed from string_set_exists.
8200
8201         * hash.c (hash_table_contains): Renamed from hash_table_exists.
8202
8203         * cookies.c: Move case-insensitive hash tables to hash.c.
8204
8205 2001-05-09  Hrvoje Niksic  <hniksic@arsdigita.com>
8206
8207         * http.c (gethttp): Before concluding that the file is already
8208         fully retrieved, make sure that the file existed and `Range' was
8209         actually requested.
8210
8211 2001-05-09  Hrvoje Niksic  <hniksic@arsdigita.com>
8212
8213         * cookies.c (eliminate_dups): New function.
8214         (build_cookies_request): Use it.
8215         (build_cookies_request): Set chain_store_size after reallocating
8216         all_chains.
8217         (check_domain_match): Annotated for easier future debugging.
8218         (store_cookie): In the debug message, print whether the cookie is
8219         permanent.
8220
8221 2001-05-08  Hrvoje Niksic  <hniksic@arsdigita.com>
8222
8223         * http.c (http_loop): Reset no_truncate before deciding whether to
8224         set it.
8225         (gethttp): Further clarify "-c conflicts with existing file" error
8226         message, based on input from Herold Heiko.
8227
8228 2001-05-07  Hrvoje Niksic  <hniksic@arsdigita.com>
8229
8230         * http.c (http_loop): If restval is set, set no_truncate to 1
8231         unconditionally.
8232
8233 2001-05-02  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8234
8235         * ftp-ls.c (ftp_parse_winnt_ls): Assure months are being correctly
8236         converted. Pointed out by <Stefan.Weil@de.heidelberg.com>.
8237         (ftp_parse_vms_ls): Ditto.
8238
8239 2001-04-30  Hrvoje Niksic  <hniksic@arsdigita.com>
8240
8241         * init.c (cmd_address): Zero SIN before using it; apparently
8242         needed on *BSD.
8243
8244 2001-04-29  Hrvoje Niksic  <hniksic@arsdigita.com>
8245
8246         * ftp.c (ftp_loop_internal): Don't set NO_TRUNCATE if the file is
8247         empty.
8248
8249 2001-04-29  Hrvoje Niksic  <hniksic@arsdigita.com>
8250
8251         * main.c (main): Make `--cookies' respect its argument.
8252
8253 2001-04-28  Hrvoje Niksic  <hniksic@arsdigita.com>
8254
8255         * main.c (main): Removed undocumented option `--email-address'.
8256
8257         * netrc.c: Use the latest read_whole_line.
8258
8259         * init.c (defaults): Set opt.ftp_pass to "-wget@".
8260
8261         * mswindows.c (pwd_cuserid): Ditto.
8262
8263         * utils.c (pwd_cuserid): Removed.
8264
8265         * host.c (ftp_getaddress): Removed.
8266
8267 2001-04-28  Hrvoje Niksic  <hniksic@arsdigita.com>
8268
8269         (http_loop): Allocate space for filename_plus_orig_suffix with
8270         alloca; this is more efficient and removes the need to free it
8271         before each and every return.
8272
8273 2001-04-28  Hrvoje Niksic  <hniksic@arsdigita.com>
8274
8275         * http.c (gethttp): Return RETRUNNEEDED when the retrieval is
8276         unneeded because the file is already there and fully downloaded,
8277         and -c is specified.
8278         (http_loop): Handle RETRUNNEEDED.
8279
8280         * wget.h (uerr_t): New value RETRUNNEEDED.
8281
8282         * http.c (http_loop): Set no_truncate for files that both exist
8283         and are non-empty.
8284         (gethttp): Consider the download finished when restval >= contlen,
8285         not only when restval==contlen.
8286         (gethttp): Handle redirection before giving up due to -c.
8287         (gethttp): Clarify error message which explains that -c will not
8288         truncate the file.
8289         (gethttp): When returning CONTNOTSUPPORTED, don't forget to free
8290         the stuff that needs freeing and release the socket.
8291
8292 2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
8293
8294         * main.c (print_help): Wget booleans accept "off", not "no".
8295
8296 2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
8297
8298         * http.c (http_loop): If allow_cache is zero, always disable
8299         caching, not only when retrieving through proxy.
8300
8301         * init.c: Ditto.
8302
8303         * options.h (struct options): Rename proxy_cache to allow_cache.
8304
8305 2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
8306
8307         * http.c (mktime_from_utc): Improve documentation.
8308         (http_atotm): Put format strings into a separate array.
8309
8310 2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
8311
8312         * safe-ctype.h: Instead of throwing #error when isalpha is
8313         defined, redefine it to something that will throw a compile-time
8314         error if actually *used*.  Do the same for the rest of the
8315         standard C macros.
8316
8317 2001-04-26  Hrvoje Niksic  <hniksic@arsdigita.com>
8318
8319         * url.c (getproxy): Ignore empty proxy vars.
8320
8321 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
8322
8323         * http.c (http_loop): Would load cookies every time.
8324
8325         * cookies.c (load_cookies): Handle cookies whose values contain
8326         embedded spaces.
8327
8328 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
8329
8330         * utils.c: Define each DIGITS_* in one line.
8331
8332 2001-04-25  Roger L. Beeman  <beeman@cisco.com>
8333
8334         * http.c (http_atotm): Initialize t.tm_isdst to 0.
8335         (mktime_from_utc): Prevent mktime() from having discontinuities at
8336         DST transition points.
8337
8338 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
8339
8340         * html-url.c (get_urls_html): Fix documentation.
8341
8342 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
8343
8344         * url.c (UNSAFE_CHAR): Reimplement using a static table.
8345         (url_init): Removed.
8346         (init_unsafe_char_table): Removed.
8347
8348 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
8349
8350         * snprintf.c (dopr): Replace ISDIGIT with '0' <= ch && ch <= '9'.
8351
8352 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
8353
8354         * utils.c: Document timer functions.
8355
8356         * retr.c (rate): Use it.
8357         (rate): Print in GB/s if transfer rate exceeds 1 GB/s.
8358
8359         * utils.c (wtimer_granularity): New function.
8360
8361 2001-04-24  Hrvoje Niksic  <hniksic@arsdigita.com>
8362
8363         * retr.c (show_progress): Ditto.
8364
8365         * ftp.c (getftp): Ditto.
8366
8367         * http.c (gethttp): Use new timer functions.
8368
8369         * utils.c (wtimer_allocate): New function.
8370         (wtimer_new): Ditto.
8371         (wtimer_delete): Ditto.
8372         (wtimer_reset): Ditto.
8373         (wtimer_elapsed): Ditto.
8374
8375 2001-04-24  Hrvoje Niksic  <hniksic@arsdigita.com>
8376
8377         * utils.c (long_to_string): New, faster version.  Favors smaller
8378         numbers; much of the calculation is now done at compile-time.
8379
8380 2001-04-24  Hrvoje Niksic  <hniksic@arsdigita.com>
8381
8382         * utils.c (numdigit): Handle negative numbers.
8383
8384 2001-04-23  Hrvoje Niksic  <hniksic@arsdigita.com>
8385
8386         * retr.c (show_progress): Print the download rate even when the
8387         percentages are not available.
8388
8389 2001-04-21  Hrvoje Niksic  <hniksic@arsdigita.com>
8390
8391         * ftp.c (getftp): Adjust expected_bytes if the length is
8392         authoritative.
8393
8394 2001-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
8395
8396         * url.c: Don't declare `construct'.
8397
8398         * hash.c (grow_hash_table): Speed up rehashing; inline storing of
8399         mappings to new locations.
8400         (hash_table_new): Make resize_threshold a field in the hash table,
8401         so we don't have to recalculate it in each hash_table_put.
8402         (grow_hash_table): Update resize_threshold.
8403         (MAX): Remove unused macro.
8404         (prime_size): Made static.
8405
8406 2001-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
8407
8408         * retr.c (retrieve_url): Call uri_merge, not url_concat.
8409
8410         * html-url.c (collect_tags_mapper): Call uri_merge, not
8411         url_concat.
8412
8413         * url.c (mkstruct): Use encode_string instead of xstrdup followed
8414         by URL_CLEANSE.
8415         (path_simplify_with_kludge): Deleted.
8416         (contains_unsafe): Deleted.
8417         (construct): Renamed to uri_merge_1.
8418         (url_concat): Renamed to uri_merge.
8419
8420 2001-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
8421
8422         * url.c (str_url): Use encode_string instead of the unnecessary
8423         CLEANDUP.
8424         (encode_string_maybe): New function, returns input string if no
8425         encoding is needed.
8426         (encode_string): Call encode_string_maybe to do the dirty work,
8427         xstrdup if no work needed.
8428
8429 2001-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
8430
8431         * wget.h (XDIGIT_TO_xchar): Define here.
8432
8433         * url.c (decode_string): Use new name.
8434         (encode_string): Ditto.
8435
8436         * http.c (XDIGIT_TO_xchar): Rename HEXD2asc to XDIGIT_TO_xchar.
8437         (dump_hash): Use new name.
8438
8439         * wget.h: Rename ASC2HEXD and HEXD2ASC to XCHAR_TO_XDIGIT and
8440         XDIGIT_TO_XCHAR respectively.
8441
8442 2001-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
8443
8444         * init.c: Include cookies.h.
8445
8446         * cookies.h: Declare cookies_cleanup.
8447
8448         * cookies.c (check_domain_match): Remove unused variable.
8449         (save_cookies): Remove extraneous argument from debug statement.
8450
8451         * host.c (same_host): Don't call skip_url.
8452
8453         * url.c (skip_url): Removed.  Removed its calls from various
8454         functions in url.c.
8455
8456 2001-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
8457
8458         * cookies.c (unsigned_string_hash): Use the new code in
8459         string_hash as reference.
8460
8461         * hash.c (hash_table_map): Allow deletion and change of the
8462         element processed by MAPFUN.
8463         (string_hash): Use the function from glib.
8464
8465 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
8466
8467         * config.h.in: Include #undef stub.
8468
8469         * hash.c (hash_table_remove): Rewrite to actually clear deleted
8470         entries instead of just marking them as deleted.
8471
8472 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
8473
8474         * hash.h: Declare hash_table_get_pair and hash_table_count.
8475
8476 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
8477
8478         * cookies.c: Declare http_atotm.
8479
8480 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
8481
8482         * ftp-ls.c (ftp_parse_unix_ls): Use octal constants for
8483         permissions.  A compiler that doesn't accept octal constants is
8484         seriously broken and shouldn't be used -- octal constants were
8485         present in K&R C!
8486
8487 2001-01-20  Karl Eichwalder  <ke@suse.de>
8488
8489         * Makefile.in: Provide and use DESTDIR according to the Coding
8490         Standards.
8491
8492 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
8493
8494         * ftp-ls.c (ftp_parse_vms_ls): Make seconds optional in time
8495         specification.
8496
8497 2001-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
8498
8499         * url.c (parseurl): Don't strip trailing slash when u->dir is "/"
8500         because that strips the *leading* slash, thus forcing relative
8501         FTP retrieval.
8502
8503 2001-04-10  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8504
8505         * ftp.c (getftp): Convert initial FTP directory from VMS to UNIX
8506         notation for VMS servers.
8507         (ftp_retrieve_dirs): Do not prepend '/' to f->name when
8508         odir is an empty string.
8509
8510 2001-04-10  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8511
8512         * ftp-ls.c (ftp_parse_winnt_ls): Made the fix for AM/PM more
8513         effective. Suggested by Edward J. Sabol.
8514
8515 2001-04-10  Hrvoje Niksic  <hniksic@arsdigita.com>
8516
8517         * cookies.c (build_cookies_request): Use and sort cookies from all
8518         matching domains.
8519         (build_cookies_request): Check for duplicates before generating
8520         the `Cookies' header.
8521
8522         * main.c (main): Don't load cookies here.
8523         (main): Make loadcookies and savecookies call the correct command.
8524
8525         * http.c (http_loop): Load cookies on-demand.
8526
8527 2001-04-09  Hrvoje Niksic  <hniksic@arsdigita.com>
8528
8529         * http.c (gethttp): Fix indentation of SSL ifdef.
8530
8531 2001-04-09  Hrvoje Niksic  <hniksic@arsdigita.com>
8532
8533         * ftp.c (ftp_retrieve_dirs): Don't forcibly prepend "/" to u->dir;
8534         that hack is no longer necessary.
8535         (getftp): Prepend initial directory to *non*-absolute u->dir's.
8536
8537 2001-04-09  Hrvoje Niksic  <hniksic@arsdigita.com>
8538
8539         * init.c (cmd_file): New function.
8540         (enable_tilde_expansion): New variable.
8541         (run_wgetrc): Use it.
8542         (cmd_file): Use it.
8543
8544 2001-04-08  Hrvoje Niksic  <hniksic@arsdigita.com>
8545
8546         * init.c: Include cookie-related options.
8547
8548         * main.c (main): Include cookie-specific options.
8549         (main): Load cookies before download is finished.
8550         (main): Save cookies when done.
8551
8552         * http.c (gethttp): Process the `Set-Cookie' header.
8553         (gethttp): Include cookies in the response.
8554
8555         * cookies.c: New file.
8556
8557 2001-04-08  Hrvoje Niksic  <hniksic@arsdigita.com>
8558
8559         * utils.c (datetime_str): New function.
8560
8561 2001-04-08  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8562
8563         * ftp-ls.c (ftp_parse_winnt_ls): The AM/PM change did assume
8564         12:01PM == 00:01, which was obviously wrong. Taken care of this
8565         anomaly.
8566
8567         * ChangeLog: Removed an excess conflict marker. Reformatted the
8568         entry by Philipp Thomas from 2001-03-09.
8569
8570         * ftp-ls.c (ftp_parse_winnt_ls): Ensure that adjusted PM hours lay
8571         between 0 and 23. Elminate unused variable `sec'.
8572
8573 2001-04-08  Hrvoje Niksic  <hniksic@arsdigita.com>
8574
8575         * hash.c (hash_table_count): New function.
8576
8577 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8578
8579         * utils.c (read_file): Cast MAP_FAILED to char *.  Enforced by
8580         Digital Unix cc.
8581
8582 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8583
8584         * config.h.in: Oops, do the namespace tweaks only on systems we
8585         know about.
8586
8587 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8588
8589         * hash.c: Include <string.h>.
8590
8591 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8592
8593         * config.h.in: Define "compilation environment" options that work
8594         under Linux and Solaris.  To be reviewed on other OS'es.
8595
8596 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8597
8598         * http.c (gethttp): Prepend literal newline with `\n\'.
8599
8600 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8601
8602         * sysdep.h: Don't define VERY_LONG_FORMAT.
8603
8604         * utils.c (very_long_to_string): New function.
8605         (legible_very_long): Use it; don't use VERY_LONG_FORMAT.
8606
8607 2001-04-04  Christian Fraenkel  <christian.fraenkel@gmx.net>
8608
8609         * url.c (parse_uname): Would run past the end of the string if the
8610         username was present, but the URL did not contain a slash, e.g.
8611         http://foo:bar@myhost.
8612
8613 2001-04-03  KOJIMA Hajime  <kjm@rins.ryukoku.ac.jp>
8614
8615         * http.c (http_atotm): Use %A instead of %a to match full
8616         weekday.  (On most systems there is no difference.)
8617
8618 2001-04-03  Paul Bludov  <paul@ozero.net>
8619
8620         * mswindows.c (sleep): Use SleepEx() instead of Sleep().
8621         (ws_changetitle): Use alloca() instead of malloc() to avoid memory
8622         leak.
8623         (ws_mypath): Use GetModuleFileName instead of argv[0].
8624         (ws_startup): Use data.wVersion for comparison.
8625
8626 2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
8627
8628         * http.c (http_loop): Ditto.
8629
8630         * ftp.c (ftp_loop_internal): Made the check whether to continue
8631         retrieval `-O'-friendly.
8632
8633 2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
8634
8635         * netrc.c (parse_netrc): Don't trim the line endings explicitly;
8636         they will be handled as whitespace.
8637         (parse_netrc): Correctly handle lines that end with whitespace.
8638
8639 2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
8640
8641         * retr.c (retrieve_url): New variable global_download_count used
8642         to identify first retrieval.
8643
8644         * ftp.c (getftp): Ditto.
8645
8646         * http.c (gethttp): Rewind opt.dfp only on first retrieval.
8647
8648 2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
8649
8650         * init.c (cmd_address): Heap-allocate the address that gets stored
8651         to CLOSURE.  Old code would simply assign an address on the stack.
8652
8653 2001-04-01  Nicolas Lichtmaier <nick@debian.org>
8654
8655         * ftp.c (ftp_get_listing): Propagate error status.
8656         (ftp_retrieve_glob): Use it.
8657         (ftp_loop): Ditto.
8658
8659 2001-04-01  Nicolas Lichtmaier <nick@debian.org>
8660
8661         * main.c (main): Add -C to the string that is the third arg to
8662         getopt_long().
8663
8664 2001-04-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8665
8666         * ftp.c (getftp): Don't start the download from scratch if `-c'
8667         was specified, but the file is already fully downloaded.
8668
8669         * http.c (gethttp): Don't truncate a pre-existing file if `-c' was
8670         specified and the server doesn't support continued download.
8671         (gethttp): Don't start the download from scratch if `-c' was
8672         specified, but the file is already fully downloaded.
8673
8674 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
8675
8676         (recursive_retrieve): Don't clear the hash tables at this point at
8677         all; it interferes with the normal operation of register_download.
8678
8679 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
8680
8681         * recur.c (recursive_retrieve): Clear the hash tables only when
8682         they are defined.
8683
8684 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
8685
8686         * http.c (gethttp): Make sure the socket is closed with
8687         CLOSE_INVALIDATE before we have drained the body.
8688
8689 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
8690
8691         * retr.c (retrieve_url): Call register_download() for downloaded
8692         files and register_html() for downloaded HTML files.
8693
8694         * recur.c (register_download): New function; register here that a
8695         file has been downloaded, rather than in recursive_retrieve().
8696         (register_html): New function; enqueue the location of HTML files
8697         here rather than in recursive_retrieve().
8698
8699 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
8700
8701         * main.c (print_help): Use multiple fputs instead of a single ugly
8702         printf().
8703         (main): Consistently assign numbers >128 to options without a
8704         corresponding character.
8705
8706 2001-03-09  Philipp Thomas  <pthomas@suse.de>
8707
8708         * safe-ctype.h: New file. Locale independent ctype.h replacement
8709         taken from libiberty.
8710
8711         * safe-ctype.c: New file. Tables for above.
8712
8713         * Makefile.in: Add safe-ctype$o to OBJS.  Add dependencies for
8714         safe-ctype$o.
8715
8716         * cmpt.c: Remove include of ctype.h. Use ISSPACE instead of
8717         isspace.
8718
8719         * ftp-basic.c: Don't include ctype.h.
8720
8721         * ftp-ls.c: Likewise.
8722
8723         * ftp.c: Likewise.
8724
8725         * headers.c: Likewise.
8726
8727         * host.c: Likewise.
8728
8729         * html-parse.c: Likewise.
8730
8731         * html-url.c: Likewise.
8732
8733         * http.c: Likewise.
8734
8735         * init.c: Likewise.
8736
8737         * main.c: Likewise. Set LC_CTYPE along with LC_MESSAGES.
8738
8739         * netrc.c: Likewise.
8740
8741         * recur.c: Likewise.
8742
8743         * retr.c: Likewise.
8744
8745         * snprintf.c: Replace ctype.h with safe-ctype.h. Use ISDIGIT
8746         instead of isdigit.
8747
8748         * sysdep.h: Remove defines of ctype macros as they aren't needed
8749         for safe-ctype-h.
8750
8751         * url.c: Don't include ctype.h.
8752
8753         * utils.c: Likewise.
8754
8755         * wget.h: Include safe-ctype.h.
8756
8757 2001-03-27  Dan Harkless  <wget@harkless.org>
8758
8759         * Makefile.in: Moved top_builddir out of "User configuration
8760         section" of top Makefile and analogous spot in this one.
8761
8762 2001-03-17  Dan Harkless  <wget@harkless.org>
8763
8764         * Makefile.in: Include @SSL_INCLUDES@ substition in INCLUDES.
8765         Define top_builddir.  Link wget with libtool so the user doesn't
8766         have to supply a bunch of custom environment variables to
8767         correctly link with the OpenSSL shared libraries.
8768
8769 2001-03-06  Hack Kampbjorn  <hack@hackdata.com>
8770
8771         * http.c (gethttp): skip :port in host header if it is the
8772         DEFAULT_HTTPS_PORT when using SSL.
8773
8774         * url.c: move the #define of DEFAULT_HTTP_PORT, DEFAULT_FTP_PORT
8775         and DEFAULT_HTTPS_PORT to the header file so it can be use in the
8776         rest of the code.
8777         * url.h: Ditto
8778
8779 2001-03-01  Jonas Jensen  <bones@huleboer.dk>
8780
8781         * retr.c (show_progress): Correctly calculate the number of bytes
8782         in the first line of the download that have been actually
8783         downloaded in this run.
8784
8785 2001-02-23  Dan Harkless  <wget@harkless.org>
8786
8787         * main.c (print_help): --help documentation for -N said it would
8788         re-download files if they had the _same_ timestamp on server.
8789         (print_help): -nr belongs in "FTP options" section of --help
8790         output, not "Recursive retrieval" section.  Alphabetized FTP
8791         options by long option name.
8792
8793 2001-02-16  Dan Harkless  <wget@harkless.org>
8794
8795         * init.c (commands): Hack Kampbjørn <hack@hackdata.com> discovered
8796         that "httpsproxy" had been inserted into commands[] out of
8797         alphabetical order, causing "BUG: unknown command `httpuser'".
8798
8799 2001-02-13  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8800
8801         * ftp-ls.c (ftp_parse_ls): Added support of ST_MACOS (Unix-like
8802         listing without correct permissons).
8803
8804         * ftp.h (stype): Added ST_MACOS to identify the NetPresenz MacOS
8805         FTP server.
8806
8807         * ftp.c (ftp_retrieve_list): New mirroring logic: A remote file
8808         shall be donwloaded only when it's newer than the local copy or
8809         when it has the same timeestamp but its size is different. ST_VMS
8810         and ST_MACOS as special cases that lie about file size.
8811
8812         * ftp-ls.c (ftp_parse_ls): Support for ST_MACOS.
8813
8814         * Makefile.in: Removed dependency on ftpparse library due to unclear
8815         copyright issues and absence of any feedback to our queries.
8816
8817         * ftp-ls.c: Removed dependency on ftpparse library due to unclear
8818         copyright issues and absence of any feedback to our queries.
8819         (ftp_parse_ls): Added a warning message when remote server system
8820         does not seem to be suported by wget.
8821         (ftp_parse_vms_ls): New function for parsing VMS ftp
8822         server listing output.
8823         (clean_line): New function responsible for removing
8824         end-of-line characters from FTP listing texts.
8825
8826         * ftp.c (getftp): Global variables pwd and host_type are now
8827         member of the ccon structure under names ccon.id and ccon.rs.
8828
8829         * ftp.h (struct ccon): Added formed global variables from ftp.c,
8830         enum stype rs (remote system identification) and char *id (initial
8831         working directory), as suggested by Hrvoje.
8832
8833         * url.c (parse_uname): Added support for passwords containing '@'
8834         characters.
8835         (skip_uname): Ditto.
8836
8837 2001-02-11  Hrvoje Niksic  <hniksic@arsdigita.com>
8838
8839         * ftp.c (ftp_loop): Reset con.
8840
8841 2001-01-06  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8842
8843         * url.c (parse_uname): Added support for passwords containing '@'
8844         characters.
8845         (skip_uname): Ditto.
8846
8847 2001-02-11  Hack Kampbjørn  <hack@hackdata.com>
8848
8849         * url.c (parseurl): Debug-print u->ftp_type.
8850
8851 2001-02-11  Hrvoje Niksic  <hniksic@arsdigita.com>
8852
8853         * ftp.c (ftp_loop_internal): Disable padding.
8854         (getftp): Ditto.
8855
8856         * http.c (http_loop): Disable padding.
8857
8858         * retr.c (show_progress): Use it to enable padding.
8859
8860         * retr.c (rate): Optional parameter PAD for padding the rate.
8861
8862 2001-02-10  Hrvoje Niksic  <hniksic@arsdigita.com>
8863
8864         * retr.c (show_progress): Make sure that the last output line
8865         includes progress.
8866
8867 2001-02-10  Jonas Jensen  <bones@huleboer.dk>
8868
8869         * retr.c (show_progress): Print the download rate along with the
8870         percentages.
8871         Along with Anders Thorsby <anders@thorsby.dk>.
8872
8873 2001-02-10  Tim Mooney  <mooney@dogbert.cc.ndsu.NoDak.edu>
8874
8875         * ftp.h: Rename enums `command' to `wget_ftp_command' and
8876         `fstatus' to `wget_ftp_status' because old names clash with Tru64
8877         net/if.h.
8878
8879 2001-02-08  Christian Fraenkel <christian.fraenkel@gmx.net>
8880
8881         * gen_sslfunc.c: verify_callback is now static
8882
8883         * gen_sslfunc.c (init_ssl): load certificate if specified
8884
8885         * gen_sslfunc.c (ssl_printerr): new function
8886
8887         * init.c: added new --sslcertfile and --sslcertkey switches
8888
8889         * main.c: ditto
8890
8891         * options.h: ditto
8892
8893         * http.c (gethttp): abort when init_ssl fails
8894
8895 2001-01-23  Herold Heiko  <Heiko.Herold@previnet.it>
8896
8897         * mswindows.h: Include <malloc.h>; it's needed for alloca().
8898
8899 2001-01-10  Dan Harkless  <wget@harkless.org>
8900
8901         * url.c (str_url): Clarified this function's comment header after
8902         Hrvoje answered my question on the list as to when hide != 1.
8903         Also Hrvoje pointed out I need to use xstrdup() on the string literal.
8904
8905 2001-01-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8906
8907         * connect.c (bindport): Declare addrlen as int.  Diagnosed by
8908         Drazen Kacar <dave@arsdigita.com>.
8909         (conaddr): Ditto.
8910
8911 2001-01-09  Dan Harkless  <wget@harkless.org>
8912
8913         * html-url.c: A bunch of fixup of `--page-requisites'-related
8914         comments to reflect Hrvoje's changes to my code when transplanting
8915         it into this new file, to fix spelling mistakes, to clarify, etc.
8916
8917         * url.c (write_backup_file): Clarified a comment.
8918         (str_url): Henrik van Ginhoven pointed out on the list that we
8919         shouldn't give away the number of characters in the password by
8920         replacing each character with a 'x'.  Use "<password>" instead.
8921
8922         * ftp.c (ftp_retrieve_dirs): The bug where recursion into FTP
8923         directories didn't work if logging in put you in a directory other
8924         than "/" is fixed now.  Removed the comment here warning of the bug.
8925
8926         * main.c (print_help): --continue's description was misleading.
8927         We don't "restart", we "resume".  Also, better to say
8928         "partially-downloaded file" rather than just "existing file".
8929
8930 2001-01-06  Dan Harkless  <wget@harkless.org>
8931
8932         * ChangeLog: The '[Not in 1.6 branch.]'s were decided not to be
8933         the best way to go about my aim.  Removed them in favor of:
8934
8935         * ChangeLog-branches/1.6_branch.ChangeLog: New file.
8936
8937 2001-01-04  Hrvoje Niksic  <hniksic@arsdigita.com>
8938
8939         * url.c (replace_attr): New function, to be used by both
8940         TO_COMPLETE and TO_RELATIVE case in convert_links.
8941         (find_fragment): New function for finding URL fragments.
8942         (replace_attr): Better handle the case where the original string
8943         is not quoted.  Use find_fragment.
8944         (convert_links): Use replace_attr().
8945
8946 2000-12-31  Dan Harkless  <wget@harkless.org>
8947
8948         * ChangeLog: Since this flat file doesn't have multiple branches,
8949         looking at the dates would make you think that things went into
8950         1.6 that actually just went into the 1.7-dev branch.  Added "[Not
8951         in 1.6 branch.]" where appropriate to clarify.
8952
8953 2000-12-30  Dan Harkless  <wget@harkless.org>
8954
8955         * ftp.c, http.c:  Applied Hack Kampbjørn <hack@hackdata.com>'s
8956         patch to deal with h_errno not being defined in netdb.h under Cygwin.
8957
8958 2000-12-18  Csaba Raduly  <csaba.raduly@sophos.com>
8959
8960         * sysdep.h: Include <malloc.h> and <io.h> under Watcom.
8961
8962 2000-12-17  Igor Khristophorov  <igor@atdot.org>
8963
8964         * http.c (check_end): Fix test for '+' or '-'.
8965
8966 2000-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
8967
8968         * url.c (parseurl): Rename inner loop var from i to ind to avoid
8969         clash with the function top-level-declared variable i.
8970         (str_url): Likewise, rename inner-loop i to j.
8971
8972         * recur.c (parse_robots): Don't declare LEN at top of function.
8973         (robots_match): Renamed parameter FORBIDDEN to avoid hiding of
8974         global variable.
8975
8976         * main.c (main): Change erroneous use of bitwise and to logical.
8977
8978         * init.c (cmd_address): Don't heap-allocate `sin'; it can be on
8979         the stack because it will be copied to closure.
8980
8981         Thanks to Csaba Raduly's run of PC-LINT over the sources.
8982
8983 2000-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
8984
8985         * http.c (basic_authentication_encode): Use xmalloc(), not
8986         malloc().  Thanks to Csaba Raduly's run of PC-LINT over the
8987         sources.
8988
8989 2000-12-17  Csaba Raduly  <csaba.raduly@sophos.com>
8990
8991         * sysdep.h: Test for __EMX__ rather than for EMXOS2 for OS/2
8992         compilation.
8993
8994 2000-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
8995
8996         * mswindows.c: Include <errno.h>.
8997
8998         * gen_sslfunc.c: Include <errno.h>.
8999
9000         * ftp-basic.c: Don't attempt to declare errno or h_errno because
9001         they're not used.
9002
9003         * main.c: Include <errno.h> because errno is used.
9004
9005         * ftp.c: Ditto.
9006
9007         * http.c: Include <netdb.h> for h_errno.
9008
9009 2000-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
9010
9011         * html-parse.c (advance_declaration): MSVC assert() chokes on
9012         '\"'.  Use '"' instead.
9013
9014 2000-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
9015
9016         * utils.c (xfree_real): Removed.
9017         (xfree_debug): Just call free().
9018
9019         * wget.h (xfree): Make it an alias for free.
9020
9021 2000-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
9022
9023         * http.c (http_loop): Furthermore, touch output_document only if
9024         it is known to be an existing regular file.
9025
9026 2000-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
9027
9028         * ftp.c (ftp_retrieve_list): Ditto.
9029
9030         * http.c (http_loop): Touch output_document if that is used for
9031         output.
9032
9033 2000-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
9034
9035         * http.c: Include gen_sslfunc.h after including Wget's headers.
9036         (persistent_available_p): Needed coma before `int ssl'.
9037
9038 2000-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
9039
9040         * ftp.c (ftp_loop_internal): Ditto.
9041
9042         * http.c (http_loop): Use it.
9043
9044         * retr.c (sleep_between_retrievals): New function that handles the
9045         logic of opt.wait and opt.waitretry.
9046
9047 2000-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
9048
9049         * rbuf.h: Implement only a single version of RBUF_READCHAR, using
9050         rbuf_read_bufferful when the buffer is depleted.
9051
9052         * rbuf.c (rbuf_read_bufferful): New function.
9053
9054 2000-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
9055
9056         * gen_sslfunc.h: Use ansi2knr style function declarations.
9057
9058         * gen_sslfunc.c: Reformat according to the GNU coding standards.
9059         More should be done.
9060
9061         * http.c (persistent_available_p): Place the cheap SSL test nearer
9062         the top of the function.
9063         (CLOSE_FINISH, CLOSE_INVALIDATE): Define only one version of each.
9064
9065 2000-12-05  Hrvoje Niksic  <hniksic@arsdigita.com>
9066
9067         * url.c (init_unsafe_char_table): Reinstate space as an unsafe
9068         char.
9069
9070 2000-12-03  Christian Fraenkel <christian.fraenkel@gmx.net>
9071
9072         * Makefile.in: added gen_sslfunc object
9073         * config.h.in: added HAVE_SSL define
9074         * connect.c: changed select_fd from static int to int
9075         * connect.h: ditto
9076         * gen_sslfunc.h: New file
9077         * gen_sslfunc.c: ditto
9078         * http.c: added HTTPS fuctionality
9079         * retrc.c: ditto
9080         * url.c: ditto
9081         * init.c: added opt.httpsproxy
9082         * options.h: ditto
9083         * rbuf.h: added alternate rbuf struct
9084         * wget.h: added CONSSLERR
9085         * rbuf.c: ditto
9086
9087         * http.c: Added HTTPS fuctionality.
9088
9089         * retrc.c: Ditto.
9090
9091         * url.c: Ditto.
9092
9093         * init.c: Added opt.httpsproxy.
9094
9095         * options.h: Ditto.
9096
9097         * rbuf.h: Added alternate rbuf struct.
9098
9099         * wget.h: Added CONSSLERR.
9100
9101         * rbuf.c: Ditto.
9102
9103 2000-11-30  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
9104
9105         * ftp-ls.c (ftp_parse_unix_ls): Added second parameter
9106         "ignore_perms" to ignore file and directory permissions for
9107         Windows NT FTP server listings.
9108         (ftp_parse_winnt_ls): New function.
9109         (ftp_parse_ls): Parses UNIX and Windows NT listings
9110         separately. Simple heuristics for distinguishing between UNIX and
9111         MS-DOS-like FTP listing provided by Windows NT FTP service.
9112
9113 2000-11-18  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
9114
9115         * ftpparse.c, ftpparse.h: New files.
9116
9117         * ftp-ls.c (ftp_parse_ls): Use ftp_parse_unix_ls for UNIX servers
9118         only. Use ftp_parse_nonunix_ls otherwise.
9119         (ftp_parse_nonunix_ls): Stub to the ftpparse library handling all
9120         exotic FTP servers.
9121
9122         * ftp.h (stype): New enum, distinguishes UNIX, VMS, and "other"
9123         FTP servers.
9124
9125         * ftp.c: New static wariables host_type, pwd, and pwd_len.
9126         (getftp): Support for VMS. Support for FTP servers that do not
9127         place you in the root directory after login.
9128         (ftp_retrieve_list): VMS is silent about the real file size, issue
9129         a more appropriate message.
9130         (ftp_get_listing): Pass host_type to ftp_parse_ls.
9131
9132         * ftp-basic.c (ftp_pwd, ftp_syst): New functions.
9133
9134 2000-11-30  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
9135
9136         * ftp-ls.c (ftp_parse_unix_ls): Added second parameter
9137         "ignore_perms" to ignore file and directory permissions for
9138         Windows NT FTP server listings.
9139         (ftp_parse_winnt_ls): New function.
9140         (ftp_parse_ls): Parses UNIX and Windows NT listings
9141         separately. Simple heuristics for distinguishing between UNIX
9142         and MS-DOS-like FTP listing provided by Windows NT FTP service.
9143
9144 2000-11-29  John Summerfield  <summer@OS2.ami.com.au>
9145
9146         * netrc.c (parse_netrc): Get rid of line ending.
9147
9148 2000-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
9149
9150         * ftp.c (ftp_retrieve_list): Undo typo "fix" until resolution by
9151         Dan.
9152
9153 2000-11-24  Karl Eichwalder  <ke@suse.de>
9154
9155         * main.c (print_help): Untabify.
9156
9157 2000-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
9158
9159         * utils.c (xrealloc_debug): Do the unregister/register thing only
9160         if the pointer has actually changed.
9161         (xmalloc_real): Declare `static' in DEBUG_MALLOC builds.
9162         (xfree_real): Ditto.
9163         (xrealloc_real): Ditto.
9164         (xstrdup_real): Ditto.
9165
9166 2000-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
9167
9168         * ftp.c (getftp): ftp_getaddress() returns a malloc'ed copy of the
9169         string; no need to strdup() it.
9170         (getftp): Make pwd_len a local variable.
9171         (ftp_loop): Free PWD before returning.
9172
9173         * init.c (cleanup): Free opt.ftp_pass only if it's non-NULL.
9174
9175 2000-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
9176
9177         * all: Use xfree() instead of free.
9178
9179         * utils.c (xfree): New function.
9180
9181 2000-11-21  Hrvoje Niksic  <hniksic@arsdigita.com>
9182
9183         * url.c (convert_links): HTML-quote the converted string.
9184
9185         * utils.c (html_quote_string): Move here from ftp-ls.c
9186         (html_quote_string): Make non-static; declare in utils.h.
9187         (html_quote_string): Convert SP to &#32;.
9188
9189 2000-11-21  Hrvoje Niksic  <hniksic@arsdigita.com>
9190
9191         * ftp.c (getftp): Reformat Jan's code according to GNU coding
9192         standards; remove (debugging?) printf's; use '\0' for the ASCII
9193         zero character.  Use alloca() instead of malloc() for
9194         inter-function temporary allocations.
9195
9196 2000-11-18  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
9197
9198         * ftpparse.c, ftpparse.h: New files.
9199
9200         * ftp-ls.c (ftp_parse_ls): Use ftp_parse_unix_ls for UNIX servers
9201         only. Use ftp_parse_nonunix_ls otherwise.
9202         (ftp_parse_nonunix_ls): Stub to the ftpparse library handling all
9203         exotic FTP servers.
9204
9205         * ftp.h (stype): New enum, distinguishes UNIX, VMS, and "other"
9206         FTP servers.
9207
9208         * ftp.c: New static wariables host_type, pwd, and pwd_len.
9209         (getftp): Support for VMS. Support for FTP servers that do not
9210         place you in the root directory after login.
9211         (ftp_retrieve_list): VMS is silent about the real file size, issue
9212         a more appropriate message.
9213         (ftp_get_listing): Pass host_type to ftp_parse_ls.
9214
9215         * ftp-basic.c (ftp_pwd, ftp_syst): New functions.
9216
9217 2000-11-21  Hrvoje Niksic  <hniksic@arsdigita.com>
9218
9219         * hash.c (hash_table_put): Don't overwrite deleted mappings.
9220
9221 2000-11-21  Hrvoje Niksic  <hniksic@arsdigita.com>
9222
9223         * hash.c (find_mapping): New function.
9224         (hash_table_get): Use it.
9225         (hash_table_get_pair): Ditto.
9226         (hash_table_exists): Ditto.
9227         (hash_table_remove): Ditto.
9228         (hash_table_remove): Really delete the entry if the mapping
9229         following LOCATION is empty.
9230
9231         * utils.c (string_set_add): Check whether the element has existed
9232         before.
9233
9234         * hash.c (hash_table_get_pair): New function.
9235
9236 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
9237
9238         * http.c (http_process_type): Ignore trailing whitespace; use
9239         strdupdelim().
9240
9241         * recur.c (recursive_retrieve): Use the new `convert' field.
9242         (convert_all_links): Ditto.
9243         (convert_all_links): Don't respect meta_disallow_follow.
9244
9245         * html-url.c (handle_link): Fill out link_relative_p and
9246         link_complete_p.
9247
9248         * url.h (struct _urlpos): Make elements more readable.
9249
9250         * recur.c (recursive_retrieve): Call slist_prepend instead of
9251         slist_append.
9252         (convert_all_links): Call slist_nreverse before iterating through
9253         urls_html.
9254
9255         * utils.c (slist_prepend): New function.
9256         (slist_nreverse): Ditto.
9257
9258 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
9259
9260         * http.c (check_end): Constify.
9261
9262 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
9263
9264         * http.c (http_loop): If username and password are known, try the
9265         `Basic' authentication scheme by default.
9266
9267         * connect.h: Declare test_socket_open.
9268
9269 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
9270
9271         * version.c: Bump version from 1.5.3+dev to 1.7-dev.
9272
9273 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
9274
9275         * http.c (gethttp): Don't use the return value of sprintf().
9276         (gethttp): Inhibit keep-alive if opt.http_keep_alive is 0.
9277
9278 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
9279
9280         * recur.c (recursive_retrieve): Print the "so we don't load"
9281         debugging message only if we really don't load.
9282
9283         * http.c (gethttp): Inhibit keep-alive if proxy is being used.
9284         (gethttp): Don't request keep-alive if keep-alive is inhibited.
9285
9286 2000-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
9287
9288         * http.c (gethttp): Make the HTTP persistent connections more
9289         robust.
9290
9291 2000-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
9292
9293         * retr.c (get_contents): If use_expected, make sure that the
9294         appropriate amount of data is being read.
9295
9296         * http.c (gethttp): Check for both `Keep-Alive: ...' and
9297         `Connection: Keep-Alive'.
9298
9299         * wget.h (DEBUGP): Call debug_logprintf only if opt.debug is
9300         turned on.
9301
9302 2000-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
9303
9304         * http.c (connection_available_p): Use it.
9305
9306         * connect.c (test_socket_open): New function.
9307
9308         * http.c (gethttp): Support persistent connections.  Based on the
9309         ideas, and partly on code, by Sam Horrocks <sam@daemoninc.com>.
9310         (register_persistent): New function.
9311         (connection_available_p): Ditto.
9312         (invalidate_connection): Ditto.
9313
9314 2000-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
9315
9316         * url.c (convert_links): Handle UREL2ABS case.
9317
9318         * recur.c (recursive_retrieve): Instead of the list
9319         urls_downloaded, use hash tables dl_file_url_map and
9320         dl_url_file_map.
9321         (convert_all_links): Use them to retrieve data.
9322
9323         * host.c (clean_hosts): Free the hash tables.
9324
9325         * main.c (private_initialize): Call host_init().
9326
9327         * host.c (store_hostaddress): Use a saner, hash table-based data
9328         model.
9329         (realhost): Ditto.
9330         (host_init): Initialize the hash tables.
9331
9332 2000-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
9333
9334         * utils.c (slist_append): Eviscerate NOSORT.  Hash tables are now
9335         used for what the sorted slists used to be used for.
9336         (slist_contains): Don't rely on the list being sorted.
9337         (slist_append): Simplify the code.
9338
9339         * recur.c (recursive_cleanup): Use free_string_set.
9340
9341         * utils.c (string_set_add, string_set_exists, string_set_free):
9342         New functions for easier freeing of hash tables whose keys are
9343         strdup'ed strings.
9344
9345         * recur.c (recursive_retrieve): Use the hash table functions for
9346         storing undesirable URLs.
9347
9348         * hash.c: New file.
9349
9350 2000-11-17  Hrvoje Niksic  <hniksic@arsdigita.com>
9351
9352         * main.c (private_initialize): Call url_init.
9353         (main): Call private_initialize.
9354
9355         * url.c (unsafe_char_table): New table.
9356         (UNSAFE_CHAR): Use it.
9357         (init_unsafe_char_table): New function.
9358         (url_init): New function; call init_unsafe_char_table.
9359
9360 2000-11-16  Hrvoje Niksic  <hniksic@arsdigita.com>
9361
9362         * mswindows.h: Define snprintf and vsnprintf to _snprintf and
9363         _vsnprintf respectively.
9364
9365 2000-11-15  Hrvoje Niksic  <hniksic@arsdigita.com>
9366
9367         * config.h.in: Do the _XOPEN_SOURCE and _SVID_SOURCE things only
9368         on Linux.
9369
9370 2000-11-15  Hrvoje Niksic  <hniksic@arsdigita.com>
9371
9372         * html-url.c (handle_link): Handle HTML fragment identifiers.
9373
9374         * recur.c (recursive_retrieve): If norobot info is respected and
9375         the file is specified not to be followed by robots, respect that.
9376
9377         * html-url.c (collect_tags_mapper): Handle <meta name=robots
9378         content=X>.  For us the important cases are where X is NONE or
9379         where X contains NOFOLLOW.
9380         (get_urls_html): Propagate that information to the caller.
9381
9382 2000-11-13  Hrvoje Niksic  <hniksic@arsdigita.com>
9383
9384         * url.c (convert_links): Unlink the file we might be reading from
9385         before writing to it.
9386         (convert_links): Use alloca instead of malloc for
9387         filename_plus_orig_suffix.
9388
9389 2000-11-12  Hrvoje Niksic  <hniksic@arsdigita.com>
9390
9391         * host.c (realhost): Add HOST to the list with quality==0 only if
9392         it wasn't already there.
9393         Based on analysis by Lu Guohan <feng@public.bjnet.edu.cn>.
9394
9395 2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
9396
9397         * url.c (get_urls_file): Ditto.
9398         (convert_links): Ditto.
9399
9400         * html-url.c (get_urls_html): Use read_file() instead of
9401         load_file().
9402
9403         * utils.c (read_file): New function, instead of the old
9404         load_file().
9405         (read_file_free): Ditto.
9406
9407         * url.c (findurl): Search only for the supported protocols.
9408         (convert_links): Use fwrite() when writing out a region of
9409         characters.
9410
9411 2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
9412
9413         * ftp-ls.c: Move html_quote_string and ftp_index here.
9414
9415         * url.c: Remove get_urls_html, since that's now in html-url.c.
9416
9417         * html-url.c: New file.
9418
9419         * html-parse.c: New file.
9420
9421 2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
9422
9423         * init.c (run_wgetrc): Don't bother killing off '\r' since
9424         pars_line() skips whitespace at end of line anyway.
9425         (parse_line): Oops, it didn't.  Now it does.
9426
9427         * recur.c (parse_robots): Ditto here.
9428
9429         * ftp-ls.c (ftp_parse_unix_ls): Kill off the newline character
9430         manually because read_whole_line no longer does.
9431
9432         * utils.c (read_whole_line): Rewrite to: a) use less memory
9433         (reallocates to needed size after work), b) work faster -->
9434         fgets() instead of getc, c) be more correct --> doesn't kill the
9435         newline character at the end of line.
9436
9437 2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
9438
9439         * init.c (comind): Initialize MAX to array size - 1.
9440
9441 2000-11-08  Hrvoje Niksic  <hniksic@arsdigita.com>
9442
9443         * url.c (construct): Changed last_slash[-1] to *(last_slash - 1).
9444         Suggested by Edward J. Sabol.
9445
9446 2000-11-08  Hrvoje Niksic  <hniksic@arsdigita.com>
9447
9448         * url.c (construct): Handle the case where host name is not
9449         followed by a slash.
9450
9451 2000-11-06  Hrvoje Niksic  <hniksic@arsdigita.com>
9452
9453         * init.c: commands[] need to be sorted!  ("base" wasn't.)
9454
9455 2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
9456
9457         * wget.h (DO_REALLOC_FROM_ALLOCA): Use braces to disambiguate
9458         `if'.
9459
9460 2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
9461
9462         * url.c (construct): Insert unneeded initialization for the
9463         compiler to shut up.
9464
9465         * config.h.in: Define _XOPEN_SOURCE to 500 to get the prototype
9466         for strptime() (*duh*).  Define _SVID_SOURCE to get S_IFLNK which
9467         otherwise gets lost when you define _XOPEN_SOURCE.
9468
9469         * utils.c (touch): Include the file name in the error message.
9470         From Debian.
9471
9472 2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
9473
9474         * log.c (logvprintf): Use vsnprintf() in all cases.  If necessary,
9475         resize the buffer to fit the formated message.  That way, messages
9476         of arbitrary size may be printed.
9477         (logvprintf): Use saved_append() to optionally log the last
9478         several lines of output.
9479         (logputs): Ditto.
9480         (log_close): Adapt to new data structures.
9481         (log_dump): Ditto.
9482         (redirect_output): Print messages to stderr, not to stdout.
9483
9484         * log.c (saved_append_1): New function.  Replaces the old logging
9485         system ("log all output until 10M characters") with a new, much
9486         more reasonable one ("log last screenful of text").
9487         (saved_append): New function; call saved_append_1.
9488         (free_log_line): New function.
9489
9490 2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
9491
9492         * url.c (construct): Fix comment.
9493         (find_last_char): Document.
9494
9495 2000-11-04  Hrvoje Niksic  <hniksic@arsdigita.com>
9496
9497         * snprintf.c: New file.
9498
9499 2000-11-03  Hrvoje Niksic  <hniksic@arsdigita.com>
9500
9501         * wget.h: If HAVE_STDARG_H is not defined, don't declare argument
9502         types to logprintf() and debug_logprintf().
9503
9504 2000-11-02  Hrvoje Niksic  <hniksic@arsdigita.com>
9505
9506         * ftp.c (ftp_loop_internal): Hide the password from the URL when
9507         printing non-verbose.  Problem spotted by Dariusz Mlynarczyk
9508         <darekm@bydg.lomac.com.pl>.
9509
9510 2000-11-02  Junio Hamano  <junio@twinsun.com>
9511
9512         * ftp-basic.c (ftp_login): Make comparison case-insensitive.
9513
9514 2000-11-02  Tyler Riddle  <triddle@liquidmarket.com>
9515
9516         * http.c (known_authentication_scheme_p): Recognize NTML
9517         authentication.
9518         (create_authorization_line): Treat NTML the same as `Basic'.
9519
9520 2000-11-02  Hrvoje Niksic  <hniksic@arsdigita.com>
9521
9522         * retr.c (retrieve_url): Free url before returning.
9523         (retrieve_url): Free mynewloc before returning.
9524         Spotted by Mark A. Mankins <Mankins_Mark@prc.com>.
9525
9526 2000-11-02  Hrvoje Niksic  <hniksic@arsdigita.com>
9527
9528         * url.c (parseurl): Remove possible reading past the end of
9529         sup_protos[].  Spotted by Mark A. Mankins <Mankins_Mark@prc.com>.
9530
9531 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
9532
9533         * main.c (main): In case of opt.downloaded overflowing, print
9534         <overflow> instead of a totally bogus random value.
9535
9536         * retr.c (retrieve_from_file): Ditto.
9537
9538         * recur.c (recursive_retrieve): Ditto.
9539
9540         * main.c (main): Ditto.
9541
9542         * http.c (http_loop): Ditto.
9543
9544         * ftp.c (ftp_loop_internal): Use downloaded_increase() instead of
9545         `+=', and downloaded_exceeds_quota() instead of the simple-minded
9546         check.
9547         (ftp_retrieve_list): Ditto.
9548         (ftp_retrieve_dirs): Ditto.
9549         (ftp_retrieve_glob): Ditto.
9550
9551         * retr.c (downloaded_increase): New function.  Notice overflows of
9552         opt.downloaded.
9553         (downloaded_exceeds_quota): Make sure that opt.downloaded is not
9554         used if it overflowed.
9555
9556         * options.h (struct options): New member downloaded_overflow.
9557
9558 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
9559
9560         * wget.h (enum): Remove extra space after last enumeration.
9561
9562 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
9563
9564         * main.c (main): Use legible_very_long() for printing
9565         opt.downloaded.
9566
9567         * utils.c (legible_1): New function that operates on strings and
9568         does the brunt of legible()'s work.
9569         (legible): Use legible_1().
9570         (legible_very_long): New function; dump the argument with
9571         sprintf(), and call legible_1().
9572
9573         * options.h (struct options): Use VERY_LONG_TYPE for
9574         opt.downloaded.
9575
9576         * sysdep.h (VERY_LONG_TYPE): Define it to have a 64-bit or greater
9577         type.
9578
9579         * config.h.in: Make sure that SIZEOF_LONG and SIZEOF_LONG_LONG get
9580         defined.  Define HAVE_LONG_LONG if long long is available.
9581
9582 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
9583
9584         * utils.c (long_to_string): Update with a later, better version.
9585
9586 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
9587
9588         * url.c (path_simplify_with_kludge): New function.
9589         (path_simplify_with_kludge): Disable it.  Instead...
9590         (parse_dir): ...make sure that at this point the right thing is
9591         done, i.e. that "query" part of the URL (?...) is always assigned
9592         to the file, never to the directory portion of the path.
9593
9594 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
9595
9596         * retr.c (retrieve_url): Detect redirection cycles.
9597
9598 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
9599
9600         * url.c (get_urls_html): Decode HTML entities using
9601         html_decode_entities.
9602
9603         * html.c (htmlfindurl): Don't count the `#' in numeric entities
9604         (&#NNN;) as an HTML fragemnt.
9605         (html_decode_entities): New function.
9606
9607 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
9608
9609         * html.c (htmlfindurl): Fix recognition of # HTML fragments.
9610
9611 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
9612
9613         * url.c (construct): Rewritten for clarity.  Avoids the
9614         unnecessary copying and stack-allocation the old version
9615         performed.
9616
9617 2000-10-31  Hrvoje Niksic  <hniksic@arsdigita.com>
9618
9619         * ftp.c (getftp): Ditto.
9620
9621         * http.c (gethttp): Rewind the stream when retrying from scratch.
9622
9623 2000-10-31  Hrvoje Niksic  <hniksic@arsdigita.com>
9624
9625         * retr.c (retrieve_url): Use url_concat() to handle relative
9626         redirections instead of /ad hoc/ code.
9627
9628         * url.c (url_concat): New function encapsulating weird
9629         construct().
9630         (urllen_http_hack): New function.
9631         (construct): When constructing new URLs, recognize that `?' does
9632         not form part of the file name in HTTP.
9633
9634 2000-10-13  Adrian Aichner  <adrian@xemacs.org>
9635
9636         * retr.c: Add msec timing support for WINDOWS.
9637         * retr.c (reset_timer): GetSystemTime() on WINDOWS.
9638         * retr.c (elapsed_time): Calculate delta time to msec on WINDOWS.
9639
9640 2000-10-27  Dan Harkless  <wget@harkless.org>
9641
9642         * retr.c (retrieve_url): Manually applied T. Bharath
9643         <TBharath@responsenetworks.com>'s patch to get wget to grok
9644         illegal relative URL redirects.  Reformatted and re-commented it.
9645
9646 2000-10-23  Dan Harkless  <wget@harkless.org>
9647
9648         * connect.c (make_connection and bindport): Manually applied Rob
9649         Mayoff <mayoff@dqd.com>'s 1.5.3 patch to add --bind-address,
9650         changing coding style to GNU's.
9651
9652         * ftp.c (ftp_loop_internal): --delete-after wasn't implemented for
9653         files downloaded via FTP.  Per a comment, .listing files were not
9654         counted towards number of bytes and files downloaded because they're
9655         deleted anyway.  Well, they aren't under -nr, so count them then.
9656
9657         * init.c: Manually applied Rob Mayoff's 1.5.3 patch to add
9658         --bind-address, alphabetizing, changing coding style to GNU's,
9659         commenting, and renaming cmd_ip_address() to cmd_address() to
9660         imply hostnames also okay.
9661
9662         * main.c (main): --delete-after didn't delete the root of the
9663         tree.  Ignore --convert-links if --delete-after was specified.
9664         Manually applied Rob Mayoff's 1.5.3 patch to add --bind-address,
9665         fixing duplicate use of added-since-1.5.3 case value.
9666         (print_help): Clarified that --delete-after deletes local files.
9667         Rob forgot to add a line for his new --bind-address option.
9668
9669         * options.h (struct options): Manually applied Rob Mayoff's patch
9670         to add --bind-address (bind_address structure member).
9671
9672         * recur.c (recursive_retrieve): Improved comment; added DEBUGP().
9673         Ignore --convert-links if --delete-after was specified.
9674
9675         * retr.c (retrieve_from_file): Just added a DEBUGP().
9676
9677 2000-10-19  Dan Harkless  <wget@harkless.org>
9678
9679         * ftp.c (ftp_loop_internal): downloaded_file() enumerators changed.
9680         (getftp): Applied Piotr Sulecki <Piotr.Sulecki@ios.krakow.pl>'s
9681         patch to work around FTP servers that incorrectly respond to the
9682         "REST" command with the remaining size rather than the total file size.
9683
9684         * http.c (gethttp): Improved a comment and added code to tack on
9685         ".html" to text/html files without that extension when -E specified.
9686         (http_loop): Use new downloaded_file() enumerators and deal with
9687         the case of gethttp() called xrealloc() on u->local.
9688
9689         * init.c (commands): Added new "htmlextension" command.
9690         Also renamed John Daily's cmd_quad() to the more descriptive
9691         cmd_lockable_boolean(), alpha-sorted the CMD_DECLARE()s and
9692         removed duplicate cmd_boolean() declaration.
9693
9694         * main.c (print_help): Added my new -E / --html-extension option.
9695         (main): Undocumented --email-address option previously used -E synonym.
9696         Stole it away for the much more deserving --html-extension's use.
9697
9698         * options.h (struct options): Added html_extension field.
9699
9700         * url.c (convert_links): URL X that we saved as X.html locally due
9701         to -E needs to be backed up as X.orig, not X.html.orig.  Added comments.
9702         (downloaded_file): Now remembers if we added .html extension to a file.
9703
9704         * url.h (downloaded_file_t): Added extra enumerators to support above.
9705         (downloaded_file): Now takes and returns a downloaded_file_t.
9706
9707         * wget.h (unnamed "dt" enum): Added ADDED_HTML_EXTENSION enumerator.
9708
9709 2000-10-09  Dan Harkless  <wget@harkless.org>
9710
9711         * html.c (htmlfindurl): Added unneeded initialization to quiet warning.
9712
9713         * main.c (print_help): Clarified what --retr-symlinks does.
9714
9715 2000-09-15  John Daily  <jdaily@cyberdude.com>
9716
9717         * init.c: Add support for "always" and "never" values to allow
9718         .wgetrc to override commandline (useful e.g. with .pm files
9719         calling `wget --passive-ftp' when your firewall doesn't allow that).
9720
9721         * ftp.c (getftp): passive_ftp is first option to support always/never.
9722
9723 2000-08-30  Dan Harkless  <wget@harkless.org>
9724
9725         * ftp.c (ftp_retrieve_list): Use new INFINITE_RECURSION #define.
9726
9727         * html.c: htmlfindurl() now takes final `dash_p_leaf_HTML' parameter.
9728         Wrapped some > 80-column lines.  When -p is specified and we're at a
9729         leaf node, do not traverse <A>, <AREA>, or <LINK> tags other than
9730         <LINK REL="stylesheet">.
9731
9732         * html.h (htmlfindurl): Now takes final `dash_p_leaf_HTML' parameter.
9733
9734         * init.c: Added new -p / --page-requisites / page_requisites option.
9735
9736         * main.c (print_help): Clarified that -l inf and -l 0 both allow
9737         infinite recursion.  Changed the unhelpful --mirrior description
9738         to simply give the options it's equivalent to.  Added new -p option.
9739         (main): Added some comments; handle new -p / --page-requisites.
9740
9741         * options.h (struct options): Added new page_requisites field.
9742
9743         * recur.c: Changed "URL-s" to "URLs" and "HTML-s" to "HTMLs".
9744         Calculate and pass down new `dash_p_leaf_HTML' parameter to
9745         get_urls_html().  Use new INFINITE_RECURSION #define.
9746
9747         * retr.c: Changed "URL-s" to "URLs".  get_urls_html() now takes
9748         final `dash_p_leaf_HTML' parameter.
9749
9750         * url.c: get_urls_html() and htmlfindurl() now take final
9751         `dash_p_leaf_HTML' parameter.
9752
9753         * url.h (get_urls_html): Now takes final `dash_p_leaf_HTML' parameter.
9754
9755         * wget.h: Added some comments and new INFINITE_RECURSION #define.
9756
9757 2000-08-23  Dan Harkless  <wget@harkless.org>
9758
9759         * main.c (print_help): -B / --base was not mentioned.
9760
9761 2000-08-22  Dan Harkless  <wget@harkless.org>
9762
9763         * main.c (print_help): Modified -nc description to mention that it
9764         also prevents the creation of multiple versions of the same file
9765         with ".<number>" suffixes.
9766
9767 2000-07-14  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
9768
9769         * retr.c (retrieve_url): Consistently strdup opt.referer when
9770         setting u->referer.
9771
9772 2000-06-09  Dan Harkless  <wget@harkless.org>
9773
9774         * main.c (print_help): --help output for --waitretry was over 80 cols.
9775
9776 2000-06-09  Hrvoje Niksic  <hniksic@iskon.hr>
9777
9778         * url.c (encode_string): Fix comment.
9779         Suggested by Herold Heiko <Heiko.Herold@previnet.it>.
9780
9781 2000-06-01  Const Kaplinsky  <const@ce.cctpu.edu.ru>
9782
9783         * ftp.c (ftp_retrieve_list): Change permissions only on plain
9784         files.
9785
9786 2000-06-01  Hrvoje Niksic  <hniksic@iskon.hr>
9787
9788         * url.c (str_url): Print the port number only if it's different
9789         from the default port number for that protocol.
9790
9791 2000-05-22  Dan Harkless  <wget@harkless.org>
9792
9793         * main.c (print_help): Added --help line for Damir Dzeko
9794         <ddzeko@zesoi.fer.hr>'s until-now-undocumented --referer option.
9795         Removed comments that --referer and --waitretry were undocumented.
9796         Changed "`.wgetrc' command" to "`.wgetrc'-style command" on --help
9797         line for --execute.
9798
9799 2000-05-18  Hrvoje Niksic  <hniksic@iskon.hr>
9800
9801         * ftp.c (getftp): Ditto.
9802
9803         * http.c (gethttp): Check for return value of fclose/fflush.
9804
9805 2000-04-12  Hrvoje Niksic  <hniksic@iskon.hr>
9806
9807         * host.c (store_hostaddress): Instead of shifting ADDR, start
9808         copying from the correct address.
9809
9810 2000-04-12  Hrvoje Niksic  <hniksic@iskon.hr>
9811
9812         * http.c (gethttp): Don't free REQUEST -- it was allocated with
9813         alloca().
9814         Pointed out by Gisle Vanem <gvanem@eunet.no>.
9815
9816 2000-04-04  Dan Harkless  <wget@harkless.org>
9817
9818         * host.c (store_hostaddress): R. K. Owen's patch introduces a
9819         "left shift count >= width of type" warning on 32-bit
9820         architectures.  Got rid of it by tricking the compiler w/ a variable.
9821
9822         * url.c (UNSAFE_CHAR): The macro didn't include all the illegal
9823         characters per RFC1738, namely everything above '~'.  It also
9824         generated a warning on OSes where char =~ unsigned char.  Fixed.
9825
9826 1998-10-17  Hrvoje Niksic  <hniksic@srce.hr>
9827
9828         * http.c (http_process_type): Removed needless strdup(), a memory
9829         leak.
9830
9831 1998-09-25  Hrvoje Niksic  <hniksic@srce.hr>
9832
9833         * html.c (htmlfindurl): Set PH to the first occurrence of `#'.
9834
9835 1998-09-25  Simon Munton  <simonm@m4data.co.uk>
9836
9837         * init.c (wgetrc_file_name): Don't free HOME under Windows.
9838
9839 1998-12-01  "R. K. Owen"  <rkowen@Nersc.GOV>
9840
9841         * host.c (store_hostaddress): Fix for big endian 64-bit machines.
9842
9843 1998-12-01  Hrvoje Niksic  <hniksic@srce.hr>
9844
9845         * url.c (UNSAFE_CHAR): New macro.
9846         (contains_unsafe): Use it.
9847         (encode_string): Ditto.
9848
9849 1998-12-01  Hrvoje Niksic  <hniksic@srce.hr>
9850
9851         * main.c (i18n_initialize): Use LC_MESSAGES only if available.
9852
9853 2000-03-31  Hrvoje Niksic  <hniksic@srce.hr>
9854
9855         * Use TOUPPER/TOLOWER.
9856
9857 1998-12-22  Alexander V. Lukyanov  <lav@yars.free.net>
9858
9859         * ftp-opie.c (btoe): Zero-terminate OSTORE.
9860
9861 2000-03-21  Hrvoje Niksic  <hniksic@iskon.hr>
9862
9863         * wget.h (DO_REALLOC_FROM_ALLOCA): Ditto.
9864
9865         * sysdep.h (ISALNUM): New macro.
9866         (TOLOWER): Ditto.
9867         (TOUPPER): Ditto.
9868
9869 2000-03-10  Dan Harkless  <wget@harkless.org>
9870
9871         * html.c (idmatch): Implemented checking of my new --follow-tags
9872         and --ignore-tags options.
9873
9874         * init.c (commands): Added comment reminding people adding new
9875         entries doing allocation to add corresponding freeing in cleanup().
9876         (commands): Added new followtags and ignoretags commands.
9877         (cleanup): Free storage for new followtags and ignoretags.
9878
9879         * main.c: Use of "comma-separated list" was random -- normalized
9880         it.  Did some alphabetization.  Added comments pointing out
9881         "Options without arguments" and "Options accepting an argument"
9882         sections of long_options[].  Added new options --follow-tags and
9883         -G / --ignore-tags.  Added comment that Damir's --referer is
9884         currently undocumented.  Added comment that Heiko's --waitretry is
9885         partially undocumented (mentioned in --help but not in
9886         wget.texi).  Moved improperly sorted 24, 129, and 'G' cases.
9887
9888         * options.h (struct options): Added new fields follow_tags and
9889         ignore_tags.
9890
9891         * wget.h: Added "#define EQ 0" so we can say "strcmp(a, b) == EQ".
9892
9893 2000-03-02  Dan Harkless  <wget@harkless.org>
9894
9895         * ftp.c (ftp_loop_internal): Heiko introduced "suggest explicit
9896         braces to avoid ambiguous `else'" warnings.  Eliminated them.
9897
9898         * http.c (gethttp): Dan Berger's query string patch is totally
9899         bogus.  If you have two different URLs, gen_page.cgi?page1 and
9900         get_page.cgi?page2, they'll both be saved as get_page.cgi and the
9901         second will overwrite the first.  Also, parameters to implicit
9902         CGIs, like "http://www.host.com/db/?2000-03-02" cause the URLs to
9903         be printed with trailing garbage characters, and could seg fault.
9904         Backing out the patch, which Dan B. informed me by email was just
9905         a kludge to download StarOffice from Sun made necessary due to
9906         wget's unconditional escaping of certain characters (room for an
9907         option there?).
9908         (http_loop): Heiko introduced "suggest explicit braces to avoid
9909         ambiguous `else'" warnings.  Eliminated them.
9910
9911         * main.c: Heiko's --wait / --waitretry backwards compatibility
9912         code looks to have been totally untested -- automatic variable
9913         'wr' was used without being initialized, and a long int was passed
9914         into setval()'s char* val parameter.
9915
9916         * recur.c (parse_robots): Applied Edward J. Sabol
9917         <sabol@alderaan.gsfc.nasa.gov>'s patch for Guan Yang's reported
9918         problem with "User-agent:<space>*<space>" lines in robots.txt.
9919
9920         * url.c (parseurl, str_url): Removing Dan Berger's code (see
9921         http.c above for explanation).
9922
9923 1999-08-25  Heiko Herold  <Heiko.Herold@previnet.it>
9924
9925         * ftp.c: Respect new option waitretry.
9926
9927 2000-01-30  Damir Dzeko  <ddzeko@zesoi.fer.hr>
9928
9929         * http.c (gethttp): Send custom Referer, if required.
9930
9931 1999-09-24  Charles G Waldman  <cgw@fnal.gov>
9932
9933         * netrc.c (parse_netrc): Allow passwords to contain spaces.
9934
9935         * netrc.c (parse_netrc): New function.
9936
9937 1999-09-17  Dan Berger  <dberger@ix.netcom.com>
9938
9939         * http.c (gethttp): Send it.
9940
9941         * url.c (parseurl): Detect query string in HTTP URL-s.
9942         (str_url): Print it.
9943
9944 2000-03-02  HIROSE Masaaki  <hirose31@t3.rim.or.jp>
9945
9946         * html.c (html_allow): Add <link href=...> and <script src=...>.
9947
9948 1999-05-02  andrew deryabin  <djsf@softhome.net>
9949
9950         * http.c (gethttp): Specify port in `Host' header only if it's
9951         different from 80.
9952
9953 1998-11-03  Edward J. Sabol  <sabol@alderaan.gsfc.nasa.gov>
9954
9955         * recur.c (recursive_retrieve): If a finite maximum depth is
9956         specified, and we're are already at that depth, don't download the
9957         HTML file for parsing.
9958
9959 2000-03-01  Dan Harkless  <wget@harkless.org>
9960
9961         * ftp.c (ftp_loop_internal): Call new downloaded_file() function,
9962         even though we don't do conversion on HTML files retrieved via
9963         FTP, so _current_ usage of downloaded_file() makes this call unneeded.
9964         (ftp_retrieve_list): Added a comment saying where we need to
9965         stat() a .orig file if FTP'd HTML file conversion is ever implemented.
9966         (ftp_retrieve_list): "Local file '%s' is more recent," is sometimes
9967         a lie -- reworded as "Server file no newer than local file '%s' --".
9968
9969         * http.c (http_loop): Fixed a typo and clarified a comment.
9970         (http_loop): When -K and -N are specified together, compare size
9971         and timestamp of server file X against local file X.orig (if
9972         extant) rather than converted local file X.
9973         (http_loop): "Local file '%s' is more recent," is sometimes a lie
9974         -- reworded as "Server file no newer than local file '%s' --".
9975         (http_loop): Call new downloaded_file() function to prevent
9976         wrongful overwriting of .orig file when -N is specified.
9977
9978         * url.c (convert_links): When -K specified, only rename X to
9979         X.orig if downloaded_file() returns TRUE.  Otherwise when we skip
9980         file X due to -N, we clobber an X.orig from a previous invocation.
9981         (convert_links): Call the failsafe xstrdup(), not the real strdup().
9982         (convert_links): Added a note asking anyone who understands how
9983         multiple URLs can correspond to a single file to comment it.
9984         (downloaded_file): Added this new function.
9985
9986         * url.h (downloaded_file): Added prototype for this new function
9987         as well as its downloaded_file_t enum type.
9988
9989         * wget.h (boolean): Added this new typedef and TRUE and FALSE #defines.
9990
9991 2000-02-29  Dan Harkless  <wget@harkless.org>
9992
9993         * version.c: Upped version to developer-only "1.5.3+dev".
9994
9995 2000-02-18  Dan Harkless  <wget@harkless.org>
9996
9997         * init.c (backup_converted): Added this new option.
9998
9999         * main.c (-K / --backup-converted): Added this new option.
10000
10001         * options.h (backup_converted): Added this new option.
10002
10003         * url.c (convert_links): When backup_converted is specified, save
10004         file X as X.orig before converting.
10005
10006         * url.h (urlpos): Fixed typo -- said "Rekative" instead of "Relative".
10007
10008 1998-09-21  Hrvoje Niksic  <hniksic@srce.hr>
10009
10010         * version.c: Wget 1.5.3 is released.
10011
10012 1998-09-21  Hrvoje Niksic  <hniksic@srce.hr>
10013
10014         * host.c (ftp_getaddress): Don't warn when reverse-lookup of local
10015         address doesn't yield FQDN.
10016
10017 1998-09-21  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
10018
10019         * cmpt.c (strerror): Fix declaration of sys_errlist.
10020
10021 1998-09-11  Hrvoje Niksic  <hniksic@srce.hr>
10022
10023         * main.c (main): Don't use an array subscript as the first
10024         argument to STRDUP_ALLOCA.
10025         From Kaveh R. Ghazi.
10026
10027 1998-09-11  Szakacsits Szabolcs  <szaka@sienet.hu>
10028
10029         * html.c (htmlfindurl): Download table background.
10030
10031 1998-09-11  Hans Grobler  <grobh@conde.ee.sun.ac.za>
10032
10033         * init.c (parse_line): Would free *com before allocating it.
10034         (parse_line): Would free com instead of *com.
10035
10036 1998-09-10  Howard Gayle  <howard@fjst.com>
10037
10038         * url.c (get_urls_html): Would drop the last character of the
10039         link.
10040
10041 1998-09-10  Hrvoje Niksic  <hniksic@srce.hr>
10042
10043         * http.c (http_loop): Don't print status code if quiet.
10044
10045 1998-09-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10046
10047         * log.c: Use <stdarg.h> only when __STDC__.
10048
10049 1998-09-10  Adam D. Moss  <adam@foxbox.org>
10050
10051         * html.c (htmlfindurl): Download <layer src=...>.
10052
10053 1998-09-10  Howard Gayle  <howard@fjst.com>
10054
10055         * ftp.c (ftp_retrieve_list): Don't update the time stamp of a file
10056         not retrieved.
10057
10058 1998-06-27  Hrvoje Niksic  <hniksic@srce.hr>
10059
10060         * utils.c: Include <libc.h> on NeXT.
10061
10062 1998-06-26  Heinz Salzmann  <heinz.salzmann@intermetall.de>
10063
10064         * url.c (get_urls_html): Fix calculation of URL position.
10065
10066 1998-06-23  Hrvoje Niksic  <hniksic@srce.hr>
10067
10068         * version.c: Wget 1.5.2 is released.
10069
10070 1998-06-23  Dave Love  <d.love@dl.ac.uk>
10071
10072         * ftp.c, init.c, netrc.c: Include errno.h.
10073
10074         * http.c: Include errno.h and time header.
10075
10076         * Makefile.in (exext): Define.
10077         (install.bin, uninstall.bin): Use it.
10078
10079 1998-06-21  Hrvoje Niksic  <hniksic@srce.hr>
10080
10081         * http.c (http_loop): Don't attempt to compare local and remote
10082         sizes if the remote size is unknown.
10083
10084 1998-06-16  Hrvoje Niksic  <hniksic@srce.hr>
10085
10086         * url.c (get_urls_html): Use malloc() instead of alloca in the
10087         loop.
10088
10089 1998-06-13  Hrvoje Niksic  <hniksic@srce.hr>
10090
10091         * version.c: Wget 1.5.2-b4 is released.
10092
10093 1998-06-13  Hrvoje Niksic  <hniksic@srce.hr>
10094
10095         * url.c (get_urls_html): Ignore spaces before and after the URI.
10096
10097 1998-06-08  Wanderlei Antonio Cavassin  <cavassin@conectiva.com.br>
10098
10099         * ftp.c (getftp): Translate `done'.
10100
10101 1998-06-06  Hrvoje Niksic  <hniksic@srce.hr>
10102
10103         * version.c: Wget 1.5.2-b3 is released.
10104
10105 1998-06-06  Alexander Kourakos  <awk@bnt.com>
10106
10107         * init.c (cleanup): Close dfp, don't free it.
10108
10109 1998-06-06  Hrvoje Niksic  <hniksic@srce.hr>
10110
10111         * utils.c (make_directory): Twiddle.
10112
10113         * config.h.in: Added template for access().
10114
10115 1998-06-05  Mathieu Guillaume  <mat@cythere.com>
10116
10117         * html.c (htmlfindurl): Download <input src=...>
10118
10119 1998-06-03  Hrvoje Niksic  <hniksic@srce.hr>
10120
10121         * utils.c (file_exists_p): Use access() with two arguments.
10122
10123 1998-05-27  Martin Kraemer  <Martin.Kraemer@mch.sni.de>
10124
10125         * netrc.c (parse_netrc): Correct logic.
10126
10127 1998-05-27  Hrvoje Niksic  <hniksic@srce.hr>
10128
10129         * ftp.c (getftp): Added `break'; suggested by Lin Zhe Min
10130         <ljm@ljm.wownet.net>.
10131
10132 1998-05-24  Hrvoje Niksic  <hniksic@srce.hr>
10133
10134         * version.c: Wget 1.5.2-b2 is released.
10135
10136 1998-05-18  Juan Jose Rodriguez  <jcnsoft@jal1.telmex.net.mx>
10137
10138         * mswindows.h: Don't translate mkdir to _mkdir under Borland.
10139
10140 1998-05-17  Hrvoje Niksic  <hniksic@srce.hr>
10141
10142         * retr.c (elapsed_time): Return correct value when
10143         HAVE_GETTIMEOFDAY is undefined.
10144
10145 1998-05-13  Hrvoje Niksic  <hniksic@srce.hr>
10146
10147         * version.c: Wget 1.5.2-b1 is released.
10148
10149 1998-05-08  Hrvoje Niksic  <hniksic@srce.hr>
10150
10151         * getopt.c (_getopt_internal): Use exec_name instead of argv[0].
10152         (_getopt_internal): Don't translate `#if 0'-ed strings.
10153
10154 1998-05-06  Douglas E. Wegscheid  <wegscd@whirlpool.com>
10155
10156         * mswindows.c (ws_handler): Use fork_to_background().
10157
10158 1998-05-05  Hrvoje Niksic  <hniksic@srce.hr>
10159
10160         * version.c: Wget 1.5.1 is released.
10161
10162 1998-05-05  Hrvoje Niksic  <hniksic@srce.hr>
10163
10164         * http.c (parse_http_status_line): Avoid `minor' and `major'
10165         names.
10166
10167 1998-05-02  Hrvoje Niksic  <hniksic@srce.hr>
10168
10169         * utils.c (mkdirhier): Renamed to make_directory.
10170
10171 1998-05-01  Hrvoje Niksic  <hniksic@srce.hr>
10172
10173         * mswindows.c (fork_to_background): Define under Windows.
10174
10175         * utils.c (fork_to_background): New function.
10176
10177         * html.c (htmlfindurl): Removed rerdundant casts.
10178
10179 1998-05-01  Douglas E. Wegscheid  <wegscd@whirlpool.com>
10180
10181         * mswindows.c (ws_mypath): Cache the path.
10182
10183 1998-04-30  Douglas E. Wegscheid  <wegscd@whirlpool.com>
10184
10185         * ftp.h: Prefix enum ftype members with FT_.
10186
10187         * ftp-ls.c, ftp.c, html.h: Adjust accordingly.
10188
10189         * mswindows.h: Use stat under Borland, _stat under MSVC.
10190
10191 1998-04-28  Hrvoje Niksic  <hniksic@srce.hr>
10192
10193         * http.c (known_authentication_scheme_p): New function.
10194         (gethttp): Handle authorization more correctly.
10195
10196         * ftp-basic.h: Removed.
10197
10198         * cmpt.h: Removed.
10199
10200         * utils.c: Include <unistd.h> before <pwd.h>; needed under SunOS
10201         with gcc 2.8.
10202         (numdigit): Use `while' loop.
10203
10204         * http.c (create_authorization_line): Detect authentication
10205         schemes case-insensitively.
10206
10207         * http.c (extract_header_attr): Use strdupdelim().
10208         (digest_authentication_encode): Move declaration of local
10209         variables to smaller scope.
10210         (digest_authentication_encode): Reset REALM, OPAQUE and NONCE.
10211         (create_authorization_line): Detect authentication schemes
10212         case-insensitively.
10213
10214         * utils.c (touch): Constify.
10215
10216         * http.c (gethttp): Report a nicer error when no data is received.
10217
10218         * rbuf.h (RBUF_READCHAR): Ditto.
10219
10220         * ftp-basic.c (ftp_response): Use sizeof.
10221
10222 1998-04-27  Hrvoje Niksic  <hniksic@srce.hr>
10223
10224         * retr.c (print_percentage): EXPECTED is long, not int.
10225         (print_percentage): Use floating-point arithmetic to avoid
10226         overflow with large files' sizes multiplied with 100.
10227
10228 1998-04-27  Gregor Hoffleit  <flight@mathi.uni-heidelberg.de>
10229
10230         * config.h.in: Added pid_t stub.
10231
10232         * sysdep.h (S_ISREG): Moved here from mswindows.h (NeXT doesn't
10233         define it).
10234
10235 1998-04-20  Hrvoje Niksic  <hniksic@srce.hr>
10236
10237         * version.c: Wget 1.5.0 is released.
10238
10239 1998-04-18  Hrvoje Niksic  <hniksic@srce.hr>
10240
10241         * url.c (str_url): Ditto.
10242
10243         * ftp-basic.c (ftp_rest): Use new name.
10244
10245         * utils.c (long_to_string): Renamed from prnum().
10246
10247 1998-04-16  Hrvoje Niksic  <hniksic@srce.hr>
10248
10249         * version.c: Wget 1.5-b17 is released.
10250
10251 1998-04-08  Hrvoje Niksic  <hniksic@srce.hr>
10252
10253         * headers.c (header_get): New argument FLAGS.
10254
10255         * http.c (gethttp): If request is malformed, bail out of the
10256         header loop.
10257         (gethttp): Check for empty header *after* the status line checks.
10258         (gethttp): Disallow continuations for status line.
10259
10260 1998-04-08  Hrvoje Niksic  <hniksic@srce.hr>
10261
10262         * version.c: Wget 1.5-b16 is released.
10263
10264 1998-04-08  Hrvoje Niksic  <hniksic@srce.hr>
10265
10266         * init.c (commands): Renamed `always_rest' to `continue'.
10267
10268 1998-04-05  Hrvoje Niksic  <hniksic@srce.hr>
10269
10270         * all: Use it.
10271
10272         * log.c (logputs): New argument.
10273         (logvprintf): Ditto.
10274         (logprintf): Ditto.
10275
10276 1998-04-04  Hrvoje Niksic  <hniksic@srce.hr>
10277
10278         * http.c (http_atotm): Update comment.
10279
10280         * main.c (i18n_initialize): Set LC_MESSAGES, not LC_ALL.
10281
10282         * wget.h: Renamed ENABLED_NLS to HAVE_NLS.
10283
10284         * main.c (i18n_initialize): New function.
10285         (main): Use it.
10286
10287         * log.c: Include <unistd.h>.
10288
10289         * retr.c (show_progress): Cast alloca to char *.
10290
10291 1998-04-04  Hrvoje Niksic  <hniksic@srce.hr>
10292
10293         * version.c: Wget 1.5-b15 is released.
10294
10295 1998-04-04  Hrvoje Niksic  <hniksic@srce.hr>
10296
10297         * utils.h: Declare file_non_directory_p().
10298
10299 1998-04-03  Hrvoje Niksic  <hniksic@srce.hr>
10300
10301         * main.c (main): It's `tries', not `numtries' now.
10302
10303 1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
10304
10305         * init.c (getperms): Removed.
10306
10307 1998-04-01  Tim Charron  <tcharron@interlog.com>
10308
10309         * log.c (logvprintf): Don't use ARGS twice.
10310
10311 1998-04-01  John  <john@futuresguide.com>
10312
10313         * mswindows.c: Cleaned up.
10314
10315 1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
10316
10317         * version.c: Wget 1.5-b14 is released.
10318
10319 1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
10320
10321         * ftp-opie.c (STRLEN4): New macro.
10322         (btoe): Use it.
10323
10324 1998-04-01  Junio Hamano  <junio@twinsun.com>
10325
10326         * http.c: Document all the Digest functions.
10327
10328 1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
10329
10330         * utils.c (file_non_directory_p): Renamed from isfile().
10331
10332         * mswindows.h (S_ISREG): New macro, suggested by Tim Adam.
10333
10334 1998-03-31  Hrvoje Niksic  <hniksic@srce.hr>
10335
10336         * utils.c (mkdirhier): Use 0777 instead of opt.dirmode.
10337
10338         * init.c (cmd_spec_dotstyle): Use 48 dots per line for binary
10339         style.
10340         (cmd_permissions): Removed.
10341
10342         * config.h.in: Add template for WORDS_BIGENDIAN.
10343
10344 1998-03-31  Junio Hamano  <junio@twinsun.com>
10345
10346         * http.c (HEXD2asc): New macro.
10347         (dump_hash): Use it.
10348
10349 1998-03-31  Hrvoje Niksic  <hniksic@srce.hr>
10350
10351         * version.c: Wget 1.5-b13 is released.
10352
10353 1998-03-31  Hrvoje Niksic  <hniksic@srce.hr>
10354
10355         * main.c (main): Don't try to use `com'.
10356
10357 1998-03-30  Hrvoje Niksic  <hniksic@srce.hr>
10358
10359         * init.c (cmd_permissions): New function.
10360
10361 1998-03-30  Hrvoje Niksic  <hniksic@srce.hr>
10362
10363         * version.c: Wget 1.5-b12 is released.
10364
10365 1998-03-30  Hrvoje Niksic  <hniksic@srce.hr>
10366
10367         * init.c (commands): Renamed `numtries' to `tries'.
10368         (cmd_spec_debug): Removed.
10369         (home_dir): Under Windows, return `C:\' if HOME is undefined.
10370
10371 1998-03-29  Hrvoje Niksic  <hniksic@srce.hr>
10372
10373         * config.h.in: Define _XOPEN_SOURCE.
10374
10375         * init.c (check_user_specified_header): New function.
10376         (cmd_spec_header): Use it.
10377         (cmd_spec_useragent): New function.
10378
10379 1998-03-29  Hrvoje Niksic  <hniksic@srce.hr>
10380
10381         * version.c: Wget 1.5-b11 is released.
10382
10383 1998-03-28  Hrvoje Niksic  <hniksic@srce.hr>
10384
10385         * wget.h: Include <libintl.h> only if NLS is enabled.
10386
10387 1998-03-26  Hrvoje Niksic  <hniksic@srce.hr>
10388
10389         * options.h (struct options): Made `wait' a long.
10390         (struct options): Ditto for `timeout'.
10391
10392 1998-03-19  Hrvoje Niksic  <hniksic@srce.hr>
10393
10394         * utils.c (exists): Renamed to file_exists_p.
10395         (file_exists_p): Use access() if available.
10396
10397 1998-03-17  Hrvoje Niksic  <hniksic@srce.hr>
10398
10399         * utils.c (memfatal): Set save_log_p to 0 to avoid potential
10400         infloop.
10401
10402         * log.c: do_logging -> save_log_p.
10403
10404         * config.h.in: Added template for HAVE_VSNPRINTF.
10405
10406 1998-03-16  Hrvoje Niksic  <hniksic@srce.hr>
10407
10408         * init.c: Ditto.
10409
10410         * http.c: Protect declaration against non-ANSI compiler.
10411
10412         * log.c (logvprintf): Use vsnprintf() if available.
10413
10414         * getopt.c (main): Don't translate test stuff.
10415
10416 1998-03-16  Hrvoje Niksic  <hniksic@srce.hr>
10417
10418         * version.c: Wget 1.5-b10 is released.
10419
10420 1998-03-11  Hrvoje Niksic  <hniksic@srce.hr>
10421
10422         * ftp.c (getftp): Don't translate "CWD %s".
10423
10424         * wget.h (GCC_FORMAT_ATTR): Renamed from FORMAT_ATTR.
10425
10426 1998-03-07  Hrvoje Niksic  <hniksic@srce.hr>
10427
10428         * ftp-opie.c (btoe): Use memcpy() instead of strncat().
10429
10430         * log.c (logputs): New function.
10431         (logvprintf): Renamed from vlogmsg; use logputs().
10432
10433         * retr.c (show_progress): Print `[100%]' when the retrieval is
10434         finished.
10435
10436         * init.c (run_wgetrc): Use FILE, not PATH.
10437         (wgetrc_file_name): Ditto.
10438
10439 1998-03-07  Tim Adam  <tma@osa.com.au>
10440
10441         * recur.c (parse_robots): Correctly reset `entries' on empty
10442         disallow.
10443
10444 1998-03-07  Hrvoje Niksic  <hniksic@srce.hr>
10445
10446         * init.c (cmd_spec_debug): Use cmd_boolean().
10447
10448 1998-02-23  Hrvoje Niksic  <hniksic@srce.hr>
10449
10450         * http.c (gethttp): Create proxy-authorization correctly.
10451
10452 1998-02-22  Hrvoje Niksic  <hniksic@srce.hr>
10453
10454         * md5.c: Ditto.
10455
10456         * getopt.c: Use ANSI function definitions.
10457
10458         * ftp-opie.c: New file.
10459
10460         * options.h: Don't redefine EXTERN.
10461
10462         * init.c: Sort it correctly.
10463
10464 1998-02-22  Hrvoje Niksic  <hniksic@srce.hr>
10465
10466         * version.c: Wget 1.5-b9 is released.
10467
10468 1998-02-22  Hrvoje Niksic  <hniksic@srce.hr>
10469
10470         * recur.c (recursive_retrieve): Reset `first_time'.
10471
10472         * ftp.c (getftp): Added `default' clause to switches of uerr_t.
10473
10474         * rbuf.c (rbuf_peek): Simplified.
10475         (rbuf_flush): Use MINVAL.
10476
10477         * wget.h (MINVAL): Moved from url.h.
10478
10479         * rbuf.h (RBUF_FD): New macro.
10480
10481         * url.c (add_url): Add to the head of the list.
10482
10483         * ftp.c (ftp_retrieve_list): Set the permissions to downloaded
10484         file.
10485         (getftp): Set the default permissions to 0600.
10486
10487 1998-02-21  Hrvoje Niksic  <hniksic@srce.hr>
10488
10489         * url.c (get_urls_html): Ditto.
10490         (convert_links): Ditto.
10491
10492         * recur.c (parse_robots): Ditto.
10493
10494         * html.c (ftp_index): Ditto.
10495
10496         * ftp-ls.c (ftp_parse_unix_ls): Open file as binary.
10497
10498         * init.c (defaults): Initialize `opt' to zero via memset.
10499
10500         * http.c (digest_authentication_encode): goto considered harmful.
10501
10502 1998-02-19  Hrvoje Niksic  <hniksic@srce.hr>
10503
10504         * ftp.c (delelement): Simplify and fix leak.
10505
10506 1998-02-18  Hrvoje Niksic  <hniksic@srce.hr>
10507
10508         * http.c (dump_hash): Use HEXD2ASC instead of home-grown stuff.
10509
10510         * url.h (HEXD2ASC): Removed warning.
10511
10512         * init.c (comind): Use binary search.
10513         (commands): Reorganized.
10514         (setval): Ditto.
10515         (cmd_boolean): New function.
10516         (cmd_number): Ditto.
10517         (cmd_number_inf): Ditto.
10518         (cmd_string): Ditto.
10519         (cmd_vector): Ditto.
10520         (cmd_directory_vector): Ditto.
10521         (cmd_bytes): Ditto.
10522         (cmd_time): Ditto.
10523         (cmd_spec_debug): Ditto.
10524         (cmd_spec_dirmode): Ditto.
10525         (cmd_spec_dirstruct): Ditto.
10526         (cmd_spec_dotstyle): Ditto.
10527         (cmd_spec_header): Ditto.
10528         (cmd_spec_htmlify): Ditto.
10529         (cmd_spec_mirror): Ditto.
10530         (cmd_spec_outputdocument): Ditto.
10531         (cmd_spec_recursive): Ditto.
10532         (settime): Merged with cmd_time().
10533         (setbytes): Merged with cmd_bytes().
10534         (setonoff): Merged with cmd_boolean().
10535         (onoff): Ditto.
10536
10537 1998-02-17  Hrvoje Niksic  <hniksic@srce.hr>
10538
10539         * Makefile.in (distclean): Remove `config.h'.
10540
10541 1998-02-17  Hrvoje Niksic  <hniksic@srce.hr>
10542
10543         * version.c: Wget 1.5-b8 is released.
10544
10545 1998-02-17  Hrvoje Niksic  <hniksic@srce.hr>
10546
10547         * http.c (digest_authentication_encode): New function.
10548         (create_authorization_line): Use it.
10549         (dump_hash): New function.
10550         (digest_authentication_encode): Use it.
10551
10552         * fnmatch.c: Renamed from `mtch.c'.
10553
10554 1998-02-15  Karl Eichwalder  <ke@suse.de>
10555
10556         * main.c (main): Tag "Written by..." string as translatable.
10557
10558 1998-02-15  Hrvoje Niksic  <hniksic@srce.hr>
10559
10560         * wget.h (FREE_MAYBE): New macro.
10561
10562         * http.c (create_authorization_line): Don't use ANSI C string
10563         concatenation feature.
10564         (basic_authentication_encode): Use alloca() for temporary
10565         variables.
10566
10567         * recur.h: Ditto.
10568
10569         * http.c: Ditto.
10570
10571         * headers.h: Ditto.
10572
10573         * ftp-basic.c: Protect declaration against non-ANSI compiler.
10574
10575         * http.c (create_authorization_line): Cast `unsigned char *' to
10576         `char *' for sprintf, to shut up the noisy Digital Unix cc.
10577
10578 1998-02-15  Hrvoje Niksic  <hniksic@srce.hr>
10579
10580         * version.c: Wget 1.5-b7 is released.
10581
10582 1998-02-15  Hrvoje Niksic  <hniksic@srce.hr>
10583
10584         * cmpt.c (strstr): Synched with glibc-2.0.6.
10585
10586         * ftp-basic.c (calculate_skey_response): Ditto.
10587         (calculate_skey_response): Use alloca().
10588
10589         * http.c (create_authorization_line): Work with FSF's version of
10590         md5.c.
10591
10592         * md5.c: New file, from GNU libc.
10593
10594 1998-02-14  Hrvoje Niksic  <hniksic@srce.hr>
10595
10596         * url.h (URL_CLEANSE): Name the temporary variable more carefully.
10597
10598 1998-02-13  Hrvoje Niksic  <hniksic@srce.hr>
10599
10600         * http.c (basic_authentication_encode): New function, instead of
10601         the macro.
10602
10603 1998-02-13  Junio Hamano  <junio@twinsun.com>
10604
10605         * http.c: Add HTTP-DA support.
10606         * ftp-basic.c: Add Opie/S-key support.
10607         * config.h.in, Makefile.in: Add HTTP-DA and Opie/S-key support.
10608         * md5.c, md5.h: New files.
10609
10610 1998-02-13  Hrvoje Niksic  <hniksic@srce.hr>
10611
10612         * http.c (http_process_range): Renamed from hprocrange().
10613         (http_process_range): Parse the whole header.
10614
10615         * headers.c: New file.
10616         (header_process): New function.
10617         (header_get): Renamed from fetch_next_header.
10618
10619         * all: Include utils.h only where necessary.
10620
10621         * wget.h: Declare xmalloc(), xrealloc() and xstrdup() here.
10622
10623         * wget.h: Add provisions for dmalloc.
10624
10625 1998-02-12  Hrvoje Niksic  <hniksic@srce.hr>
10626
10627         * version.c: Wget 1.5-b6 is released.
10628
10629 1998-02-12  Hrvoje Niksic  <hniksic@srce.hr>
10630
10631         * ftp.c (ftp_loop): Determine `filename' more precisely.
10632
10633         * init.c (setval): Don't set `opt.quiet' if output-document is
10634         `-'.
10635
10636         * log.c (log_init): Print to STDERR instead of STDOUT.
10637         (vlogmsg): Use STDERR by default.
10638         (logflush): Ditto.
10639
10640 1998-02-11  Simon Josefsson  <jas@pdc.kth.se>
10641
10642         * host.c: Use addr_in again.
10643
10644 1998-02-08  Karl Eichwalder  <karl@suse.de>
10645
10646         * http.c (gethttp): Fixed typo.
10647
10648 1998-02-08  Hrvoje Niksic  <hniksic@srce.hr>
10649
10650         * version.c: Wget 1.5-b5 is released.
10651
10652 1998-02-08  Hrvoje Niksic  <hniksic@srce.hr>
10653
10654         * retr.c (show_progress): Use it.
10655
10656         * log.c (logflush): New function.
10657
10658         * wget.h: Utilize __attribute__ if on gcc.
10659
10660 1998-02-07  Hrvoje Niksic  <hniksic@srce.hr>
10661
10662         * http.c (base64_encode_line): New argument LENGTH.
10663         (BASIC_AUTHENTICATION_ENCODE): Use it.
10664         (BASIC_AUTHENTICATION_ENCODE): Take length of HEADER into account.
10665
10666         * main.c (main): Fixed fprintf() format mismatch.
10667
10668 1998-02-06  Hrvoje Niksic  <hniksic@srce.hr>
10669
10670         * version.c: Wget 1.5-b4 is released.
10671
10672 1998-02-03  Simon Josefsson  <jas@pdc.kth.se>
10673
10674         * host.c: use sockaddr_in instead of addr_in.
10675
10676 1998-02-04  Hrvoje Niksic  <hniksic@srce.hr>
10677
10678         * init.c (cleanup): Use it.
10679
10680         * recur.c (recursive_cleanup): New function.
10681
10682         * retr.c (retrieve_from_file): Ditto.
10683
10684         * main.c (main): Use it.
10685
10686         * recur.c (recursive_reset): New function.
10687
10688         * retr.c (retrieve_from_file): Ditto.
10689
10690         * main.c (main): Simplify call to recursive_retrieve().
10691
10692         * recur.c (recursive_retrieve): Removed FLAGS argument.
10693
10694         * http.c (gethttp): Changed call to iwrite().
10695
10696 1998-02-03  Hrvoje Niksic  <hniksic@srce.hr>
10697
10698         * url.c (get_urls_html): Ditto.
10699         (free_urlpos): Ditto.
10700         (mkstruct): Ditto.
10701         (construct): Ditto.
10702
10703         * retr.c (retrieve_url): Move declaration of local variables to
10704         smaller scope.
10705
10706         * url.c (urlproto): Use it.
10707         (parseurl): Ditto.
10708         (str_url): Ditto.
10709         (get_urls_html): Ditto.
10710
10711         * utils.h (ARRAY_SIZE): New macro.
10712
10713         * url.c (proto): Moved from url.h.
10714
10715         * url.h (URL_CLEANSE): Reformatted.
10716         (USE_PROXY_P): Renamed from USE_PROXY.
10717
10718         * ftp-basic.c: Adjust to the new interface of iwrite().
10719
10720         * ftp-basic.c (ftp_port): Use alloca().
10721
10722 1998-02-03  Hrvoje Niksic  <hniksic@srce.hr>
10723
10724         * version.c: Wget 1.5-b3 is released.
10725
10726         * host.c (ftp_getaddress): Don't print to stderr directly.
10727
10728         * init.c (setbytes): Support `g' for gigabytes.
10729         (cmdtype): New specification CTIME.
10730         (setval): Use it with settime().
10731         (commands): Use it for WAIT and TIMEOUT.
10732
10733 1998-02-02  Hrvoje Niksic  <hniksic@srce.hr>
10734
10735         * http.c (BASIC_AUTHENTICATION_ENCODE): New macro.
10736         (gethttp): Use it.
10737
10738         * utils.c (unique_name_1): Moved from url.c.
10739         (unique_name): Ditto.
10740
10741         * url.c (url_filename): Ditto.
10742
10743         * log.c (redirect_output): Changed call to unique_name().
10744
10745         * url.c (unique_name_1): Renamed from unique_name().
10746         (unique_name): Changed interface.
10747
10748         * init.c (enum cmdid): Moved from init.h.
10749         (cmdtype): Ditto.
10750         (struct cmd): Ditto.
10751
10752         * main.c (main): Use it.
10753         (main): Moved `--backups' to not have a short option.
10754
10755         * options.h (struct options): New member BACKGROUND.
10756
10757         * main.c (print_help): Rearranged.
10758         (main): New long options for -n* short options: --no-directories,
10759         --no-host-directories, --non-verbose, --no-host-lookup and
10760         --dont-remove-listing.
10761
10762 1998-02-01  Hrvoje Niksic  <hniksic@srce.hr>
10763
10764         * main.c (main): Use log_close().
10765
10766         * log.c: New variable LOGFP.
10767         (vlogmsg): Use it.
10768         (redirect_output): Don't open /dev/null; set LOGFP to stdin
10769         instead.
10770         (log_close): New function.
10771
10772         * options.h (struct options): Removed LFILE.
10773
10774         * log.c (log_enable): Removed.
10775
10776         * main.c (main): Use it.
10777
10778         * log.c (log_init): New function.
10779
10780         * url.c (get_urls_html): Removed needless assignment to BASE.
10781
10782         * host.c (add_hlist): Don't set CMP needlessly.
10783
10784         * utils.c (match_backwards): Ditto.
10785         (in_acclist): Ditto.
10786
10787         * url.c (findurl): Ditto.
10788
10789         * netrc.c (parse_netrc): Ditto.
10790
10791         * log.c (log_dump): Ditto.
10792
10793         * html.c (html_quote_string): Ditto.
10794
10795         * ftp-basic.c (ftp_request): Made static.
10796
10797         * connect.c: Made global variables static.
10798
10799         * url.c (construct): Ditto.
10800
10801         * init.c (init_path): Avoid assignment inside `if'-condition.
10802
10803         * ftp.c: Don't include in.h or winsock.h.
10804
10805         * ftp.c (ftp_loop): Use SZ.
10806
10807         * connect.c (bindport): Cast &addrlen to int *.
10808         (conaddr): Ditto.
10809
10810         * init.c (initialize): Don't use SYSTEM_WGETRC unconditionally.
10811
10812 1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
10813
10814         * ftp.c (getftp): Initialize opt.ftp_pass here.
10815         (ftp_retrieve_dirs): Use alloca().
10816
10817         * init.c (defaults): Don't initialize opt.ftp_pass.
10818
10819         * sysdep.h (S_ISLNK): Declare for OS/2; ditto for lstat.
10820         From Ivan F. Martinez <ivanfm@ecodigit.com.br>.
10821
10822 1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
10823
10824         * recur.c (parse_robots): Check for comments more correctly.
10825
10826         * host.c (ftp_getaddress): Use STRDUP_ALLOCA.
10827         (ftp_getaddress): Add diagnostics when reverse-lookup yields only
10828         hostname.
10829
10830 1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
10831
10832         * version.c: Wget 1.5-b2 is released.
10833
10834         * netrc.c (NETRC_FILE_NAME): Moved from netrc.h.
10835
10836         * utils.c (proclist): Pass FNM_PATHNAME to fnmatch().
10837
10838         * ftp-basic.c (ftp_pasv): Avoid unnecessary casting to unsigned
10839         char.
10840
10841         * log.c: Don't attempt to hide arguments from ansi2knr.
10842
10843         * cmpt.c: Synched strptime() and mktime() with glibc-2.0.6.
10844
10845         * ansi2knr.c: Use a later version, from fileutils-3.16l alpha.
10846
10847         * ftp.c (getftp): Ditto.
10848
10849         * http.c (gethttp): Use it.
10850
10851         * retr.c (get_contents): New argument EXPECTED; pass it to
10852         show_progress().
10853         (show_progress): New argument EXPECTED; use it to display
10854         percentages.
10855
10856         * init.c (setval): Ditto.
10857
10858         * http.c (gethttp): Ditto.
10859         (http_loop): Ditto.
10860
10861         * ftp.c (getftp): Ditto.
10862         (ftp_loop_internal): Ditto.
10863
10864         * ftp-ls.c (ftp_parse_unix_ls): Use abort() instead of assert(0).
10865
10866         * sysdep.h (CLOSE): Simplify; use DEBUGP.
10867
10868         * netrc.c (search_netrc): Use alloca().
10869
10870         * init.c (defaults): Initialize no_flush.
10871
10872         * log.c (vlogmsg): Don't flush if no_flush.
10873
10874         * options.h (struct options): New variable no_flush.
10875
10876         * main.c (main): Don't play games with buffering.
10877
10878         * log.c (vlogmsg): Flush the output after every message.
10879
10880 1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
10881
10882         * init.c (parse_line): Ditto.
10883
10884         * url.c (get_urls_html): Ditto.
10885
10886         * main.c (main): Don't cast to unsigned char.
10887
10888         * init.c (run_wgetrc): Don't cast to unsigned char.
10889         (parse_line): Accept char instead of unsigned char.
10890
10891         * html.c (htmlfindurl): Use char instead of unsigned char.
10892
10893         * all: Use them.
10894
10895         * sysdep.h: Add wrappers to ctype macros to make them
10896         eight-bit-clean:
10897
10898 1998-01-30  Hrvoje Niksic  <hniksic@srce.hr>
10899
10900         * html.c (htmlfindurl): Download <img lowsrc=...>
10901
10902         * main.c (main): Ignore SIGPIPE.
10903
10904         * connect.c (select_fd): New argument WRITEP.
10905         (iwrite): Call select_fd().
10906
10907 1997-02-27  Fila Kolodny <fila@ibi.com>
10908
10909         * ftp.c (ftp_retrieve_list): If retrieving symlink and the proper
10910         one already exists, just skip it.
10911
10912 1998-01-30  Hrvoje Niksic  <hniksic@srce.hr>
10913
10914         * http.c (gethttp): Cosmetic changes.
10915
10916         * http.c (check_end): Allow `+D...' instead of `GMT'.
10917         From Fabrizio Pollastri <pollastri@cstv.to.cnr.it>.
10918
10919         * url.c (process_ftp_type): New function.
10920         (parseurl): Use it.
10921
10922         * connect.c (iwrite): Allow writing in a few chunks.
10923         (bindport): Made SRV static, so addr can point to it.
10924         (select_fd): Removed HPUX kludge.
10925
10926         * host.c (free_hlist): Incorporated into clean_hosts().
10927
10928 1998-01-29  Hrvoje Niksic  <hniksic@srce.hr>
10929
10930         * host.c (hlist): Made static.
10931         (search_address): Cosmetic change.
10932
10933 1998-01-29  Hrvoje Niksic  <hniksic@srce.hr>
10934
10935         * version.c: Wget v1.5-b1 is released.
10936
10937         * http.c (hgetlen): Use sizeof() to get the header length.
10938         (hgetrange): Ditto.
10939         (hgettype): Ditto.
10940         (hgetlocation): Ditto.
10941         (hgetmodified): Ditto.
10942         (haccepts_none): Ditto.
10943
10944         * main.c (main): Updated `--version' and `--help' output, as per
10945         Francois Pinard's suggestions.
10946
10947         * main.c: Include locale.h; call setlocale(), bindtextdomain() and
10948         textdomain().
10949
10950         * config.h.in: Define stubs for I18N3.
10951
10952         * wget.h: Include libintl.h.
10953
10954 1998-01-28  Hrvoje Niksic  <hniksic@srce.hr>
10955
10956         * url.c (mkstruct): Check for opt.cut_dirs.
10957         (mkstruct): alloca()-te more, xmalloc() less.
10958
10959         * utils.c (load_file): Check for ferror().
10960
10961         * url.c (get_urls_file): Close only the files we opened.
10962         (get_urls_html): Ditto.
10963         (count_slashes): New function.
10964
10965         * http.h: Removed.
10966
10967         * http.c (gethttp): Respect username and password provided by
10968         proxy URL.
10969         (base64_encode_line): Write into an existing buffer instead of
10970         malloc-ing a new one.
10971         (struct http_stat): Moved from http.h
10972
10973         * retr.c (retrieve_url): Free SUF.
10974
10975         * all: Removed lots of unnecessary .h dependencies.
10976
10977         * html.c (global_state): Made static.
10978
10979         * utils.h (ALLOCA_ARRAY): New macro.
10980
10981         * main.c (main): New option `--cut-dirs'.
10982
10983         * url.c (construct): Use alloca() for T.
10984
10985         * utils.c (mkdirhier): Use STRDUP_ALLOCA.
10986
10987         * host.c (_host_t): Moved from host.h.
10988         (struct host): Renamed from _host_t.
10989         (store_hostaddress): Use STRDUP_ALLOCA for INET_S.
10990         (realhost): Ditto.
10991
10992         * host.h: Don't include url.h.
10993
10994         * ftp.c (LIST_FILENAME): Moved from ftp.h.
10995
10996         * init.c (DEFAULT_FTP_ACCT): Moved from ftp.h.
10997
10998         * main.c (main): Enable log if the output goes to a TTY.
10999
11000         * connect.h: Removed unused constant `BACKLOG'.
11001
11002         * config.h.in: Check for isatty().
11003
11004         * Makefile.in (LINK): Use CFLAGS when linking.
11005
11006 1998-01-27  Hrvoje Niksic  <hniksic@srce.hr>
11007
11008         * mswindows.c (ws_hangup): Use redirect_output().
11009
11010         * main.c (redirect_output_signal): New function; use
11011         redirect_output().
11012
11013         * log.c (redirect_output): New function, based on hangup(), which
11014         is deleted.
11015
11016         * log.c (vlogmsg): New function.
11017
11018         * wget.h (DEBUGP): Use debug_logmsg().
11019
11020         * main.c (hangup): Use it.
11021
11022         * log.c (log_dump): New function.
11023
11024         * utils.h (DO_REALLOC): Use `long' for various sizes.
11025
11026         * http.c (hskip_lws): Use `while', for clarity.
11027         (HTTP_DYNAMIC_LINE_BUFFER): New constant.
11028         (fetch_next_header): Use it instead of DYNAMIC_LINE_BUFFER.
11029
11030         * ftp-basic.c (FTP_DYNAMIC_LINE_BUFFER): New constant.
11031         (ftp_response): Use it instead of DYNAMIC_LINE_BUFFER.
11032
11033         * utils.c (DYNAMIC_LINE_BUFFER): Moved from utils.c.
11034         (LEGIBLE_SEPARATOR): Ditto.
11035         (FILE_BUFFER_SIZE): Ditto.
11036
11037         * retr.c (BUFFER_SIZE): Moved from retr.h.
11038
11039         * log.c: New file.
11040         (logmsg): Moved from utils.c.
11041         (debug_logmsg): New function.
11042
11043         * mswindows.h: Include it here.
11044
11045         * init.c: Ditto.
11046
11047         * utils.c: Don't include <windows.h>.
11048
11049 1998-01-25  Hrvoje Niksic  <hniksic@srce.hr>
11050
11051         * host.c (ftp_getaddress): Ditto.
11052
11053         * main.c (main): Use it.
11054
11055         * utils.h (STRDUP_ALLOCA): New macro.
11056
11057         * init.c: Prepend `wget: ' to error messages printed on stderr.
11058
11059         * utils.c (mkdirhier): Renamed from mymkdir.
11060         (touch): Renamed from my_touch.
11061         (pwd_cuserid): Renamed from my_cuserid().
11062
11063 1998-01-24  Andy Eskilsson  <andy.eskilsson@telelogic.se>
11064
11065         * utils.c (accdir): Process wildcards.
11066         (proclist): New function.
11067         (accdir): Use it to avoid code repetition.
11068
11069 1998-01-24  Hrvoje Niksic  <hniksic@srce.hr>
11070
11071         * recur.c (parse_robots): Respect opt.useragent; use alloca().
11072
11073         * http.c (gethttp): Construct useragent accordingly.
11074
11075         * version.c: Changed version string to numbers-only.
11076
11077         * main.c (print_help): List all the options.
11078
11079         * mswindows.c (windows_main_junk): Initialize argv0 here.
11080
11081 1998-01-24  Karl Heuer  <kwzh@gnu.org>
11082
11083         * netrc.c (search_netrc): Initialize `l' only after processing
11084         netrc.
11085
11086         * main.c (main): Don't trap SIGHUP if it's being ignored.
11087
11088 1998-01-24  Hrvoje Niksic  <hniksic@srce.hr>
11089
11090         * all: Use logmsg().
11091
11092         * utils.c (time_str): Moved from retr.c.
11093         (logmsg): New function.
11094         (logmsg_noflush): Ditto.
11095
11096         * rbuf.c: New file, moved buf_* functions here.
11097
11098         * ftp.c (ftp_expected_bytes): Moved from ftp-basic.c.
11099
11100         * ftp-basic.c (ftp_rest): Use prnum().
11101
11102         * ftp-basic.c: Ditto.
11103
11104         * ftp.c: Use the new reading functions and macros.
11105
11106         * retr.c (buf_initialize): New function.
11107         (buf_initialized_p): Ditto.
11108         (buf_uninitialize): Ditto.
11109         (buf_fd): Ditto.
11110
11111         * http.c (fetch_next_header): Use the BUF_READCHAR macro for
11112         efficiency.
11113         (gethttp): Use alloca() where appropriate.
11114
11115         * retr.c (buf_readchar): Use it.
11116         (buf_peek): Use rstreams.
11117
11118         * retr.h (BUF_READCHAR): New macro.
11119
11120         * init.c (home_dir): Rewritten for clarity.
11121         (init_path): Ditto.
11122
11123         * mswindows.c (ws_backgnd): Made static.
11124         (read_registry): Ditto.
11125         (ws_cleanup): Ditto.
11126         (ws_handler): Ditto.
11127
11128 1998-01-23  Hrvoje Niksic  <hniksic@srce.hr>
11129
11130         * alloca.c: New file.
11131
11132         * Makefile.in (ALLOCA): Define.
11133
11134         * mswindows.c (ws_help): Constify.
11135         (ws_help): Use alloca.
11136
11137         * mswindows.c: Reformat.
11138
11139         * all: Added _(...) annotations for I18N snarfing and translation.
11140
11141         * host.c (ftp_getaddress): Nuke SYSINFO.
11142         (ftp_getaddress): Don't use getdomainname().
11143         (ftp_getaddress): Use uname(), where available.
11144
11145         * http.c (gethttp): Protect a stray fprintf().
11146
11147         * init.c (settime): New function.
11148         (setval): Treat WAIT specially, allowing suffixes like `m' for
11149         minutes, etc.
11150
11151 1998-01-21  Hrvoje Niksic  <hniksic@srce.hr>
11152
11153         * url.c (get_urls_html): Use alloca() for TEMP.
11154
11155 1998-01-21  Jordan Mendelson  <jordy@wserv.com>
11156
11157         * url.c (rotate_backups): New function.
11158
11159         * http.c (gethttp): Ditto.
11160
11161         * ftp.c (getftp): Rotate backups.
11162
11163 1997-12-18  Hrvoje Niksic  <hniksic@srce.hr>
11164
11165         * all: Renamed nmalloc(), nrealloc() and nstrdup() to xmalloc(),
11166         xrealloc() and xstrdup().  Use the new functions.
11167
11168         * url.c (decode_string): Made static.
11169         (has_proto): Ditto.
11170         (parse_dir): Ditto.
11171         (parse_uname): Ditto.
11172         (mkstruct): Ditto.
11173         (construct): Ditto.
11174         (construct_relative): Ditto.
11175
11176         * retr.c (show_progress): Made static.
11177
11178         * recur.c (robots_url): Made static.
11179         (retrieve_robots): Ditto.
11180         (parse_robots): Ditto.
11181         (robots_match): Ditto.
11182
11183         * main.h: Removed.
11184
11185         * main.c (printhelp): Made static.
11186         (hangup): Ditto.
11187
11188         * init.c (comind): Made static.
11189         (defaults): Ditto.
11190         (init_path): Ditto.
11191         (run_wgetrc): Ditto.
11192         (onoff): Ditto.
11193         (setonoff): Ditto.
11194         (setnum): Ditto.
11195         (myatoi): Ditto.
11196         (getperms): Ditto.
11197         (setbytes): Ditto.
11198
11199         * http.c (fetch_next_header): Made static.
11200         (hparsestatline): Ditto.
11201         (hskip_lws): Ditto.
11202         (hgetlen): Ditto.
11203         (hgetrange): Ditto.
11204         (hgettype): Ditto.
11205         (hgetlocation): Ditto.
11206         (hgetmodified): Ditto.
11207         (haccepts_none): Ditto.
11208         (gethttp): Ditto.
11209         (base64_encode_line): Ditto.
11210         (mktime_from_utc): Ditto.
11211         (http_atotm): Ditto.
11212
11213         * html.c (idmatch): Made static.
11214
11215         * host.c (search_host): Made static.
11216         (search_address): Ditto.
11217         (free_hlist): Ditto.
11218
11219         * ftp.c (getftp): Made static.
11220         (ftp_loop_internal): Ditto.
11221         (ftp_get_listing): Ditto.
11222         (ftp_retrieve_list): Ditto.
11223         (ftp_retrieve_dirs): Ditto.
11224         (ftp_retrieve_glob): Ditto.
11225         (freefileinfo): Ditto.
11226         (delelement): Ditto.
11227
11228         * ftp-ls.c (symperms): Made static.
11229         (ftp_parse_unix_ls): Ditto.
11230
11231         * connect.c (select_fd): Made static.
11232
11233         * utils.c (xmalloc): Renamed from nmalloc.
11234         (xrealloc): Renamed from nrealloc.
11235         (xstrdup): Renamed from nstrdup.
11236
11237         * getopt.c (exchange): Use alloca.
11238
11239         * mswindows.c (mycuserid): Use strncpy.
11240
11241         * New files mswindows.c, mswindows.h, sysdep.h.  winjunk.c,
11242         systhings.h, windecl.h and winjunk.h removed.
11243
11244         * mswindows.c (sleep): New function.
11245
11246         * utils.c: Include <windows.h> under Windows.
11247
11248 1997-06-12  Darko Budor  <dbudor@zesoi.fer.hr>
11249
11250         * url.h (URL_UNSAFE): Change default under Windows.
11251
11252         * retr.c (retrieve_from_file): Respect opt.delete_after.
11253
11254         * main.c (main): Call ws_help on Windows.
11255
11256         * winjunk.c (windows_main_junk): New function.
11257
11258         * main.c (main): Junk-process argv[0].
11259
11260         * http.c (mktime_from_utc): Return -1 if mktime failed.
11261
11262         * http.c (http_loop): Ditto.
11263
11264         * ftp.c (ftp_loop_internal): Change title on Windows when using a
11265         new URL.
11266
11267         * winjunk.c (getdomainname): Lots of functions.
11268
11269 1997-06-12  Hrvoje Niksic  <hniksic@srce.hr>
11270
11271         * cmpt.c (strptime_internal): Handle years more correctly for
11272         `%y'.
11273
11274 1997-06-09  Mike Thomas <mthomas@reality.ctron.com>
11275
11276         * http.c (gethttp): Allocate enough space for
11277         `Proxy-Authorization' header.
11278
11279 1997-05-10  Hrvoje Niksic  <hniksic@srce.hr>
11280
11281         * version.c: Wget/1.4.5 is released.
11282
11283 1997-05-10  Hrvoje Niksic  <hniksic@srce.hr>
11284
11285         * retr.c (get_contents): Check return value of fwrite more
11286         carefully.
11287
11288 1997-03-30  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
11289
11290         * cmpt.c (strptime_internal) [case 'Y']: Always subtract 1900 from
11291         year, regardless of century.
11292
11293 1997-03-30  Hrvoje Niksic  <hniksic@srce.hr>
11294
11295         * utils.c (isfile): Use `lstat' instead of `stat'.
11296
11297 1997-03-29  Hrvoje Niksic  <hniksic@srce.hr>
11298
11299         * utils.c (numdigit): Use explicit test.
11300
11301 1997-03-21  Hrvoje Niksic  <hniksic@srce.hr>
11302
11303         * http.c (http_loop): Always use `url_filename' to get u->local.
11304
11305 1997-03-20  Hrvoje Niksic  <hniksic@srce.hr>
11306
11307         * url.c: Recognize https.
11308
11309 1997-03-13  Hrvoje Niksic  <hniksic@srce.hr>
11310
11311         * recur.c (recursive_retrieve): Lowercase just the host name.
11312
11313 1997-03-09  Hrvoje Niksic  <hniksic@srce.hr>
11314
11315         * url.c (get_urls_file): Use the correct test.
11316         (get_urls_html): Ditto.
11317
11318 1997-03-07  Hrvoje Niksic  <hniksic@srce.hr>
11319
11320         * connect.c: Reverted addrlen to int.
11321
11322         * init.c (parse_line): Check for -1 instead of NONE.
11323
11324         * version.c: Changed version to 1.4.5.
11325
11326 1997-02-17  Hrvoje Niksic  <hniksic@srce.hr>
11327
11328         * init.c: New option netrc.
11329         (initialize): Don't parse .netrc.
11330
11331         * cmpt.c (recursive): Return rp.
11332         (strptime_internal): Match the long strings first, the abbreviated
11333         second.
11334
11335 1997-02-16  Hrvoje Niksic  <hniksic@srce.hr>
11336
11337         * http.c (check_end): New function.
11338         (http_atotm): Use it.
11339
11340 1997-02-13  gilles Cedoc  <gilles@cedocar.fr>
11341
11342         * http.c (gethttp): Use them.
11343
11344         * init.c: New options proxy_user and proxy_passwd.
11345
11346 1997-02-14  Hrvoje Niksic  <hniksic@srce.hr>
11347
11348         * ftp.c (ftp_retrieve_list): Create links even if not relative.
11349
11350 1997-02-10  Hrvoje Niksic  <hniksic@srce.hr>
11351
11352         * recur.c (recursive_retrieve): Lowercase the host name, if the
11353         URL is not "optimized".
11354
11355         * host.c (realhost): Return l->hostname, even if it matches with
11356         host.
11357
11358 1997-02-10  Marin Purgar  <pmc@asgard.hr>
11359
11360         * connect.c: Make addrlen size_t instead of int.
11361         (conaddr): Ditto.
11362
11363 1997-02-09  Gregor Hoffleit  <flight@mathi.uni-heidelberg.DE>
11364
11365         * systhings.h: Define S_ISLNK on NeXT too.
11366
11367 1997-02-09  Hrvoje Niksic  <hniksic@srce.hr>
11368
11369         * version.c: Released 1.4.3.
11370
11371         * url.c: Futher update to list of protostrings.
11372         (skip_proto): Skip `//' correctly for FTP and HTTP.
11373
11374         * url.c (get_urls_html): Handle bogus `http:' things a little
11375         different.
11376
11377         * main.c (main): Removed `follow-ftp' from `f'.
11378         (main): Dumped the `prefix-files' and `file-prefix' options and
11379         features; old and bogus.
11380         (main): Exit on failed setval() in `-e'.
11381
11382         * http.c (fetch_next_header): Use it to detect header continuation
11383         correctly.
11384
11385         * retr.c (buf_peek): New function.
11386
11387 1997-02-08  Hrvoje Niksic  <hniksic@srce.hr>
11388
11389         * wget.h: Include time.h and stuff.
11390
11391 1997-02-08  Roger Beeman  <beeman@cisco.com>
11392
11393         * ftp.c: Include <time.h>
11394
11395 1997-02-07  Hrvoje Niksic  <hniksic@srce.hr>
11396
11397         * url.c (findurl): Would read over buffer limits.
11398
11399 1997-02-06  Hrvoje Niksic  <hniksic@srce.hr>
11400
11401         * ftp-ls.c (ftp_parse_unix_ls): Allow spaces in file names.
11402
11403 1997-02-05  Hrvoje Niksic  <hniksic@srce.hr>
11404
11405         * http.c (http_atotm): Initialize tm.is_dst.
11406
11407 1997-02-02  Hrvoje Niksic  <hniksic@srce.hr>
11408
11409         * http.c (gethttp): Don't print the number of retrieved headers.
11410
11411         * main.c (main): New option `--no-clobber', alias for `-nc'.
11412
11413         * url.c: Recognize `https://'.
11414
11415 1997-02-01  Hrvoje Niksic  <hniksic@srce.hr>
11416
11417         * host.c (herrmsg): Don't use h_errno.
11418
11419 1997-01-30  Hrvoje Niksic  <hniksic@srce.hr>
11420
11421         * host.c (accept_domain): Use it.
11422
11423         * main.c (main): New option `--exclude-domains'.
11424
11425         * retr.c (retrieve_url): Use it.
11426         (retrieve_url): Bail out when an URL is redirecting to itself.
11427
11428         * url.c (url_equal): New function.
11429
11430 1997-01-29  Hrvoje Niksic  <hniksic@srce.hr>
11431
11432         * connect.c: Include arpa/inet.h instead of arpa/nameser.h.
11433
11434         * http.c (mk_utc_time): New function.
11435         (http_atotm): Use it; handle time zones correctly.
11436
11437 1997-01-28  Hrvoje Niksic  <hniksic@srce.hr>
11438
11439         * http.c: Ditto.
11440
11441         * ftp-basic.c: Use it instead of WRITE.
11442
11443         * connect.c (iwrite): New function.
11444
11445 1997-01-27  Hrvoje Niksic  <hniksic@srce.hr>
11446
11447         * cmpt.c (mktime): New function.
11448
11449         * netrc.c: Include <sys/types.h>.
11450
11451         * main.c (main): Wouldn't recognize --spider.
11452
11453         * retr.c (rate): Use `B', `KB' and `MB'.
11454         (reset_timer,elapsed_time): Moved from utils.c.
11455
11456         * ftp.c (ftp_retrieve_list): Ditto.
11457
11458         * http.c (http_loop): Don't touch the file if opt.dfp.
11459
11460 1997-01-24  Hrvoje Niksic  <hniksic@srce.hr>
11461
11462         * cmpt.c: New file.
11463
11464         * ftp.c (ftp_retrieve_glob): New argument semantics.
11465         (ftp_retrieve_dirs): Use it.
11466         (ftp_loop): Ditto.
11467
11468         * html.c (htmlfindurl): Recognize `'' as the quote char.
11469
11470 1997-01-23  Hrvoje Niksic  <hniksic@srce.hr>
11471
11472         * ftp.c (ftp_loop_internal): Use it.
11473
11474         * utils.c (remove_link): New function.
11475
11476 1997-01-22  Hrvoje Niksic  <hniksic@srce.hr>
11477
11478         * retr.c (retrieve_url): Require STRICT redirection URL.
11479
11480         * url.c (parseurl): New argument STRICT.
11481
11482         * http.c (hparsestatline): Be a little-bit less strict about
11483         status line format.
11484
11485 1997-01-21  Hrvoje Niksic  <hniksic@srce.hr>
11486
11487         * http.c (gethttp): Use it.
11488
11489         * main.c (main): Don't use '<digit>' as options.
11490
11491         * init.c: New option ignore_length.
11492
11493         * http.c (gethttp): Ditto.
11494         (http_loop): Check for redirection without Location:.
11495         (gethttp): Don't print Length unless RETROKF.
11496
11497         * ftp.c (getftp): Use it.
11498
11499         * url.c (mkalldirs): New function.
11500
11501         * utils.c (mymkdir): Don't check for existing non-directory.
11502
11503         * url.c (mkstruct): Don't create the directory.
11504
11505 1997-01-20  Hrvoje Niksic  <hniksic@srce.hr>
11506
11507         * init.c (setval): Removed NO_RECURSION checks.
11508
11509 1997-01-19  Hrvoje Niksic  <hniksic@srce.hr>
11510
11511         * version.c: "Released" 1.4.3-pre2.
11512
11513         * recur.c (recursive_retrieve): Bypass host checking only if URL
11514         is ftp AND parent URL is not ftp.
11515
11516         * ftp-basic.c (ftp_request): Print out Turtle Power.
11517
11518         * ftp.c (ftp_loop): Call ftp_retrieve_glob with 0 if there's no
11519         wildcard.
11520         (ftp_retrieve_glob): Call ftp_loop_internal even on empty list, if
11521         not glob.
11522
11523         * http.c (gethttp): Be a little bit smarter about status codes.
11524
11525         * recur.c (recursive_retrieve): Always reset opt.recursive when
11526         dealing with FTP.
11527
11528 1997-01-18  Hrvoje Niksic  <hniksic@srce.hr>
11529
11530         * retr.c (retrieve_url): New variable location_changed; use it for
11531         tests instead of mynewloc.
11532         (retrieve_url): Allow heuristic adding of html.
11533
11534         * url.c (url_filename): Don't use the `%' in Windows file names.
11535
11536         * http.c (http_loop): Always time-stamp the local file.
11537
11538         * http.c (http_loop): Ditto.
11539
11540         * ftp.c (ftp_retrieve_list): Use it.
11541
11542         * utils.c (my_touch): New function.
11543
11544         * ftp.c (ftp_retrieve_list): Use #ifdef HAVE_STRUCT_UTIMBUF
11545         instead of #ifndef NeXT.
11546
11547         * utils.c (strptime): New version, by Ulrich Drepper.
11548
11549 1997-01-17  Hrvoje Niksic  <hniksic@srce.hr>
11550
11551         * http.c (haccepts_none): Renamed from `haccepts_bytes'.
11552         (gethttp): If haccepts_none(), disable ACCEPTRANGES.
11553         (http_loop): Would remove ACCEPTRANGES.
11554
11555         * ftp.c (getftp): Call ftp_list with NULL.
11556
11557 1997-01-15  Hrvoje Niksic  <hniksic@srce.hr>
11558
11559         * html.c (ftp_index): Don't print minutes and seconds if we don't
11560         know them; beautify the output.
11561
11562         * ftp.c (getftp): Don't close the socket on FTPNSFOD.
11563
11564 1997-01-14  Hrvoje Niksic  <hniksic@srce.hr>
11565
11566         * utils.c (strptime): New function.
11567         (strptime): Don't use get_alt_number.
11568         (strptime): Don't use locale.
11569         (match_string): Made it a function.
11570
11571 1997-01-12  Hrvoje Niksic  <hniksic@srce.hr>
11572
11573         * http.c (http_atotm): New function.
11574         (http_loop): Use it.
11575
11576         * atotm.c: Removed from the distribution.
11577
11578         * http.c (base64_encode_line): Rewrite.
11579
11580 1997-01-09  Hrvoje Niksic  <hniksic@srce.hr>
11581
11582         * ftp.c (getftp): Use ftp_expected_bytes; print size.
11583
11584         * ftp-basic.c (ftp_response): Use ftp_last_respline.
11585         (ftp_expected_bytes): New function.
11586
11587         * ftp.c (getftp): Print the unauthoritative file length.
11588
11589         * ftp-ls.c: Renamed from ftp-unix.c.
11590         (ftp_parse_ls): Moved from ftp.c.
11591         (ftp_parse_unix_ls): Recognize seconds in time spec.
11592         (ftp_parse_unix_ls): Recognize year-less dates of the previous
11593         year.
11594
11595 1997-01-08  Hrvoje Niksic  <hniksic@srce.hr>
11596
11597         * ftp-basic.c: Don't declare errno if #defined.
11598
11599         * host.c (ftp_getaddress): Check for sysinfo legally.
11600
11601 1997-01-08  Darko Budor  <dbudor@diana.zems.fer.hr>
11602
11603         * connect.c (iread): Use READ.
11604
11605 1996-12-23  Hrvoje Niksic  <hniksic@srce.hr>
11606
11607         * url.c: Recognize finger, rlogin, tn3270, mid and cid as valid
11608         schemes.
11609
11610 1996-12-22  Hrvoje Niksic  <hniksic@srce.hr>
11611
11612         * host.c (ftp_getaddress): Allow `.' in hostname.
11613
11614 1996-12-26  Darko Budor <dbudor@zems.fer.hr>
11615
11616         * wget.h: READ and WRITE macros for use instead of read and write
11617         on sockets, grep READ *.c, grep WRITE *.c
11618
11619         * wsstartup.c: new file - startup for winsock
11620
11621         * wsstartup.h: new file
11622
11623         * win32decl.h: new file - fixup for <errno.h> and winsock trouble
11624
11625         * configure.bat: Configure utility for MSVC
11626
11627         * src/Makefile.ms,config.h.ms: new files for use with MSVC 4.x
11628
11629 1996-12-22  Hrvoje Niksic  <hniksic@srce.hr>
11630
11631         * version.c: Released 1.4.3-pre.
11632
11633         * utils.c (prnum): Accept long.
11634         (legible): Use prnum().
11635
11636         * connect.c (make_connection): Accept port as short.
11637         (bindport): Ditto.
11638
11639         * http.c (gethttp): Use search_netrc.
11640
11641 1996-12-21  Hrvoje Niksic  <hniksic@srce.hr>
11642
11643         * ftp.c (getftp): Use search_netrc.
11644
11645         * netrc.c (free_netrc): New function.
11646
11647         * init.c (home_dir): New function.
11648
11649         * url.c (convert_links): Allow REL2ABS changes.
11650
11651 1996-12-21  Gordon Matzigkeit  <gord@gnu.ai.mit.edu>
11652
11653         * netrc.c: New file.
11654         (parse_netrc, maybe_add_to_list): New functions.
11655
11656 1996-12-17  Hrvoje Niksic  <hniksic@srce.hr>
11657
11658         * retr.c (retrieve_url): Reset opt.recursion before calling
11659         ftp_loop if it is reached through newloc.
11660
11661         * init.c (run_wgetrc): Print the wgetrc path too, when reporting
11662         error; don't use "Syntax error", since we don't know if it is
11663         really a syntax error.
11664
11665 1996-12-16  Hrvoje Niksic  <hniksic@srce.hr>
11666
11667         * utils.c (acceptable): Extract the filename part of the path.
11668
11669         * recur.c (recursive_retrieve): Call acceptable() with the right
11670         argument; would bug out on wildcards.
11671
11672         * init.c (parse_line): Likewise.
11673
11674         * html.c (htmlfindurl): Cast to char * when calling stuff.
11675
11676 1996-12-15  Hrvoje Niksic  <hniksic@srce.hr>
11677
11678         * ftp.c (getftp): Use ftp_pasv.
11679
11680         * ftp-basic.c (ftp_request): Accept NULL value.
11681         (ftp_pasv): New function.
11682
11683         * options.h (struct options): Add passive FTP option.
11684
11685 1996-12-15  Hrvoje Niksic  <hniksic@srce.hr>
11686
11687         * url.c (parseurl): Debug output.
11688
11689         * utils.c (path_simplify): New one, adapted from bash's
11690         canonicalize_pathname().
11691
11692 1996-12-14  Hrvoje Niksic  <hniksic@srce.hr>
11693
11694         * ftp.c (getftp): Don't discard the buffer.
11695
11696         * retr.c (get_contents): New parameter nobuf.
11697
11698 1996-12-13  Shawn McHorse  <riffraff@txdirect.net>
11699
11700         * html.c (htmlfindurl): Recognize <meta contents="d; URL=...".
11701
11702         * init.c (setval): Strip the trailing slashes on CVECDIR.
11703
11704 1996-12-13  Hrvoje Niksic  <hniksic@srce.hr>
11705
11706         * init.c: Make excludes and includes under CVECDIR instead of
11707         CVEC.
11708
11709 1996-12-13  Shawn McHorse  <riffraff@txdirect.net>
11710
11711         * url.c (get_urls_html): Skip "http:".
11712
11713 1996-12-13  Hrvoje Niksic  <hniksic@srce.hr>
11714
11715         * utils.c (strcasecmp): From glibc.
11716         (strncasecmp): Also.
11717         (strstr): Also.
11718
11719         * url.c: Added javascript: to the list of URLs prefixes.
11720
11721 1996-12-12  Shawn McHorse  <riffraff@txdirect.net>
11722
11723         * recur.c (retrieve_robots): Print the warning message only if
11724         verbose.
11725
11726 1996-12-12  Gregor Hoffleit  <flight@mathi.uni-heidelberg.DE>
11727
11728         * ftp.c (ftp_retrieve_list): Use NeXT old utime interface.
11729
11730 1996-12-12  Hrvoje Niksic  <hniksic@srce.hr>
11731
11732         * systhings.h: New file.
11733
11734         * ../configure.in: Check for utime.h
11735
11736         * ftp.c: Check whether we have unistd.h.
11737
11738 1996-11-27  Hrvoje Niksic  <hniksic@srce.hr>
11739
11740         * recur.c (recursive_retrieve): Send the canonical URL as referer.
11741         (recursive_retrieve): Call get_urls_html with the canonical URL.
11742
11743 1996-12-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11744
11745         * (configure.in, config.h.in, src/Makefile.in, src/*.[ch]): Add
11746         ansi2knr support for compilers which don't support ANSI style
11747         function prototypes and signatures.
11748
11749         * (aclocal.m4, src/ansi2knr.c, src/ansi2knr.1): New files.
11750
11751 1996-11-26  Hrvoje Niksic  <hniksic@srce.hr>
11752
11753         * url.c: Use it; Recognize paths ending with "." and ".." as
11754         directories.
11755         (url_filename): Append .n whenever file exists and could be a
11756         directory.
11757
11758         * url.h (ISDDOT): New macro.
11759
11760         * init.c (parse_line): Use unsigned char.
11761
11762         * url.c (get_urls_html): Cast to unsigned char * when calling
11763         htmlfindurl.
11764
11765         * html.c (htmlfindurl): Use unsigned char.
11766
11767         * version.c: Changed version to 1.4.3.
11768
11769 1996-11-25  Hrvoje Niksic  <hniksic@srce.hr>
11770
11771         * version.c: Released 1.4.2.
11772
11773         * ftp.c (getftp): Simplified assertion.
11774         (ftp_loop_internal): Remove symlink before downloading.
11775         (ftp_retrieve_list): Unlink the symlink name before attempting to
11776         create a symlink!
11777
11778         * options.h (struct options): Renamed print_server_response to
11779         server_response.
11780
11781         * ftp.c (rel_constr): Removed.
11782         (ftp_retrieve_list): Don't use it.
11783         (ftp_retrieve_list): Use opt.retr_symlinks.
11784
11785 1996-11-24  Hrvoje Niksic  <hniksic@srce.hr>
11786
11787         * main.c (main): New option retr_symlinks.
11788
11789         * url.c (convert_links): Print verbose message.
11790
11791 1996-11-24  Hrvoje Niksic  <hniksic@srce.hr>
11792
11793         * http.c (http_loop): Reset newloc in the beginning of function;
11794         would cause FMR in retrieve_url.
11795
11796 1996-11-23  Hrvoje Niksic  <hniksic@srce.hr>
11797
11798         * recur.c (convert_all_links): Find the URL of each HTML document,
11799         and feed it to get_urls_html; would bug out.
11800         (convert_all_links): Check for l2 instead of dl; removed dl.
11801
11802         * url.c (convert_links): Don't refer to freed newname.
11803
11804         * recur.c (recursive_retrieve): Add this_url to urls_downloaded.
11805
11806         * main.c (main): Print the OS_TYPE in the debug output, too.
11807
11808         * recur.c (recursive_retrieve): Check for opt.delete_after.
11809
11810         * main.c (main): New option delete-after.
11811
11812         * init.c (setval): Cleaned up.
11813
11814 1996-11-21  Hrvoje Niksic  <hniksic@srce.hr>
11815
11816         * Makefile.in (wget): Make `wget' the default target.
11817
11818         * ftp.c (ftp_loop_internal): Move noclobber checking out of the
11819         loop.
11820         (ftp_retrieve_list): Warn about non-matching sizes.
11821
11822         * http.c (http_loop): Made -nc non-dependent on opt.recursive.
11823
11824         * init.c (setnum): Renamed from setnuminf; New argument flags.
11825         (setval): Use it.
11826
11827         * main.c (main): Sorted the options.
11828         (main): New option --wait.
11829
11830 1996-11-21  Shawn McHorse  <riffraff@txdirect.net>
11831
11832         * html.c (htmlfindurl): Reset s->in_quote after getting out of
11833         quotes.
11834
11835 1996-11-20  Hrvoje Niksic  <hniksic@srce.hr>
11836
11837         * version.c: Changed version to 1.4.2.
11838
11839 1996-11-20  Hrvoje Niksic  <hniksic@srce.hr>
11840
11841         * version.c: Released 1.4.1.
11842
11843         * html.c (html_quote_string): New function.
11844         (ftp_index): Use it.
11845         (htmlfindurl): A more gentle ending debug message.
11846
11847         * ftp.c (ftp_loop): Check for opt.htmlify.
11848
11849         * init.c: New command htmlify.
11850
11851         * ftp.c (getftp): Nicer error messages, with `'-encapsulated
11852         strings.
11853         (ftp_loop): Print size of index.html.
11854
11855         * init.c (setval): Implement "styles".
11856
11857         * main.c (main): New option dotstyle.
11858
11859 1996-11-19  Hrvoje Niksic  <hniksic@srce.hr>
11860
11861         * ftp.c (getftp): Close the master socket in case of errors, after
11862         bindport().
11863
11864         * connect.c (bindport): Initialize msock to -1.
11865
11866         * ftp.c (getftp): Initialize dtsock to -1.
11867
11868         * connect.c (closeport): Don't close sock if sock == -1.
11869
11870 1996-11-18  Hrvoje Niksic  <hniksic@srce.hr>
11871
11872         * init.c (setnuminf): Nuked default value -- just leave unchanged.
11873         (setval): Don't send default values.
11874         (defaults): Use DEFAULT_TIMEOUT -- aaargh.
11875
11876         * options.h (struct options): Use long for dot_bytes.
11877
11878         * init.c (setquota): Renamed to setbytes.
11879         (setval): Use setbytes on DOTBYTES.
11880
11881 1996-11-17  Hrvoje Niksic  <hniksic@srce.hr>
11882
11883         * ftp.c (getftp): Initialize con->dltime.
11884
11885         * recur.c (recursive_retrieve): Use same_host instead of
11886         try_robots; simply load robots_txt whenever the host is changed.
11887         (recursive_retrieve): Free forbidden before calling parse_robots.
11888
11889 1996-11-16  Hrvoje Niksic  <hniksic@srce.hr>
11890
11891         * retr.c (show_progress): Use them.
11892
11893         * options.h (struct options): New options dot_bytes, dots_on_line
11894         and dot_spacing.
11895
11896 1996-11-16  Mark Boyns  <boyns@sdsu.edu>
11897
11898         * recur.c (recursive_retrieve): Retrieve directories regardless of
11899         acc/rej rules; check for empty u->file.
11900
11901 1996-11-14  Hrvoje Niksic  <hniksic@srce.hr>
11902
11903         * init.c (setval): Use it.
11904
11905         * utils.c (merge_vecs): New function.
11906
11907         * init.c (setval): Reset the list-type functions when encountering
11908         "".
11909
11910 1996-11-14  Shawn McHorse  <riffraff@txdirect.net>
11911
11912         * recur.c (recursive_retrieve): Use base_url instead of this_url
11913         for no_parent.
11914
11915 1996-11-14  Shawn McHorse  <riffraff@txdirect.net>
11916
11917         * html.c (htmlfindurl): Reset s->in_quote after exiting the quote.
11918
11919 1996-11-13  Hrvoje Niksic  <hniksic@srce.hr>
11920
11921         * utils.c (sepstring): Rewrote; don't use strtok.
11922
11923         * recur.c (recursive_retrieve): Enter assorted this_url to slist
11924         when running the first time.
11925         (retrieve_robots): Warn to ignore errors when robots are loaded.
11926
11927         * utils.c (load_file): Moved from url.c.
11928
11929         * http.c: Made static variables const too in h* functions.
11930
11931         * main.c (main): Renamed --continue-ftp to --continue.
11932
11933         * recur.c (recursive_retrieve): Use it.
11934
11935         * utils.c (frontcmp): New function.
11936
11937         * url.c (accdir): New function.
11938
11939         * html.c (htmlfindurl): Recognize <area href=...>.
11940
11941         * ftp.c (ftp_retrieve_dirs): Implemented opt.includes.
11942
11943         * init.c (setval): Free the existing opt.excludes and
11944         opt.includes, if available.
11945
11946         * main.c (main): New option -I.
11947
11948 1996-11-12  Hrvoje Niksic  <hniksic@srce.hr>
11949
11950         * ftp.c (ftp_retrieve_glob): Do not weed out directories.
11951
11952         * version.c: Changed version to 1.4.1.
11953
11954 1996-11-11  Hrvoje Niksic  <hniksic@srce.hr>
11955
11956         * version.c: Released 1.4.0.
11957
11958 1996-11-10  Hrvoje Niksic  <hniksic@srce.hr>
11959
11960         * main.c (main): Free com and val after parse_line.
11961         (printhelp): Reorder the listing.
11962
11963         * http.c: More robust header parsing.
11964
11965         * http.c: Allow any number of spaces, or no spaces, precede ':'.
11966         (hskip_lws): New function.
11967         (haccepts_bytes): New function.
11968         (gethttp): Use it.
11969
11970         * init.c (setval): Check header sanity.
11971         (setval): Allow resetting of headers.
11972
11973 1996-11-10  Hrvoje Niksic  <hniksic@srce.hr>
11974
11975         * http.c (http_loop): Don't use has_wildcards.
11976
11977         * http.c (gethttp): Free all_headers -- would leak.
11978
11979         * recur.c (recursive_retrieve): Initialize depth to 1 instead of
11980         0 -- this fixes a long-standing bug in -rl.
11981
11982 1996-11-09  Hrvoje Niksic  <hniksic@srce.hr>
11983
11984         * ftp.c: Use -1 as "impossible" value for con->fd.
11985
11986         * url.h (URL_SEPARATOR): Don't treat `*' and `+' as separators.
11987
11988         * init.c (parse_line): Use isalpha.
11989
11990         * ftp-unix.c: Use HAVE_UNISTD_H.
11991
11992         * mtch.c (has_wildcards): Don't match \.
11993
11994         * http.c (http_loop): Warn on HTTP wildcard usage.
11995
11996 1996-11-08  Hrvoje Niksic  <hniksic@srce.hr>
11997
11998         * url.c (url_filename): Do not create numbered suffixes if
11999         opt.noclobber -- would bug out on -nc.
12000
12001 1996-11-07  Hrvoje Niksic  <hniksic@srce.hr>
12002
12003         * recur.c (parse_robots): Don't chuck out the commands without
12004         arguments (`Disallow:<empty>' didn't work).
12005         (parse_robots): Compare versions lowercase.
12006         (parse_robots): Match on base_version, not version_string!
12007         (parse_robots): Handle comments properly.
12008         (parse_robots): Match versions in a sane way.
12009
12010         * init.c: Print nicer error messages.
12011
12012         * version.c: Changed version to 1.4.0.
12013
12014 1996-11-06  Hrvoje Niksic  <hniksic@srce.hr>
12015
12016         * version.c: Released 1.4.0-test2.
12017
12018         * init.c (run_wgetrc): Close fp.
12019
12020         * ftp.c (ftp_retrieve_dirs): Allocate the correct length for
12021         u->dir.
12022
12023 1996-11-06  Hrvoje Niksic  <hniksic@srce.hr>
12024
12025         * init.c (setquota): Allow inf as quota specification.
12026
12027 1996-11-05  Hrvoje Niksic  <hniksic@srce.hr>
12028
12029         * ftp.c (ftp_retrieve_dirs): Return QUOTEXC if quota exceeded.
12030         (ftp_retrieve_glob): Return QUOTEXC on quota exceeded.
12031
12032         * main.c (main): Check for quota by comparison with downloaded
12033         stuff, not from status.
12034
12035         * connect.c (select_fd): Should compile on HPUX without warnings now.
12036
12037         * ftp.c (ftp_get_listing): Check whether ftp_loop_internal
12038         returned RETROK.
12039
12040 1996-11-04  Hrvoje Niksic  <hniksic@srce.hr>
12041
12042         * ftp.c (ftp_retrieve_glob): Print the pattern nicely.
12043         (getftp): Return FTPRETRINT on control connection error.
12044
12045         * html.c (htmlfindurl): Recognize <embed src=...> and
12046         <bgsound src=...>.
12047         (ftp_index): Handle username and password correctly.
12048
12049         * main.c (main): Made `-np' a synonim for --no-parent.
12050
12051 1996-11-02  Hrvoje Niksic  <hniksic@srce.hr>
12052
12053         * ftp.c (ftp_loop): Check for opt.ftp_glob too before calling
12054         ftp_retrieve_glob.
12055
12056         * version.c: Changed version to 1.4.0-test2.
12057
12058 1996-11-02  Hrvoje Niksic  <hniksic@srce.hr>
12059
12060         * version.c: Released 1.4.0-test1.
12061
12062         * url.c (str_url): Don't use sprintf when creating %2F-prefixed
12063         directory.
12064         (convert_links): Removed definition of make_backup.
12065
12066         * http.h: Removed definition of MAX_ERROR_LENGTH.
12067
12068         * host.c (ftp_getaddress): Check for "(none)" domains.
12069
12070         * ftp.c (ftp_retrieve_dirs): Docfix.
12071
12072         * http.c (gethttp): Use ou->referer instead of u->referer.
12073
12074         * retr.c (retrieve_url): Reset u to avoid freeing pointers twice;
12075         this was known to cause coredumps on Linux.
12076
12077         * html.c (ftp_index): Cast the argument to local_time to time_t *.
12078
12079 1996-11-01  Hrvoje Niksic  <hniksic@srce.hr>
12080
12081         * connect.c (select_fd): Use exceptfds -- once and for all.
12082
12083         * retr.c (retrieve_from_file): Free filename after
12084         recursive_retrieve.
12085         (retrieve_from_file): Send RFIRST_TIME to recursive_retrieve on
12086         first-time retrieval.
12087         (retrieve_from_file): Return uerr_t; new argument, count.
12088         (retrieve_from_file): Break on QUOTEXC.
12089
12090         * init.c (setquota): Fixed a bug that caused rejection of
12091         non-postfixed values..
12092
12093 1996-10-30  Hrvoje Niksic  <hniksic@srce.hr>
12094
12095         * version.c: Changed name to wget.
12096
12097         * connect.c (iread): Smarter use of select.
12098         (select_fd): Set errno on timeout.  If not timeout, return 1
12099         instead of 0.
12100
12101 1996-10-29  Hrvoje Niksic  <hniksic@srce.hr>
12102
12103         * ftp.c (ftp_loop_internal): Don't use con->cmd before
12104         establishing it.
12105
12106 1996-10-26  Hrvoje Niksic  <hniksic@srce.hr>
12107
12108         * http.c (gethttp): Send correct referer when using proxy.
12109         (gethttp): Use struct urlinfo ou to access the relevant data; send
12110         correct authorization in all cases.
12111
12112         * host.c (same_host): Use skip_uname to skip username and
12113         password.
12114
12115         * url.c (skip_uname): New function.
12116         (parseurl): Use it.
12117
12118         * host.c (same_host): Do not assume HTTP -- same_host should now
12119         be totally foolproof.
12120
12121         * url.c (skip_proto): New function.
12122         (parse_uname): Use it.
12123
12124         * http.c (gethttp): Create local user and passwd from what is
12125         given.
12126
12127         * url.c (parseurl): Check for HTTP username and password too.
12128
12129 1996-10-25  Hrvoje Niksic  <hniksic@srce.hr>
12130
12131         * config.h.in: Removed #define gethostbyname R...
12132
12133 1996-10-22  Hrvoje Niksic  <hniksic@srce.hr>
12134
12135         * version.c: Changed version to 1.4.0-test1.
12136
12137 1996-10-21  Hrvoje Niksic  <hniksic@srce.hr>
12138
12139         * version.c: "Released" 1.4b29.
12140
12141         * recur.c (recursive_retrieve): Check for no_parent.
12142
12143         * init.c (setval): Option update.
12144
12145         * main.c (main): New option no-parent.
12146
12147         * options.h (struct options): New variable no_parent.
12148
12149         * recur.c (recursive_retrieve): Only files are checked for
12150         opt.accepts and opt.rejects.
12151         (recursive_retrieve): Check directories for opt.excludes.
12152         (recursive_retrieve): Make the dir absolute when checking
12153         opt.excludes.
12154
12155         * html.c (htmlfindurl): Recognize <applet code=...> and <script
12156         src=...>
12157
12158 1996-10-18  Hrvoje Niksic  <hniksic@srce.hr>
12159
12160         * ftp.c (getftp): Do not line-break assert entries at all.
12161         (ftp_retrieve_dirs): docfix.
12162
12163         * connect.c (select_fd): Use fd + 1 as nfds.
12164
12165         * version.c: Changed version to 1.4b29.
12166
12167 1996-10-18  Hrvoje Niksic  <hniksic@srce.hr>
12168
12169         * version.c: "Released" 1.4b28.
12170
12171         * ftp.c (ftp_loop_internal): Check whether f->size == len and
12172         don't continue the loop if it is.
12173         (ftp_get_listing): Remove list_filename on unsuccesful loop.
12174
12175 1996-10-17  Hrvoje Niksic  <hniksic@srce.hr>
12176
12177         * ftp.c (ftp_loop_internal): Use strcpy to initialize tmp.
12178         (getftp): Do not use multiline assert.
12179
12180         * http.c (hparsestatline): Use mjr and mnr instead of major and
12181         minor, which don't compile on Ultrix.
12182         (http_loop): Use strcpy() to initialize tmp.
12183
12184         * all: Geturl -> Fetch
12185
12186 1996-10-17  Hrvoje Niksic  <hniksic@srce.hr>
12187
12188         * recur.c (parse_robots): Fixed an off-by-one bug when looking for
12189         ':'.
12190
12191         * html.c (htmlfindurl): Fixed several possible off-by-one bugs by
12192         moving `bufsize &&' to the beginning of each check in for-loops.
12193
12194         * recur.c (parse_robots): Close fp on exit.
12195
12196         * url.c (mymkdir): Check for each directory before creating.
12197
12198 1996-10-16  Hrvoje Niksic  <hniksic@srce.hr>
12199
12200         * version.c: Changed version to 1.4b28.
12201
12202 1996-10-16  Hrvoje Niksic  <hniksic@srce.hr>
12203
12204         * version.c: "Released" 1.4b27.
12205
12206         * init.c (parse_line): Use isspace.
12207         (parse_line): Free *com on all errors.
12208
12209         * ftp.c (ftp_loop): Change FTPOK to RETROK before exiting.
12210         (delelement): Use next instead of f->next and prev instead of
12211         f->prev.
12212         (delelement): Free the members of the deleted element.
12213
12214         * http.c (http_loop): Do not return RETROK on code != 20x.
12215
12216         * init.c (cleanup): Free opt.user_header.
12217         (cleanup): Free opt.domains.
12218
12219         * url.c (freelists): Moved to cleanup().
12220
12221         * http.c (hparsestatline): Docfix.
12222
12223         * main.c (main): Return with error status on unsuccesful
12224         retrieval.
12225
12226         * init.c (setval): Do not remove listing when mirroring.
12227
12228         * url.c (url_filename): Use opt.fileprefix.
12229
12230         * ftp.c (ftp_get_listing): Use url_filename to get filename for
12231         .listing.
12232
12233         * main.c (main): New option: -rn.
12234
12235 1996-10-15  Hrvoje Niksic  <hniksic@srce.hr>
12236
12237         * Makefile.in (RM): Added RM = rm -f.
12238
12239         * host.c (clean_hosts): New function.
12240         (free_hlist): Just free the list, no reset.
12241
12242         * version.c: Changed version to 1.4b27.
12243
12244 1996-10-13  Hrvoje Niksic  <hniksic@srce.hr>
12245
12246         * version.c: "Released" 1.4b26.
12247
12248         * retr.c (retrieve_from_file): If call get_urls_html with
12249         opt.spider to make it silent in spider mode.
12250
12251         * url.c (str_url): Use CLEANDUP instead of URL_CLEANSE.
12252
12253         * url.h (CLEANDUP): New macro.
12254
12255         * http.c (gethttp): Fixed a bug that freed location only when it
12256         was NULL.
12257
12258         * retr.c (retrieve_url): Free url if it will not be stored,
12259         i.e. newloc is NULL.
12260
12261         * html.c (htmlfindurl): Handle exiting from quotes correctly; the
12262         old version would bug out on <a href="x#a"href="y">.
12263
12264         * html.h (state_t): New member in_quote.
12265
12266         * html.c (htmlfindurl): Free s->attr at the beginning of
12267         attr-loop.
12268
12269         * recur.c (recursive_retrieve): Recognize RCLEANUP.
12270         (tried_robots): Make hosts a global variable.
12271         (recursive_retrieve): Free constr after URL host optimization.
12272         (tried_robots): Free urlinfo before exiting.
12273
12274         * utils.c (free_slist): New function.
12275
12276         * recur.c (recursive_retrieve): Use flags to add cleanup
12277         possibility.
12278
12279         * main.c (main): Free filename after recursive_retrieve.
12280
12281         * http.c (gethttp): Store successful responses too.
12282
12283 1996-10-12  Hrvoje Niksic  <hniksic@srce.hr>
12284
12285         * all: Constified the whole source.  This required some minor
12286         changes in many functions in url.c, possibly introducing bugs -- I
12287         hope not.
12288
12289         * ftp-basic.c: Removed last_respline.
12290
12291         * http.c (gethttp): Free type.
12292
12293         * host.c (same_host): Free real1 and real2.
12294
12295         * main.c (main): New option --spider.
12296
12297         * retr.c (get_contents): Don't reset errno.
12298
12299         * main.c (main): Sorted the options.
12300
12301         * connect.c (iread): Set errno to ETIMEDOUT only if it was left
12302         uninitialized by select().
12303
12304         * http.c (http_loop): Print the time when the connection is
12305         closed.
12306         (gethttp): Debug-print the HTTP request.
12307
12308 1996-10-11  Hrvoje Niksic  <hniksic@srce.hr>
12309
12310         * connect.c (iread): Do not try reading after timeout.
12311
12312         * main.c (main): Would bug out on -T.
12313
12314         * connect.c (select_fd): Do not use exceptfds.
12315         (iread): Set ETIMEDOUT on select_fd <= 0.
12316
12317         * version.c: Changed version to 1.4b26.
12318
12319 1996-10-10  Hrvoje Niksic  <hniksic@srce.hr>
12320
12321         * version.c: "Released" 1.4b25.
12322
12323         * ftp-unix.c (ftp_parse_unix_ls): Ignore lines without file name
12324         or link name.
12325
12326         * http.c (gethttp): Add errcode to struct hstat.
12327         (http_loop): Use it.
12328
12329         * url.c (no_proxy_match): Simplify using char** for no_proxy.
12330
12331         * options.h (struct options): Make opt.no_proxy a vector.
12332
12333         * utils.c (sepstring): Use !*s instead of !strlen(s).
12334
12335         * init.c (setval): Set opt.maxreclevel to 0 on --mirror.
12336         (getperms): Use ISODIGIT instead of isdigit.
12337
12338         * ftp.c (getftp): Print time.
12339
12340         * main.c (main): Use legible output of downloaded quantity.
12341
12342         * ftp.c (getftp): Use elapsed_time().
12343         (ftp_loop_internal): Use rate().
12344
12345         * http.c (http_loop): Add download ratio output; Use rate().
12346
12347         * utils.c (rate): New function.
12348
12349 1996-10-09  Hrvoje Niksic  <hniksic@srce.hr>
12350
12351         * http.c (http_loop): Use timer.
12352
12353         * ftp.c: Split to ftp-basic.c and ftp.c
12354
12355         * utils.c (reset_timer): New function.
12356         (elapsed_time): New function.
12357
12358         * retr.c (show_progress): Make bytes_in_line and offs long; should
12359         work on 16-bit machines.
12360
12361 1996-10-08  Hrvoje Niksic  <hniksic@srce.hr>
12362
12363         * url.c (in_acclist): New argument backward.
12364
12365         * ftp.c (ftp_retrieve_glob): Use acceptable() to determine whether
12366         a file should be retrieved according to suffix.
12367         (ftp_get_listing): Check the return value of unlink; Do not call
12368         ftp_retrieve_dirs if depth reached maxreclevel.
12369         (ftp_retrieve_dirs): Check whether the directory is in
12370         exclude-list.
12371
12372         * main.c (main): Print the version number at the beginning of
12373         DEBUG output.
12374         (main): Use strrchr when creating exec_name.
12375
12376         * ftp.c (ftp_retrieve_glob): Do not close control connection.
12377
12378         * version.c: Changed version to 1.4b25.
12379
12380 1996-10-07  Hrvoje Niksic  <hniksic@srce.hr>
12381
12382         * version.c: "Released" 1.4b24.
12383
12384         * Makefile.in: Rewrite.
12385
12386         * ftp.c (ftp_loop_internal): Likewise.
12387
12388         * retr.c (time_str): Check for failed time().
12389
12390         * html.c (htmlfindurl): Recognize <fig src> and <overlay src> from
12391         HTML3.0.
12392
12393         * retr.c (time_str): Return time_t *.
12394
12395         * connect.c (bindport): Close msock on unsuccesful bind.
12396         (bindport): The same for getsockname and listen.
12397
12398         * retr.c (retrieve_url): Allow any number of retries on
12399         proxy.
12400
12401         * http.c (gethttp): Do not treat errno == 0 as timeout.
12402         (http_loop): Likewise.
12403         (http_loop): Cosmetic changes.
12404
12405         * connect.c (iread): Set errno to ETIMEDOUT in case of timeout.
12406
12407         * retr.c (get_contents): Reset errno.
12408
12409         * ftp.c (getftp): Minor fixes.
12410
12411 1996-10-06  Hrvoje Niksic  <hniksic@srce.hr>
12412
12413         * http.c: Do not use backups.
12414
12415         * geturl.1 (WARNING): Warn that man-page could be obsolete.
12416
12417         * getopt.c (getopt_long): Moved to getopt.c
12418
12419         * geturl.texi: Enhanced.
12420
12421         * main.c (main): Use it.
12422
12423         * recur.c (convert_all_links): New function.
12424
12425         * utils.c (add_slist): New argument flags.
12426
12427         * recur.c (recursive_retrieve): Update a list of downloaded URLs.
12428         (parse_robots): Do not chuck out empty value fields.
12429         (parse_robots): Make yourself welcome on empty Disallow.
12430
12431         * version.c: Changed version to 1.4b24.
12432
12433 1996-10-06  Hrvoje Niksic  <hniksic@srce.hr>
12434
12435         * version.c: "Released" 1.4b23.
12436
12437         * ftp.c (ftp_loop_internal): Get the time after getftp.
12438
12439         * Makefile.in (install.info): New target.
12440         (install): Use it.
12441
12442         * http.c (http_loop): Fix output when doing -O.
12443
12444 1996-10-05  Hrvoje Niksic  <hniksic@srce.hr>
12445
12446         * geturl.texi: New file.
12447
12448         * main.c (main): Do not print the warnings and download summary if
12449         opt.quiet is set.
12450
12451         * version.c: Changed version to 1.4b23.
12452
12453 1996-10-05  Hrvoje Niksic  <hniksic@srce.hr>
12454
12455         * "Released" 1.4b22.
12456
12457         * atotm.c (atotm): Use True and False instead of TRUE and FALSE,
12458         to avoid redefinition warnings.
12459
12460         * host.c (store_hostaddress): Use memcpy() to copy the address
12461         returned by inet_addr.
12462
12463         * version.c: Changed version to 1.4b22.
12464
12465 1996-10-04  Hrvoje Niksic  <hniksic@srce.hr>
12466
12467         * version.c: "Released" 1.4b21.
12468
12469         * ftp-unix.c (ftp_parse_ls): Renamed to ftp_parse_unix_ls.
12470
12471         * ftp.c (ftp_port): Use conaddr.
12472         (getftp): Print the file length.
12473         (ftp_retrieve_list): Check the stamps of plain files only.
12474
12475         * connect.c (closeport): Do not call shutdown().
12476         (conaddr): New function.
12477
12478         * html.c (ftp_index): Made it dfp-aware.
12479
12480         * init.c (cleanup): New name of freemem. Close opt.dfp.
12481
12482         * ftp.c (getftp): Use opt.dfp if it is set.
12483
12484         * ftp-unix.c (ftp_parse_ls): Recognize time in h:mm format.
12485
12486         * ftp.c (ftp_retrieve_dirs): Fixed a bug that caused incorrect
12487         CWDs to be sent with recursive FTP retrievals.
12488
12489 1996-10-03  Hrvoje Niksic  <hniksic@srce.hr>
12490
12491         * recur.c (parse_robots): Made it more compliant with "official"
12492         specifications.
12493
12494         * http.c: New function.
12495
12496         * ftp-unix.c (ftp_parse_ls): Added better debug output.
12497
12498         * ftp.c (getftp): Print out the LIST in case of
12499         opt.print_server_response.
12500
12501         * version.c: Changed version to 1.4b21.
12502
12503 1996-10-01  Hrvoje Niksic  <hniksic@srce.hr>
12504
12505         * version.c: "Released" 1.4b20.
12506
12507         * README: Update.
12508
12509         * http.c (gethttp): Preset lengths of various headers instead of
12510         calculating them dynamically.
12511         (gethttp): Check for 206 partial contents.
12512
12513 1996-09-30  Hrvoje Niksic  <hniksic@srce.hr>
12514
12515         * configure.in: Set SYSTEM_GETURLRC to $libdir/geturlrc
12516
12517         * http.c (gethttp): Send the port number in the Host: header.
12518
12519 1996-09-29  Hrvoje Niksic  <hniksic@srce.hr>
12520
12521         * http.c (gethttp): Send host: header.
12522         (gethttp): Add the possibility of user-defined headers.
12523         (gethttp): Move decision about pragma: no-cache to http_loop,
12524         where it belongs.
12525         (gethttp): Pass a struct instead of enormous argument list.
12526         (http_loop): Use a new, fancier display format.
12527         (ftp_loop): Likewise.
12528
12529         * main.c: (hangup): Turn off buffering of the new log file.
12530
12531         * install-sh: Likewise.
12532
12533         * config.sub: Replace with the one in autoconf-2.10
12534
12535         * geturl.1: Update.
12536
12537         * init.c: New options httpuser and httppasswd.
12538
12539         * http.c: (base64_encode_line): New function.
12540         (gethttp): Send authentication.
12541
12542         * connect.c (make_connection): Use store_hostaddress.
12543
12544 1996-09-28  Hrvoje Niksic  <hniksic@srce.hr>
12545
12546         * host.c (store_hostaddress): New function.
12547
12548         * NEWS: Update.
12549
12550         * http.c (hgetrange): New function.
12551         (gethttp): Use ranges.
12552
12553         * utils.c (numdigit): Accept long instead of int.
12554
12555         * http.c (http_loop): Add restart capabilities.
12556
12557         * ftp.c (ftp_retrieve_glob): Fixed a bug that could cause matchres
12558         being used uninitialized.
12559         (ftp_retrieve_list): Similar fix.
12560
12561         * host.c (add_hlist): Fixed a bug that could cause cmp being used
12562         uninitialized.
12563
12564         * url.c (construct_relative): New function.
12565
12566         * recur.c (recursive_retrieve): Use it.
12567
12568         * retr.c (convert_links): New function.
12569
12570 1996-09-27  Hrvoje Niksic  <hniksic@srce.hr>
12571
12572         * url.c (free_urlpos): New function.
12573
12574         * recur.c (recursive_retrieve): Adapt.
12575
12576         * url.c (get_urls_html): Return a linked list instead of a vector.
12577
12578         * url.c (get_urls_file): Return a linked list instead of a vector.
12579
12580         * geturl.1: Update.
12581
12582         * http.c (gethttp): Implement it.
12583
12584         * init.c (setval): New option: SAVEHEADERS
12585
12586         * ftp.c (ftp_loop_internal): Do not set restval if listing is to
12587         be retrieved. Lack of this test caused bugs when the connection
12588         was lost during listing.
12589
12590         * retr.c (retrieve_url): Fixed a bug that caused
12591         coredumps. *newloc is now reset by default.
12592         (retrieve_url): Lift the twenty-tries limit on proxies.
12593
12594         * version.c: Changed version to 1.4b20.
12595
12596 1996-09-20  Hrvoje Niksic  <hniksic@srce.hr>
12597
12598         * version.c: "Released" 1.4b19.
12599
12600 1996-09-19  Hrvoje Niksic  <hniksic@srce.hr>
12601
12602         * ftp.c (ftp_loop_internal): Renamed from ftp_1fl_loop.
12603         (getftp): Changed prototype to accept ccon *.
12604
12605 1996-09-17  Hrvoje Niksic  <hniksic@srce.hr>
12606
12607         * ftp.c (ftp_retrieve_list): Fixed a bug that caused setting
12608         incorrect values to files pointed to by symbolic links.
12609         (ftp_1fl_loop): Do not count listings among the downloaded URL-s.
12610
12611 1996-09-16  Hrvoje Niksic  <hniksic@srce.hr>
12612
12613         * url.c (mkstruct): Do not prepend "./" in front of a pathname.
12614
12615         * main.c (main): New option: --user-agent.
12616
12617         * geturl.1: Ditto.
12618
12619         * init.h: Ditto.
12620
12621         * init.c (setval): Ditto.
12622
12623         * main.c (main): Rename "server-headers" to "server-response".
12624
12625         * ftp-unix.c (ftp_parse_ls): Check for asterisks at the end of
12626         executables in 'ls -F' listings.
12627
12628 1996-09-15  Hrvoje Niksic  <hniksic@srce.hr>
12629
12630         * url.c (parseurl): Remove realloc() and sprintf().
12631         (str_url): Get rid of sprintf().
12632
12633         * recur.c (recursive_retrieve): Enable FTP recursion through proxy
12634         servers.
12635
12636         * url.h (URL_CLEANSE): Made it else-resistant.
12637         (USE_PROXY): New macro.
12638
12639 1996-09-14  Hrvoje Niksic  <hniksic@srce.hr>
12640
12641         * NEWS: Update.
12642
12643         * version.c: Changed version to 1.4b19.
12644
12645 1996-09-14  Hrvoje Niksic  <hniksic@srce.hr>
12646
12647         * version.c: "Released" 1.4b18.
12648
12649         * url.c: Made it reallocate space exponentially.
12650
12651 1996-09-14  Drazen Kacar  <dave@fly.cc.fer.hr>
12652
12653         * html.c (htmlfindurl): Added <frame src> and <iframe src> among
12654         the list of stuff to fetch.
12655
12656 1996-09-13  Hrvoje Niksic  <hniksic@srce.hr>
12657
12658         * url.c (get_urls_html): Fixed a bug that caused SIGSEGV's with
12659         -Fi.
12660
12661         * html.c (htmlfindurl): Rewrite.
12662
12663         * http.c (gethttp): Use opt.proxy_cache.
12664
12665         * main.c (main): Added --cache option.
12666
12667         * ftp.c (ftp_response): Print server response if opt.print_server
12668         response is set.
12669         (getftp): Print newlines after each request if the server response
12670         is to be printed.
12671         (ftp_response): Copy the last response line to last_respline.
12672
12673         * http.c (gethttp): Add Pragma: nocache for retried
12674         proxy-retrievals.
12675
12676         * ftp.c (getftp): Use it.
12677
12678         * retr.c (buf_discard): New function.
12679
12680         * ftp.c (ftp_response): Use buf_readchar().
12681         (getftp): Flush the control connection buffer before calling
12682         get_contents().
12683
12684         * retr.c (buf_readchar): New function.
12685         (buf_flush): New function.
12686         (get_contents): Use buf_readchar() instead of read(x, x, 1).
12687         (get_contents): Use buf_flush.
12688
12689 1996-09-12  Hrvoje Niksic  <hniksic@srce.hr>
12690
12691         * ftp.c: Incorporate changes to ftp_response.
12692
12693         * ftp.c (ftp_response): Allocate the server response dynamically,
12694         as in read_whole_line and fetch_next_header.
12695
12696         * utils.c (read_whole_line): Fixed a bug that prevented reading
12697         the last line if it is not \n-terminated. Also fixed a possible
12698         memory overflow.
12699
12700         * http.c (fetch_next_header): Return malloc-ed string as large as
12701         needed.
12702         (gethttp): Use new fetch_next_header.
12703
12704 1996-09-12  Hrvoje Niksic  <hniksic@srce.hr>
12705
12706         * http.c (hgetlen): Compute the header length the first time only.
12707         (hgettype): Ditto.
12708         (hgetlocation): Ditto.
12709         (hgetmodified): Ditto.
12710
12711 1996-09-11  Hrvoje Niksic  <hniksic@srce.hr>
12712
12713         * sample.geturlrc: Update.
12714
12715 1996-09-10  Hrvoje Niksic  <hniksic@srce.hr>
12716
12717         * http.c (http_loop): Ditto.
12718
12719         * ftp.c (getftp): Open the output file as binary.
12720
12721         * version.c: Changed version to 1.4b18.
12722
12723 1996-09-10  Hrvoje Niksic  <hniksic@srce.hr>
12724
12725         * version.c: "Released" 1.4b17.
12726
12727         * ftp-unix.c (ftp_parse_ls): If unable to open file, return NULL
12728         instead of failed assertion.
12729
12730 1996-09-09  Hrvoje Niksic  <hniksic@srce.hr>
12731
12732         * ftp.c (ftp_get_listing): Add a numbered suffix to LIST_FILENAME
12733         if a file of that name already exists.
12734
12735 1996-09-05  Hrvoje Niksic  <hniksic@srce.hr>
12736
12737         * ftp.c (ftp_1fl_loop): Handler FTPPORTERR and FOPENERR correctly.
12738
12739         * config.h.in: Define gethostbyname as Rgethostbyname when using
12740         Socks.
12741
12742         * configure.in: Check for -lresolv if using Socks.
12743
12744         * version.c: Changed version to 1.4b17.
12745
12746 1996-07-15  Hrvoje Niksic  <hniksic@srce.hr>
12747
12748         * version.c: "Released" 1.4b16.
12749
12750         * http.c (gethttp): More intelligent check for first line of HTTP
12751         response.
12752         (gethttp): Would bug out on time-stamping.
12753
12754         * version.c: Changed version to 1.4b16.
12755
12756 1996-07-11  Hrvoje Niksic  <hniksic@srce.hr>
12757
12758         * version.c: Released 1.4b15.
12759
12760         * http.c (http_loop): Print \n after the loop entry, not before.
12761
12762         * url.c (url_filename): Use ISDOT.
12763
12764         * url.h (ISDOT): New macro.
12765
12766         * recur.c (recursive_retrieve): Change only opt.recursive for
12767         following FTP.
12768
12769 1996-07-11  Antonio Rosella <antonio.rosella@agip.it>
12770
12771         * socks/geturl.cgi: Fixed version No.
12772
12773         * socks/download-netscape.html: Ditto.
12774
12775         * socks/download.html: Changed socks.html to download.html.
12776
12777 1996-07-11  Hrvoje Niksic  <hniksic@srce.hr>
12778
12779         * url.c (url_filename): Check for opt.dirstruct instead for
12780         opt.recursive && opt.dirstruct.
12781
12782         * init.c (defaults): Ditto.
12783         (defaults): Reset dirstruct by default.
12784         (setval): Set opt.dirstruct whenever setting recursive.
12785
12786         * init.h: Removed FORCEDIRHIER.
12787
12788         * INSTALL: Added -L to socks-description.
12789
12790         * version.c: Changed version to 1.4b15.
12791
12792 1996-07-10  Hrvoje Niksic  <hniksic@srce.hr>
12793
12794         * version.c: "Released" 1.4b14.
12795
12796         * geturl.1: Update AUTHOR to include Rosella as contributor.
12797
12798         * NEWS: Update.
12799
12800         * socks/geturl.cgi: Simplified command creation, nuked <blink>.
12801
12802         * socks/geturl.cgi: Wrap nutscape extensions within if $netscape.
12803         (cal_time): Fix == to eq.
12804
12805         * socks/geturl.cgi: GPL-ized with permission of A. Rosella.
12806
12807         * geturl.1 (hostname): Moved URL CONVENTIONS to the beginning.
12808
12809         * Makefile.in: Use @VERSION@.
12810
12811         * configure.in: Check version from version.c.
12812
12813         * socks/geturl.cgi: Changed /pub/bin/perl to /usr/bin/perl.
12814
12815         * socks/download.html: Created from download-netscape.html, made
12816         HTML-2.0 compliant.
12817
12818         * recur.c (recursive_retrieve): Set opt.force_dir_hier when
12819         following FTP links from recursions.
12820
12821 1996-07-09  Hrvoje Niksic  <hniksic@srce.hr>
12822
12823         * url.c (mymkdir): Fixed a bug that prevented mymkdir() to create
12824         absolute directories correctly.
12825
12826         * version.c: Changed version to 1.4b14.
12827
12828 1996-07-09  Hrvoje Niksic  <hniksic@srce.hr>
12829
12830         * version.c: "Released" 1.4b13.
12831
12832         * url.c (make_backup): New function.
12833
12834         * http.c (http_loop): Make a backup copy of the local file (using
12835         rename(2)) before opening it.
12836
12837         * main.c (main): Added --backups.
12838
12839         * host.c (ftp_getaddress): Bail out on failed mycuserid().
12840         (ftp_getaddress): Check for leading dot on MY_DOMAIN.
12841         (ftp_getaddress): Check for empty, null or (null) domain.
12842
12843         * url.c (get_urls_html): If this_url is NULL, the base must have a
12844         protocol.
12845         (parseurl): Use has_proto.
12846
12847         * retr.c (retrieve_url): Warn when proxy is used with more than 20
12848         retries.
12849
12850         * url.c (mkstruct): Create the directory (calling mymkdir()) only
12851         if it is not already there.
12852         (has_proto): New function.
12853         (get_urls_html): Eliminate the remaining call to findurl -- use
12854         has_proto.
12855
12856         * geturl.1: Ditto.
12857
12858         * main.c: Change -X to -x.
12859
12860         * url.c (url_filename): Simplify creation of filename if
12861         prefix_files is set.
12862         (url_filename): Simplify everything. And I do mean *everything*.
12863         (mkstruct): Add dir_prefix before hostname.
12864         (path_simplify): Fixed a bug that caused writing outside the path
12865         string in case of "." and ".." path strings.
12866
12867 1996-07-06  Hrvoje Niksic  <hniksic@srce.hr>
12868
12869         * init.c: Added --mirror.
12870
12871         * main.c (main): Added -X to force saving of directory hierarchy.
12872
12873         * ftp.c (ftp_retrieve_list): Added recursion depth counter.
12874         (ftp_retrieve_list): Check whether quota is exceeded.
12875
12876         * url.c (get_urls_html): Skip leading blanks for absolute URIs.
12877
12878         * http.c (gethttp): Use referer if present.
12879
12880         * recur.c (recursive_retrieve): Set u->referer before calling
12881         retrieve_url.
12882
12883         * url.c (newurl): Use memset to nullify the struct members.
12884         (freeurl): Free the referer field too.
12885
12886         * url.h: Added referer to urlinfo.
12887
12888         * geturl.1: Updated the manual to document some of the new features.
12889
12890         * utils.c (numdigit): Moved from url.c.
12891
12892         * README: Rewritten.
12893
12894         * config.h.in: Add the support for socks.
12895
12896         * configure.in: Add the support for socks.
12897
12898         * url.c (url_filename): If the dir_prefix is ".", work with just
12899         the file name.
12900         (url_filename): Do not look for .n extensions if timestamping if
12901         turned on.
12902
12903         * retr.c (show_progress): Skip the over-abundant restval data, and
12904         print the rest of it with ',' instead of '.'.
12905
12906 1996-07-05  Hrvoje Niksic  <hniksic@srce.hr>
12907
12908         * retr.c (show_progress): Changed second arg. to long (as it
12909         should be).
12910         (show_progress): Moved to retr.c.
12911         (get_contents): Moved to retr.c.
12912
12913         * version.c: Change version to 1.4b13.
12914
12915 1996-07-05  Hrvoje Lacko <hlacko@fly.cc.fer.hr>
12916
12917         * url.c (in_acclist): Would return after the first suffix.
12918
12919 1996-07-04  Hrvoje Niksic  <hniksic@srce.hr>
12920
12921         * version.c: "Released" 1.4b12.
12922
12923         * url.c (path_simplify): More kludgifications.
12924         (get_urls_html): Use new parameters for htmlfindurl.
12925
12926         * html.c: Removed memorizing "parser states", since the new
12927         organization does not require them.
12928
12929         * init.c (run_geturlrc): Use read_whole_line.
12930
12931         * ftp-unix.c (ftp_parse_ls): Use read_whole_line.
12932
12933         * recur.c (parse_robots): Use read_whole_line.
12934
12935         * utils.c (read_whole_line): New function.
12936
12937         * recur.c (tried_robots): Use add_slist/in_slist, *much* cleaner.
12938
12939         * host.c (ngethostbyname): Call inet_addr just once. Yet to be
12940         tested on OSF and Ultrix.
12941         (add_hlist): New function.
12942         (free_hlist): New function.
12943         (search_host): New function.
12944         (search_address): New function.
12945         (realhost): Use search_host, search_address and add_hlist.
12946         (same_host): Replaced realloc() with strdupdelim(), made
12947         case-insensitive, fixed a memory leak.
12948
12949         * html.c (ftp_index): Fixed tm_min and tm_sec to be tm_hour and
12950         tm_min, like intended.
12951
12952         * version.c: Change user agent information to
12953         Geturl/version.
12954
12955 1996-07-03  Hrvoje Niksic  <hniksic@srce.hr>
12956
12957         * utils.c: Renamed nmalloc.c to utils.c, .h likewise.
12958
12959         * url.c (acceptable): Always accept directories.
12960
12961         * ftp-unix.c (ftp_parse_ls): Support brain-damaged "ls -F"-loving
12962         servers by stripping trailing @ from symlinks and trailing / from
12963         directories.
12964
12965         * ftp.c (ftp_loop): Debugged the "enhanced" heuristics. :-)
12966
12967         * url.c (skip_url): Use toupper instead of UCASE.
12968
12969         * host.c (sufmatch): Made it case-insensitive.
12970
12971         * url.c (match_backwards_or_pattern): Fixed i == -1 to j == -1.
12972         (match_backwards): New function, instead of
12973         match_backwards_or_pattern.
12974
12975         * recur.c (recursive_retrieve): Increased performance by
12976         introducing inl, which reduces number of calls to in_slist to only
12977         one.
12978
12979         * ftp.c (ftp_loop): Enhanced the heuristics that decides which
12980         routine to use.
12981
12982         * main.c (printhelp): Removed the warranty stuff.
12983
12984 1996-07-02  Hrvoje Niksic  <hniksic@srce.hr>
12985
12986         * url.c (add_slist): Simplify.
12987         (match_backwards_or_pattern): New function.
12988         (in_acclist): Use match_backwards_or_pattern.
12989         (matches): Remove.
12990
12991 1996-06-30  Hrvoje Niksic  <hniksic@srce.hr>
12992
12993         * ftp.c (ftp_loop): Call ftp_index on empty file names, if not
12994         recursive.
12995
12996         * html.c (ftp_index): Fixed to work. Beautified the output.
12997
12998         * ftp.c (ftp_retrieve_glob): Another argument to control whether
12999         globbing is to be used.
13000         (ftp_retrieve_list): Compare the time-stamps of local and remote
13001         files to determine whether to download.
13002
13003 1996-06-29  Hrvoje Niksic  <hniksic@srce.hr>
13004
13005         * ftp.c (rel_constr): New function.
13006
13007         * retr.c (retrieve_from_file): Check for text/html before
13008         retrieving recursively.
13009
13010         * main.c (main): Check whether the file is HTML before going into
13011         recursive HTML retrieving.
13012
13013         * ftp.c (ftp_retrieve_list): Manage directories.
13014         (ftp_retrieve_glob): Pass all the file-types to ftp_retrieve_list.
13015         (ftp_1fl_loop): Fixed a bug that caused con->com to be incorrectly
13016         initialized, causing bugchecks in getftp to fail.
13017
13018         * configure.in: Check for symlink.
13019
13020         * ftp.c (ftp_retrieve_list): Added support for symlinks.
13021
13022         * version.c: "Released" 1.4b10.
13023
13024         * atotm.c (atotm): Redeclared as time_t.
13025
13026         * init.c: New variable "timestamping".
13027
13028         * main.c (main): New option 'N'.
13029
13030         * http.c (hgetlocation): Case-insensitive match.
13031         (hgetmodified): New function.
13032         (http_loop): Implement time-stamping.
13033
13034 1996-06-28  Hrvoje Niksic  <hniksic@srce.hr>
13035
13036         * version.c: Changed version to 1.4b10
13037
13038         * atotm.c: New file, from phttpd.
13039
13040         * options.h (struct options): New parameter timestamping.
13041
13042         * version.c: 1.4b9 "released".
13043
13044         * recur.c (recursive_retrieve): Used linked list (ulist) for
13045         faster storing of URLs.
13046
13047         * url.c (get_urls_html): Removed the old kludge with comparing the
13048         outputs of htmlfindurl and findurl.
13049         (get_urls_html): Added better protocol support here.
13050         (create_hash): Removed, as well as add_hash and in_hash.
13051         (addslist): New function.
13052         (in_slist): ditto
13053
13054         * version.c: Released 1.4b8, changed version to b9.
13055
13056 1996-06-27  Hrvoje Niksic  <hniksic@srce.hr>
13057
13058         * ftp.c (freefileinfo): New function.
13059         (delelement): New function.
13060
13061         * everywhere: GPL!
13062
13063         * ftp.c (ftp_loop): Use ccon.
13064         (ftp_retrieve_glob): Likewise.
13065
13066         * ftp.h: Define ccon, to define status of control connection.
13067
13068         * ftp.c (ftp_get_listing): New function.
13069         (ftp_retrieve_more): New function.
13070         (ftp_retrieve_glob): New function.
13071
13072 1996-06-25  Hrvoje Niksic  <hniksic@srce.hr>
13073
13074         * configure.in: Removed the search for cuserid().
13075
13076         * init.c (getmode): Renamed to getperms.
13077
13078 1996-06-24  Hrvoje Niksic  <hniksic@srce.hr>
13079
13080         * version.c: New version.
13081
13082         * main.c (hangup): New function, that handles hangup. Hangup
13083         signal now causes geturl to stop writing on stdout, and to write
13084         to a log file.
13085
13086         * ftp.c (getftp): "Released" 1.4b7.
13087
13088         * html.c (htmlfindurl): Ignore everything inside <head>...</head>.
13089         (ftp_index): Use fileinfo/urlinfo.
13090
13091         * ftp-unix.c (ftp_parse_ls): New function.
13092         (symperms): New function.
13093
13094         * ftp.c (ftp_1fl_loop): New function, to handle 1-file loops.
13095
13096         * retr.c (retrieve_url): Added FTP support.
13097
13098 1996-06-23  Hrvoje Niksic  <hniksic@srce.hr>
13099
13100         * geturl.h: Removed NOTFTP2HTML enum.
13101         Added DO_LOGIN, DO_CWD and DO_LIST. LIST_ONLY is obsolete.
13102
13103         * ftp.c (getftp): Resynched with urlinfo.
13104         (getftp): Removed HMTL-ization of index.html from getftp.
13105
13106         * version.c: 1.4b6 "released".
13107
13108         * options.h (options): New struct, to keep options in.
13109
13110         * http.c (http_loop,gethttp): Synched with proxy.
13111
13112         * retr.c (retrieve_url): Implemented proxy retrieval.
13113
13114         * main.c (main): Use retrieve_from_file.
13115
13116 1996-06-22  Hrvoje Niksic  <hniksic@srce.hr>
13117
13118         * retr.c (retrieve_from_file): New function.
13119
13120         * url.c (parseurl): Modified to return URLOK if all OK. Protocol
13121         can be found in u->proto.
13122
13123         * ftp.c (ftp_response): Fixed to accept multi-line responses as
13124         per RFC 959.
13125
13126         * recr.c (recursive_retrieve): Take newloc from retrieve_url.
13127
13128         * url.c (mymkdir): Removed the file of the same name, if one
13129         exists.
13130         (isfile): New function.
13131         (mkstruct): Fixed the '/' glitches.
13132         (path_simplify): Hacked to treat something/.. correctly.
13133
13134 1996-06-21  Hrvoje Niksic  <hniksic@srce.hr>
13135
13136         * http.c (gethttp): Close the socket after error in headers.
13137         (http_loop): HEOF no longer a fatal header.
13138
13139         * loop.c (retrieve_url): When dt is NULL, do not modify it. This
13140         simplifies the syntax of calling retrieve_url.
13141
13142         * recr.c (recursive_retrieve): Modified to use get_urls_html.
13143
13144         * url.c (get_urls_file): New function.
13145         (get_urls_html): New function.
13146
13147         * recr.c (recursive_retrieve): Patched up to conform to the
13148         standards.
13149
13150         * http.c (gethttp): Synched with the rest...
13151         (gethttp): Treat only CONREFUSED specially, with connection
13152         errors.
13153
13154         * init.c,geturl.1,http.c (http_loop): Removed kill_error.
13155
13156 1996-06-20  Hrvoje Niksic  <hniksic@srce.hr>
13157
13158         * http.c (http_loop): New function.
13159
13160         * loop.c: Removed *lots* of stuff from retrieve_url.
13161
13162         * url.c (parseurl): Changed to work with urlinfo. Integrated
13163         username finding and path parsing.
13164         (newurl): New function.
13165         (freeurl): New function.
13166         (mkstruct): Removed the old bogosities, made it urlinfo-compliant.
13167         (url_filename): Likewise.
13168         (path_simplify): Accept relative paths too.
13169         (opt_url): Made urlinfo-compliant, removed bogosities.
13170         (path_simplify): Expanded to accept relative paths.
13171         (str_url): A replacement for hide_url
13172         (decode_string): Fixed a bug that caused malfunctioning when
13173         encountering an illegal %.. combination.
13174         (opt_url): Removed the argument. Dot-optimizations are now default.
13175
13176         * nmalloc.c (strdupdelim): New function.
13177
13178         * url.h: Added the urlinfo structure
13179
13180 1996-06-19  Hrvoje Niksic  <hniksic@srce.hr>
13181
13182         * url.c (hide_url): Thrown out the protocol assertion. Do not
13183         change the URL if the protocol if not recognized.
13184         (findurl): Put continue instead of break.
13185
13186 1996-06-18  Hrvoje Niksic  <hniksic@srce.hr>
13187
13188         * sample.geturlrc: Changed the defaults to be commented out and
13189         harmless (previous defaults caused pains if copied to
13190         ~/.geturlrc).
13191
13192         * http.c (gethttp): Print the HTTP request in debug mode.
13193
13194         * connect.c (iread): Added EINTR check loop to select-ing
13195         too. EINTR is now correctly handled with select().
13196
13197         * TODO: new file
13198
13199 1996-05-07  Hrvoje Niksic  <hniksic@srce.hr>
13200
13201         * host.c (same_host): Made the function a little bit more
13202         intelligent regarding diversified URL syntaxes.
13203
13204         * url.c (skip_url): Spaces are now skipped after URL:
13205
13206         * Released 1.3.1 with the patch to prevent crashing when sending
13207         NULL to robot* functions and the patch to compile "out of the box"
13208         on AIX.
13209
13210         * recr.c (recursive_retrieve): Added checking whether this_url is
13211         NULL when calling the robot functions.
13212
13213         * ChangeLog: New file.