]> sjero.net Git - wget/blob - src/ChangeLog
Add support for chunks to the WARC outputter.
[wget] / src / ChangeLog
1 2012-01-27  Gijs van Tulder  <gvtulder@gmail.com>
2
3         * retr.c (fd_read_body): If the response is chunked, the chunk
4         headers are now written to the WARC file, making the WARC file
5         an exact copy of the HTTP response.
6
7 2012-01-27  Gijs van Tulder  <gvtulder@gmail.com>
8
9         * retr.c (fd_read_body): Fix a memory leak with chunked responses.
10         * http.c (skip_short_body): Fix the same memory leak.
11
12 2012-01-09  Gijs van Tulder  <gvtulder@gmail.com>
13
14         * init.c: Disable WARC compression if zlib is disabled.
15         * main.c: Do not show the 'no-warc-compression' option if zlib is
16         disabled.
17         * warc.c: Do not compress WARC files if zlib is disabled.
18
19 2012-01-09  Sasikantha Babu   <sasikanth.v19@gmail.com> (tiny change)
20         * connect.c (connect_to_ip): properly formatted ipv6 address display.
21         (socket_family): New function - returns socket family type.
22         * http.c (gethttp): properly formatted ipv6 address display.
23
24 2011-11-09  Gijs van Tulder  <address@hidden>
25
26         * warc.c: Call gzdopen() with wb9 instead of wb+9, which fails on
27         zlib version >= 1.2.4.
28
29 2011-11-04  Steven Schweda  <address@hidden>
30
31         * warc.c [! WINDOWS]: Include <libgen.h>.
32         (warc_write_warcinfo_record): Assign a new allocated buffer and
33         free it on errors.
34
35 2011-11-01  Steven Schweda  <address@hidden>
36
37         * gnutls.c (ssl_init): Ensure GNU TLS is loaded only once.
38
39 2011-10-07  Steven Schweda  <address@hidden>
40
41         * connect.c: Add HAVE_SYS_SELECT_H and HAVE_SYS_SOCKET_H conditions
42         on includes of <sys/select.h> and <sys/socket.h>, respectively.
43         * ftp.c (getftp): Move BIN_TYPE_TRANSFER macro into VMS-specific
44         section.  On VMS, use Stream_LF attributes for listing files.  Pass
45         BIN_TYPE_FILE to fopen_excl() instead of constant-everywhere "true".
46         * ftp.c (ftp_retrieve_list): Restore lost test of opt.preserve_perm
47         (--preserve-permissions) on the chmod() operation.
48         * init.c, main.c: Remove "deprecated" from opt.preserve_perm
49         (--preserve-permissions).
50         * init.c (initialize): Use distinct messages for errors in C macro
51         SYSTEM_WGETRC and environment-variable SYSTEM_WGETRC.  Avoid use of
52         C macro SYSTEM_WGETRC when it's not defined.
53         * log.c (log_close): Avoid closing logfp when it's stderr.
54         * main.c (print_help):  Restore --preserve-permissions.
55         * main.c (main): Avoid using a negative value of longindex as a
56         subscript (for long_options[]) when searching for "--config".
57         * main.c (main): Exit the program using exit() instead of "return".
58         (VMS handles these differently, and exit() is better.)
59         * openssl.c (ssl_init): Add type cast (SSL_METHOD *) to newly "const"
60         "meth" argument to accommodate OpenSSL version 0.9.8, where that
61         argument is not "const" in the OpenSSL function (SSL_CTX_new).
62         * test.c: Declare "program_argstring".
63         * utils.c (fopen_excl): Comment typography.
64         * warc.h: New file.
65         * warc.c: New file.
66
67 2011-10-02  Henrik Holst <henrik.holst@millistream.com> (tiny change)
68         * http.c (gethttp): If 'contentonerror' is used then do not
69         skip the http body on 4xx and 5xx errors.
70
71         * init.c (commands): Add 'contentonerror'.
72
73         * main.c (print_help, option_data): Add new option 'contentonerror'
74         to make wget not skip the http content on 4xx and 5xx errors.
75
76         * options.h: New variable 'content_on_error'.
77
78 2011-09-19  Giuseppe Scrivano  <gscrivano@gnu.org>
79
80         * main.c (print_version): Update copyright year.
81         (print_version): Fix typo.
82
83 2011-09-13  Giuseppe Scrivano  <gscrivano@gnu.org>
84
85         * ftp.c (ftp_retrieve_glob): Propagate correctly the `res' error
86         code.
87
88 2011-09-07  Giuseppe Scrivano  <gscrivano@gnu.org>
89
90         * http.c (gethttp): Don't inhibit arest request if opt.timestamping is
91         set.
92         Reported by <natrio@list.ru>
93
94 2011-09-06  Jakob Matthes <jakob.matthes@gmail.com> (tiny change)
95
96         * main.c (print_version): Do not exit prematurely when --help is passed.
97
98 2011-09-04  Christian Jullien <eligis@orange.fr> (tiny change)
99
100         * gnutls.c: Include <sys/fcntl.h>.
101
102 2011-09-02  Mojca Miklavec <mojca.miklavec.lists@gmail.com> (tiny change)
103
104         * main.c (print_version): Do not exit prematurely when --version is passed.
105
106 2011-08-30  Giuseppe Scrivano  <gscrivano@gnu.org>
107
108         * gnutls.c (wgnutls_read_timeout): Use the non blocking socket only for
109         `gnutls_record_recv'.  Set errno to ETIMEDOUT on a read timeout.
110
111 2011-08-29  Giuseppe Scrivano  <gscrivano@gnu.org>
112
113         * gnutls.c (wgnutls_read_timeout): New function.
114         (wgnutls_read): Use wgnutls_read_timeout.
115         (wgnutls_peek): Likewise.
116
117 2011-08-27  Giuseppe Scrivano  <gscrivano@gnu.org>
118
119         * main.c (print_help): Exit with an error status if print to stdout
120         fails.
121         (print_usage): Change method signature and return a status code.
122         (print_version): Likewise.
123
124 2011-08-26  Giuseppe Scrivano  <gscrivano@gnu.org>
125
126         * gnutls.c: Include "ptimer.h".
127         (wgnutls_read): Honor read timeout.
128
129         * openssl.c (ssl_init): Make `meth' const.
130
131 2011-08-25  Giuseppe Scrivano  <gscrivano@gnu.org>
132
133         * utils.c [HAVE_UTIME && HAVE_UTIME_H]: Include <utime.h>.
134         [HAVE_UTIME && HAVE_SYS_UTIME_H]: Include <sys/utime.h>.
135         (touch) [HAVE_UTIME: Prefers utime over futimens when it is available.
136         It was reported that Cygwin has a not working futimens.
137
138 2011-08-19  Giuseppe Scrivano  <gscrivano@gnu.org>
139
140         * init.c (home_dir) [MSDOS]: Move local variable `len' here.
141
142 2011-08-18  Giuseppe Scrivano  <giuseppe@southpole.se>
143
144         * http.c (gethttp): Fix a memory leak on some errors.  Free the head
145         buffer.
146
147         * Makefile.am: Use an additional file "css_.c" which in turn includes
148         "wget.h" and immediately "css.c".
149
150         * http.c (gethttp): Reset chunked_transfer_encoding on redirections.
151
152 2011-08-13  Giuseppe Scrivano  <gscrivano@gnu.org>
153
154         * retr.c (fd_read_body): Ensure max is not already defined.
155
156         * mswindows.h (snprintf): Remove definition.
157         (vsnprintf): Likewise.
158
159 2011-08-12  Giuseppe Scrivano  <gscrivano@gnu.org>
160
161         * css.l: Remove include "wget.h".
162         Reported by: Perry Smith <pedzsan@gmail.com>.
163
164 2011-08-11  Giuseppe Scrivano  <gscrivano@gnu.org>
165
166         * utils.c (abort_run_with_timeout): Use sigprocmask instead of
167         sigsetmask.
168
169         * gnutls.c (ssl_connect_wget): Remove call to deprecated function
170         `gnutls_certificate_type_set_priority'.
171
172         * Makefile.am (version.c): Don't invoke hg to set version string.
173
174 2011-08-10  Giuseppe Scrivano  <gscrivano@gnu.org>
175
176         Fix a linker error on systems with an older gnutls version.
177         * gnutls.c (ssl_connect_wget)
178         [HAVE_GNUTLS_PRIORITY_SET_DIRECT]:  Use gnutls_priority_set_direct.
179         [! HAVE_GNUTLS_PRIORITY_SET_DIRECT]:  Use gnutls_protocol_set_priority.
180         Reported by: Karl Berry <karl@freefriends.org>
181
182 2011-08-06  Jochen Roderburg <Roderburg@Uni-Koeln.DE>
183
184         * host.c (lookup_host): Ensure it doesn't print more IPs than available
185         ones.
186
187 2011-08-06  Giuseppe Scrivano  <gscrivano@gnu.org>
188
189         * init.c (defaults): Set default value for show_all_dns_entries.
190
191         * host.c (lookup_host): If `showalldnsentries' is used then print all
192         the IP corresponding to a DNS entry.
193         * init.c (commands): Add `showalldnsentries'.
194         Suggested by: Witold Baryluk <baryluk@smp.if.uj.edu.pl>
195
196         * http.c (gethttp): Add the Cache-Control HTTP header when --no-cache
197         is specified.
198         Reported by: Коренберг Марк <socketpair@gmail.com>.
199
200 2011-08-05  Giuseppe Scrivano  <gscrivano@gnu.org>
201
202         * utils.c (acceptable): Accept always the file if it is the specified
203         output destination.
204         Reported by: Shai Berger <shai@platonix.com>
205
206 2011-08-05  Giuseppe Scrivano  <giuseppe@southpole.se>
207
208         * gnutls.c (ssl_connect_wget): Use `gnutls_priority_set_direct' instead
209         of the deprecated `gnutls_protocol_set_priority'.
210
211 2011-08-02  Giuseppe Scrivano  <giuseppe@southpole.se>
212
213         * cookies.c (parse_set_cookie): If the value is quoted, do not modify
214         it.
215         Reported by: Nirgal Vourgère <jmv_deb@nirgal.com>
216
217 2011-07-29  Giuseppe Scrivano  <giuseppe@southpole.se>
218
219         * log.c (logprintf): Exit immediately on a SIGPIPE error.
220         Reported by: Noèl Köthe  <noel@debian.org>.
221
222 2011-07-26  Carlos Martín Nieto  <carlos@cmartin.tk>  (tiny change)
223
224         * init.c (home_dir): Allocate path buffer dinamically.
225
226 2011-07-26  Giuseppe Scrivano  <giuseppe@southpole.se>
227
228         * retr.c (retrieve_url): Do not register redirects when in spider mode.
229
230 2011-07-20 Merinov Nikolay <kim.roader@gmail.com>
231
232         * iri.c (remote_to_utf8): Add test for non-ASCII symbols with
233         UTF-8 URI encoding.
234         * res.c (res_retrieve_file): Fix url_parse call.
235
236 2011-06-08  Giuseppe Scrivano  <giuseppe@southpole.se>
237
238         * retr.c (retrieve_from_file): Parse the url careless if IRI is enabled.
239         Reported by: Volker Kuhlmann <list0570@paradise.net.nz>.
240
241 2011-05-24  Giuseppe Scrivano  <gscrivano@gnu.org>
242
243         * retr.c (fd_read_body): Define max.
244
245 2010-12-28  Adrien Nader  <adrien@notk.org> (tiny change)
246
247         * main.c [WINDOWS]: Include <io.h> and <fcntl.h>.
248         (main) [WINDOWS]: Set the stdout file mode to binary.
249         Submitted also by: Martin Panter <vadmium@gmail.com>
250
251 2011-05-23  Giuseppe Scrivano  <gscrivano@gnu.org>
252
253         * retr.c (fd_read_body): Be sure the buffer size is at least 8Kb.
254         BUFSIZ may assume very small values with a negative impact on the
255         performances.
256
257         * mswindows.h [NEED_GAI_STRERROR]: remove definition for gai_strerror.
258
259 2011-05-15  Ray Satiro <raysatiro@yahoo.com>
260
261         * connect.c (select_fd) [WINDOWS]: Ensure the socket is blocking.
262         * mswindows.h: Add declaration for set_windows_fd_as_blocking_socket.
263         * mswindows.c (set_windows_fd_as_blocking_socket): New function.
264
265         * openssl.c (openssl_read): Prevent loops on read errors.
266
267 2011-04-24  Giuseppe Scrivano  <gscrivano@gnu.org>
268
269         * html-url.c: Include "exists.h".
270         * gnutls.c (wgnutls_peek): Remove local variable `ret'.
271
272 2011-04-21  Daniel Manrique <roadmr@tomechangosubanana.com> (tiny change)
273         * main.c (main): Set exit status when invalid host name given in
274         command line.
275         * html-url.c (get_urls_file): Set exit status when invalid host
276         name given in input file.
277
278 2011-04-19  Giuseppe Scrivano  <gscrivano@gnu.org>
279
280         * gnutls.c: Do not include <fcntl.h>.
281         * gnutls.c (wgnutls_peek): Ensure there is data available before attempt
282         a read on the blocking socket.
283
284         * Makefile.am (LIBS): Add $(LIB_CLOCK_GETTIME)
285         * utils.c: Include <sys/stat.h>.  Do not include <sys/time.h>.
286         (touch): Use `futimens' instead of `utimes'.
287
288         * mswindows.h: Do not include <direct.h>.  Remove macro definition for
289         mkdir.
290
291 2011-04-18  Giuseppe Scrivano  <gscrivano@gnu.org>
292
293         * utils.c: Include <sys/time.h>.  Do not include <sys/utime.h>.
294         (touch): Use `utimes' instead of `utime'.
295
296         * openssl.c (openssl_read): Fix build error.
297
298 2011-04-17  Giuseppe Scrivano  <gscrivano@gnu.org>
299
300         * wget.h [HAVE_LIBSSL32]: Define HAVE_SSL.
301
302         * gnutls.c (wgnutls_peek): Use correctly FIONBIO codes under Mingw32.
303         Reported by: Ray Satiro <raysatiro@yahoo.com>
304
305 2011-04-13  Giuseppe Scrivano  <gscrivano@gnu.org>
306
307         * openssl.c (openssl_poll): Check if the specified timeout is zero after
308         SSL_pending.
309         (openssl_peek): Make the call non-blocking.
310
311 2011-04-11  Cristian Rodríguez  <crrodriguez@opensuse.org> (tiny change)
312
313         * openssl.c (ssl_init) [! OPENSSL_NO_SSL2]: Use SSLv2 only when
314         available.
315
316 2011-04-07  Giuseppe Scrivano  <gscrivano@gnu.org>
317
318         * gnutls.c (ssl_init): Allow X509 v1 certificates.
319         Suggested by: Ray Satiro <raysatiro@yahoo.com>
320
321         (wgnutls_peek): Remove tight loop around gnutls_record_recv.
322
323 2011-04-07  Ray Satiro  <raysatiro@yahoo.com> (tiny change)
324
325         (wgnutls_read): Check for the GNUTLS_E_AGAIN return code in the recv
326         tight loop.
327         (wgnutls_write): Likewise.
328         (wgnutls_peek): Likewise.
329
330 2011-04-07  Giuseppe Scrivano  <gscrivano@gnu.org>
331
332         * gnutls.c (wgnutls_peek): New local variable `read'.
333         Use `read' instead of `ret' to store the number of read bytes.
334         Reported by: Ray Satiro <raysatiro@yahoo.com>
335
336 2011-04-04  Giuseppe Scrivano  <gscrivano@gnu.org>
337
338         * openssl.c [WINDOWS]: Include <w32sock.h>.
339         (openssl_read): Retry the read on SSL_ERROR_WANT_READ.
340
341         * host.c [WINDOWS]: Include <winsock2.h> and <ws2tcpip.h>.
342         Suggested by: Ray Satiro <raysatiro@yahoo.com>.
343
344         * Makefile.am (LIBS): Remove  @LIBSSL@ @W32LIBS@
345
346 2011-04-03  Giuseppe Scrivano  <gscrivano@gnu.org>
347
348         * gnutls.c: Include <fcntl.h>.
349         (wgnutls_peek): Make the socket non blocking before attempt a read.
350
351         * gnutls.c: Include <sys/ioctl.h>.
352         (wgnutls_peek) [F_GETFL]: Use fcntl.
353         (wgnutls_peek) [! F_GETFL]: Use ioctl.
354
355
356 2011-03-31  Giuseppe Scrivano  <gscrivano@gnu.org>
357
358         * recur.c (download_child_p): When --no-parent is used, check that the
359         ports are the same only in case the same protocol is used.
360         Reported by: Karl Berry <karl@freefriends.org>
361
362         * res.c (res_parse): Add new line to debug messages.
363
364 2011-03-21  Giuseppe Scrivano  <gscrivano@gnu.org>
365
366         * iri.h (parse_charset) [!ENABLE_IRI]: Use the parameter to avoid a
367         compiler warning.
368
369         * iri.h: Declare `dummy_iri' as extern not static.
370         * main.c [!ENABLE_IRI]: Define `dummy_iri'.
371         (main) [!ENABLE_IRI]: Initialize `dummy_iri'.
372
373 2011-03-11  Giuseppe Scrivano  <gscrivano@gnu.org>
374
375         * ftp.c (getftp): Fix some memory leaks.
376         * ftp-ls.c (ftp_parse_winnt_ls): Likewise.
377         Reported by: Zhenbo Xu <zhenbo1987@gmail.com>.
378
379 2010-11-20  Filipe Brandenburger <filbranden@gmail.com> (tiny change)
380
381         * http.c (gethttp): Repeat a POST request on a 307 response.
382         * retr.c (retrieve_url): Use NEWLOCATION_KEEP_POST.
383         * wget.h: Define NEWLOCATION_KEEP_POST.
384
385 2011-03-02  Tomasz Buchert <tomek.buchert@gmail.com> (tiny change)
386
387         * http.c (ensure_extension): Do not adjust the extension if the file
388         ends in .htm.
389
390 2011-02-22  Gilles Carry  <gilles.carry@st.com>
391
392         * main.c (prompt_for_password): Use stderr instead of stdout
393         to prompt password. This allows to use --output-document=- and
394         --ask-password simultaneously. Without this, redirecting stdout
395         makes password prompt invisible and mucks up payload such as in
396         this example:
397         wget --output-document=- --ask-password -user=foo \
398                 http://foo.com/tarball.tgz | tar zxf -
399
400 2011-02-22  Steven Schubiger  <stsc@member.fsf.org>
401
402         * http.c (gethttp, http_loop): Move duplicated code which is run
403         when an existing file is not to be clobbered to a function.
404         (get_file_flags): New static function.
405
406 2010-12-10  Evgeniy Philippov <egphilippov@googlemail.com> (tiny change)
407
408         * main.c (main): Initialize `total_downloaded_bytes'.
409
410 2010-12-09  Giuseppe Scrivano  <gscrivano@gnu.org>
411
412         * main.c (main): If --no-clobber and --convert-links are used at the
413         same time, use only the latter.
414         Reported by: Romain Vimont <rom@rom1v.com>
415
416 2010-12-07  Jessica McKellar <jesstess@mit.edu> (tiny change)
417
418         * main.c: Make help message clearer.
419
420 2010-12-02  Giuseppe Scrivano  <gscrivano@gnu.org>
421
422         * build_info.c.in: Do not list md5.
423
424 2010-12-01  Giuseppe Scrivano  <gscrivano@gnu.org>
425
426         * cmpt.c: Include <unistd.h> inconditionally.
427         * connect.c: Likewise.
428         * convert.c: Likewise.
429         * ftp-basic.c: Likewise.
430         * ftp-ls.c: Likewise.
431         * ftp.c: Likewise.
432         * gnutls.c: Likewise.
433         * http.c: Likewise.
434         * init.c: Likewise.
435         * log.c: Likewise.
436         * main.c: Likewise.
437         * openssl.c: Likewise.
438         * progress.c: Likewise.
439         * ptimer.c: Likewise.
440         * recur.c: Likewise.
441         * retr.c: Likewise.
442         * url.c: Likewise.
443         * utils.c: Likewise.
444
445         * retr.c (fd_read_body): Dinamically allocate `dlbuf'.
446
447 2010-11-27  Reza Snowdon  <vivi@mage.me.uk>
448
449         * init.c (initialize): If 'ok' is not zero; exit, as this
450         indicates there was a problem parsing 'SYSTEM_WGETRC'.
451         Fixes bug #20370.
452
453 2010-11-22  Giuseppe Scrivano  <gscrivano@gnu.org>
454
455         Revert last commit.
456         * ftp.c (getftp): When count > 0, don't append to the existing file.
457         * http.c (gethttp): Likewise.
458
459 2010-11-21  Giuseppe Scrivano  <gscrivano@gnu.org>
460
461         * ftp.c (getftp): If `count' is bigger than zero, try to resume the
462         download, not restart it.
463         * http.c (gethttp): Likewise.
464         Suggested by: Evgeny Kapun <abacabadabacaba@gmail.com>.
465
466 2010-11-19  Giuseppe Scrivano  <gscrivano@gnu.org>
467
468         * ftp.c (getftp): Accept new argument `count'.  When `count' is
469         bigger than zero, assume the file can be overwritten.
470         (ftp_loop_internal): Pass new argument `count' to `getftp'.
471
472         * http.c (gethttp): Accept new argument `count'.  When `count' is
473         bigger than zero, assume the file can be overwritten.
474         (http_loop): Pass new argument `count' to `gethttp'.
475         Reported by: Evgeny Kapun <abacabadabacaba@gmail.com>.
476
477 2010-08-08  Reza Snowdon <vivi@mage.me.uk>
478
479         * main.c (main): inserted 'defaults'.
480           Added additional 'getopt_long' while loop to search and apply a
481           user specified config file before any other options.
482           New variables 'retconf', 'use_userconfig',
483           'confval', 'userrc_ret', 'config_opt'.
484         * init.c: Include stdbool.h.
485           (commands): Added config details.
486           (defaults): Removed static.
487           (wgetrc): Removed static.
488           (initialize): Removed 'defaults ()',
489           changed 'int ok' to 'bool ok'.
490         * options.h: New variable 'choose_config'.
491         * init.h (defaults): exported function.
492           (run_wgetrc): exported function.
493
494 2010-10-24  Jessica McKellar <jesstess@mit.edu> (tiny change)
495
496         * main.c (main): Print the total download time as part of the
497         summary for downloads using the recursive or page requisites
498         options. Fixes bug #21359.
499
500 2010-10-24  Giuseppe Scrivano  <gscrivano@gnu.org>
501
502         * gnutls.c (wgnutls_peek): Do not return an error when
503         `gnutls_record_recv' fails but some data is already available.
504
505 2010-10-23  Giuseppe Scrivano  <gscrivano@gnu.org>
506
507         * Makefile.am (LIBS): Remove @LIBGNUTLS@ and use @W32LIBS@ as last
508         component.
509
510         * gnutls.c (wgnutls_peek): Block until data is available.
511
512 2010-10-21  Giuseppe Scrivano  <gscrivano@gnu.org>
513
514         * retr.c (retrieve_url): Do not register HTML files twice.
515         Reported by: Manfred Koizar <mkoi-pg@aon.at>.
516
517 2010-10-18  Manfred Koizar <mkoi-pg@aon.at> (tiny change)
518
519         * html-url.c (tag_handle_link): Do not assume external links type
520         to be always "text/html".
521
522 2010-10-16  Giuseppe Scrivano  <gscrivano@gnu.org>
523
524         * connect.c (socket_ip_address): Initialize `sockaddr' to zero.
525         * ftp-basic.c (ftp_epsv): Remove dead assignment to `s'.
526         * ftp-ls.c (ftp_parse_vms_ls): Remove dead assignment to `len'.
527         * http.c (skip_short_body): Remove dead assignment to `ret'.
528         * init.c (wgetrc_user_file_name): Remove dead assignment to `home'.
529         * main.c (main): Silent warning reported by clang.
530         (http_loop): Silent warning reported by clang.
531         * retr.c (retrieve_url): Likewise.
532         * url.c (init_seps): Remove dead assignment to `p'.
533
534 2010-10-11  Giuseppe Scrivano  <gscrivano@gnu.org>
535
536         * ftp.c (getftp): Fix indentation.
537
538 2010-10-11  Steven Schubiger <stsc@member.fsf.org>
539
540         * ftp.c (getftp): Initialize `targ'.
541
542 2010-10-08  Ivanov Anton <x86mail@gmail.com> (tiny change)
543
544     * src/html-url.c (check_style_attr): Skip quotes when they are present.
545
546 2010-10-06  Giuseppe Scrivano  <gscrivano@gnu.org>
547
548         * main.c (main): Remove unused variable `status'.
549
550 2010-09-25  Merinov Nikolay  <kim.roader@gmail.com>
551
552         * init.c: Add "unlink" command into command list.
553         * main.c: Add "unlink" option into option_data list.
554         * options.h: Adding unlink field into struct options.
555         * wget.h: Addind UNLINKERR error into uerr_t enum.
556         * exits.c (get_status_for_err): define status for UNLINKERR.
557         * ftp.c (getftp): unlink file if exists, instead clobbering.
558         (ftp_loop_internal): processing UNLINKERR.
559         * http.c (gethttp): unlink file if exists, instead clobbering.
560         (http_loop): processing UNLINKERR.
561
562 2010-09-24  Dennis, CHENG Renquan <crquan@fedoraproject.org>
563
564         Fix problem when content-disposition is used with recursive downloading.
565         * url.h (url_file_name): Add a new argument `replaced_filename'.
566         * url.c (url_file_name): Likewise.
567         * http.c (parse_content_disposition): Do not add a prefix to the return
568         value.
569         (test_parse_content_disposition): Adjust tests.
570         (gethttp): Pass additional parameter to `url_file_name'.
571         (http_loop): Likewise.
572         * ftp.c (ftp_loop_internal, ftp_get_listing, ftp_retrieve_list)
573         (ftp_loop): Likewise.
574
575 2010-09-14  Giuseppe Scrivano  <gscrivano@gnu.org>
576
577         * convert.c (local_quote_string): Accept new parameter `no_html_quote'.
578         Inhibit HTML quoting when `no_html_quote'.
579         (convert_links): Disable HTML quoting in CSS files.
580         Reported by: Manuel Reinhardt <reinhardt@syslab.com>.
581
582 2010-09-12  Giuseppe Scrivano  <gscrivano@gnu.org>
583
584         * main.c (print_help): Align --trust-server-names help text with
585         the rest of the text.
586         Suggested by: Mike Frysinger  <vapier@gentoo.org>.
587
588 2010-08-20  Giuseppe Scrivano  <gscrivano@gnu.org>
589
590         * convert.c: Include "iri.h".
591         (convert_links_in_hashtable): Parse the url, if
592         necessary, before check if it is present in the dowloaded url
593         map.
594         Reported by: <sk.random@gmail.com>.
595
596 2010-08-09  Giuseppe Scrivano  <gscrivano@gnu.org>
597
598         Fix a problem with HTTP/1.0 proxies.
599         * http.c (gethttp): Specify the connection header when keep alive
600         connections are not used.
601
602         Use persistent connections with proxies supporting them.
603         * http.c (gethttp): Specify Proxy-Connection to the HTTP proxy.
604
605 2010-08-06  Giuseppe Scrivano  <gscrivano@gnu.org>
606
607         * css-url.c (get_uri_string): Skip empty urls.
608
609 2010-07-25  John Trengrove  <jtrengrove@gmail.com> (tiny change)
610
611         * ftp.h: Added enum `parsetype'.  Modified struct to hold parsetype.
612
613         * ftp-ls.c (ftp_parse_unix_ls): Default to TT_DAY. Change to TT_HOUR_MIN
614         if hours/minutes parsed.
615         (ftp_parse_winnt_ls): Default to TT_HOUR_MIN.
616         (ftp_parse_vms_ls): Default to TT_HOUR_MIN.
617         (ftp_index): Print only if fileinfo struct value ttype set to TT_HOUR_MIN.
618
619 2010-07-30  Giuseppe Scrivano  <gscrivano@gnu.org>
620
621         * html-url.h (struct map_context): Remove member `tail'.
622
623         * html-url.c (append_url): Append the new url ordered by `position'.
624         (get_urls_html): Do not initialize `ctx.tail'.
625
626         * css-url.c (get_urls_css_file): Do not initialize `ctx.tail'.
627
628 2010-07-29  Giuseppe Scrivano  <gscrivano@gnu.org>
629
630         * gnutls.c (wgnutls_peek): Don't read more data if the buffered peek
631         data is sufficient.
632
633 2010-07-28  Giuseppe Scrivano  <gscrivano@gnu.org>
634
635         * http.h (http_loop): Add new argument `original_url'
636         * http.c (http_loop): Add new argument `original_url'.  Use
637         `original_url' to get a filename if `trustservernames' is false.
638
639         * init.c (commands): Add "trustservernames".
640
641         * options.h (library): Add variable `trustservernames'.
642
643         * main.c (option_data): Add trust-server-names.
644         (print_help): Describe --trust-server-names.
645
646         * retr.c (retrieve_url): Pass new argument to `http_loop'.
647
648 2010-07-20  Alan Jenkins <alan-jenkins@tuffmail.co.uk> (tiny change)
649
650         * http.c (gethttp): Check content-length was set before trying to
651         compare it with the already downloded filesize.
652
653 2010-07-20  Leonid Petrov <nouser@lpetrov.net>
654
655         * ftp.c (getftp): Don't attempt to retrieve the file if it is already
656         completely.
657         (ftp_loop_internal): Force the length to be zero for symlinks.
658
659 2010-07-18  Giuseppe Scrivano  <gscrivano@gnu.org>
660
661         * http.c (gethttp): If -N is used, don't exit immediately if the content
662         length is less or equal than the existing file size.  Specify "Range"
663         only if -N is not used.
664         Reported by: Caleb Cushing <xenoterracide@gmail.com>.
665
666 2010-07-14  Giuseppe Scrivano  <gscrivano@gnu.org>
667
668         * ftp.c (max): Remove definition.
669         (getftp): New variable `got_expected_bytes'.  Let `expected_bytes' be
670         the value SIZE returns, otherwise use the bytes count returned by RETR.
671         Suggested by Daniel Stenberg <daniel@haxx.se>.
672
673 2010-07-14  Giuseppe Scrivano  <gscrivano@gnu.org>
674
675         * ftp.c (max): Add definition.
676         (getftp): Consider for `expected_bytes' the greatest value between the
677         bytes count returned by SIZE and the bytes count returned by RETR.
678         Reported by: Jozua <jozua@sparky.za.net>.
679
680 2010-07-11  Giuseppe Scrivano  <gscrivano@gnu.org>
681
682         * http.c (http_loop): New variable `force_full_retrieve'.  If the remote
683         file is newer that the local one then inhibit -c.
684         Reported by: Caleb Cushing <xenoterracide@gmail.com>.
685
686 2010-07-09  Giuseppe Scrivano  <gscrivano@gnu.org>
687
688         * css-url.c (get_urls_css_file): Use `wget_read_file' instead of
689         `read_file'.  Use `wget_read_file_free' instead of `read_file_free'.
690         * convert.c (convert_links): Likewise.
691         * html-url.c (get_urls_html, get_urls_file): Likewise.
692         * res.c (res_parse_from_file): Likewise.
693
694         * utils.h: Rename `read_file' to `wget_read_file'.  Rename
695         `read_file_free' to `wget_read_file_free'.
696
697         * utils.c (wget_read_file): Renamed from `read_file'.
698         (wget_read_file_free): Renamed from `read_file_free'.
699
700 2010-07-05  Giuseppe Scrivano  <gscrivano@gnu.org>
701
702         * gnutls.c (ssl_init): New local variables `ca_directory' and `dir'.
703         Load default root certificates under the `ca_directory' directory.
704
705 2010-07-03  Giuseppe Scrivano  <gscrivano@gnu.org>
706
707         * gnutls.c (ssl_connect_wget): New local variable `allowed_protocols'.
708         Honor the --secure-protocol flag.
709
710 2010-06-20  Giuseppe Scrivano  <gscrivano@gnu.org>
711
712         * main.c (print_help): Fix help string for --random-wait.  Its range is
713         [0.5*wait, 1.5*wait) not [0, 2*wait).
714         Reported by: Tom Mizutani <gombei1970@gmail.com>.
715
716 2010-06-15  Giuseppe Scrivano  <gscrivano@gnu.org>
717
718         * gnutls.c [WIN32]: Include "w32sock.h".
719         (FD_TO_SOCKET): Add definition.
720         (ssl_connect_wget): Get the real socket handle by FD_TO_SOCKET.
721         Define FD_TO_SOCKET if it is not yet defined.
722
723 2010-06-14  Giuseppe Scrivano  <gscrivano@gnu.org>
724
725         * gnutls.c: Include <stdlib.h>.
726         (struct wgnutls_transport_context): Remove `peekstart'.
727         (ssl_connect_wget): Renamed from `ssl_connect'.
728         (wgnutls_poll): New variable `ctx'.
729         (wgnutls_read): Don't use `ctx->peekstart'.
730         (wgnutls_peek): Likewise.  Don't attempt to read if there is not
731         ready data.
732
733 2010-06-14  Giuseppe Scrivano  <gscrivano@gnu.org>
734         * http.c (http_loop): Always send a HEAD request when -N is used
735         together with --content-disposition.
736         Reported by: Jochen Roderburg <Roderburg@Uni-Koeln.DE>.
737
738 2010-06-10  Muthu Subramanian K <muthusuba@gmail.com> (tiny change)
739
740         * http.c (http_loop): Increase `total_downloaded_bytes' by
741         `hstat.rd_size', not `hstat.len'.
742
743 2010-06-10  Giuseppe Scrivano  <gscrivano@gnu.org>
744
745         * main.c (print_version): Drop the current maintainer line.
746
747 2010-06-10  Giuseppe Scrivano  <gscrivano@gnu.org>
748
749         * Makefile.am (build_info.c): Generate the `build_info.c' file under
750         the build directory.
751         Patch by: Daniel Stenberg <daniel@haxx.se>.
752
753 2010-06-03  Giuseppe Scrivano  <gscrivano@gnu.org>
754
755         * http.c (http_loop): Do not send a HEAD request before the GET request
756         when --content-disposition is used.
757         Reported by: alex_wh@mail.ru.
758
759 2010-05-31  Giuseppe Scrivano  <gscrivano@gnu.org>
760
761         * css.l: Use option "nounput".
762         (YY_NO_INPUT): Add macro definition.
763
764 2010-05-31  Giuseppe Scrivano  <gscrivano@gnu.org>
765
766         * html-parse.c (map_html_tags): Fix condition for closed tag.  Handle
767         the case '>' is not specified after '/'.
768
769 2010-05-31  Giuseppe Scrivano  <gscrivano@gnu.org>
770
771         * sysdep.h (_SVID_SOURCE): Remove definition.
772         (_BSD_SOURCE): Remove definition.
773
774 2010-05-31  Giuseppe Scrivano  <gscrivano@gnu.org>
775
776         * recur.c (retrieve_tree): Remove variable `up_error_code'.
777
778         * iri.c (open_locale_to_utf8): Remove function.
779
780 2010-05-30  Giuseppe Scrivano  <gscrivano@gnu.org>
781
782         * html-parse.c (NAME_CHAR_P): Consider '<' an invalid character.
783         (advance_declaration): Close the tag if '<' is found.
784         (map_html_tags): Likewise.
785
786 2010-05-27  Giuseppe Scrivano  <gscrivano@gnu.org>
787
788         * main.c (print_usage): Accept a new parameter `error'.
789         (main): Print diagnostic messages to stderr, not stdout.
790
791 2010-05-27  Giuseppe Scrivano  <gscrivano@gnu.org>
792
793         * Makefile.am (wget_SOURCES): Remove `snprintf.c'.
794
795         * snprintf.c: Remove file.
796
797 2010-05-27  Giuseppe Scrivano  <gscrivano@gnu.org>
798
799         * main.c (main): Exit with failure when -k is specified and -O is not
800         a regular file.
801
802 2010-05-27  Giuseppe Scrivano  <gscrivano@gnu.org>
803
804         * http.c (gethttp): Consider new cookies retrieved when the
805         authorization fails.
806
807 2010-05-25  Giuseppe Scrivano  <gscrivano@gnu.org>
808
809         * host.c (sufmatch): Do not consider zero length entries.
810
811         * http.c (H_10X): New macro.
812         (gethttp): Silently ignore 1xx responses.
813
814 2010-05-24  Giuseppe Scrivano  <gscrivano@gnu.org>
815
816         * iri.h (dummy_iri): Define static.
817
818         * css-tokens.h (css_tokens): Remove variable.
819
820 2010-05-23  Giuseppe Scrivano  <gscrivano@gnu.org>
821
822         * http.c (http_atotm): Count the NUL character when copying the locale
823         string.
824         Reported by: Florian Weimer <fw@deneb.enyo.de>
825
826 2010-05-16  Giuseppe Scrivano  <gscrivano@gnu.org>
827
828         * Makefile.am (LDADD): Remove MD5_LDADD.
829         (MD5_LDADD): Remove definition.
830         (AM_CPPFLAGS): Remove MD5_CPPFLAGS.
831         (version.c): Remove dependency from MD5_LDADD.
832         (../md5/libmd5.a): Remove rule.
833
834         * ftp-opie.c: Include "md5.h".  Do not include "gen-md5.h".
835         (skey_response): New variable ctx.  Use md5 functions from the gnulib
836         module instead of functions defined previously in the "gen-md5.h" file.
837
838         * gen-md5.h: Remove file.
839         * gen-md5.c: Likewise.
840
841         * http.c: Include "md5.h".  Do not include "gen-md5.h".
842         (digest_authentication_encode): New variable ctx.  Use md5 functions
843         from the gnulib module instead of functions defined previously in the
844         "gen-md5.h" file.
845
846 2010-05-15  Giuseppe Scrivano  <gscrivano@gnu.org>
847
848         * Makefile.am: Quote any path using $(top_srcdir) or $(top_builddir).
849         (version.c): Remove dependency from configure.ac and Makefile.am.
850
851         * css.l: Include "wget.h".
852
853 2010-05-08  Giuseppe Scrivano  <gscrivano@gnu.org>
854
855         * Makefile.am: Update copyright years.
856         * cmpt.c: Likewise.
857         * connect.h: Likewise.
858         * convert.c: Likewise.
859         * convert.h: Likewise.
860         * cookies.c: Likewise.
861         * cookies.h: Likewise.
862         * css-tokens.h: Likewise.
863         * css-url.c: Likewise.
864         * css-url.h: Likewise.
865         * css.l: Likewise.
866         * exits.c: Likewise.
867         * exits.h: Likewise.
868         * ftp-basic.c: Likewise.
869         * ftp-ls.c: Likewise.
870         * ftp-opie.c: Likewise.
871         * ftp.c: Likewise.
872         * ftp.h: Likewise.
873         * gen-md5.c: Likewise.
874         * gen-md5.h: Likewise.
875         * gettext.h: Likewise.
876         * gnutls.c: Likewise.
877         * hash.c: Likewise.
878         * hash.h: Likewise.
879         * host.c: Likewise.
880         * host.h: Likewise.
881         * html-parse.c: Likewise.
882         * html-parse.h: Likewise.
883         * html-url.c: Likewise.
884         * html-url.h: Likewise.
885         * http-ntlm.c: Likewise.
886         * http-ntlm.h: Likewise.
887         * http.c: Likewise.
888         * http.h: Likewise.
889         * init.c: Likewise.
890         * init.h: Likewise.
891         * iri.c: Likewise.
892         * iri.h: Likewise.
893         * log.c: Likewise.
894         * log.h: Likewise.
895         * main.c: Likewise.
896         * mswindows.c: Likewise.
897         * mswindows.h: Likewise.
898         * netrc.c: Likewise.
899         * netrc.h: Likewise.
900         * openssl.c: Likewise.
901         * options.h: Likewise.
902         * progress.c: Likewise.
903         * progress.h: Likewise.
904         * ptimer.c: Likewise.
905         * ptimer.h: Likewise.
906         * recur.c: Likewise.
907         * recur.h: Likewise.
908         * res.c: Likewise.
909         * res.h: Likewise.
910         * retr.c: Likewise.
911         * retr.h: Likewise.
912         * spider.c: Likewise.
913         * spider.h: Likewise.
914         * ssl.h: Likewise.
915         * sysdep.h: Likewise.
916         * test.c: Likewise.
917         * test.h: Likewise.
918         * url.c: Likewise.
919         * url.h: Likewise.
920         * utils.c: Likewise.
921         * utils.h: Likewise.
922         * wget.h: Likewise.
923
924 2010-05-07  Giuseppe Scrivano  <gscrivano@gnu.org>
925
926         * gnutls.c (wgnutls_close): Use always `close', not `closesocket'.
927         * openssl.c (openssl_close): Use always `close', not `closesocket'.
928         (ssl_connect_wget): Get the real socket handle by FD_TO_SOCKET.
929         Define FD_TO_SOCKET if it is not yet defined.
930         * Makefile.am (libunittest_a_CPPFLAGS): Add -I$(top_builddir)/lib.
931         * mswindows.h: Always include <winsock2.h> and <ws2tcpip.h>.  Do not
932         include <winsock.h>.
933         [! INHIBIT_WRAP]: Remove macro's socket, bind, connect, accept, recv,
934         send, select, getsockname, getpeername, setsockopt, closesocket.
935         Remove wrapped_socket, wrapped_bind, wrapped_connect, wrapped_listen,
936         wrapped_accept, wrapped_recv, wrapped_send, wrapped_select,
937         wrapped_getsockname, wrapped_getpeername, wrapped_setsockopt,
938         wrapped_closesocket prototypes.
939         * mswindows.c:  Remove wrapped_socket, wrapped_bind, wrapped_connect,
940         wrapped_listen, wrapped_accept, wrapped_recv, wrapped_send,
941         wrapped_select, wrapped_getsockname, wrapped_getpeername,
942         wrapped_setsockopt, wrapped_closesocket functions.  Remove WRAP macro.
943         * host.h [WINDOWS]: Include <winsock2.h> not <winsock.h>.
944         * connect.c: Include <sys/socket.h> and <sys/select.h> on any platform,
945         gnulib ensures they exist.  Remove `read', `write', `close' macros.
946         * Makefile.am: Copy build_info.c.in only if we are working in a VPATH.
947         (AM_CPPFLAGS): Add directory with generated gnulib files.
948
949 2010-05-06  Giuseppe Scrivano  <gscrivano@gnu.org>
950
951         * Makefile.am (build_info.c): Generate build_info.c in the builddir,
952         not srcdir.
953
954 2010-05-05  Giuseppe Scrivano  <gscrivano@gnu.org>
955
956         * http.c (gethttp): Give a nicer message on a malformed status line.
957
958 2010-05-04  Giuseppe Scrivano  <gscrivano@gnu.org>
959
960         * http.c (gethttp): Check `resp_status' return code and handle
961         errors.
962
963 2010-05-01  Giuseppe Scrivano <gscrivano@gnu.org>
964
965         * http.c (request_send): Specify 1.1 as HTTP version for requests.
966         (skip_short_body): Accept new parameter `chunked'.  New variable
967         `remaining_chunk_size'.  Handle the chunked transfer encoding.
968         (gethttp): New variable `chunked_transfer_encoding`.  Set `keepalive'
969         by default to true.  Check if the server is using the chunked transfer
970         encoding.
971
972         * retr.h: Define `rb_chunked_transfer_encoding'.
973
974         * retr.c (fd_read_body): New variable `chunked'.  New variable
975         `remaining_chunk_size'.  Handle the chunked transfer encoding.
976
977 2010-03-04  Steven Schubiger  <stsc@member.fsf.org>
978
979         * ftp.c (ftp_loop_internal): Omit input file from being
980         deleted after retrieval.
981
982         * retr.c (input_file_url): New function.
983
984         * retr.h: Add declaration for input_file_url.
985
986 2010-03-02  Steven Schubiger  <stsc@member.fsf.org>
987
988         * retr.c (retrieve_from_file): Improve checking for a URL
989         by invoking url_valid_scheme instead of url_has_scheme.
990
991         * url.c (url_valid_scheme): New function.
992
993         * url.h: Add declaration for url_valid_scheme.
994
995 2010-03-02  Steven Schubiger  <stsc@member.fsf.org>
996
997         * retr.c (retrieve_from_file): Free memory of input file.
998
999 2010-03-01  Steven Schubiger  <stsc@member.fsf.org>
1000
1001         * retr.c (retrieve_url): Retrieve the local filename from ftp_loop.
1002         (retrieve_from_file): Return if there's no input file.
1003
1004         * ftp.c (ftp_loop_internal): Duplicate the local filename into
1005         retrieve_url's scope when a valid reference is being passed.
1006         (ftp_loop): Call ftp_loop_internal here with passing a
1007         reference to the local filename, elsewhere with NULL.
1008
1009         * ftp.h: Adjust declaration of ftp_loop.
1010
1011 2010-01-27  Paul Townsend  <aab@purdue.edu>  (tiny change)
1012
1013         * retr.c (fd_read_body): Be sure to measure timer when time has
1014         elapsed, too, not just when we've made progress.
1015
1016 2010-01-13  Micah Cowan  <micah@cowan.name>
1017
1018         * openssl.c: Fixed some mixed declarations-and-code.
1019
1020 2010-01-09  Micah Cowan  <micah@cowan.name>
1021
1022         * init.c, main.c, http.c, ftp.c, options.h: Renamed
1023         --no-match-server-timestamps to --no-use-server-timestamps, and
1024         add it to print_help.
1025
1026 2010-01-09  David Holman  <holman.david@gmail.com>  (tiny change)
1027
1028         * init.c, main.c, http.c, ftp.c, options.h: Added support for
1029         --no-match-server-timestamps.
1030
1031 2009-12-03  Peter Rosin  <peda@lysator.liu.se>
1032
1033         * snprintf.c (dopr): Output %p as unsigned.
1034
1035 2010-01-09  Jeremy Olexa  <darkside@gentoo.org>  (tiny change)
1036
1037         * init.c: Deal with systems which provide PATH_MAX in
1038         sys/param.h rather than limits.h.
1039
1040 2009-10-09  Steven Schweda  <sms@antinode.info>
1041
1042         * utils.c: Added characters " : \ | to the list of normal
1043         caret-escaped (ODS5) characters in the char_prop[] table.
1044
1045 2009-09-22  Arvind Jamuna Dixit  <ardsrk@gmail.com>
1046
1047         * http.c (extract_param, parse_content_disposition): Support
1048         RFC 2231 while parsing Content-Disposition header
1049
1050 2009-10-24  Petr Pisar  <petr.pisar@atlas.cz>
1051
1052         * openssl.c: Implement support for (multiple) subjectAltNames in
1053         X509 certificates, not just the commonName.
1054
1055 2009-10-09  Micah Cowan  <micah@cowan.name>
1056
1057         * main.c: Fix declaration of compiled_features.
1058
1059         * build_info.c.in: Adapt to new input format. Added a check for
1060         large-file support. Replaced the "openssl" and "gnutls"
1061         advertisements with a single "ssl/foo" advertisement.
1062
1063 2009-09-30  Micah Cowan  <micah@cowan.name>
1064
1065         * sysdep.h: Unconditionally include stdbool.h (gnulib has it for
1066         systems that don't supply it.)
1067
1068         * vms.c: Added functions vms_basename(), used to extract the
1069         bare executable name from argv[0], and vms_getpass(), a
1070         VMS-specific replacement for GNU getpass().
1071
1072          vms.c: Added global string constants: compilation_string
1073         (NULL), link_string (NULL), and version_string (real).
1074
1075 2009-09-24  Micah Cowan  <micah@cowan.name>
1076
1077         * vms.c: Moved from vms/vms.c.
1078
1079         * sysdep.h: Use proper prototypes for snprintf, vsnprintf (thanks
1080         to Steven Schweda).
1081
1082 2009-09-24  Steven Schweda  <sms@antinode.info>
1083
1084         * main.c (print_version): Remove VMS-conditional build info
1085         string; the new VMS builders use OS_TYPE.
1086
1087         * ftp.c (getftp): Fix accidental use of target -> targ.
1088
1089 2009-09-24  Micah Cowan  <micah@cowan.name>
1090
1091         * host.c (host_errstr): host_errstr should return const char *.
1092
1093 2009-09-22  Micah Cowan  <micah@cowan.name>
1094
1095         * Makefile.am (version.c): Explicitly tell Mercurial where the
1096         top-source repository should be, so it doesn't accidentally use
1097         the repository for a containing directory (for instance, if the
1098         user's home directory is managed by a Mercurial repo). Also
1099         ensures we find the repository, even if the build directory is
1100         outside the source directory.
1101
1102         * wget.h: define WINDOWS if _WIN32 or __WIN32__ is defined, but
1103         not __CYGWIN__.
1104
1105         * mswindows.c (xsleep): Check for availability of the sleep
1106         function, in addition to the usleep function.
1107         (get_winsock_error, windows_strerror): Removed (gnulib already
1108         supplies this functionality).
1109
1110         * mswindows.h [NEED_GAI_STRERROR]: define gai_strerror
1111         to (gnulib's) strerror, rather than windows_strerror. Removed
1112         error macro definitions provided by gnulib.
1113         (windows_strerror): Removed (gnulib already supplies this
1114         functionality).
1115
1116         * host.c: Don't declare h_errno when building on Windows.
1117
1118         * Makefile.am (LIBS): Added @W32LIBS@.
1119         (EXTRA_wget_SOURCES): Removed (it's in LIBOBJ now).
1120         (version.c): Removed dependency on $(LDADD), since it may include
1121         dependencies that are not part of the Wget sources (-lwsock32, for
1122         instance).
1123
1124         * openssl.c (ssl_check_certificate): Avoid reusing the same buffer
1125         space for successive quoted arguments. Thanks to Steven Schweda
1126         for pointing out the problem.
1127
1128 2009-09-21  Micah Cowan  <micah@cowan.name>
1129
1130         * progress.c (update_speed_ring): "the the" -> "the".
1131
1132         * css-url.c, iri.c, mswindows.c: Removed assert.h inclusion (not
1133         using it).
1134
1135 2009-09-11  Steven Schweda  <sms@antinode.info>
1136
1137         * utils.c, utils.h (fopen_excl): Make second argument an int,
1138         rather than a bool (so it can handle the appropriate VMS version
1139         of the flag).
1140
1141         * main.c (print_version): Don't print LOCALEDIR unless NLS is
1142         enabled.
1143
1144         * http.c (gethttp): Pass FOPEN_BIN_FLAG, instead of true.
1145
1146         * ftp.c (ftp_retrieve_glob): Cast strcmp to assign to cmp, for a
1147         silly HP build environment.
1148
1149 2009-09-08  Steven Schubiger  <stsc@member.fsf.org>
1150
1151         * main.c, init.c: Mark the --preserve-permissions and
1152         --html-extension option as deprecated.
1153
1154 2009-09-06  Micah Cowan  <micah@cowan.name>
1155
1156         * ftp.c (getftp, ftp_loop_internal): Separate "len" input/output
1157         parameter (with different meanings for input and output), into two
1158         separate parameters, one input (passed_expected_bytes) and one
1159         output (qtyread). Fixes bug #26870.
1160
1161 2009-09-05  Steven Schubiger  <stsc@member.fsf.org>
1162
1163         * retr.h: Declare set_local_file() to avoid build warnings.
1164
1165 2009-09-05  Gisle Vanem  <gvanem@broadpark.no>
1166
1167         * connect.c, init.c, main.c, openssl.c, options.h:  Replace
1168         "ifdef MSDOS" with "ifdef USE_WATT32" since DOS-targets in fact
1169         use the Watt-32 tcp/ip stack.
1170
1171 2009-09-04  Micah Cowan  <micah@cowan.name>
1172
1173         * Makefile.am: Move build_info.c to wget_SOURCES from
1174         nodist_wget_SOURCES, reduce dependencies, and invoke build_info.pl
1175         in its new home, $(top_srcdir)/build-aux.
1176
1177 2009-09-03  Micah Cowan  <micah@cowan.name>
1178
1179         * ftp-ls.c (ftp_parse_vms_ls): Replace use of localtime_r with
1180         localtime, as not all platforms have localtime_r.
1181
1182         * Makefile.am (wget_SOURCES): Rearranged some of the file order,
1183         so .c files and .h files are apart. Added gettext.h, so that it
1184         shows up in the dist.
1185
1186 2009-09-02  Micah Cowan  <micah@cowan.name>
1187
1188         * gettext.h: Refreshed from gettext 0.17.
1189
1190         * test.c: Added definition of program_name variable, required by
1191         lib/error.c (libgnu.a). Doesn't cause problems until you try to
1192         build on a non-GNU system...
1193
1194         * build_info.c.in: Removed useless "+gettext" feature ad.
1195
1196 2009-08-29  Steven Schubiger  <stsc@member.fsf.org>
1197
1198         * convert.c (local_quote_string): Percent-encode semicolons
1199         in local file strings.
1200
1201 2009-08-27  Micah Cowan  <micah@cowan.name>
1202
1203         * wget.h (uerr_t): added new VERIFCERTERR code for SSL certificate
1204         problems. Marked exit codes that are defined but never used (at
1205         least, the ones I could find).
1206
1207         * retr.c, retr.h (retrieve_url): Added a new boolean argument to
1208         determine whether an exit status should be recorded.
1209         (retrieve_from_file): Adjust to new retrieve_url signature.
1210
1211         * res.c (res_retrieve_file): Don't have retrieve_url record an
1212         exit status for robots.txt.
1213
1214         * recur.c (retrieve_tree): Adjust to new retrieve_url signature.
1215
1216         * main.c (main): Use the exit status stored by retrieve_url.
1217
1218         * http.c (gethttp): Distinguish certificate verification problems
1219         from SSL connection issues.
1220         (http_loop): Handle newly-created VERIFCERTERR error code.
1221
1222         * exits.c, exits.h: Newly added.
1223
1224         * Makefile.am (wget_SOURCES): Add exits.c and exits.h.
1225
1226 2009-08-27  Micah Cowan  <micah@cowan.name>
1227
1228         * http.c (gethttp): Make sure Wget heeds cookies when they
1229         are sent with a 401 response; or any other sort of response for
1230         that matter (#26775).
1231
1232 2009-08-19  Micah Cowan  <micah@cowan.name>
1233
1234         * openssl.c (ssl_check_certificate): Only warn about an attack if
1235         the hostname would otherwise have matched. Also some formatting
1236         cleanup.
1237
1238 2009-08-19  Joao Ferreira  <joao@joaoff.com>
1239
1240         * openssl.c (ssl_check_certificate): Detect embedded NUL
1241         characters in the SSL certificate common name.
1242
1243 2009-08-17  Tony Lewis  <tlewis@exelana.com>
1244
1245         * http.c (gethttp): Ensure that we parse Content-Length before we
1246         attempt to refer to its value. Without this fix, NTLM support was
1247         completely buggered. #27192
1248
1249 2009-08-09  Michael Baeuerle  <michael.baeuerle@gmx.net>
1250
1251         * ftp.c: #include <strings.h> for strcasecmp.
1252
1253 2009-07-28  Micah Cowan  <micah@cowan.name>
1254
1255         * main.c (option_data): Rename --html-extension to
1256         --adjust-extension.
1257         (print_help): Ditto.
1258
1259         * options.h (struct option): Rename html_extension to
1260         adjust_extension.
1261         * http.c (gethttp): Ditto.
1262         * convert.c (local_quote_string): Ditto.
1263
1264         * init.c (commands): Add "adjustextension", and reflect rename
1265         change for opt.adjust_extension, for both "adjustextension" and
1266         "htmlextension".
1267
1268 2009-07-27  Micah Cowan  <micah@cowan.name>
1269
1270         * options.h (struct options): Added restrict_files_nonascii
1271         boolean field.
1272
1273         * url.c (FILE_CHAR_TEST): Add check for chars outside the ASCII
1274         range.
1275
1276         * init.c (defaults): Add restrict_files_nonascii to initialization.
1277         (cmd_spec_restrict_file_names): Allow parsing of "ascii" keyword.
1278
1279 2009-07-27  Marcel Telka  <marcel@telka.sk>
1280
1281         * iri.c (do_conversion): Typo: invalide -> invalid
1282
1283 2009-07-27  Petr Pisar  <petr.pisar@atlas.cz>
1284
1285         * main.c (print_help): Fixed a couple typos.
1286
1287 2009-07-26  Micah Cowan  <micah@cowan.name>
1288
1289         * main.c (option_data): Rename --locale option to --local-encoding
1290         (print_help): Document --no-iri, --local-encoding, and
1291         --remote-encoding, within usage message. Remove defunct
1292         --preserve-permissions.
1293
1294 2009-07-23  Micah Cowan  <micah@cowan.name>
1295
1296         * progress.c (get_eta): Change "Translation note" in comment to
1297         "TRANSLATORS", so it actually appears in wget.pot.
1298
1299 2009-07-06  Micah Cowan  <micah@cowan.name>
1300
1301         * main.c (print_help): Improve documentation of --base.
1302
1303 2009-07-05  Micah Cowan  <micah@cowan.name>
1304
1305         * html-url.c (tag_handle_meta): Handle meta name="robots"
1306         properly: deal with whitespace, commas after...
1307
1308         * netrc.c (parse_netrc): Rename local-scope variable "quote" to
1309         "qmark", to avoid conflict with the function name.
1310
1311 2009-07-05  Petr Pisar  <petr.pisar@atlas.cz>
1312
1313         * main.c (print_version): Mark initial line for translation, along
1314         with (env), (user), and (system). Change copyright year to 2009.
1315
1316         * http.c (http_loop): Space after colon.
1317
1318         * gnutls.c (ssl_check_certificate): Use quote function, rather
1319         than explicit quotes.
1320
1321 2009-07-05  Micah Cowan  <micah@cowan.name>
1322
1323         * Makefile.am (version.c): Add dependency on configure.ac.
1324
1325         * iri.c: Mark some strings for translation.
1326
1327 2009-07-04  Steven Schweda  <sms@antinode.info>
1328
1329         * wget.h (ORIG_SFX): Macro added, to supply an alternative "_orig"
1330         suffix on VMS.
1331
1332         * connect.c, host.c, host.h, main.c: Include "vms_ip.h" rather
1333         than <netdb.h> on VMS systems.
1334
1335         * convert.c (write_backup_file): Use "_orig" rather than ".orig"
1336         on VMS.
1337
1338         * ftp-basic.c (ftp_list): Don't use LIST -a on VMS servers.
1339
1340         * ftp.c [__VMS]: Include "vms.h"
1341         * ftp.c (getftp): Disable some unhelpful "for VMS" code. Pass the
1342         OS type to ftp_list.
1343         (getftp) [__VMS]: Alter the filename as required, and invoke fopen
1344         with extra optional arguments.
1345         (ftp_retrieve_list): Set permissions before setting the times.
1346
1347         * ftp-ls.c [__VMS]: Various improvements.
1348
1349         * http.c (SET_USER_AGENT): Added. Include operating-system info in
1350         the User-Agent header.
1351         (gethttp): Use ORIG_SFX macro.
1352         (gethttp) [__VMS]: invoke fopen with extra arguments to
1353         communicate file type.
1354         (http_loop): Add cast to time_t.
1355
1356         * init.c (wgetrc_user_file_name) [__VMS]: Adjustments for where to
1357         find the .wgetrc.
1358
1359         * log.c: Adjustments to improve handling of log files on VMS.
1360
1361         * main.c [__VMS]: Added --ftp-stmlf option (and associated
1362         documentation). Adjust description of backup-suffixes, as they now
1363         differ for VMS.
1364         (print_help, print_version): Include OS type in version
1365         information.
1366         (main) [__VMS]: Invoke fopen with extra options, to specify file
1367         type information.
1368
1369         * netrc.c (search_netrc) [__VMS]: Fix .netrc-finding.
1370
1371         * openssl.c, openssl.h (ssl_connect_wget): Renamed from ssl_connect.
1372
1373         * options.h (struct options): Add ftp_stmlf field.
1374
1375         * retr.c (write_data) [__VMS]: Avoid fflush.
1376
1377         * url.c [__VMS]: Include vms.h.
1378         * url.c (url_file_name) [__VMS]: Handle naming as required for VMS.
1379
1380         * utils.c [__VMS]: Include vms.h. Various added facilities for VMS
1381         needs.
1382
1383 2009-07-04  Micah Cowan  <micah@cowan.name>
1384
1385         * main.c (print_version): Allow localization of the version-info
1386         labels, eschew attempts at alignment (which is complicated when
1387         handling translated strings), and avoid using printf() with
1388         variable-stored format strings that lack conversion
1389         specifications.
1390         (format_and_print_line): For similar reasons, don't calculate
1391         line-continuation tabulation based on the number of bytes in a
1392         string.
1393
1394 2009-07-04  Steven Schubiger  <stsc@member.fsf.org>
1395
1396         * url.c (url_parse): If an URL scheme is invalid, distinguish
1397         between an unsupported or missing scheme.
1398
1399         * url.c: Add a "missing scheme" entry to parse_errors.
1400
1401 2009-07-03  Micah Cowan  <micah@cowan.name>
1402
1403         * iri.h (iri_dup): Provide macro definition for when IRIs are
1404         disabled.
1405
1406         * Makefile.am (LIBS): Added @LIBICONV@.
1407         (wget_SOURCES): Added iri.h.
1408         (EXTRA_wget_SOURCES): Added iri.c, so it gets packaged even if IRI
1409         support was disabled.
1410
1411 2009-07-02  Micah Cowan  <micah@cowan.name>
1412
1413         * recur.c (url_enqueue): Quote enqueue/dequeue debug messages.
1414
1415         * html-url.c (append_url): Change "merge()" quoting style from
1416         locale_quoting_style to escape_quoting_style.
1417
1418 2009-07-01  Micah Cowan  <micah@cowan.name>
1419
1420         * retr.c (retrieve_url): Use the existing "redirect" label,
1421         instead of superfluous "second_try". Removed no-longer-accurate
1422         debug statement. Use the "newloc" parameter to store the fallback
1423         URL, when IRI version was rejected.
1424
1425         * recur.c (retrieve_tree): Always use the parsed URL for tracking
1426         the Referer, since that's the one we actually requested (if
1427         there's a difference in terms of percent-encodings and such).
1428
1429 2009-07-01  Steven Schubiger  <stsc@member.fsf.org>
1430
1431         * Makefile.am: Add a rule to generate build_info.c and list
1432         the build_info.c.in file in EXTRA_DIST. Adjust elsewhere
1433         where needed.
1434
1435         * build_info.c: Remove this static source file.
1436
1437         * build_info.c.in: Data for generation of build_info.c.
1438
1439 2009-06-29  Micah Cowan  <micah@cowan.name>
1440
1441         * html-url.c (append_url): Quote some more arguments that might
1442         contain characters that are inappropriate to display for the
1443         current locale.
1444
1445         * retr.c (retrieve_from_file): Be sure to pass iri information
1446         when parsing an input-fle url, and be sure to hand a clean iri
1447         struct, off to retrieve_tree and retrieve_url.
1448
1449         * iri.c, iri.h (iri_dup): Added.
1450
1451         * retr.c (retrieve_url): Re-parse for IRI fallback.
1452
1453         * main.c (main): Set up iri before the url_parse invocation (so we
1454         can use it).
1455
1456 2009-06-20  Jay Krell  <jay.krell@cornell.edu>
1457
1458         * sysdep.h (_ALL_SOURCE): (small change) Define the _ALL_SOURCE
1459         macro on INTERIX systems. (I switched the location from ftp.c to
1460         sysdep.h --mjc)
1461
1462 2009-06-15  Micah Cowan  <micah@cowan.name>
1463
1464         * ftp.c (getftp): If we can't accept the connection, return
1465         CONERROR, not whatever the contents of err happens to be. Fixes
1466         bug #25015.
1467
1468         * retr.c (fd_read_body): Make both args to progress_create
1469         consistent, resulting in an accurate progress display. Fixes bug
1470         #24948.
1471
1472 2009-06-14  Micah Cowan  <micah@cowan.name>
1473
1474         * Makefile.am (wget_SOURCES): css-tokens.h needs to ship with
1475         dist, too.
1476
1477 2009-06-13  Micah Cowan  <micah@cowan.name>
1478
1479         * init.c: Rename setval_internal_wrapper to setval_internal_tilde,
1480         ensure we don't "replace" the tilde unless it's actually
1481         present. Clean up some minor GNU style issues.
1482
1483 2009-06-13  Julien Pichon  <julienpichon7@gmail.com>
1484
1485         * init.c: Handle tilde-expansion in wgetrc commands, without
1486         resorting to setting/unsetting globals to change behavior in one
1487         call location.
1488
1489 2009-06-12  Micah Cowan  <micah@cowan.name>
1490
1491         * host.c: Include <sys/types.h> before <sys/socket.h>. Not
1492         required by POSIX any more, but some older systems (such as
1493         FreeBSD 4.1) still need it, and it doesn't seem like it could
1494         hurt...
1495
1496         * build_info.c (library): Handle "https" as a feature in its own
1497         right, apart from "gnutls" and "openssl".
1498
1499         * host.c: Declare h_errno if no declaration is provided. Idea
1500         thanks to Maciej W. Rozycki.
1501
1502 2009-06-11  Xin Zou  <zouxin2008@gmail.com>
1503
1504         * http.c (gethttp): Fix some memory leaks.
1505
1506 2009-06-11  Micah Cowan  <micah@cowan.name>
1507
1508         * http.c (http_atotm): Handle potential for setlocale's return
1509         value to be static storage. Thanks to Benjamin Wolsey
1510         <bwy@benjaminwolsey.de>.
1511
1512         * sysdep.h: Need NAMESPACE_TWEAKS on non-Linux glibc-based
1513         systems, too. Thanks to Robert Millan.
1514
1515 2009-05-28  Steven Schubiger  <stsc@member.fsf.org>
1516
1517         * ftp.c (ftp_get_listing): Update the "listing file"
1518         string after calling ftp_loop_internal().
1519
1520 2009-05-27  Steven Schubiger  <stsc@member.fsf.org>
1521
1522         * ftp.c (ftp_get_listing): Duplicate the "listing file"
1523         string to avoid memory corruption when FOPEN_EXCL_ERR is
1524         encountered.
1525
1526 2009-05-17  Steven Schubiger  <stsc@member.fsf.org>
1527
1528         * progress.c (eta_to_human_short): Fix the remaining hours
1529         to be displayed. Spotted by Tadeu Martins (#26411).
1530
1531 2009-04-24  Micah Cowan  <micah@cowan.name>
1532
1533         * hash.c: Change stdint.h inclusion to use HAVE_STDINT_H, not C99
1534         check.
1535
1536         * connect.c: stdint.h inclusion added.
1537
1538         Thanks to Markus Duft <mduft@gentoo.org> for a similar patch.
1539
1540 2009-04-20  Micah Cowan  <micah@cowan.name>
1541
1542         * Makefile.am (version.c): Fix unportable use of "echo -n".
1543
1544 2009-04-13  Steven Schubiger  <stsc@member.fsf.org>
1545
1546         * ftp.c (ftp_retrieve_list): Move the duplicated code that
1547         determines the local file to a function.
1548
1549         * http.c (http_loop): Likewise.
1550
1551         * retr.c (set_local_file): New function.
1552
1553 2009-04-11  Steven Schubiger  <stsc@member.fsf.org>
1554
1555         * init.c (initialize): Run a custom SYSTEM_WGETRC when
1556         provided as an environment variable.
1557
1558 2009-02-27  Gisle Vanem  <gvanem@broadpark.no>
1559
1560         * main.c (main): "freopen (NULL,.." causes an assertion in MSVC
1561         debug-mode.  I.e. NULL isn't legal. But the "CONOUT$" device works
1562         fine.
1563
1564 2009-02-27  Steven Schubiger  <stsc@member.fsf.org>
1565
1566         * ftp.c (ftp_loop_internal): Don't claim for FTP retrievals
1567         when writing to standard output either that the document
1568         has been saved. Addresses bug #20520 again.
1569
1570 2009-02-21  Steven Schubiger  <stsc@member.fsf.org>
1571
1572         * http.c (http_loop): When a document is written to
1573         standard output, don't claim it has been saved to a file.
1574         Addresses bug #20520.
1575
1576 2009-02-18  Steven Schubiger  <stsc@members.fsf.org>
1577
1578         * recur.h: Remove the dangling declaration for recursive_cleanup().
1579
1580 2009-02-01  Gerardo E. Gidoni  <gerel@gnu.org>
1581
1582         * main.c, recur.c, recur.h, res.c, retr.c, retr.h: restructured code to
1583         avoid multiple 'url_parse' calls.
1584
1585 2008-11-13  Micah Cowan  <micah@cowan.name>
1586
1587         * http.c (gethttp): Don't do anything when content-length >= our
1588         requested range.
1589
1590 2008-11-27  Saint Xavier  <wget@sxav.eu>
1591
1592         * http.c (gethttp): Move authentication code before filename
1593         allocation avoiding fallbacking on default filename because
1594         "Content-Disposition" header wasn't present before authentcation
1595         has been completed. Fixes bug #24862.
1596
1597 2008-11-16  Steven Schubiger  <stsc@members.fsf.org>
1598
1599         * main.c: Declare and initialize the numurls counter.
1600
1601         * ftp.c, http.c: Make the counter visible here and use it.
1602
1603         * options.h: Remove old declaration from options struct.
1604
1605 2008-11-15  Steven Schubiger  <stsc@members.fsf.org>
1606
1607         * init.c (defaults): Set default waitretry value.
1608
1609 2008-11-14  Steven Schubiger  <stsc@members.fsf.org>
1610
1611         * main.c (format_and_print_line): Use a custom format
1612         string for printing leading spaces.
1613
1614 2008-11-12  Micah Cowan  <micah@cowan.name>
1615
1616         * ftp-ls.c (ftp_index): HTML-escape dir name in title, h1, a:href.
1617
1618 2008-11-12  Alexander Belopolsky  <alexander.belopolsky@gmail.com>
1619
1620         * url.c, url.h (url_escape_unsafe_and_reserved): Added.
1621
1622         * ftp-ls.c (ftp_index): URL-escape, rather than HTML-escape, the
1623         filename appearing in the link.
1624
1625 2008-11-12  Steven Schubiger  <stsc@members.fsf.org>
1626
1627         * main.c (print_version): Hand the relevant
1628         xstrdup/xfree calls back to format_and_print_line().
1629
1630 2008-11-11  Steven Schubiger  <stsc@members.fsf.org>
1631
1632         * main.c (format_and_print_line): Move both the memory
1633         allocating and freeing bits upwards to print_version().
1634
1635 2008-11-10  Saint Xavier  <wget@sxav.eu>
1636
1637         * http.c: Make --auth-no-challenge works with user:pass@ in URLs.
1638
1639 2008-11-05  Micah Cowan  <micah@cowan.name>
1640
1641         * ftp.c (print_length): Should print humanized "size remaining"
1642         only when it's at least 1k.
1643
1644 2008-10-31  Micah Cowan  <micah@cowan.name>
1645
1646         * main.c (print_version): Add information about the mailing list.
1647
1648 2008-10-31  Alexander Drozdov  <dzal_mail@mtu-net.ru>
1649
1650         * retr.c (fd_read_hunk): Make assert deal with maxsize == 0.
1651
1652         * ftp-ls.c (clean_line): Prevent underflow on empty lines.
1653
1654 2008-10-26  Gisle Vanem  <gvanem@broadpark.no>
1655
1656         * main.c (format_and_print_line): Put variables on top of
1657         blocks (not all compilers are C99). Add an extra '\n' if
1658         SYSTEM_WGETRC isn't defined and printed.
1659
1660 2008-09-09  Gisle Vanem  <gvanem@broadpark.no>
1661
1662         * url.c (url_error): Use aprintf, not asprintf.
1663
1664 2008-09-09  Micah Cowan  <micah@cowan.name>
1665
1666         * init.c (home_dir): Save the calculated value for home,
1667         to avoid duplicated work on repeated calls.
1668         (wgetrc_file_name) [WINDOWS]: Define and initialize home var.
1669
1670         * build_info.c, main.c: Remove unnecessary extern vars
1671         system_wgetrc and locale_dir.
1672
1673         * main.c: Define program_name for lib/error.c.
1674
1675 2008-09-02  Gisle Vanem  <gvanem@broadpark.no>
1676
1677         * mswindows.h: Must ensure <stdio.h> is included before
1678         we redefine ?vsnprintf().
1679
1680 2008-08-08  Steven Schubiger  <stsc@members.fsf.org>
1681
1682         * main.c, utils.h: Removed some dead conditional DEBUG_MALLOC code.
1683
1684 2008-08-03  Micah Cowan  <micah@cowan.name>
1685
1686         * main.c (print_help): Added --default-page.
1687
1688 2008-08-01  Joao Ferreira  <joao@joaoff.com>
1689
1690         * init.c, main.c, options.h, url.c: Added option --default-page
1691         to support alternative default names for index.html
1692
1693 2008-08-03  Micah Cowan  <micah@cowan.name>
1694
1695         * build_info.c, css-url.c: #include wget.h, not config.h.
1696
1697 2008-08-03  Steven Schubiger  <stsc@members.fsf.org>
1698
1699         * url.c, url.h (url_error): Better messages for unsupported
1700         schemes, especially https.
1701
1702         * html-url.c, recur.c, retr.c: Adjust to new url_error
1703         invocation, and free result.
1704
1705 2008-07-17  Steven Schubiger  <stsc@members.fsf.org>
1706
1707         * retr.c (retrieve_from_file): When given an URL as input file,
1708         use it as baseref if none was specified and treat the input file
1709         as HTML if its content type is text/html.
1710
1711         * init.c (cleanup): Free the memory associated with the base
1712         option (when DEBUG_MALLOC is defined).
1713
1714 2008-07-02  Xavier Saint  <wget@sxav.eu>
1715
1716         * iri.c, iri.h  : New function idn_decode() to decode ASCII
1717         encoded hostname to the locale.
1718
1719         * host.c : Show hostname to be resolved both in locale and
1720         ASCII encoded.
1721
1722 2008-06-28  Steven Schubiger  <stsc@members.fsf.org>
1723
1724         * retr.c (retrieve_from_file): Allow for reading the links from
1725         an external file (HTTP/FTP).
1726
1727 2008-06-26  Xavier Saint  <wget@sxav.eu>
1728
1729         * iri.c, iri.h : New functions locale_to_utf8() and
1730         idn_encode() adding basic capabilities of IRI/IDN.
1731
1732         * url.c : Convert URLs from locale to UTF-8 allowing a basic
1733         support of IRI/IDN
1734
1735 2008-06-25  Steven Schubiger  <stsc@members.fsf.org>
1736
1737         * ftp.c (getftp): When spidering a FTP URL, emit a diagnostic
1738         message if the remote file exists.
1739
1740 2008-06-24  Steven Schubiger  <stsc@members.fsf.org>
1741
1742         * http.c (http_loop): Replace escnonprint() occurence with
1743         a quotearg_style() call.
1744
1745 2008-06-24  Micah Cowan  <micah@cowan.name>
1746
1747         * ftp-ls.c (ftp_index): Don't assume time_t* is compatible with
1748         long*. Fixes crash on Windows, and probably other systems.
1749
1750 2008-06-22  Steven Schubiger  <stsc@members.fsf.org>
1751
1752         * http.c: Explicitly initialize and deallocate the message
1753         string used by the -nv --spider functionality.
1754
1755 2008-06-22  Steven Schubiger  <schubiger@gmail.com>
1756
1757         * http.c: Make -nv --spider include the file's name when it
1758         exists.
1759
1760 2008-06-22  Micah Cowan  <micah@cowan.name>
1761
1762         * Makefile.am (version.c): Fixed version string invocation so it
1763         once again can't result in unterminated strings, made all the
1764         string vars pointers-to-const, and moved line lengths
1765         below 80 (in Makefile.am, not in version.c).
1766
1767 2008-06-19  Xavier Saint  <wget@sxav.eu>
1768
1769         * iri.c, iri.h : New function check_encoding_name() as
1770         a preliminary encoding name check.
1771
1772         * main.c, iri.c : Make use of check_encoding_name().
1773
1774 2008-06-19  Xavier Saint  <wget@sxav.eu>
1775
1776         * iri.c : Include missing stringprep.h file and add a
1777         cast.
1778
1779         * init.c : set a default initial value for opt.enable_iri,
1780         opt.locale and opt.encoding_remote.
1781
1782 2008-06-19  Xavier Saint  <wget@sxav.eu>
1783
1784         * iri.c, iri.h : Add a new function find_locale() to find
1785         out the local system encoding.
1786
1787         * main.c : Make use of find_locale().
1788
1789 2008-06-19  Xavier Saint  <wget@sxav.eu>
1790
1791         * html-url.c : Add "content-type" meta tag parsing for
1792         retrieving page encoding.
1793
1794         * iri.h : Make no-op version of parse_charset() return
1795         NULL.
1796
1797 2008-06-16  Micah Cowan  <micah@cowan.name>
1798
1799         * http.c (http_loop): When hstat.len is higher than the
1800         successfully completed content's length, but it's because we
1801         _set_ it that way, don't abort.
1802
1803 2008-06-14  Xavier Saint  <wget@sxav.eu>
1804
1805         * iri.c, iri.h : New files.
1806
1807         * Makefile.am : Add files iri.h and conditional iri.c.
1808
1809         * build_info.c : Add compiled feature "iri".
1810
1811         * http.c : include iri.h and parse charset from Content-Type
1812         header.
1813
1814         * init.c, main.c, options.h : if an options isn't supported
1815         at compiled time, don't get rid off it and show a dummy
1816         message instead if they are used.
1817
1818 2008-06-13  Micah Cowan  <micah@cowan.name>
1819
1820         * build_info.c: ENABLE_NTLM, not HAVE_NTLM; distinguish OpenSSL
1821         from "ssl".
1822
1823 2008-06-13  Madhusudan Hosaagrahara <com.gmail.hrmadhu>
1824
1825         * Makefile.am, main.c, init.c, init.h, build_info.c: Adds build
1826         information to the --version command line option. Fixes bug
1827         #20636.
1828
1829 2008-06-01  Micah Cowan  <micah@cowan.name>
1830
1831         * main.c [WINDOWS]: Reopen stdout in binary mode, when -O - is
1832         given.
1833
1834 2008-05-31 Micah Cowan  <micah@cowan.name>
1835
1836         * html-url.c, http.c: Avoid casts in a couple spots.
1837
1838 2008-05-30 Henri Häkkinen  <henux@users.sourceforge.net>
1839
1840         * cookies.c, ftp-basic.c, hash.c, html-url.c, http-ntlm.c, http.c,
1841         init.c, log.c, main.c, progress.c, ptimer.c, spider.c, url.c,
1842         utils.c: Minor changes to silence warnings when using -Wall.
1843
1844 2008-05-26  Steven Schubiger  <schubiger@gmail.com>
1845
1846         * ftp.c (getftp): Replace last remaining invocation of escnonprint
1847         with gnulib quote.
1848
1849 2008-05-19  Micah Cowan  <micah@cowan.name>
1850
1851         * main.c (main): Password prompt should be done only once (not
1852         once per argument), and should be done prior to the background
1853         fork.
1854
1855 2008-05-17  Steven Schubiger  <schubiger@gmail.com>
1856
1857         * init.c (defaults): Set the preferred IP family to `none' by
1858         default.
1859
1860 2008-05-17  Kenny Parnell  <k.parnell@gmail.com>
1861
1862         (cmd_spec_prefer_family): Initialize prefer_family to prefer_none.
1863
1864 2008-05-17  Micah Cowan  <micah@cowan.name>
1865
1866         * main.c (main): Handle Ctrl-D on command-line.
1867
1868 2008-05-15  Steven Schubiger  <schubiger@gmail.com>
1869
1870         * ftp.c (getftp): Verify that the file actually exists in FTP, by
1871         checking it against the listing.
1872
1873 2008-05-15  Micah Cowan  <micah@cowan.name>
1874
1875         * main.c (prompt_for_password): Use the quote module.
1876
1877 2008-05-14  Micah Cowan  <micah@cowan.name>
1878
1879         * ftp.c (ftp_retrieve_list): Symlinks and other filenames
1880         should be fully quoted.
1881
1882 2008-05-12  Micah Cowan  <micah@cowan.name>
1883
1884         * main.c (main): Downgrade "-N with -O" to a warning, and switch
1885         it off to avoid confusing messages.
1886
1887 2008-04-30  Micah Cowan  <micah@cowan.name>
1888
1889         * progress.c (create_image): Fix glitch where too many spaces are
1890         printed on lines that don't display the ETA, in multibyte
1891         locales.
1892
1893 2008-04-30  Steven Schubiger  <stsc@members.fsf.org>
1894
1895         * main.c (main): New code that handles prompting for passwords
1896         when specified explicitly via command-line option (using gnulib's
1897         getpass-gnu module).
1898         (main): Include the getpass header.
1899
1900         * init.c: Add "ask-password" to the list of recognized commands.
1901
1902         * options.h: Add an according boolean member to the options
1903         struct.
1904
1905         * sysdep.h: Comment the defines __EXTENSIONS__ and _GNU_SOURCE
1906         out, because they're now defined independently by config.h.
1907
1908 2008-04-27  Rabin Vincent  <rabin@rab.in>
1909
1910         * http.c (http_loop): Fix return for the case where we don't
1911         download a file because of -nc.
1912
1913 2008-04-27  Micah Cowan  <micah@cowan.name>
1914
1915         * url.c (path_simplify): Go back to allowing leading ".." in
1916         paths, but only for FTP URLs.
1917         (test_path_simplify): Add scheme-specificness to tests, adapt for
1918         mu_run_test.
1919
1920         * test.c (all_tests): Add test_path_simplify.
1921
1922         * main.c (main): Downgrade -r, -p with -O to a warning rather than
1923         an error; elaborate just a bit more for other -O combination
1924         cases.
1925
1926 2008-04-26  Micah Cowan  <micah@cowan.name>
1927
1928         * http.c (gethttp): Move proxy CONNECT handling to below the
1929         retry_with_auth label, to deal with properly reconnecting to
1930         proxies when we need to authenticate.
1931
1932 2008-04-25  Micah Cowan  <micah@cowan.name>
1933
1934         * Makefile.am: -I foo -> -Ifoo.
1935
1936 2008-04-24  Micah Cowan  <micah@cowan.name>
1937
1938         * main.c: Revised usage description of --convert-links to apply
1939         to CSS as well as to HTML.
1940
1941 2008-04-23  Micah Cowan  <micah@cowan.name>
1942
1943         * utils.c (test_dir_matches_p): Added a test for the case
1944         described in issue #20518.
1945
1946 2008-04-22  Micah Cowan  <micah@cowan.name>
1947
1948         * Makefile.am, css.lex, css.l: Renamed css.lex to css.l.
1949         * recur.c (retrieve_tree): Fix typo to allow text/css files to
1950         be parsed.
1951
1952 2008-04-22  Ted Mielczarek  <ted.mielczarek@gmail.com>
1953
1954         * css.lex, css-url.c, css-url.h: Added to implement support for
1955         parsing CSS in Wget.
1956         * convert.c: Convert links in CSS files, too.
1957         * convert.h (convert_options): Added for options link_css_p,
1958         link_expect_css.
1959         * convert.h: Added prototype for new register_css function.
1960         * html-parse.c: Added support for parsing element content, in
1961         addition to tag starts and ends.
1962         * html-parse.h (taginfo): Added delimiter fields for element
1963         content.
1964         * html-url.h: Added.
1965         * html-url.c (append_url): No longer internal-linkage only. Now
1966         takes position and size as explicit parameters.
1967         * html-url.c: Use new html-url.h header, add support for
1968         handling of "style" HTML attributes. Mark URIs obtained from
1969         link tags with rel="stylesheet" with link_expect_css. Adapt
1970         uses of append_url to supply the newly-added parameters for
1971         position and size.
1972         * http.c: Add detection for when the content-type is text/css;
1973         and ensure that such files have the ".css" filename extension,
1974         when --convert-links is active.
1975         * recur.h: Remove declarations for functions found in
1976         html-url.c (moved to html-url.h).
1977         * recur.c: Add support for culling links from CSS files, too,
1978         and tracking for when we're expecting the file to be CSS (even
1979         when its content type isn't text/css).
1980         * retr.c (retrieve_url): Add registration of CSS files.
1981         * wget.h: Added TEXTCSS to dt flags enum.
1982         * Makefile.am: Added css.lex, css-url.c, css-url.h, html-url.h
1983         to wget_SOURCES.
1984
1985 2008-04-22  Jim Paris  <jim@jtan.com>
1986
1987         * openssl.c (ssl_init): Enable combined certificate/key in
1988         single file (apparent regression from ~1.9). Resolves issue
1989         #22767.
1990
1991 2008-04-22  Steven Schubiger  <schubiger@gmail.com>
1992
1993         * http.c (print_response_line): Changed to make responses always
1994         be logged, even in --quiet mode, if --server-response was
1995         specified. This is to bring http.c's handling of the situation
1996         in line with ftp.c's.
1997
1998 2008-04-22  Pranab Shenoy  <pranab.loosinit.shenoy@gmail.com>
1999
2000         * init.c: Added test_commands_sorted unit test to check is
2001         commands are sorted.  Fixes bug #21245.
2002
2003         * test.c: Added test_commands_sorted to the test suite.
2004
2005 2008-04-22  Rabin Vincent  <rabin@rab.in>
2006
2007         * ftp.c (ftp_get_listing): Only remove .listing if it has been
2008         created.
2009
2010 2008-04-22  Alain Guibert  <alguibert+bts@free.fr>
2011
2012         * test.h (mu_run_test): Move declaration before statements, for
2013         C90 conformance. Fixes bug #22789.
2014
2015 2008-04-22  Mike Frysinger  <vapier@gentoo.org>
2016
2017         * Makefile.am: Move @LIBS@ after other libraries, for better
2018         static-linking support. Fixes bug #22143.
2019
2020 2008-04-16  Steven Schubiger  <schubiger@gmail.com>
2021
2022         * ftp.c: Use Gnulib's quote function for printing filenames and
2023         such.
2024         * connect.c: Likewise.
2025         * convert.c: Likewise.
2026         * cookies.c: Likewise.
2027         * ftp-opie.c: Likewise.
2028         * gnutls.c: Likewise.
2029         * init.c: Likewise.
2030         * log.c: Likewise.
2031         * mswindows.c: Likewise.
2032         * openssl.c: Likewise.
2033         * progress.c: Likewise.
2034         * recur.c: Likewise.
2035         * res.c: Likewise.
2036         * utils.c: Likewise.
2037
2038 2008-04-16  Steven Schubiger  <schubiger@gmail.com>
2039
2040         * sysdep.h: Comment the defines __EXTENSIONS__ and _GNU_SOURCE
2041         out, because they're now defined independently by config.h.
2042
2043 2008-04-14  Steven Schubiger  <schubiger@gmail.com>
2044
2045         * http.c: Use Gnulib's quote function for printing filenames and
2046         such.
2047         * wget.h: #include "quote.h".
2048
2049 2008-04-12  Rabin Vincent  <rabin@rab.in>
2050
2051         * mswindows.c (fake_fork_child): Don't create a logfile for
2052         --background when --quiet is used, but not --server-response.
2053         Fixes bug #20917.
2054
2055         * utils.c (fork_to_background): Likewise.
2056
2057 2008-04-12  Micah Cowan  <micah@cowan.name>
2058
2059         * utils.c (aprintf): Minor formatting changes to Alex's code (80-
2060         column limit, concatenated string literals, avoiding nesting
2061         levels), and removed invocation of free (since we're aborting
2062         anyway).
2063
2064 2008-04-11  Alexander Dergachev  <cy6erbr4in@gmail.com>
2065
2066         * utils.c (aprintf): Now we are setting limits (1 Mb) for text
2067         buffer when we use non-C99 vsnprintf.
2068
2069 2008-04-11  Micah Cowan  <micah@cowan.name>
2070
2071         * ftp.c (getftp, ftp_loop_internal): Don't append to an existing
2072         .listing when --continue is used.  Fixes bug #22825. Thanks to
2073         Rabin Vincent <rabin@rab.in> for pointing the way with a
2074         suggested fix!
2075
2076 2008-04-10  Alexander Dergachev  <cy6erbr4in@gmail.com>
2077
2078         * xmalloc.c, xmalloc.h (memfatal): Now exported; accepts an
2079         "unknown" value for the attempted allocation size.
2080         * utils.c (aprintf): Now calls memfatal, instead of aborting.
2081
2082 2008-03-19  Micah Cowan  <micah@cowan.name>
2083
2084         * utils.c (test_dir_matches_p): More tests related for
2085         dir_matches_p.
2086
2087 2008-03-17  Micah Cowan  <micah@cowan.name>
2088
2089         * connect.c: Include sys/time.h to support use of the select
2090         function on older systems.
2091
2092 2008-02-11  Benno Schulenberg  <bensberg@justemail.net>
2093
2094         * http.c: More accurate and descriptive messages for when a file
2095         won't be retrieved during spider-mode.
2096
2097 2008-02-10  Micah Cowan  <micah@cowan.name>
2098
2099         * http.c: Added existence_checked member to the http_stat
2100         struct.
2101         (gethttp): Mark hs->existence_checked when we've checked whether
2102         a file-to-download exists; so we don't check it again if the
2103         connection gets lost (and potentially pick a new "unique" name).
2104         This fixes bug 22251.
2105         * progress.c (create_image): Add space for an extra column in
2106         the "eta" portion of the progress bar image; to deal with
2107         too-long Czech translation.
2108         * main.c, http.c, init.c: Added --auth-no-challenge option, to
2109         bring back 1.10.2 unsafe auth behavior when needed. This fixes
2110         bug #22242.
2111
2112 2008-02-07  Micah Cowan  <micah@cowan.name>
2113
2114         * progress.c (create_image): Remove assertion on exceeding
2115         screen width, which given the less-than-robust code there, can
2116         be broken by a number of factors (such as large file downloads).
2117
2118 2008-02-06  Micah Cowan  <micah@cowan.name>
2119
2120         * progress.c (countcols): Use strlen() when mbtowc or wcwidth
2121         not available (or not using NLS).
2122         * utils.c: Ensure we use single-byte separators when not doing
2123         NLS progress-bars.
2124         * wget.h: Determine whether to use NLS for progress-bars, based
2125         on whether wcwidth and mbtowc are available.
2126
2127 2008-02-03  Micah Cowan  <micah@cowan.name>
2128
2129         * progress.c (create_image): Use number of characters/columns
2130         consumed, rather than number of bytes, to determine how much of
2131         a line we've used. Fixes assertion errors and field alignment
2132         bugs (#22161, #20481)
2133         (get_eta, count_cols): Added to support the changes for
2134         create_image.
2135         * http.c (http_loop): Put no-clobber logic back into http_loop,
2136         before starting to fetch, for when we're not doing
2137         content-disposition.
2138
2139 2008-01-31  Micah Cowan  <micah@cowan.name>
2140
2141         * http.c (gethttp): Don't derive hs->contlen from possibly
2142         invalid/missing Content-Length; instead, get the appropriate
2143         value from the Content-Range header values.
2144         (parse_content_range): Handle '*' instance-length field.
2145
2146 2008-01-25  Micah Cowan  <micah@cowan.name>
2147
2148         * main.c: Added notes to translators regarding (C), diacritics
2149         in names.
2150         * Makefile.am, cmpt.c, connect.c, connect.h, convert.c,
2151         cookies.c, cookies.h, ftp-basic.c, ftp-ls.c, ftp-opie.c, ftp.c,
2152         ftp.h, gen-md5.c, gen-md5.h, gnutls.c, hash.c, hash.h, host.c,
2153         host.h, html-parse.c, html-parse.h, html-url.c, http-ntlm.c,
2154         http-ntlm.h, http.c, http.h, init.c, init.h, log.c, log.h,
2155         main.c, mswindows.c, mswindows.h, netrc.c, netrc.h, openssl.c,
2156         options.h, progress.c, progress.h, ptimer.c, ptimer.h, recur.c,
2157         recur.h, res.c, res.h, retr.c, retr.h, spider.c, spider.h,
2158         ssl.h, sysdep.h, test.c, test.h, url.c, url.h, utils.c,
2159         utils.h, wget.h, xmalloc.c, xmalloc.h: Updated copyright year.
2160
2161 2007-12-10  Micah Cowan  <micah@cowan.name>
2162
2163         * main.c: The option is --content-disposition, not
2164         --no-content-disposition (at the moment).
2165
2166 2007-12-08  Hrvoje Niksic  <hniksic@xemacs.org>
2167
2168         * ftp.c (ftp_retrieve_glob): Print both arguments of fnmatch in
2169         fnmatch error message.
2170         (ftp_retrieve_glob): Don't match with fnmatch if we're only
2171         supposed to get one file.
2172
2173 2007-12-07  Micah Cowan  <micah@cowan.name>
2174
2175         * Makefile.am: Plug in vars to include stuff from
2176         $(top_srcdir)/md5 when appropriate.
2177
2178 2007-12-05  Micah Cowan  <micah@cowan.name>
2179
2180         * utils.c (subdir_p): Handle the case where d1 is "".
2181         * convert.c (convert_all_links): Don't return without
2182         deallocating timer.
2183
2184 2007-11-28  Micah Cowan  <micah@cowan.name>
2185
2186         * Makefile.am, cmpt.c, connect.c, connect.h, convert.c,
2187         convert.h, cookies.c, cookies.h, ftp-basic.c, ftp-ls.c,
2188         ftp-opie.c, ftp.c, ftp.h, gen-md5.c, gen-md5.h, gnutls.c,
2189         hash.c, hash.h, host.c, host.h, html-parse.c, html-parse.h,
2190         html-url.c, http-ntlm.c, http-ntlm.h, http.c, http.h, init.c,
2191         init.h, log.c, log.h, main.c, mswindows.c, mswindows.h,
2192         netrc.c, netrc.h, openssl.c, options.h, progress.c, progress.h,
2193         ptimer.c, ptimer.h, recur.c, recur.h, res.c, res.h, retr.c,
2194         retr.h, safe-ctype.c, safe-ctype.h, spider.c, spider.h, ssl.h,
2195         sysdep.h, test.c, test.h, url.c, url.h, utils.c, utils.h,
2196         wget.h, xmalloc.c, xmalloc.h: Updated license exception for
2197         OpenSSL, per the SFLC.
2198
2199 2007-10-30  Micah Cowan  <micah@cowan.name>
2200
2201         * main.c (main): Declare argv parameter as char **argv, rather
2202         than char *const *argv. This fixes usage of getopt_long,
2203         regardless of whether getopt_long has a constified argv or not.
2204
2205 2007-10-22  Gisle Vanem  <gvanem@broadpark.no>
2206
2207         * mswindows.c: Move INHIBIT_WRAP macro definition up with wget.h
2208         inclusion.
2209
2210 2007-10-18  Steven Schweda  <sms@antinode.org>
2211
2212         * sysdep.h: #include <stdint.h> as well as <inttypes.h>, to work
2213         around a glitch on Tru64 systems.
2214
2215 2007-10-18  Micah Cowan  <micah@cowan.name>
2216
2217         * Makefile.am: version.c should not be distributed. Removed
2218         config-post.h. Add version.c dependency and gnulib include path
2219         for libunittest.a.
2220         * sysdep.h: Got contents of config-post.h
2221         * config-post.h: Removed.
2222         * wget.h: #include "config.h".
2223         * alloca.c, cmpt.c, connect.c, convert.c, cookies.c,
2224         ftp-basic.c, ftp-ls.c, ftp-opie.c, ftp.c, gen-md5.c, gnutls.c,
2225         hash.c, host.c, html-parse.c, html-url.c, http-ntlm.c, http.c,
2226         init.c, log.c, main.c, mswindows.c, netrc.c, openssl.c,
2227         progress.c, ptimer.c, recur.c, res.c, retr.c, spider.c, url.c,
2228         utils.c, xmalloc.c: Use wget.h at very top, and instead of
2229         config.h.
2230
2231 2007-10-15  Micah Cowan  <micah@cowan.name>
2232
2233         * Makefile.am: Remove intermediary hg-id file generation, make
2234         version.c-generation more portable.
2235
2236 2007-10-14  Micah Cowan  <micah@cowan.name>
2237
2238         * cmpt.c, cookies.c, ftp-basic.c, ftp-ls.c, ftp.c, hash.c,
2239         host.c, html-parse.c, html-url.c, http-ntlm.c, http.c, init.c,
2240         log.c, main.c, netrc.c, openssl.c, res.c, url.c, utils.c,
2241         wget.h: Replace uses of ISSPACE, etc with c_isspace, etc.
2242         * gnu-md5.c, gnu-md5.h: Removed, in deference to gnulib.
2243         * Makefile.am: Removed gnu-md5.h from wget_SOURCES.
2244         * gen-md5.c: Changed #inclusion of gnu-md5.h to md5.h (gnulib's).
2245         * recur.c (download_child_p): Print error if unlink of
2246         robots.txt fails.
2247         * main.c (main): --spider or --delete-after now implies
2248         --no-directories (thanks, Josh Williams).
2249
2250 2007-10-14  Joshua David Williams  <yurimxpxman@gmail.com>
2251
2252         * recur.c (download_child_p): Remove robots.txt if
2253         --delete-after or --spider is on.
2254
2255 2007-10-13  Micah Cowan  <micah@cowan.name>
2256
2257         * Makefile.am: Make version.c depend on Wget dependencies (source
2258         files, plus such things as LIBOBJS so we get things like
2259         http-ntlm.c). Removed getopt.[ch], as we're now using gnulib for
2260         these.
2261
2262 2007-10-10  Micah Cowan  <micah@cowan.name>
2263
2264         * http-ntlm.c: Include openssl/opensslv.h explicitly, instead of
2265         hoping it'll be included by accident in openssl/des.h.
2266
2267 2007-10-09  Gisle Vanem  <gvanem@broadpark.no>
2268
2269         * mswindows.c: 'argc' and 'argv' in 'windows_main()' are no longer
2270         needed.  Hence simply the prototype. Free 'exec_name' at exit.
2271
2272 2007-10-09  Micah Cowan  <micah@cowan.name>
2273
2274         * gettext.h: Imported from /usr/share/gettext, fuller handling
2275         of --disable-nls.
2276         * wget.h: Remove logic for handling lack of NLS (now in
2277         gettext.h).
2278         * main.c: Use gettext's ENABLE_NLS rather than HAVE_NLS.
2279         * Makefile.am: added @LIBINTL@ to LIBS (though it probably
2280         belongs in LDADD, along with everything else currently assigned
2281         to LIBS).
2282
2283 2007-10-08  Micah Cowan  <micah@cowan.name>
2284
2285         * http.c (http_loop): Add send_head_first conditional back
2286         around code that needs it, but not around the last-modified
2287         header-parsing stuff this time. Removed no-longer-useful (was it
2288         ever?) restart_loop boolean, continuing unconditionally at end
2289         of send_head_first conditional block (if we haven't jumped out).
2290
2291 2007-10-04  Micah Cowan  <micah@cowan.name>
2292
2293         * http.c (http_loop): We've got_name if content_disposition
2294         support isn't on; make sure we continue properly in that case,
2295         even though we're not sending HEAD.
2296         * Makefile.in: Removed, replaced by Makefile.am.
2297         * Makefile.am: Converted from Makefile.in.
2298
2299 2007-10-02  Gisle Vanem  <gvanem@broadpark.no>
2300
2301         * ftp.c: Use "_listing" for MSDOS (".listing" is illegal).
2302
2303         * url.c: Update comment for 'filechr_not_windows'.
2304
2305         * utils.c: Include <process.h> for 'getpid()' on Watcom.
2306
2307 2007-10-02  Micah Cowan  <micah@cowan.name>
2308
2309         * ftp.c (getftp, ftp_loop_internal), http.c (http_loop), main
2310         (main): Use datetime_str instead of time_str, for those who have
2311         potentially long-running sessions. Based on suggestions by Saso
2312         Tomat <miskox@hotmail.com> and Steven M. Schweda
2313         <sms@antinode.org>.
2314         * http.c (gethttp): Warn about host lookup failures. Adjusted
2315         from Stephen Gildea's patch.
2316
2317 2007-10-02  Stephen Gildea  <stepheng+wget@gildea.com>
2318
2319         * connect.c (connect_to_host): Warn about host lookup failures.
2320
2321 2007-09-25  Micah Cowan  <micah@cowan.name>
2322
2323         * Makefile.in: Use EXEEXT instead of exeext.
2324
2325 2007-09-24  Gisle Vanem  <giva@bgnett.no>
2326
2327         * connect.c, init.c, main.c, openssl.c, options.h, sysdep.h,
2328         url.c, utils.c: Added support for building on MS-DOS.
2329
2330 2007-09-24  Jochen Roderburg  <roderburg@uni-koeln.de>
2331
2332         * http.c (http_zero): Remove no-longer-used local_size variable.
2333         Fixes bug #21057.
2334
2335 2007-09-12  Micah Cowan  <micah@cowan.name>
2336
2337         * http.c (http_loop): Remove send_head_first from condition for
2338         parsing timestamp.
2339
2340 2007-08-29  Micah Cowan  <micah@cowan.name>
2341
2342         * openssl.c (ssl_init): Re un-const-ified the meth local
2343         variable, to match current versions of openssl.
2344         * spider.c: Removed visited_url function, as it may be very
2345         inefficient.
2346         (print_broken_links): Removed traversal of referrers, until such
2347         time as a more efficient implementation can be written.
2348         * spider.h: Replaced declaration of visited_url with an
2349         empty-bodied, function-like macro.
2350
2351 2007-08-27  Gisle Vanem  <giva@bgnett.no>
2352
2353         * mswindows.c (run_with_timeout): Ensure that the correct
2354         conversion specification is used for the return result of
2355         the GetLastError function.
2356         * getopt.c: Fix missing (but, accidentally, legal) comment
2357         delimiter after licensing text.
2358         * recur.c (retrieve_tree): Inserted missing cast for strip_auth.
2359         Includes adjustment by Ralf Wildenhues.
2360         * openssl.c (ssl_init): const-ified the meth local variable.
2361         * main.c: Include all the static function definitions in the
2362         "#ifndef TESTING" clause, leaving just the definitions for
2363         exec_name (not set), and opt.
2364         * utils.c (run_with_timeout): Now returns bool, to align with
2365         declaration in utils.h.
2366
2367 2007-08-27  Micah Cowan  <micah@cowan.name>
2368
2369         * wget.h: Added macro replacement for ngettext, for environs
2370         that lack NLS.
2371
2372 2007-08-26  Micah Cowan  <micah@cowan.name>
2373
2374         * spider.c (print_broken_links): Fixed incorrect plurals msgid
2375         usage, switched to use ngettext function.
2376
2377 2007-08-24  Micah Cowan  <micah@cowan.name>
2378
2379         * http.c (http_loop): Introduced time_came_from_head boolean
2380         flag, to help avoid parsing the same Last-Modified header twice.
2381         Replaced spidering returns of RETRUNNEEDED for some situations,
2382         to RETROK, as otherwise it will be interpreted as an error.
2383         RETRUNNEEDED appears never to be referenced outside of
2384         http.c (and wget.h), and, when returned by gethttp, is
2385         translated by http_loop to RETROK.
2386         * url.c (are_urls_equal): Don't call getchar_from_escaped_string
2387         if u2 is shorter than u1.
2388         (getchar_from_escaped_string): Don't decode reserved characters.
2389         Handle illegally appearing '%'s as literal '%'s. Ensure hex
2390         digits before attempting to decode.
2391         (test_are_urls_equal): Added tests to handle u2 shorter than u1,
2392         and %2f not treated the same as /.
2393         * spider.c (in_url_list_p): Don't call are_urls_equal if one of
2394         them is NULL.
2395
2396 2007-08-23  Joshua David Williams  <yurimxpxman@gmail.com>
2397
2398         * spider.c (in_url_list_p): Removed the bool verbose argument
2399
2400 2007-08-22  Mauro Tortonesi  <mauro@ferrara.linux.it>
2401
2402         * http.c (http_loop): Fall back to GET if HEAD fails with a 500 or 501
2403         error code.
2404
2405 2007-08-21  Mauro Tortonesi  <mauro@ferrara.linux.it>
2406
2407         * http.c (http_loop): Send preliminary HEAD request if -N is given and
2408         the destination file exists already.
2409
2410 2007-08-10  Mauro Tortonesi  <mauro@ferrara.linux.it>
2411
2412         * http.c (http_loop): Fixed HTTP HEAD requests logic when --spider is
2413         given.
2414
2415 2007-08-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2416
2417         * url.c (append_uri_pathel): Do not assume dest string to be
2418         zero-terminated.
2419         (test_append_uri_pathel): Terminate string to fix test failure.
2420
2421 2007-08-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2422
2423         * url.c (url_string): Use comparison, not assignment, in
2424         check for auth_mode == URL_AUTH_HIDE_PASSWD.
2425
2426 2007-08-09  Micah Cowan  <micah@cowan.name>
2427
2428         * http.c (http_loop): If we got a HEAD and then a GET, and the
2429         GET had a timestamp, use that one, not any we may have gotten
2430         from the HEAD.
2431
2432 2007-08-08  Micah Cowan  <micah@cowan.name>
2433
2434         * init.c (defaults): Content disposition will not be default,
2435         since it currently results in extra round-trips.
2436
2437 2007-07-31  Micah Cowan  <micah@cowan.name>
2438
2439         * http.c (gethttp): Set contlen = -1 when we encounter a
2440         negative-valued Content-Length header, so we don't consider it
2441         an internal error later on and call abort().
2442
2443 2007-07-29  Micah Cowan  <micah@cowan.name>
2444
2445         * url.h, url.c (url_string): Replaced bool arg of the url_string
2446         function with enum url_auth_mode, with added option to
2447         completely remove user/pass auth information.
2448         * http.c, ftp.c, url.c, recur.c: Adapted call to url_string
2449         function to fit new usage.
2450         * recur.c (retrieve_tree): Remove auth info from Referer header.
2451
2452 2007-07-28  Micah Cowan  <micah@cowan.name>
2453
2454         * options.h, init.c, retr.c, main.c: renamed opt maxredirect
2455         field to max_redirect, for improved consistency.
2456         * init.c: changed max_redirect parser from cmd_number_inf to
2457         cmd_number, as infinite redirects may not be appropriate.
2458         Alternatively, if cmd_number_inf should be used, then
2459         opt.max_redirect's value should be checked a bit differently in
2460         retr.c, to allow for the "infinite" meaning of zero.
2461
2462 2007-07-25  Micah Cowan  <micah@cowan.name>
2463
2464         * http.c (create_authorization_line)
2465         (basic_authentication_encode, known_authentication_scheme_p)
2466         (load_cookies): Moved declarations up.
2467         (basic_authed_hosts): Added. Tracks what hosts have issued Basic
2468         challenge and been given the global username, password.
2469         (maybe_send_basic_creds): Added. Sends Basic creds for hosts that
2470         have issued Basic challenges.
2471         (register_basic_auth_host): Added. Instantiates
2472         basic_authed_hosts if necessary, then registers the host that
2473         has issued a challenge.
2474         (gethttp) <auth>: Only send authentication credentials after
2475         we've received a challenge from that host. This is a stop-gap
2476         fix until a proper fix can be implemented; still isn't quite
2477         right, as we should only be sending credentials automatically
2478         for authenticated paths and below, and not for the entire host.
2479
2480 2007-07-16  Joshua David Williams  <yurimxpxman@gmail.com>
2481
2482         * options.h: added maxredirect to options struct
2483         * init.c: added maxredirect to list of variables
2484         * retr.c (retrieve_url): replaced MAX_REDIRECTIONS with opt.maxredirect
2485         * main.c: added option --max-redirect
2486
2487 2007-07-16  Joshua David Williams  <yurimxpxman@gmail.com>
2488
2489         * test.h: tests made more verbose; now displays the name
2490         of each test run.
2491
2492 2007-07-10  Mauro Tortonesi  <mauro@ferrara.linux.it>
2493
2494         * http.c (http_loop): Fixed the HTTP requests logic. Now it skips the
2495         preliminary HEAD request if either -O or --no-content-disposition are
2496         given, and neither --spider and -N are given.
2497
2498 2007-07-05  Micah Cowan  <micah@cowan.name>
2499
2500         * cmpt.c, connect.c, connect.h, convert.c, convert.h:
2501         * cookies.c, cookies.h, ftp-basic.c, ftp.c, ftp.h, ftp-ls.c:
2502         * ftp-opie.c, gen-md5.c, gen-md5.h, getopt.c, getopt.h, gnu-md5.c:
2503         * gnu-md5.h, gnutls.c, hash.c, hash.h, host.c, host.h:
2504         * html-parse.c, html-parse.h, html-url.c, http.c, http.h:
2505         * http-ntlm.c, http-ntlm.h, init.c, init.h, log.c, log.h, main.c:
2506         * Makefile.in, mswindows.c, mswindows.h, netrc.c, netrc.h:
2507         * openssl.c, options.h, progress.c, progress.h, ptimer.c:
2508         * ptimer.h, recur.c, recur.h, res.c, res.h, retr.c, retr.h:
2509         * safe-ctype.c, safe-ctype.h, spider.c, spider.h, ssl.h, sysdep.h:
2510         * test.c, test.h, url.c, url.h, utils.c, utils.h, wget.h:
2511         * xmalloc.c, xmalloc.h:
2512         Updated GPL reference to version 3 or later, removed FSF
2513         address.
2514
2515 2007-07-04  Mauro Tortonesi  <mauro@ferrara.linux.it>
2516
2517         * http.c (http_loop): Skip HEAD request and start immediately with GET
2518         if -O is given.
2519
2520 2007-02-02  Hrvoje Niksic  <hniksic@xemacs.org>
2521
2522         * http.c (print_server_response): Escape non-printable characters
2523         in server respone.
2524
2525 2007-02-02  Hrvoje Niksic  <hniksic@xemacs.org>
2526
2527         * netrc.c: Don't make netrc_list static, as it prevents
2528         compilation with DEBUG_MALLOC.
2529
2530         * utils.c (aprintf): Don't use vasprintf when DEBUG_MALLOC is
2531         requested because, in that case, we want the calls to malloc to be
2532         coming from us.
2533
2534 2007-01-23  Hrvoje Niksic  <hniksic@xemacs.org>
2535
2536         * cookies.c (parse_set_cookie): Would erroneously discard cookies
2537         with unparsable expiry time.
2538
2539 2007-01-23  Hrvoje Niksic  <hniksic@xemacs.org>
2540
2541         * progress.c (create_image): Check for ETA overflow.
2542         (print_row_stats): Ditto.
2543
2544 2007-01-09  Mauro Tortonesi  <mauro@ferrara.linux.it>
2545
2546         * init.c (cmd_spec_prefer_family): Small fix to get rid of a gcc
2547         warning about strict-aliasing violation.
2548
2549 2007-01-09  Steven M. Schweda  <sms@antinode.org>
2550
2551         * ftp-basic.c (ftp_syst): Fixed segfault if response text is missing.
2552
2553 2006-12-29  Gisle Vanem  <giva@bgnett.no>
2554
2555         * mswindows.c: Avoid a warning if 'ws_hangup()' is unused.
2556
2557 2006-12-27  Mauro Tortonesi  <mauro@ferrara.linux.it>
2558
2559         * http.c (parse_content_disposition): Consider directory prefix, if
2560         specified.
2561
2562 2006-11-21  Hrvoje Niksic  <hniksic@xemacs.org>
2563
2564         * retr.c (retrieve_from_file): Ditto.
2565         (url_uses_proxy): New function.
2566
2567         * main.c (main): Don't check for opt.use_proxy when deciding
2568         whether to call retrieve_url or retrieve_tree; check whether the
2569         proxy would be used for *this* URL.
2570
2571 2006-10-17  Mike Grant  <mggr@pml.ac.uk>
2572
2573         * ftp.c (ftp_loop_internal): Would incorrectly skip changing
2574         working directory when retrying after a failed FTP attempt.
2575         Originally reported by Nate Eldredge.
2576
2577 2006-10-12  Mauro Tortonesi  <mauro@ferrara.linux.it>
2578
2579         * convert.c (downloaded_file): Fixed bug which used to break -E -k -K
2580         mode.
2581
2582 2006-08-28  Mauro Tortonesi  <mauro@ferrara.linux.it>
2583
2584         * http.c: #include'd spider.h to get rid of compiler warnings.
2585
2586         * main.c: Ditto.
2587
2588         * recur.c: Ditto.
2589
2590 2006-08-24  Mauro Tortonesi  <mauro@ferrara.linux.it>
2591
2592         * Makefile.in: Added spider.c to the list of files to compile and
2593         spider.h to the list of header files. Updated copyright information.
2594
2595         * http.c: Major changes to recursive spider mode. Now for every
2596         resource we are supposed to check, we send a HEAD request to find out
2597         if it exists. If the resource is a HTML file, we retrieve it and parse
2598         it to discover links to other resources.
2599
2600         * recur.c: Ditto.
2601
2602         * res.c (res_retrieve_file): Disable opt.timestamping and opt.spider
2603         when retrieving robots.txt. Updated copyright information.
2604
2605         * convert.c: Moved code tracking broken links to spider.c.
2606
2607         * convert.h: Ditto.
2608
2609         * spider.c: Created new file to keep track of visited URLs in spider
2610         mode.
2611
2612         * spider.h: Ditto.
2613
2614 2006-08-21  Mauro Tortonesi  <mauro@ferrara.linux.it>
2615
2616         * http.c: Fixed timestamping-related bug.
2617
2618 2006-08-16  Mauro Tortonesi  <mauro@ferrara.linux.it>
2619
2620         * http.c: Fixed bug which broke --continue feature. Now if -c is
2621         given, http_loop sends a HEAD request to find out the destination
2622         filename before resuming download.
2623
2624 2006-08-08  Hrvoje Niksic  <hniksic@xemacs.org>
2625
2626         * utils.c (datetime_str): Avoid code repetition with time_str.
2627
2628 2006-07-21  Hrvoje Niksic  <hniksic@xemacs.org>
2629
2630         * init.c (commands): Correctly place "contentdisposition".
2631
2632 2006-07-14  Mauro Tortonesi  <mauro@ferrara.linux.it>
2633
2634         * sysdep.h: If intptr_t isn't defined, simply typedef it to long.
2635
2636         * http.c: Added explicit cast to int in logprintf call to remove
2637         compiler warnings on 64-bit platforms.
2638
2639         * connect.c: Added a few casts to intptr_t to remove compiler warnings
2640         on 64-bit platforms.
2641
2642         * main.c: Disable -r, -p and -N when -O is used. Disable -k when -O is
2643         used and multiple URLs are given. Update maintainer information.
2644
2645         * all: Update copyright information.
2646
2647 2006-07-10  KJKHyperion  <hackbunny@reactos.com>
2648
2649         * url.c (filechr_table): Mark DEL (0x7f) as a control character
2650         and | as a character Windows can't handle.
2651
2652 2006-06-28  Mauro Tortonesi  <mauro@ferrara.linux.it>
2653
2654         * res.c: Implemented is_robots_txt_url function for detection of
2655         robots.txt URLs and related test routine.
2656
2657         * res.h: Ditto.
2658
2659         * url.c: Implemented are_urls_equal function for URL comparison and
2660         related testing routine.
2661
2662         * url.h: Ditto.
2663
2664         * convert.c: Fixes for recursive spider mode: don't consider
2665         non-existing robots.txt as a broken link, and use are_urls_equal
2666         instead of strcasecmp for referrer URLs comparison.
2667
2668         * test.c: Call tests routines for are_urls_equal and
2669         is_robots_txt_url.
2670
2671 2006-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
2672
2673         * wget.h (wgint): Typedef to any 64-bit (or larger) type we can
2674         find, not necessarily off_t or long.
2675
2676 2006-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
2677
2678         * cmpt.c (strtoll): Check for overflow and underflow without
2679         relying on (technically) undefined behavior.  Don't assume that
2680         strtoll_type is 64 bits wide.
2681
2682 2006-06-21  Hrvoje Niksic  <hniksic@xemacs.org>
2683
2684         * utils.c (base64_encode): Cast void pointer to char * before
2685         doing arithmetic.
2686
2687 2006-06-20  Hrvoje Niksic  <hniksic@xemacs.org>
2688
2689         * utils.c (base64_encode): Made TBL const.
2690         (base64_decode): Made the base64_char_to_value table const.
2691
2692 2006-06-19  Hrvoje Niksic  <hniksic@xemacs.org>
2693
2694         * utils.c (base64_encode): Made the DATA pointer void * so the
2695         callers can pass it any kind of pointer (including both signed and
2696         unsigned char pointers).
2697         (base64_decode): Ditto for DEST.
2698
2699 2006-06-19  Hrvoje Niksic  <hniksic@xemacs.org>
2700
2701         * utils.c (base64_encode): Would read past end of STR.
2702         Reported by rick@eckle.org.
2703
2704 2006-06-13  Mauro Tortonesi  <mauro@ferrara.linux.it>
2705
2706         * options.h (struct options): Introduced member restrict_files_case to
2707         keep track of preferences on character case restrictions for
2708         filenames.
2709
2710         * init.c: Modified defaults and cmd_spec_restrict_file_names to
2711         support character case restrictions for filenames. Added
2712         test_cmd_spec_restrict_file_names unit test.
2713
2714         * url.c: Modified append_uri_pathel to support character case
2715         restrictions for filenames. Added test_append_uri_pathel unit test.
2716
2717         * test.c: Added test_cmd_spec_restrict_file_names and
2718         test_append_uri_pathel to the list of unit tests to run.
2719
2720 2006-06-12  Mauro Tortonesi  <mauro@ferrara.linux.it>
2721
2722         * retr.c (retrieve_from_file): Use retrieve_tree and automatically
2723         turn on opt.follow_ftp in case of recursive FTP retrieval through HTTP
2724         proxy.
2725
2726         * main.c: Automatically turn on opt.follow_ftp in case of recursive
2727         FTP retrieval through HTTP proxy.
2728
2729 2006-06-12  Tony Lewis  <tlewis@exelana.com>
2730
2731         * main.c: Improved CHEN Peng's patch by proposing a simpler logic.
2732
2733 2006-06-12  CHEN Peng  <chenpeng@alumni.nus.edu.sg>
2734
2735         * main.c: Use retrieve_tree in case of recursive FTP retrieval through
2736         HTTP proxy.
2737
2738 2006-05-25  Mauro Tortonesi  <mauro@ferrara.linux.it>
2739
2740         * convert.c: Added mechanisms to keep track broken links.
2741
2742         * convert.h: Ditto.
2743
2744         * wget.h: Reordered and enumerated uerr_t constants.
2745
2746         * recur.c: Fixes to support recursive spider mode.
2747
2748         * http.c: Ditto.
2749
2750         * main.c: Print broken links in case of recursive spider mode.
2751
2752         * retr.c: Changed interface of retrieve_url.
2753
2754         * retr.h: Ditto.
2755
2756         * ftp.c: Changed interface of ftp_loop.
2757
2758         * ftp.h: Ditto.
2759
2760         * res.c: Minor change to reflect changes in interface of retrieve_url.
2761
2762 2006-05-18  Lawrence Jones  <lawrence.jones@ugs.com>
2763
2764         * ftp-ls.c (ftp_parse_unix_ls): Correct size parsing, add size
2765         and filename debugging output.
2766
2767 2006-04-28  Mauro Tortonesi  <mauro@ferrara.linux.it>
2768
2769         * http.c: If Content-Disposition header is present, allow unique
2770         filename generation unless -nc is given. Permit to disable parsing of
2771         Content-Disposition header.
2772
2773         * options.h: Added option --no-content-disposition to disable parsing
2774         of HTTP Content-Disposition header.
2775
2776         * init.c: Ditto.
2777
2778         * main.c: Ditto.
2779
2780 2006-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
2781
2782         * hash.c (TOLOWER): Wrap macro arg in parentheses.
2783
2784 2006-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
2785
2786         * http.c (parse_content_disposition): Doc fix.
2787
2788 2006-03-15  Mauro Tortonesi  <mauro@ferrara.linux.it>
2789
2790         * utils.c: Restricted operational semantics of frontcmp and proclist
2791         from generic strings to directory names and them to subdir_p and
2792         dir_matches_p respectively.  Applied George Ogata's one line patch to
2793         restrict algorithm of subdir_p to full directory name matching.  Added
2794         testcases for subdir_p and dir_matches_p.
2795
2796         * utils.h: Changed all frontcmp occurrences to subdir_p.
2797
2798         * recur.c: Ditto.
2799
2800         * test.c: Changed type returned by test functions from char * to const
2801         char *.  Added test_subdir_p and test_dir_matches_p to the list of
2802         tests to run.
2803
2804         * http.c (test_parse_content_disposition): Changed return type from
2805         char * to const char *.
2806
2807 2006-03-14  Mauro Tortonesi  <mauro@ferrara.linux.it>
2808
2809         * recur.c (struct queue_element): Changed type of html_allowed member
2810         to bool.
2811
2812 2006-03-09  Mauro Tortonesi  <mauro@ferrara.linux.it>
2813
2814         * ftp.c (ftp_list): Try `LIST -a' command first and revert to `LIST'
2815         in case of failure.
2816
2817 2006-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
2818
2819         * hash.c (TOLOWER): Fix definition when STANDALONE.
2820         Reported by Beni Serfaty.
2821
2822 2006-03-02  Mauro Tortonesi  <mauro@ferrara.linux.it>
2823
2824         * http.c (http_loop): Fixed recursive HTTP retrieval.
2825
2826 2006-02-28  Hrvoje Niksic  <hniksic@xemacs.org>
2827
2828         * http.c (extract_param): Declare extern so it can be used from
2829         other files.
2830         (extract_param): Return error for empty name.
2831
2832 2006-02-28  Hrvoje Niksic  <hniksic@xemacs.org>
2833
2834         * url.c (find_last_char): Define in terms of memrchr.
2835
2836         * cmpt.c (memrchr): Define it on systems that don't have it.
2837
2838         * http.c (extract_param): New function for parsing header values
2839         with parameters.
2840         (parse_content_disposition): Use it.  Don't allow slashes and
2841         backslashes in the file name.
2842
2843 2006-02-27  Hrvoje Niksic  <hniksic@xemacs.org>
2844
2845         * url.c (path_simplify): Don't preserve ".." at beginning of path.
2846         Suggested by Frank McCown.
2847
2848 2006-02-25  Hrvoje Niksic  <hniksic@xemacs.org>
2849
2850         * http.c (gethttp): Only use FILE.N.html if FILE.html exists.
2851
2852 2006-02-09  Hrvoje Niksic  <hniksic@xemacs.org>
2853
2854         * mswindows.c (run_with_timeout): Made thread_hnd non-static.
2855
2856 2006-02-05  Hrvoje Niksic  <hniksic@xemacs.org>
2857
2858         * retr.c (sleep_between_retrievals): Sleep at a minimum of 1/2 of
2859         the specified wait period.
2860
2861 2006-02-03  Hrvoje Niksic  <hniksic@xemacs.org>
2862
2863         * utils.c (number_to_string): Don't use sprintf for printing
2864         WGINT_MIN; simply divide n by 10 and defer printing the last
2865         digit.
2866         (number_to_string): Removed the SPRINTF_WGINT macro.
2867
2868 2006-02-03  Mauro Tortonesi  <mauro@ferrara.linux.it>
2869
2870         * http.c: Fixed support for Content-Disposition header.
2871
2872         * test.c: Added test_parse_content_disposition to the list of unit
2873         tests to run.
2874
2875 2006-02-02  Hrvoje Niksic  <hniksic@xemacs.org>
2876
2877         * hash.c: Don't define countof if it's already defined.
2878
2879         * hash.c: Obtain the definition of uintptr_t when standalone.
2880
2881 2006-01-30  Mauro Tortonesi  <mauro@ferrara.linux.it>
2882
2883         * http.c: Changed output format. Removed excessively verbose debugging
2884         output.
2885
2886 2005-12-07  Mauro Tortonesi  <mauro@ferrara.linux.it>
2887
2888         * http.c: Fixed pre-download verbose output which was broken by
2889         HTTP code refactoring.
2890
2891 2005-11-23  Mauro Tortonesi  <mauro@ferrara.linux.it>
2892
2893         * http.c: Refactored HTTP code.  If -O is not used, the new code
2894         delays the choice of the file name where the downloaded resource
2895         will be saved until the HTTP headers have been retrieved.
2896         Added support for Content-Disposition header.
2897
2898 2005-11-19  Hrvoje Niksic  <hniksic@xemacs.org>
2899
2900         * hash.c (INVALID_PTR): Use uintptr_t instead of unsigned long.
2901         (hash_pointer): Don't assume a pointer fits in `unsigned long'.
2902
2903 2005-11-02  Mauro Tortonesi  <mauro@ferrara.linux.it>
2904
2905         * Makefile.in: Removed support for unit testing (now it is in
2906         tests/Makefile.in).
2907
2908 2005-10-27  Mauro Tortonesi  <mauro@ferrara.linux.it>
2909
2910         * Makefile.in: Added basic support for unit testing.
2911
2912         * test.c: Ditto.
2913
2914         * test.h: Ditto.
2915
2916 2005-10-13  Daniel Stenberg  <daniel@haxx.se>
2917
2918         * http-ntlm.c (ntlm_output): Fixed buffer overflow vulnerability.
2919
2920 2005-10-09  Russ Allbery  <rra@stanford.edu>
2921
2922         * snprintf.c: Remove round to round_int and pow10 to pow10_int, to
2923         avoid warnings from GCC 4.0.
2924
2925 2005-10-05  Mauro Tortonesi  <mauro@ferrara.linux.it>
2926
2927         * retr.c: Changed semantics of no_proxy_match.
2928
2929 2005-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
2930
2931         * main.c (main): Don't print the summary if nothing has been downloaded.
2932
2933 2005-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
2934
2935         * retr.c (retr_rate): Rename parameter from MSECS to SECS since it
2936         no longer holds milliseconds.
2937
2938 2005-09-01  Hrvoje Niksic  <hniksic@xemacs.org>
2939
2940         * progress.c: Introduce symbolic constants for "magic" values of
2941         0.2 and 0.9, REFRESH_INTERVAL and ETA_REFRESH_INTERVAL.
2942
2943 2005-08-27  Hrvoje Niksic  <hniksic@xemacs.org>
2944
2945         * cmpt.c (strtoll): Correctly handle strtoll("0x", ptr, 0) and
2946         strtoll("0x<nonhexchar>", ptr, 0) -- in both cases *ptr must be
2947         set to the position of 'x', not after it.
2948
2949 2005-08-27  Hrvoje Niksic  <hniksic@xemacs.org>
2950
2951         * hash.c (hash_table_map): Rename to hash_table_for_each and
2952         update callers.
2953         Document the meaning of the callback's return value.
2954         (hash_table_iterate): New function.
2955         (hash_table_iter_next): Likewise.
2956         Update most places that used hash_table_for_each to use the
2957         iteration, which doesn't require a temporary function with
2958         explicit state management.
2959
2960 2005-08-26  Albert Chin  <wget@mlists.thewrittenword.com>
2961
2962         * Makefile.in: Use @datadir@.  Define localedir as $(datadir)/locale.
2963
2964 2005-08-26  Jeremy Shapiro  <jnshapiro@gmail.com>
2965
2966         * openssl.c (ssl_init): Set SSL_MODE_AUTO_RETRY.
2967
2968 2005-08-23  Hrvoje Niksic  <hniksic@xemacs.org>
2969
2970         * host.c (address_list_from_ipv4_addresses): Use IP_INADDR_DATA.
2971
2972 2005-08-12  Hrvoje Niksic  <hniksic@xemacs.org>
2973
2974         * wget.h: Renamed strtoll_return to strtoll_type.
2975
2976 2005-08-11  Hrvoje Niksic  <hniksic@xemacs.org>
2977
2978         * progress.c (eta_to_human_short): Switch to days when printing
2979         more than 48h rather than 100h.  (It's not immediately apparent
2980         how many days there are in 83h.)
2981
2982 2005-08-11  Hrvoje Niksic  <hniksic@xemacs.org>
2983
2984         * cmpt.c (strtoll): Define it if missing on the system and if Wget
2985         needs it.
2986
2987         * mswindows.c (str_to_int64): Move to cmpt.c and rename to strtoll.
2988
2989 2005-08-10  Hrvoje Niksic  <hniksic@xemacs.org>
2990
2991         * host.c (print_address): Always use inet_ntop when IPv6 is
2992         enabled.
2993
2994         * host.h (ip_address): Simplify the data union.
2995
2996 2005-08-09  Hrvoje Niksic  <hniksic@xemacs.org>
2997
2998         * mswindows.c (inet_ntop): Also handle IPv4 addresses for
2999         completeness.
3000
3001 2005-08-09  Hrvoje Niksic  <hniksic@xemacs.org>
3002
3003         * http.c (gethttp): Don't read more than the amount of data
3004         specified by the content-length header.
3005
3006 2005-08-09  Vasil Dimov  <vd@datamax.bg>
3007
3008         * ftp.c (getftp): Don't free RESPLINE if ftp_response returns a
3009         status other than FTPOK.
3010
3011 2005-08-04  Giuseppe Bonacci  <g.bonacci@libero.it>
3012
3013         * ftp-ls.c (ftp_parse_unix_ls): Remember the position of the
3014         previous token instead of backtracking back to it.
3015
3016 2005-07-08  Gisle Vanem  <giva@bgnett.no>
3017
3018         * mswindows.h: Include process.h to get getpid() declaration.
3019
3020 2005-07-08  Hrvoje Niksic  <hniksic@xemacs.org>
3021
3022         * utils.c (aprintf): Use vasprintf where available.
3023
3024 2005-07-08  Hrvoje Niksic  <hniksic@xemacs.org>
3025
3026         * url.c (rewrite_shorthand_url): Simplify code using aprintf and
3027         strspn.
3028
3029 2005-07-07  Hrvoje Niksic  <hniksic@xemacs.org>
3030
3031         * gnutls.c (ssl_check_certificate): Check for the validity of the
3032         presented X509 certificate.
3033
3034 2005-07-07  Hrvoje Niksic  <hniksic@xemacs.org>
3035
3036         * openssl.c (ssl_check_certificate): Print custom error messages
3037         for frequent X509 certificate problems.
3038
3039 2005-07-07  Hrvoje Niksic  <hniksic@xemacs.org>
3040
3041         * mswindows.h: Define an alias for stat and fstat, as requested by
3042         config-compiler.h.
3043         (gai_strerror): Define to windows_strerror if NEED_GAI_STRERROR is
3044         defined.
3045
3046 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
3047
3048         * mswindows.h: Use strtoll where available.
3049
3050 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
3051
3052         * sysdep.h: Add a full declaration of fnmatch.h.
3053
3054 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
3055
3056         * utils.c: Unconditionally include <setjmp.h>.
3057
3058 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
3059
3060         * utils.c (fnmatch_nocase): New function.
3061         (proclist): Use it instead of fnmatch when opt.ignore_case is
3062         requested.
3063         (in_acclist): Respect opt.ignore_case.
3064         (frontcmp): Respect opt.ignore_case.
3065
3066         * options.h (struct options): New flag opt.ignore_case.
3067
3068 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
3069
3070         * ptimer.c: Measure time in seconds rather than milliseconds.
3071         Adjusted all callers.
3072
3073 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
3074
3075         * http.c (gethttp): When freeing MESSAGE, take into account that
3076         it can be NULL.
3077
3078 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
3079
3080         * cmpt.c (timegm): Handle years after 2099.
3081
3082 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
3083
3084         * cmpt.c (timegm): Remove unused variable.
3085
3086 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
3087
3088         * cmpt.c (timegm): Don't call mktime; simply count the seconds
3089         between 1970-01-01 and the specified date.
3090
3091 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
3092
3093         * wget.h (or): Define HAVE_SSL when either HAVE_OPENSSL or
3094         HAVE_GNUTLS are defined.
3095
3096         * gnutls.c: New file.
3097
3098 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
3099
3100         * http.c (gethttp): Don't print the request write error message
3101         twice.
3102
3103 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
3104
3105         * openssl.c (openssl_errstr): Instead of always using a large
3106         static buffer, only allocate the error string when there is an
3107         actual error.
3108
3109 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
3110
3111         * xmalloc.c (debugging_free): Prefix hex pointer value with "0x"
3112         when printing.
3113
3114 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
3115
3116         * utils.c (NEXT_BASE64_CHAR): Rename to NEXT_CHAR and simplify to
3117         get the next non-whitespace character.
3118
3119 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
3120
3121         * utils.c (base64_decode): Don't silently tolerate non-base64
3122         non-white-space characters in the base64 stream.
3123
3124 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
3125
3126         * connect.c (LAZY_RETRIEVE_INFO): Make last_tick unsigned to match
3127         transport_map_modified_tick.
3128
3129 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
3130
3131         * config-post.h (alloca): Updated declaration to not enumerate all
3132         Windows compilers.
3133
3134 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
3135
3136         * openssl.c (openssl_errstr): Separate error messages with "; ".
3137
3138 2005-07-03  Hrvoje Niksic  <hniksic@xemacs.org>
3139
3140         * ftp.c (getftp): Ditto.
3141
3142         * http.c (gethttp): Use fd_errstr.
3143
3144         * connect.c (fd_register_transport): Restructure parameters to
3145         include only a single structure that describes transport
3146         implementation.
3147
3148         * openssl.c (openssl_errstr): New function: dump SSL error strings
3149         into a static buffer and return a pointer to the buffer.
3150
3151         * connect.c (fd_errstr): New function; returns transport-specific
3152         error message, or strerror(errno) if transport doesn't supply one.
3153
3154 2005-07-03  Hrvoje Niksic  <hniksic@xemacs.org>
3155
3156         * mswindows.h: Also wrap accept() and listen().
3157
3158 2005-07-03  Hrvoje Niksic  <hniksic@xemacs.org>
3159
3160         * url.c (path_end): Skip separators appropriate for the scheme.
3161         (strpbrk_or_eos): Remove gcc-specific version, as the optimization
3162         it tried to perform no longer applies.
3163
3164 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
3165
3166         * host.c: Don't include "connect.h" now that we no longer have
3167         socket_has_inet6.
3168
3169 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
3170
3171         * host.c: Remove extraneous definition of netdb.h.
3172
3173 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
3174
3175         * http.c (gethttp): Skip error message body in the keep-alive
3176         case.
3177
3178 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
3179
3180         * url.c (url_parse): Would crash when parsing fragments.  Support
3181         fragments for FTP URLs too.
3182
3183 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
3184
3185         * version.c: Don't use "cvs" in version name, since we're not
3186         using CVS anymore.
3187
3188 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
3189
3190         * progress.c (create_image): Ditto.
3191
3192         * retr.c (retr_rate): Display smaller rate numbers with greater
3193         precision.
3194
3195 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
3196
3197         * http.c (response_head_terminator): Minor optimization.
3198
3199         * retr.c (fd_read_hunk): Call terminator with pointer to the start
3200         of the data and the pointer to the current data.  Changed all
3201         callers.
3202
3203 2005-07-01  Hrvoje Niksic  <hniksic@xemacs.org>
3204
3205         * url.c (url_parse): Make sure u->params is not initialized for
3206         http/https URLs.
3207         (url_parse): Don't crash on garbage following []-delimited IPv6
3208         addresses.
3209
3210 2005-07-01  Hrvoje Niksic  <hniksic@xemacs.org>
3211
3212         * main.c (print_help): Don't refer to the non-existent -nr in
3213         description of --mirror.
3214
3215 2005-06-30  Hrvoje Niksic  <hniksic@xemacs.org>
3216
3217         * host.c (pretty_print_address): Renamed to just print_address.
3218         Clarify documentation.
3219
3220 2005-06-30  Hrvoje Niksic  <hniksic@xemacs.org>
3221
3222         * http.c (gethttp): Explicitly document the different cases when
3223         generating the Host header.
3224
3225 2005-06-30  Hrvoje Niksic  <hniksic@xemacs.org>
3226
3227         * host.c (pretty_print_address): Handle error result from
3228         inet_ntop.
3229
3230 2005-06-30  Gisle Vanem  <giva@bgnett.no>
3231
3232         * mswindows.c (inet_ntop): New function.  Print IPv6 addresses
3233         using WSAAddressToString.
3234
3235 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
3236
3237         * progress.c (dot_update): Remove unused variable row_qty.
3238
3239 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
3240
3241         * main.c: Check for both SIGHUP and SIGUSR1 before using them.
3242
3243 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
3244
3245         * utils.c: Unconditionally include locale.h.
3246
3247 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
3248
3249         * ptimer.c: Include sys/time.h to get struct timeval.
3250
3251 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
3252
3253         * wget.h: Remove obsolete definition of with_thousand_seps_sum.
3254
3255 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
3256
3257         * gnu-md5.h: Unconditionally include limits.h.
3258
3259 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
3260
3261         * utils.c (random_number): Use lrand48 if available.
3262         (random_float): Use drand48 if available.
3263
3264 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
3265
3266         * main.c (secs_to_human_time): Use print_decimal when printing
3267         total download time in seconds.
3268
3269         * progress.c (print_row_stats): Use it to print total download
3270         time at the end of the download.
3271         (create_image): Ditto.
3272
3273         * utils.c (print_decimal): New function; print small decimal
3274         numbers with more precision than large ones.
3275
3276         * progress.c (print_row_stats): New function.  Print ETA after the
3277         download rate at the end of each row.
3278
3279 2005-06-28  Hrvoje Niksic  <hniksic@xemacs.org>
3280
3281         * init.c (parse_line): Check for alphanumerics.
3282
3283 2005-06-28  Hrvoje Niksic  <hniksic@xemacs.org>
3284
3285         * (dot_create): Remove unnecessary casts.
3286
3287 2005-06-28  Hrvoje Niksic  <hniksic@xemacs.org>
3288
3289         * ftp.c (getftp): Delete trailing newlines from LIST output so
3290         lines don't come out with trailing \015\012 with -S.
3291
3292 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
3293
3294         * mswindows.h: Remove superfluous includes.
3295
3296 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
3297
3298         * config-post.h (alloca): Amend alloca declaration to take care of
3299         all Win32 compilers, not just MSVC and MinGW.
3300
3301 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
3302
3303         * utils.c (get_grouping_data): Force separator to "." rather than
3304         " " when "," is taken.
3305
3306 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
3307
3308         * wget.h (PTR_FORMAT): Cast the result of sizeof to int before
3309         passing it to printf's %*.
3310
3311         * retr.h: Declare output_stream and output_stream_regular.
3312
3313         * ftp.h: Declare ftp_last_respline.
3314
3315         * convert.h: Declare dl_url_file_map.
3316
3317         * http.h: New file.
3318
3319 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
3320
3321         * cookies.c: Make cookies_now static.
3322
3323 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
3324
3325         * utils.c (human_readable): Remove intermediary cast to long; MSVC
3326         has problems casting *unsigned* __int64 to double.
3327
3328 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
3329
3330         * sysdep.h: Use the system-provided fnmatch by default.
3331
3332 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
3333
3334         * http.c (mktime_from_utc): Renamed to timegm and moved to cmpt.c.
3335         Don't compile it if GNU timegm is available.
3336         (http_atotm): Use timegm.
3337
3338 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
3339
3340         * http.c (http_atotm): Correctly query the old locale value.
3341
3342 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
3343
3344         * config-post.h (alloca): Don't #define alloca under MinGW32,
3345         which defines it in malloc.h, included from mswindows.h.
3346
3347 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
3348
3349         * utils.c (get_grouping_data): Force the use of separators in C
3350         locale.
3351
3352 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
3353
3354         * main.c (i18n_initialize): Set all locale categories.
3355
3356         * http.c (http_atotm): Temporarily set locale to "C".
3357
3358 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
3359
3360         * http.c (gethttp): Improve "POST data file missing" error
3361         message.
3362
3363 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
3364
3365         * progress.c (set_progress_implementation): Type COLON as const
3366         char *.
3367
3368 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
3369
3370         * utils.c (with_thousand_seps): Handle negative numbers.
3371
3372 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
3373
3374         * progress.c (create_image): Mark the "eta" string for translation.
3375
3376 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
3377
3378         * html-url.c (get_urls_file): Don't explicitly set entry->next to
3379         NULL since entry is already zeroed out.
3380
3381 2005-06-26  Gisle Vanem  <giva@bgnett.no>
3382
3383         * mswindows.h: Define gai_strerror under MinGW.
3384
3385 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
3386
3387         * utils.c (with_thousand_seps): Correctly implement thousand seps
3388         consisting of more than one character.
3389
3390 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
3391
3392         * main.c (secs_to_human_time): Ditto.
3393
3394         * progress.c (create_image): Print more exact duration of very
3395         short downloads.
3396
3397         * main.c (secs_to_human_time): Don't translate time suffixes "h",
3398         "m", and "s", which are not strictly SI, but are "accepted for use
3399         with SI".
3400         (secs_to_human_time): Print really small intervals as 0s, not
3401         0.00s.
3402
3403 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
3404
3405         * config-post.h: Replace the alloca declaration with the one from
3406         the latest Autoconf manual.  This should remove a warning with GCC
3407         on AIX.
3408
3409 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
3410
3411         * ftp.c (getftp): Always invoke SIZE, not only when continuing a
3412         download.
3413
3414         * main.c (main): Ditto here.
3415
3416         * progress.c (create_image): When the download is finished, print
3417         how long it took.
3418
3419 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
3420
3421         * main.c (main): Print the downloaded and quota amounts with the
3422         "human_readable" function.
3423
3424         * ftp.c (print_length): Ditto.
3425
3426         * http.c (gethttp): Don't display thousand separators.
3427
3428         * utils.c (with_thousand_seps): Rewritten to respect locale
3429         settings and to be type size agnostic.
3430
3431 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
3432
3433         * utils.c (human_readable): Divide with 1024 instead of shifting
3434         so the operation can work with non-integer N.
3435
3436 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
3437
3438         * progress.c (eta_to_human): New logic for more human-readable
3439         ETA.
3440
3441 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
3442
3443         * utils.c (with_thousand_seps_sum): Decrease buffer size so it
3444         cannot overrun add_thousand_seps's buffer.
3445
3446 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
3447
3448         * utils.c (SPRINTF_WGINT): The correct format is %I64d, not just
3449         %I64.
3450
3451 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
3452
3453         * http.c (http_loop): Don't warn about wildcards in HTTP URLs if
3454         globbing isn't requested in the first place.
3455
3456         * retr.c (retrieve_url): Temporarily turn off globbing when
3457         processing HTTP->FTP redirects.
3458
3459 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
3460
3461         * utils.c (with_thousand_seps_sum): Now defined only if
3462         SUM_SIZE_INT is double.
3463
3464         * wget.h (SUM_SIZE_INT): Instead of bothering with long, long
3465         long, __int64, and friends, simply either use wgint or double, end
3466         of story.  Since we know how to print either, we no longer need
3467         LARGE_INT_FMT.
3468
3469         * sysdeps.h (LARGE_INT): Renamed to SUM_SIZE_INT to better reflect
3470         its intent, and moved to wget.h.
3471
3472 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
3473
3474         * Makefile.in: No need to clean .libs.
3475
3476 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
3477
3478         * cookies.c (parse_set_cookies): Cast pointer subtraction to int
3479         before using it with %d; AIX compiler warns on this.
3480         Reported by Jens Schleusener.
3481
3482 2005-06-24  Hrvoje Niksic  <hniksic@xemacs.org>
3483
3484         * http.c (gethttp): Don't prepend / here.
3485
3486         * cookies.c (cookie_handle_set_cookie): Prepend / to PATH.
3487         (cookie_header): Ditto.
3488
3489 2005-06-24  Hrvoje Niksic  <hniksic@xemacs.org>
3490
3491         * init.c: opt.verbose must be declared as int.
3492
3493 2005-06-23  Hrvoje Niksic  <hniksic@xemacs.org>
3494
3495         * cmpt.c (strpbrk): Removed.
3496         (mktime): Removed.
3497         Include <time.h>.
3498
3499 2005-06-23  Hrvoje Niksic  <hniksic@xemacs.org>
3500
3501         * utils.c (read_file): Ditto.
3502
3503         * main.c (main): Use struct_fstat.
3504
3505         * mswindows.h (struct_fstat): Define a struct_fstat to deal with
3506         the fact that Borland 5.5 has 64-bit stat, but not 64-bit fstat!
3507
3508 2005-06-23  Hrvoje Niksic  <hniksic@xemacs.org>
3509
3510         * sysdep.h: Remove code that deals with Watcom.
3511
3512 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
3513
3514         * all: Use bool instead of int and false/true instead of 0/non-0
3515         for boolean variables and values.
3516
3517 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
3518
3519         * sysdep.h: Include the stdbool.h/_Bool/bool blurb from Autoconf.
3520
3521 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
3522
3523         * init.c (cmd_lockable_boolean): Removed.
3524
3525 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
3526
3527         * cookies.c (struct cookie): Use 1-bit bitfields for booleans
3528         which makes the structure takes less space at no cost in
3529         complexity.
3530
3531 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
3532
3533         * Makefile.in ($(OBJ)): Add the config.h dependency.
3534
3535 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
3536
3537         * openssl.c, connect.c, host.c: Replace instances of #ifdef
3538         ENABLE_DEBUG if (opt.debug) {...} #endif with IF_DEBUG {...}.
3539
3540         * main.c: Rename the IF_DEBUG defined here to WHEN_DEBUG.
3541
3542         * wget.h (IF_DEBUG): New macro.
3543         (DEBUGP): Define in terms of IF_DEBUG.
3544
3545 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
3546
3547         * http.c (gethttp): Only handle --set-cookies (and assert that
3548         cookie jar exists) if opt.cookies is true.  Failure to do so
3549         triggered the assert when --no-cookies was used and the server
3550         sent a Set-Cookie header.  Ouch!
3551
3552 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
3553
3554         * connect.c (select_fd): Expect select() to exist.
3555
3556         * utils.c (xsleep): Always use select() as sleep fallback on
3557         non-Windows platforms.
3558
3559         * ptimer.c: Delete the implementation of PTIMER_TIME.
3560
3561         * main.c: Assume existence of signal(), test for different signal
3562         names instead.
3563
3564         * cmpt.c: Better document reasons why certain functions are
3565         included.
3566
3567 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
3568
3569         * Makefile.in: Remove the manually maintained dependency list;
3570         make all object files depend on every header.
3571
3572 2005-06-20  Hrvoje Niksic  <hniksic@xemacs.org>
3573
3574         * hash.c: Rename "mapping" to "cell" to avoid confusion with the
3575         term "mapping" (or "map") sometimes being used for the entire hash
3576         table.  Also rename "non-empty" to "occupied" for easier reading
3577         of if (!NON_EMPTY (...)) ... .
3578
3579 2005-06-20  Hrvoje Niksic  <hniksic@xemacs.org>
3580
3581         * main.c, ptimer.c, sysdep.h, utils.c: Use #elif to simplify reading of
3582         chained if-else-else-else-... statements.
3583
3584 2005-06-20  Hrvoje Niksic  <hniksic@xemacs.org>
3585
3586         * all: Return type of signal handlers is `void'.  Include signal.h
3587         unconditionally.
3588
3589         * all: Don't explicitly cast values returned by malloc.  We no
3590         longer support ancient compilers that don't declare malloc, and we
3591         never supported C++ builds.
3592
3593 2005-06-19  Hrvoje Niksic  <hniksic@xemacs.org>
3594
3595         * all: Don't declare errno.  Include both time.h and sys/time.h,
3596         as long as sys/time.h exists.  Don't dereference function pointers
3597         when invoking the functions they point to.
3598
3599         * cmpt.c (memmove): Remove function mandated by C89.
3600         (strerror): Ditto.
3601         (strstr): Ditto.
3602
3603         * all: Undo the K&R-ization changes from 2005-05-03.
3604
3605         * all: Remove support for K&R compilers: use C89 function
3606         declarations, remove definition of PARAMS, remove support for
3607         varargs, and remove ansi2knr.  Assume the presence of time.h,
3608         string.h, and other headers mandated by C89.
3609
3610 2005-06-19  Hrvoje Niksic  <hniksic@xemacs.org>
3611
3612         * init.c (cmd_lockable_boolean): Don't recognize literal "2" and
3613         "-1" values; unlike 0 and 1, those should never be exposed to the
3614         user.  Update the error message to be more self-consistent, as
3615         proposed by Benno Schulenberg.
3616
3617 2005-06-18  Hrvoje Niksic  <hniksic@xemacs.org>
3618
3619         * http.c (gethttp): Don't free "head" before using it to save
3620         headers.
3621
3622 2005-06-18  Hrvoje Niksic  <hniksic@xemacs.org>
3623
3624         * http.c (gethttp): When -E is in use, check for file existence
3625         after appending ".html" to the name and modify the file name if
3626         necessary.
3627
3628 2005-06-17  Hrvoje Niksic  <hniksic@xemacs.org>
3629
3630         * connect.c (socket_has_inet6): Removed.
3631
3632         * host.c (lookup_host): Don't use the AI_ADDRCONFIG getaddrinfo
3633         hint.
3634
3635 2005-06-16  Hrvoje Niksic  <hniksic@xemacs.org>
3636
3637         * init.c (cmd_lockable_boolean): Improve the error message so it
3638         lists the more useful values first.
3639
3640 2005-06-15  Hrvoje Niksic  <hniksic@xemacs.org>
3641
3642         * http.c (gethttp): Also report the system error when the POST
3643         data file is missing.
3644
3645 2005-06-15  Benno Schulenberg  <benno@nietvergeten.nl>
3646
3647         * ftp.c, http.c, connect.c, cookies.c, html-url.c, init.c, res.c:
3648         Gettext-ize messages that were previously missed.
3649
3650 2005-06-15  Hrvoje Niksic  <hniksic@xemacs.org>
3651
3652         * host.h (ip_address): Remove the trailing comma from the type
3653         enum in the no-IPv6 case.
3654
3655         * main.c (struct cmdline_option): Remove the trailing comma from
3656         the enum.
3657
3658         Reported by Jens Schleusener.
3659
3660 2005-05-30  Hrvoje Niksic  <hniksic@xemacs.org>
3661
3662         * url.c (strpbrk_or_eos): Check for a recent GCC version before
3663         using the statement-as-expression extension.
3664
3665 2005-05-30  Hrvoje Niksic  <hniksic@xemacs.org>
3666
3667         * http.c (gethttp): Don't attempt to "skip short body" if we're
3668         issuing a HEAD request (in which case the response head is not
3669         followed by a body).
3670
3671 2005-05-30  Hrvoje Niksic  <hniksic@xemacs.org>
3672
3673         * init.c (cmd_spec_header): Don't split the string along the
3674         commas using cmd_vector; just append the new value using
3675         vec_append instead.
3676
3677         * utils.c (vec_append): New function.
3678
3679 2005-05-27  Andreas Beckmann  <debian@abeckmann.de>
3680
3681         * html-url.c (tag_handle_link): Mark the content from the <link
3682         src="..."> tag as expecting HTML.
3683
3684 2005-05-24  Hrvoje Niksic  <hniksic@xemacs.org>
3685
3686         * http.c (http_atotm): Document the origin of the "cookie date"
3687         format.
3688
3689 2005-05-21  Hrvoje Niksic  <hniksic@xemacs.org>
3690
3691         * init.c (setval_internal): Report exact command name alongside
3692         the "display name".
3693
3694 2005-05-18  Hrvoje Niksic  <hniksic@xemacs.org>
3695
3696         * cookies.c (update_cookie_field): Explicitly cast -1 to time_t to
3697         cope with systems where time_t is unsigned.
3698
3699         * cookies.c: Remove unnecessary casts to time_t from values
3700         already of that type.
3701
3702 2005-05-17  Hrvoje Niksic  <hniksic@xemacs.org>
3703
3704         * ftp.c (ftp_loop_internal): Same here.
3705
3706         * http.c (http_loop): Don't clobber the file when -c is specified
3707         and the first attempt to retrieve the file fails.
3708
3709 2005-05-16  Hrvoje Niksic  <hniksic@xemacs.org>
3710
3711         * openssl.c (ssl_check_certificate): Print all issues with a
3712         certificate.
3713
3714 2005-05-16  Hrvoje Niksic  <hniksic@xemacs.org>
3715
3716         * ftp-basic.c: Don't xfree() the line returned by ftp_response if
3717         the returned code is not FTPOK.
3718
3719 2005-05-16  Hrvoje Niksic  <hniksic@xemacs.org>
3720
3721         * init.c (cleanup): Don't free the non-existent opt.ftp_acc.  Free
3722         the SSL-related stuff.
3723
3724 2005-05-16  Hrvoje Niksic  <hniksic@xemacs.org>
3725
3726         * ftp.c (print_length): Consistently print \n at end of the
3727         "Length" line.
3728
3729 2005-05-14  Hrvoje Niksic  <hniksic@xemacs.org>
3730
3731         * openssl.c (ssl_connect): Announce the beginning and the end of
3732         the SSL handshake when in debug mode.
3733
3734         * wget.h (PTR_FORMAT): New macro for easier printing of pointer
3735         values.  Use %0*lx along with PTR_FORMAT instead of %p.
3736
3737 2005-05-14  Hrvoje Niksic  <hniksic@xemacs.org>
3738
3739         * http.c (gethttp): Would forget to close the connection when
3740         keep_alive was not used.
3741
3742 2005-05-13  Hrvoje Niksic  <hniksic@xemacs.org>
3743
3744         * openssl.c (pattern_match): Document the code that decides
3745         whether "*" matches ".".
3746
3747 2005-05-12  Hrvoje Niksic  <hniksic@xemacs.org>
3748
3749         * ftp-ls.c (ftp_index): Use %d to print the port number, which is
3750         now int.
3751         From Steven M. Schweda's VMS patches.
3752
3753 2005-05-12  Hrvoje Niksic  <hniksic@xemacs.org>
3754
3755         * url.c (rewrite_shorthand_url): Don't rewrite "https://host" to
3756         "ftp://https//host" when SSL is not used.
3757
3758 2005-05-11  Hrvoje Niksic  <hniksic@xemacs.org>
3759
3760         * openssl.c (ssl_check_server_identity): Renamed to
3761         ssl_check_certificate because it does more than just checking the
3762         server's identity.
3763         (ssl_check_certificate): Tell the user about
3764         --no-check-certificate.
3765
3766 2005-05-11  Hrvoje Niksic  <hniksic@xemacs.org>
3767
3768         * openssl.c (ssl_init): Always use SSL_VERIFY_NONE, so that the
3769         handshake finishes even if the certificate is invalid.  That way
3770         ssl_check_server_identity can provide better diagnostics on why
3771         the verification failed.
3772
3773 2005-05-11  Hrvoje Niksic  <hniksic@xemacs.org>
3774
3775         * openssl.c (pattern_match): New function.
3776         (ssl_check_server_identity): Treat peer certificate common name as
3777         wildcard.
3778
3779 2005-05-10  Hrvoje Niksic  <hniksic@xemacs.org>
3780
3781         * openssl.c (ssl_check_server_identity): Print certificate subject
3782         and issuer.
3783
3784 2005-05-10  Hrvoje Niksic  <hniksic@xemacs.org>
3785
3786         * res.c (res_register_specs): Correctly pass pointers to
3787         hash_table_get_pair.
3788
3789 2005-05-10  Hrvoje Niksic  <hniksic@xemacs.org>
3790
3791         * http.c (gethttp): Call ssl_check_server_identity.
3792
3793         * openssl.c (ssl_check_server_identity): New function, verifies
3794         that the host name in the certificate matches the actual host
3795         name.
3796         (verify_cert_callback): Removed, since it didn't do anything
3797         except returning the preverify_ok argument.
3798
3799         * connect.c (fd_transport_context): Allow retrieval of the context
3800         pointer registered with fd_register_transport.
3801
3802 2005-05-09  Hrvoje Niksic  <hniksic@xemacs.org>
3803
3804         * openssl.c (verify_cert_callback): Renamed from verify_callback.
3805         Always return the received "ok" value.  Print the X509 name in
3806         debug mode.
3807         (ssl_init): Enable partial writes in SSL context.
3808
3809 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
3810
3811         * http.c (http_loop): Check for wildcards in the URL path
3812         component, not in the whole URL.
3813
3814         * ftp.c (ftp_loop): Check for wildcards in URL path before
3815         unescaping, so the users can escape globbing metacharacters with %
3816         escapes.
3817
3818 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
3819
3820         * init.c (run_command): Correctly interpret the return value of
3821         parse_line.
3822         (commands): Re-alphabetize.
3823
3824 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
3825
3826         * netrc.c (parse_netrc): Explicitly check for assignment != NULL
3827         to silence warning from Borland C.
3828
3829         * url.c (sync_path): Don't unnecessarily increment p.
3830         (url_parse): Don't unnecessarily set url_encode to NULL just
3831         prior to return from the function.
3832
3833 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
3834
3835         * log.c (escnonprint_internal): Place variable declarations
3836         before other statements.
3837
3838 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
3839
3840         * html-url.c: Include recur.h.
3841
3842         * http.c (request_new): Define as accepting no args.
3843
3844 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
3845
3846         * url.c (strpbrk_or_eos): Made inline.  Use strchr(s, '\0') for
3847         finding the NUL char position.
3848
3849 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
3850
3851         * url.c (decide_copy_method): Renamed to char_needs_escaping.
3852         Since it now returns only two possible values, change it to return
3853         boolean (int).
3854
3855 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
3856
3857         * ftp-basic.c (ftp_request): Prevent newlines in VALUE causing
3858         inadvertent sending of multiple FTP commands.
3859
3860 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
3861
3862         * url.c (decide_copy_method): Never cause reencode_escapes to
3863         decode % escapes; it is too intrusive and breaks some servers.
3864
3865 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
3866
3867         * http.c (gethttp): When tunnelling SSL traffic over proxy with
3868         CONNECT, we're really talking to the remote server directly.
3869         Because of this, the request-line argument must be the URL path
3870         rather than the whole URL, as it would be when using regular
3871         proxies.
3872         Reported by Charles Lane.
3873
3874 2005-05-06  Hrvoje Niksic  <hniksic@xemacs.org>
3875
3876         * init.c (cmd_spec_useragent): Allow empty User-Agent.
3877
3878         * http.c (gethttp): Don't print "unknown authentication scheme"
3879         for failed Basic authentication.
3880         (SET_USER_AGENT): Don't set user-agent if opt.useragent is empty.
3881         (gethttp): Use alloca for allocation of www_authenticate.
3882
3883 2005-05-06  Hrvoje Niksic  <hniksic@xemacs.org>
3884
3885         * main.c (print_help): Fix wording of --secure-protocol help text.
3886
3887 2005-05-06  Hrvoje Niksic  <hniksic@xemacs.org>
3888
3889         * cmpt.c (strstr): Updated from glibc 2.3.5.
3890
3891 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
3892
3893         * http.c (http_atotm): Zero out the whole struct tm being passed
3894         to strptime.
3895
3896 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
3897
3898         * main.c (main): Propagate option name to setoptval.
3899
3900         * init.c (setoptval): Accept another argument, OPTNAME.  Propagate
3901         that argument as the option name independently of the actual
3902         command, determined by command_by_name(com).
3903
3904 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
3905
3906         * init.c (parse_line): Make the return value indicate whether
3907         there was a syntax error or a setter failed.
3908         (run_wgetrc): Return an indication on whether an error has been
3909         encountered.
3910         (initialize): Abort if there have been errors running either
3911         .wgetrc file.
3912
3913 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
3914
3915         * log.c (copy_and_escape): Slightly reduce code repetition between
3916         the two loops.
3917
3918 2005-05-05  Charles C.Fu  <ccwf@bacchus.com>
3919
3920         * utils.c (proclist): Strip leading slash when calling fnmatch
3921         too, otherwise wildcard comparisons always fail.
3922
3923 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
3924
3925         * utils.c (touch): Set access time to current time.
3926
3927 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
3928
3929         * url.c (url_unescape): Don't unescape %00, it effectively
3930         truncates the string.
3931
3932 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
3933
3934         * log.c (copy_and_escape): Replace the FOR_URI argument with a
3935         slightly more general mechanism for specifying different kinds of
3936         escape.
3937
3938 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
3939
3940         * ftp-basic.c (ftp_response): Fix printing FTP server response.
3941
3942 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
3943
3944         * retr.c (limit_bandwidth_reset): Reset sleep_adjust.
3945         (limit_bandwidth): Don't allow huge "adjustment" values that
3946         result from being suspended for a while.
3947
3948 2005-05-04  Hrvoje Niksic  <hniksic@xemacs.org>
3949
3950         * wget.h: If gettext was found but libtintl.h wasn't, declare
3951         gettext's return type to avoid type mismatches.
3952
3953 2005-05-03  Hrvoje Niksic  <hniksic@xemacs.org>
3954
3955         * url.c (url_parse): Rename label `error' to avoid conflict with
3956         identifier.
3957
3958         * retr.c (fd_read_body): Rename label `out' to avoid conflict with
3959         identifier.
3960         (fd_read_hunk): Use explicit double constant.
3961         (retrieve_from_file): Don't use string concatenation.
3962         (sleep_between_retrievals): Make sure xsleep is called with a
3963         `double' argument.
3964         (no_proxy_match): Define as static, like it is declared.
3965
3966         * progress.c (bar_create): Use 0.0 instead of 0 because K&R
3967         compilers can't automatically promote it.
3968
3969         * http-ntlm.c (ntlm_output): Replace \xHH sequences with \OOO for
3970         the sake of old compilers.
3971
3972         * ftp.c (ftp_loop_internal): Don't use string concatenation.
3973
3974         * http.c (request_send): Use explicit double constants when
3975         calling fd_read and fd_write.
3976         (post_file): Ditto.
3977         (gethttp): Ditto.
3978         (skip_short_body): Ditto.
3979
3980         * ftp-basic.c: When calling fd_write, specify the last argument as
3981         a `double' constant for the sake of K&R compilers which don't see
3982         the prototype and therefore can't promote it to double
3983         automatically.
3984
3985         * cookies.c (cookie_jar_load): Rename abort label to abort_cookie
3986         to avoid name conflict in K&R compilers.
3987
3988 2005-04-29  Hrvoje Niksic  <hniksic@xemacs.org>
3989
3990         * ptimer.c (posix_init): Since we allow _POSIX_MONOTONIC_CLOCK==0,
3991         it is not enough to check for _POSIX_MONOTONIC_CLOCK-0, we must
3992         also check for defined(_POSIX_MONOTONIC_CLOCK).
3993
3994 2005-04-28  Hrvoje Niksic  <hniksic@xemacs.org>
3995
3996         * ftp.c, hash.c, connect.c, host.c, http.c: Remove unreached code,
3997         such as "break" following return or abort.
3998
3999 2005-04-28  Hrvoje Niksic  <hniksic@xemacs.org>
4000
4001         * init.c (commands): Wrap the use of opt.random_file in #ifdef
4002         HAVE_SSL.
4003
4004 2005-04-28  Hrvoje Niksic  <hniksic@xemacs.org>
4005
4006         * http.c (gethttp): Correctly set the user agent.
4007
4008 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
4009
4010         * init.c (cmd_spec_useragent): Free the old value of
4011         opt.useragent before setting the new one.
4012
4013 2005-04-27  Mauro Tortonesi  <mauro@ferrara.linux.it>
4014
4015         * main.c: Map --ftp-password, --http-password and --proxy-password to
4016         the new ftppassword, httppassword and proxypassword commands
4017         respectively.  Document the --user and --password options in the help
4018         string.
4019
4020 2005-04-27  Mauro Tortonesi  <mauro@ferrara.linux.it>
4021
4022         * ftp.c: Add support for --user and --password.
4023
4024         * http.c: Add support for --user and --password.
4025
4026         * init.c: Deprecated ftppasswd, httppasswd, login, passwd and
4027         proxypasswd commands.  Added ftppassword, ftpuser, httppassword,
4028         password, proxypassword and user commands.
4029
4030         * main.c: Renamed --ftp-passwd to --ftp-password.  Added --ftp-user,
4031         --http-password, --password, --proxy-password and --user.  Deprecated
4032         --http-passwd and --proxy-passwd.  Added documentation for new options
4033         and removed documentation for deprecated options in the help string.
4034
4035         * options.h (struct options): Added user and passwd members to handle
4036         --user and --password respectively.  Renamed ftp_acc and ftp_pass
4037         members to ftp_user and ftp_passwd for consistency.
4038
4039 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
4040
4041         * main.c (print_help): Advertise "DER", not "ASN1".
4042
4043 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
4044
4045         * openssl.c (init_prng): Disable the weak random seed by default.
4046
4047         * http.c (gethttp): Simplify SSL initialization; disable SSL when
4048         anything goes wrong with the initialization.
4049
4050         * options.h (struct options): New option opt.random_file.
4051
4052 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
4053
4054         * init.c: Wrap private key commands in IF_SSL.
4055
4056 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
4057
4058         * openssl.c (ssl_init): Ditto.
4059
4060         * options.h (struct options): Allow separate specification of key
4061         type and certificate type.
4062
4063         * init.c (cmd_spec_cert_type): Provide a "der" synonym for "asn1"
4064         certificate encoding.
4065
4066 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
4067
4068         * openssl.c: Renamed "gen_sslfunc.c" to "openssl.c" and
4069         "gen_sslfunc.h" to "openssl.h".  This reflects the intent of
4070         openssl.c encapsulating the OpenSSL-specific code.
4071
4072 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
4073
4074         * init.c: Renamed "closure" (a synonym for context in some
4075         cultures) to "place", which more accurately reflects the usage.
4076
4077 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
4078
4079         * gen_sslfunc.c (ssl_init): Use default locations for loading the
4080         certificate bundles.
4081         (ssl_init_prng): Disable the cryptographically weak PRNG
4082         initialization fallback.
4083
4084         * init.c: Renamed SSL command-line arguments and wgetrc commands.
4085         (defaults): Check the server certificate by default.
4086
4087 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
4088
4089         * cookies.c (cookie_handle_set_cookie): Delete the part of the
4090         path after the trailing slash.
4091
4092         * http.c (gethttp): Call cookie_handle_set_cookie with path that
4093         begins with '/'.
4094
4095 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
4096
4097         * http.c (gethttp): Call skip_short_body only if keep_alive is in
4098         use.
4099         (gethttp): Send the User-Agent header with the CONNECT request as
4100         well.
4101
4102 2005-04-25  Hrvoje Niksic  <hniksic@xemacs.org>
4103
4104         * main.c (option_data): Removed support for the undocumented flag
4105         --use-proxy.
4106
4107 2005-04-25  Hrvoje Niksic  <hniksic@xemacs.org>
4108
4109         * main.c (option_data): Don't treat -Y as a boolean switch; treat
4110         it as a value switch instead, so "-Y off" continues to work.
4111
4112 2005-04-24  Hrvoje Niksic  <hniksic@xemacs.org>
4113
4114         * utils.c (aprintf): Delete unreachable statement.
4115
4116 2005-04-24  Hrvoje Niksic  <hniksic@xemacs.org>
4117
4118         * host.c (cmp_prefer_ipv4): New function.
4119         (cmp_prefer_ipv6): New function.
4120         (lookup_host): Use the appropriate comparator according to
4121         opt.prefer_family.
4122
4123         * init.c: New option prefer_family.
4124
4125         * host.c (is_valid_ipv6_address): Spell NS_* constants in lower
4126         case to avoid clash with system headers.
4127         (lookup_host): Reorder the addresses so that IPv4 ones come first.
4128
4129         * utils.c (stable_sort): New function.
4130
4131 2005-04-24  Hrvoje Niksic  <hniksic@xemacs.org>
4132
4133         * connect.c (retryable_socket_connect_error): Return 0 for
4134         ENETUNREACH and EHOSTUNREACH.
4135
4136 2005-04-23  Hrvoje Niksic  <hniksic@xemacs.org>
4137
4138         * cmpt.c: Reenable the memmove implementation for systems that
4139         lack it.
4140
4141         * http.c (gethttp): Store the "authorized" state of the persistent
4142         connection.
4143         (request_remove_header): New function.
4144         (gethttp): Don't send the "Basic" authentication if the connection
4145         is already authorized.
4146
4147 2005-04-23  Hrvoje Niksic  <hniksic@xemacs.org>
4148
4149         * utils.c (base64_encode): Treat input as unsigned chars.
4150         Required for correct encoding of binary stuff.
4151
4152 2005-04-23  Hrvoje Niksic  <hniksic@xemacs.org>
4153
4154         * http-ntlm.c: Format the function definitions in an
4155         ansi2knr-friendly fashion.
4156
4157 2005-04-22  Hrvoje Niksic  <hniksic@xemacs.org>
4158
4159         * http.c (gethttp): Handle multiple WWW-Authentication headers,
4160         only one of which is recognized.  Those are sent by IIS with NTLM
4161         authorization.
4162         (create_authorization_line): Propagate information whether
4163         authorization is finished.
4164         (gethttp): Only stop authorization when it's really finished, not
4165         after fixed two steps.
4166
4167 2005-04-21  Hrvoje Niksic  <hniksic@xemacs.org>
4168
4169         * gen_sslfunc.c (ssl_init): Fix warning message text; mark the
4170         message as translatable.
4171
4172 2005-04-21  Hrvoje Niksic  <hniksic@xemacs.org>
4173
4174         * main.c (print_help): Print the EGD option outside the cluster of
4175         SSL options.
4176
4177 2005-04-21  Hrvoje Niksic  <hniksic@xemacs.org>
4178
4179         * http-ntlm.c (ntlm_output): Fix setting the domain.
4180         Suggested by Sami Krank.
4181
4182 2005-04-20  Mauro Tortonesi  <mauro@ferrara.linux.it>
4183
4184         * connect.c: Set IPV6_V6ONLY socket option when -6 switch is used.
4185
4186 2005-04-20  FUJISHIMA Satsuki  <sf@FreeBSD.org>
4187
4188         * http.c (request_set_header): Fix the check whether a new header
4189         needs to be allocated.
4190
4191 2005-04-18  Hrvoje Niksic  <hniksic@xemacs.org>
4192
4193         * utils.c (base64_encode): Use the parameter order that makes more
4194         sense.  Return the length of the base64 written.  Updated all
4195         callers.
4196
4197 2005-04-17  Hrvoje Niksic  <hniksic@xemacs.org>
4198
4199         * http.c (request_set_header): Free NAME when VALUE is NULL and
4200         freeing the header name is requested.
4201
4202 2005-04-17  Hrvoje Niksic  <hniksic@xemacs.org>
4203
4204         * snprintf.c (fmtstr): Declare VALUE as const char *.
4205         Based on patch by Russ Allbery.
4206
4207 2005-04-17  Hrvoje Niksic  <hniksic@xemacs.org>
4208
4209         * snprintf.c (fmtfp): More correct handling of significant digit
4210         count with %g -- 0.002 has one significant digit, not three.
4211
4212 2005-04-16  Hrvoje Niksic  <hniksic@xemacs.org>
4213
4214         * retr.c (fd_read_body): Respect read timeout with non-interactive
4215         or no progress gauge -- treat ETIMEDOUT specially only when
4216         progress_interactive.
4217         Reported by FUJISHIMA Satsuki.
4218
4219 2005-04-16  FUJISHIMA Satsuki  <sf@FreeBSD.org>
4220
4221         * http.c (gethttp): Don't use HTTP/1.0 persistent connections over
4222         proxy.
4223
4224 2005-04-16  Hrvoje Niksic  <hniksic@xemacs.org>
4225
4226         * snprintf.c: Use the PARAMS macro to handle prototypes.  Write
4227         function definitions in the ansi2knr-friendly way.
4228         (fmtstr): If string precision is specified, don't read VALUE past
4229         it.
4230         (dopr): Actually print %g and %e formats.
4231         (fmtfp): Fix a bug that caused 0.01 to be printed as 0.1.
4232         (fmtfp): Use LLONG in floating point conversions to be able to
4233         convert more digits.
4234         (fmtfp): Interpret precision as number of significant digits with
4235         %g.
4236         (fmtfp): Omit trailing decimal zeros with %g.
4237
4238         * snprintf.c: Don't include <ctype.h> because none of it is used.
4239         Include strings.h/string.h, as per Autoconf.
4240
4241 2005-04-15  Hrvoje Niksic  <hniksic@xemacs.org>
4242
4243         * ptimer.c: Use _POSIX_TIMERS - 0 > 0, which handles the case when
4244         _POSIX_TIMERS is defined but empty, as well as the case when it is
4245         undefined.  Do the same with the check for _POSIX_MONOTONIC_CLOCK.
4246         Suggested by Larry Jones.
4247
4248 2005-04-15  Hrvoje Niksic  <hniksic@xemacs.org>
4249
4250         * ptimer.c: Check that _POSIX_TIMERS is defined as well as > 0.
4251         Problem reported by Steven M. Schweda.
4252
4253 2005-04-14  Hrvoje Niksic  <hniksic@xemacs.org>
4254
4255         * http.c (skip_short_body): Print the skipped body data in debug
4256         mode.
4257         (skip_short_body): Don't skip more than 4k of body data.
4258         (skip_short_body): Return whether the skipping was successful.
4259         (gethttp): If skip_short_body failed, invalidate the connection.
4260
4261 2005-04-12  Gisle Vanem  <giva@bgnett.no>
4262
4263         * ftp.c (getftp): Ditto.
4264
4265         * http.c (gethttp): Open the output file in binary mode.
4266
4267 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
4268
4269         * hash.c: Conditionalize including config.h on HAVE_CONFIG_H
4270         instead of on STANDALONE.
4271
4272 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
4273
4274         * gen_sslfunc.c (ssl_print_errors): Made static.
4275         (ssl_print_errors): Eliminate potentially dangerous fixed-size
4276         error buffer.  Passing NULL to ERR_error_string causes it to use
4277         its own static buffer, which is fine for our purposes.
4278
4279         * gen_sslfunc.c: Include gen_sslfunc.h.  Make the declarations of
4280         ssl_init and ssl_conect match the actual definitions.
4281         (ssl_connect): Simply return a boolean, the SSL context is no
4282         longer useful as a return value.
4283
4284         * retr.c: Don't include SSL headers; we don't need them.
4285
4286 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
4287
4288         * config-post.h: Don't define _VA_LIST under Solaris; it breaks
4289         compilation with GCC 3.4 under Solaris 10.  (It was defined to
4290         avoid a warning with previous versions of GCC.)
4291
4292 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
4293
4294         * xmalloc.c (register_ptr): Warn the user to increase SZ prior to
4295         aborting.
4296
4297 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
4298
4299         * convert.c (convert_cleanup): Free converted_files.
4300
4301 2005-04-10  Hrvoje Niksic  <hniksic@xemacs.org>
4302
4303         * wget.h (DEBUGP): Use __builtin_expect to give a hint to GCC that
4304         opt.debug is false in the vast majority of cases.
4305
4306 2005-04-10  Hrvoje Niksic  <hniksic@xemacs.org>
4307
4308         * config-post.h: Declare alloca as void *, not char *.
4309
4310 2005-04-09  Hrvoje Niksic  <hniksic@xemacs.org>
4311
4312         * recur.c (download_child_p): When -p is used, (temporarily)
4313         ignore accept/reject rules for HTMLs, even when they are at the
4314         maximum recursion depth.  That is because with -p we are, if
4315         necessary, overstepping the max. depth to get the requisites.
4316
4317 2004-06-12  Larry Jones <lawrence.jones@ugsplm.com>
4318
4319         * recur.c (download_child_p): Correct the logic in check number 6:
4320         test opt.reclevel (not DEPTH) against INFINITE_RECURSION.
4321
4322 2005-04-09  Hrvoje Niksic  <hniksic@xemacs.org>
4323
4324         * url.c: Use "static const" in preference to "const static".
4325         Sun's cc warns that "storage class after type is obsolescent".
4326
4327         * url.c (urlchr_table): Don't mark ~ as unsafe, too many broken
4328         web sites are confused when ~ is changed to %7E.  Their servers
4329         redirect /%7Efoo/ to /~foo/, which Wget again accesses using %7E,
4330         causing further redirections, therefore looping infinitely.  See
4331         Debian bug #301624 for an example.
4332
4333 2005-04-09  Hrvoje Niksic  <hniksic@xemacs.org>
4334
4335         * alloca.c: Include wget.h to be able to use xmalloc.  In addition
4336         to defining malloc to xmalloc, also define free to xfree.
4337
4338 2005-04-09  Hrvoje Niksic  <hniksic@xemacs.org>
4339
4340         * http-ntlm.c (ntlm_output): Use "char", not "unsigned char" for
4341         ntlmbuf.  Our base64 functions accept char anyway.
4342         (ntlm_output): Join up the format string, since we nominally
4343         support K&R compilers.
4344         (ntlm_output): Ditto.
4345
4346 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
4347
4348         * ptimer.c: Use Windows timers under Cygwin, whose POSIX timer
4349         implementation is incomplete.
4350
4351 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
4352
4353         * ptimer.c (struct ptimer): Remove the unused initialized field.
4354
4355         * ptimer.c: Renamed function parameters from WT (which used to
4356         stand for wget_timer or wtimer) to PT.
4357
4358 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
4359
4360         * ptimer.c (posix_init): Be smarter about choosing clocks.  In
4361         decreasing order of preference, use CLOCK_MONOTONIC,
4362         CLOCK_HIGHRES, and CLOCK_REALTIME.
4363         (ptimer_allocate): Removed.
4364
4365         * ptimer.c: Refactor the code by cleanly separating the
4366         architecture-dependent code from the architecture-independent
4367         code.
4368
4369 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
4370
4371         * ptimer.c (ptimer_init): Explicitly check that
4372         _POSIX_MONOTONIC_CLOCK is *both* defined and >=0.  (Undefined
4373         symbols are >=0.)
4374
4375 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
4376
4377         * ptimer.c (ptimer_diff): Fix typo affecting Windows build.
4378
4379 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
4380
4381         * ptimer.c (ptimer_init): In fact, _POSIX_MONOTONIC_CLOCK needs to
4382         be >= 0.
4383
4384         * ptimer.c (ptimer_init): Check whether _POSIX_MONOTONIC_CLOCK is
4385         defined instead of whether it's greater than 0.  glibc defines it
4386         to 0, but still makes it available via sysconf.
4387
4388 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
4389
4390         * mswindows.c (str_to_int64): Rename OVERFLOW and UNDERFLOW to
4391         INT64_OVERFLOW and INT64_UNDERFLOW, since those names are used.
4392
4393 2005-04-07  Hrvoje Niksic  <hniksic@xemacs.org>
4394
4395         * ptimer.c: New file.  Move the "wtimer" functions from utils.c to
4396         this file and rename them to ptimer_.
4397
4398 2005-04-07  Hrvoje Niksic  <hniksic@xemacs.org>
4399
4400         * host.c (NO_ADDRESS): Define NO_ADDRESS only after the system
4401         headers have been included.
4402
4403 2005-04-06  Hrvoje Niksic  <hniksic@xemacs.org>
4404
4405         * http.c (pconn): Include NTLM data, which is per-connection.
4406         (known_authentication_scheme_p): Recognize NTLM authorization.
4407         (create_authorization_line): Call ntlm_input and ntlm_output.
4408
4409         * http-ntlm.c: New file, donated by Daniel Stenberg and originally
4410         written for curl, heavily modified for Wget.
4411
4412         * utils.c (base64_encode): Relocated from http.c, since it is now
4413         used by http-ntlm.c, and will possibly be used elsewhere.
4414         (base64_decode): New function, originally based on code from GNU
4415         recode.
4416
4417 2005-04-02  Hrvoje Niksic  <hniksic@xemacs.org>
4418
4419         * ftp.c (ftp_loop): Ditto.
4420
4421         * ftp-basic.c (ftp_pasv): Use the xzero shorthand for memset(0).
4422         (ftp_lpsv): Ditto.
4423
4424 2005-04-05  Mauro Tortonesi  <mauro@ferrara.linux.it>
4425
4426         * Makefile.in: removed string_t.c from list of source files.
4427
4428 2005-04-04  Mauro Tortonesi  <mauro@ferrara.linux.it>
4429
4430         * string_t.c: Removed.
4431
4432         * string_t.h: Removed.
4433
4434 2005-04-02  Hrvoje Niksic  <hniksic@xemacs.org>
4435
4436         * url.c (rewrite_shorthand_url): Only accept recognized schemes.
4437         That way "foo:80" will correctly be rewritten to "http://foo:80"
4438         instead of left unchanged and ultimately rejected because of
4439         "unsupported scheme foo".
4440
4441 2005-03-31  Hrvoje Niksic  <hniksic@xemacs.org>
4442
4443         * utils.c (number_to_string): Avoid explicit 64-bit constants;
4444         construct them by multiplication at compile-time.
4445
4446         * utils.c, elsewhere: Don't append "L" to 32-bit integer
4447         constants; we aren't really compilable on 16-bit systems anyway.
4448
4449         * hash.c (prime_size): Remove primes larger than 2^31, but include
4450         2^31-1, which is prime.
4451
4452 2005-03-30  Hrvoje Niksic  <hniksic@xemacs.org>
4453
4454         * utils.c (string_set_to_array): New function.
4455
4456         * convert.c: Replace the use of "slists" with sets/hash-tables,
4457         which in fact suit the intended purpose much better.
4458         downloaded_html_list is removed altogether.
4459
4460 2005-03-29  Hrvoje Niksic  <hniksic@xemacs.org>
4461
4462         * ftp.h (enum): Rename GLOBALL, GETALL, and GETONE to
4463         GLOB_GLOBALL, GLOB_GETALL, and GLOB_GETONE to avoid conflict with
4464         Linux headers.
4465
4466 2005-03-29  Hrvoje Niksic  <hniksic@xemacs.org>
4467
4468         * utils.c (numdigit): More correct handling of negative numbers.
4469
4470 2005-03-21  Hrvoje Niksic  <hniksic@xemacs.org>
4471
4472         * http.c (gethttp): Print the human-readable size.
4473
4474         * ftp.c (getftp): Print the human-readable size of the file to be
4475         downloaded.
4476
4477         * utils.c (human_readable): New function.
4478
4479         * utils.c: Renamed "legible" to "with_thousand_seps",
4480         "legible_large_int" to "with_thousand_seps_large", and "legible_1"
4481         to "add_thousand_seps".
4482
4483 2005-03-21  Hrvoje Niksic  <hniksic@xemacs.org>
4484
4485         * http.c (gethttp): Inhibit persistent connections when talking to
4486         proxies, as mandated by RFC 2068.
4487
4488 2005-03-20  Hrvoje Niksic  <hniksic@xemacs.org>
4489
4490         * url.c (unescape_single_char): New function.
4491         (url_escape_dir): Use it to unescape slashes in directory
4492         components.
4493         (url_string): Escape unsafe chars in host name, except for the ':'
4494         charaters, which can appear in IPv6 addresses.
4495
4496         * main.c (main): Don't access the cookie jar directly.
4497
4498         * log.c (escnonprint_internal): Correctly calculate the needed
4499         string size.  Don't forget the buffer's new size after having
4500         reallocated it.
4501         (log_cleanup): New function.  Free the escnonprint ring data.
4502
4503         * init.c (cleanup): Don't free the cookie jar explicitly, it is
4504         now done by http_cleanup.
4505         (cleanup): opt.user_headers is now a vector, free it with
4506         free_vec.
4507
4508         * http.c (gethttp): Make sure to free the request data, the status
4509         message, and the response data before returning from the function.
4510         (save_cookies): New function.
4511         (http_cleanup): Free the cookie jar here.
4512
4513         * hash.c: Renamed string_hash to hash_string and ptrhash to
4514         hash_pointer.  Exported hash_pointer.
4515
4516         * xmalloc.c: Organized malloc_table (previously malloc_debug) as a
4517         simple EQ hash table.  register_ptr and unregister_ptr are now of
4518         O(1) complexity.
4519
4520         * xmalloc.c: Renamed "*_debug" to debugging_* and "*_real" to
4521         checking_*.
4522
4523 2005-03-12  Hrvoje Niksic  <hniksic@xemacs.org>
4524
4525         * utils.c (debug_test_md5): Moved to gen-md5.c.
4526
4527         * mswindows.h: Don't declare inet_ntop, since we don't use it.
4528
4529         * mswindows.h: For consistency, also wrap closesocket, it being
4530         a Winsock call.
4531
4532         * mswindows.h: Don't declare sleep and usleep; we're defining
4533         xsleep now.
4534
4535         * mswindows.h (mkdir): Don't special-case Borland C, _mkdir
4536         works there as well.
4537
4538         * host.c: Don't include winsock header files; the correct ones
4539         are already included by mswindows.h.
4540
4541         * mswindows.c (xsleep): Round toward the nearest millisecond
4542         in an attempt to avoid average short sleeps.
4543
4544         * utils.c (wtimer_granularity): Report correct values for
4545         Windows timers and for high-resolution timers.
4546
4547         * utils.c (wtimer_initialize_once): New function, called to
4548         initialize the timer frequency.
4549
4550         * utils.c: Replace the use of GetSystemTime with high-resolution
4551         counters under Windows.  When high-resolution counters are
4552         unavailable, use GetTickCount().
4553
4554 2005-03-15  Hrvoje Niksic  <hniksic@xemacs.org>
4555
4556         * retr.c (fd_read_body): Undo the 2004-11-18 change.  Instead,
4557         always be "exact".
4558
4559 2005-03-17  Hrvoje Niksic  <hniksic@xemacs.org>
4560
4561         * ftp-basic.c (ftp_login): Don't free the string if ftp_response
4562         returned an error status because the line didn't get allocated in
4563         the first place.
4564
4565 2005-03-15  Hrvoje Niksic  <hniksic@xemacs.org>
4566
4567         * http.c (read_http_response_head): Limit the response size to 64k
4568         bytes.
4569
4570         * retr.c (fd_read_hunk): Accept a MAXSIZE argument that limits the
4571         number of bytes the function is allowed to allocate.
4572         (fd_read_line): Limit the line to 4096 bytes.
4573
4574 2005-03-12  Hrvoje Niksic  <hniksic@xemacs.org>
4575
4576         * wget.h: Include options.h after wgint has been defined.
4577
4578         * options.h (struct options): Declare options processed with
4579         cmd_bytes as wgint, not long.
4580
4581 2005-03-18  Hrvoje Niksic  <hniksic@xemacs.org>
4582
4583         * init.c (cmd_file): Use concat_strings.
4584
4585         * http.c (basic_authentication_encode): Use concat_strings.
4586
4587         * ftp-ls.c (ftp_index): Use concat_strings.
4588
4589         * ftp-basic.c (ftp_request): Use concat_strings.
4590
4591         * utils.c (concat_strings): New function.
4592
4593 2005-03-12  Hrvoje Niksic  <hniksic@xemacs.org>
4594
4595         * init.c (simple_atof): Handle negative numbers; skip whitespace
4596         before the number.
4597         (simple_atoi): Ditto.  Also, check for overflow and underflow.
4598         (cmd_number): Bail out on negative numbers.
4599         (parse_bytes_helper): Ditto.
4600
4601 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
4602
4603         * http.c (gethttp): Handle multiple Set-Cookie headers sent by
4604         remote server.
4605
4606 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
4607
4608         * init.c (defaults): Use passive FTP by default.
4609
4610 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
4611
4612         * mswindows.c: Provide wrappers to Winsock functions that set
4613         errno to WSAGetLastError() in case of failure.  Also provide a
4614         Windows-specific version of strerror.
4615
4616         * mswindows.h: Wrap calls to socket, bind, connect, recv, send,
4617         select, getsockname, getpeername, and setsockopt.
4618
4619 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
4620
4621         * url.c (url_parse): Reject port numbers larger than 65535.  We
4622         also check for overflow while parsing port numbers.
4623
4624 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
4625
4626         * utils.c (read_file): Don't use wgint for file size; LFS won't
4627         work since the file is mmap'ed as a whole.
4628
4629         * options.h: Don't include stdio.h.
4630
4631         * log.c: Ditto.
4632
4633         * init.c: Disambiguate assignment from non-zero test to avoid
4634         Borland C warning.
4635
4636         * http.c (response_new): Don't needlessly post-increment count.
4637
4638         * hash.c: Include stdio.h.
4639
4640         * gnu-md5.h: Don't include stdio.h.
4641
4642         * getopt.h (struct option): Always use const.
4643
4644         * ftp.c (getftp): Avoid unnecessary assignment to RES to avoid
4645         Borland C warning.
4646
4647         * ftp-ls.c: Disambiguate assignment from non-zero test to avoid
4648         Borland C warning.
4649
4650         * cmpt.c (strptime_internal): Don't initialize rp_backup when
4651         !_NL_CURRENT to avoid Borland C warning.
4652
4653 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
4654
4655         * utils.c (fopen_excl): Fix parse error when O_BINARY is
4656         available.
4657
4658 2005-03-05  Hrvoje Niksic  <hniksic@xemacs.org>
4659
4660         * url.c (url_file_name): Don't allow hosts named ".." to be
4661         appended as path elements.
4662
4663 2005-03-03  Hrvoje Niksic  <hniksic@xemacs.org>
4664
4665         * retr.c (retrieve_url): Escape location header.
4666
4667         * http.c (print_server_response_1): Escape server response when
4668         printing it.
4669         (gethttp): Escape host name, status message, location header, and
4670         content type.
4671         (http_loop): Escape error message from server.
4672
4673         * host.c (lookup_host): Escape host name when printing it.
4674
4675         * ftp.c (getftp): Escape user name when printing it.
4676         (getftp): Escape remote file and directory for printing.
4677         (getftp): Escape server listing when printing it.
4678         (ftp_retrieve_list): Escape link name and file name.
4679         (ftp_retrieve_glob): Escape file name.
4680
4681         * ftp-basic.c (ftp_response): Escape server response when printing
4682         it.
4683
4684         * cookies.c (parse_set_cookies): Escape the cookie field when
4685         printing it.
4686         (parse_set_cookies): Escape contents of remote header.
4687         (cookie_handle_set_cookie): Escape host name and cookie domain.
4688
4689         * connect.c (connect_to_ip): Escape the host name.
4690
4691         * log.c (escnonprint): New function, used for printing strings
4692         coming from the server that possibly contain non-ASCII characters.
4693         (escnonprint_uri): Ditto.
4694
4695 2005-02-24  Hrvoje Niksic  <hniksic@xemacs.org>
4696
4697         * ftp.c (getftp): Ditto.
4698
4699         * http.c (gethttp): When we're not supposed to overwrite files,
4700         use fopen_excl to open the file and recompute the file name.
4701
4702         * log.c (redirect_output): Use unique_create to avoid a race
4703         condition.
4704
4705         * mswindows.c (fake_fork_child): Use unique_create.
4706
4707         * utils.c (fopen_excl): New function that opens a stdio stream
4708         with the O_EXCL flag (where available).
4709         (unique_create): New function, like unique_name, but also creating
4710         the file and returning a file pointer.
4711         (fork_to_background): Use unique_create to create the file
4712         immediately to avoid race condition with multiple instances of
4713         wget -b.
4714
4715 2005-02-24  Hrvoje Niksic  <hniksic@xemacs.org>
4716
4717         * host.c (lookup_host): Test for AI_ADDRCONFIG directly, instead
4718         of checking for HAVE_GETADDRINFO_AI_ADDRCONFIG.
4719
4720 2005-02-23  Hrvoje Niksic  <hniksic@xemacs.org>
4721
4722         * host.c (is_valid_ipv6_address): Move here from url.c.
4723         (lookup_host): If the address is numeric, don't print the
4724         "resolving..." line, don't set up DNS timeouts, and set the
4725         AI_NUMERICHOST hint, where available.
4726
4727 2005-02-26  Gisle Vanem  <giva@bgnett.no>
4728
4729         * utils.c: Use the nnnLL syntax under GCC.  Define struct_stat to
4730         struct _stati64 under __MINGW32__ as well as under MS VC.
4731
4732 2005-02-26  Hrvoje Niksic  <hniksic@xemacs.org>
4733
4734         * utils.c: Use the nnnI64 syntax for __int64 constants under all
4735         Windows compilers.
4736         (SPRINTF_WGINT): Use "%I64" under all Windows compilers.
4737
4738         * mswindows.h (WGINT_MAX): Use the nnnI64 syntax for
4739         __int64 constants under all Windows compilers.
4740         (struct_stat): Use `struct stati64' under Borland C.
4741         (fstat): Don't redefine to _fstati64 under Borland.
4742
4743         * mswindows.c: Define str_to_int64 under Borland C as well as
4744         under (older) Visual C.
4745
4746 2005-02-25  Hrvoje Niksic  <hniksic@xemacs.org>
4747
4748         * ftp.c (getftp): Initialize err to suppress compiler warning.
4749
4750 2005-02-24  Hrvoje Niksic  <hniksic@xemacs.org>
4751
4752         * ftp.c (ftp_expected_bytes): Fix bug that caused infloop because
4753         of not correctly skipping the '(' character.
4754
4755 2005-02-24  Hrvoje Niksic  <hniksic@xemacs.org>
4756
4757         * mswindows.c (wget_ftello): Removed.
4758
4759         * mswindows.h: Remove bogus definition of stat.
4760         (wget_ftello): Remove the leftover ftello replacement.
4761
4762 2005-02-20  Hrvoje Niksic  <hniksic@xemacs.org>
4763
4764         * mswindows.c (wget_ftello): Wget's replacement for ftello.
4765
4766         * utils.c (file_size): Use ftello where available.
4767
4768         * ftp-ls.c (ftp_parse_unix_ls): Use str_to_wgint to parse the file
4769         size.
4770         (ftp_parse_winnt_ls): Ditto.
4771
4772         * ftp-basic.c (ftp_size): Use str_to_wgint to convert number to
4773         wgint; pass 10 instead of 0 as the BASE argument.
4774
4775         * ftp.c (ftp_expected_bytes): Use str_to_wgint to parse the file
4776         size.
4777
4778         * sysdep.h (LARGE_INT_FMT): Use __int64 as LARGE_INT on
4779         MSVC/Windows; print it with "%I64".
4780
4781         * wget.h: Define a `wgint' type, normally aliased to (the possibly
4782         64-bit variant of) off_t.
4783
4784         * all: Use `wgint' instead of `long' for numeric variables that
4785         can hold file sizes.
4786
4787         * utils.c (number_to_string): Support printing of `wgint'
4788         argument.
4789         (number_to_static_string): New function.
4790
4791         * all: Replace printf("%ld", long_value) with printf("%s",
4792         number_to_static_string(wgint_value)).
4793
4794 2005-02-18  Mauro Tortonesi <mauro@ferrara.linux.it>
4795
4796         * main.c: Added the --ftp-passwd command line option.
4797
4798         * init.c: Renamed command passwd to ftppasswd.
4799
4800 2005-02-11  Mauro Tortonesi <mauro@ferrara.linux.it>
4801
4802         * string_t.c: Fixed a bug in do_escape and triggered escape of
4803         backslashes in string_escape to avoid ambiguities in the result
4804         string.
4805
4806 2005-02-10  Mauro Tortonesi <mauro@ferrara.linux.it>
4807
4808         * string.h: Renamed to string_t.h to fix a compilation conflict
4809         with the string.h header in the standard C library.
4810
4811         * string.c: Renamed to string_t.c for consistency with string.h.
4812
4813         * string_t.c: Ditto.
4814
4815         * string_t.h: Ditto.
4816
4817 2004-12-31  Mauro Tortonesi <mauro@ferrara.linux.it>
4818
4819         * string.c: New file.
4820
4821         * string.h: New file.
4822
4823         * Makefile.in: Added string.c to the list of modules to compile.
4824
4825         * main.c: Updated copyright.
4826
4827 2004-11-18  Ulf Harnhammar <ulf.harnhammar.9485@student.uu.se>
4828
4829         * ftp-ls.c: Fixed a problem in ftp_parse_winnt_ls that could allow a
4830         malicious remote FTP server to crash wget.
4831
4832 2004-11-18  Hans-Andreas Engel <engel@node.ch>
4833
4834         * http.c: Enable --convert-links (-k) when a single page is downloaded
4835         via --output-document (-O).
4836
4837 2004-11-18  Mauro Tortonesi <mauro@deepspace6.net>
4838
4839         * connect.c: Minor correction to the comment in front of fd_peek.
4840
4841 2004-11-18  Leonid Petrov <nouser@lpetrov.net>
4842
4843         * retr.c: Fix a timeout problem in fd_read_body when using http_proxy.
4844
4845 2004-11-15  YAMAZAKI Makoto <Yamazaki.Makoto@fujixerox.co.jp>
4846
4847         * netrc.c: Fix termination by assertion bug in netrc parsing.
4848
4849 2004-05-09  David Fritz  <zeroxdf@att.net>
4850
4851         * mswindows.c (fake_fork): Pass entire command line to the child
4852         process.
4853
4854 2004-03-31  Hrvoje Niksic  <hniksic@xemacs.org>
4855
4856         * http.c (gethttp): Fix typo: SCHEME_SSL -> SCHEME_HTTPS.
4857
4858 2004-03-30  Hrvoje Niksic  <hniksic@xemacs.org>
4859
4860         * http.c (gethttp): Send the Proxy-Authorization header over
4861         non-SSL connections too.
4862
4863 2004-03-25  David Fritz  <zeroxdf@att.net>
4864
4865         * mswindows.c (fake_fork_child): Ignore error code when
4866         OpenFileMapping() fails; assume it failed because the object does
4867         not exist.
4868
4869 2004-03-24  David Fritz  <zeroxdf@att.net>
4870
4871         * mswindows.c (fake_fork): New function.
4872
4873         * mswindows.c (fork_to_background): Use it.
4874
4875 2004-03-19  David Fritz  <zeroxdf@att.net>
4876
4877         * mswindows.c (ws_hangup): Incorporate old fork_to_background()
4878         code.  Add event name argument.
4879         (fork_to_backgorund): Now a simple wrapper around ws_hangup().
4880         (ws_handler): Correctly handle the case when neither CTRLC_BACKGND
4881         nor CTRLBREAK_BACKGND are defined.  Don't bother handling close,
4882         logoff, or shutdown events.  Call ws_hangup() with the correct
4883         event name; don't assume it was CTRL+Break.
4884
4885 2004-03-19  Hrvoje Niksic  <hniksic@xemacs.org>
4886
4887         * url.c (url_parse): Decode %HH sequences in host name.
4888
4889 2004-03-04  Hrvoje Niksic  <hniksic@xemacs.org>
4890
4891         * convert.c (local_quote_string): Quote "#" as "%23" and "%" as
4892         "%25" when creating links to local files.
4893
4894 2004-03-02  David Fritz  <zeroxdf@att.net>
4895
4896         * mswindows.c (ws_percenttitle): Guard against future changes by
4897         doing nothing if the proper variables have not been initialized.
4898         Clamp percentage value.
4899
4900 2004-03-04  Gisle Vanem  <giva@bgnett.no>
4901
4902         * retr.c (fd_read_body): Don't change console title if quiet.
4903
4904 2004-02-25  David Fritz  <zeroxdf@att.net>
4905
4906         * mswindows.c (set_sleep_mode): Remove argument and return value.
4907         Call GetModuleHandle() instead of LoadLibrary()/FreeLibrary() for
4908         kernel32.dll.  Use typedef for function-pointer.  Don't cast
4909         l-value.  Don't use dereference operator when calling through
4910         function-pointer.
4911         (ws_startup): Update call to set_sleep_mode().
4912         (ws_cleanup): Remove call to set_sleep_mode().
4913
4914 2004-02-23  David Fritz  <zeroxdf@att.net>
4915
4916         * http.c (http_loop): Ditto.
4917
4918         * ftp.c (ftp_loop_internal): Update call to ws_changetitle().
4919
4920         * main.c (main): Don't bother calling ws_changetitle().
4921
4922         * mswindows.h (ws_changetitle): Update prototype.
4923
4924         * mswindows.c (ws_changetitle): Remove second argument.  Use
4925         xfree_null().
4926         (ws_percenttitle): Only update title when percentage has changed.
4927
4928 2004-02-23  David Fritz  <zeroxdf@att.net>
4929
4930         * mswindows.h: Ditto.
4931
4932         * mswindows.c: Misc. formatting/comment tweaks throughout.
4933
4934 2004-02-20  David Fritz  <zeroxdf@att.net>
4935
4936         * main.c (print_help): Remove call to ws_help().
4937
4938         * mswindows.c (ws_help): Remove.
4939
4940         * mswindows.h (ws_help): Remove.
4941
4942 2004-02-16  David Fritz  <zeroxdf@att.net>
4943
4944         * init.c (home_dir): Use aprintf() instead of xmalloc()/sprintf().
4945         Under Windows, if $HOME is not defined, use the directory that
4946         contains the Wget binary instead of hard-coded `C:\'.
4947         (wgetrc_file_name): Under Windows, look for $HOME/.wgetrc then, if
4948         not found, look for wget.ini in the directory of the Wget binary.
4949
4950         * mswindows.c (ws_mypath): Employ slightly more robust methodology.
4951         Strip trailing path separator.
4952
4953 2004-02-06  Hrvoje Niksic  <hniksic@xemacs.org>
4954
4955         * http.c (gethttp): Respect --ignore-length.
4956         (gethttp): Inhibit keep-alive if --ignore-length is specified.
4957
4958 2004-02-06  Hrvoje Niksic  <hniksic@xemacs.org>
4959
4960         * connect.c (sockaddr_set_data): Zero out
4961         sockaddr_in/sockaddr_in6.  Apparently BSD-derived stacks need this
4962         when binding a socket to local address.
4963
4964 2004-02-04  Hrvoje Niksic  <hniksic@xemacs.org>
4965
4966         * hash.c: Make the file compilable outside Wget source tree when
4967         -DSTANDALONE is used.
4968
4969 2004-01-29  Hrvoje Niksic  <hniksic@xemacs.org>
4970
4971         * utils.c (determine_screen_width): Return 0 if not running on
4972         Windows or on a TIOCGWINSZ-capable system.
4973
4974 2004-01-28  David Fritz  <zeroxdf@att.net>
4975
4976         * utils.c (determine_screen_width): Correctly determine console
4977         width under Windows.
4978
4979 2004-01-28  Christian Biere  <christianbiere@gmx.de>
4980
4981         * progress.c (bar_set_params): Fixed syntax error when HAVE_ISATTY
4982         was undefined.
4983
4984         * ftp.c (ftp_loop_internal): Allocate a larger buffer in case
4985         "try" gets translated to something large.  Ditto in http_loop in
4986         http.c.
4987
4988         * http.c (response_header_copy): Don't write to buf[BUFSIZE].
4989
4990         * ftp-opie.c (skey_response): Eliminate unnecessary string
4991         concatenation; just call gen_md5_update twice.
4992
4993 2004-01-25  Hrvoje Niksic  <hniksic@xemacs.org>
4994
4995         * utils.c (xsleep): Don't call usleep with values larger than
4996         1,000,000.
4997
4998 2003-12-16  Hrvoje Niksic  <hniksic@xemacs.org>
4999
5000         * http.c (gethttp): Fix generation of `Content-Length'.
5001
5002 2003-12-15  Gisle Vanem  <giva@bgnett.no>
5003
5004         * url.c (url_skip_credentials): Fixed return value; 'url' if no
5005         credentials.
5006
5007 2003-12-14  Hrvoje Niksic  <hniksic@xemacs.org>
5008
5009         * url.c (url_skip_credentials): Return a pointer directly.
5010
5011 2003-12-14  Hrvoje Niksic  <hniksic@xemacs.org>
5012
5013         * url.c (url_file_name): Ditto.
5014         (parse_errors): Ditto.
5015
5016         * retr.c (retr_rate): Ditto.
5017
5018         * progress.c (create_image): Ditto.
5019
5020         * netrc.c (parse_netrc): Ditto.
5021
5022         * main.c (struct cmdline_option): Ditto.
5023         (redirect_output_signal): Ditto.
5024
5025         * init.c (commands): Ditto.
5026
5027         * ftp-ls.c (ftp_index): Ditto.
5028
5029         * cookies.c (check_domain_match): Declare the pointer to a literal
5030         string as `const'.
5031
5032 2003-12-12  Hrvoje Niksic  <hniksic@xemacs.org>
5033
5034         * retr.c (fd_read_body): Pass total size to progress_create, not
5035         the remaining amount.
5036
5037 2003-12-12  Hrvoje Niksic  <hniksic@xemacs.org>
5038
5039         * retr.c (fd_read_body): Don't fiddle with "interactive timeout"
5040         if read timeout is unset.
5041
5042 2003-12-12  Hrvoje Niksic  <hniksic@xemacs.org>
5043
5044         * connect.c (bind_local): Don't set the IPV6_V6ONLY option on the
5045         socket.
5046
5047 2003-12-06  Hrvoje Niksic  <hniksic@xemacs.org>
5048
5049         * url.c (url_file_name): Respect the setting of
5050         opt.protocol_directories.
5051
5052         * main.c (main): Only check for ret=='?' when longindex is unset.
5053         (option_data): New option --protocol-directories.
5054
5055 2003-12-06  Hrvoje Niksic  <hniksic@xemacs.org>
5056
5057         * ftp.c (getftp): Ditto.
5058
5059         * http.c (gethttp): Correctly calculate bandwidth as total data
5060         read divided with download time.
5061
5062         * retr.c (fd_read_body): Separate the return values for data
5063         written and read.
5064
5065 2003-12-05  Hrvoje Niksic  <hniksic@xemacs.org>
5066
5067         * http.c (H_REDIRECTED): Respect the HTTP/1.1 "303 See Other"
5068         response code.
5069         Suggested by Dan Razzell.
5070
5071 2003-11-30  Hrvoje Niksic  <hniksic@xemacs.org>
5072
5073         * retr.c (fd_read_body): Report the amount of data *written* as
5074         amount_read.  This is not entirely logical, but that's what the
5075         callers expect, and it's not easy to change.
5076
5077         * ftp.c (ftp_loop_internal): Ditto.
5078
5079         * http.c (http_loop): Be smarter about assigning restval; if we're
5080         in the nth pass of a download, simply use the information we have
5081         about how much data has been retrieved as restval.
5082
5083         * ftp.c (getftp): Ditto for FTP "REST" command.
5084
5085         * http.c (gethttp): When the server doesn't respect range, skip
5086         the first RESTVAL bytes of the read body.  Never truncate the
5087         output file.
5088
5089         * retr.c (fd_read_body): Support skipping initial STARTPOS octets.
5090
5091 2003-11-30  Hrvoje Niksic  <hniksic@xemacs.org>
5092
5093         * http.c (skip_short_body): Renamed skip_body to skip_short_body;
5094         don't bother calling fd_read_body.
5095
5096 2003-11-30  Hrvoje Niksic  <hniksic@xemacs.org>
5097
5098         * retr.c (fd_read_body): Sanitize arguments and document them
5099         better.  Make sure the timer is created and updated only if
5100         necessary.  Updated callers.
5101
5102 2003-11-30  Hrvoje Niksic  <hniksic@xemacs.org>
5103
5104         * http.c (skip_body): New function.
5105         (gethttp): Use it to skip the body of the responses we don't care
5106         to download.  That allows us to reuse the connection.
5107         (gethttp): Trust that the HEAD requests will not generate body
5108         data.
5109
5110         * retr.c (fd_read_body): Don't write to OUT if it's NULL.
5111
5112 2003-11-29  Hrvoje Niksic  <hniksic@xemacs.org>
5113
5114         * http.c (gethttp): Initialize SSL only the first time when SSL
5115         URL is downloaded.
5116
5117 2003-11-29  Hrvoje Niksic  <hniksic@xemacs.org>
5118
5119         * cookies.c (cookie_header): Only generate the contents of the
5120         header, not the leading "Cookie: " or the trailing "\r\n".
5121
5122         * http.c (gethttp): When adding headers specified with `--header',
5123         allow them to override the headers generated by Wget.
5124
5125         * init.c (cmd_spec_header): Made opt.user_headers a vector.
5126
5127         * http.c (request_new): New function.  Returns a request structure
5128         which can be modified in various ways, most notably by adding HTTP
5129         headers to the request.
5130         (request_set_header): New function for adding the header to the
5131         request.  If the header is already available, it gets replaced.
5132         (request_send): Construct and send the request.
5133         (gethttp): Use the request_* functions to generate the request.
5134
5135 2003-11-28  Hrvoje Niksic  <hniksic@xemacs.org>
5136
5137         * http.c (gethttp): Don't include the Proxy-Authorization header
5138         in the request tunneled through proxy.
5139
5140 2003-11-28  Hrvoje Niksic  <hniksic@xemacs.org>
5141
5142         * http.c (gethttp): Use the CONNECT handle to establish SSL
5143         passthrough through non-SSL proxies.
5144
5145 2003-11-28  Hrvoje Niksic  <hniksic@xemacs.org>
5146
5147         * init.c: Don't #include netinet/Winsock stuff.
5148
5149 2003-11-28  Hrvoje Niksic  <hniksic@xemacs.org>
5150
5151         * http.c: Deleted the old functions header_process,
5152         header_extract_number, header_exists, header_strdup,
5153         http_process_range, http_process_none, http_process_type, and
5154         http_process_connection.
5155
5156         * http.c (response_new): New function.
5157         (response_header_bounds): Ditto.
5158         (response_header_copy): Ditto.
5159         (response_header_strdup): Ditto.
5160         (response_status): Ditto.
5161         (gethttp): Use the new response_* functions to parse the response.
5162         Support HTTP/0.9 responses.
5163
5164 2003-11-27  Hrvoje Niksic  <hniksic@xemacs.org>
5165
5166         * progress.c (create_image): Don't calculate ETA if nothing has
5167         been downloaded yet, because it causes division by zero.
5168
5169 2003-11-27  Hrvoje Niksic  <hniksic@xemacs.org>
5170
5171         * connect.c (bind_local): Rename sa_len to addrlen because IRIX
5172         headers define sa_len as a macro.
5173
5174 2003-11-26  Hrvoje Niksic  <hniksic@xemacs.org>
5175
5176         * html-parse.c (convert_and_copy): Remove embedded newlines when
5177         AP_TRIM_BLANKS is specified.
5178
5179 2003-11-26  Hrvoje Niksic  <hniksic@xemacs.org>
5180
5181         * ftp.c: Set con->csock to -1 where rbuf_uninitialize was
5182         previously used.
5183
5184 2003-11-26  Hrvoje Niksic  <hniksic@xemacs.org>
5185
5186         * Makefile.in (http$o): Added the trailing backslash that was
5187         missing.
5188
5189 2003-11-21  Hrvoje Niksic  <hniksic@xemacs.org>
5190
5191         * headers.c: Removed.  The file is no longer relevant, now that no
5192         special handling of headers is done by the rbuf code.  Moved
5193         portions to http.c.
5194
5195 2003-11-21  Hrvoje Niksic  <hniksic@xemacs.org>
5196
5197         * rbuf.c: Removed.
5198
5199         * ftp-basic.c (ftp_response): Use fd_read_line.  No longer use
5200         struct rbuf.  Updated all callers.
5201
5202         * http.c (gethttp): Use fd_read_head to read all the headers in
5203         one go.
5204         (next_header): New function.
5205
5206         * retr.c (fd_read_line): New function: reads a line from FD,
5207         leaving the rest of the data unread.
5208         (fd_read_head): New function.
5209
5210         * connect.c (fd_peek): New function, implements peeking.
5211         (poll_internal): New function.
5212         (fd_read): Use it.
5213         (fd_write): Ditto.
5214         (fd_peek): Ditto.
5215         (fd_register_transport): Allow registering a "peeker" callback.
5216
5217 2003-11-20  Hrvoje Niksic  <hniksic@xemacs.org>
5218
5219         * connect.c: Renamed xread/xwrite/xclose to
5220         fd_read/fd_write/fd_close.  The "x" prefix is not appropriate
5221         because the semantics have diverged from read/write/close too
5222         significantly.  Updated all callers.
5223
5224 2003-11-20  Hrvoje Niksic  <hniksic@xemacs.org>
5225
5226         * connect.c (sock_write): It's not necessary to initialize RES.
5227
5228 2003-11-19  Hrvoje Niksic  <hniksic@xemacs.org>
5229
5230         * main.c (main): Don't reference opt.ipv4_only and opt.ipv6_only
5231         if IPv6 is disabled.
5232
5233 2003-11-19  Hrvoje Niksic  <hniksic@xemacs.org>
5234
5235         * connect.c (socket_has_inet6): Only compile it if IPv6 is enabled
5236         and AI_ADDRCONFIG is missing.
5237
5238 2003-11-18  Hrvoje Niksic  <hniksic@xemacs.org>
5239
5240         * gen_sslfunc.c (ssl_init_prng): Warn the user when using a weak
5241         random seed.
5242
5243 2003-11-18  Hrvoje Niksic  <hniksic@xemacs.org>
5244
5245         * host.c (address_list_contains): Renamed address_list_find to
5246         address_list_contains because its result is boolean.
5247
5248 2003-11-18  Hrvoje Niksic  <hniksic@xemacs.org>
5249
5250         * connect.c (select_fd): Return 1 if select is not available.
5251
5252 2003-11-17  Hrvoje Niksic  <hniksic@xemacs.org>
5253
5254         * connect.c (connect_to_host): Don't reference address list after
5255         releasing it.
5256
5257 2003-11-17  Hrvoje Niksic  <hniksic@xemacs.org>
5258
5259         * main.c (print_help): Fix alignment of FTP options output.
5260
5261 2003-11-17  Hrvoje Niksic  <hniksic@xemacs.org>
5262
5263         * host.c (lookup_host): Check for the ability to create IPv6
5264         sockets here.
5265
5266         * init.c (defaults): Don't auto-set --inet4-only on IPv6-less
5267         systems.
5268
5269 2003-11-16  Hrvoje Niksic  <hniksic@xemacs.org>
5270
5271         * main.c (print_help): Fix typo in `-O' help message.  Fix docs of
5272         -Y/--proxy.  Fix docs of `--cookies' and `--glob'.  Improve docs
5273         of --convert-links.  Fix docs of SSL options.
5274
5275 2003-11-16  Hrvoje Niksic  <hniksic@xemacs.org>
5276
5277         * ftp-basic.c: Don't include <arpa/inet.h> and others because
5278         they're no longer needed.
5279
5280 2003-11-16  Hrvoje Niksic  <hniksic@xemacs.org>
5281
5282         * main.c (main): Don't allow setting of both opt.ipv4_only and
5283         opt.ipv6_only.
5284
5285         * init.c (defaults): Mark opt.ipv4_only specially when set
5286         automatically.
5287
5288 2003-11-15  Hrvoje Niksic  <hniksic@xemacs.org>
5289
5290         * host.c (lookup_host): Use AI_ADDRCONFIG only if the family is
5291         unspecified.  This ensures that specifying `--no-inet4' on systems
5292         where IPv6 resolves, but doesn't work behaves the same regardless
5293         of the availability of AI_ADDRCONFIG.
5294
5295 2003-11-15  Hrvoje Niksic  <hniksic@xemacs.org>
5296
5297         * host.c: Don't refer to the now-removed function
5298         forget_host_lookup in the documentation of lookup_host.
5299
5300 2003-11-15  Hrvoje Niksic  <hniksic@xemacs.org>
5301
5302         * http.c (persistent_available_p): Correctly specify the endpoint
5303         argument to socket_ip_address.
5304         (gethttp): When printing the "reusing connection to..." message,
5305         specify the host name of the reused connection, not the current
5306         host name.  That makes more sense because it provides a useful
5307         piece of information -- we know to which host we're supposed to
5308         connect anyway!
5309
5310 2003-11-15  Hrvoje Niksic  <hniksic@xemacs.org>
5311
5312         * init.c: Make sure the options are in alphabetic order!
5313
5314         * host.c (lookup_host): Merge lookup_host_passive and lookup_host
5315         after all -- having both would result in some code duplication.
5316         (lookup_host): Set hints.ai_family to AF_INET if ipv4_only is
5317         requested.  Likewise, set it to AF_INET6 for ipv6_only.  Specify
5318         AI_ADDRCONFIG where available.
5319         (lookup_host): New flag LH_REFRESH that specifies that a cached
5320         entry for HOST should be refreshed.
5321         (cache_query): New function.
5322         (cache_store): Ditto.
5323         (cache_remove): Ditto.
5324         (forget_host_lookup): No longer necessary, replaced with static
5325         function cache_remove.
5326
5327 2003-11-14  Hrvoje Niksic  <hniksic@xemacs.org>
5328
5329         * main.c: Enable -4 and -6 only if IPv6 is enabled.
5330
5331 2003-11-14  Hrvoje Niksic  <hniksic@xemacs.org>
5332
5333         * connect.c (register_transport): Renamed from register_extended.
5334         Explain the intended usage.
5335
5336 2003-11-14  Hrvoje Niksic  <hniksic@xemacs.org>
5337
5338         * url.c (uri_merge): Merging "foo" and "bar" should result in
5339         "bar", not in "foo/bar".
5340         (path_simplify): Don't remove empty path elements; don't
5341         special-case leading slash.
5342         (path_simplify): Don't swallow ".."'s at the beginning of string.
5343         E.g. simplify "foo/../../bar" as "../bar", not as "bar".
5344         (append_uri_pathel): Defang ".." path element upon encountering
5345         it.
5346
5347 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
5348
5349         * http.c (persistent_available_p): Don't attempt to talk to two
5350         different SSL sites over the same secure connection.
5351
5352 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
5353
5354         * http.c (gethttp): Ditto.
5355
5356         * ftp.c (getftp): Use retryable_socket_connect_error instead of
5357         CONNECT_ERROR.
5358
5359         * wget.h (CONNECT_ERROR): Removed.
5360
5361         * connect.c (retryable_socket_connect_error): New function instead
5362         of unsupported_socket_family_error.
5363
5364 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
5365
5366         * wget.h (CONNECT_ERROR): Use it.
5367
5368         * connect.c (unsupported_socket_family_error): New function.
5369
5370 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
5371
5372         * connect.c (bind_local): Renamed bindport to bind_local; return
5373         the socket directly.  Updated callers.
5374         (accept_connection): Renamed acceptport to accept_connection;
5375         return the created socket directly.  Updated callers.
5376
5377 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
5378
5379         * init.c (defaults): Turn on opt.ipv4_only if we're compiling with
5380         IPv6, and AI_ADDRINFO is not available, and AF_INET6 sockets can't
5381         be created.
5382
5383 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
5384
5385         * host.c (lookup_host): Document the fact that the addresses are
5386         returned in order.
5387
5388 2003-11-12  Hrvoje Niksic  <hniksic@xemacs.org>
5389
5390         * utils.c: Use limits.h only where available.
5391
5392         * hash.c: Use INVALID_PTR and INVALID_PTR_BYTE.  Include limits.h.
5393
5394 2003-11-11  Hrvoje Niksic  <hniksic@xemacs.org>
5395
5396         * main.c: Added options --inet4-only and --inet6-only.
5397
5398 2003-11-11  Hrvoje Niksic  <hniksic@xemacs.org>
5399
5400         * host.c (host_errstr): Use the more standard message "Unknown
5401         host".
5402
5403 2003-11-10  Hrvoje Niksic  <hniksic@xemacs.org>
5404
5405         * connect.c (connect_to_host): Use that flag to decide whether to
5406         re-resolve the host name.
5407
5408         * host.c (struct address_list): Added a flag that maintains
5409         whether the connection worked at some point.
5410
5411 2003-11-10  Hrvoje Niksic  <hniksic@xemacs.org>
5412
5413         * host.c (lookup_host): Special-case the numeric addresses only in
5414         the non-IPv6 case.
5415
5416 2003-11-10  Hrvoje Niksic  <hniksic@xemacs.org>
5417
5418         * connect.c (resolve_bind_address): Call lookup_host_passive.
5419         Make sure that opt.bind_address is resolved only once.
5420
5421         * host.c (lookup_host_passive): New function, handles "passive"
5422         lookups.
5423         (lookup_host): Remove the passive flags.  Remove the
5424         family-related flags -- use ip_default_family instead.
5425
5426 2003-11-09  Hrvoje Niksic  <hniksic@xemacs.org>
5427
5428         * html-url.c: Get URLs from <object data="...">.
5429
5430 2003-11-09  Hrvoje Niksic  <hniksic@xemacs.org>
5431
5432         * main.c (option_data): Specify the command to use for --mirror.
5433
5434 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
5435
5436         * cookies.c (cookie_handle_set_cookie): Specify exact match for
5437         unspecified domains.
5438
5439 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
5440
5441         * main.c (main): Removed one-letter options `-C', `-g', `-G', and
5442         `-s'.
5443
5444 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
5445
5446         * main.c (main): Add --dont-remove-listing for backward
5447         compatibility with previous versions.
5448         (print_help): Fix typo, spotted by Dennis Smit.
5449
5450 2003-11-08  Gisle Vanem  <giva@bgnett.no>
5451
5452         * ftp-basic.c: Support Windows-2000 ftp servers. Win-2000 *is*
5453         Win-NT 5.0 so calling it ST_WINNT is okay I guess.
5454
5455 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
5456
5457         * progress.c (update_speed_ring): Clear the speed ring when the
5458         download stalls.
5459
5460         * retr.c (get_contents): Specify 0.95s read timeout, so that the
5461         progress gauge can be updated even when data arrives very slowly
5462         or stalls.
5463
5464 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
5465
5466         * utils.c (wtimer_allocate): Bless the use of wtimer_read on a
5467         timer that has merely been allocated because get_contents() does
5468         that.
5469         (wtimer_update): Abort if the timer is not initialized.
5470
5471 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
5472
5473         * retr.c (get_contents): Pass the timer to limit_bandwidth().
5474
5475         * utils.c (wtimer_update): New function instead of wget_elapsed;
5476         just update the timer, but don't return anything.
5477         (wtimer_read): Read and return the last known value of the timer.
5478
5479 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
5480
5481         * http.c (persistent_available_p): Instead of matching all the
5482         addresses of HOST and last host, determine the peer's IP address
5483         with socket_ip_address and see if that address is one of those
5484         HOST resolves to.
5485
5486         * host.c (address_list_match_all): Removed.
5487         (address_list_find): New function, finds an IP address in the
5488         address list.
5489
5490         * ftp.c (ftp_do_pasv): Get the peer's address here, and pass it to
5491         ftp_epsv so it doesn't need to call getpeername.
5492
5493         * ftp-basic.c (ftp_port): Use socket_ip_address instead of
5494         getpeername.
5495         (ftp_lprt): Ditto.
5496
5497         * connect.c (socket_ip_address): Replaces conaddr, generalized to
5498         either get peer's or local address.
5499         (sockaddr_get_data): Made local to this file.
5500
5501 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
5502
5503         * hash.c (HASH_POSITION): Explicitly accept the hash function.
5504         (grow_hash_table): Extract ht->hash_function outside the loop.
5505         (hash_table_remove): Ditto.
5506         (hash_table_clear): Fill entries with 0xff to clear them.
5507         (hash_table_remove): Mark entries as deleted with the correct
5508         marker.
5509
5510 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
5511
5512         * http.c (persistent_available_p): No reason for the host lookup
5513         to be silent -- it's a lookup like any other.
5514
5515 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
5516
5517         * connect.c (register_extended): Check that fd >= 0.
5518
5519 2003-11-07  Hrvoje Niksic  <hniksic@xemacs.org>
5520
5521         * connect.c (LAZY_RETRIEVE_INFO): Set LAST_INFO.
5522
5523 2003-11-07  Hrvoje Niksic  <hniksic@xemacs.org>
5524
5525         * hash.c (NON_EMPTY): Use the all-bit-set value as the marker that
5526         the field is empty.  This allows NULL pointer and 0 value to be
5527         used as keys, which is necessary for the connect.c code to work
5528         when fd==0.
5529         (hash_table_new): Fill mappings with 0xff.
5530         (grow_hash_table): Ditto.
5531
5532 2003-11-07  Hrvoje Niksic  <hniksic@xemacs.org>
5533
5534         * url.c (url_parse): Allow empty ports.
5535
5536 2003-11-07  Hrvoje Niksic  <hniksic@xemacs.org>
5537
5538         * main.c (print_help): Break the help string into multiple chunks.
5539         (cmdline_option): New option handler OPT_FUNCALL.  Generalized
5540         HANDLE_CMD to generic DATA.
5541         (option_data): Use the new OPT_FUNCALL feature.
5542
5543 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
5544
5545         * log.h: Declare log_init, log_close, and
5546         log_request_redirect_output here.
5547
5548 2003-11-05  Dennis Smit  <ds@nerds-incorporated.org>
5549
5550         * main.c: (main): added --preserve-permissions option.
5551
5552         * ftp.c (ftp_retrieve_list): added support for
5553         --preserve-permissions option.
5554
5555         * init.c: added support for --preserve-permission option.
5556
5557         * option.h: added support for --preserve-permission option.
5558
5559 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
5560
5561         * main.c (init_switches): New function.  Convert option_data to
5562         long_options and short_options, which can be fed to getopt_long.
5563         (main): Execute command-line options by consulting option_data.
5564
5565 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
5566
5567         * gen_sslfunc.c (ssl_read): Implement a more correct check for
5568         EINTR.
5569         (ssl_write): Ditto.
5570         (init_ssl): Use a global SSL context.
5571
5572 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
5573
5574         * connect.c (xclose): Free INFO even if it doesn't provide a
5575         closer.
5576
5577 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
5578
5579         * connect.c: Updated all callers of
5580         iread/ssl_iread/iwrite/ssl_iwrite to use xread and xwrite instead.
5581
5582         * rbuf.h (struct rbuf): Removed the SSL member because SSL is
5583         handled automatically by xread.
5584
5585         * hash.c (ptrhash): Made private.
5586         (ptrcmp): Ditto.
5587         (inthash): Removed.
5588
5589         * connect.c (select_fd): Don't set errno, leave it to the caller.
5590
5591         * gen_sslfunc.c (connect_ssl): Use register_extended to register
5592         SSL callbacks for communication with SSL-enabled endpoints.
5593         (ssl_read): New function.
5594         (ssl_write): Ditto.
5595         (ssl_poll): Ditto.
5596         (ssl_close): Ditto.
5597
5598         * connect.c (register_extended): New function -- register
5599         callbacks for basic socket operations.
5600         (xread): Ditto.
5601         (xwrite): Ditto.
5602         (xclose): Ditto.
5603         (sock_read): New function, default implementation for reading.
5604         (sock_write): Ditto for writing.
5605         (sock_poll): Ditto for polling.
5606         (sock_close): Ditto for closing.
5607
5608 2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
5609
5610         * connect.c (bindport): Fix compilation under pre-C99 compilers.
5611
5612 2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
5613
5614         * connect.c (connect_to_ip): More compact error checking.
5615         (bindport): Don't treat failed setsockopt as a fatal error.
5616
5617 2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
5618
5619         * connect.c (resolve_bind_address): Use a more accurate error
5620         message -- we're not binding to ANY, we're disabling bind
5621         altogether.
5622
5623 2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
5624
5625         * cookies.c (save_cookies_mapper): Respect the setting of
5626         keep-session-cookies.
5627         (cookie_jar_load): Import session cookies.
5628         Based on code submitted by Nicolas Schodet.
5629
5630         * utils.c (datetime_str): Use information in TM when it's
5631         non-NULL.
5632
5633         * main.c (main): New option `--keep-session-cookies'.
5634
5635 2003-11-04  Hrvoje Niksic  <hniksic@xemacs.org>
5636
5637         * Makefile.in (realclean): Delete config.h.in.
5638
5639 2003-11-04  Hrvoje Niksic  <hniksic@xemacs.org>
5640
5641         * config-post.h: New file, included from now autogenerated
5642         config.h.in.
5643
5644 2003-11-04  Hrvoje Niksic  <hniksic@xemacs.org>
5645
5646         * progress.c (progress_handle_sigwinch): Don't call
5647         determine_screen_width() from the signal handler.  Instead, just
5648         set a volatile variable.
5649         (bar_create): Check whether SIGWINCH was received.
5650         (bar_update): Ditto.
5651
5652         * sysdep.h: Define SYSTEM_FNMATCH only if HAVE_FNMATCH_H is true.
5653
5654 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
5655
5656         * utils.c (xsleep): New function.  Uses nanosleep where available,
5657         resuming sleeps interrupted by signals.  Updated callers of sleep
5658         and usleep to use xsleep.
5659
5660 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
5661
5662         * ftp-basic.c (ftp_login): Remove shadowing (and bogus)
5663         declaration of SEED.
5664
5665 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
5666
5667         * log.c (logvprintf): Documented better.  Renamed to
5668         log_vprintf_internal to avoid confusion with the public API
5669         functions logprintf and logputs.
5670
5671 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
5672
5673         * wget.h (N_): Don't parenthesize argument.
5674
5675 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
5676
5677         * host.h (ADDRESS_IPV4_DATA): Don't take the address of in.s_addr
5678         because that doesn't work on machines that define it as bitfield.
5679
5680 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
5681
5682         * connect.c (select_fd): Generalize the third argument into WAIT,
5683         so that the caller can request waiting for both read and write.
5684         Updated callers.
5685
5686 2003-11-02  Hrvoje Niksic  <hniksic@xemacs.org>
5687
5688         * html-url.c (cleanup_html_url): Destroy the hash tables, don't
5689         just call free on them.
5690         (init_interesting): Use hash_table_put instead of string_set_add
5691         because we don't need the strdup that the latter function
5692         performs.
5693
5694         * init.c (cleanup): Don't pass NULL to cookie_jar_delete.
5695
5696         * xmalloc.c (xfree_real): Abort when passed a NULL pointer.
5697         (xfree_debug): Print at the file and line of the offending call to
5698         free.
5699
5700 2003-11-02  Hrvoje Niksic  <hniksic@xemacs.org>
5701
5702         * wget.h: Retired the `boolean' type.  Moved the DEFAULT_LOGFILE
5703         define to log.h.  Moved the INFINITE_RECURSION define to recur.h.
5704
5705         * xmalloc.h: Renamed FREE_MAYBE to xfree_null and moved the
5706         definition from wget.h to xmalloc.h.
5707
5708 2003-11-02  Hrvoje Niksic  <hniksic@xemacs.org>
5709
5710         * html-parse.c (decode_entity): New function; split the decoding
5711         of entities here.
5712         (convert_and_copy): Use it to decode entities.
5713         (decode_entity): Handle the &apos entity.
5714         (decode_entity): Don't decode Latin 1 numeric entities.  Don't
5715         decode &#0.
5716
5717 2003-11-01  Hrvoje Niksic  <hniksic@xemacs.org>
5718
5719         * ftp-opie.c (calculate_skey_response): Use uint32_t instead of
5720         `unsigned long' for the cheksum array.  Document the function.
5721
5722 2003-11-01  Hrvoje Niksic  <hniksic@xemacs.org>
5723
5724         * connect.c (acceptport): Don't call select_fd when timeout is not
5725         requested.
5726
5727 2003-11-01  Hrvoje Niksic  <hniksic@xemacs.org>
5728
5729         * host.c: Removed the ip_default_family global variable.
5730
5731         * host.c (lookup_host): Document the function.  Fixed declaration
5732         of VEC.
5733
5734 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
5735
5736         * various: Use new macros xnew, xnew0, xnew_array, and xnew0_array
5737         in various places.
5738
5739 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
5740
5741         * wget.h: Move declarations of malloc and logging code to
5742         xmalloc.h and log.h respectively to unclutter this file.
5743         (STRDUP_ALLOCA): Made it side-effect free.
5744
5745         * xmalloc.h: New files.  Define macros xnew, xnew0, xnew_array,
5746         and xnew0_array.
5747
5748         * xmalloc.c: New file.  Move the xmalloc routines here.
5749
5750 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
5751
5752         * connect.c (sockaddr_set_data): Remove the broken code that
5753         checked for NULL address.
5754
5755 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
5756
5757         * host.c (address_list_from_single): Removed.
5758         (address_list_from_ipv4_addresses): Renamed from
5759         address_list_from_vector.
5760
5761 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
5762
5763         * sysdep.h (CLOSE): Don't call close on file descriptors less than
5764         0, i.e. on uncreated sockets.
5765
5766         * connect.c (resolve_bind_address): Work on struct sockaddr
5767         directly.
5768         (connect_to_host): Replacement for connect_to_many.  Resolve HOST
5769         and connect to any of its addresses.  If we can't connect and the
5770         host name lookup was cached, try to resolve it again.  This should
5771         fix problems with hosts behind dynamic DNS.  Updated all callers.
5772         (connect_to_ip): Replacement for connect_to_one.  Removed SILENT;
5773         added the argument PRINT instead.  Updated all callers.
5774         (set_connection_host_name): Removed.
5775
5776         * host.c (address_list_address_at): New function instead of
5777         address_list_copy_one. It returns a pointer to ip_address *, so
5778         it's not necessary to copy the data.
5779         (address_list_cached_p): New function.
5780         (forget_host_lookup): Ditto.
5781
5782         * connect.c: Got rid of the MSOCK global variable.  Made bindport
5783         return the local socket it creates.  Added a new argument to
5784         acceptport, the socket to call accept on.  Updated callers.
5785         (closeport): Removed.
5786
5787         * connect.c: Moved the sockaddr code from host.c to this file,
5788         because most of that stuff is used for connecting, and has nothing
5789         to do with host names anyway.
5790         (sockaddr_set_data, sockaddr_get_data): New functions, replace the
5791         old sockaddr_set_address, sockaddr_set_port, sockaddr_get_address,
5792         and sockaddr_get_port.
5793
5794 2003-10-30  Hrvoje Niksic  <hniksic@xemacs.org>
5795
5796         * sysdep.h: Use `S >= 8' rather than `S == 8' when looking for
5797         large integers.
5798
5799 2003-10-30  Hrvoje Niksic  <hniksic@xemacs.org>
5800
5801         * url.c (append_uri_pathel): New argument ESCAPED_P that says
5802         whether [B, E) is to be treated as URL-escaped or not.  If
5803         ESCAPED_P is false, don't unescape the region.
5804         (url_file_name): u->file is not URL-escaped.
5805
5806 2003-10-30  Hrvoje Niksic  <hniksic@xemacs.org>
5807
5808         * retr.c (retrieve_from_file): Use retrieve_tree for
5809         page-requisites.
5810
5811         * main.c (main): Don't define opt.recursive when -p is used.
5812         Instead, make sure that recursion is used for HTTP in that case.
5813
5814 2003-10-29  Hrvoje Niksic  <hniksic@xemacs.org>
5815
5816         * host.h: Defined accessors for elements of ip_address.  Updated
5817         all callers.
5818         (address_list_match_all): Use memcmp in the non-IPv6 case.
5819
5820         * wget.h (CONNECT_ERROR): Don't retry connecting if connect()
5821         returned EAFNOSUPPORT.
5822
5823 2003-10-27  Mauro Tortonesi <mauro@deepspace6.net>
5824
5825         * connect.h: changed bindport prototype and added the related
5826         BIND_ON_IPV4_ONLY and BIND_ON_IPV6_ONLY flags.
5827
5828         * connect.c: changed bindport and resolve_bind_address to allow
5829         protocol-version specific DNS resolution. modified conaddr,
5830         acceptport and connect_to_one to make use of struct
5831         sockaddr_storage and of the new ip_address structure.
5832
5833         * ftp-basic.c: added LPRT/LPSV (RFC1639) support, refactored
5834         PORT/PASV (RFC959) and EPRT/EPSV (RFC2428) support code.
5835
5836         * ftp.c: added the ftp_do_port and ftp_do_pasv functions to
5837         handle FTP over IPv6.
5838
5839         * ftp.h: changed prototype of ftp_epsv and added prototypes for
5840         ftp_lpsv, ftp_lprt and ftp_eprt.
5841
5842         * host.c: renamed the
5843         wget_sockaddr_set_address and wget_sockaddr_get_addr, and
5844         wget_sockaddr_{s,g}et_port couples to sockaddr_{s,g}et_address and
5845         sockaddr_{g,s}et_port respectively.  changed
5846         address_list_match_all, address_list_from_addrinfo sockaddr_len,
5847         pretty_print_address, lookup_host, sockaddr_{s,g}et_address and
5848         sockaddr_{g,s}et_port to make use of struct sockaddr_storage and
5849         of the new ip_address structure.  removed map_ipv4_to_ip and
5850         map_ip_to_ipv4.
5851
5852         * host.h: redefined structure ip_address and removed structure
5853         wget_sockaddr.
5854
5855 2003-10-26  Hrvoje Niksic  <hniksic@xemacs.org>
5856
5857         * sysdep.h: Include inttypes.h where available.
5858
5859         * host.c: Switch from u_int32_t to uint32_t.
5860
5861 2003-10-26  Hrvoje Niksic  <hniksic@xemacs.org>
5862
5863         * netrc.c (parse_netrc): Reset the QUOTE flag after the closing
5864         quote.
5865
5866 2003-10-25  Hrvoje Niksic  <hniksic@xemacs.org>
5867
5868         * url.c (is_valid_ipv6_address): Reformat to GNU coding style.
5869         Use enums for NS_IN* constants.  Use ISXDIGIT.
5870
5871         * convert.c (construct_relative): Document better how the function
5872         works.
5873
5874 2003-10-23  Hrvoje Niksic  <hniksic@xemacs.org>
5875
5876         * config.h.in: Deploy preprocessor magic to avoid Ultrix's
5877         <netdb.h> include <bitypes.h> which defines its own u_int32_t.
5878         Reported by Bernhard Simon.
5879
5880 2003-10-23  Hrvoje Niksic  <hniksic@xemacs.org>
5881
5882         * version.c: Bump version.
5883
5884 2003-10-23  Hrvoje Niksic  <hniksic@xemacs.org>
5885
5886         * url.c: Ditto.
5887
5888         * html-parse.c (advance_declaration): Don't use trailing comma in
5889         enum because older compilers don't support it.
5890
5891         * utils.c: Don't redefine HAVE_SIGSETJMP.
5892
5893 2003-10-16  Hrvoje Niksic  <hniksic@xemacs.org>
5894
5895         * convert.c (construct_relative): Don't handle absolute files
5896         specially -- for example, -P/tmp/foo shouldn't imply that
5897         converted files must refer to "/tmp/foo/..."!
5898
5899 2003-10-15  Hrvoje Niksic  <hniksic@xemacs.org>
5900
5901         * http.c: Consider status 307 a valid redirect.
5902
5903 2003-10-15  Philip Stadermann  <philip.stadermann@credativ.de>
5904
5905         * ftp.c (ftp_retrieve_glob): Correctly loop through the list whose
5906         elements might have been deleted.
5907
5908 2003-10-13  Hrvoje Niksic  <hniksic@xemacs.org>
5909
5910         * html-url.c (tag_handle_meta): Set the Refresh link to expect
5911         HTML.
5912         (append_one_url): Renamed to append_url.
5913
5914 2003-10-13  Hrvoje Niksic  <hniksic@xemacs.org>
5915
5916         * sysdep.h: Only define u_int32_t.
5917
5918 2003-10-11  Hrvoje Niksic  <hniksic@xemacs.org>
5919
5920         * utils.c (large_int_to_string): Use snprintf() to print the
5921         number.  This will work even on systems where libc doesn't
5922         understand %lld, but the compiler does, because it will use our
5923         snprintf replacement.
5924
5925         * init.c (parse_bytes_helper): New function.
5926         (cmd_bytes): Use it to parse bytes, but cast the result to long.
5927         (cmd_bytes_large): Ditto, but store the result to LARGE_INT.  Used
5928         for --quota so that --quota=10G works even on machines without
5929         long long.
5930
5931         * options.h (struct options): Declare quota as LARGE_INT.
5932
5933         * retr.c (downloaded_exceeds_quota): Removed.
5934         (downloaded_increase): Ditto.
5935         (total_downloaded_bytes): New variable, replaces opt.downloaded,
5936         which was the wrong place for it anyway.  Updated callers of
5937         downloaded_exceeds_quota and downloaded_increase to check this
5938         variable directly.
5939
5940         * sysdep.h: Get rid of VERY_LONG_TYPE.  Use LARGE_INT for the same
5941         purpose, defined as `long', `long long' or `double', depending on
5942         size of long and whether long long is available.
5943
5944 2003-10-11  Hrvoje Niksic  <hniksic@xemacs.org>
5945
5946         * sysdep.h: Also check size of short for int32_t.
5947
5948 2003-10-11  Hrvoje Niksic  <hniksic@xemacs.org>
5949
5950         * host.c (lookup_host): Use u_int32_t to store the result of
5951         inet_addr().  That removes the need for offset fiddling, caring
5952         about endian-ness, etc.
5953
5954         * sysdep.h: Define int32_t and u_int32_t if not available.
5955
5956 2003-10-11  Hrvoje Niksic  <hniksic@xemacs.org>
5957
5958         * ftp-basic.c (ftp_epsv): Use socklen_t * as the third argument to
5959         getpeername.
5960
5961         * config.h.in: Define socklen_t stub.
5962
5963         * host.c (sockaddr_len): Return socklen_t.
5964
5965         * connect.c (conaddr): Use socklen_t as the third argument to
5966         accept, getsockname, and connect.
5967
5968 2003-10-10  Hrvoje Niksic  <hniksic@xemacs.org>
5969
5970         * recur.c (retrieve_tree): Don't descend into documents that are
5971         not expected to contain HTML, regardless of their content-type.
5972
5973         * html-url.c (tag_url_attributes): Record which attributes are
5974         supposed to yield HTML links that can be followed.
5975         (tag_find_urls): Propagate that information to the caller through
5976         struct urlpos.
5977
5978 2003-10-10  Hrvoje Niksic  <hniksic@xemacs.org>
5979
5980         * hash.c (find_mapping): Return the next available mapping when
5981         the key is not found, not NULL.
5982         (hash_table_put): Use find_mapping to find the storage for the new
5983         data.
5984         (hash_table_put): Grow the table before exceeding maximum
5985         fullness, not afterwards.
5986
5987 2003-10-10  Hrvoje Niksic  <hniksic@xemacs.org>
5988
5989         * hash.c (hash_table_new): Slightly change the meaning of the
5990         first parameter.  Instead of being the minimum initial size, it is
5991         now the minimum number of items that the hash table can take
5992         without needing to resize.
5993
5994 2003-10-09  Hrvoje Niksic  <hniksic@xemacs.org>
5995
5996         * html-url.c (init_interesting): Initialize interesting_tags and
5997         interesting_attributes as hash tables.  This simplifies the code
5998         immensely because hash tables handle allocation and remove
5999         duplicates automatically.
6000         (find_tag): Removed.
6001         (collect_tags_mapper): Instead of calling find_tag, simply get the
6002         entry from interesting_tags hash table, which is both simpler and
6003         faster.
6004
6005 2003-10-09  Hrvoje Niksic  <hniksic@xemacs.org>
6006
6007         * hash.c (hash_table_get): Declare hash-table argument as const.
6008         (find_mapping): Ditto.
6009         (hash_table_get_pair): Ditto.
6010         (hash_table_contains): Ditto.
6011         (hash_table_count): Ditto.
6012
6013 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
6014
6015         * html-url.c (get_urls_html): Parse the appropriate flags to
6016         html-parse.c.
6017
6018         * html-parse.c (map_html_tags): Accept FLAGS from the caller
6019         instead of examining OPT.
6020
6021 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
6022
6023         * html-url.c (find_tag): Switch to binary search.
6024
6025 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
6026
6027         * main.c (print_help): Fix typo; stured -> stored.
6028
6029 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
6030
6031         * getopt.c: Add definitions of getopt_long and getopt_long_only.
6032
6033 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
6034
6035         * config.h.in: Renamed DEBUG to ENABLE_DEBUG.  ENABLE_DEBUG is, I
6036         think, a better name, because it implies that debugging output is
6037         merely possible, not "on by default", as might be construed from
6038         just DEBUG.
6039
6040 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
6041
6042         * ftp.c (has_insecure_name_p): Define it here.
6043
6044         * utils.c (has_wildcards_p): Define it here.
6045
6046         * sysdep.h: Declare fnmatch-related macros here, if not using
6047         system fnmatch().  Update .c files to not declare fnmatch.h
6048         directly.
6049
6050         * cmpt.c (fnmatch): Moved here.  Use it only under non-GNU libc.
6051
6052 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
6053
6054         * getopt.c: Newer version, imported from Free libit.
6055
6056 2003-10-07  Hrvoje Niksic  <hniksic@xemacs.org>
6057
6058         * cookies.c (struct cookie): Remove unused backpointer to cookie
6059         jar.
6060
6061 2003-10-07  Hrvoje Niksic  <hniksic@xemacs.org>
6062
6063         * cmpt.c (memmove): Comment out, since it's no longer used.
6064
6065         * cookies.c (cookie_jar_generate_cookie_header): Allocate room for
6066         chains in one pass.
6067         (find_chains_of_host): Assume that the caller has allocated DEST
6068         to be sufficiently large to take all the data.
6069         (eliminate_dups): Run through the array and eliminate dups on the
6070         fly instead of using memmove.
6071         (cookie_jar_process_set_cookie): Free cookie->domain before
6072         re-setting it.
6073
6074 2003-10-05  Gisle Vanem  <giva@bgnett.no>
6075
6076         * mswindows.c (set_sleep_mode): Fix type of
6077         _SetThreadExecutionState.
6078
6079 2003-10-05  Hrvoje Niksic  <hniksic@xemacs.org>
6080
6081         * utils.c (file_size): Return -1 if fopen() returns NULL.  Prior
6082         to this patch, wget --post-file=nosuchfile dumped core.
6083
6084 2003-10-04  Gisle Vanem  <giva@bgnett.no>
6085
6086         * mswindows.c (run_with_timeout): Use WaitForSingleObject to wait
6087         for thread termination.
6088
6089 2003-10-04  Hrvoje Niksic  <hniksic@xemacs.org>
6090
6091         * log.c: Use `...' in function definitions; ansi2knr will convert
6092         them to va_dcl.  This allowed removal of the ugly VA_START_1 and
6093         VA_START_2 macros.
6094
6095 2003-10-03  Gisle Vanem  <giva@bgnett.no>
6096
6097         * connect.c: And don't include them here.
6098
6099         * mswindows.h: Include winsock headers here.
6100
6101 2003-10-03  Hrvoje Niksic  <hniksic@xemacs.org>
6102
6103         * html-parse.c (convert_and_copy): Move variable declarations
6104         before statements.
6105
6106 2003-10-02  Gisle Vanem  <giva@bgnett.no>
6107
6108         * mswindows.c (run_with_timeout): For Windows: Run the 'fun' in a
6109         thread via a helper function. Continually query the thread's
6110         exit-code until finished or timed out.
6111
6112 2003-10-02  Hrvoje Niksic  <hniksic@xemacs.org>
6113
6114         * wget.h (XMALLOC_ARRAY): Removed.
6115         (ALLOCA_ARRAY): Ditto.
6116
6117         * html-parse.c: Renamed alloca_p to resized.
6118         (GROW_ARRAY): Renamed DO_REALLOC_FROM_ALLOCA to GROW_ARRAY and
6119         returned it to html-parse.c, since nothing else was using it.
6120
6121 2003-10-02  Hrvoje Niksic  <hniksic@xemacs.org>
6122
6123         * retr.c (retrieve_url): Initialize DUMMY storage for DT.  Caught
6124         by valgrind.
6125
6126 2003-10-02  Hrvoje Niksic  <hniksic@xemacs.org>
6127
6128         * html-parse.c (convert_and_copy): Handle numeric entities in
6129         hexadecimal, &#xHH.
6130         (convert_and_copy): Copy the contents directly to the pool without
6131         a stack-allocated intermediary.
6132
6133 2003-10-02  Hrvoje Niksic  <hniksic@xemacs.org>
6134
6135         * utils.c (alarm_set): New function; use either setitimer or alarm
6136         to set up the alarm.
6137         (alarm_cancel): New function; cancel the alarm set up by
6138         alarm_set.
6139         (run_with_timeout): Use them.
6140
6141 2003-10-01  Hrvoje Niksic  <hniksic@xemacs.org>
6142
6143         * url.c (url_parse): Don't leak memory when a reencoded URL turns
6144         out to be invalid.
6145
6146         * url.c (parse_errors): Mark error messages for translation.
6147         (url_error): Translate error messages returned to the caller.
6148
6149 2003-10-01  Hrvoje Niksic  <hniksic@xemacs.org>
6150
6151         * ftp.c (ftp_loop_internal): Initialize TMRATE to NULL to shut up
6152         the compiler.
6153
6154 2003-09-26  Gisle Vanem  <giva@bgnett.no>
6155
6156         * src/mswindows.c: Added ws_percenttitle() showing progress in the
6157         window titlebar. Called from retr.c. Secured ws_mypath().
6158
6159         * windows/config.h.ms: alloca() prototype not needed.  Removed
6160         "#undef ENABLE_NLS"; should be in Makefile IMHO. Moved
6161         WGET_USE_STDARG from mswindows.h to config.ms.h because of #ifdef
6162         in log.c. (MSVC's vararg.h and stdarg.h are incompatible).
6163
6164 2003-09-29  Aaron Hawley <Aaron.Hawley@uvm.edu>
6165
6166         * ftp.c (getftp): --spider option should now work with FTP
6167         downloads.
6168         (ftp_loop_internal): quiet reports and calculations of downloads
6169         when --spider option set, nor try deleting when --delete-after
6170         also set.
6171         (ftp_loop): --spider will skip HTML-ification of .listing file.
6172
6173 2003-09-26  Gisle Vanem  <giva@bgnett.no>
6174
6175         * mswindows.c (read_registry): Removed.
6176         (set_sleep_mode): New function.
6177         (windows_main_junk): Call it.
6178
6179 2003-09-26  Gisle Vanem  <giva@bgnett.no>
6180
6181         * mswindows.c (read_registry): Fix invocation of registry
6182         functions.
6183
6184         * mswindows.c (read_registry): Condition definitions of sleep and
6185         usleep with not HAVE_SLEEP and HAVE_USLEEP respectively.  Define
6186         HAVE_SLEEP and HAVE_USLEEP under __DMC__.
6187
6188 2003-09-24  Hrvoje Niksic  <hniksic@xemacs.org>
6189
6190         * url.c (url_escape_1): Revert unintentional change to lowercase
6191         xdigit escapes.
6192         (url_escape_dir): Document that this function depends on the
6193         output of url_escape_1.
6194
6195 2003-09-23  Hrvoje Niksic  <hniksic@xemacs.org>
6196
6197         * progress.c (create_image): Print the current ETA if we're done
6198         with the download.
6199         (create_image): Change '-' display char to '+' in the progress bar.
6200
6201         * Makefile.in (clean): Remove .libs.
6202
6203 2003-09-23  Hrvoje Niksic  <hniksic@xemacs.org>
6204
6205         * cookies.c (struct cookie): New flag domain_exact.
6206         (update_cookie_field): Skip leading dot in domain.
6207         (find_matching_chains): Match numeric addresses exactly; don't
6208         needlessly copy HOST to the stack.
6209         (matching_cookie): Added argument HOST.  If cookie->domain_exact
6210         is set, check that HOST is equal to cookie->domain.
6211         (cookie_jar_load): Only use TAB as delimiter.  Document the
6212         meaning of DOMAIN-FLAG.  Skip leading dot in domain.
6213         (cookie_jar_load): Don't ignore DOMAIN-FLAG -- instead, set
6214         domain_exact to true if DOMAIN-FLAG is false.
6215         (save_cookies_mapper): If domain_exact is false, prepend the
6216         domain with dot, like Mozilla does.
6217
6218 2003-09-22  Hrvoje Niksic  <hniksic@xemacs.org>
6219
6220         * progress.c (create_image): Print the initial part of the
6221         download with '-' characters, analogous to how dot progress prints
6222         the initial part with ','.
6223
6224         * hash.c (ptrhash): New function.
6225         (ptrcmp): Ditto.
6226         (hash_table_new): Default to identity hash table.
6227
6228 2003-09-22  Hrvoje Niksic  <hniksic@xemacs.org>
6229
6230         * safe-ctype.h (_sch_test): The cast of BIT to unsigned char was
6231         broken -- _sch_istable bitmasks are 16-bit, not 8-bit!  Cast BIT
6232         to unsigned short instead.
6233
6234 2003-09-22  Hrvoje Niksic  <hniksic@xemacs.org>
6235
6236         * url.c (path_simplify): Instead of calls to memmove, handle "./"
6237         and "../" by advancing pointers.
6238
6239 2003-09-22  Hrvoje Niksic  <hniksic@xemacs.org>
6240
6241         * retr.c (getproxy): Moved from url.c.
6242
6243         * convert.c: Split off link conversion from url.c into separate
6244         file.  Also included the book-keeping stuff from recur.c.
6245
6246 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
6247
6248         * init.c: Improved documentation of functions.
6249         (cmd_boolean): Attempt to make code that tries to avoid calling
6250         strcmp for "speed" a bit more readable.
6251
6252         * init.c (simple_atof): Report error on encountering non-digit,
6253         non-"." character.
6254         (simple_atoi): Replacement for myatoi(), calling interface
6255         compatible with simple_atof.  Updated myatoi's callers.
6256
6257 2003-09-21  Bertrand Demiddelaer  <bert@b3rt.org>
6258
6259         * url.c (path_simplify): Would read two bytes past the end of the
6260         string in the "./" case.
6261
6262 2003-09-21  Matthew J. Mellon  <mellon@tymenet.com>
6263
6264         * http.c (gethttp): Recognize content-type "application/xhtml+xml"
6265         as what Wget considers "text/html".
6266
6267 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
6268
6269         * connect.c (connect_with_timeout): Made timeout type double.
6270
6271         * options.h (struct options): New members read_timeout,
6272         dns_timeout, and connect_timeout.
6273         Use them.
6274
6275 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
6276
6277         * init.c (simple_atof): New function.
6278         (cmd_time): Use it.
6279         (cmd_bytes): Accept things like "1.5k" and such.  Use simple_atof
6280         to parse decimals.
6281
6282         * retr.c (limit_bandwidth): Adjust each sleep by the error of the
6283         previous one.
6284
6285 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
6286
6287         * main.c (main): Use setoptval() for setting the options.  Use
6288         run_command for `-e'.
6289
6290         * init.c (parse_line): Rewritten to return COMIND right away.
6291         Changed linkage to static.
6292         (run_wgetrc): Use the available comind when calling setval, so it
6293         doesn't have to be computed twice.
6294         (setval_internal): New function, runs the command's action without
6295         any error checking.
6296         (setoptval): New function, does what setval used to do, but exits
6297         in case of error.
6298         (run_command): New function.
6299
6300 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
6301
6302         * connect.c (select_fd): Change MAXTIME's type to double.  Handle
6303         its decimal part.
6304
6305         * retr.c (sleep_between_retrievals): In the random-wait case, use
6306         random_float() to wait between 0 and 2*opt.wait seconds.
6307
6308         * utils.c (run_with_timeout): Accept `double' timeouts.  Correctly
6309         handle timeout values in (0, 1) range.
6310         (random_float): New function.
6311
6312         * options.h (struct options): Change the types of wait, waitretry,
6313         and timeout to double.
6314
6315         * init.c (cmd_time): Accept floating point time.
6316
6317 2003-09-20  Hrvoje Niksic  <hniksic@xemacs.org>
6318
6319         * retr.c (get_contents): Cosmetic fixes.
6320
6321 2003-09-20  Hrvoje Niksic  <hniksic@xemacs.org>
6322
6323         * url.c (uri_merge): Get rid of uri_merge_1.
6324         (uri_merge): Merge "foo//", "bar" as "foo//bar", not "foo///bar",
6325         i.e. don't add an extra slash merely because BASE ends with two
6326         slashes.
6327         (parse_credentials): Renamed from parse_uname.  Rewrittern in
6328         standard [beg, end) calling style.
6329         (url_skip_credentials): Renamed from url_skip_uname.  Made static.
6330         (url_skip_credentials): Include # and ; as terminators.  Old code
6331         would mistakenly consider "http://foo.com#hniksic@iskon.hr" to
6332         contain a username.
6333         (url_skip_scheme): Removed because it was unused.
6334         (url_has_scheme): Require "scheme" to be at least one char long.
6335
6336 2003-09-19  Hrvoje Niksic  <hniksic@xemacs.org>
6337
6338         * url.c (url_file_name): Expect NULL dir_prefix.
6339
6340         * init.c (cmd_file): Use a macro to prevent multiple #ifdef
6341         WINDOWS.
6342         (defaults): Set dir_prefix to NULL by default.
6343
6344 2003-09-19  Hrvoje Niksic  <hniksic@xemacs.org>
6345
6346         * safe-ctype.h (_sch_test): Cast BIT to unsigned char, like latest
6347         gcc does.
6348
6349 2003-09-19  Hrvoje Niksic  <hniksic@xemacs.org>
6350
6351         * wget.h (BOUNDED_TO_ALLOCA): Evaluate PLACE only once.
6352         (ARRAY_SIZE): Renamed to countof.  All callers updated.
6353
6354 2003-09-19  Hrvoje Niksic  <hniksic@xemacs.org>
6355
6356         * main.c (main): New option --strict-comments.
6357
6358         * html-parse.c (find_comment_end): New function: simple BM search
6359         for "-->".
6360         (map_html_tags): Use it if looking at a comment and not in strict
6361         comments mode.
6362
6363 2003-09-17  Aurelien Marchand  <artaxerxes@users.sf.net>
6364
6365         * ftp.h: Added OS400 system in enum
6366         * ftp-basic.c: recognize OS400 systems
6367         * ftp.c: don't prepend the CWD if talking to OS400, since it
6368         breaks the change in library
6369
6370 2003-09-18  Hrvoje Niksic  <hniksic@xemacs.org>
6371
6372         * retr.c (get_contents): Pass the correct argument to ssl_iread.
6373
6374 2003-09-18  Hrvoje Niksic  <hniksic@xemacs.org>
6375
6376         * safe-ctype.h: Don't #define ctype.h macros to errors because
6377         that loses when someone #include's ctype.h after safe-ctype.h.
6378
6379 2003-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
6380
6381         * url.c: Undef U, W, C after use.
6382
6383 2003-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
6384
6385         * init.c (cmd_spec_restrict_file_names): Allow the OS setting to
6386         be augmented by ",nocontrol" which means don't escape the control
6387         characters, but otherwise keep OS settings.
6388
6389         * url.c (file_unsafe_char): Deleted.
6390         (append_uri_pathel): Query filechr_table directly.
6391         (filechr_table): Separated Unix, Windows, and control-unsafe
6392         characters.
6393
6394 2003-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
6395
6396         * url.c (url_escape_1): New function.
6397         (url_escape): Use it.
6398         (sync_path): Handle pathological cases where u->file and u->dir
6399         contain really strange characters.
6400         (ENCODE): Deleted.
6401         (REENCODE): Deleted.
6402
6403 2003-09-16  Hrvoje Niksic  <hniksic@xemacs.org>
6404
6405         * url.c (url_file_name): Don't reallocate FNAME if the file
6406         doesn't exist, as is usually the case.
6407
6408         * utils.c (unique_name): New flag allow_passthrough.
6409
6410 2003-09-16  Hrvoje Niksic  <hniksic@xemacs.org>
6411
6412         * utils.c (wtimer_sys_diff): Convert the time difference to signed
6413         __int64, then to double.  This works around MS VC++ 6 which can't
6414         convert unsigned __int64 to double directly.
6415
6416 2003-09-16  Hrvoje Niksic  <hniksic@xemacs.org>
6417
6418         * Makefile.in (clean): Also remove the core.<number> files
6419         produced by recent Linux systems.
6420
6421 2003-09-16  Hrvoje Niksic  <hniksic@xemacs.org>
6422
6423         * http.c (post_file): Don't pad the file if it's not large
6424         enough.  Bail out instead.
6425
6426 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
6427
6428         * retr.c (get_contents): Reduce the buffer size to the amount of
6429         data that may pass through for one second.  This prevents long
6430         sleeps when limiting bandwidth.
6431
6432         * connect.c (connect_to_one): Reduce the socket's RCVBUF when
6433         bandwidth limitation to small values is requested.
6434
6435 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
6436
6437         * progress.c (update_speed_ring): Moved the speed ring update to a
6438         separate function and documented it better.
6439
6440         * progress.c: Use `double' for most timers to support granularity
6441         smaller than 1ms.
6442
6443 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
6444
6445         * wget.h (XDIGIT_TO_XCHAR): Implement as index into a literal
6446         string.
6447         (XDIGIT_TO_xchar): Ditto.
6448
6449 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
6450
6451         * utils.c: Change the type of timer-related functions from long to
6452         double, for better precision.  On machines supporting gettimeofday
6453         the timers now work with granularity of less than one millisecond.
6454
6455 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
6456
6457         * cookies.c (parse_set_cookies): Fixed the parser to handle more
6458         edge conditions.
6459         (test_cookies): New function, contains a test suite for
6460         parse_set_cookies.
6461
6462 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
6463
6464         * url.c (strpbrk_or_eos): Implement as a macro under Gcc.
6465
6466 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
6467
6468         * cookies.c (parse_set_cookies): Allow trailing space in
6469         set-cookies header.  Also, allow any amount of whitespace, not
6470         only one character.  Allow empty set-cookies header without
6471         spewing an error.
6472
6473 2003-09-14  Hrvoje Niksic  <hniksic@xemacs.org>
6474
6475         * url.c (append_uri_pathel): Use opt.restrict_file_names when
6476         calling file_unsafe_char.
6477
6478         * init.c: New command restrict_file_names.
6479
6480         * main.c (main): New option --restrict-file-names[=windows,unix].
6481
6482         * url.c (url_file_name): Renamed from url_filename.
6483         (url_file_name): Add directory and hostdir prefix here, not in
6484         mkstruct.
6485         (append_dir_structure): New function, does part of the work that
6486         used to be in mkstruct.  Iterates over path elements in u->path,
6487         calling append_uri_pathel on each one to append it to the file
6488         name.
6489         (append_uri_pathel): URL-unescape a path element and reencode it
6490         with a different set of rules, more appropriate for handling of
6491         files.
6492         (file_unsafe_char): New function, uses a lookup table to decide
6493         whether a character should be escaped for use in file name.
6494         (append_string): New utility function.
6495         (append_char): Ditto.
6496         (file_unsafe_char): New argument restrict_for_windows, decide
6497         whether Windows file names should be escaped in run-time.
6498
6499         * connect.c: Include <stdlib.h> to get prototype for abort().
6500
6501 2003-09-14  Hrvoje Niksic  <hniksic@xemacs.org>
6502
6503         * utils.c (wtimer_sys_set): Extracted the code that sets the
6504         current time here.
6505         (wtimer_reset): Call it.
6506         (wtimer_sys_diff): Extracted the code that calculates the
6507         difference between two system times here.
6508         (wtimer_elapsed): Call it.
6509         (wtimer_elapsed): Don't return a value smaller than the previous
6510         one, which could previously happen when system time is set back.
6511         Instead, reset start time to current time and note the elapsed
6512         offset for future calculations.  The returned times are now
6513         guaranteed to be monotonically nondecreasing.
6514
6515 2003-09-10  Hrvoje Niksic  <hniksic@xemacs.org>
6516
6517         * host.c (lookup_host): Print the result of the DNS lookup.
6518
6519 2003-09-10  Hrvoje Niksic  <hniksic@xemacs.org>
6520
6521         * init.c (cmd_boolean): Accept yes/no along with on/off.
6522         (cmd_lockable_boolean): Ditto.
6523
6524 2003-09-10  Hrvoje Niksic  <hniksic@xemacs.org>
6525
6526         * init.c: New command dns_cache.
6527
6528         * main.c (main): New option --dns-cache[=off].
6529
6530 2003-09-09  Hrvoje Niksic  <hniksic@xemacs.org>
6531
6532         * config.h.in: Initialize HAVE_GETADDRINFO and ENABLE_IPV6.
6533
6534         * all: Use #ifdef ENABLE_IPV6 instead of the older INET6.  Use
6535         HAVE_GETADDRINFO for getaddrinfo-related stuff.
6536
6537 2003-09-09  Hrvoje Niksic  <hniksic@xemacs.org>
6538
6539         * url.c (url_parse): Return an error if the URL contains a [...]
6540         IPv6 numeric address and we don't support IPv6.
6541
6542 2003-09-05  Hrvoje Niksic  <hniksic@xemacs.org>
6543
6544         * url.c (is_valid_ipv6_address): Modified to not require
6545         zero-terminated strings.
6546         (is_valid_ipv4_address): Ditto.
6547
6548 2003-09-05  Mauro Tortonesi <mauro@deepspace6.net>
6549
6550         src/url.c: added RFC 2732 compliance for URL parsing. The
6551         functions is_*_address valid are a modified version of
6552         glibc 2.3.2 inet_pton's code.
6553
6554 2003-09-03  Ahmon Dancy  <dancy@dancysoft.com>
6555
6556         * main.c init.c options.h: Added --retry-connrefused option so
6557         that Connection Refused failures are treated as non-fatal (when
6558         trying to retrieve from busy servers).
6559
6560         * wget.h: New CONNECT_ERROR macro for encapsulating this
6561         modification.
6562
6563         * ftp.c http.c : Use CONNECT_ERROR macro in places where
6564         ECONNREFUSED was checked.
6565
6566 2003-01-11  Ian Abbott  <abbotti@mev.co.uk>
6567
6568         * ftp.c (ftp_retrieve_glob): Reject insecure filenames as determined
6569         by calling new function has_insecure_name_p.  This is based on a
6570         patch by Red Hat.
6571
6572         * fnmatch.c (has_insecure_name_p): New function: returns non-zero
6573         if filename starts with `/' or contains `../' and is therefore
6574         considered insecure.
6575
6576         * fnmatch.h: Declare has_insecure_name_p().
6577
6578 2002-08-03  Hrvoje Niksic  <hniksic@xemacs.org>
6579
6580         * init.c (cmd_file): Allocate RESULT correctly.
6581
6582 2002-07-24  Hrvoje Niksic  <hniksic@xemacs.org>
6583
6584         * recur.c (retrieve_tree): Check whether downloaded_html_set is
6585         non-NULL before using it.
6586
6587 2002-05-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6588
6589         * html-parse.c (NAME_CHAR_P): Allow almost any character here.
6590
6591 2002-05-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6592
6593         * progress.c (bar_set_params): Fall back to dot progress if the
6594         terminal type is "emacs".
6595
6596 2002-05-20  Hrvoje Niksic  <hniksic@arsdigita.com>
6597
6598         * log.c: Don't #undef WGET_USE_STDARG.
6599
6600 2002-05-16  Hrvoje Niksic  <hniksic@arsdigita.com>
6601
6602         * hash.c (prime_size): Store the offset of the prime number in the
6603         prime table.  When searching, start with the given offset.
6604         (hash_table_new): Pass the pointer to ht->prime_offset to
6605         prime_size.
6606         (grow_hash_table): Ditto.
6607         (prime_size): Make 13 the first prime to make empty hash tables
6608         slightly smaller.
6609
6610 2002-05-16  Ian Abbott  <abbotti@mev.co.uk>
6611
6612         * recur.c (download_child_p): Minor optimization to avoid an
6613         unnecessary additional call to schemes_are_similar_p function.
6614
6615 2002-05-16  Ian Abbott  <abbotti@mev.co.uk>
6616
6617         * url.c (schemes_are_similar_p): New function to test enumerated
6618         scheme codes for similarity.
6619
6620         * url.h: Declare it.
6621
6622         * recur.c (download_child_p): Use it to compare schemes.  This
6623         also fixes a bug that allows hosts to be spanned (without the
6624         -H option) when the parent scheme is https and the child's is
6625         http or vice versa.
6626
6627 2002-05-14  Bill Richardson  <bill@riverstonenet.com>
6628
6629         * ftp.c (getftp): Don't ftruncate stdout.
6630
6631         * http.c (gethttp): Don't ftruncate stdout.
6632
6633 2002-05-09  Ian Abbott  <abbotti@mev.co.uk>
6634
6635         * cmpt.c (strptime_internal): Synched with glibc-2.1.3.
6636         (get_number): Ditto.
6637         (get_alt_number): Ditto.
6638         (__isleap): New function-like macro used by strptime.
6639         (day_of_the_week): New function used by strptime.
6640         (day_of_the_year): Ditto.
6641         (__mon_yday): Now shared by mktime and strptime implementations.
6642
6643 2002-05-08  Hrvoje Niksic  <hniksic@arsdigita.com>
6644
6645         * cookies.c (check_domain_match): Use match_tail in case
6646         insensitive mode.
6647
6648         * utils.c (match_tail): Allow the caller to specify case
6649         insensitive mode.
6650
6651         * cookies.c (store_cookie): When expiry_time is 0, print it as
6652         undefined, not indefinite.
6653
6654 2002-05-07  Ian Abbott  <abbotti@mev.co.uk>
6655
6656         * cookies.c (cookie_jar_process_set_cookie): Do not store
6657         discarded cookie.
6658
6659 2002-04-21  Hrvoje Niksic  <hniksic@arsdigita.com>
6660
6661         * cookies.c (check_domain_match): Allow cookies to be set for
6662         subdomains of unknown top-level domains under some circumstances.
6663
6664 2002-04-21  Thomas Lussnig  <thomas.lussnig@bewegungsmelder.de>
6665
6666         * gen_ssl.c:
6667         - allow checking of server cert
6668         - allow defining client cert type
6669         - allow limit of ssl protocol
6670         - check more return values
6671         - added debug message on break
6672
6673 2002-04-21  Hrvoje Niksic  <hniksic@arsdigita.com>
6674
6675         * recur.c (download_child_p): Revert order of items in check
6676         number 6 for clarity.
6677
6678 2002-04-20  Hrvoje Niksic  <hniksic@arsdigita.com>
6679
6680         * init.c: Ditto.
6681
6682         * main.c: Ditto.
6683
6684         * http.c: Use the new interface.
6685
6686         * cookies.c: Provide an OO-style "cookie jar" interface to enable
6687         separate cookie jars.
6688
6689         * http.c (http_atotm): Declare argument as const.
6690
6691 2002-04-20  Hrvoje Niksic  <hniksic@arsdigita.com>
6692
6693         * cookies.c (cookie_new): Default to PORT_ANY.
6694         (find_cookie_chain_exact): Only search by DOMAIN.
6695         (find_matching_cookie): Also check that PORT matches.
6696         (store_cookie): Only match the domain.
6697         (set_cookie_header_cb): When a cookie "fakes" a domain, assume it
6698         is valid for that host rather than discarding it completely.
6699         (find_matching_chains): Don't search by PORT.
6700         (matching_cookie): Also match PORT.
6701         (load_cookies): Set the port if specified, otherwise leave it as
6702         ANY.
6703         (save_cookies_mapper): Save the port if specified, otherwise leave
6704         it empty.
6705
6706 2002-04-19  Thomas Lussnig  <thomas.lussnig@bewegungsmelder.de>
6707
6708         * init.c: The option `egdfile' was not in sort order.
6709
6710 2002-04-16  Hrvoje Niksic  <hniksic@arsdigita.com>
6711
6712         * ftp.c (getftp): Treat directories that begin with <letter>: as
6713         absolute.
6714         (getftp): Strip trailing slashes from con->id before merging it
6715         with TARGET.
6716
6717 2002-04-16  Hrvoje Niksic  <hniksic@arsdigita.com>
6718
6719         * http.c (gethttp): If Content-Type is not given, assume
6720         text/html.
6721
6722 2002-04-15  Hrvoje Niksic  <hniksic@arsdigita.com>
6723
6724         * recur.c (download_child_p): Don't ignore rejection of HTML
6725         documents that are themselves leaves of recursion.
6726
6727 2002-04-15  Ian Abbott  <abbotti@mev.co.uk>
6728
6729         Makefile.in: Updated several dependencies for object files to take
6730         account of nested include files.
6731
6732 2002-04-15  Ian Abbott  <abbotti@mev.co.uk>
6733
6734         Makefile.in: The target `connect$o' (connect.o) now depends on
6735         `utils.h'
6736
6737 2002-04-15  Ian Abbott  <abbotti@mev.co.uk>
6738
6739         * host.c (SET_H_ERRNO): New function-like macro to set `h_errno'.
6740         (gethostbyname_with_timeout): Use it.
6741
6742         * utils.c: Don't define `SETJMP()', `run_with_timeout_env' or
6743         `abort_run_with_timeout()' when `USE_SIGNAL_TIMEOUT' is undefined.
6744
6745 2002-04-15  Hrvoje Niksic  <hniksic@arsdigita.com>
6746
6747         * host.c (getaddrinfo_with_timeout): New function.
6748         (gethostbyname_with_timeout): Ditto.
6749         (lookup_host): Use them.
6750
6751 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6752
6753         * utils.c (number_to_string): Handle the case when n < -INT_MAX.
6754
6755 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6756
6757         * init.c (comind): Use a marginally faster implementation of
6758         binary search.  To quote Martin Buchholz, "a nanosecond saved is a
6759         nanosecond earned."
6760
6761 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6762
6763         * main.c (print_help): Document `--post-data' and `--post-file'.
6764
6765 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6766
6767         * http.c (gethttp): Ditto.
6768
6769         * retr.c (retrieve_url): Initialize variables to appease the
6770         compiler.
6771
6772         * gen_sslfunc.c (ssl_iread): Don't handle EINTR when calling
6773         select_fd.
6774         (ssl_iwrite): Ditto.
6775
6776         * connect.c (select_fd): Rewrite to handle EINTR.  Set errno to
6777         ETIMEDOUT in case of timeout.
6778         (iread): No need to handle EINTR when calling select_fd.
6779         (iwrite): Ditto.
6780
6781 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6782
6783         * retr.c (retrieve_url): Make sure that POST is not honored for
6784         redirections.
6785
6786         * http.c (gethttp): Send the POST data when requested.
6787         (post_file): New function.
6788         (gethttp): Use it.
6789
6790         * main.c (main): Ditto.
6791
6792         * init.c: Add new options.
6793
6794         * options.h (struct options): New options post_data and
6795         post_file_name.
6796
6797 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6798
6799         * connect.c (connect_with_timeout): Firing SIGALRM can result in
6800         connect() exiting with EINTR.  Treat EINTR the same as ETIMEDOUT.
6801
6802 2002-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6803
6804         * connect.c (connect_with_timeout): Use it.
6805
6806         * utils.c (run_with_timeout): New function.
6807
6808 2002-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6809
6810         * url.c (getproxy): Accept a struct url argument.  This obviates
6811         the need for USE_PROXY_P.
6812
6813         * retr.c (retrieve_url): Allow proxy to be a non-FTP URL.
6814
6815         * ftp.c (getftp): Recognize FWTK-style proxy.
6816
6817 2002-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
6818
6819         * config.h.in: Only define _VA_LIST when compiled with gcc.
6820
6821 2002-04012  Ian Abbott  <abbotti@mev.co.uk>
6822
6823         * http.c (http_loop): Compensate for MS Windows two-second
6824         granularity of file modification time when comparing timestamps.
6825
6826         * ftp.c (ftp_retrieve_list): Ditto.
6827
6828 2002-04-12  Ian Abbott  <abbotti@mev.co.uk>
6829
6830         * utils.c (has_html_suffix_p): New function to test filename for
6831         common html extensions.
6832
6833         * utils.h: Declare it.
6834
6835         * http.c (http_loop): Use it instead of previous test.
6836
6837         * retr.c (retrieve_url): Ditto.
6838
6839         * recur.c (download_child_p): Ditto.
6840
6841 2002-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
6842
6843         * config.h.in: Define _VA_LIST on Solaris to prevent stdio.h from
6844         declaring va_list.
6845         From Kevin Rodgers <kevinr@ihs.com>.
6846
6847 2002-04-12  Ian Abbott  <abbotti@mev.co.uk>
6848
6849         * Makefile.in: Specify libtool mode explicitly when linking.
6850
6851 2002-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
6852
6853         * connect.c (connect_with_timeout): New function.
6854         (connect_to_one): Use it.
6855
6856         * config.h.in: Add stubs for HAVE_SIGSETJMP, HAVE_SIGBLOCK, and
6857         HAVE_SETJMP_H.
6858
6859 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
6860
6861         * log.c: Set WGET_USE_STDARG if __STDC__ is defined and stdarg.h
6862         is present.
6863
6864 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
6865
6866         * progress.c (bar_create): If INITIAL is larger than TOTAL, fix
6867         TOTAL.
6868         (bar_finish): Likewise.
6869
6870 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
6871
6872         * html-url.c (tag_handle_form): New function.  Pick up form
6873         actions and mark them for conversion only.
6874
6875 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
6876
6877         * progress.c (struct progress_implementation): Use PARAMS when
6878         declaring the parameters of *create, *update, *finish, and
6879         *set_params.
6880
6881         * netrc.c: Ditto.
6882
6883         * http.c: Reformat some function definitions so that ansi2knr can
6884         read them.
6885
6886         * hash.c (struct hash_table): Use the PARAMS macro around
6887         parameters in the declaration of hash_function and test_function.
6888         (prime_size): Spell 2580823717UL and 3355070839UL as (unsigned
6889         long)0x99d43ea5 and (unsigned long)0xc7fa5177 respectively, so
6890         that pre-ANSI compilers can read them.
6891         (find_mapping): Use PARAMS when declaring EQUALS.
6892         (hash_table_put): Ditto.
6893
6894         * ftp.h: Wrap the parameters of ftp_index declaration in PARAMS.
6895
6896         * cookies.c (cookie_new): Use (unsigned long)0 instead of 0UL,
6897         which was unsupported by pre-ANSI compilers.
6898
6899         From Nelson H. F. Beebe <beebe@math.utah.edu>, for the most part.
6900
6901 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
6902
6903         * url.c (url_filename): Use compose_file_name regardless of
6904         whether opt.dirstruct is set.
6905         (mkstruct): Don't handle the query and the reencoding of DIR; that
6906         is done in compose_file_name.
6907
6908 2002-04-10  Hrvoje Niksic  <hniksic@arsdigita.com>
6909
6910         * wget.h: Ditto for extern char *exec_name.
6911
6912         * options.h: Don't guard against OPTIONS_DEFINED_HERE -- it is
6913         perfectly legal to follow an `extern' with a non-`extern' ones,
6914         provided the types match.
6915
6916         * main.c: Don't define OPTIONS_DEFINED_HERE.
6917
6918 2002-04-10  Hrvoje Niksic  <hniksic@arsdigita.com>
6919
6920         * progress.c (create_image): Revert to calculating ETA based on
6921         average download speed.
6922         (create_image): Don't print ETA until the download has been active
6923         for at least 3 seconds.
6924         (create_image): When ETA is not available, don't print anything.
6925         The previous version would print --:--.
6926
6927 2002-04-10  Hrvoje Niksic  <hniksic@arsdigita.com>
6928
6929         * progress.c (bar_update): Keep updating a subinterval until it
6930         reaches or exceeds a watermark.  That way the measurement will be
6931         guaranteed to span a configurable minimum of time.  The current
6932         default is 3s in 30 100ms intervals.
6933
6934 2002-04-09  Hrvoje Niksic  <hniksic@arsdigita.com>
6935
6936         * progress.c (bar_update): Maintain an array of the time it took
6937         to perform previous 30 network reads.
6938         (create_image): Calculate the download speed and ETA based on the
6939         last 30 reads, not the entire download.
6940         (create_image): Make sure that the ETA is not changed more than
6941         once per second.
6942
6943 2002-04-09  Ian Abbott  <abbotti@mev.co.uk>
6944
6945         * mswindows.c (borland_utime): New function conditionally defined
6946         when `HACK_BCC_UTIME_BUG' is defined.  A reimplementation of
6947         `utime()' as Borland's `utime()' function is broken on Windows 9x
6948         systems.  (Original patch by Chin-yuan Kuo <sr1111111@yahoo.com.tw>.)
6949
6950 2002-04-08  Hrvoje Niksic  <hniksic@arsdigita.com>
6951
6952         * ftp.c (ftp_loop): Propagate the result of ftp_retrieve_glob.
6953
6954 2002-03-26  Ian Abbott  <abbotti@mev.co.uk>
6955
6956         * Makefile.in: Updated several dependencies for object files.
6957
6958 2002-03-20  Ian Abbott  <abbotti@mev.co.uk>
6959
6960         * mswindows.c: Include "utils.h".
6961
6962 2002-03-18  Ian Abbott  <abbotti@mev.co.uk>
6963
6964         * host.h: Don't include netdb.h on windows.
6965
6966 2002-02-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6967
6968         * recur.c (retrieve_tree): Handle the case when start_url doesn't
6969         parse.
6970
6971 2002-02-19  Andreas Damm  <andreas-sourceforge@radab.org>
6972
6973         * wget.h (DO_REALLOC_FROM_ALLOCA): Multiply with sizeof(type) when
6974         calling xmalloc and memcpy.
6975
6976 2002-02-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6977
6978         * host.h: Include Unix-specific includes #ifndef WINDOWS.
6979         Patch originally provided by Christian Lackas.
6980
6981 2002-02-11  Christian Lackas  <delta@lackas.net>
6982
6983         * recur.c: recurive downloading for https fixed.
6984
6985 2002-02-19  Alan Eldridge  <alane@geeksrus.net>
6986
6987         * host.h: Also include <netinet/in.h> and <sys/socket.h>.
6988
6989         * ftp-basic.c: Also include <netinet/in.h>.
6990
6991 2002-02-05  Ian Abbott  <abbotti@mev.co.uk>
6992
6993         * http.c (gethttp): when -c used, mark already fully retrieved
6994         file as successfully retrieved.
6995
6996 2002-02-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6997
6998         * url.c (url_parse): Don't treat '?' as query string separator
6999         when parsing FTP URLs.
7000
7001 2002-02-01  Hrvoje Niksic  <hniksic@arsdigita.com>
7002
7003         * html-url.c (tag_handle_meta): Don't crash on <meta
7004         http-equiv=refresh> where content is missing.
7005
7006 2002-01-31  Herold Heiko  <Heiko.Herold@previnet.it>
7007
7008         * ftp-basic.c, host.c: don't include sys/socket.h, arpa/inet.h,
7009         netdb.h on windows.
7010
7011 2002-01-30  Hrvoje Niksic  <hniksic@arsdigita.com>
7012
7013         * retr.c (retrieve_url): Remove redirection cycle detection.  This
7014         is because some sites legitimately redirect the user back to the
7015         same location, e.g. after an authorization check performed by
7016         another page.  MAX_REDIRECTIONS is still used to prevent infinite
7017         redirection loops.
7018
7019 2002-01-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7020
7021         * http.c (gethttp): Wrap host name in square brackets if it
7022         contains a colon.
7023
7024 2002-01-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7025
7026         * url.c (url_parse): Allow all hex digits, not only decimal ones,
7027         to form an IP address.
7028
7029 2002-01-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7030
7031         * url.c (urlchr_table): Make square braces reserved, so we can
7032         parse http://[::1]/.
7033         (url_parse): Handle host in braces.
7034         (url_string): If url->host contains colons, wrap it in braces.
7035
7036 2002-01-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7037
7038         * connect.c (resolve_bind_address): New function.
7039         (connect_to_one): Use it.
7040         (bindport): Ditto.
7041
7042         * init.c: Don't resolve bind-address here.
7043
7044         * host.c (wget_sockaddr_set_address): Would bug out with ADDR == NULL.
7045
7046 2002-01-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7047
7048         * host.c (lookup_host): Use sizeof(ip4_address) to calculate the
7049         offset.
7050         (address_list_new): Use map_ipv4_to_ip.
7051         (wget_sockaddr_set_address): Convert ADDR to IPv4 before using it
7052         in IPv4 context.
7053
7054 2002-01-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7055
7056         * source: Integrated IPv6 support.
7057         Written by Thomas Lussnig <thomas.lussnig@bewegungsmelder.de>.
7058
7059 2002-01-15  Ian Abbott  <abbotti@mev.co.uk>
7060
7061         * init.c (cmd_file): Change `\' to `/' for Windows (yes, really!)
7062         (cmd_directory): New function. Like cmd_file(), but strips
7063         trailing directory separators.
7064         (commands): Change action for "dirprefix" from `cmd_file' to
7065         `cmd_directory'.
7066
7067         * utils.c (make_directory): Allow intermediate `mkdir' calls to
7068         fail, as not all path components that do not exist should be
7069         directory components, especially under Windows.
7070
7071 2002-01-17  Hrvoje Niksic  <hniksic@arsdigita.com>
7072
7073         * netrc.c (parse_netrc): Skip leading whitespace before testing
7074         whether the line is empty.  Empty lines still contain the line
7075         terminator.
7076
7077 2002-01-15  Hrvoje Niksic  <hniksic@arsdigita.com>
7078
7079         * gen_sslfunc.c (ssl_iread): Call select on the file descriptor
7080         only if no data is pending in SSL buffers.
7081         From tony@bluetail.com.
7082
7083 2002-01-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7084
7085         * headers.c (header_get): Strip trailing whitespace from the
7086         header.
7087
7088 2002-01-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7089
7090         * url.c (parse_uname): URL-decode *USER and *PASSWD.
7091
7092 2002-01-07  Ian Abbott <abbotti@mev.co.uk>
7093
7094         * url.c (uri_merge_1): Deal with "net path" relative URL (one that
7095         starts with "//").
7096
7097 2002-01-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7098
7099         * http.c (gethttp): Invalidate SOCK if get_contents encountered an
7100         error.
7101
7102 2001-12-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7103
7104         * version.c: Wget 1.8.1 is released.
7105
7106 2001-12-19  Hrvoje Niksic  <hniksic@arsdigita.com>
7107
7108         * version.c: Wget 1.8.1-pre3 is released.
7109
7110 2001-12-19  Hrvoje Niksic  <hniksic@arsdigita.com>
7111
7112         * recur.c (retrieve_tree): Enqueue the canonical representation of
7113         start_url, so that the test against dl_url_file_map works.
7114
7115 2001-12-19  Hrvoje Niksic  <hniksic@arsdigita.com>
7116
7117         * log.c (logputs): Check for requested verbosity before printing
7118         anything.
7119
7120 2001-12-19  Hrvoje Niksic  <hniksic@arsdigita.com>
7121
7122         * html-url.c (tag_handle_link): Treat the "shortcut icon" link as
7123         inline.
7124
7125 2001-12-18  Hrvoje Niksic  <hniksic@arsdigita.com>
7126
7127         * recur.c (retrieve_tree): Make a copy of file obtained from
7128         dl_url_file_map because the code calls xfree(file) later.
7129
7130 2001-12-18  Hrvoje Niksic  <hniksic@arsdigita.com>
7131
7132         * recur.c (register_html): Maintain a hash table of HTML files
7133         along with the list.  Disallow duplicates.
7134         (retrieve_tree): Use downloaded_html_set to check whether the file
7135         found in dl_url_file_map is an HTML file, and descend into it if
7136         so.
7137         (convert_all_links): Don't guard against duplicates in
7138         downloaded_html_list, since they are no longer possible.
7139
7140 2001-12-18  Ian Abbott  <abbotti@mev.co.uk>
7141
7142         * recur.c (retrieve_tree): Pass on referring URL when retrieving
7143         recursed URL.
7144
7145 2001-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
7146
7147         * version.c: Wget 1.8.1-pre2 is released.
7148
7149 2001-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
7150
7151         * retr.c (sleep_between_retrievals): Simplify indentation.
7152
7153 2001-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
7154
7155         * gen_sslfunc.c (ssl_init_prng): Use random_number to get a byte
7156         of "randomness" at a time.
7157         (ssl_init_prng): Don't seed the PRNG; random_number will do that.
7158
7159         * retr.c (sleep_between_retrievals): Use it.  Make sure that the
7160         random amount averages in opt.wait.
7161         (sleep_between_retrievals): Don't seed the PRNG; random_number
7162         will do that.
7163
7164         * utils.c (random_number): New function.
7165
7166 2001-12-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7167
7168         * url.c (path_simplify): Move here from utils.c, and make static.
7169
7170 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
7171
7172         * init.c (wgetrc_file_name): Print correct message when loading
7173         getenv("WGETRC") fails.
7174
7175 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
7176
7177         * recur.c (register_download): Don't abort when one URL references
7178         two different files.
7179
7180 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
7181
7182         * http.c (gethttp): Check for conn->scheme, not u->scheme, before
7183         calling ssl_iwrite.
7184
7185 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
7186
7187         * version.c: Wget 1.8.1-pre1 is released.
7188
7189 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
7190
7191         * res.c (matches): Fix broken URL in the docstring.
7192
7193 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
7194
7195         * html-url.c (tag_url_attributes): Mark <embed href=...> as
7196         external.
7197
7198 2001-12-12  Hrvoje Niksic  <hniksic@arsdigita.com>
7199
7200         * url.c (get_urls_file): Cosmetic changes.
7201
7202 2001-12-12  Hrvoje Niksic  <hniksic@arsdigita.com>
7203
7204         * html-url.c (append_one_url): Resurrect warning when unable to
7205         resolve a relative link.
7206
7207 2001-12-12  Hrvoje Niksic  <hniksic@arsdigita.com>
7208
7209         * html-url.c (collect_tags_mapper): Break into several functions.
7210         (tag_url_attributes): Collect <embed href=...>.
7211
7212 2001-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
7213
7214         * host.c: New type ipv4_address.  Use it consistently instead of
7215         `unsigned char[4]' and `unsigned char *'.
7216         (pretty_print_address): Accept a `const void *', to require even
7217         less casting.
7218
7219 2001-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
7220
7221         * ftp-ls.c (ftp_parse_vms_ls): Fix obvious memory leaks.
7222
7223 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
7224
7225         * main.c (main): Initialize progress after fork_to_background, so
7226         that it knows when to use dots.
7227
7228         * mswindows.c (ws_hangup): Call log_request_redirect_output.
7229
7230         * utils.c (fork_to_background): Print the PID of the child
7231         process.
7232
7233         * log.c (log_request_redirect_output): Set a flag that output
7234         redirection has been requested.  Doing anything else in a signal
7235         handler is unsafe.
7236         (check_redirect_output): New function: check whether redirection
7237         has been requested and, if so, call redirect_output().
7238         (logputs): Call check_redirect_output.
7239         (logprintf): Ditto.
7240         (debug_logprintf): Ditto.
7241         (redirect_output): Print clearer messages.
7242
7243         * main.c (redirect_output_signal): Don't call
7244         redirect_output_signal directly.  Instead, call
7245         log_request_redirect_output.
7246
7247         * utils.c (memfatal): Ditto.
7248
7249         * progress.c (display_image): Use it.
7250
7251         * log.c (log_set_save_context): New function: allow the caller to
7252         turn off saving log context lines.
7253
7254 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
7255
7256         * host.c (address_list_set_faulty): Uncomment a sanity check.
7257
7258 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
7259
7260         * utils.c (long_to_string): Return a pointer after where the
7261         number ends.
7262         (long_to_string): Rename to number_to_string.
7263
7264 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
7265
7266         * utils.c (path_simplify): Correctly handle the unlikely case that
7267         b starts out as path + 1.
7268
7269 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
7270
7271         * utils.c (path_simplify): Rewrite, with better comments, and
7272         without the use of strcpy to move overlapping blocks.
7273
7274 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
7275
7276         * init.c (cmd_spec_progress): Resurrect.  Check whether VAL is a
7277         valid progress type before setting it.
7278
7279 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
7280
7281         * main.c (main): Remove stray debugging message.
7282
7283 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
7284
7285         * progress.c (create_image): Fix ETA padding when hours are prined.
7286
7287 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
7288
7289         * version.c: Wget 1.8 is released.
7290
7291 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
7292
7293         * url.c (reencode_string): Declare static.
7294
7295         * res.c (registered_specs): Declare static.
7296
7297         * progress.c (current_impl_locked): Declare static.
7298
7299         * log.c (flush_log_p): Declare static.
7300         (needs_flushing): Ditto.
7301
7302         * http.c (digest_authentication_encode): Declare static.
7303
7304         * html-url.c (init_interesting): Declare static.
7305
7306         * host.c (host_name_addresses_map): Declare static.
7307
7308         * cookies.c (find_matching_chains): Declare static.
7309
7310         * ftp-ls.c (ftp_parse_vms_ls): Warn about the memory leak
7311         indicated by lint.
7312
7313         * utils.c (path_simplify): Remove unused variable STUB_CHAR.
7314
7315         * host.c (address_list_set_faulty): Document that INDEX is
7316         currently unused.
7317
7318         * url.c (rewrite_shorthand_url): Remove unused variable PATH.
7319
7320 2001-12-08  Hrvoje Niksic  <hniksic@arsdigita.com>
7321
7322         * version.c: Wget 1.8-pre2 is released.
7323
7324 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7325
7326         * progress.c (progress_handle_sigwinch): Set up the signal again.
7327
7328         * utils.c: Include <sys/termios.h>, where Solaris defines
7329         TIOCGWINSZ.
7330
7331         * progress.c (bar_create): Don't use the last column on the screen.
7332         (create_image): Pad ETA to constant size.  Pad SIZE to nine digits
7333         only until it exceeded them.
7334
7335 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7336
7337         * version.c: Wget 1.8-pre1 is released.
7338
7339 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7340
7341         * progress.c (progress_create): Make sure that, when the output is
7342         redirected, the progress implementation gets changed to the
7343         fallback one.
7344         (bar_set_params): Set current_impl_locked to 1 when "force" is
7345         specified.
7346         (progress_create): Don't change the progress implementation if
7347         current_impl_locked is non-zero.
7348
7349         * main.c (redirect_output_signal): Call
7350         progress_schedule_redirect.
7351
7352         * progress.c (progress_schedule_redirect): New function.
7353
7354 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7355
7356         * log.c (logvprintf): Restructure to allow being called multiple
7357         times.
7358         (logprintf): Call logvprintf in a loop.
7359         (debug_logprintf): Ditto.
7360
7361 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7362
7363         * gen_sslfunc.c (ssl_init_prng): Allow the user to disable EGD by
7364         setting egd_file it to empty string.
7365
7366         * main.c (main): Change the option name from --sslegdsock to
7367         --egd-file.
7368
7369 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7370
7371         * gen_sslfunc.c (ssl_init_prng): Make the printed message
7372         translatable.
7373
7374 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7375
7376         * url.c (scheme_disable): New function.
7377
7378         * main.c (main): Call ssl_init_prng from here rather than from
7379         init_ssl, so that it has a chance to disable support for https
7380         before a URL has been resolved.
7381
7382         * gen_sslfunc.c (ssl_init_prng): Seed with rand() if all else
7383         failed.
7384         (ssl_init_prng): Disable support for https if seeding the PRNG
7385         fails.
7386
7387 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7388
7389         * utils.c (read_whole_line): Handle lines beginning with \0.
7390
7391 2001-12-05  Hrvoje Niksic  <hniksic@arsdigita.com>
7392
7393         * recur.c (convert_all_links): Guard against duplicates in
7394         downloaded_html_files.
7395         (register_download): Don't invalidate similar-looking URLs.
7396         (match_except_index): New function.
7397
7398 2001-12-05  Hrvoje Niksic  <hniksic@arsdigita.com>
7399
7400         * utils.c (path_simplify): Document with test cases.
7401
7402 2001-12-04  Hrvoje Niksic  <hniksic@arsdigita.com>
7403
7404         * gen_sslfunc.c: Ditto.
7405
7406         * rbuf.c: Include <string.h>.
7407
7408 2001-12-04  Hrvoje Niksic  <hniksic@arsdigita.com>
7409
7410         * recur.c (retrieve_tree): Check whether the URL was already
7411         downloaded before downloading it again.
7412         (descend_child_p): Renamed to download_child_p.
7413         (register_download): When one URL is downloaded to a file already
7414         "owned" by another URL, delete all references that map any URL to
7415         that file.
7416         (register_delete_file): New function.
7417         (retrieve_tree): Use it after deleting a file.
7418
7419         * url.c (url_parse): Re-canonicalize the URL also if the path is
7420         empty, so that e.g. "http://www.server.com" ->
7421         "http://www.server.com/".
7422         (lowercase_str): Use ISUPPER instead of !ISLOWER.
7423
7424         * retr.c (retrieve_url): Use the canonical URL form when calling
7425         register_download().
7426
7427 2001-12-04  Ian Abbott <abbotti@mev.co.uk>
7428
7429         * snprintf.c (dopr): Use `unsigned int' as the second argument to
7430         va_arg when casting to `unsigned short' is intended.
7431
7432 2001-12-04  Herold Heiko  <Heiko.Herold@previnet.it>
7433
7434         * gen_sslfunc.c: on windows provide ssl crypto random
7435           initialization through RAND_screen(); could possibly
7436           be not enough for strong ssl communication (see the
7437           relevant manual page from the openssl package).
7438
7439 2001-12-04  Hrvoje Niksic  <hniksic@arsdigita.com>
7440
7441         * url.c (local_quote_string): Reenable quoting of question marks,
7442         but only when `--html-extension' is used.
7443
7444 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
7445
7446         * version.c: Wget 1.8-beta3 is released.
7447
7448 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
7449
7450         * snprintf.c (dopr): Cast the result of va_arg to short int and
7451         short unsigned int where these types are expected to be used.
7452
7453 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
7454
7455         * snprintf.c (dopr): Replace `short int' and `unsigned short int'
7456         with `int' when using it as the second argument to `va_arg'.
7457
7458 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
7459
7460         * host.c (address_list_new_one): New function.
7461         (lookup_host): Use it.
7462
7463 2001-12-03  Andre Majorel  <amajorel@teaser.fr>
7464
7465         * host.c (lookup_host): Don't initialize TMPSTORE directly because
7466         it's not legal C.
7467
7468 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
7469
7470         * ftp-basic.c (ftp_port): Don't return HOSTERR if we fail getting
7471         the socket data.
7472
7473         * ftp.c: Ditto.
7474
7475         * http.c: No need to declare h_errno.
7476
7477         * host.c: Declare h_errno.
7478
7479 2001-12-02  Hrvoje Niksic  <hniksic@arsdigita.com>
7480
7481         * utils.c (file_merge): If BASE doesn't contain a slash, just
7482         return a copy of FILE.
7483
7484 2001-12-02  Hrvoje Niksic  <hniksic@arsdigita.com>
7485
7486         * version.c: Wget 1.8-beta2 is released.
7487
7488 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
7489
7490         * ftp.c (getftp): When PWD fails, assume "/".
7491
7492         * ftp-basic.c (ftp_syst): Fix indentation.
7493
7494 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
7495
7496         * url.c (get_urls_file): If opt.base_href is specified, merge each
7497         URL with the base.
7498
7499 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
7500
7501         * main.c (print_help): Don't document the removed `-nh'.
7502
7503 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
7504
7505         * url.c (url_full_path): Document better.
7506
7507         * http.c (gethttp): Use the full path when creating digest
7508         authorization.
7509
7510 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
7511
7512         * cookies.c (path_matches): Return 0 if PREFIX doesn't begin with
7513         '/'.
7514
7515 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
7516
7517         * cookies.c (path_matches): FULL_PATH doesn't begin with '/', but
7518         PREFIX does.
7519
7520 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
7521
7522         * cookies.c (check_domain_match): Reimplement to match Netscape's
7523         "preliminary specification" for cookies.
7524
7525 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
7526
7527         * url.c (replace_attr_refresh_hack): New function.
7528         (convert_links): Call replace_attr_refresh_hack for Refresh
7529         links.  It will add the "TMOUT; URL=" junk before the link.
7530
7531         * html-url.c (collect_tags_mapper): Set ID to the ID of the
7532         "content" attribute, not "http-equiv".
7533         (collect_tags_mapper): Don't use OFFSET to hack the raw_* values;
7534         instead, store the information that this entry belongs to a
7535         "refresh" link.
7536
7537 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
7538
7539         * version.c: Wget 1.8-beta1 is released.
7540
7541 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
7542
7543         * recur.c (retrieve_tree): Allow -p retrievals to exceed maximum
7544         depth by more than one.
7545
7546 2001-11-30  Hrvoje Niksic  <hniksic@arsdigita.com>
7547
7548         * retr.c (retrieve_url): Don't allow more than 20 redirections.
7549
7550 2001-11-30  Hrvoje Niksic  <hniksic@arsdigita.com>
7551
7552         * recur.c (retrieve_tree): Skip the non-inline entries when
7553         enqueuing the children of a leaf HTML node in -p mode.
7554         (descend_url_p): Ignore opt.no_parent when in -p mode and UPOS is
7555         "inline".
7556
7557         * html-url.c (get_urls_html): Don't accept dash_p_leaf_HTML.
7558         (collect_tags_mapper): When an entry is "inline", mark it as such.
7559
7560         * recur.c (descend_url_p): Fix test when checking for
7561         acceptance/rejection rules.
7562
7563 2001-10-31 Daniel BODEA <dali@dali-designs.com>
7564
7565         * netrc.c (search_netrc): When slack_default is 0, still look for
7566         an account with matching password, just not the "default account".
7567         HTTP Authorization using .netrc should now work as expected.
7568
7569 2001-11-30  T. Bharath  <TBharath@responsenetworks.com>
7570
7571         * http.c (persistent_available_p): Call SHUTDOWN_SSL if
7572         test_socket_open fails.
7573
7574 2001-11-30  Hrvoje Niksic  <hniksic@arsdigita.com>
7575
7576         * progress.c (display_image): Just print one CR to reset the
7577         cursor position.
7578
7579 2001-11-30  Christian Fraenkel  <c.fraenkel@gmx.net>
7580
7581         * init.c: New command `ssl_egd_sock'.
7582
7583         * main.c (main): New option `--sslegdsock'.
7584
7585         * gen_sslfunc.c (ssl_init_prng): Seed the RNG using EGD.
7586
7587 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
7588
7589         * cmpt.c (memmove): Include a simple memmove implementation.
7590
7591 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
7592
7593         * headers: Guard against header files being included twice.
7594
7595 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
7596
7597         * gen-md5.c: Use unsigned char * as the buffer argument to
7598         gen_md5_update.
7599
7600 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
7601
7602         * connect.h: Declare select_fd.
7603
7604 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
7605
7606         * recur.c (descend_url_p): When resolving no_parent, compare with
7607         start_url, not parent url.  Otherwise link from /a/b/ to /a/c/
7608         wouldn't be followed, although the download started from /a/.
7609
7610 2001-01-23  Herold Heiko  <Heiko.Herold@previnet.it>
7611
7612         * config.h.ms, mswindows.h: defined HAVE_ISATTY, use _isatty for
7613         MS VC; somebody with Borland compiler please check and provide
7614         patch if possible;
7615
7616         * cmpt.c: provided a usleep emulation.
7617
7618 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
7619
7620         * host.c (address_list_new): Initialize al->faulty.
7621
7622 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
7623
7624         * http.c (http_process_range): Accept the broken output of
7625         "JavaWebServer/1.1.1".
7626
7627 2001-11-28  Hrvoje Niksic  <hniksic@arsdigita.com>
7628
7629         * progress.c (dot_set_params): If PARAMS is unspecified, use
7630         dot_style, if available.
7631
7632         * init.c: Ditto.
7633
7634         * main.c (main): Resurect --dot-style.
7635
7636         * progress.c (dot_finish): Print the quantity if we're left at the
7637         beginning of a row.
7638
7639 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7640
7641         * cmpt.c (random): Removed.
7642
7643         * retr.c (sleep_between_retrievals): Use the more portable rand()
7644         instead of random().
7645
7646 2001-11-27  Ian Abbott <abbotti@mev.co.uk>
7647
7648         * retr.c (retrieve_from_file): Initialize `new_file' to NULL to
7649         prevent seg fault.
7650
7651 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7652
7653         * connect.c (connect_to_many): Use address_list_set_faulty to
7654         prevent the faulty address from being reused.
7655
7656         * host.c (address_list_set_faulty): New function.
7657         (address_list_get_bounds): New function, instead of
7658         address_list_count.
7659
7660 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7661
7662         * url.c (convert_links): Don't translate %d-%d.
7663
7664         * main.c (print_help): Remove stray HAVE_RANDOM code.
7665
7666 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7667
7668         * ftp.c (getftp): Improve output after sending PASV.  Don't
7669         attempt to "look up" the IP address we already know; call
7670         connect_to_one directly.
7671
7672 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7673
7674         * progress.c: Change the default progress implementation to "bar".
7675
7676 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7677
7678         * progress.c (bar_create): Print two newlines.
7679
7680 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7681
7682         * cmpt.c (random): New function, a simple-minded replacement for
7683         random() on systems that don't have it.
7684
7685 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7686
7687         * config.h.in: Put a HAVE_USLEEP stub.
7688
7689         * cmpt.c (usleep): Replacement implementation of usleep using
7690         select.
7691
7692         * init.c: New option init_rate.
7693
7694         * main.c (main): New option --limit-rate.
7695
7696         * retr.c (limit_bandwidth): New function.
7697         (get_contents): Call it to limit the bandwidth used when
7698         downloading.
7699
7700         * progress.c (dot_update): Would print the wrong download speed on
7701         rows other than the first one when the download was continued.
7702         (dot_finish): Ditto.
7703
7704 2001-11-26  Ian Abbott <abbotti@mev.co.uk>
7705
7706         * http.c (gethttp): fix undeclared variable 'err' when compiled
7707         with HAVE_SSL.
7708
7709 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7710
7711         * progress.c: Don't allocate new timers; use the timing data
7712         propagated from the caller.
7713
7714         * retr.c (get_contents): Allocate and use a timer.
7715
7716 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7717
7718         * http.c (last_host_ip): Made into an address_list.
7719         (invalidate_persistent): Release pc_last_host_ip.
7720         (register_persistent): Use lookup_host.
7721         (persistent_available_p): Check for equality of hosts using
7722         address_list_match_all.  Call address_list_release.
7723         (http_cleanup): New function.
7724
7725         * ftp.c (getftp): Use lookup_host and connect_to_many.
7726
7727         * http.c (gethttp): Use lookup_host and connect_to_many.
7728
7729         * connect.c (make_connection): Removed.
7730         (connect_to_one): New function.
7731         (connect_to_many): Ditto.
7732         (set_connection_host_name): Ditto.
7733
7734         * host.c (lookup_host): New function; new return type.
7735         (address_list_new): New function.
7736         (address_list_count): Ditto.
7737         (address_list_copy_one): Ditto.
7738         (address_list_delete): Ditto.
7739         (address_list_release): Ditto.
7740         (pretty_print_address): Ditto.
7741
7742 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7743
7744         * recur.c (retrieve_tree): In case of followed redirection,
7745         blacklist the pre-redirection URL.
7746
7747 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7748
7749         * recur.c (descend_redirect_p): New function.
7750         (retrieve_tree): Make sure redirections are not blindly followed.
7751
7752 2001-11-04  Alan Eldridge  <alane@geeksrus.net>
7753
7754         * config.h.in: added HAVE_RANDOM.
7755
7756         * options.h: added random_wait to struct options.
7757
7758         * main.c (print_help [HAVE_RANDOM], main): added arg parsing, help
7759         for --random-wait.
7760
7761         * retr.c (sleep_between_retrievals) [HAVE_RANDOM]: added
7762         implementation of random wait times.
7763
7764         * init.c (commands): added "randomwait" keyword.
7765
7766 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7767
7768         * recur.c (descend_url_p): Be more conservative with blacklisting
7769         URLs.
7770         (convert_all_links): Print how many files have been converted, and
7771         how long it took.
7772
7773         * progress.c (create_image): Place the number of downloaded bytes
7774         right after the progress bar.
7775
7776         * utils.c (suffix): Return a pointer into the string.
7777
7778 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7779
7780         * url.c (convert_links): Handle CO_NULLIFY_BASE.
7781
7782         * recur.c (retrieve_tree): Ignore download-ignorable children.
7783         (convert_all_links): Specify CO_NULLIFY_BASE when link_base_p.
7784
7785         * html-url.c (handle_link): Return the newly created urlpos.
7786         (collect_tags_mapper): When dealing with BASE, store the base
7787         reference and mark it as download-ignorable.
7788
7789 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7790
7791         * url.c (convert_links): Attempt to quote '?' as "%3F" when
7792         linking to local files.  Given up on the attempt, as it breaks
7793         local browsing.
7794
7795 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7796
7797         * main.c (private_initialize): Removed.
7798         (main): Don't call private_initialize.
7799
7800         * http.c: Call lookup_host.
7801
7802         * host.c (host_init): Removed.
7803         (add_host_to_cache): Initialize host_name_address_map here, on
7804         demand.
7805         (ngethostbyname): Commented out.
7806
7807         * connect.c (make_connection): Remove dead code; use lookup_host.
7808
7809         * host.c (store_hostaddress): Renamed to lookup_host and reversed
7810         the args.
7811         Removed host_address_name_map and host_slave_master_map.
7812
7813 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7814
7815         * progress.c (dot_create): Align the "[ skipping ... ]" string
7816         with the dots.
7817
7818         * retr.c (rate): Split into two functions: calc_rate and
7819         retr_rate.
7820
7821         * progress.c (create_image): Draw a dummy progress bar even when
7822         total size is unknown.
7823         (display_image): Place the text cursor at the end of the "image".
7824
7825 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7826
7827         * url.c (reencode_string): Use unsigned char, not char --
7828         otherwise the hex digits come out wrong for 8-bit chars such as
7829         nbsp.
7830         (lowercase_str): New function.
7831         (url_parse): Canonicalize u->url if needed.
7832         (get_urls_file): Parse each URL, and return only the valid ones.
7833         (free_urlpos): Call url_free.
7834         (mkstruct): Add :port if the port is non-standard.
7835         (mkstruct): Append the query string to the file name, if any.
7836         (urlpath_length): Use strpbrk_or_eos.
7837         (uri_merge_1): Handle the cases where LINK is an empty string,
7838         where LINK consists only of query, and where LINK consists only of
7839         fragment.
7840         (convert_links): Count and report both kinds of conversion.
7841         (downloaded_file): Use a hash table, not a list.
7842         (downloaded_files_free): Free the hash table.
7843
7844         * retr.c (retrieve_from_file): Ditto.
7845
7846         * main.c (main): Call either retrieve_url or retrieve_tree
7847         for each URL, not both.
7848
7849         * retr.c (register_all_redirections): New function.
7850         (register_redirections_mapper): Ditto.
7851         (retrieve_url): Register the redirections.
7852         (retrieve_url): Make the string "Error parsing proxy ..."
7853         translatable.
7854
7855         * res.c (add_path): Strip leading slash from robots.txt paths so
7856         that the path representations are "compatible".
7857         (free_specs): Free each individual path, too.
7858         (res_cleanup): New function.
7859         (cleanup_hash_table_mapper): Ditto.
7860
7861         * recur.c (url_queue_new): New function.
7862         (url_queue_delete): Ditto.
7863         (url_enqueue): Ditto.
7864         (url_dequeue): Ditto.
7865         (retrieve_tree): New function, replacement for recursive_retrieve.
7866         (descend_url_p): New function.
7867         (register_redirection): New function.
7868
7869         * progress.c (create_image): Cosmetic changes.
7870
7871         * init.c (cleanup): Do all those complex cleanups only if
7872         DEBUG_MALLOC is defined.
7873
7874         * main.c: Removed --simple-check and the corresponding
7875         simple_host_check in init.c.
7876
7877         * html-url.c (handle_link): Parse the URL here, and propagate the
7878         parsed URL to the caller, who would otherwise have to parse it
7879         again.
7880
7881         * host.c (xstrdup_lower): Moved to utils.c.
7882         (realhost): Removed.
7883         (same_host): Ditto.
7884
7885 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7886
7887         * utils.c (path_simplify): Preserver the (non-)existence of
7888         leading slash.  Return non-zero if changes were made.
7889
7890 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7891
7892         * progress.c (bar_update): Don't modify bp->total_length if it is
7893         zero.
7894
7895 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7896
7897         * retr.c (retrieve_url): When the redirection URL doesn't parse,
7898         print the correct error message rather than "UNKNOWN".
7899
7900 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7901
7902         * progress.c (bar_finish): If the timer didn't record any time
7903         since the download beginning, fake 1ms.
7904
7905 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7906
7907         * recur.c (recursive_retrieve): Fix typo.
7908
7909 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
7910
7911         * progress.c (create_image): Don't translate "%ld ".
7912
7913 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
7914
7915         * progress.c (bar_set_params): Allow the user to force the use of
7916         the bar.
7917
7918 2001-11-23  Lemble Gregory  <gregory.lemble@st.com>
7919
7920         * gen_sslfunc.c (ssl_init_prng): New function; seed the SSL RNG.
7921
7922 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
7923
7924         * progress.c: Renamed dp_* functions to dot_* for greater clarity
7925         and consistency with bar_*.
7926         (print_download_speed): Get rid of the unneeded '@' character.
7927         (create_image): Fix download rate geometry.
7928
7929         * progress.c (print_elapsed): Remove spurious space.
7930         (print_elapsed): Renamed to print_download_speed, since that's
7931         what it does.
7932
7933 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
7934
7935         * progress.c (bar_update): If the downloaded amount becomes larger
7936         than the expected amount, adjust the expected amount accordingly.
7937
7938 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
7939
7940         * utils.c (determine_screen_width): New function.
7941
7942         * main.c (main): New option `--progress=TYPE'.
7943         (main): Implement compatibility with the old option `--dot-style'.
7944
7945         * init.c: Removed cmd_spec_dotstyle -- that logic is now in
7946         dp_set_params.
7947         (cmd_spec_progress): New function.
7948
7949         * retr.c (get_contents): Use the progress_* functions instead of
7950         the old show_progress().
7951         (show_progress): Removed.
7952         (rate): Print "xxxx.xx K/s" instead of "KB/s".  Ditto for MB/s,
7953         etc.
7954
7955         * progress.c (set_progress_implementation): New function.
7956         (valid_progress_implementation_p): Ditto.
7957         (progress_create): Ditto.
7958         (progress_update): Ditto.
7959         (progress_finish): Ditto.
7960         (dp_create): Ditto.
7961         (dp_update): Ditto.
7962         (dp_finish): Ditto.
7963         (dp_set_params): Ditto.
7964         (print_elapsed): Ditto.
7965
7966 2001-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
7967
7968         * retr.c (show_progress): Use it.
7969
7970         * log.c (log_set_flush): New function.
7971
7972 2001-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
7973
7974         * utils.c (path_simplify): Don't remove trailing slashes.
7975
7976         * ftp.c (ftp_get_listing): Use it.
7977
7978         * utils.c (file_merge): New function.
7979
7980         * url.c (opt_url): Removed.
7981
7982         * recur.c (recursive_retrieve): Inline "opt_url" logic.
7983
7984         * main.c (main): Use xfree(), not free().
7985
7986         * url.c (rewrite_url_maybe): Renamed to rewrite_shorthand_url.
7987
7988         * ftp.c (ccon): Move `ccon' typedef here, since it's only used
7989         internally.
7990
7991         * config.h.in: Include a stub for HAVE_STRPBRK.
7992
7993         * cmpt.c (strpbrk): Include a replacement for systems without
7994         strpbrk().
7995
7996         * ftp.c: Use url_set_dir and url_set_file when modifying the URL.
7997
7998         * url.c (url_set_dir): New function.
7999         (url_set_file): Ditto.
8000
8001         * ftp-basic.c (ftp_process_type): Process FTP type here; the URL
8002         parser makes the URL "params" available, so we can do that in this
8003         function.
8004
8005         * retr.c: Ditto.
8006
8007         * ftp.c: Ditto; pass the local file information in `ccon'.
8008
8009         * http.c: Get rid of the ugly kludge that had URL being replaced
8010         with the proxy URL when proxy retrieval was requested.  Use a
8011         separate parameter to http_loop and gethttp for the proxy URL.
8012
8013         * http.c: Changed to reflect the fact that local file, proxy, and
8014         referer information are no longer stored in struct url.  The local
8015         file information is passed in `struct hstat' now.
8016
8017         * url.c: Reworked URL parsing to be more regular.  Reencode the
8018         URL using reencode_string.
8019         Removed non-URL-related information from struct url.  This
8020         includes fields `proxy', `local', and `referer'.
8021
8022 2001-11-22  Jochen Hein  <jochen@jochen.org>
8023
8024         * main.c (main): Split the copyright notice for easier
8025         translation.
8026
8027 2001-08-21  Dave Turner <dct25@hermes.cam.ac.uk>
8028
8029         * ftp-basic.c (ftp_size): New function to send non-standard SIZE
8030           command to server to request file size.
8031         * ftp.h (ftp_size): Export it.
8032         * ftp.c (getftp): Use new ftp_size function if restoring
8033           transfer of a file with unknown size.
8034
8035 2001-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
8036
8037         * url.c (parseurl): Don't depend on the now-obsolete TYPE.
8038
8039 2001-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
8040
8041         * url.c (getproxy): Handle URL shorthands.
8042
8043 2001-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
8044
8045         * main.c: Remove --wait / --waitretry backwards compatibility
8046         code.
8047
8048 2001-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
8049
8050         * main.c (main): Use it.
8051
8052         * url.c (rewrite_url_maybe): New function.
8053
8054 2001-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
8055
8056         * url.c: Clean up handling of URL schemes.
8057
8058 2001-05-13  Hrvoje Niksic  <hniksic@arsdigita.com>
8059
8060         * url.c: Get rid of `protostrings'.
8061         (skip_proto): Don't use protostrings.
8062         (has_proto): Ditto.
8063
8064 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
8065
8066         * Makefile.in: Conditionally compile getopt.o.
8067
8068 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
8069
8070         * md5.h: Renamed to gnu-md5.h.
8071
8072         * md5.c: Renamed to gnu-md5.c.
8073
8074         * http.c: Ditto.
8075
8076         * ftp-opie.c: Use the new macros.
8077
8078         * sysdep.h: Define md5-related macros.
8079
8080         * config.h.in: Define HAVE_SOLARIS_MD5 or HAVE_BUILTIN_MD5
8081         depending on which md5 implementation is used.
8082
8083 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
8084
8085         * res.c (res_register_specs): Initialize OLD and HP_OLD to appease
8086         the compiler.
8087
8088 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
8089
8090         * http.c (gethttp): Print the whole response line when printing
8091         headers is requested.
8092
8093 2001-05-12  Hrvoje Niksic  <hniksic@arsdigita.com>
8094
8095         * res.c: New file.  Implement all RES-related code here.
8096
8097 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
8098
8099         * version.c: Wget 1.7.1 is released.
8100
8101 2001-11-16  Hrvoje Niksic  <hniksic@arsdigita.com>
8102
8103         * headers.c (header_extract_number): Ignore trailing whitespace.
8104
8105 2001-08-24  Ian Abbott  <abbotti@mev.co.uk>
8106
8107         * html-url.c (collect_tags_mapper): Fix bug converting links
8108         with -k option for tags with multiple link attributes by
8109         handling links in the order they appear.
8110
8111 2001-08-15  Ian Abbott  <abbotti@mev.co.uk>
8112
8113         * ftp.c (ftp_loop_internal): Avoid a potential buffer overflow in
8114           the call to the 'rate' function by moving it past the error
8115           checking for the 'getftp' function return value.
8116
8117 2001-11-16  Hrvoje Niksic  <hniksic@arsdigita.com>
8118
8119         * html-parse.c (advance_declaration): Use 0x22 instead of '"' or
8120         '\"'.  Different compilers' assert macros are broken in different
8121         ways.
8122
8123 2001-09-29  Christian Fraenkel  <c.fraenkel@gmx.net>
8124
8125         * http.c (gethttp): print debug output for errors occuring during
8126         the ssl handshake.
8127
8128 2001-11-16  Chris Seawood  <cls@seawood.org>
8129
8130         * init.c: Ditto.
8131
8132         * host.c: Ditto.
8133
8134         * connect.c: Ditto.
8135
8136         * sysdep.h: Support compilation under BEOS.
8137
8138 2001-06-08  Edward J. Sabol  <sabol@alderaan.gsfc.nasa.gov>
8139
8140         * url.c (url_equal): Fix a memory leak when parseurl returns an
8141         error on the second URL. Also, since url_equal is not used at the
8142         moment, do not compile it.
8143
8144         * url.h: Ditto for the prototype of url_equal.
8145
8146 2001-11-16  Hrvoje Niksic  <hniksic@arsdigita.com>
8147
8148         * html-parse.c (map_html_tags): Support XML-style empty tags.
8149
8150 2001-06-26  Hrvoje Niksic  <hniksic@arsdigita.com>
8151
8152         * wget.h (DO_REALLOC_FROM_ALLOCA): Check for do_realloc_newsize in
8153         loop condition because we're no longer setting SIZEVAR here.
8154
8155 2001-06-26  Hrvoje Niksic  <hniksic@arsdigita.com>
8156
8157         * wget.h (DO_REALLOC_FROM_ALLOCA): Set SIZEVAR after the memcpy()
8158         call because it needs the old value.
8159
8160 2001-06-18  Hrvoje Niksic  <hniksic@arsdigita.com>
8161
8162         * cookies.c (ATTR_NAME_CHAR): Allow almost any character to be in
8163         an attribute name.
8164
8165 2001-06-18  Hrvoje Niksic  <hniksic@arsdigita.com>
8166
8167         * url.c (url_filename): Make sure that slashes that sneak in to
8168         u->file via query string get protected.
8169         (file_name_protect_query_string): New function.
8170
8171 2001-06-14  Hrvoje Niksic  <hniksic@arsdigita.com>
8172
8173         * recur.c (recursive_retrieve): Also check undesirable_urls with
8174         canonicalized URL.
8175
8176 2001-06-14  Hrvoje Niksic  <hniksic@arsdigita.com>
8177
8178         * http.c (gethttp): Search `.netrc' with real host, not the proxy
8179         one.
8180
8181 2001-06-14  Hrvoje Niksic  <hniksic@arsdigita.com>
8182
8183         * sysdep.h (MAP_FAILED): Provide MAP_FAILED for systems that don't
8184         define it.
8185
8186 2001-06-09  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8187
8188         * ftp.h: Provide correct prototype for ftp_parse_ls().
8189
8190 2001-06-04  Hrvoje Niksic  <hniksic@arsdigita.com>
8191
8192         * version.c: Wget 1.7 is released.
8193
8194 2001-06-03  Karl Eichwalder  <ke@suse.de>
8195
8196         * ftp-ls.c (ftp_parse_ls): Fix typo.
8197
8198 2001-05-27  Hrvoje Niksic  <hniksic@arsdigita.com>
8199
8200         * all: Update copyright information.
8201
8202 2001-05-26  Hrvoje Niksic  <hniksic@arsdigita.com>
8203
8204         * http.c (gethttp): Indicate that the continued download failed
8205         for *this* file.
8206
8207 2001-05-26  Hrvoje Niksic  <hniksic@arsdigita.com>
8208
8209         * version.c: Wget 1.7-pre1 is released.
8210
8211 2001-05-26  Hrvoje Niksic  <hniksic@arsdigita.com>
8212
8213         * version.c: Updated version to 1.7-pre1.
8214
8215 2001-05-14  Hrvoje Niksic  <hniksic@arsdigita.com>
8216
8217         * gen_sslfunc.c: Don't include <sys/time.h> directly.
8218
8219 2001-05-14  Hrvoje Niksic  <hniksic@arsdigita.com>
8220
8221         * http.c (gethttp): Use real URL data for cookies, not the proxy
8222         stuff.
8223
8224 2001-05-12  Hrvoje Niksic  <hniksic@arsdigita.com>
8225
8226         * main.c (print_help): Document `--no-http-keep-alive'.
8227
8228         * utils.c (numdigit): Handle negative numbers *correctly*.
8229
8230         * hash.c (make_nocase_string_hash_table): Use term "nocase" rather
8231         than the confusing "unsigned".
8232
8233         * utils.c (string_set_contains): Renamed from string_set_exists.
8234
8235         * hash.c (hash_table_contains): Renamed from hash_table_exists.
8236
8237         * cookies.c: Move case-insensitive hash tables to hash.c.
8238
8239 2001-05-09  Hrvoje Niksic  <hniksic@arsdigita.com>
8240
8241         * http.c (gethttp): Before concluding that the file is already
8242         fully retrieved, make sure that the file existed and `Range' was
8243         actually requested.
8244
8245 2001-05-09  Hrvoje Niksic  <hniksic@arsdigita.com>
8246
8247         * cookies.c (eliminate_dups): New function.
8248         (build_cookies_request): Use it.
8249         (build_cookies_request): Set chain_store_size after reallocating
8250         all_chains.
8251         (check_domain_match): Annotated for easier future debugging.
8252         (store_cookie): In the debug message, print whether the cookie is
8253         permanent.
8254
8255 2001-05-08  Hrvoje Niksic  <hniksic@arsdigita.com>
8256
8257         * http.c (http_loop): Reset no_truncate before deciding whether to
8258         set it.
8259         (gethttp): Further clarify "-c conflicts with existing file" error
8260         message, based on input from Herold Heiko.
8261
8262 2001-05-07  Hrvoje Niksic  <hniksic@arsdigita.com>
8263
8264         * http.c (http_loop): If restval is set, set no_truncate to 1
8265         unconditionally.
8266
8267 2001-05-02  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8268
8269         * ftp-ls.c (ftp_parse_winnt_ls): Assure months are being correctly
8270         converted. Pointed out by <Stefan.Weil@de.heidelberg.com>.
8271         (ftp_parse_vms_ls): Ditto.
8272
8273 2001-04-30  Hrvoje Niksic  <hniksic@arsdigita.com>
8274
8275         * init.c (cmd_address): Zero SIN before using it; apparently
8276         needed on *BSD.
8277
8278 2001-04-29  Hrvoje Niksic  <hniksic@arsdigita.com>
8279
8280         * ftp.c (ftp_loop_internal): Don't set NO_TRUNCATE if the file is
8281         empty.
8282
8283 2001-04-29  Hrvoje Niksic  <hniksic@arsdigita.com>
8284
8285         * main.c (main): Make `--cookies' respect its argument.
8286
8287 2001-04-28  Hrvoje Niksic  <hniksic@arsdigita.com>
8288
8289         * main.c (main): Removed undocumented option `--email-address'.
8290
8291         * netrc.c: Use the latest read_whole_line.
8292
8293         * init.c (defaults): Set opt.ftp_pass to "-wget@".
8294
8295         * mswindows.c (pwd_cuserid): Ditto.
8296
8297         * utils.c (pwd_cuserid): Removed.
8298
8299         * host.c (ftp_getaddress): Removed.
8300
8301 2001-04-28  Hrvoje Niksic  <hniksic@arsdigita.com>
8302
8303         (http_loop): Allocate space for filename_plus_orig_suffix with
8304         alloca; this is more efficient and removes the need to free it
8305         before each and every return.
8306
8307 2001-04-28  Hrvoje Niksic  <hniksic@arsdigita.com>
8308
8309         * http.c (gethttp): Return RETRUNNEEDED when the retrieval is
8310         unneeded because the file is already there and fully downloaded,
8311         and -c is specified.
8312         (http_loop): Handle RETRUNNEEDED.
8313
8314         * wget.h (uerr_t): New value RETRUNNEEDED.
8315
8316         * http.c (http_loop): Set no_truncate for files that both exist
8317         and are non-empty.
8318         (gethttp): Consider the download finished when restval >= contlen,
8319         not only when restval==contlen.
8320         (gethttp): Handle redirection before giving up due to -c.
8321         (gethttp): Clarify error message which explains that -c will not
8322         truncate the file.
8323         (gethttp): When returning CONTNOTSUPPORTED, don't forget to free
8324         the stuff that needs freeing and release the socket.
8325
8326 2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
8327
8328         * main.c (print_help): Wget booleans accept "off", not "no".
8329
8330 2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
8331
8332         * http.c (http_loop): If allow_cache is zero, always disable
8333         caching, not only when retrieving through proxy.
8334
8335         * init.c: Ditto.
8336
8337         * options.h (struct options): Rename proxy_cache to allow_cache.
8338
8339 2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
8340
8341         * http.c (mktime_from_utc): Improve documentation.
8342         (http_atotm): Put format strings into a separate array.
8343
8344 2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
8345
8346         * safe-ctype.h: Instead of throwing #error when isalpha is
8347         defined, redefine it to something that will throw a compile-time
8348         error if actually *used*.  Do the same for the rest of the
8349         standard C macros.
8350
8351 2001-04-26  Hrvoje Niksic  <hniksic@arsdigita.com>
8352
8353         * url.c (getproxy): Ignore empty proxy vars.
8354
8355 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
8356
8357         * http.c (http_loop): Would load cookies every time.
8358
8359         * cookies.c (load_cookies): Handle cookies whose values contain
8360         embedded spaces.
8361
8362 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
8363
8364         * utils.c: Define each DIGITS_* in one line.
8365
8366 2001-04-25  Roger L. Beeman  <beeman@cisco.com>
8367
8368         * http.c (http_atotm): Initialize t.tm_isdst to 0.
8369         (mktime_from_utc): Prevent mktime() from having discontinuities at
8370         DST transition points.
8371
8372 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
8373
8374         * html-url.c (get_urls_html): Fix documentation.
8375
8376 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
8377
8378         * url.c (UNSAFE_CHAR): Reimplement using a static table.
8379         (url_init): Removed.
8380         (init_unsafe_char_table): Removed.
8381
8382 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
8383
8384         * snprintf.c (dopr): Replace ISDIGIT with '0' <= ch && ch <= '9'.
8385
8386 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
8387
8388         * utils.c: Document timer functions.
8389
8390         * retr.c (rate): Use it.
8391         (rate): Print in GB/s if transfer rate exceeds 1 GB/s.
8392
8393         * utils.c (wtimer_granularity): New function.
8394
8395 2001-04-24  Hrvoje Niksic  <hniksic@arsdigita.com>
8396
8397         * retr.c (show_progress): Ditto.
8398
8399         * ftp.c (getftp): Ditto.
8400
8401         * http.c (gethttp): Use new timer functions.
8402
8403         * utils.c (wtimer_allocate): New function.
8404         (wtimer_new): Ditto.
8405         (wtimer_delete): Ditto.
8406         (wtimer_reset): Ditto.
8407         (wtimer_elapsed): Ditto.
8408
8409 2001-04-24  Hrvoje Niksic  <hniksic@arsdigita.com>
8410
8411         * utils.c (long_to_string): New, faster version.  Favors smaller
8412         numbers; much of the calculation is now done at compile-time.
8413
8414 2001-04-24  Hrvoje Niksic  <hniksic@arsdigita.com>
8415
8416         * utils.c (numdigit): Handle negative numbers.
8417
8418 2001-04-23  Hrvoje Niksic  <hniksic@arsdigita.com>
8419
8420         * retr.c (show_progress): Print the download rate even when the
8421         percentages are not available.
8422
8423 2001-04-21  Hrvoje Niksic  <hniksic@arsdigita.com>
8424
8425         * ftp.c (getftp): Adjust expected_bytes if the length is
8426         authoritative.
8427
8428 2001-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
8429
8430         * url.c: Don't declare `construct'.
8431
8432         * hash.c (grow_hash_table): Speed up rehashing; inline storing of
8433         mappings to new locations.
8434         (hash_table_new): Make resize_threshold a field in the hash table,
8435         so we don't have to recalculate it in each hash_table_put.
8436         (grow_hash_table): Update resize_threshold.
8437         (MAX): Remove unused macro.
8438         (prime_size): Made static.
8439
8440 2001-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
8441
8442         * retr.c (retrieve_url): Call uri_merge, not url_concat.
8443
8444         * html-url.c (collect_tags_mapper): Call uri_merge, not
8445         url_concat.
8446
8447         * url.c (mkstruct): Use encode_string instead of xstrdup followed
8448         by URL_CLEANSE.
8449         (path_simplify_with_kludge): Deleted.
8450         (contains_unsafe): Deleted.
8451         (construct): Renamed to uri_merge_1.
8452         (url_concat): Renamed to uri_merge.
8453
8454 2001-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
8455
8456         * url.c (str_url): Use encode_string instead of the unnecessary
8457         CLEANDUP.
8458         (encode_string_maybe): New function, returns input string if no
8459         encoding is needed.
8460         (encode_string): Call encode_string_maybe to do the dirty work,
8461         xstrdup if no work needed.
8462
8463 2001-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
8464
8465         * wget.h (XDIGIT_TO_xchar): Define here.
8466
8467         * url.c (decode_string): Use new name.
8468         (encode_string): Ditto.
8469
8470         * http.c (XDIGIT_TO_xchar): Rename HEXD2asc to XDIGIT_TO_xchar.
8471         (dump_hash): Use new name.
8472
8473         * wget.h: Rename ASC2HEXD and HEXD2ASC to XCHAR_TO_XDIGIT and
8474         XDIGIT_TO_XCHAR respectively.
8475
8476 2001-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
8477
8478         * init.c: Include cookies.h.
8479
8480         * cookies.h: Declare cookies_cleanup.
8481
8482         * cookies.c (check_domain_match): Remove unused variable.
8483         (save_cookies): Remove extraneous argument from debug statement.
8484
8485         * host.c (same_host): Don't call skip_url.
8486
8487         * url.c (skip_url): Removed.  Removed its calls from various
8488         functions in url.c.
8489
8490 2001-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
8491
8492         * cookies.c (unsigned_string_hash): Use the new code in
8493         string_hash as reference.
8494
8495         * hash.c (hash_table_map): Allow deletion and change of the
8496         element processed by MAPFUN.
8497         (string_hash): Use the function from glib.
8498
8499 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
8500
8501         * config.h.in: Include #undef stub.
8502
8503         * hash.c (hash_table_remove): Rewrite to actually clear deleted
8504         entries instead of just marking them as deleted.
8505
8506 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
8507
8508         * hash.h: Declare hash_table_get_pair and hash_table_count.
8509
8510 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
8511
8512         * cookies.c: Declare http_atotm.
8513
8514 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
8515
8516         * ftp-ls.c (ftp_parse_unix_ls): Use octal constants for
8517         permissions.  A compiler that doesn't accept octal constants is
8518         seriously broken and shouldn't be used -- octal constants were
8519         present in K&R C!
8520
8521 2001-01-20  Karl Eichwalder  <ke@suse.de>
8522
8523         * Makefile.in: Provide and use DESTDIR according to the Coding
8524         Standards.
8525
8526 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
8527
8528         * ftp-ls.c (ftp_parse_vms_ls): Make seconds optional in time
8529         specification.
8530
8531 2001-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
8532
8533         * url.c (parseurl): Don't strip trailing slash when u->dir is "/"
8534         because that strips the *leading* slash, thus forcing relative
8535         FTP retrieval.
8536
8537 2001-04-10  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8538
8539         * ftp.c (getftp): Convert initial FTP directory from VMS to UNIX
8540         notation for VMS servers.
8541         (ftp_retrieve_dirs): Do not prepend '/' to f->name when
8542         odir is an empty string.
8543
8544 2001-04-10  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8545
8546         * ftp-ls.c (ftp_parse_winnt_ls): Made the fix for AM/PM more
8547         effective. Suggested by Edward J. Sabol.
8548
8549 2001-04-10  Hrvoje Niksic  <hniksic@arsdigita.com>
8550
8551         * cookies.c (build_cookies_request): Use and sort cookies from all
8552         matching domains.
8553         (build_cookies_request): Check for duplicates before generating
8554         the `Cookies' header.
8555
8556         * main.c (main): Don't load cookies here.
8557         (main): Make loadcookies and savecookies call the correct command.
8558
8559         * http.c (http_loop): Load cookies on-demand.
8560
8561 2001-04-09  Hrvoje Niksic  <hniksic@arsdigita.com>
8562
8563         * http.c (gethttp): Fix indentation of SSL ifdef.
8564
8565 2001-04-09  Hrvoje Niksic  <hniksic@arsdigita.com>
8566
8567         * ftp.c (ftp_retrieve_dirs): Don't forcibly prepend "/" to u->dir;
8568         that hack is no longer necessary.
8569         (getftp): Prepend initial directory to *non*-absolute u->dir's.
8570
8571 2001-04-09  Hrvoje Niksic  <hniksic@arsdigita.com>
8572
8573         * init.c (cmd_file): New function.
8574         (enable_tilde_expansion): New variable.
8575         (run_wgetrc): Use it.
8576         (cmd_file): Use it.
8577
8578 2001-04-08  Hrvoje Niksic  <hniksic@arsdigita.com>
8579
8580         * init.c: Include cookie-related options.
8581
8582         * main.c (main): Include cookie-specific options.
8583         (main): Load cookies before download is finished.
8584         (main): Save cookies when done.
8585
8586         * http.c (gethttp): Process the `Set-Cookie' header.
8587         (gethttp): Include cookies in the response.
8588
8589         * cookies.c: New file.
8590
8591 2001-04-08  Hrvoje Niksic  <hniksic@arsdigita.com>
8592
8593         * utils.c (datetime_str): New function.
8594
8595 2001-04-08  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8596
8597         * ftp-ls.c (ftp_parse_winnt_ls): The AM/PM change did assume
8598         12:01PM == 00:01, which was obviously wrong. Taken care of this
8599         anomaly.
8600
8601         * ChangeLog: Removed an excess conflict marker. Reformatted the
8602         entry by Philipp Thomas from 2001-03-09.
8603
8604         * ftp-ls.c (ftp_parse_winnt_ls): Ensure that adjusted PM hours lay
8605         between 0 and 23. Elminate unused variable `sec'.
8606
8607 2001-04-08  Hrvoje Niksic  <hniksic@arsdigita.com>
8608
8609         * hash.c (hash_table_count): New function.
8610
8611 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8612
8613         * utils.c (read_file): Cast MAP_FAILED to char *.  Enforced by
8614         Digital Unix cc.
8615
8616 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8617
8618         * config.h.in: Oops, do the namespace tweaks only on systems we
8619         know about.
8620
8621 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8622
8623         * hash.c: Include <string.h>.
8624
8625 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8626
8627         * config.h.in: Define "compilation environment" options that work
8628         under Linux and Solaris.  To be reviewed on other OS'es.
8629
8630 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8631
8632         * http.c (gethttp): Prepend literal newline with `\n\'.
8633
8634 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8635
8636         * sysdep.h: Don't define VERY_LONG_FORMAT.
8637
8638         * utils.c (very_long_to_string): New function.
8639         (legible_very_long): Use it; don't use VERY_LONG_FORMAT.
8640
8641 2001-04-04  Christian Fraenkel  <christian.fraenkel@gmx.net>
8642
8643         * url.c (parse_uname): Would run past the end of the string if the
8644         username was present, but the URL did not contain a slash, e.g.
8645         http://foo:bar@myhost.
8646
8647 2001-04-03  KOJIMA Hajime  <kjm@rins.ryukoku.ac.jp>
8648
8649         * http.c (http_atotm): Use %A instead of %a to match full
8650         weekday.  (On most systems there is no difference.)
8651
8652 2001-04-03  Paul Bludov  <paul@ozero.net>
8653
8654         * mswindows.c (sleep): Use SleepEx() instead of Sleep().
8655         (ws_changetitle): Use alloca() instead of malloc() to avoid memory
8656         leak.
8657         (ws_mypath): Use GetModuleFileName instead of argv[0].
8658         (ws_startup): Use data.wVersion for comparison.
8659
8660 2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
8661
8662         * http.c (http_loop): Ditto.
8663
8664         * ftp.c (ftp_loop_internal): Made the check whether to continue
8665         retrieval `-O'-friendly.
8666
8667 2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
8668
8669         * netrc.c (parse_netrc): Don't trim the line endings explicitly;
8670         they will be handled as whitespace.
8671         (parse_netrc): Correctly handle lines that end with whitespace.
8672
8673 2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
8674
8675         * retr.c (retrieve_url): New variable global_download_count used
8676         to identify first retrieval.
8677
8678         * ftp.c (getftp): Ditto.
8679
8680         * http.c (gethttp): Rewind opt.dfp only on first retrieval.
8681
8682 2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
8683
8684         * init.c (cmd_address): Heap-allocate the address that gets stored
8685         to CLOSURE.  Old code would simply assign an address on the stack.
8686
8687 2001-04-01  Nicolas Lichtmaier <nick@debian.org>
8688
8689         * ftp.c (ftp_get_listing): Propagate error status.
8690         (ftp_retrieve_glob): Use it.
8691         (ftp_loop): Ditto.
8692
8693 2001-04-01  Nicolas Lichtmaier <nick@debian.org>
8694
8695         * main.c (main): Add -C to the string that is the third arg to
8696         getopt_long().
8697
8698 2001-04-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8699
8700         * ftp.c (getftp): Don't start the download from scratch if `-c'
8701         was specified, but the file is already fully downloaded.
8702
8703         * http.c (gethttp): Don't truncate a pre-existing file if `-c' was
8704         specified and the server doesn't support continued download.
8705         (gethttp): Don't start the download from scratch if `-c' was
8706         specified, but the file is already fully downloaded.
8707
8708 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
8709
8710         (recursive_retrieve): Don't clear the hash tables at this point at
8711         all; it interferes with the normal operation of register_download.
8712
8713 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
8714
8715         * recur.c (recursive_retrieve): Clear the hash tables only when
8716         they are defined.
8717
8718 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
8719
8720         * http.c (gethttp): Make sure the socket is closed with
8721         CLOSE_INVALIDATE before we have drained the body.
8722
8723 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
8724
8725         * retr.c (retrieve_url): Call register_download() for downloaded
8726         files and register_html() for downloaded HTML files.
8727
8728         * recur.c (register_download): New function; register here that a
8729         file has been downloaded, rather than in recursive_retrieve().
8730         (register_html): New function; enqueue the location of HTML files
8731         here rather than in recursive_retrieve().
8732
8733 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
8734
8735         * main.c (print_help): Use multiple fputs instead of a single ugly
8736         printf().
8737         (main): Consistently assign numbers >128 to options without a
8738         corresponding character.
8739
8740 2001-03-09  Philipp Thomas  <pthomas@suse.de>
8741
8742         * safe-ctype.h: New file. Locale independent ctype.h replacement
8743         taken from libiberty.
8744
8745         * safe-ctype.c: New file. Tables for above.
8746
8747         * Makefile.in: Add safe-ctype$o to OBJS.  Add dependencies for
8748         safe-ctype$o.
8749
8750         * cmpt.c: Remove include of ctype.h. Use ISSPACE instead of
8751         isspace.
8752
8753         * ftp-basic.c: Don't include ctype.h.
8754
8755         * ftp-ls.c: Likewise.
8756
8757         * ftp.c: Likewise.
8758
8759         * headers.c: Likewise.
8760
8761         * host.c: Likewise.
8762
8763         * html-parse.c: Likewise.
8764
8765         * html-url.c: Likewise.
8766
8767         * http.c: Likewise.
8768
8769         * init.c: Likewise.
8770
8771         * main.c: Likewise. Set LC_CTYPE along with LC_MESSAGES.
8772
8773         * netrc.c: Likewise.
8774
8775         * recur.c: Likewise.
8776
8777         * retr.c: Likewise.
8778
8779         * snprintf.c: Replace ctype.h with safe-ctype.h. Use ISDIGIT
8780         instead of isdigit.
8781
8782         * sysdep.h: Remove defines of ctype macros as they aren't needed
8783         for safe-ctype-h.
8784
8785         * url.c: Don't include ctype.h.
8786
8787         * utils.c: Likewise.
8788
8789         * wget.h: Include safe-ctype.h.
8790
8791 2001-03-27  Dan Harkless  <wget@harkless.org>
8792
8793         * Makefile.in: Moved top_builddir out of "User configuration
8794         section" of top Makefile and analogous spot in this one.
8795
8796 2001-03-17  Dan Harkless  <wget@harkless.org>
8797
8798         * Makefile.in: Include @SSL_INCLUDES@ substition in INCLUDES.
8799         Define top_builddir.  Link wget with libtool so the user doesn't
8800         have to supply a bunch of custom environment variables to
8801         correctly link with the OpenSSL shared libraries.
8802
8803 2001-03-06  Hack Kampbjorn  <hack@hackdata.com>
8804
8805         * http.c (gethttp): skip :port in host header if it is the
8806         DEFAULT_HTTPS_PORT when using SSL.
8807
8808         * url.c: move the #define of DEFAULT_HTTP_PORT, DEFAULT_FTP_PORT
8809         and DEFAULT_HTTPS_PORT to the header file so it can be use in the
8810         rest of the code.
8811         * url.h: Ditto
8812
8813 2001-03-01  Jonas Jensen  <bones@huleboer.dk>
8814
8815         * retr.c (show_progress): Correctly calculate the number of bytes
8816         in the first line of the download that have been actually
8817         downloaded in this run.
8818
8819 2001-02-23  Dan Harkless  <wget@harkless.org>
8820
8821         * main.c (print_help): --help documentation for -N said it would
8822         re-download files if they had the _same_ timestamp on server.
8823         (print_help): -nr belongs in "FTP options" section of --help
8824         output, not "Recursive retrieval" section.  Alphabetized FTP
8825         options by long option name.
8826
8827 2001-02-16  Dan Harkless  <wget@harkless.org>
8828
8829         * init.c (commands): Hack Kampbjørn <hack@hackdata.com> discovered
8830         that "httpsproxy" had been inserted into commands[] out of
8831         alphabetical order, causing "BUG: unknown command `httpuser'".
8832
8833 2001-02-13  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8834
8835         * ftp-ls.c (ftp_parse_ls): Added support of ST_MACOS (Unix-like
8836         listing without correct permissons).
8837
8838         * ftp.h (stype): Added ST_MACOS to identify the NetPresenz MacOS
8839         FTP server.
8840
8841         * ftp.c (ftp_retrieve_list): New mirroring logic: A remote file
8842         shall be donwloaded only when it's newer than the local copy or
8843         when it has the same timeestamp but its size is different. ST_VMS
8844         and ST_MACOS as special cases that lie about file size.
8845
8846         * ftp-ls.c (ftp_parse_ls): Support for ST_MACOS.
8847
8848         * Makefile.in: Removed dependency on ftpparse library due to unclear
8849         copyright issues and absence of any feedback to our queries.
8850
8851         * ftp-ls.c: Removed dependency on ftpparse library due to unclear
8852         copyright issues and absence of any feedback to our queries.
8853         (ftp_parse_ls): Added a warning message when remote server system
8854         does not seem to be suported by wget.
8855         (ftp_parse_vms_ls): New function for parsing VMS ftp
8856         server listing output.
8857         (clean_line): New function responsible for removing
8858         end-of-line characters from FTP listing texts.
8859
8860         * ftp.c (getftp): Global variables pwd and host_type are now
8861         member of the ccon structure under names ccon.id and ccon.rs.
8862
8863         * ftp.h (struct ccon): Added formed global variables from ftp.c,
8864         enum stype rs (remote system identification) and char *id (initial
8865         working directory), as suggested by Hrvoje.
8866
8867         * url.c (parse_uname): Added support for passwords containing '@'
8868         characters.
8869         (skip_uname): Ditto.
8870
8871 2001-02-11  Hrvoje Niksic  <hniksic@arsdigita.com>
8872
8873         * ftp.c (ftp_loop): Reset con.
8874
8875 2001-01-06  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8876
8877         * url.c (parse_uname): Added support for passwords containing '@'
8878         characters.
8879         (skip_uname): Ditto.
8880
8881 2001-02-11  Hack Kampbjørn  <hack@hackdata.com>
8882
8883         * url.c (parseurl): Debug-print u->ftp_type.
8884
8885 2001-02-11  Hrvoje Niksic  <hniksic@arsdigita.com>
8886
8887         * ftp.c (ftp_loop_internal): Disable padding.
8888         (getftp): Ditto.
8889
8890         * http.c (http_loop): Disable padding.
8891
8892         * retr.c (show_progress): Use it to enable padding.
8893
8894         * retr.c (rate): Optional parameter PAD for padding the rate.
8895
8896 2001-02-10  Hrvoje Niksic  <hniksic@arsdigita.com>
8897
8898         * retr.c (show_progress): Make sure that the last output line
8899         includes progress.
8900
8901 2001-02-10  Jonas Jensen  <bones@huleboer.dk>
8902
8903         * retr.c (show_progress): Print the download rate along with the
8904         percentages.
8905         Along with Anders Thorsby <anders@thorsby.dk>.
8906
8907 2001-02-10  Tim Mooney  <mooney@dogbert.cc.ndsu.NoDak.edu>
8908
8909         * ftp.h: Rename enums `command' to `wget_ftp_command' and
8910         `fstatus' to `wget_ftp_status' because old names clash with Tru64
8911         net/if.h.
8912
8913 2001-02-08  Christian Fraenkel <christian.fraenkel@gmx.net>
8914
8915         * gen_sslfunc.c: verify_callback is now static
8916
8917         * gen_sslfunc.c (init_ssl): load certificate if specified
8918
8919         * gen_sslfunc.c (ssl_printerr): new function
8920
8921         * init.c: added new --sslcertfile and --sslcertkey switches
8922
8923         * main.c: ditto
8924
8925         * options.h: ditto
8926
8927         * http.c (gethttp): abort when init_ssl fails
8928
8929 2001-01-23  Herold Heiko  <Heiko.Herold@previnet.it>
8930
8931         * mswindows.h: Include <malloc.h>; it's needed for alloca().
8932
8933 2001-01-10  Dan Harkless  <wget@harkless.org>
8934
8935         * url.c (str_url): Clarified this function's comment header after
8936         Hrvoje answered my question on the list as to when hide != 1.
8937         Also Hrvoje pointed out I need to use xstrdup() on the string literal.
8938
8939 2001-01-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8940
8941         * connect.c (bindport): Declare addrlen as int.  Diagnosed by
8942         Drazen Kacar <dave@arsdigita.com>.
8943         (conaddr): Ditto.
8944
8945 2001-01-09  Dan Harkless  <wget@harkless.org>
8946
8947         * html-url.c: A bunch of fixup of `--page-requisites'-related
8948         comments to reflect Hrvoje's changes to my code when transplanting
8949         it into this new file, to fix spelling mistakes, to clarify, etc.
8950
8951         * url.c (write_backup_file): Clarified a comment.
8952         (str_url): Henrik van Ginhoven pointed out on the list that we
8953         shouldn't give away the number of characters in the password by
8954         replacing each character with a 'x'.  Use "<password>" instead.
8955
8956         * ftp.c (ftp_retrieve_dirs): The bug where recursion into FTP
8957         directories didn't work if logging in put you in a directory other
8958         than "/" is fixed now.  Removed the comment here warning of the bug.
8959
8960         * main.c (print_help): --continue's description was misleading.
8961         We don't "restart", we "resume".  Also, better to say
8962         "partially-downloaded file" rather than just "existing file".
8963
8964 2001-01-06  Dan Harkless  <wget@harkless.org>
8965
8966         * ChangeLog: The '[Not in 1.6 branch.]'s were decided not to be
8967         the best way to go about my aim.  Removed them in favor of:
8968
8969         * ChangeLog-branches/1.6_branch.ChangeLog: New file.
8970
8971 2001-01-04  Hrvoje Niksic  <hniksic@arsdigita.com>
8972
8973         * url.c (replace_attr): New function, to be used by both
8974         TO_COMPLETE and TO_RELATIVE case in convert_links.
8975         (find_fragment): New function for finding URL fragments.
8976         (replace_attr): Better handle the case where the original string
8977         is not quoted.  Use find_fragment.
8978         (convert_links): Use replace_attr().
8979
8980 2000-12-31  Dan Harkless  <wget@harkless.org>
8981
8982         * ChangeLog: Since this flat file doesn't have multiple branches,
8983         looking at the dates would make you think that things went into
8984         1.6 that actually just went into the 1.7-dev branch.  Added "[Not
8985         in 1.6 branch.]" where appropriate to clarify.
8986
8987 2000-12-30  Dan Harkless  <wget@harkless.org>
8988
8989         * ftp.c, http.c:  Applied Hack Kampbjørn <hack@hackdata.com>'s
8990         patch to deal with h_errno not being defined in netdb.h under Cygwin.
8991
8992 2000-12-18  Csaba Raduly  <csaba.raduly@sophos.com>
8993
8994         * sysdep.h: Include <malloc.h> and <io.h> under Watcom.
8995
8996 2000-12-17  Igor Khristophorov  <igor@atdot.org>
8997
8998         * http.c (check_end): Fix test for '+' or '-'.
8999
9000 2000-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
9001
9002         * url.c (parseurl): Rename inner loop var from i to ind to avoid
9003         clash with the function top-level-declared variable i.
9004         (str_url): Likewise, rename inner-loop i to j.
9005
9006         * recur.c (parse_robots): Don't declare LEN at top of function.
9007         (robots_match): Renamed parameter FORBIDDEN to avoid hiding of
9008         global variable.
9009
9010         * main.c (main): Change erroneous use of bitwise and to logical.
9011
9012         * init.c (cmd_address): Don't heap-allocate `sin'; it can be on
9013         the stack because it will be copied to closure.
9014
9015         Thanks to Csaba Raduly's run of PC-LINT over the sources.
9016
9017 2000-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
9018
9019         * http.c (basic_authentication_encode): Use xmalloc(), not
9020         malloc().  Thanks to Csaba Raduly's run of PC-LINT over the
9021         sources.
9022
9023 2000-12-17  Csaba Raduly  <csaba.raduly@sophos.com>
9024
9025         * sysdep.h: Test for __EMX__ rather than for EMXOS2 for OS/2
9026         compilation.
9027
9028 2000-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
9029
9030         * mswindows.c: Include <errno.h>.
9031
9032         * gen_sslfunc.c: Include <errno.h>.
9033
9034         * ftp-basic.c: Don't attempt to declare errno or h_errno because
9035         they're not used.
9036
9037         * main.c: Include <errno.h> because errno is used.
9038
9039         * ftp.c: Ditto.
9040
9041         * http.c: Include <netdb.h> for h_errno.
9042
9043 2000-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
9044
9045         * html-parse.c (advance_declaration): MSVC assert() chokes on
9046         '\"'.  Use '"' instead.
9047
9048 2000-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
9049
9050         * utils.c (xfree_real): Removed.
9051         (xfree_debug): Just call free().
9052
9053         * wget.h (xfree): Make it an alias for free.
9054
9055 2000-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
9056
9057         * http.c (http_loop): Furthermore, touch output_document only if
9058         it is known to be an existing regular file.
9059
9060 2000-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
9061
9062         * ftp.c (ftp_retrieve_list): Ditto.
9063
9064         * http.c (http_loop): Touch output_document if that is used for
9065         output.
9066
9067 2000-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
9068
9069         * http.c: Include gen_sslfunc.h after including Wget's headers.
9070         (persistent_available_p): Needed coma before `int ssl'.
9071
9072 2000-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
9073
9074         * ftp.c (ftp_loop_internal): Ditto.
9075
9076         * http.c (http_loop): Use it.
9077
9078         * retr.c (sleep_between_retrievals): New function that handles the
9079         logic of opt.wait and opt.waitretry.
9080
9081 2000-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
9082
9083         * rbuf.h: Implement only a single version of RBUF_READCHAR, using
9084         rbuf_read_bufferful when the buffer is depleted.
9085
9086         * rbuf.c (rbuf_read_bufferful): New function.
9087
9088 2000-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
9089
9090         * gen_sslfunc.h: Use ansi2knr style function declarations.
9091
9092         * gen_sslfunc.c: Reformat according to the GNU coding standards.
9093         More should be done.
9094
9095         * http.c (persistent_available_p): Place the cheap SSL test nearer
9096         the top of the function.
9097         (CLOSE_FINISH, CLOSE_INVALIDATE): Define only one version of each.
9098
9099 2000-12-05  Hrvoje Niksic  <hniksic@arsdigita.com>
9100
9101         * url.c (init_unsafe_char_table): Reinstate space as an unsafe
9102         char.
9103
9104 2000-12-03  Christian Fraenkel <christian.fraenkel@gmx.net>
9105
9106         * Makefile.in: added gen_sslfunc object
9107         * config.h.in: added HAVE_SSL define
9108         * connect.c: changed select_fd from static int to int
9109         * connect.h: ditto
9110         * gen_sslfunc.h: New file
9111         * gen_sslfunc.c: ditto
9112         * http.c: added HTTPS fuctionality
9113         * retrc.c: ditto
9114         * url.c: ditto
9115         * init.c: added opt.httpsproxy
9116         * options.h: ditto
9117         * rbuf.h: added alternate rbuf struct
9118         * wget.h: added CONSSLERR
9119         * rbuf.c: ditto
9120
9121         * http.c: Added HTTPS fuctionality.
9122
9123         * retrc.c: Ditto.
9124
9125         * url.c: Ditto.
9126
9127         * init.c: Added opt.httpsproxy.
9128
9129         * options.h: Ditto.
9130
9131         * rbuf.h: Added alternate rbuf struct.
9132
9133         * wget.h: Added CONSSLERR.
9134
9135         * rbuf.c: Ditto.
9136
9137 2000-11-30  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
9138
9139         * ftp-ls.c (ftp_parse_unix_ls): Added second parameter
9140         "ignore_perms" to ignore file and directory permissions for
9141         Windows NT FTP server listings.
9142         (ftp_parse_winnt_ls): New function.
9143         (ftp_parse_ls): Parses UNIX and Windows NT listings
9144         separately. Simple heuristics for distinguishing between UNIX and
9145         MS-DOS-like FTP listing provided by Windows NT FTP service.
9146
9147 2000-11-18  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
9148
9149         * ftpparse.c, ftpparse.h: New files.
9150
9151         * ftp-ls.c (ftp_parse_ls): Use ftp_parse_unix_ls for UNIX servers
9152         only. Use ftp_parse_nonunix_ls otherwise.
9153         (ftp_parse_nonunix_ls): Stub to the ftpparse library handling all
9154         exotic FTP servers.
9155
9156         * ftp.h (stype): New enum, distinguishes UNIX, VMS, and "other"
9157         FTP servers.
9158
9159         * ftp.c: New static wariables host_type, pwd, and pwd_len.
9160         (getftp): Support for VMS. Support for FTP servers that do not
9161         place you in the root directory after login.
9162         (ftp_retrieve_list): VMS is silent about the real file size, issue
9163         a more appropriate message.
9164         (ftp_get_listing): Pass host_type to ftp_parse_ls.
9165
9166         * ftp-basic.c (ftp_pwd, ftp_syst): New functions.
9167
9168 2000-11-30  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
9169
9170         * ftp-ls.c (ftp_parse_unix_ls): Added second parameter
9171         "ignore_perms" to ignore file and directory permissions for
9172         Windows NT FTP server listings.
9173         (ftp_parse_winnt_ls): New function.
9174         (ftp_parse_ls): Parses UNIX and Windows NT listings
9175         separately. Simple heuristics for distinguishing between UNIX
9176         and MS-DOS-like FTP listing provided by Windows NT FTP service.
9177
9178 2000-11-29  John Summerfield  <summer@OS2.ami.com.au>
9179
9180         * netrc.c (parse_netrc): Get rid of line ending.
9181
9182 2000-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
9183
9184         * ftp.c (ftp_retrieve_list): Undo typo "fix" until resolution by
9185         Dan.
9186
9187 2000-11-24  Karl Eichwalder  <ke@suse.de>
9188
9189         * main.c (print_help): Untabify.
9190
9191 2000-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
9192
9193         * utils.c (xrealloc_debug): Do the unregister/register thing only
9194         if the pointer has actually changed.
9195         (xmalloc_real): Declare `static' in DEBUG_MALLOC builds.
9196         (xfree_real): Ditto.
9197         (xrealloc_real): Ditto.
9198         (xstrdup_real): Ditto.
9199
9200 2000-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
9201
9202         * ftp.c (getftp): ftp_getaddress() returns a malloc'ed copy of the
9203         string; no need to strdup() it.
9204         (getftp): Make pwd_len a local variable.
9205         (ftp_loop): Free PWD before returning.
9206
9207         * init.c (cleanup): Free opt.ftp_pass only if it's non-NULL.
9208
9209 2000-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
9210
9211         * all: Use xfree() instead of free.
9212
9213         * utils.c (xfree): New function.
9214
9215 2000-11-21  Hrvoje Niksic  <hniksic@arsdigita.com>
9216
9217         * url.c (convert_links): HTML-quote the converted string.
9218
9219         * utils.c (html_quote_string): Move here from ftp-ls.c
9220         (html_quote_string): Make non-static; declare in utils.h.
9221         (html_quote_string): Convert SP to &#32;.
9222
9223 2000-11-21  Hrvoje Niksic  <hniksic@arsdigita.com>
9224
9225         * ftp.c (getftp): Reformat Jan's code according to GNU coding
9226         standards; remove (debugging?) printf's; use '\0' for the ASCII
9227         zero character.  Use alloca() instead of malloc() for
9228         inter-function temporary allocations.
9229
9230 2000-11-18  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
9231
9232         * ftpparse.c, ftpparse.h: New files.
9233
9234         * ftp-ls.c (ftp_parse_ls): Use ftp_parse_unix_ls for UNIX servers
9235         only. Use ftp_parse_nonunix_ls otherwise.
9236         (ftp_parse_nonunix_ls): Stub to the ftpparse library handling all
9237         exotic FTP servers.
9238
9239         * ftp.h (stype): New enum, distinguishes UNIX, VMS, and "other"
9240         FTP servers.
9241
9242         * ftp.c: New static wariables host_type, pwd, and pwd_len.
9243         (getftp): Support for VMS. Support for FTP servers that do not
9244         place you in the root directory after login.
9245         (ftp_retrieve_list): VMS is silent about the real file size, issue
9246         a more appropriate message.
9247         (ftp_get_listing): Pass host_type to ftp_parse_ls.
9248
9249         * ftp-basic.c (ftp_pwd, ftp_syst): New functions.
9250
9251 2000-11-21  Hrvoje Niksic  <hniksic@arsdigita.com>
9252
9253         * hash.c (hash_table_put): Don't overwrite deleted mappings.
9254
9255 2000-11-21  Hrvoje Niksic  <hniksic@arsdigita.com>
9256
9257         * hash.c (find_mapping): New function.
9258         (hash_table_get): Use it.
9259         (hash_table_get_pair): Ditto.
9260         (hash_table_exists): Ditto.
9261         (hash_table_remove): Ditto.
9262         (hash_table_remove): Really delete the entry if the mapping
9263         following LOCATION is empty.
9264
9265         * utils.c (string_set_add): Check whether the element has existed
9266         before.
9267
9268         * hash.c (hash_table_get_pair): New function.
9269
9270 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
9271
9272         * http.c (http_process_type): Ignore trailing whitespace; use
9273         strdupdelim().
9274
9275         * recur.c (recursive_retrieve): Use the new `convert' field.
9276         (convert_all_links): Ditto.
9277         (convert_all_links): Don't respect meta_disallow_follow.
9278
9279         * html-url.c (handle_link): Fill out link_relative_p and
9280         link_complete_p.
9281
9282         * url.h (struct _urlpos): Make elements more readable.
9283
9284         * recur.c (recursive_retrieve): Call slist_prepend instead of
9285         slist_append.
9286         (convert_all_links): Call slist_nreverse before iterating through
9287         urls_html.
9288
9289         * utils.c (slist_prepend): New function.
9290         (slist_nreverse): Ditto.
9291
9292 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
9293
9294         * http.c (check_end): Constify.
9295
9296 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
9297
9298         * http.c (http_loop): If username and password are known, try the
9299         `Basic' authentication scheme by default.
9300
9301         * connect.h: Declare test_socket_open.
9302
9303 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
9304
9305         * version.c: Bump version from 1.5.3+dev to 1.7-dev.
9306
9307 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
9308
9309         * http.c (gethttp): Don't use the return value of sprintf().
9310         (gethttp): Inhibit keep-alive if opt.http_keep_alive is 0.
9311
9312 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
9313
9314         * recur.c (recursive_retrieve): Print the "so we don't load"
9315         debugging message only if we really don't load.
9316
9317         * http.c (gethttp): Inhibit keep-alive if proxy is being used.
9318         (gethttp): Don't request keep-alive if keep-alive is inhibited.
9319
9320 2000-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
9321
9322         * http.c (gethttp): Make the HTTP persistent connections more
9323         robust.
9324
9325 2000-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
9326
9327         * retr.c (get_contents): If use_expected, make sure that the
9328         appropriate amount of data is being read.
9329
9330         * http.c (gethttp): Check for both `Keep-Alive: ...' and
9331         `Connection: Keep-Alive'.
9332
9333         * wget.h (DEBUGP): Call debug_logprintf only if opt.debug is
9334         turned on.
9335
9336 2000-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
9337
9338         * http.c (connection_available_p): Use it.
9339
9340         * connect.c (test_socket_open): New function.
9341
9342         * http.c (gethttp): Support persistent connections.  Based on the
9343         ideas, and partly on code, by Sam Horrocks <sam@daemoninc.com>.
9344         (register_persistent): New function.
9345         (connection_available_p): Ditto.
9346         (invalidate_connection): Ditto.
9347
9348 2000-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
9349
9350         * url.c (convert_links): Handle UREL2ABS case.
9351
9352         * recur.c (recursive_retrieve): Instead of the list
9353         urls_downloaded, use hash tables dl_file_url_map and
9354         dl_url_file_map.
9355         (convert_all_links): Use them to retrieve data.
9356
9357         * host.c (clean_hosts): Free the hash tables.
9358
9359         * main.c (private_initialize): Call host_init().
9360
9361         * host.c (store_hostaddress): Use a saner, hash table-based data
9362         model.
9363         (realhost): Ditto.
9364         (host_init): Initialize the hash tables.
9365
9366 2000-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
9367
9368         * utils.c (slist_append): Eviscerate NOSORT.  Hash tables are now
9369         used for what the sorted slists used to be used for.
9370         (slist_contains): Don't rely on the list being sorted.
9371         (slist_append): Simplify the code.
9372
9373         * recur.c (recursive_cleanup): Use free_string_set.
9374
9375         * utils.c (string_set_add, string_set_exists, string_set_free):
9376         New functions for easier freeing of hash tables whose keys are
9377         strdup'ed strings.
9378
9379         * recur.c (recursive_retrieve): Use the hash table functions for
9380         storing undesirable URLs.
9381
9382         * hash.c: New file.
9383
9384 2000-11-17  Hrvoje Niksic  <hniksic@arsdigita.com>
9385
9386         * main.c (private_initialize): Call url_init.
9387         (main): Call private_initialize.
9388
9389         * url.c (unsafe_char_table): New table.
9390         (UNSAFE_CHAR): Use it.
9391         (init_unsafe_char_table): New function.
9392         (url_init): New function; call init_unsafe_char_table.
9393
9394 2000-11-16  Hrvoje Niksic  <hniksic@arsdigita.com>
9395
9396         * mswindows.h: Define snprintf and vsnprintf to _snprintf and
9397         _vsnprintf respectively.
9398
9399 2000-11-15  Hrvoje Niksic  <hniksic@arsdigita.com>
9400
9401         * config.h.in: Do the _XOPEN_SOURCE and _SVID_SOURCE things only
9402         on Linux.
9403
9404 2000-11-15  Hrvoje Niksic  <hniksic@arsdigita.com>
9405
9406         * html-url.c (handle_link): Handle HTML fragment identifiers.
9407
9408         * recur.c (recursive_retrieve): If norobot info is respected and
9409         the file is specified not to be followed by robots, respect that.
9410
9411         * html-url.c (collect_tags_mapper): Handle <meta name=robots
9412         content=X>.  For us the important cases are where X is NONE or
9413         where X contains NOFOLLOW.
9414         (get_urls_html): Propagate that information to the caller.
9415
9416 2000-11-13  Hrvoje Niksic  <hniksic@arsdigita.com>
9417
9418         * url.c (convert_links): Unlink the file we might be reading from
9419         before writing to it.
9420         (convert_links): Use alloca instead of malloc for
9421         filename_plus_orig_suffix.
9422
9423 2000-11-12  Hrvoje Niksic  <hniksic@arsdigita.com>
9424
9425         * host.c (realhost): Add HOST to the list with quality==0 only if
9426         it wasn't already there.
9427         Based on analysis by Lu Guohan <feng@public.bjnet.edu.cn>.
9428
9429 2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
9430
9431         * url.c (get_urls_file): Ditto.
9432         (convert_links): Ditto.
9433
9434         * html-url.c (get_urls_html): Use read_file() instead of
9435         load_file().
9436
9437         * utils.c (read_file): New function, instead of the old
9438         load_file().
9439         (read_file_free): Ditto.
9440
9441         * url.c (findurl): Search only for the supported protocols.
9442         (convert_links): Use fwrite() when writing out a region of
9443         characters.
9444
9445 2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
9446
9447         * ftp-ls.c: Move html_quote_string and ftp_index here.
9448
9449         * url.c: Remove get_urls_html, since that's now in html-url.c.
9450
9451         * html-url.c: New file.
9452
9453         * html-parse.c: New file.
9454
9455 2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
9456
9457         * init.c (run_wgetrc): Don't bother killing off '\r' since
9458         pars_line() skips whitespace at end of line anyway.
9459         (parse_line): Oops, it didn't.  Now it does.
9460
9461         * recur.c (parse_robots): Ditto here.
9462
9463         * ftp-ls.c (ftp_parse_unix_ls): Kill off the newline character
9464         manually because read_whole_line no longer does.
9465
9466         * utils.c (read_whole_line): Rewrite to: a) use less memory
9467         (reallocates to needed size after work), b) work faster -->
9468         fgets() instead of getc, c) be more correct --> doesn't kill the
9469         newline character at the end of line.
9470
9471 2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
9472
9473         * init.c (comind): Initialize MAX to array size - 1.
9474
9475 2000-11-08  Hrvoje Niksic  <hniksic@arsdigita.com>
9476
9477         * url.c (construct): Changed last_slash[-1] to *(last_slash - 1).
9478         Suggested by Edward J. Sabol.
9479
9480 2000-11-08  Hrvoje Niksic  <hniksic@arsdigita.com>
9481
9482         * url.c (construct): Handle the case where host name is not
9483         followed by a slash.
9484
9485 2000-11-06  Hrvoje Niksic  <hniksic@arsdigita.com>
9486
9487         * init.c: commands[] need to be sorted!  ("base" wasn't.)
9488
9489 2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
9490
9491         * wget.h (DO_REALLOC_FROM_ALLOCA): Use braces to disambiguate
9492         `if'.
9493
9494 2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
9495
9496         * url.c (construct): Insert unneeded initialization for the
9497         compiler to shut up.
9498
9499         * config.h.in: Define _XOPEN_SOURCE to 500 to get the prototype
9500         for strptime() (*duh*).  Define _SVID_SOURCE to get S_IFLNK which
9501         otherwise gets lost when you define _XOPEN_SOURCE.
9502
9503         * utils.c (touch): Include the file name in the error message.
9504         From Debian.
9505
9506 2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
9507
9508         * log.c (logvprintf): Use vsnprintf() in all cases.  If necessary,
9509         resize the buffer to fit the formated message.  That way, messages
9510         of arbitrary size may be printed.
9511         (logvprintf): Use saved_append() to optionally log the last
9512         several lines of output.
9513         (logputs): Ditto.
9514         (log_close): Adapt to new data structures.
9515         (log_dump): Ditto.
9516         (redirect_output): Print messages to stderr, not to stdout.
9517
9518         * log.c (saved_append_1): New function.  Replaces the old logging
9519         system ("log all output until 10M characters") with a new, much
9520         more reasonable one ("log last screenful of text").
9521         (saved_append): New function; call saved_append_1.
9522         (free_log_line): New function.
9523
9524 2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
9525
9526         * url.c (construct): Fix comment.
9527         (find_last_char): Document.
9528
9529 2000-11-04  Hrvoje Niksic  <hniksic@arsdigita.com>
9530
9531         * snprintf.c: New file.
9532
9533 2000-11-03  Hrvoje Niksic  <hniksic@arsdigita.com>
9534
9535         * wget.h: If HAVE_STDARG_H is not defined, don't declare argument
9536         types to logprintf() and debug_logprintf().
9537
9538 2000-11-02  Hrvoje Niksic  <hniksic@arsdigita.com>
9539
9540         * ftp.c (ftp_loop_internal): Hide the password from the URL when
9541         printing non-verbose.  Problem spotted by Dariusz Mlynarczyk
9542         <darekm@bydg.lomac.com.pl>.
9543
9544 2000-11-02  Junio Hamano  <junio@twinsun.com>
9545
9546         * ftp-basic.c (ftp_login): Make comparison case-insensitive.
9547
9548 2000-11-02  Tyler Riddle  <triddle@liquidmarket.com>
9549
9550         * http.c (known_authentication_scheme_p): Recognize NTML
9551         authentication.
9552         (create_authorization_line): Treat NTML the same as `Basic'.
9553
9554 2000-11-02  Hrvoje Niksic  <hniksic@arsdigita.com>
9555
9556         * retr.c (retrieve_url): Free url before returning.
9557         (retrieve_url): Free mynewloc before returning.
9558         Spotted by Mark A. Mankins <Mankins_Mark@prc.com>.
9559
9560 2000-11-02  Hrvoje Niksic  <hniksic@arsdigita.com>
9561
9562         * url.c (parseurl): Remove possible reading past the end of
9563         sup_protos[].  Spotted by Mark A. Mankins <Mankins_Mark@prc.com>.
9564
9565 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
9566
9567         * main.c (main): In case of opt.downloaded overflowing, print
9568         <overflow> instead of a totally bogus random value.
9569
9570         * retr.c (retrieve_from_file): Ditto.
9571
9572         * recur.c (recursive_retrieve): Ditto.
9573
9574         * main.c (main): Ditto.
9575
9576         * http.c (http_loop): Ditto.
9577
9578         * ftp.c (ftp_loop_internal): Use downloaded_increase() instead of
9579         `+=', and downloaded_exceeds_quota() instead of the simple-minded
9580         check.
9581         (ftp_retrieve_list): Ditto.
9582         (ftp_retrieve_dirs): Ditto.
9583         (ftp_retrieve_glob): Ditto.
9584
9585         * retr.c (downloaded_increase): New function.  Notice overflows of
9586         opt.downloaded.
9587         (downloaded_exceeds_quota): Make sure that opt.downloaded is not
9588         used if it overflowed.
9589
9590         * options.h (struct options): New member downloaded_overflow.
9591
9592 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
9593
9594         * wget.h (enum): Remove extra space after last enumeration.
9595
9596 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
9597
9598         * main.c (main): Use legible_very_long() for printing
9599         opt.downloaded.
9600
9601         * utils.c (legible_1): New function that operates on strings and
9602         does the brunt of legible()'s work.
9603         (legible): Use legible_1().
9604         (legible_very_long): New function; dump the argument with
9605         sprintf(), and call legible_1().
9606
9607         * options.h (struct options): Use VERY_LONG_TYPE for
9608         opt.downloaded.
9609
9610         * sysdep.h (VERY_LONG_TYPE): Define it to have a 64-bit or greater
9611         type.
9612
9613         * config.h.in: Make sure that SIZEOF_LONG and SIZEOF_LONG_LONG get
9614         defined.  Define HAVE_LONG_LONG if long long is available.
9615
9616 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
9617
9618         * utils.c (long_to_string): Update with a later, better version.
9619
9620 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
9621
9622         * url.c (path_simplify_with_kludge): New function.
9623         (path_simplify_with_kludge): Disable it.  Instead...
9624         (parse_dir): ...make sure that at this point the right thing is
9625         done, i.e. that "query" part of the URL (?...) is always assigned
9626         to the file, never to the directory portion of the path.
9627
9628 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
9629
9630         * retr.c (retrieve_url): Detect redirection cycles.
9631
9632 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
9633
9634         * url.c (get_urls_html): Decode HTML entities using
9635         html_decode_entities.
9636
9637         * html.c (htmlfindurl): Don't count the `#' in numeric entities
9638         (&#NNN;) as an HTML fragemnt.
9639         (html_decode_entities): New function.
9640
9641 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
9642
9643         * html.c (htmlfindurl): Fix recognition of # HTML fragments.
9644
9645 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
9646
9647         * url.c (construct): Rewritten for clarity.  Avoids the
9648         unnecessary copying and stack-allocation the old version
9649         performed.
9650
9651 2000-10-31  Hrvoje Niksic  <hniksic@arsdigita.com>
9652
9653         * ftp.c (getftp): Ditto.
9654
9655         * http.c (gethttp): Rewind the stream when retrying from scratch.
9656
9657 2000-10-31  Hrvoje Niksic  <hniksic@arsdigita.com>
9658
9659         * retr.c (retrieve_url): Use url_concat() to handle relative
9660         redirections instead of /ad hoc/ code.
9661
9662         * url.c (url_concat): New function encapsulating weird
9663         construct().
9664         (urllen_http_hack): New function.
9665         (construct): When constructing new URLs, recognize that `?' does
9666         not form part of the file name in HTTP.
9667
9668 2000-10-13  Adrian Aichner  <adrian@xemacs.org>
9669
9670         * retr.c: Add msec timing support for WINDOWS.
9671         * retr.c (reset_timer): GetSystemTime() on WINDOWS.
9672         * retr.c (elapsed_time): Calculate delta time to msec on WINDOWS.
9673
9674 2000-10-27  Dan Harkless  <wget@harkless.org>
9675
9676         * retr.c (retrieve_url): Manually applied T. Bharath
9677         <TBharath@responsenetworks.com>'s patch to get wget to grok
9678         illegal relative URL redirects.  Reformatted and re-commented it.
9679
9680 2000-10-23  Dan Harkless  <wget@harkless.org>
9681
9682         * connect.c (make_connection and bindport): Manually applied Rob
9683         Mayoff <mayoff@dqd.com>'s 1.5.3 patch to add --bind-address,
9684         changing coding style to GNU's.
9685
9686         * ftp.c (ftp_loop_internal): --delete-after wasn't implemented for
9687         files downloaded via FTP.  Per a comment, .listing files were not
9688         counted towards number of bytes and files downloaded because they're
9689         deleted anyway.  Well, they aren't under -nr, so count them then.
9690
9691         * init.c: Manually applied Rob Mayoff's 1.5.3 patch to add
9692         --bind-address, alphabetizing, changing coding style to GNU's,
9693         commenting, and renaming cmd_ip_address() to cmd_address() to
9694         imply hostnames also okay.
9695
9696         * main.c (main): --delete-after didn't delete the root of the
9697         tree.  Ignore --convert-links if --delete-after was specified.
9698         Manually applied Rob Mayoff's 1.5.3 patch to add --bind-address,
9699         fixing duplicate use of added-since-1.5.3 case value.
9700         (print_help): Clarified that --delete-after deletes local files.
9701         Rob forgot to add a line for his new --bind-address option.
9702
9703         * options.h (struct options): Manually applied Rob Mayoff's patch
9704         to add --bind-address (bind_address structure member).
9705
9706         * recur.c (recursive_retrieve): Improved comment; added DEBUGP().
9707         Ignore --convert-links if --delete-after was specified.
9708
9709         * retr.c (retrieve_from_file): Just added a DEBUGP().
9710
9711 2000-10-19  Dan Harkless  <wget@harkless.org>
9712
9713         * ftp.c (ftp_loop_internal): downloaded_file() enumerators changed.
9714         (getftp): Applied Piotr Sulecki <Piotr.Sulecki@ios.krakow.pl>'s
9715         patch to work around FTP servers that incorrectly respond to the
9716         "REST" command with the remaining size rather than the total file size.
9717
9718         * http.c (gethttp): Improved a comment and added code to tack on
9719         ".html" to text/html files without that extension when -E specified.
9720         (http_loop): Use new downloaded_file() enumerators and deal with
9721         the case of gethttp() called xrealloc() on u->local.
9722
9723         * init.c (commands): Added new "htmlextension" command.
9724         Also renamed John Daily's cmd_quad() to the more descriptive
9725         cmd_lockable_boolean(), alpha-sorted the CMD_DECLARE()s and
9726         removed duplicate cmd_boolean() declaration.
9727
9728         * main.c (print_help): Added my new -E / --html-extension option.
9729         (main): Undocumented --email-address option previously used -E synonym.
9730         Stole it away for the much more deserving --html-extension's use.
9731
9732         * options.h (struct options): Added html_extension field.
9733
9734         * url.c (convert_links): URL X that we saved as X.html locally due
9735         to -E needs to be backed up as X.orig, not X.html.orig.  Added comments.
9736         (downloaded_file): Now remembers if we added .html extension to a file.
9737
9738         * url.h (downloaded_file_t): Added extra enumerators to support above.
9739         (downloaded_file): Now takes and returns a downloaded_file_t.
9740
9741         * wget.h (unnamed "dt" enum): Added ADDED_HTML_EXTENSION enumerator.
9742
9743 2000-10-09  Dan Harkless  <wget@harkless.org>
9744
9745         * html.c (htmlfindurl): Added unneeded initialization to quiet warning.
9746
9747         * main.c (print_help): Clarified what --retr-symlinks does.
9748
9749 2000-09-15  John Daily  <jdaily@cyberdude.com>
9750
9751         * init.c: Add support for "always" and "never" values to allow
9752         .wgetrc to override commandline (useful e.g. with .pm files
9753         calling `wget --passive-ftp' when your firewall doesn't allow that).
9754
9755         * ftp.c (getftp): passive_ftp is first option to support always/never.
9756
9757 2000-08-30  Dan Harkless  <wget@harkless.org>
9758
9759         * ftp.c (ftp_retrieve_list): Use new INFINITE_RECURSION #define.
9760
9761         * html.c: htmlfindurl() now takes final `dash_p_leaf_HTML' parameter.
9762         Wrapped some > 80-column lines.  When -p is specified and we're at a
9763         leaf node, do not traverse <A>, <AREA>, or <LINK> tags other than
9764         <LINK REL="stylesheet">.
9765
9766         * html.h (htmlfindurl): Now takes final `dash_p_leaf_HTML' parameter.
9767
9768         * init.c: Added new -p / --page-requisites / page_requisites option.
9769
9770         * main.c (print_help): Clarified that -l inf and -l 0 both allow
9771         infinite recursion.  Changed the unhelpful --mirrior description
9772         to simply give the options it's equivalent to.  Added new -p option.
9773         (main): Added some comments; handle new -p / --page-requisites.
9774
9775         * options.h (struct options): Added new page_requisites field.
9776
9777         * recur.c: Changed "URL-s" to "URLs" and "HTML-s" to "HTMLs".
9778         Calculate and pass down new `dash_p_leaf_HTML' parameter to
9779         get_urls_html().  Use new INFINITE_RECURSION #define.
9780
9781         * retr.c: Changed "URL-s" to "URLs".  get_urls_html() now takes
9782         final `dash_p_leaf_HTML' parameter.
9783
9784         * url.c: get_urls_html() and htmlfindurl() now take final
9785         `dash_p_leaf_HTML' parameter.
9786
9787         * url.h (get_urls_html): Now takes final `dash_p_leaf_HTML' parameter.
9788
9789         * wget.h: Added some comments and new INFINITE_RECURSION #define.
9790
9791 2000-08-23  Dan Harkless  <wget@harkless.org>
9792
9793         * main.c (print_help): -B / --base was not mentioned.
9794
9795 2000-08-22  Dan Harkless  <wget@harkless.org>
9796
9797         * main.c (print_help): Modified -nc description to mention that it
9798         also prevents the creation of multiple versions of the same file
9799         with ".<number>" suffixes.
9800
9801 2000-07-14  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
9802
9803         * retr.c (retrieve_url): Consistently strdup opt.referer when
9804         setting u->referer.
9805
9806 2000-06-09  Dan Harkless  <wget@harkless.org>
9807
9808         * main.c (print_help): --help output for --waitretry was over 80 cols.
9809
9810 2000-06-09  Hrvoje Niksic  <hniksic@iskon.hr>
9811
9812         * url.c (encode_string): Fix comment.
9813         Suggested by Herold Heiko <Heiko.Herold@previnet.it>.
9814
9815 2000-06-01  Const Kaplinsky  <const@ce.cctpu.edu.ru>
9816
9817         * ftp.c (ftp_retrieve_list): Change permissions only on plain
9818         files.
9819
9820 2000-06-01  Hrvoje Niksic  <hniksic@iskon.hr>
9821
9822         * url.c (str_url): Print the port number only if it's different
9823         from the default port number for that protocol.
9824
9825 2000-05-22  Dan Harkless  <wget@harkless.org>
9826
9827         * main.c (print_help): Added --help line for Damir Dzeko
9828         <ddzeko@zesoi.fer.hr>'s until-now-undocumented --referer option.
9829         Removed comments that --referer and --waitretry were undocumented.
9830         Changed "`.wgetrc' command" to "`.wgetrc'-style command" on --help
9831         line for --execute.
9832
9833 2000-05-18  Hrvoje Niksic  <hniksic@iskon.hr>
9834
9835         * ftp.c (getftp): Ditto.
9836
9837         * http.c (gethttp): Check for return value of fclose/fflush.
9838
9839 2000-04-12  Hrvoje Niksic  <hniksic@iskon.hr>
9840
9841         * host.c (store_hostaddress): Instead of shifting ADDR, start
9842         copying from the correct address.
9843
9844 2000-04-12  Hrvoje Niksic  <hniksic@iskon.hr>
9845
9846         * http.c (gethttp): Don't free REQUEST -- it was allocated with
9847         alloca().
9848         Pointed out by Gisle Vanem <gvanem@eunet.no>.
9849
9850 2000-04-04  Dan Harkless  <wget@harkless.org>
9851
9852         * host.c (store_hostaddress): R. K. Owen's patch introduces a
9853         "left shift count >= width of type" warning on 32-bit
9854         architectures.  Got rid of it by tricking the compiler w/ a variable.
9855
9856         * url.c (UNSAFE_CHAR): The macro didn't include all the illegal
9857         characters per RFC1738, namely everything above '~'.  It also
9858         generated a warning on OSes where char =~ unsigned char.  Fixed.
9859
9860 1998-10-17  Hrvoje Niksic  <hniksic@srce.hr>
9861
9862         * http.c (http_process_type): Removed needless strdup(), a memory
9863         leak.
9864
9865 1998-09-25  Hrvoje Niksic  <hniksic@srce.hr>
9866
9867         * html.c (htmlfindurl): Set PH to the first occurrence of `#'.
9868
9869 1998-09-25  Simon Munton  <simonm@m4data.co.uk>
9870
9871         * init.c (wgetrc_file_name): Don't free HOME under Windows.
9872
9873 1998-12-01  "R. K. Owen"  <rkowen@Nersc.GOV>
9874
9875         * host.c (store_hostaddress): Fix for big endian 64-bit machines.
9876
9877 1998-12-01  Hrvoje Niksic  <hniksic@srce.hr>
9878
9879         * url.c (UNSAFE_CHAR): New macro.
9880         (contains_unsafe): Use it.
9881         (encode_string): Ditto.
9882
9883 1998-12-01  Hrvoje Niksic  <hniksic@srce.hr>
9884
9885         * main.c (i18n_initialize): Use LC_MESSAGES only if available.
9886
9887 2000-03-31  Hrvoje Niksic  <hniksic@srce.hr>
9888
9889         * Use TOUPPER/TOLOWER.
9890
9891 1998-12-22  Alexander V. Lukyanov  <lav@yars.free.net>
9892
9893         * ftp-opie.c (btoe): Zero-terminate OSTORE.
9894
9895 2000-03-21  Hrvoje Niksic  <hniksic@iskon.hr>
9896
9897         * wget.h (DO_REALLOC_FROM_ALLOCA): Ditto.
9898
9899         * sysdep.h (ISALNUM): New macro.
9900         (TOLOWER): Ditto.
9901         (TOUPPER): Ditto.
9902
9903 2000-03-10  Dan Harkless  <wget@harkless.org>
9904
9905         * html.c (idmatch): Implemented checking of my new --follow-tags
9906         and --ignore-tags options.
9907
9908         * init.c (commands): Added comment reminding people adding new
9909         entries doing allocation to add corresponding freeing in cleanup().
9910         (commands): Added new followtags and ignoretags commands.
9911         (cleanup): Free storage for new followtags and ignoretags.
9912
9913         * main.c: Use of "comma-separated list" was random -- normalized
9914         it.  Did some alphabetization.  Added comments pointing out
9915         "Options without arguments" and "Options accepting an argument"
9916         sections of long_options[].  Added new options --follow-tags and
9917         -G / --ignore-tags.  Added comment that Damir's --referer is
9918         currently undocumented.  Added comment that Heiko's --waitretry is
9919         partially undocumented (mentioned in --help but not in
9920         wget.texi).  Moved improperly sorted 24, 129, and 'G' cases.
9921
9922         * options.h (struct options): Added new fields follow_tags and
9923         ignore_tags.
9924
9925         * wget.h: Added "#define EQ 0" so we can say "strcmp(a, b) == EQ".
9926
9927 2000-03-02  Dan Harkless  <wget@harkless.org>
9928
9929         * ftp.c (ftp_loop_internal): Heiko introduced "suggest explicit
9930         braces to avoid ambiguous `else'" warnings.  Eliminated them.
9931
9932         * http.c (gethttp): Dan Berger's query string patch is totally
9933         bogus.  If you have two different URLs, gen_page.cgi?page1 and
9934         get_page.cgi?page2, they'll both be saved as get_page.cgi and the
9935         second will overwrite the first.  Also, parameters to implicit
9936         CGIs, like "http://www.host.com/db/?2000-03-02" cause the URLs to
9937         be printed with trailing garbage characters, and could seg fault.
9938         Backing out the patch, which Dan B. informed me by email was just
9939         a kludge to download StarOffice from Sun made necessary due to
9940         wget's unconditional escaping of certain characters (room for an
9941         option there?).
9942         (http_loop): Heiko introduced "suggest explicit braces to avoid
9943         ambiguous `else'" warnings.  Eliminated them.
9944
9945         * main.c: Heiko's --wait / --waitretry backwards compatibility
9946         code looks to have been totally untested -- automatic variable
9947         'wr' was used without being initialized, and a long int was passed
9948         into setval()'s char* val parameter.
9949
9950         * recur.c (parse_robots): Applied Edward J. Sabol
9951         <sabol@alderaan.gsfc.nasa.gov>'s patch for Guan Yang's reported
9952         problem with "User-agent:<space>*<space>" lines in robots.txt.
9953
9954         * url.c (parseurl, str_url): Removing Dan Berger's code (see
9955         http.c above for explanation).
9956
9957 1999-08-25  Heiko Herold  <Heiko.Herold@previnet.it>
9958
9959         * ftp.c: Respect new option waitretry.
9960
9961 2000-01-30  Damir Dzeko  <ddzeko@zesoi.fer.hr>
9962
9963         * http.c (gethttp): Send custom Referer, if required.
9964
9965 1999-09-24  Charles G Waldman  <cgw@fnal.gov>
9966
9967         * netrc.c (parse_netrc): Allow passwords to contain spaces.
9968
9969         * netrc.c (parse_netrc): New function.
9970
9971 1999-09-17  Dan Berger  <dberger@ix.netcom.com>
9972
9973         * http.c (gethttp): Send it.
9974
9975         * url.c (parseurl): Detect query string in HTTP URL-s.
9976         (str_url): Print it.
9977
9978 2000-03-02  HIROSE Masaaki  <hirose31@t3.rim.or.jp>
9979
9980         * html.c (html_allow): Add <link href=...> and <script src=...>.
9981
9982 1999-05-02  andrew deryabin  <djsf@softhome.net>
9983
9984         * http.c (gethttp): Specify port in `Host' header only if it's
9985         different from 80.
9986
9987 1998-11-03  Edward J. Sabol  <sabol@alderaan.gsfc.nasa.gov>
9988
9989         * recur.c (recursive_retrieve): If a finite maximum depth is
9990         specified, and we're are already at that depth, don't download the
9991         HTML file for parsing.
9992
9993 2000-03-01  Dan Harkless  <wget@harkless.org>
9994
9995         * ftp.c (ftp_loop_internal): Call new downloaded_file() function,
9996         even though we don't do conversion on HTML files retrieved via
9997         FTP, so _current_ usage of downloaded_file() makes this call unneeded.
9998         (ftp_retrieve_list): Added a comment saying where we need to
9999         stat() a .orig file if FTP'd HTML file conversion is ever implemented.
10000         (ftp_retrieve_list): "Local file '%s' is more recent," is sometimes
10001         a lie -- reworded as "Server file no newer than local file '%s' --".
10002
10003         * http.c (http_loop): Fixed a typo and clarified a comment.
10004         (http_loop): When -K and -N are specified together, compare size
10005         and timestamp of server file X against local file X.orig (if
10006         extant) rather than converted local file X.
10007         (http_loop): "Local file '%s' is more recent," is sometimes a lie
10008         -- reworded as "Server file no newer than local file '%s' --".
10009         (http_loop): Call new downloaded_file() function to prevent
10010         wrongful overwriting of .orig file when -N is specified.
10011
10012         * url.c (convert_links): When -K specified, only rename X to
10013         X.orig if downloaded_file() returns TRUE.  Otherwise when we skip
10014         file X due to -N, we clobber an X.orig from a previous invocation.
10015         (convert_links): Call the failsafe xstrdup(), not the real strdup().
10016         (convert_links): Added a note asking anyone who understands how
10017         multiple URLs can correspond to a single file to comment it.
10018         (downloaded_file): Added this new function.
10019
10020         * url.h (downloaded_file): Added prototype for this new function
10021         as well as its downloaded_file_t enum type.
10022
10023         * wget.h (boolean): Added this new typedef and TRUE and FALSE #defines.
10024
10025 2000-02-29  Dan Harkless  <wget@harkless.org>
10026
10027         * version.c: Upped version to developer-only "1.5.3+dev".
10028
10029 2000-02-18  Dan Harkless  <wget@harkless.org>
10030
10031         * init.c (backup_converted): Added this new option.
10032
10033         * main.c (-K / --backup-converted): Added this new option.
10034
10035         * options.h (backup_converted): Added this new option.
10036
10037         * url.c (convert_links): When backup_converted is specified, save
10038         file X as X.orig before converting.
10039
10040         * url.h (urlpos): Fixed typo -- said "Rekative" instead of "Relative".
10041
10042 1998-09-21  Hrvoje Niksic  <hniksic@srce.hr>
10043
10044         * version.c: Wget 1.5.3 is released.
10045
10046 1998-09-21  Hrvoje Niksic  <hniksic@srce.hr>
10047
10048         * host.c (ftp_getaddress): Don't warn when reverse-lookup of local
10049         address doesn't yield FQDN.
10050
10051 1998-09-21  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
10052
10053         * cmpt.c (strerror): Fix declaration of sys_errlist.
10054
10055 1998-09-11  Hrvoje Niksic  <hniksic@srce.hr>
10056
10057         * main.c (main): Don't use an array subscript as the first
10058         argument to STRDUP_ALLOCA.
10059         From Kaveh R. Ghazi.
10060
10061 1998-09-11  Szakacsits Szabolcs  <szaka@sienet.hu>
10062
10063         * html.c (htmlfindurl): Download table background.
10064
10065 1998-09-11  Hans Grobler  <grobh@conde.ee.sun.ac.za>
10066
10067         * init.c (parse_line): Would free *com before allocating it.
10068         (parse_line): Would free com instead of *com.
10069
10070 1998-09-10  Howard Gayle  <howard@fjst.com>
10071
10072         * url.c (get_urls_html): Would drop the last character of the
10073         link.
10074
10075 1998-09-10  Hrvoje Niksic  <hniksic@srce.hr>
10076
10077         * http.c (http_loop): Don't print status code if quiet.
10078
10079 1998-09-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10080
10081         * log.c: Use <stdarg.h> only when __STDC__.
10082
10083 1998-09-10  Adam D. Moss  <adam@foxbox.org>
10084
10085         * html.c (htmlfindurl): Download <layer src=...>.
10086
10087 1998-09-10  Howard Gayle  <howard@fjst.com>
10088
10089         * ftp.c (ftp_retrieve_list): Don't update the time stamp of a file
10090         not retrieved.
10091
10092 1998-06-27  Hrvoje Niksic  <hniksic@srce.hr>
10093
10094         * utils.c: Include <libc.h> on NeXT.
10095
10096 1998-06-26  Heinz Salzmann  <heinz.salzmann@intermetall.de>
10097
10098         * url.c (get_urls_html): Fix calculation of URL position.
10099
10100 1998-06-23  Hrvoje Niksic  <hniksic@srce.hr>
10101
10102         * version.c: Wget 1.5.2 is released.
10103
10104 1998-06-23  Dave Love  <d.love@dl.ac.uk>
10105
10106         * ftp.c, init.c, netrc.c: Include errno.h.
10107
10108         * http.c: Include errno.h and time header.
10109
10110         * Makefile.in (exext): Define.
10111         (install.bin, uninstall.bin): Use it.
10112
10113 1998-06-21  Hrvoje Niksic  <hniksic@srce.hr>
10114
10115         * http.c (http_loop): Don't attempt to compare local and remote
10116         sizes if the remote size is unknown.
10117
10118 1998-06-16  Hrvoje Niksic  <hniksic@srce.hr>
10119
10120         * url.c (get_urls_html): Use malloc() instead of alloca in the
10121         loop.
10122
10123 1998-06-13  Hrvoje Niksic  <hniksic@srce.hr>
10124
10125         * version.c: Wget 1.5.2-b4 is released.
10126
10127 1998-06-13  Hrvoje Niksic  <hniksic@srce.hr>
10128
10129         * url.c (get_urls_html): Ignore spaces before and after the URI.
10130
10131 1998-06-08  Wanderlei Antonio Cavassin  <cavassin@conectiva.com.br>
10132
10133         * ftp.c (getftp): Translate `done'.
10134
10135 1998-06-06  Hrvoje Niksic  <hniksic@srce.hr>
10136
10137         * version.c: Wget 1.5.2-b3 is released.
10138
10139 1998-06-06  Alexander Kourakos  <awk@bnt.com>
10140
10141         * init.c (cleanup): Close dfp, don't free it.
10142
10143 1998-06-06  Hrvoje Niksic  <hniksic@srce.hr>
10144
10145         * utils.c (make_directory): Twiddle.
10146
10147         * config.h.in: Added template for access().
10148
10149 1998-06-05  Mathieu Guillaume  <mat@cythere.com>
10150
10151         * html.c (htmlfindurl): Download <input src=...>
10152
10153 1998-06-03  Hrvoje Niksic  <hniksic@srce.hr>
10154
10155         * utils.c (file_exists_p): Use access() with two arguments.
10156
10157 1998-05-27  Martin Kraemer  <Martin.Kraemer@mch.sni.de>
10158
10159         * netrc.c (parse_netrc): Correct logic.
10160
10161 1998-05-27  Hrvoje Niksic  <hniksic@srce.hr>
10162
10163         * ftp.c (getftp): Added `break'; suggested by Lin Zhe Min
10164         <ljm@ljm.wownet.net>.
10165
10166 1998-05-24  Hrvoje Niksic  <hniksic@srce.hr>
10167
10168         * version.c: Wget 1.5.2-b2 is released.
10169
10170 1998-05-18  Juan Jose Rodriguez  <jcnsoft@jal1.telmex.net.mx>
10171
10172         * mswindows.h: Don't translate mkdir to _mkdir under Borland.
10173
10174 1998-05-17  Hrvoje Niksic  <hniksic@srce.hr>
10175
10176         * retr.c (elapsed_time): Return correct value when
10177         HAVE_GETTIMEOFDAY is undefined.
10178
10179 1998-05-13  Hrvoje Niksic  <hniksic@srce.hr>
10180
10181         * version.c: Wget 1.5.2-b1 is released.
10182
10183 1998-05-08  Hrvoje Niksic  <hniksic@srce.hr>
10184
10185         * getopt.c (_getopt_internal): Use exec_name instead of argv[0].
10186         (_getopt_internal): Don't translate `#if 0'-ed strings.
10187
10188 1998-05-06  Douglas E. Wegscheid  <wegscd@whirlpool.com>
10189
10190         * mswindows.c (ws_handler): Use fork_to_background().
10191
10192 1998-05-05  Hrvoje Niksic  <hniksic@srce.hr>
10193
10194         * version.c: Wget 1.5.1 is released.
10195
10196 1998-05-05  Hrvoje Niksic  <hniksic@srce.hr>
10197
10198         * http.c (parse_http_status_line): Avoid `minor' and `major'
10199         names.
10200
10201 1998-05-02  Hrvoje Niksic  <hniksic@srce.hr>
10202
10203         * utils.c (mkdirhier): Renamed to make_directory.
10204
10205 1998-05-01  Hrvoje Niksic  <hniksic@srce.hr>
10206
10207         * mswindows.c (fork_to_background): Define under Windows.
10208
10209         * utils.c (fork_to_background): New function.
10210
10211         * html.c (htmlfindurl): Removed rerdundant casts.
10212
10213 1998-05-01  Douglas E. Wegscheid  <wegscd@whirlpool.com>
10214
10215         * mswindows.c (ws_mypath): Cache the path.
10216
10217 1998-04-30  Douglas E. Wegscheid  <wegscd@whirlpool.com>
10218
10219         * ftp.h: Prefix enum ftype members with FT_.
10220
10221         * ftp-ls.c, ftp.c, html.h: Adjust accordingly.
10222
10223         * mswindows.h: Use stat under Borland, _stat under MSVC.
10224
10225 1998-04-28  Hrvoje Niksic  <hniksic@srce.hr>
10226
10227         * http.c (known_authentication_scheme_p): New function.
10228         (gethttp): Handle authorization more correctly.
10229
10230         * ftp-basic.h: Removed.
10231
10232         * cmpt.h: Removed.
10233
10234         * utils.c: Include <unistd.h> before <pwd.h>; needed under SunOS
10235         with gcc 2.8.
10236         (numdigit): Use `while' loop.
10237
10238         * http.c (create_authorization_line): Detect authentication
10239         schemes case-insensitively.
10240
10241         * http.c (extract_header_attr): Use strdupdelim().
10242         (digest_authentication_encode): Move declaration of local
10243         variables to smaller scope.
10244         (digest_authentication_encode): Reset REALM, OPAQUE and NONCE.
10245         (create_authorization_line): Detect authentication schemes
10246         case-insensitively.
10247
10248         * utils.c (touch): Constify.
10249
10250         * http.c (gethttp): Report a nicer error when no data is received.
10251
10252         * rbuf.h (RBUF_READCHAR): Ditto.
10253
10254         * ftp-basic.c (ftp_response): Use sizeof.
10255
10256 1998-04-27  Hrvoje Niksic  <hniksic@srce.hr>
10257
10258         * retr.c (print_percentage): EXPECTED is long, not int.
10259         (print_percentage): Use floating-point arithmetic to avoid
10260         overflow with large files' sizes multiplied with 100.
10261
10262 1998-04-27  Gregor Hoffleit  <flight@mathi.uni-heidelberg.de>
10263
10264         * config.h.in: Added pid_t stub.
10265
10266         * sysdep.h (S_ISREG): Moved here from mswindows.h (NeXT doesn't
10267         define it).
10268
10269 1998-04-20  Hrvoje Niksic  <hniksic@srce.hr>
10270
10271         * version.c: Wget 1.5.0 is released.
10272
10273 1998-04-18  Hrvoje Niksic  <hniksic@srce.hr>
10274
10275         * url.c (str_url): Ditto.
10276
10277         * ftp-basic.c (ftp_rest): Use new name.
10278
10279         * utils.c (long_to_string): Renamed from prnum().
10280
10281 1998-04-16  Hrvoje Niksic  <hniksic@srce.hr>
10282
10283         * version.c: Wget 1.5-b17 is released.
10284
10285 1998-04-08  Hrvoje Niksic  <hniksic@srce.hr>
10286
10287         * headers.c (header_get): New argument FLAGS.
10288
10289         * http.c (gethttp): If request is malformed, bail out of the
10290         header loop.
10291         (gethttp): Check for empty header *after* the status line checks.
10292         (gethttp): Disallow continuations for status line.
10293
10294 1998-04-08  Hrvoje Niksic  <hniksic@srce.hr>
10295
10296         * version.c: Wget 1.5-b16 is released.
10297
10298 1998-04-08  Hrvoje Niksic  <hniksic@srce.hr>
10299
10300         * init.c (commands): Renamed `always_rest' to `continue'.
10301
10302 1998-04-05  Hrvoje Niksic  <hniksic@srce.hr>
10303
10304         * all: Use it.
10305
10306         * log.c (logputs): New argument.
10307         (logvprintf): Ditto.
10308         (logprintf): Ditto.
10309
10310 1998-04-04  Hrvoje Niksic  <hniksic@srce.hr>
10311
10312         * http.c (http_atotm): Update comment.
10313
10314         * main.c (i18n_initialize): Set LC_MESSAGES, not LC_ALL.
10315
10316         * wget.h: Renamed ENABLED_NLS to HAVE_NLS.
10317
10318         * main.c (i18n_initialize): New function.
10319         (main): Use it.
10320
10321         * log.c: Include <unistd.h>.
10322
10323         * retr.c (show_progress): Cast alloca to char *.
10324
10325 1998-04-04  Hrvoje Niksic  <hniksic@srce.hr>
10326
10327         * version.c: Wget 1.5-b15 is released.
10328
10329 1998-04-04  Hrvoje Niksic  <hniksic@srce.hr>
10330
10331         * utils.h: Declare file_non_directory_p().
10332
10333 1998-04-03  Hrvoje Niksic  <hniksic@srce.hr>
10334
10335         * main.c (main): It's `tries', not `numtries' now.
10336
10337 1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
10338
10339         * init.c (getperms): Removed.
10340
10341 1998-04-01  Tim Charron  <tcharron@interlog.com>
10342
10343         * log.c (logvprintf): Don't use ARGS twice.
10344
10345 1998-04-01  John  <john@futuresguide.com>
10346
10347         * mswindows.c: Cleaned up.
10348
10349 1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
10350
10351         * version.c: Wget 1.5-b14 is released.
10352
10353 1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
10354
10355         * ftp-opie.c (STRLEN4): New macro.
10356         (btoe): Use it.
10357
10358 1998-04-01  Junio Hamano  <junio@twinsun.com>
10359
10360         * http.c: Document all the Digest functions.
10361
10362 1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
10363
10364         * utils.c (file_non_directory_p): Renamed from isfile().
10365
10366         * mswindows.h (S_ISREG): New macro, suggested by Tim Adam.
10367
10368 1998-03-31  Hrvoje Niksic  <hniksic@srce.hr>
10369
10370         * utils.c (mkdirhier): Use 0777 instead of opt.dirmode.
10371
10372         * init.c (cmd_spec_dotstyle): Use 48 dots per line for binary
10373         style.
10374         (cmd_permissions): Removed.
10375
10376         * config.h.in: Add template for WORDS_BIGENDIAN.
10377
10378 1998-03-31  Junio Hamano  <junio@twinsun.com>
10379
10380         * http.c (HEXD2asc): New macro.
10381         (dump_hash): Use it.
10382
10383 1998-03-31  Hrvoje Niksic  <hniksic@srce.hr>
10384
10385         * version.c: Wget 1.5-b13 is released.
10386
10387 1998-03-31  Hrvoje Niksic  <hniksic@srce.hr>
10388
10389         * main.c (main): Don't try to use `com'.
10390
10391 1998-03-30  Hrvoje Niksic  <hniksic@srce.hr>
10392
10393         * init.c (cmd_permissions): New function.
10394
10395 1998-03-30  Hrvoje Niksic  <hniksic@srce.hr>
10396
10397         * version.c: Wget 1.5-b12 is released.
10398
10399 1998-03-30  Hrvoje Niksic  <hniksic@srce.hr>
10400
10401         * init.c (commands): Renamed `numtries' to `tries'.
10402         (cmd_spec_debug): Removed.
10403         (home_dir): Under Windows, return `C:\' if HOME is undefined.
10404
10405 1998-03-29  Hrvoje Niksic  <hniksic@srce.hr>
10406
10407         * config.h.in: Define _XOPEN_SOURCE.
10408
10409         * init.c (check_user_specified_header): New function.
10410         (cmd_spec_header): Use it.
10411         (cmd_spec_useragent): New function.
10412
10413 1998-03-29  Hrvoje Niksic  <hniksic@srce.hr>
10414
10415         * version.c: Wget 1.5-b11 is released.
10416
10417 1998-03-28  Hrvoje Niksic  <hniksic@srce.hr>
10418
10419         * wget.h: Include <libintl.h> only if NLS is enabled.
10420
10421 1998-03-26  Hrvoje Niksic  <hniksic@srce.hr>
10422
10423         * options.h (struct options): Made `wait' a long.
10424         (struct options): Ditto for `timeout'.
10425
10426 1998-03-19  Hrvoje Niksic  <hniksic@srce.hr>
10427
10428         * utils.c (exists): Renamed to file_exists_p.
10429         (file_exists_p): Use access() if available.
10430
10431 1998-03-17  Hrvoje Niksic  <hniksic@srce.hr>
10432
10433         * utils.c (memfatal): Set save_log_p to 0 to avoid potential
10434         infloop.
10435
10436         * log.c: do_logging -> save_log_p.
10437
10438         * config.h.in: Added template for HAVE_VSNPRINTF.
10439
10440 1998-03-16  Hrvoje Niksic  <hniksic@srce.hr>
10441
10442         * init.c: Ditto.
10443
10444         * http.c: Protect declaration against non-ANSI compiler.
10445
10446         * log.c (logvprintf): Use vsnprintf() if available.
10447
10448         * getopt.c (main): Don't translate test stuff.
10449
10450 1998-03-16  Hrvoje Niksic  <hniksic@srce.hr>
10451
10452         * version.c: Wget 1.5-b10 is released.
10453
10454 1998-03-11  Hrvoje Niksic  <hniksic@srce.hr>
10455
10456         * ftp.c (getftp): Don't translate "CWD %s".
10457
10458         * wget.h (GCC_FORMAT_ATTR): Renamed from FORMAT_ATTR.
10459
10460 1998-03-07  Hrvoje Niksic  <hniksic@srce.hr>
10461
10462         * ftp-opie.c (btoe): Use memcpy() instead of strncat().
10463
10464         * log.c (logputs): New function.
10465         (logvprintf): Renamed from vlogmsg; use logputs().
10466
10467         * retr.c (show_progress): Print `[100%]' when the retrieval is
10468         finished.
10469
10470         * init.c (run_wgetrc): Use FILE, not PATH.
10471         (wgetrc_file_name): Ditto.
10472
10473 1998-03-07  Tim Adam  <tma@osa.com.au>
10474
10475         * recur.c (parse_robots): Correctly reset `entries' on empty
10476         disallow.
10477
10478 1998-03-07  Hrvoje Niksic  <hniksic@srce.hr>
10479
10480         * init.c (cmd_spec_debug): Use cmd_boolean().
10481
10482 1998-02-23  Hrvoje Niksic  <hniksic@srce.hr>
10483
10484         * http.c (gethttp): Create proxy-authorization correctly.
10485
10486 1998-02-22  Hrvoje Niksic  <hniksic@srce.hr>
10487
10488         * md5.c: Ditto.
10489
10490         * getopt.c: Use ANSI function definitions.
10491
10492         * ftp-opie.c: New file.
10493
10494         * options.h: Don't redefine EXTERN.
10495
10496         * init.c: Sort it correctly.
10497
10498 1998-02-22  Hrvoje Niksic  <hniksic@srce.hr>
10499
10500         * version.c: Wget 1.5-b9 is released.
10501
10502 1998-02-22  Hrvoje Niksic  <hniksic@srce.hr>
10503
10504         * recur.c (recursive_retrieve): Reset `first_time'.
10505
10506         * ftp.c (getftp): Added `default' clause to switches of uerr_t.
10507
10508         * rbuf.c (rbuf_peek): Simplified.
10509         (rbuf_flush): Use MINVAL.
10510
10511         * wget.h (MINVAL): Moved from url.h.
10512
10513         * rbuf.h (RBUF_FD): New macro.
10514
10515         * url.c (add_url): Add to the head of the list.
10516
10517         * ftp.c (ftp_retrieve_list): Set the permissions to downloaded
10518         file.
10519         (getftp): Set the default permissions to 0600.
10520
10521 1998-02-21  Hrvoje Niksic  <hniksic@srce.hr>
10522
10523         * url.c (get_urls_html): Ditto.
10524         (convert_links): Ditto.
10525
10526         * recur.c (parse_robots): Ditto.
10527
10528         * html.c (ftp_index): Ditto.
10529
10530         * ftp-ls.c (ftp_parse_unix_ls): Open file as binary.
10531
10532         * init.c (defaults): Initialize `opt' to zero via memset.
10533
10534         * http.c (digest_authentication_encode): goto considered harmful.
10535
10536 1998-02-19  Hrvoje Niksic  <hniksic@srce.hr>
10537
10538         * ftp.c (delelement): Simplify and fix leak.
10539
10540 1998-02-18  Hrvoje Niksic  <hniksic@srce.hr>
10541
10542         * http.c (dump_hash): Use HEXD2ASC instead of home-grown stuff.
10543
10544         * url.h (HEXD2ASC): Removed warning.
10545
10546         * init.c (comind): Use binary search.
10547         (commands): Reorganized.
10548         (setval): Ditto.
10549         (cmd_boolean): New function.
10550         (cmd_number): Ditto.
10551         (cmd_number_inf): Ditto.
10552         (cmd_string): Ditto.
10553         (cmd_vector): Ditto.
10554         (cmd_directory_vector): Ditto.
10555         (cmd_bytes): Ditto.
10556         (cmd_time): Ditto.
10557         (cmd_spec_debug): Ditto.
10558         (cmd_spec_dirmode): Ditto.
10559         (cmd_spec_dirstruct): Ditto.
10560         (cmd_spec_dotstyle): Ditto.
10561         (cmd_spec_header): Ditto.
10562         (cmd_spec_htmlify): Ditto.
10563         (cmd_spec_mirror): Ditto.
10564         (cmd_spec_outputdocument): Ditto.
10565         (cmd_spec_recursive): Ditto.
10566         (settime): Merged with cmd_time().
10567         (setbytes): Merged with cmd_bytes().
10568         (setonoff): Merged with cmd_boolean().
10569         (onoff): Ditto.
10570
10571 1998-02-17  Hrvoje Niksic  <hniksic@srce.hr>
10572
10573         * Makefile.in (distclean): Remove `config.h'.
10574
10575 1998-02-17  Hrvoje Niksic  <hniksic@srce.hr>
10576
10577         * version.c: Wget 1.5-b8 is released.
10578
10579 1998-02-17  Hrvoje Niksic  <hniksic@srce.hr>
10580
10581         * http.c (digest_authentication_encode): New function.
10582         (create_authorization_line): Use it.
10583         (dump_hash): New function.
10584         (digest_authentication_encode): Use it.
10585
10586         * fnmatch.c: Renamed from `mtch.c'.
10587
10588 1998-02-15  Karl Eichwalder  <ke@suse.de>
10589
10590         * main.c (main): Tag "Written by..." string as translatable.
10591
10592 1998-02-15  Hrvoje Niksic  <hniksic@srce.hr>
10593
10594         * wget.h (FREE_MAYBE): New macro.
10595
10596         * http.c (create_authorization_line): Don't use ANSI C string
10597         concatenation feature.
10598         (basic_authentication_encode): Use alloca() for temporary
10599         variables.
10600
10601         * recur.h: Ditto.
10602
10603         * http.c: Ditto.
10604
10605         * headers.h: Ditto.
10606
10607         * ftp-basic.c: Protect declaration against non-ANSI compiler.
10608
10609         * http.c (create_authorization_line): Cast `unsigned char *' to
10610         `char *' for sprintf, to shut up the noisy Digital Unix cc.
10611
10612 1998-02-15  Hrvoje Niksic  <hniksic@srce.hr>
10613
10614         * version.c: Wget 1.5-b7 is released.
10615
10616 1998-02-15  Hrvoje Niksic  <hniksic@srce.hr>
10617
10618         * cmpt.c (strstr): Synched with glibc-2.0.6.
10619
10620         * ftp-basic.c (calculate_skey_response): Ditto.
10621         (calculate_skey_response): Use alloca().
10622
10623         * http.c (create_authorization_line): Work with FSF's version of
10624         md5.c.
10625
10626         * md5.c: New file, from GNU libc.
10627
10628 1998-02-14  Hrvoje Niksic  <hniksic@srce.hr>
10629
10630         * url.h (URL_CLEANSE): Name the temporary variable more carefully.
10631
10632 1998-02-13  Hrvoje Niksic  <hniksic@srce.hr>
10633
10634         * http.c (basic_authentication_encode): New function, instead of
10635         the macro.
10636
10637 1998-02-13  Junio Hamano  <junio@twinsun.com>
10638
10639         * http.c: Add HTTP-DA support.
10640         * ftp-basic.c: Add Opie/S-key support.
10641         * config.h.in, Makefile.in: Add HTTP-DA and Opie/S-key support.
10642         * md5.c, md5.h: New files.
10643
10644 1998-02-13  Hrvoje Niksic  <hniksic@srce.hr>
10645
10646         * http.c (http_process_range): Renamed from hprocrange().
10647         (http_process_range): Parse the whole header.
10648
10649         * headers.c: New file.
10650         (header_process): New function.
10651         (header_get): Renamed from fetch_next_header.
10652
10653         * all: Include utils.h only where necessary.
10654
10655         * wget.h: Declare xmalloc(), xrealloc() and xstrdup() here.
10656
10657         * wget.h: Add provisions for dmalloc.
10658
10659 1998-02-12  Hrvoje Niksic  <hniksic@srce.hr>
10660
10661         * version.c: Wget 1.5-b6 is released.
10662
10663 1998-02-12  Hrvoje Niksic  <hniksic@srce.hr>
10664
10665         * ftp.c (ftp_loop): Determine `filename' more precisely.
10666
10667         * init.c (setval): Don't set `opt.quiet' if output-document is
10668         `-'.
10669
10670         * log.c (log_init): Print to STDERR instead of STDOUT.
10671         (vlogmsg): Use STDERR by default.
10672         (logflush): Ditto.
10673
10674 1998-02-11  Simon Josefsson  <jas@pdc.kth.se>
10675
10676         * host.c: Use addr_in again.
10677
10678 1998-02-08  Karl Eichwalder  <karl@suse.de>
10679
10680         * http.c (gethttp): Fixed typo.
10681
10682 1998-02-08  Hrvoje Niksic  <hniksic@srce.hr>
10683
10684         * version.c: Wget 1.5-b5 is released.
10685
10686 1998-02-08  Hrvoje Niksic  <hniksic@srce.hr>
10687
10688         * retr.c (show_progress): Use it.
10689
10690         * log.c (logflush): New function.
10691
10692         * wget.h: Utilize __attribute__ if on gcc.
10693
10694 1998-02-07  Hrvoje Niksic  <hniksic@srce.hr>
10695
10696         * http.c (base64_encode_line): New argument LENGTH.
10697         (BASIC_AUTHENTICATION_ENCODE): Use it.
10698         (BASIC_AUTHENTICATION_ENCODE): Take length of HEADER into account.
10699
10700         * main.c (main): Fixed fprintf() format mismatch.
10701
10702 1998-02-06  Hrvoje Niksic  <hniksic@srce.hr>
10703
10704         * version.c: Wget 1.5-b4 is released.
10705
10706 1998-02-03  Simon Josefsson  <jas@pdc.kth.se>
10707
10708         * host.c: use sockaddr_in instead of addr_in.
10709
10710 1998-02-04  Hrvoje Niksic  <hniksic@srce.hr>
10711
10712         * init.c (cleanup): Use it.
10713
10714         * recur.c (recursive_cleanup): New function.
10715
10716         * retr.c (retrieve_from_file): Ditto.
10717
10718         * main.c (main): Use it.
10719
10720         * recur.c (recursive_reset): New function.
10721
10722         * retr.c (retrieve_from_file): Ditto.
10723
10724         * main.c (main): Simplify call to recursive_retrieve().
10725
10726         * recur.c (recursive_retrieve): Removed FLAGS argument.
10727
10728         * http.c (gethttp): Changed call to iwrite().
10729
10730 1998-02-03  Hrvoje Niksic  <hniksic@srce.hr>
10731
10732         * url.c (get_urls_html): Ditto.
10733         (free_urlpos): Ditto.
10734         (mkstruct): Ditto.
10735         (construct): Ditto.
10736
10737         * retr.c (retrieve_url): Move declaration of local variables to
10738         smaller scope.
10739
10740         * url.c (urlproto): Use it.
10741         (parseurl): Ditto.
10742         (str_url): Ditto.
10743         (get_urls_html): Ditto.
10744
10745         * utils.h (ARRAY_SIZE): New macro.
10746
10747         * url.c (proto): Moved from url.h.
10748
10749         * url.h (URL_CLEANSE): Reformatted.
10750         (USE_PROXY_P): Renamed from USE_PROXY.
10751
10752         * ftp-basic.c: Adjust to the new interface of iwrite().
10753
10754         * ftp-basic.c (ftp_port): Use alloca().
10755
10756 1998-02-03  Hrvoje Niksic  <hniksic@srce.hr>
10757
10758         * version.c: Wget 1.5-b3 is released.
10759
10760         * host.c (ftp_getaddress): Don't print to stderr directly.
10761
10762         * init.c (setbytes): Support `g' for gigabytes.
10763         (cmdtype): New specification CTIME.
10764         (setval): Use it with settime().
10765         (commands): Use it for WAIT and TIMEOUT.
10766
10767 1998-02-02  Hrvoje Niksic  <hniksic@srce.hr>
10768
10769         * http.c (BASIC_AUTHENTICATION_ENCODE): New macro.
10770         (gethttp): Use it.
10771
10772         * utils.c (unique_name_1): Moved from url.c.
10773         (unique_name): Ditto.
10774
10775         * url.c (url_filename): Ditto.
10776
10777         * log.c (redirect_output): Changed call to unique_name().
10778
10779         * url.c (unique_name_1): Renamed from unique_name().
10780         (unique_name): Changed interface.
10781
10782         * init.c (enum cmdid): Moved from init.h.
10783         (cmdtype): Ditto.
10784         (struct cmd): Ditto.
10785
10786         * main.c (main): Use it.
10787         (main): Moved `--backups' to not have a short option.
10788
10789         * options.h (struct options): New member BACKGROUND.
10790
10791         * main.c (print_help): Rearranged.
10792         (main): New long options for -n* short options: --no-directories,
10793         --no-host-directories, --non-verbose, --no-host-lookup and
10794         --dont-remove-listing.
10795
10796 1998-02-01  Hrvoje Niksic  <hniksic@srce.hr>
10797
10798         * main.c (main): Use log_close().
10799
10800         * log.c: New variable LOGFP.
10801         (vlogmsg): Use it.
10802         (redirect_output): Don't open /dev/null; set LOGFP to stdin
10803         instead.
10804         (log_close): New function.
10805
10806         * options.h (struct options): Removed LFILE.
10807
10808         * log.c (log_enable): Removed.
10809
10810         * main.c (main): Use it.
10811
10812         * log.c (log_init): New function.
10813
10814         * url.c (get_urls_html): Removed needless assignment to BASE.
10815
10816         * host.c (add_hlist): Don't set CMP needlessly.
10817
10818         * utils.c (match_backwards): Ditto.
10819         (in_acclist): Ditto.
10820
10821         * url.c (findurl): Ditto.
10822
10823         * netrc.c (parse_netrc): Ditto.
10824
10825         * log.c (log_dump): Ditto.
10826
10827         * html.c (html_quote_string): Ditto.
10828
10829         * ftp-basic.c (ftp_request): Made static.
10830
10831         * connect.c: Made global variables static.
10832
10833         * url.c (construct): Ditto.
10834
10835         * init.c (init_path): Avoid assignment inside `if'-condition.
10836
10837         * ftp.c: Don't include in.h or winsock.h.
10838
10839         * ftp.c (ftp_loop): Use SZ.
10840
10841         * connect.c (bindport): Cast &addrlen to int *.
10842         (conaddr): Ditto.
10843
10844         * init.c (initialize): Don't use SYSTEM_WGETRC unconditionally.
10845
10846 1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
10847
10848         * ftp.c (getftp): Initialize opt.ftp_pass here.
10849         (ftp_retrieve_dirs): Use alloca().
10850
10851         * init.c (defaults): Don't initialize opt.ftp_pass.
10852
10853         * sysdep.h (S_ISLNK): Declare for OS/2; ditto for lstat.
10854         From Ivan F. Martinez <ivanfm@ecodigit.com.br>.
10855
10856 1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
10857
10858         * recur.c (parse_robots): Check for comments more correctly.
10859
10860         * host.c (ftp_getaddress): Use STRDUP_ALLOCA.
10861         (ftp_getaddress): Add diagnostics when reverse-lookup yields only
10862         hostname.
10863
10864 1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
10865
10866         * version.c: Wget 1.5-b2 is released.
10867
10868         * netrc.c (NETRC_FILE_NAME): Moved from netrc.h.
10869
10870         * utils.c (proclist): Pass FNM_PATHNAME to fnmatch().
10871
10872         * ftp-basic.c (ftp_pasv): Avoid unnecessary casting to unsigned
10873         char.
10874
10875         * log.c: Don't attempt to hide arguments from ansi2knr.
10876
10877         * cmpt.c: Synched strptime() and mktime() with glibc-2.0.6.
10878
10879         * ansi2knr.c: Use a later version, from fileutils-3.16l alpha.
10880
10881         * ftp.c (getftp): Ditto.
10882
10883         * http.c (gethttp): Use it.
10884
10885         * retr.c (get_contents): New argument EXPECTED; pass it to
10886         show_progress().
10887         (show_progress): New argument EXPECTED; use it to display
10888         percentages.
10889
10890         * init.c (setval): Ditto.
10891
10892         * http.c (gethttp): Ditto.
10893         (http_loop): Ditto.
10894
10895         * ftp.c (getftp): Ditto.
10896         (ftp_loop_internal): Ditto.
10897
10898         * ftp-ls.c (ftp_parse_unix_ls): Use abort() instead of assert(0).
10899
10900         * sysdep.h (CLOSE): Simplify; use DEBUGP.
10901
10902         * netrc.c (search_netrc): Use alloca().
10903
10904         * init.c (defaults): Initialize no_flush.
10905
10906         * log.c (vlogmsg): Don't flush if no_flush.
10907
10908         * options.h (struct options): New variable no_flush.
10909
10910         * main.c (main): Don't play games with buffering.
10911
10912         * log.c (vlogmsg): Flush the output after every message.
10913
10914 1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
10915
10916         * init.c (parse_line): Ditto.
10917
10918         * url.c (get_urls_html): Ditto.
10919
10920         * main.c (main): Don't cast to unsigned char.
10921
10922         * init.c (run_wgetrc): Don't cast to unsigned char.
10923         (parse_line): Accept char instead of unsigned char.
10924
10925         * html.c (htmlfindurl): Use char instead of unsigned char.
10926
10927         * all: Use them.
10928
10929         * sysdep.h: Add wrappers to ctype macros to make them
10930         eight-bit-clean:
10931
10932 1998-01-30  Hrvoje Niksic  <hniksic@srce.hr>
10933
10934         * html.c (htmlfindurl): Download <img lowsrc=...>
10935
10936         * main.c (main): Ignore SIGPIPE.
10937
10938         * connect.c (select_fd): New argument WRITEP.
10939         (iwrite): Call select_fd().
10940
10941 1997-02-27  Fila Kolodny <fila@ibi.com>
10942
10943         * ftp.c (ftp_retrieve_list): If retrieving symlink and the proper
10944         one already exists, just skip it.
10945
10946 1998-01-30  Hrvoje Niksic  <hniksic@srce.hr>
10947
10948         * http.c (gethttp): Cosmetic changes.
10949
10950         * http.c (check_end): Allow `+D...' instead of `GMT'.
10951         From Fabrizio Pollastri <pollastri@cstv.to.cnr.it>.
10952
10953         * url.c (process_ftp_type): New function.
10954         (parseurl): Use it.
10955
10956         * connect.c (iwrite): Allow writing in a few chunks.
10957         (bindport): Made SRV static, so addr can point to it.
10958         (select_fd): Removed HPUX kludge.
10959
10960         * host.c (free_hlist): Incorporated into clean_hosts().
10961
10962 1998-01-29  Hrvoje Niksic  <hniksic@srce.hr>
10963
10964         * host.c (hlist): Made static.
10965         (search_address): Cosmetic change.
10966
10967 1998-01-29  Hrvoje Niksic  <hniksic@srce.hr>
10968
10969         * version.c: Wget v1.5-b1 is released.
10970
10971         * http.c (hgetlen): Use sizeof() to get the header length.
10972         (hgetrange): Ditto.
10973         (hgettype): Ditto.
10974         (hgetlocation): Ditto.
10975         (hgetmodified): Ditto.
10976         (haccepts_none): Ditto.
10977
10978         * main.c (main): Updated `--version' and `--help' output, as per
10979         Francois Pinard's suggestions.
10980
10981         * main.c: Include locale.h; call setlocale(), bindtextdomain() and
10982         textdomain().
10983
10984         * config.h.in: Define stubs for I18N3.
10985
10986         * wget.h: Include libintl.h.
10987
10988 1998-01-28  Hrvoje Niksic  <hniksic@srce.hr>
10989
10990         * url.c (mkstruct): Check for opt.cut_dirs.
10991         (mkstruct): alloca()-te more, xmalloc() less.
10992
10993         * utils.c (load_file): Check for ferror().
10994
10995         * url.c (get_urls_file): Close only the files we opened.
10996         (get_urls_html): Ditto.
10997         (count_slashes): New function.
10998
10999         * http.h: Removed.
11000
11001         * http.c (gethttp): Respect username and password provided by
11002         proxy URL.
11003         (base64_encode_line): Write into an existing buffer instead of
11004         malloc-ing a new one.
11005         (struct http_stat): Moved from http.h
11006
11007         * retr.c (retrieve_url): Free SUF.
11008
11009         * all: Removed lots of unnecessary .h dependencies.
11010
11011         * html.c (global_state): Made static.
11012
11013         * utils.h (ALLOCA_ARRAY): New macro.
11014
11015         * main.c (main): New option `--cut-dirs'.
11016
11017         * url.c (construct): Use alloca() for T.
11018
11019         * utils.c (mkdirhier): Use STRDUP_ALLOCA.
11020
11021         * host.c (_host_t): Moved from host.h.
11022         (struct host): Renamed from _host_t.
11023         (store_hostaddress): Use STRDUP_ALLOCA for INET_S.
11024         (realhost): Ditto.
11025
11026         * host.h: Don't include url.h.
11027
11028         * ftp.c (LIST_FILENAME): Moved from ftp.h.
11029
11030         * init.c (DEFAULT_FTP_ACCT): Moved from ftp.h.
11031
11032         * main.c (main): Enable log if the output goes to a TTY.
11033
11034         * connect.h: Removed unused constant `BACKLOG'.
11035
11036         * config.h.in: Check for isatty().
11037
11038         * Makefile.in (LINK): Use CFLAGS when linking.
11039
11040 1998-01-27  Hrvoje Niksic  <hniksic@srce.hr>
11041
11042         * mswindows.c (ws_hangup): Use redirect_output().
11043
11044         * main.c (redirect_output_signal): New function; use
11045         redirect_output().
11046
11047         * log.c (redirect_output): New function, based on hangup(), which
11048         is deleted.
11049
11050         * log.c (vlogmsg): New function.
11051
11052         * wget.h (DEBUGP): Use debug_logmsg().
11053
11054         * main.c (hangup): Use it.
11055
11056         * log.c (log_dump): New function.
11057
11058         * utils.h (DO_REALLOC): Use `long' for various sizes.
11059
11060         * http.c (hskip_lws): Use `while', for clarity.
11061         (HTTP_DYNAMIC_LINE_BUFFER): New constant.
11062         (fetch_next_header): Use it instead of DYNAMIC_LINE_BUFFER.
11063
11064         * ftp-basic.c (FTP_DYNAMIC_LINE_BUFFER): New constant.
11065         (ftp_response): Use it instead of DYNAMIC_LINE_BUFFER.
11066
11067         * utils.c (DYNAMIC_LINE_BUFFER): Moved from utils.c.
11068         (LEGIBLE_SEPARATOR): Ditto.
11069         (FILE_BUFFER_SIZE): Ditto.
11070
11071         * retr.c (BUFFER_SIZE): Moved from retr.h.
11072
11073         * log.c: New file.
11074         (logmsg): Moved from utils.c.
11075         (debug_logmsg): New function.
11076
11077         * mswindows.h: Include it here.
11078
11079         * init.c: Ditto.
11080
11081         * utils.c: Don't include <windows.h>.
11082
11083 1998-01-25  Hrvoje Niksic  <hniksic@srce.hr>
11084
11085         * host.c (ftp_getaddress): Ditto.
11086
11087         * main.c (main): Use it.
11088
11089         * utils.h (STRDUP_ALLOCA): New macro.
11090
11091         * init.c: Prepend `wget: ' to error messages printed on stderr.
11092
11093         * utils.c (mkdirhier): Renamed from mymkdir.
11094         (touch): Renamed from my_touch.
11095         (pwd_cuserid): Renamed from my_cuserid().
11096
11097 1998-01-24  Andy Eskilsson  <andy.eskilsson@telelogic.se>
11098
11099         * utils.c (accdir): Process wildcards.
11100         (proclist): New function.
11101         (accdir): Use it to avoid code repetition.
11102
11103 1998-01-24  Hrvoje Niksic  <hniksic@srce.hr>
11104
11105         * recur.c (parse_robots): Respect opt.useragent; use alloca().
11106
11107         * http.c (gethttp): Construct useragent accordingly.
11108
11109         * version.c: Changed version string to numbers-only.
11110
11111         * main.c (print_help): List all the options.
11112
11113         * mswindows.c (windows_main_junk): Initialize argv0 here.
11114
11115 1998-01-24  Karl Heuer  <kwzh@gnu.org>
11116
11117         * netrc.c (search_netrc): Initialize `l' only after processing
11118         netrc.
11119
11120         * main.c (main): Don't trap SIGHUP if it's being ignored.
11121
11122 1998-01-24  Hrvoje Niksic  <hniksic@srce.hr>
11123
11124         * all: Use logmsg().
11125
11126         * utils.c (time_str): Moved from retr.c.
11127         (logmsg): New function.
11128         (logmsg_noflush): Ditto.
11129
11130         * rbuf.c: New file, moved buf_* functions here.
11131
11132         * ftp.c (ftp_expected_bytes): Moved from ftp-basic.c.
11133
11134         * ftp-basic.c (ftp_rest): Use prnum().
11135
11136         * ftp-basic.c: Ditto.
11137
11138         * ftp.c: Use the new reading functions and macros.
11139
11140         * retr.c (buf_initialize): New function.
11141         (buf_initialized_p): Ditto.
11142         (buf_uninitialize): Ditto.
11143         (buf_fd): Ditto.
11144
11145         * http.c (fetch_next_header): Use the BUF_READCHAR macro for
11146         efficiency.
11147         (gethttp): Use alloca() where appropriate.
11148
11149         * retr.c (buf_readchar): Use it.
11150         (buf_peek): Use rstreams.
11151
11152         * retr.h (BUF_READCHAR): New macro.
11153
11154         * init.c (home_dir): Rewritten for clarity.
11155         (init_path): Ditto.
11156
11157         * mswindows.c (ws_backgnd): Made static.
11158         (read_registry): Ditto.
11159         (ws_cleanup): Ditto.
11160         (ws_handler): Ditto.
11161
11162 1998-01-23  Hrvoje Niksic  <hniksic@srce.hr>
11163
11164         * alloca.c: New file.
11165
11166         * Makefile.in (ALLOCA): Define.
11167
11168         * mswindows.c (ws_help): Constify.
11169         (ws_help): Use alloca.
11170
11171         * mswindows.c: Reformat.
11172
11173         * all: Added _(...) annotations for I18N snarfing and translation.
11174
11175         * host.c (ftp_getaddress): Nuke SYSINFO.
11176         (ftp_getaddress): Don't use getdomainname().
11177         (ftp_getaddress): Use uname(), where available.
11178
11179         * http.c (gethttp): Protect a stray fprintf().
11180
11181         * init.c (settime): New function.
11182         (setval): Treat WAIT specially, allowing suffixes like `m' for
11183         minutes, etc.
11184
11185 1998-01-21  Hrvoje Niksic  <hniksic@srce.hr>
11186
11187         * url.c (get_urls_html): Use alloca() for TEMP.
11188
11189 1998-01-21  Jordan Mendelson  <jordy@wserv.com>
11190
11191         * url.c (rotate_backups): New function.
11192
11193         * http.c (gethttp): Ditto.
11194
11195         * ftp.c (getftp): Rotate backups.
11196
11197 1997-12-18  Hrvoje Niksic  <hniksic@srce.hr>
11198
11199         * all: Renamed nmalloc(), nrealloc() and nstrdup() to xmalloc(),
11200         xrealloc() and xstrdup().  Use the new functions.
11201
11202         * url.c (decode_string): Made static.
11203         (has_proto): Ditto.
11204         (parse_dir): Ditto.
11205         (parse_uname): Ditto.
11206         (mkstruct): Ditto.
11207         (construct): Ditto.
11208         (construct_relative): Ditto.
11209
11210         * retr.c (show_progress): Made static.
11211
11212         * recur.c (robots_url): Made static.
11213         (retrieve_robots): Ditto.
11214         (parse_robots): Ditto.
11215         (robots_match): Ditto.
11216
11217         * main.h: Removed.
11218
11219         * main.c (printhelp): Made static.
11220         (hangup): Ditto.
11221
11222         * init.c (comind): Made static.
11223         (defaults): Ditto.
11224         (init_path): Ditto.
11225         (run_wgetrc): Ditto.
11226         (onoff): Ditto.
11227         (setonoff): Ditto.
11228         (setnum): Ditto.
11229         (myatoi): Ditto.
11230         (getperms): Ditto.
11231         (setbytes): Ditto.
11232
11233         * http.c (fetch_next_header): Made static.
11234         (hparsestatline): Ditto.
11235         (hskip_lws): Ditto.
11236         (hgetlen): Ditto.
11237         (hgetrange): Ditto.
11238         (hgettype): Ditto.
11239         (hgetlocation): Ditto.
11240         (hgetmodified): Ditto.
11241         (haccepts_none): Ditto.
11242         (gethttp): Ditto.
11243         (base64_encode_line): Ditto.
11244         (mktime_from_utc): Ditto.
11245         (http_atotm): Ditto.
11246
11247         * html.c (idmatch): Made static.
11248
11249         * host.c (search_host): Made static.
11250         (search_address): Ditto.
11251         (free_hlist): Ditto.
11252
11253         * ftp.c (getftp): Made static.
11254         (ftp_loop_internal): Ditto.
11255         (ftp_get_listing): Ditto.
11256         (ftp_retrieve_list): Ditto.
11257         (ftp_retrieve_dirs): Ditto.
11258         (ftp_retrieve_glob): Ditto.
11259         (freefileinfo): Ditto.
11260         (delelement): Ditto.
11261
11262         * ftp-ls.c (symperms): Made static.
11263         (ftp_parse_unix_ls): Ditto.
11264
11265         * connect.c (select_fd): Made static.
11266
11267         * utils.c (xmalloc): Renamed from nmalloc.
11268         (xrealloc): Renamed from nrealloc.
11269         (xstrdup): Renamed from nstrdup.
11270
11271         * getopt.c (exchange): Use alloca.
11272
11273         * mswindows.c (mycuserid): Use strncpy.
11274
11275         * New files mswindows.c, mswindows.h, sysdep.h.  winjunk.c,
11276         systhings.h, windecl.h and winjunk.h removed.
11277
11278         * mswindows.c (sleep): New function.
11279
11280         * utils.c: Include <windows.h> under Windows.
11281
11282 1997-06-12  Darko Budor  <dbudor@zesoi.fer.hr>
11283
11284         * url.h (URL_UNSAFE): Change default under Windows.
11285
11286         * retr.c (retrieve_from_file): Respect opt.delete_after.
11287
11288         * main.c (main): Call ws_help on Windows.
11289
11290         * winjunk.c (windows_main_junk): New function.
11291
11292         * main.c (main): Junk-process argv[0].
11293
11294         * http.c (mktime_from_utc): Return -1 if mktime failed.
11295
11296         * http.c (http_loop): Ditto.
11297
11298         * ftp.c (ftp_loop_internal): Change title on Windows when using a
11299         new URL.
11300
11301         * winjunk.c (getdomainname): Lots of functions.
11302
11303 1997-06-12  Hrvoje Niksic  <hniksic@srce.hr>
11304
11305         * cmpt.c (strptime_internal): Handle years more correctly for
11306         `%y'.
11307
11308 1997-06-09  Mike Thomas <mthomas@reality.ctron.com>
11309
11310         * http.c (gethttp): Allocate enough space for
11311         `Proxy-Authorization' header.
11312
11313 1997-05-10  Hrvoje Niksic  <hniksic@srce.hr>
11314
11315         * version.c: Wget/1.4.5 is released.
11316
11317 1997-05-10  Hrvoje Niksic  <hniksic@srce.hr>
11318
11319         * retr.c (get_contents): Check return value of fwrite more
11320         carefully.
11321
11322 1997-03-30  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
11323
11324         * cmpt.c (strptime_internal) [case 'Y']: Always subtract 1900 from
11325         year, regardless of century.
11326
11327 1997-03-30  Hrvoje Niksic  <hniksic@srce.hr>
11328
11329         * utils.c (isfile): Use `lstat' instead of `stat'.
11330
11331 1997-03-29  Hrvoje Niksic  <hniksic@srce.hr>
11332
11333         * utils.c (numdigit): Use explicit test.
11334
11335 1997-03-21  Hrvoje Niksic  <hniksic@srce.hr>
11336
11337         * http.c (http_loop): Always use `url_filename' to get u->local.
11338
11339 1997-03-20  Hrvoje Niksic  <hniksic@srce.hr>
11340
11341         * url.c: Recognize https.
11342
11343 1997-03-13  Hrvoje Niksic  <hniksic@srce.hr>
11344
11345         * recur.c (recursive_retrieve): Lowercase just the host name.
11346
11347 1997-03-09  Hrvoje Niksic  <hniksic@srce.hr>
11348
11349         * url.c (get_urls_file): Use the correct test.
11350         (get_urls_html): Ditto.
11351
11352 1997-03-07  Hrvoje Niksic  <hniksic@srce.hr>
11353
11354         * connect.c: Reverted addrlen to int.
11355
11356         * init.c (parse_line): Check for -1 instead of NONE.
11357
11358         * version.c: Changed version to 1.4.5.
11359
11360 1997-02-17  Hrvoje Niksic  <hniksic@srce.hr>
11361
11362         * init.c: New option netrc.
11363         (initialize): Don't parse .netrc.
11364
11365         * cmpt.c (recursive): Return rp.
11366         (strptime_internal): Match the long strings first, the abbreviated
11367         second.
11368
11369 1997-02-16  Hrvoje Niksic  <hniksic@srce.hr>
11370
11371         * http.c (check_end): New function.
11372         (http_atotm): Use it.
11373
11374 1997-02-13  gilles Cedoc  <gilles@cedocar.fr>
11375
11376         * http.c (gethttp): Use them.
11377
11378         * init.c: New options proxy_user and proxy_passwd.
11379
11380 1997-02-14  Hrvoje Niksic  <hniksic@srce.hr>
11381
11382         * ftp.c (ftp_retrieve_list): Create links even if not relative.
11383
11384 1997-02-10  Hrvoje Niksic  <hniksic@srce.hr>
11385
11386         * recur.c (recursive_retrieve): Lowercase the host name, if the
11387         URL is not "optimized".
11388
11389         * host.c (realhost): Return l->hostname, even if it matches with
11390         host.
11391
11392 1997-02-10  Marin Purgar  <pmc@asgard.hr>
11393
11394         * connect.c: Make addrlen size_t instead of int.
11395         (conaddr): Ditto.
11396
11397 1997-02-09  Gregor Hoffleit  <flight@mathi.uni-heidelberg.DE>
11398
11399         * systhings.h: Define S_ISLNK on NeXT too.
11400
11401 1997-02-09  Hrvoje Niksic  <hniksic@srce.hr>
11402
11403         * version.c: Released 1.4.3.
11404
11405         * url.c: Futher update to list of protostrings.
11406         (skip_proto): Skip `//' correctly for FTP and HTTP.
11407
11408         * url.c (get_urls_html): Handle bogus `http:' things a little
11409         different.
11410
11411         * main.c (main): Removed `follow-ftp' from `f'.
11412         (main): Dumped the `prefix-files' and `file-prefix' options and
11413         features; old and bogus.
11414         (main): Exit on failed setval() in `-e'.
11415
11416         * http.c (fetch_next_header): Use it to detect header continuation
11417         correctly.
11418
11419         * retr.c (buf_peek): New function.
11420
11421 1997-02-08  Hrvoje Niksic  <hniksic@srce.hr>
11422
11423         * wget.h: Include time.h and stuff.
11424
11425 1997-02-08  Roger Beeman  <beeman@cisco.com>
11426
11427         * ftp.c: Include <time.h>
11428
11429 1997-02-07  Hrvoje Niksic  <hniksic@srce.hr>
11430
11431         * url.c (findurl): Would read over buffer limits.
11432
11433 1997-02-06  Hrvoje Niksic  <hniksic@srce.hr>
11434
11435         * ftp-ls.c (ftp_parse_unix_ls): Allow spaces in file names.
11436
11437 1997-02-05  Hrvoje Niksic  <hniksic@srce.hr>
11438
11439         * http.c (http_atotm): Initialize tm.is_dst.
11440
11441 1997-02-02  Hrvoje Niksic  <hniksic@srce.hr>
11442
11443         * http.c (gethttp): Don't print the number of retrieved headers.
11444
11445         * main.c (main): New option `--no-clobber', alias for `-nc'.
11446
11447         * url.c: Recognize `https://'.
11448
11449 1997-02-01  Hrvoje Niksic  <hniksic@srce.hr>
11450
11451         * host.c (herrmsg): Don't use h_errno.
11452
11453 1997-01-30  Hrvoje Niksic  <hniksic@srce.hr>
11454
11455         * host.c (accept_domain): Use it.
11456
11457         * main.c (main): New option `--exclude-domains'.
11458
11459         * retr.c (retrieve_url): Use it.
11460         (retrieve_url): Bail out when an URL is redirecting to itself.
11461
11462         * url.c (url_equal): New function.
11463
11464 1997-01-29  Hrvoje Niksic  <hniksic@srce.hr>
11465
11466         * connect.c: Include arpa/inet.h instead of arpa/nameser.h.
11467
11468         * http.c (mk_utc_time): New function.
11469         (http_atotm): Use it; handle time zones correctly.
11470
11471 1997-01-28  Hrvoje Niksic  <hniksic@srce.hr>
11472
11473         * http.c: Ditto.
11474
11475         * ftp-basic.c: Use it instead of WRITE.
11476
11477         * connect.c (iwrite): New function.
11478
11479 1997-01-27  Hrvoje Niksic  <hniksic@srce.hr>
11480
11481         * cmpt.c (mktime): New function.
11482
11483         * netrc.c: Include <sys/types.h>.
11484
11485         * main.c (main): Wouldn't recognize --spider.
11486
11487         * retr.c (rate): Use `B', `KB' and `MB'.
11488         (reset_timer,elapsed_time): Moved from utils.c.
11489
11490         * ftp.c (ftp_retrieve_list): Ditto.
11491
11492         * http.c (http_loop): Don't touch the file if opt.dfp.
11493
11494 1997-01-24  Hrvoje Niksic  <hniksic@srce.hr>
11495
11496         * cmpt.c: New file.
11497
11498         * ftp.c (ftp_retrieve_glob): New argument semantics.
11499         (ftp_retrieve_dirs): Use it.
11500         (ftp_loop): Ditto.
11501
11502         * html.c (htmlfindurl): Recognize `'' as the quote char.
11503
11504 1997-01-23  Hrvoje Niksic  <hniksic@srce.hr>
11505
11506         * ftp.c (ftp_loop_internal): Use it.
11507
11508         * utils.c (remove_link): New function.
11509
11510 1997-01-22  Hrvoje Niksic  <hniksic@srce.hr>
11511
11512         * retr.c (retrieve_url): Require STRICT redirection URL.
11513
11514         * url.c (parseurl): New argument STRICT.
11515
11516         * http.c (hparsestatline): Be a little-bit less strict about
11517         status line format.
11518
11519 1997-01-21  Hrvoje Niksic  <hniksic@srce.hr>
11520
11521         * http.c (gethttp): Use it.
11522
11523         * main.c (main): Don't use '<digit>' as options.
11524
11525         * init.c: New option ignore_length.
11526
11527         * http.c (gethttp): Ditto.
11528         (http_loop): Check for redirection without Location:.
11529         (gethttp): Don't print Length unless RETROKF.
11530
11531         * ftp.c (getftp): Use it.
11532
11533         * url.c (mkalldirs): New function.
11534
11535         * utils.c (mymkdir): Don't check for existing non-directory.
11536
11537         * url.c (mkstruct): Don't create the directory.
11538
11539 1997-01-20  Hrvoje Niksic  <hniksic@srce.hr>
11540
11541         * init.c (setval): Removed NO_RECURSION checks.
11542
11543 1997-01-19  Hrvoje Niksic  <hniksic@srce.hr>
11544
11545         * version.c: "Released" 1.4.3-pre2.
11546
11547         * recur.c (recursive_retrieve): Bypass host checking only if URL
11548         is ftp AND parent URL is not ftp.
11549
11550         * ftp-basic.c (ftp_request): Print out Turtle Power.
11551
11552         * ftp.c (ftp_loop): Call ftp_retrieve_glob with 0 if there's no
11553         wildcard.
11554         (ftp_retrieve_glob): Call ftp_loop_internal even on empty list, if
11555         not glob.
11556
11557         * http.c (gethttp): Be a little bit smarter about status codes.
11558
11559         * recur.c (recursive_retrieve): Always reset opt.recursive when
11560         dealing with FTP.
11561
11562 1997-01-18  Hrvoje Niksic  <hniksic@srce.hr>
11563
11564         * retr.c (retrieve_url): New variable location_changed; use it for
11565         tests instead of mynewloc.
11566         (retrieve_url): Allow heuristic adding of html.
11567
11568         * url.c (url_filename): Don't use the `%' in Windows file names.
11569
11570         * http.c (http_loop): Always time-stamp the local file.
11571
11572         * http.c (http_loop): Ditto.
11573
11574         * ftp.c (ftp_retrieve_list): Use it.
11575
11576         * utils.c (my_touch): New function.
11577
11578         * ftp.c (ftp_retrieve_list): Use #ifdef HAVE_STRUCT_UTIMBUF
11579         instead of #ifndef NeXT.
11580
11581         * utils.c (strptime): New version, by Ulrich Drepper.
11582
11583 1997-01-17  Hrvoje Niksic  <hniksic@srce.hr>
11584
11585         * http.c (haccepts_none): Renamed from `haccepts_bytes'.
11586         (gethttp): If haccepts_none(), disable ACCEPTRANGES.
11587         (http_loop): Would remove ACCEPTRANGES.
11588
11589         * ftp.c (getftp): Call ftp_list with NULL.
11590
11591 1997-01-15  Hrvoje Niksic  <hniksic@srce.hr>
11592
11593         * html.c (ftp_index): Don't print minutes and seconds if we don't
11594         know them; beautify the output.
11595
11596         * ftp.c (getftp): Don't close the socket on FTPNSFOD.
11597
11598 1997-01-14  Hrvoje Niksic  <hniksic@srce.hr>
11599
11600         * utils.c (strptime): New function.
11601         (strptime): Don't use get_alt_number.
11602         (strptime): Don't use locale.
11603         (match_string): Made it a function.
11604
11605 1997-01-12  Hrvoje Niksic  <hniksic@srce.hr>
11606
11607         * http.c (http_atotm): New function.
11608         (http_loop): Use it.
11609
11610         * atotm.c: Removed from the distribution.
11611
11612         * http.c (base64_encode_line): Rewrite.
11613
11614 1997-01-09  Hrvoje Niksic  <hniksic@srce.hr>
11615
11616         * ftp.c (getftp): Use ftp_expected_bytes; print size.
11617
11618         * ftp-basic.c (ftp_response): Use ftp_last_respline.
11619         (ftp_expected_bytes): New function.
11620
11621         * ftp.c (getftp): Print the unauthoritative file length.
11622
11623         * ftp-ls.c: Renamed from ftp-unix.c.
11624         (ftp_parse_ls): Moved from ftp.c.
11625         (ftp_parse_unix_ls): Recognize seconds in time spec.
11626         (ftp_parse_unix_ls): Recognize year-less dates of the previous
11627         year.
11628
11629 1997-01-08  Hrvoje Niksic  <hniksic@srce.hr>
11630
11631         * ftp-basic.c: Don't declare errno if #defined.
11632
11633         * host.c (ftp_getaddress): Check for sysinfo legally.
11634
11635 1997-01-08  Darko Budor  <dbudor@diana.zems.fer.hr>
11636
11637         * connect.c (iread): Use READ.
11638
11639 1996-12-23  Hrvoje Niksic  <hniksic@srce.hr>
11640
11641         * url.c: Recognize finger, rlogin, tn3270, mid and cid as valid
11642         schemes.
11643
11644 1996-12-22  Hrvoje Niksic  <hniksic@srce.hr>
11645
11646         * host.c (ftp_getaddress): Allow `.' in hostname.
11647
11648 1996-12-26  Darko Budor <dbudor@zems.fer.hr>
11649
11650         * wget.h: READ and WRITE macros for use instead of read and write
11651         on sockets, grep READ *.c, grep WRITE *.c
11652
11653         * wsstartup.c: new file - startup for winsock
11654
11655         * wsstartup.h: new file
11656
11657         * win32decl.h: new file - fixup for <errno.h> and winsock trouble
11658
11659         * configure.bat: Configure utility for MSVC
11660
11661         * src/Makefile.ms,config.h.ms: new files for use with MSVC 4.x
11662
11663 1996-12-22  Hrvoje Niksic  <hniksic@srce.hr>
11664
11665         * version.c: Released 1.4.3-pre.
11666
11667         * utils.c (prnum): Accept long.
11668         (legible): Use prnum().
11669
11670         * connect.c (make_connection): Accept port as short.
11671         (bindport): Ditto.
11672
11673         * http.c (gethttp): Use search_netrc.
11674
11675 1996-12-21  Hrvoje Niksic  <hniksic@srce.hr>
11676
11677         * ftp.c (getftp): Use search_netrc.
11678
11679         * netrc.c (free_netrc): New function.
11680
11681         * init.c (home_dir): New function.
11682
11683         * url.c (convert_links): Allow REL2ABS changes.
11684
11685 1996-12-21  Gordon Matzigkeit  <gord@gnu.ai.mit.edu>
11686
11687         * netrc.c: New file.
11688         (parse_netrc, maybe_add_to_list): New functions.
11689
11690 1996-12-17  Hrvoje Niksic  <hniksic@srce.hr>
11691
11692         * retr.c (retrieve_url): Reset opt.recursion before calling
11693         ftp_loop if it is reached through newloc.
11694
11695         * init.c (run_wgetrc): Print the wgetrc path too, when reporting
11696         error; don't use "Syntax error", since we don't know if it is
11697         really a syntax error.
11698
11699 1996-12-16  Hrvoje Niksic  <hniksic@srce.hr>
11700
11701         * utils.c (acceptable): Extract the filename part of the path.
11702
11703         * recur.c (recursive_retrieve): Call acceptable() with the right
11704         argument; would bug out on wildcards.
11705
11706         * init.c (parse_line): Likewise.
11707
11708         * html.c (htmlfindurl): Cast to char * when calling stuff.
11709
11710 1996-12-15  Hrvoje Niksic  <hniksic@srce.hr>
11711
11712         * ftp.c (getftp): Use ftp_pasv.
11713
11714         * ftp-basic.c (ftp_request): Accept NULL value.
11715         (ftp_pasv): New function.
11716
11717         * options.h (struct options): Add passive FTP option.
11718
11719 1996-12-15  Hrvoje Niksic  <hniksic@srce.hr>
11720
11721         * url.c (parseurl): Debug output.
11722
11723         * utils.c (path_simplify): New one, adapted from bash's
11724         canonicalize_pathname().
11725
11726 1996-12-14  Hrvoje Niksic  <hniksic@srce.hr>
11727
11728         * ftp.c (getftp): Don't discard the buffer.
11729
11730         * retr.c (get_contents): New parameter nobuf.
11731
11732 1996-12-13  Shawn McHorse  <riffraff@txdirect.net>
11733
11734         * html.c (htmlfindurl): Recognize <meta contents="d; URL=...".
11735
11736         * init.c (setval): Strip the trailing slashes on CVECDIR.
11737
11738 1996-12-13  Hrvoje Niksic  <hniksic@srce.hr>
11739
11740         * init.c: Make excludes and includes under CVECDIR instead of
11741         CVEC.
11742
11743 1996-12-13  Shawn McHorse  <riffraff@txdirect.net>
11744
11745         * url.c (get_urls_html): Skip "http:".
11746
11747 1996-12-13  Hrvoje Niksic  <hniksic@srce.hr>
11748
11749         * utils.c (strcasecmp): From glibc.
11750         (strncasecmp): Also.
11751         (strstr): Also.
11752
11753         * url.c: Added javascript: to the list of URLs prefixes.
11754
11755 1996-12-12  Shawn McHorse  <riffraff@txdirect.net>
11756
11757         * recur.c (retrieve_robots): Print the warning message only if
11758         verbose.
11759
11760 1996-12-12  Gregor Hoffleit  <flight@mathi.uni-heidelberg.DE>
11761
11762         * ftp.c (ftp_retrieve_list): Use NeXT old utime interface.
11763
11764 1996-12-12  Hrvoje Niksic  <hniksic@srce.hr>
11765
11766         * systhings.h: New file.
11767
11768         * ../configure.in: Check for utime.h
11769
11770         * ftp.c: Check whether we have unistd.h.
11771
11772 1996-11-27  Hrvoje Niksic  <hniksic@srce.hr>
11773
11774         * recur.c (recursive_retrieve): Send the canonical URL as referer.
11775         (recursive_retrieve): Call get_urls_html with the canonical URL.
11776
11777 1996-12-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11778
11779         * (configure.in, config.h.in, src/Makefile.in, src/*.[ch]): Add
11780         ansi2knr support for compilers which don't support ANSI style
11781         function prototypes and signatures.
11782
11783         * (aclocal.m4, src/ansi2knr.c, src/ansi2knr.1): New files.
11784
11785 1996-11-26  Hrvoje Niksic  <hniksic@srce.hr>
11786
11787         * url.c: Use it; Recognize paths ending with "." and ".." as
11788         directories.
11789         (url_filename): Append .n whenever file exists and could be a
11790         directory.
11791
11792         * url.h (ISDDOT): New macro.
11793
11794         * init.c (parse_line): Use unsigned char.
11795
11796         * url.c (get_urls_html): Cast to unsigned char * when calling
11797         htmlfindurl.
11798
11799         * html.c (htmlfindurl): Use unsigned char.
11800
11801         * version.c: Changed version to 1.4.3.
11802
11803 1996-11-25  Hrvoje Niksic  <hniksic@srce.hr>
11804
11805         * version.c: Released 1.4.2.
11806
11807         * ftp.c (getftp): Simplified assertion.
11808         (ftp_loop_internal): Remove symlink before downloading.
11809         (ftp_retrieve_list): Unlink the symlink name before attempting to
11810         create a symlink!
11811
11812         * options.h (struct options): Renamed print_server_response to
11813         server_response.
11814
11815         * ftp.c (rel_constr): Removed.
11816         (ftp_retrieve_list): Don't use it.
11817         (ftp_retrieve_list): Use opt.retr_symlinks.
11818
11819 1996-11-24  Hrvoje Niksic  <hniksic@srce.hr>
11820
11821         * main.c (main): New option retr_symlinks.
11822
11823         * url.c (convert_links): Print verbose message.
11824
11825 1996-11-24  Hrvoje Niksic  <hniksic@srce.hr>
11826
11827         * http.c (http_loop): Reset newloc in the beginning of function;
11828         would cause FMR in retrieve_url.
11829
11830 1996-11-23  Hrvoje Niksic  <hniksic@srce.hr>
11831
11832         * recur.c (convert_all_links): Find the URL of each HTML document,
11833         and feed it to get_urls_html; would bug out.
11834         (convert_all_links): Check for l2 instead of dl; removed dl.
11835
11836         * url.c (convert_links): Don't refer to freed newname.
11837
11838         * recur.c (recursive_retrieve): Add this_url to urls_downloaded.
11839
11840         * main.c (main): Print the OS_TYPE in the debug output, too.
11841
11842         * recur.c (recursive_retrieve): Check for opt.delete_after.
11843
11844         * main.c (main): New option delete-after.
11845
11846         * init.c (setval): Cleaned up.
11847
11848 1996-11-21  Hrvoje Niksic  <hniksic@srce.hr>
11849
11850         * Makefile.in (wget): Make `wget' the default target.
11851
11852         * ftp.c (ftp_loop_internal): Move noclobber checking out of the
11853         loop.
11854         (ftp_retrieve_list): Warn about non-matching sizes.
11855
11856         * http.c (http_loop): Made -nc non-dependent on opt.recursive.
11857
11858         * init.c (setnum): Renamed from setnuminf; New argument flags.
11859         (setval): Use it.
11860
11861         * main.c (main): Sorted the options.
11862         (main): New option --wait.
11863
11864 1996-11-21  Shawn McHorse  <riffraff@txdirect.net>
11865
11866         * html.c (htmlfindurl): Reset s->in_quote after getting out of
11867         quotes.
11868
11869 1996-11-20  Hrvoje Niksic  <hniksic@srce.hr>
11870
11871         * version.c: Changed version to 1.4.2.
11872
11873 1996-11-20  Hrvoje Niksic  <hniksic@srce.hr>
11874
11875         * version.c: Released 1.4.1.
11876
11877         * html.c (html_quote_string): New function.
11878         (ftp_index): Use it.
11879         (htmlfindurl): A more gentle ending debug message.
11880
11881         * ftp.c (ftp_loop): Check for opt.htmlify.
11882
11883         * init.c: New command htmlify.
11884
11885         * ftp.c (getftp): Nicer error messages, with `'-encapsulated
11886         strings.
11887         (ftp_loop): Print size of index.html.
11888
11889         * init.c (setval): Implement "styles".
11890
11891         * main.c (main): New option dotstyle.
11892
11893 1996-11-19  Hrvoje Niksic  <hniksic@srce.hr>
11894
11895         * ftp.c (getftp): Close the master socket in case of errors, after
11896         bindport().
11897
11898         * connect.c (bindport): Initialize msock to -1.
11899
11900         * ftp.c (getftp): Initialize dtsock to -1.
11901
11902         * connect.c (closeport): Don't close sock if sock == -1.
11903
11904 1996-11-18  Hrvoje Niksic  <hniksic@srce.hr>
11905
11906         * init.c (setnuminf): Nuked default value -- just leave unchanged.
11907         (setval): Don't send default values.
11908         (defaults): Use DEFAULT_TIMEOUT -- aaargh.
11909
11910         * options.h (struct options): Use long for dot_bytes.
11911
11912         * init.c (setquota): Renamed to setbytes.
11913         (setval): Use setbytes on DOTBYTES.
11914
11915 1996-11-17  Hrvoje Niksic  <hniksic@srce.hr>
11916
11917         * ftp.c (getftp): Initialize con->dltime.
11918
11919         * recur.c (recursive_retrieve): Use same_host instead of
11920         try_robots; simply load robots_txt whenever the host is changed.
11921         (recursive_retrieve): Free forbidden before calling parse_robots.
11922
11923 1996-11-16  Hrvoje Niksic  <hniksic@srce.hr>
11924
11925         * retr.c (show_progress): Use them.
11926
11927         * options.h (struct options): New options dot_bytes, dots_on_line
11928         and dot_spacing.
11929
11930 1996-11-16  Mark Boyns  <boyns@sdsu.edu>
11931
11932         * recur.c (recursive_retrieve): Retrieve directories regardless of
11933         acc/rej rules; check for empty u->file.
11934
11935 1996-11-14  Hrvoje Niksic  <hniksic@srce.hr>
11936
11937         * init.c (setval): Use it.
11938
11939         * utils.c (merge_vecs): New function.
11940
11941         * init.c (setval): Reset the list-type functions when encountering
11942         "".
11943
11944 1996-11-14  Shawn McHorse  <riffraff@txdirect.net>
11945
11946         * recur.c (recursive_retrieve): Use base_url instead of this_url
11947         for no_parent.
11948
11949 1996-11-14  Shawn McHorse  <riffraff@txdirect.net>
11950
11951         * html.c (htmlfindurl): Reset s->in_quote after exiting the quote.
11952
11953 1996-11-13  Hrvoje Niksic  <hniksic@srce.hr>
11954
11955         * utils.c (sepstring): Rewrote; don't use strtok.
11956
11957         * recur.c (recursive_retrieve): Enter assorted this_url to slist
11958         when running the first time.
11959         (retrieve_robots): Warn to ignore errors when robots are loaded.
11960
11961         * utils.c (load_file): Moved from url.c.
11962
11963         * http.c: Made static variables const too in h* functions.
11964
11965         * main.c (main): Renamed --continue-ftp to --continue.
11966
11967         * recur.c (recursive_retrieve): Use it.
11968
11969         * utils.c (frontcmp): New function.
11970
11971         * url.c (accdir): New function.
11972
11973         * html.c (htmlfindurl): Recognize <area href=...>.
11974
11975         * ftp.c (ftp_retrieve_dirs): Implemented opt.includes.
11976
11977         * init.c (setval): Free the existing opt.excludes and
11978         opt.includes, if available.
11979
11980         * main.c (main): New option -I.
11981
11982 1996-11-12  Hrvoje Niksic  <hniksic@srce.hr>
11983
11984         * ftp.c (ftp_retrieve_glob): Do not weed out directories.
11985
11986         * version.c: Changed version to 1.4.1.
11987
11988 1996-11-11  Hrvoje Niksic  <hniksic@srce.hr>
11989
11990         * version.c: Released 1.4.0.
11991
11992 1996-11-10  Hrvoje Niksic  <hniksic@srce.hr>
11993
11994         * main.c (main): Free com and val after parse_line.
11995         (printhelp): Reorder the listing.
11996
11997         * http.c: More robust header parsing.
11998
11999         * http.c: Allow any number of spaces, or no spaces, precede ':'.
12000         (hskip_lws): New function.
12001         (haccepts_bytes): New function.
12002         (gethttp): Use it.
12003
12004         * init.c (setval): Check header sanity.
12005         (setval): Allow resetting of headers.
12006
12007 1996-11-10  Hrvoje Niksic  <hniksic@srce.hr>
12008
12009         * http.c (http_loop): Don't use has_wildcards.
12010
12011         * http.c (gethttp): Free all_headers -- would leak.
12012
12013         * recur.c (recursive_retrieve): Initialize depth to 1 instead of
12014         0 -- this fixes a long-standing bug in -rl.
12015
12016 1996-11-09  Hrvoje Niksic  <hniksic@srce.hr>
12017
12018         * ftp.c: Use -1 as "impossible" value for con->fd.
12019
12020         * url.h (URL_SEPARATOR): Don't treat `*' and `+' as separators.
12021
12022         * init.c (parse_line): Use isalpha.
12023
12024         * ftp-unix.c: Use HAVE_UNISTD_H.
12025
12026         * mtch.c (has_wildcards): Don't match \.
12027
12028         * http.c (http_loop): Warn on HTTP wildcard usage.
12029
12030 1996-11-08  Hrvoje Niksic  <hniksic@srce.hr>
12031
12032         * url.c (url_filename): Do not create numbered suffixes if
12033         opt.noclobber -- would bug out on -nc.
12034
12035 1996-11-07  Hrvoje Niksic  <hniksic@srce.hr>
12036
12037         * recur.c (parse_robots): Don't chuck out the commands without
12038         arguments (`Disallow:<empty>' didn't work).
12039         (parse_robots): Compare versions lowercase.
12040         (parse_robots): Match on base_version, not version_string!
12041         (parse_robots): Handle comments properly.
12042         (parse_robots): Match versions in a sane way.
12043
12044         * init.c: Print nicer error messages.
12045
12046         * version.c: Changed version to 1.4.0.
12047
12048 1996-11-06  Hrvoje Niksic  <hniksic@srce.hr>
12049
12050         * version.c: Released 1.4.0-test2.
12051
12052         * init.c (run_wgetrc): Close fp.
12053
12054         * ftp.c (ftp_retrieve_dirs): Allocate the correct length for
12055         u->dir.
12056
12057 1996-11-06  Hrvoje Niksic  <hniksic@srce.hr>
12058
12059         * init.c (setquota): Allow inf as quota specification.
12060
12061 1996-11-05  Hrvoje Niksic  <hniksic@srce.hr>
12062
12063         * ftp.c (ftp_retrieve_dirs): Return QUOTEXC if quota exceeded.
12064         (ftp_retrieve_glob): Return QUOTEXC on quota exceeded.
12065
12066         * main.c (main): Check for quota by comparison with downloaded
12067         stuff, not from status.
12068
12069         * connect.c (select_fd): Should compile on HPUX without warnings now.
12070
12071         * ftp.c (ftp_get_listing): Check whether ftp_loop_internal
12072         returned RETROK.
12073
12074 1996-11-04  Hrvoje Niksic  <hniksic@srce.hr>
12075
12076         * ftp.c (ftp_retrieve_glob): Print the pattern nicely.
12077         (getftp): Return FTPRETRINT on control connection error.
12078
12079         * html.c (htmlfindurl): Recognize <embed src=...> and
12080         <bgsound src=...>.
12081         (ftp_index): Handle username and password correctly.
12082
12083         * main.c (main): Made `-np' a synonim for --no-parent.
12084
12085 1996-11-02  Hrvoje Niksic  <hniksic@srce.hr>
12086
12087         * ftp.c (ftp_loop): Check for opt.ftp_glob too before calling
12088         ftp_retrieve_glob.
12089
12090         * version.c: Changed version to 1.4.0-test2.
12091
12092 1996-11-02  Hrvoje Niksic  <hniksic@srce.hr>
12093
12094         * version.c: Released 1.4.0-test1.
12095
12096         * url.c (str_url): Don't use sprintf when creating %2F-prefixed
12097         directory.
12098         (convert_links): Removed definition of make_backup.
12099
12100         * http.h: Removed definition of MAX_ERROR_LENGTH.
12101
12102         * host.c (ftp_getaddress): Check for "(none)" domains.
12103
12104         * ftp.c (ftp_retrieve_dirs): Docfix.
12105
12106         * http.c (gethttp): Use ou->referer instead of u->referer.
12107
12108         * retr.c (retrieve_url): Reset u to avoid freeing pointers twice;
12109         this was known to cause coredumps on Linux.
12110
12111         * html.c (ftp_index): Cast the argument to local_time to time_t *.
12112
12113 1996-11-01  Hrvoje Niksic  <hniksic@srce.hr>
12114
12115         * connect.c (select_fd): Use exceptfds -- once and for all.
12116
12117         * retr.c (retrieve_from_file): Free filename after
12118         recursive_retrieve.
12119         (retrieve_from_file): Send RFIRST_TIME to recursive_retrieve on
12120         first-time retrieval.
12121         (retrieve_from_file): Return uerr_t; new argument, count.
12122         (retrieve_from_file): Break on QUOTEXC.
12123
12124         * init.c (setquota): Fixed a bug that caused rejection of
12125         non-postfixed values..
12126
12127 1996-10-30  Hrvoje Niksic  <hniksic@srce.hr>
12128
12129         * version.c: Changed name to wget.
12130
12131         * connect.c (iread): Smarter use of select.
12132         (select_fd): Set errno on timeout.  If not timeout, return 1
12133         instead of 0.
12134
12135 1996-10-29  Hrvoje Niksic  <hniksic@srce.hr>
12136
12137         * ftp.c (ftp_loop_internal): Don't use con->cmd before
12138         establishing it.
12139
12140 1996-10-26  Hrvoje Niksic  <hniksic@srce.hr>
12141
12142         * http.c (gethttp): Send correct referer when using proxy.
12143         (gethttp): Use struct urlinfo ou to access the relevant data; send
12144         correct authorization in all cases.
12145
12146         * host.c (same_host): Use skip_uname to skip username and
12147         password.
12148
12149         * url.c (skip_uname): New function.
12150         (parseurl): Use it.
12151
12152         * host.c (same_host): Do not assume HTTP -- same_host should now
12153         be totally foolproof.
12154
12155         * url.c (skip_proto): New function.
12156         (parse_uname): Use it.
12157
12158         * http.c (gethttp): Create local user and passwd from what is
12159         given.
12160
12161         * url.c (parseurl): Check for HTTP username and password too.
12162
12163 1996-10-25  Hrvoje Niksic  <hniksic@srce.hr>
12164
12165         * config.h.in: Removed #define gethostbyname R...
12166
12167 1996-10-22  Hrvoje Niksic  <hniksic@srce.hr>
12168
12169         * version.c: Changed version to 1.4.0-test1.
12170
12171 1996-10-21  Hrvoje Niksic  <hniksic@srce.hr>
12172
12173         * version.c: "Released" 1.4b29.
12174
12175         * recur.c (recursive_retrieve): Check for no_parent.
12176
12177         * init.c (setval): Option update.
12178
12179         * main.c (main): New option no-parent.
12180
12181         * options.h (struct options): New variable no_parent.
12182
12183         * recur.c (recursive_retrieve): Only files are checked for
12184         opt.accepts and opt.rejects.
12185         (recursive_retrieve): Check directories for opt.excludes.
12186         (recursive_retrieve): Make the dir absolute when checking
12187         opt.excludes.
12188
12189         * html.c (htmlfindurl): Recognize <applet code=...> and <script
12190         src=...>
12191
12192 1996-10-18  Hrvoje Niksic  <hniksic@srce.hr>
12193
12194         * ftp.c (getftp): Do not line-break assert entries at all.
12195         (ftp_retrieve_dirs): docfix.
12196
12197         * connect.c (select_fd): Use fd + 1 as nfds.
12198
12199         * version.c: Changed version to 1.4b29.
12200
12201 1996-10-18  Hrvoje Niksic  <hniksic@srce.hr>
12202
12203         * version.c: "Released" 1.4b28.
12204
12205         * ftp.c (ftp_loop_internal): Check whether f->size == len and
12206         don't continue the loop if it is.
12207         (ftp_get_listing): Remove list_filename on unsuccesful loop.
12208
12209 1996-10-17  Hrvoje Niksic  <hniksic@srce.hr>
12210
12211         * ftp.c (ftp_loop_internal): Use strcpy to initialize tmp.
12212         (getftp): Do not use multiline assert.
12213
12214         * http.c (hparsestatline): Use mjr and mnr instead of major and
12215         minor, which don't compile on Ultrix.
12216         (http_loop): Use strcpy() to initialize tmp.
12217
12218         * all: Geturl -> Fetch
12219
12220 1996-10-17  Hrvoje Niksic  <hniksic@srce.hr>
12221
12222         * recur.c (parse_robots): Fixed an off-by-one bug when looking for
12223         ':'.
12224
12225         * html.c (htmlfindurl): Fixed several possible off-by-one bugs by
12226         moving `bufsize &&' to the beginning of each check in for-loops.
12227
12228         * recur.c (parse_robots): Close fp on exit.
12229
12230         * url.c (mymkdir): Check for each directory before creating.
12231
12232 1996-10-16  Hrvoje Niksic  <hniksic@srce.hr>
12233
12234         * version.c: Changed version to 1.4b28.
12235
12236 1996-10-16  Hrvoje Niksic  <hniksic@srce.hr>
12237
12238         * version.c: "Released" 1.4b27.
12239
12240         * init.c (parse_line): Use isspace.
12241         (parse_line): Free *com on all errors.
12242
12243         * ftp.c (ftp_loop): Change FTPOK to RETROK before exiting.
12244         (delelement): Use next instead of f->next and prev instead of
12245         f->prev.
12246         (delelement): Free the members of the deleted element.
12247
12248         * http.c (http_loop): Do not return RETROK on code != 20x.
12249
12250         * init.c (cleanup): Free opt.user_header.
12251         (cleanup): Free opt.domains.
12252
12253         * url.c (freelists): Moved to cleanup().
12254
12255         * http.c (hparsestatline): Docfix.
12256
12257         * main.c (main): Return with error status on unsuccesful
12258         retrieval.
12259
12260         * init.c (setval): Do not remove listing when mirroring.
12261
12262         * url.c (url_filename): Use opt.fileprefix.
12263
12264         * ftp.c (ftp_get_listing): Use url_filename to get filename for
12265         .listing.
12266
12267         * main.c (main): New option: -rn.
12268
12269 1996-10-15  Hrvoje Niksic  <hniksic@srce.hr>
12270
12271         * Makefile.in (RM): Added RM = rm -f.
12272
12273         * host.c (clean_hosts): New function.
12274         (free_hlist): Just free the list, no reset.
12275
12276         * version.c: Changed version to 1.4b27.
12277
12278 1996-10-13  Hrvoje Niksic  <hniksic@srce.hr>
12279
12280         * version.c: "Released" 1.4b26.
12281
12282         * retr.c (retrieve_from_file): If call get_urls_html with
12283         opt.spider to make it silent in spider mode.
12284
12285         * url.c (str_url): Use CLEANDUP instead of URL_CLEANSE.
12286
12287         * url.h (CLEANDUP): New macro.
12288
12289         * http.c (gethttp): Fixed a bug that freed location only when it
12290         was NULL.
12291
12292         * retr.c (retrieve_url): Free url if it will not be stored,
12293         i.e. newloc is NULL.
12294
12295         * html.c (htmlfindurl): Handle exiting from quotes correctly; the
12296         old version would bug out on <a href="x#a"href="y">.
12297
12298         * html.h (state_t): New member in_quote.
12299
12300         * html.c (htmlfindurl): Free s->attr at the beginning of
12301         attr-loop.
12302
12303         * recur.c (recursive_retrieve): Recognize RCLEANUP.
12304         (tried_robots): Make hosts a global variable.
12305         (recursive_retrieve): Free constr after URL host optimization.
12306         (tried_robots): Free urlinfo before exiting.
12307
12308         * utils.c (free_slist): New function.
12309
12310         * recur.c (recursive_retrieve): Use flags to add cleanup
12311         possibility.
12312
12313         * main.c (main): Free filename after recursive_retrieve.
12314
12315         * http.c (gethttp): Store successful responses too.
12316
12317 1996-10-12  Hrvoje Niksic  <hniksic@srce.hr>
12318
12319         * all: Constified the whole source.  This required some minor
12320         changes in many functions in url.c, possibly introducing bugs -- I
12321         hope not.
12322
12323         * ftp-basic.c: Removed last_respline.
12324
12325         * http.c (gethttp): Free type.
12326
12327         * host.c (same_host): Free real1 and real2.
12328
12329         * main.c (main): New option --spider.
12330
12331         * retr.c (get_contents): Don't reset errno.
12332
12333         * main.c (main): Sorted the options.
12334
12335         * connect.c (iread): Set errno to ETIMEDOUT only if it was left
12336         uninitialized by select().
12337
12338         * http.c (http_loop): Print the time when the connection is
12339         closed.
12340         (gethttp): Debug-print the HTTP request.
12341
12342 1996-10-11  Hrvoje Niksic  <hniksic@srce.hr>
12343
12344         * connect.c (iread): Do not try reading after timeout.
12345
12346         * main.c (main): Would bug out on -T.
12347
12348         * connect.c (select_fd): Do not use exceptfds.
12349         (iread): Set ETIMEDOUT on select_fd <= 0.
12350
12351         * version.c: Changed version to 1.4b26.
12352
12353 1996-10-10  Hrvoje Niksic  <hniksic@srce.hr>
12354
12355         * version.c: "Released" 1.4b25.
12356
12357         * ftp-unix.c (ftp_parse_unix_ls): Ignore lines without file name
12358         or link name.
12359
12360         * http.c (gethttp): Add errcode to struct hstat.
12361         (http_loop): Use it.
12362
12363         * url.c (no_proxy_match): Simplify using char** for no_proxy.
12364
12365         * options.h (struct options): Make opt.no_proxy a vector.
12366
12367         * utils.c (sepstring): Use !*s instead of !strlen(s).
12368
12369         * init.c (setval): Set opt.maxreclevel to 0 on --mirror.
12370         (getperms): Use ISODIGIT instead of isdigit.
12371
12372         * ftp.c (getftp): Print time.
12373
12374         * main.c (main): Use legible output of downloaded quantity.
12375
12376         * ftp.c (getftp): Use elapsed_time().
12377         (ftp_loop_internal): Use rate().
12378
12379         * http.c (http_loop): Add download ratio output; Use rate().
12380
12381         * utils.c (rate): New function.
12382
12383 1996-10-09  Hrvoje Niksic  <hniksic@srce.hr>
12384
12385         * http.c (http_loop): Use timer.
12386
12387         * ftp.c: Split to ftp-basic.c and ftp.c
12388
12389         * utils.c (reset_timer): New function.
12390         (elapsed_time): New function.
12391
12392         * retr.c (show_progress): Make bytes_in_line and offs long; should
12393         work on 16-bit machines.
12394
12395 1996-10-08  Hrvoje Niksic  <hniksic@srce.hr>
12396
12397         * url.c (in_acclist): New argument backward.
12398
12399         * ftp.c (ftp_retrieve_glob): Use acceptable() to determine whether
12400         a file should be retrieved according to suffix.
12401         (ftp_get_listing): Check the return value of unlink; Do not call
12402         ftp_retrieve_dirs if depth reached maxreclevel.
12403         (ftp_retrieve_dirs): Check whether the directory is in
12404         exclude-list.
12405
12406         * main.c (main): Print the version number at the beginning of
12407         DEBUG output.
12408         (main): Use strrchr when creating exec_name.
12409
12410         * ftp.c (ftp_retrieve_glob): Do not close control connection.
12411
12412         * version.c: Changed version to 1.4b25.
12413
12414 1996-10-07  Hrvoje Niksic  <hniksic@srce.hr>
12415
12416         * version.c: "Released" 1.4b24.
12417
12418         * Makefile.in: Rewrite.
12419
12420         * ftp.c (ftp_loop_internal): Likewise.
12421
12422         * retr.c (time_str): Check for failed time().
12423
12424         * html.c (htmlfindurl): Recognize <fig src> and <overlay src> from
12425         HTML3.0.
12426
12427         * retr.c (time_str): Return time_t *.
12428
12429         * connect.c (bindport): Close msock on unsuccesful bind.
12430         (bindport): The same for getsockname and listen.
12431
12432         * retr.c (retrieve_url): Allow any number of retries on
12433         proxy.
12434
12435         * http.c (gethttp): Do not treat errno == 0 as timeout.
12436         (http_loop): Likewise.
12437         (http_loop): Cosmetic changes.
12438
12439         * connect.c (iread): Set errno to ETIMEDOUT in case of timeout.
12440
12441         * retr.c (get_contents): Reset errno.
12442
12443         * ftp.c (getftp): Minor fixes.
12444
12445 1996-10-06  Hrvoje Niksic  <hniksic@srce.hr>
12446
12447         * http.c: Do not use backups.
12448
12449         * geturl.1 (WARNING): Warn that man-page could be obsolete.
12450
12451         * getopt.c (getopt_long): Moved to getopt.c
12452
12453         * geturl.texi: Enhanced.
12454
12455         * main.c (main): Use it.
12456
12457         * recur.c (convert_all_links): New function.
12458
12459         * utils.c (add_slist): New argument flags.
12460
12461         * recur.c (recursive_retrieve): Update a list of downloaded URLs.
12462         (parse_robots): Do not chuck out empty value fields.
12463         (parse_robots): Make yourself welcome on empty Disallow.
12464
12465         * version.c: Changed version to 1.4b24.
12466
12467 1996-10-06  Hrvoje Niksic  <hniksic@srce.hr>
12468
12469         * version.c: "Released" 1.4b23.
12470
12471         * ftp.c (ftp_loop_internal): Get the time after getftp.
12472
12473         * Makefile.in (install.info): New target.
12474         (install): Use it.
12475
12476         * http.c (http_loop): Fix output when doing -O.
12477
12478 1996-10-05  Hrvoje Niksic  <hniksic@srce.hr>
12479
12480         * geturl.texi: New file.
12481
12482         * main.c (main): Do not print the warnings and download summary if
12483         opt.quiet is set.
12484
12485         * version.c: Changed version to 1.4b23.
12486
12487 1996-10-05  Hrvoje Niksic  <hniksic@srce.hr>
12488
12489         * "Released" 1.4b22.
12490
12491         * atotm.c (atotm): Use True and False instead of TRUE and FALSE,
12492         to avoid redefinition warnings.
12493
12494         * host.c (store_hostaddress): Use memcpy() to copy the address
12495         returned by inet_addr.
12496
12497         * version.c: Changed version to 1.4b22.
12498
12499 1996-10-04  Hrvoje Niksic  <hniksic@srce.hr>
12500
12501         * version.c: "Released" 1.4b21.
12502
12503         * ftp-unix.c (ftp_parse_ls): Renamed to ftp_parse_unix_ls.
12504
12505         * ftp.c (ftp_port): Use conaddr.
12506         (getftp): Print the file length.
12507         (ftp_retrieve_list): Check the stamps of plain files only.
12508
12509         * connect.c (closeport): Do not call shutdown().
12510         (conaddr): New function.
12511
12512         * html.c (ftp_index): Made it dfp-aware.
12513
12514         * init.c (cleanup): New name of freemem. Close opt.dfp.
12515
12516         * ftp.c (getftp): Use opt.dfp if it is set.
12517
12518         * ftp-unix.c (ftp_parse_ls): Recognize time in h:mm format.
12519
12520         * ftp.c (ftp_retrieve_dirs): Fixed a bug that caused incorrect
12521         CWDs to be sent with recursive FTP retrievals.
12522
12523 1996-10-03  Hrvoje Niksic  <hniksic@srce.hr>
12524
12525         * recur.c (parse_robots): Made it more compliant with "official"
12526         specifications.
12527
12528         * http.c: New function.
12529
12530         * ftp-unix.c (ftp_parse_ls): Added better debug output.
12531
12532         * ftp.c (getftp): Print out the LIST in case of
12533         opt.print_server_response.
12534
12535         * version.c: Changed version to 1.4b21.
12536
12537 1996-10-01  Hrvoje Niksic  <hniksic@srce.hr>
12538
12539         * version.c: "Released" 1.4b20.
12540
12541         * README: Update.
12542
12543         * http.c (gethttp): Preset lengths of various headers instead of
12544         calculating them dynamically.
12545         (gethttp): Check for 206 partial contents.
12546
12547 1996-09-30  Hrvoje Niksic  <hniksic@srce.hr>
12548
12549         * configure.in: Set SYSTEM_GETURLRC to $libdir/geturlrc
12550
12551         * http.c (gethttp): Send the port number in the Host: header.
12552
12553 1996-09-29  Hrvoje Niksic  <hniksic@srce.hr>
12554
12555         * http.c (gethttp): Send host: header.
12556         (gethttp): Add the possibility of user-defined headers.
12557         (gethttp): Move decision about pragma: no-cache to http_loop,
12558         where it belongs.
12559         (gethttp): Pass a struct instead of enormous argument list.
12560         (http_loop): Use a new, fancier display format.
12561         (ftp_loop): Likewise.
12562
12563         * main.c: (hangup): Turn off buffering of the new log file.
12564
12565         * install-sh: Likewise.
12566
12567         * config.sub: Replace with the one in autoconf-2.10
12568
12569         * geturl.1: Update.
12570
12571         * init.c: New options httpuser and httppasswd.
12572
12573         * http.c: (base64_encode_line): New function.
12574         (gethttp): Send authentication.
12575
12576         * connect.c (make_connection): Use store_hostaddress.
12577
12578 1996-09-28  Hrvoje Niksic  <hniksic@srce.hr>
12579
12580         * host.c (store_hostaddress): New function.
12581
12582         * NEWS: Update.
12583
12584         * http.c (hgetrange): New function.
12585         (gethttp): Use ranges.
12586
12587         * utils.c (numdigit): Accept long instead of int.
12588
12589         * http.c (http_loop): Add restart capabilities.
12590
12591         * ftp.c (ftp_retrieve_glob): Fixed a bug that could cause matchres
12592         being used uninitialized.
12593         (ftp_retrieve_list): Similar fix.
12594
12595         * host.c (add_hlist): Fixed a bug that could cause cmp being used
12596         uninitialized.
12597
12598         * url.c (construct_relative): New function.
12599
12600         * recur.c (recursive_retrieve): Use it.
12601
12602         * retr.c (convert_links): New function.
12603
12604 1996-09-27  Hrvoje Niksic  <hniksic@srce.hr>
12605
12606         * url.c (free_urlpos): New function.
12607
12608         * recur.c (recursive_retrieve): Adapt.
12609
12610         * url.c (get_urls_html): Return a linked list instead of a vector.
12611
12612         * url.c (get_urls_file): Return a linked list instead of a vector.
12613
12614         * geturl.1: Update.
12615
12616         * http.c (gethttp): Implement it.
12617
12618         * init.c (setval): New option: SAVEHEADERS
12619
12620         * ftp.c (ftp_loop_internal): Do not set restval if listing is to
12621         be retrieved. Lack of this test caused bugs when the connection
12622         was lost during listing.
12623
12624         * retr.c (retrieve_url): Fixed a bug that caused
12625         coredumps. *newloc is now reset by default.
12626         (retrieve_url): Lift the twenty-tries limit on proxies.
12627
12628         * version.c: Changed version to 1.4b20.
12629
12630 1996-09-20  Hrvoje Niksic  <hniksic@srce.hr>
12631
12632         * version.c: "Released" 1.4b19.
12633
12634 1996-09-19  Hrvoje Niksic  <hniksic@srce.hr>
12635
12636         * ftp.c (ftp_loop_internal): Renamed from ftp_1fl_loop.
12637         (getftp): Changed prototype to accept ccon *.
12638
12639 1996-09-17  Hrvoje Niksic  <hniksic@srce.hr>
12640
12641         * ftp.c (ftp_retrieve_list): Fixed a bug that caused setting
12642         incorrect values to files pointed to by symbolic links.
12643         (ftp_1fl_loop): Do not count listings among the downloaded URL-s.
12644
12645 1996-09-16  Hrvoje Niksic  <hniksic@srce.hr>
12646
12647         * url.c (mkstruct): Do not prepend "./" in front of a pathname.
12648
12649         * main.c (main): New option: --user-agent.
12650
12651         * geturl.1: Ditto.
12652
12653         * init.h: Ditto.
12654
12655         * init.c (setval): Ditto.
12656
12657         * main.c (main): Rename "server-headers" to "server-response".
12658
12659         * ftp-unix.c (ftp_parse_ls): Check for asterisks at the end of
12660         executables in 'ls -F' listings.
12661
12662 1996-09-15  Hrvoje Niksic  <hniksic@srce.hr>
12663
12664         * url.c (parseurl): Remove realloc() and sprintf().
12665         (str_url): Get rid of sprintf().
12666
12667         * recur.c (recursive_retrieve): Enable FTP recursion through proxy
12668         servers.
12669
12670         * url.h (URL_CLEANSE): Made it else-resistant.
12671         (USE_PROXY): New macro.
12672
12673 1996-09-14  Hrvoje Niksic  <hniksic@srce.hr>
12674
12675         * NEWS: Update.
12676
12677         * version.c: Changed version to 1.4b19.
12678
12679 1996-09-14  Hrvoje Niksic  <hniksic@srce.hr>
12680
12681         * version.c: "Released" 1.4b18.
12682
12683         * url.c: Made it reallocate space exponentially.
12684
12685 1996-09-14  Drazen Kacar  <dave@fly.cc.fer.hr>
12686
12687         * html.c (htmlfindurl): Added <frame src> and <iframe src> among
12688         the list of stuff to fetch.
12689
12690 1996-09-13  Hrvoje Niksic  <hniksic@srce.hr>
12691
12692         * url.c (get_urls_html): Fixed a bug that caused SIGSEGV's with
12693         -Fi.
12694
12695         * html.c (htmlfindurl): Rewrite.
12696
12697         * http.c (gethttp): Use opt.proxy_cache.
12698
12699         * main.c (main): Added --cache option.
12700
12701         * ftp.c (ftp_response): Print server response if opt.print_server
12702         response is set.
12703         (getftp): Print newlines after each request if the server response
12704         is to be printed.
12705         (ftp_response): Copy the last response line to last_respline.
12706
12707         * http.c (gethttp): Add Pragma: nocache for retried
12708         proxy-retrievals.
12709
12710         * ftp.c (getftp): Use it.
12711
12712         * retr.c (buf_discard): New function.
12713
12714         * ftp.c (ftp_response): Use buf_readchar().
12715         (getftp): Flush the control connection buffer before calling
12716         get_contents().
12717
12718         * retr.c (buf_readchar): New function.
12719         (buf_flush): New function.
12720         (get_contents): Use buf_readchar() instead of read(x, x, 1).
12721         (get_contents): Use buf_flush.
12722
12723 1996-09-12  Hrvoje Niksic  <hniksic@srce.hr>
12724
12725         * ftp.c: Incorporate changes to ftp_response.
12726
12727         * ftp.c (ftp_response): Allocate the server response dynamically,
12728         as in read_whole_line and fetch_next_header.
12729
12730         * utils.c (read_whole_line): Fixed a bug that prevented reading
12731         the last line if it is not \n-terminated. Also fixed a possible
12732         memory overflow.
12733
12734         * http.c (fetch_next_header): Return malloc-ed string as large as
12735         needed.
12736         (gethttp): Use new fetch_next_header.
12737
12738 1996-09-12  Hrvoje Niksic  <hniksic@srce.hr>
12739
12740         * http.c (hgetlen): Compute the header length the first time only.
12741         (hgettype): Ditto.
12742         (hgetlocation): Ditto.
12743         (hgetmodified): Ditto.
12744
12745 1996-09-11  Hrvoje Niksic  <hniksic@srce.hr>
12746
12747         * sample.geturlrc: Update.
12748
12749 1996-09-10  Hrvoje Niksic  <hniksic@srce.hr>
12750
12751         * http.c (http_loop): Ditto.
12752
12753         * ftp.c (getftp): Open the output file as binary.
12754
12755         * version.c: Changed version to 1.4b18.
12756
12757 1996-09-10  Hrvoje Niksic  <hniksic@srce.hr>
12758
12759         * version.c: "Released" 1.4b17.
12760
12761         * ftp-unix.c (ftp_parse_ls): If unable to open file, return NULL
12762         instead of failed assertion.
12763
12764 1996-09-09  Hrvoje Niksic  <hniksic@srce.hr>
12765
12766         * ftp.c (ftp_get_listing): Add a numbered suffix to LIST_FILENAME
12767         if a file of that name already exists.
12768
12769 1996-09-05  Hrvoje Niksic  <hniksic@srce.hr>
12770
12771         * ftp.c (ftp_1fl_loop): Handler FTPPORTERR and FOPENERR correctly.
12772
12773         * config.h.in: Define gethostbyname as Rgethostbyname when using
12774         Socks.
12775
12776         * configure.in: Check for -lresolv if using Socks.
12777
12778         * version.c: Changed version to 1.4b17.
12779
12780 1996-07-15  Hrvoje Niksic  <hniksic@srce.hr>
12781
12782         * version.c: "Released" 1.4b16.
12783
12784         * http.c (gethttp): More intelligent check for first line of HTTP
12785         response.
12786         (gethttp): Would bug out on time-stamping.
12787
12788         * version.c: Changed version to 1.4b16.
12789
12790 1996-07-11  Hrvoje Niksic  <hniksic@srce.hr>
12791
12792         * version.c: Released 1.4b15.
12793
12794         * http.c (http_loop): Print \n after the loop entry, not before.
12795
12796         * url.c (url_filename): Use ISDOT.
12797
12798         * url.h (ISDOT): New macro.
12799
12800         * recur.c (recursive_retrieve): Change only opt.recursive for
12801         following FTP.
12802
12803 1996-07-11  Antonio Rosella <antonio.rosella@agip.it>
12804
12805         * socks/geturl.cgi: Fixed version No.
12806
12807         * socks/download-netscape.html: Ditto.
12808
12809         * socks/download.html: Changed socks.html to download.html.
12810
12811 1996-07-11  Hrvoje Niksic  <hniksic@srce.hr>
12812
12813         * url.c (url_filename): Check for opt.dirstruct instead for
12814         opt.recursive && opt.dirstruct.
12815
12816         * init.c (defaults): Ditto.
12817         (defaults): Reset dirstruct by default.
12818         (setval): Set opt.dirstruct whenever setting recursive.
12819
12820         * init.h: Removed FORCEDIRHIER.
12821
12822         * INSTALL: Added -L to socks-description.
12823
12824         * version.c: Changed version to 1.4b15.
12825
12826 1996-07-10  Hrvoje Niksic  <hniksic@srce.hr>
12827
12828         * version.c: "Released" 1.4b14.
12829
12830         * geturl.1: Update AUTHOR to include Rosella as contributor.
12831
12832         * NEWS: Update.
12833
12834         * socks/geturl.cgi: Simplified command creation, nuked <blink>.
12835
12836         * socks/geturl.cgi: Wrap nutscape extensions within if $netscape.
12837         (cal_time): Fix == to eq.
12838
12839         * socks/geturl.cgi: GPL-ized with permission of A. Rosella.
12840
12841         * geturl.1 (hostname): Moved URL CONVENTIONS to the beginning.
12842
12843         * Makefile.in: Use @VERSION@.
12844
12845         * configure.in: Check version from version.c.
12846
12847         * socks/geturl.cgi: Changed /pub/bin/perl to /usr/bin/perl.
12848
12849         * socks/download.html: Created from download-netscape.html, made
12850         HTML-2.0 compliant.
12851
12852         * recur.c (recursive_retrieve): Set opt.force_dir_hier when
12853         following FTP links from recursions.
12854
12855 1996-07-09  Hrvoje Niksic  <hniksic@srce.hr>
12856
12857         * url.c (mymkdir): Fixed a bug that prevented mymkdir() to create
12858         absolute directories correctly.
12859
12860         * version.c: Changed version to 1.4b14.
12861
12862 1996-07-09  Hrvoje Niksic  <hniksic@srce.hr>
12863
12864         * version.c: "Released" 1.4b13.
12865
12866         * url.c (make_backup): New function.
12867
12868         * http.c (http_loop): Make a backup copy of the local file (using
12869         rename(2)) before opening it.
12870
12871         * main.c (main): Added --backups.
12872
12873         * host.c (ftp_getaddress): Bail out on failed mycuserid().
12874         (ftp_getaddress): Check for leading dot on MY_DOMAIN.
12875         (ftp_getaddress): Check for empty, null or (null) domain.
12876
12877         * url.c (get_urls_html): If this_url is NULL, the base must have a
12878         protocol.
12879         (parseurl): Use has_proto.
12880
12881         * retr.c (retrieve_url): Warn when proxy is used with more than 20
12882         retries.
12883
12884         * url.c (mkstruct): Create the directory (calling mymkdir()) only
12885         if it is not already there.
12886         (has_proto): New function.
12887         (get_urls_html): Eliminate the remaining call to findurl -- use
12888         has_proto.
12889
12890         * geturl.1: Ditto.
12891
12892         * main.c: Change -X to -x.
12893
12894         * url.c (url_filename): Simplify creation of filename if
12895         prefix_files is set.
12896         (url_filename): Simplify everything. And I do mean *everything*.
12897         (mkstruct): Add dir_prefix before hostname.
12898         (path_simplify): Fixed a bug that caused writing outside the path
12899         string in case of "." and ".." path strings.
12900
12901 1996-07-06  Hrvoje Niksic  <hniksic@srce.hr>
12902
12903         * init.c: Added --mirror.
12904
12905         * main.c (main): Added -X to force saving of directory hierarchy.
12906
12907         * ftp.c (ftp_retrieve_list): Added recursion depth counter.
12908         (ftp_retrieve_list): Check whether quota is exceeded.
12909
12910         * url.c (get_urls_html): Skip leading blanks for absolute URIs.
12911
12912         * http.c (gethttp): Use referer if present.
12913
12914         * recur.c (recursive_retrieve): Set u->referer before calling
12915         retrieve_url.
12916
12917         * url.c (newurl): Use memset to nullify the struct members.
12918         (freeurl): Free the referer field too.
12919
12920         * url.h: Added referer to urlinfo.
12921
12922         * geturl.1: Updated the manual to document some of the new features.
12923
12924         * utils.c (numdigit): Moved from url.c.
12925
12926         * README: Rewritten.
12927
12928         * config.h.in: Add the support for socks.
12929
12930         * configure.in: Add the support for socks.
12931
12932         * url.c (url_filename): If the dir_prefix is ".", work with just
12933         the file name.
12934         (url_filename): Do not look for .n extensions if timestamping if
12935         turned on.
12936
12937         * retr.c (show_progress): Skip the over-abundant restval data, and
12938         print the rest of it with ',' instead of '.'.
12939
12940 1996-07-05  Hrvoje Niksic  <hniksic@srce.hr>
12941
12942         * retr.c (show_progress): Changed second arg. to long (as it
12943         should be).
12944         (show_progress): Moved to retr.c.
12945         (get_contents): Moved to retr.c.
12946
12947         * version.c: Change version to 1.4b13.
12948
12949 1996-07-05  Hrvoje Lacko <hlacko@fly.cc.fer.hr>
12950
12951         * url.c (in_acclist): Would return after the first suffix.
12952
12953 1996-07-04  Hrvoje Niksic  <hniksic@srce.hr>
12954
12955         * version.c: "Released" 1.4b12.
12956
12957         * url.c (path_simplify): More kludgifications.
12958         (get_urls_html): Use new parameters for htmlfindurl.
12959
12960         * html.c: Removed memorizing "parser states", since the new
12961         organization does not require them.
12962
12963         * init.c (run_geturlrc): Use read_whole_line.
12964
12965         * ftp-unix.c (ftp_parse_ls): Use read_whole_line.
12966
12967         * recur.c (parse_robots): Use read_whole_line.
12968
12969         * utils.c (read_whole_line): New function.
12970
12971         * recur.c (tried_robots): Use add_slist/in_slist, *much* cleaner.
12972
12973         * host.c (ngethostbyname): Call inet_addr just once. Yet to be
12974         tested on OSF and Ultrix.
12975         (add_hlist): New function.
12976         (free_hlist): New function.
12977         (search_host): New function.
12978         (search_address): New function.
12979         (realhost): Use search_host, search_address and add_hlist.
12980         (same_host): Replaced realloc() with strdupdelim(), made
12981         case-insensitive, fixed a memory leak.
12982
12983         * html.c (ftp_index): Fixed tm_min and tm_sec to be tm_hour and
12984         tm_min, like intended.
12985
12986         * version.c: Change user agent information to
12987         Geturl/version.
12988
12989 1996-07-03  Hrvoje Niksic  <hniksic@srce.hr>
12990
12991         * utils.c: Renamed nmalloc.c to utils.c, .h likewise.
12992
12993         * url.c (acceptable): Always accept directories.
12994
12995         * ftp-unix.c (ftp_parse_ls): Support brain-damaged "ls -F"-loving
12996         servers by stripping trailing @ from symlinks and trailing / from
12997         directories.
12998
12999         * ftp.c (ftp_loop): Debugged the "enhanced" heuristics. :-)
13000
13001         * url.c (skip_url): Use toupper instead of UCASE.
13002
13003         * host.c (sufmatch): Made it case-insensitive.
13004
13005         * url.c (match_backwards_or_pattern): Fixed i == -1 to j == -1.
13006         (match_backwards): New function, instead of
13007         match_backwards_or_pattern.
13008
13009         * recur.c (recursive_retrieve): Increased performance by
13010         introducing inl, which reduces number of calls to in_slist to only
13011         one.
13012
13013         * ftp.c (ftp_loop): Enhanced the heuristics that decides which
13014         routine to use.
13015
13016         * main.c (printhelp): Removed the warranty stuff.
13017
13018 1996-07-02  Hrvoje Niksic  <hniksic@srce.hr>
13019
13020         * url.c (add_slist): Simplify.
13021         (match_backwards_or_pattern): New function.
13022         (in_acclist): Use match_backwards_or_pattern.
13023         (matches): Remove.
13024
13025 1996-06-30  Hrvoje Niksic  <hniksic@srce.hr>
13026
13027         * ftp.c (ftp_loop): Call ftp_index on empty file names, if not
13028         recursive.
13029
13030         * html.c (ftp_index): Fixed to work. Beautified the output.
13031
13032         * ftp.c (ftp_retrieve_glob): Another argument to control whether
13033         globbing is to be used.
13034         (ftp_retrieve_list): Compare the time-stamps of local and remote
13035         files to determine whether to download.
13036
13037 1996-06-29  Hrvoje Niksic  <hniksic@srce.hr>
13038
13039         * ftp.c (rel_constr): New function.
13040
13041         * retr.c (retrieve_from_file): Check for text/html before
13042         retrieving recursively.
13043
13044         * main.c (main): Check whether the file is HTML before going into
13045         recursive HTML retrieving.
13046
13047         * ftp.c (ftp_retrieve_list): Manage directories.
13048         (ftp_retrieve_glob): Pass all the file-types to ftp_retrieve_list.
13049         (ftp_1fl_loop): Fixed a bug that caused con->com to be incorrectly
13050         initialized, causing bugchecks in getftp to fail.
13051
13052         * configure.in: Check for symlink.
13053
13054         * ftp.c (ftp_retrieve_list): Added support for symlinks.
13055
13056         * version.c: "Released" 1.4b10.
13057
13058         * atotm.c (atotm): Redeclared as time_t.
13059
13060         * init.c: New variable "timestamping".
13061
13062         * main.c (main): New option 'N'.
13063
13064         * http.c (hgetlocation): Case-insensitive match.
13065         (hgetmodified): New function.
13066         (http_loop): Implement time-stamping.
13067
13068 1996-06-28  Hrvoje Niksic  <hniksic@srce.hr>
13069
13070         * version.c: Changed version to 1.4b10
13071
13072         * atotm.c: New file, from phttpd.
13073
13074         * options.h (struct options): New parameter timestamping.
13075
13076         * version.c: 1.4b9 "released".
13077
13078         * recur.c (recursive_retrieve): Used linked list (ulist) for
13079         faster storing of URLs.
13080
13081         * url.c (get_urls_html): Removed the old kludge with comparing the
13082         outputs of htmlfindurl and findurl.
13083         (get_urls_html): Added better protocol support here.
13084         (create_hash): Removed, as well as add_hash and in_hash.
13085         (addslist): New function.
13086         (in_slist): ditto
13087
13088         * version.c: Released 1.4b8, changed version to b9.
13089
13090 1996-06-27  Hrvoje Niksic  <hniksic@srce.hr>
13091
13092         * ftp.c (freefileinfo): New function.
13093         (delelement): New function.
13094
13095         * everywhere: GPL!
13096
13097         * ftp.c (ftp_loop): Use ccon.
13098         (ftp_retrieve_glob): Likewise.
13099
13100         * ftp.h: Define ccon, to define status of control connection.
13101
13102         * ftp.c (ftp_get_listing): New function.
13103         (ftp_retrieve_more): New function.
13104         (ftp_retrieve_glob): New function.
13105
13106 1996-06-25  Hrvoje Niksic  <hniksic@srce.hr>
13107
13108         * configure.in: Removed the search for cuserid().
13109
13110         * init.c (getmode): Renamed to getperms.
13111
13112 1996-06-24  Hrvoje Niksic  <hniksic@srce.hr>
13113
13114         * version.c: New version.
13115
13116         * main.c (hangup): New function, that handles hangup. Hangup
13117         signal now causes geturl to stop writing on stdout, and to write
13118         to a log file.
13119
13120         * ftp.c (getftp): "Released" 1.4b7.
13121
13122         * html.c (htmlfindurl): Ignore everything inside <head>...</head>.
13123         (ftp_index): Use fileinfo/urlinfo.
13124
13125         * ftp-unix.c (ftp_parse_ls): New function.
13126         (symperms): New function.
13127
13128         * ftp.c (ftp_1fl_loop): New function, to handle 1-file loops.
13129
13130         * retr.c (retrieve_url): Added FTP support.
13131
13132 1996-06-23  Hrvoje Niksic  <hniksic@srce.hr>
13133
13134         * geturl.h: Removed NOTFTP2HTML enum.
13135         Added DO_LOGIN, DO_CWD and DO_LIST. LIST_ONLY is obsolete.
13136
13137         * ftp.c (getftp): Resynched with urlinfo.
13138         (getftp): Removed HMTL-ization of index.html from getftp.
13139
13140         * version.c: 1.4b6 "released".
13141
13142         * options.h (options): New struct, to keep options in.
13143
13144         * http.c (http_loop,gethttp): Synched with proxy.
13145
13146         * retr.c (retrieve_url): Implemented proxy retrieval.
13147
13148         * main.c (main): Use retrieve_from_file.
13149
13150 1996-06-22  Hrvoje Niksic  <hniksic@srce.hr>
13151
13152         * retr.c (retrieve_from_file): New function.
13153
13154         * url.c (parseurl): Modified to return URLOK if all OK. Protocol
13155         can be found in u->proto.
13156
13157         * ftp.c (ftp_response): Fixed to accept multi-line responses as
13158         per RFC 959.
13159
13160         * recr.c (recursive_retrieve): Take newloc from retrieve_url.
13161
13162         * url.c (mymkdir): Removed the file of the same name, if one
13163         exists.
13164         (isfile): New function.
13165         (mkstruct): Fixed the '/' glitches.
13166         (path_simplify): Hacked to treat something/.. correctly.
13167
13168 1996-06-21  Hrvoje Niksic  <hniksic@srce.hr>
13169
13170         * http.c (gethttp): Close the socket after error in headers.
13171         (http_loop): HEOF no longer a fatal header.
13172
13173         * loop.c (retrieve_url): When dt is NULL, do not modify it. This
13174         simplifies the syntax of calling retrieve_url.
13175
13176         * recr.c (recursive_retrieve): Modified to use get_urls_html.
13177
13178         * url.c (get_urls_file): New function.
13179         (get_urls_html): New function.
13180
13181         * recr.c (recursive_retrieve): Patched up to conform to the
13182         standards.
13183
13184         * http.c (gethttp): Synched with the rest...
13185         (gethttp): Treat only CONREFUSED specially, with connection
13186         errors.
13187
13188         * init.c,geturl.1,http.c (http_loop): Removed kill_error.
13189
13190 1996-06-20  Hrvoje Niksic  <hniksic@srce.hr>
13191
13192         * http.c (http_loop): New function.
13193
13194         * loop.c: Removed *lots* of stuff from retrieve_url.
13195
13196         * url.c (parseurl): Changed to work with urlinfo. Integrated
13197         username finding and path parsing.
13198         (newurl): New function.
13199         (freeurl): New function.
13200         (mkstruct): Removed the old bogosities, made it urlinfo-compliant.
13201         (url_filename): Likewise.
13202         (path_simplify): Accept relative paths too.
13203         (opt_url): Made urlinfo-compliant, removed bogosities.
13204         (path_simplify): Expanded to accept relative paths.
13205         (str_url): A replacement for hide_url
13206         (decode_string): Fixed a bug that caused malfunctioning when
13207         encountering an illegal %.. combination.
13208         (opt_url): Removed the argument. Dot-optimizations are now default.
13209
13210         * nmalloc.c (strdupdelim): New function.
13211
13212         * url.h: Added the urlinfo structure
13213
13214 1996-06-19  Hrvoje Niksic  <hniksic@srce.hr>
13215
13216         * url.c (hide_url): Thrown out the protocol assertion. Do not
13217         change the URL if the protocol if not recognized.
13218         (findurl): Put continue instead of break.
13219
13220 1996-06-18  Hrvoje Niksic  <hniksic@srce.hr>
13221
13222         * sample.geturlrc: Changed the defaults to be commented out and
13223         harmless (previous defaults caused pains if copied to
13224         ~/.geturlrc).
13225
13226         * http.c (gethttp): Print the HTTP request in debug mode.
13227
13228         * connect.c (iread): Added EINTR check loop to select-ing
13229         too. EINTR is now correctly handled with select().
13230
13231         * TODO: new file
13232
13233 1996-05-07  Hrvoje Niksic  <hniksic@srce.hr>
13234
13235         * host.c (same_host): Made the function a little bit more
13236         intelligent regarding diversified URL syntaxes.
13237
13238         * url.c (skip_url): Spaces are now skipped after URL:
13239
13240         * Released 1.3.1 with the patch to prevent crashing when sending
13241         NULL to robot* functions and the patch to compile "out of the box"
13242         on AIX.
13243
13244         * recr.c (recursive_retrieve): Added checking whether this_url is
13245         NULL when calling the robot functions.
13246
13247         * ChangeLog: New file.