]> sjero.net Git - wget/blob - src/ChangeLog
Return a network failure when FTP downloads fail and --timestamping is used.
[wget] / src / ChangeLog
1 2011-09-13  Giuseppe Scrivano  <gscrivano@gnu.org>
2
3         * ftp.c (ftp_retrieve_glob): Propagate correctly the `res' error
4         code.
5
6 2011-09-07  Giuseppe Scrivano  <gscrivano@gnu.org>
7
8         * http.c (gethttp): Don't inhibit arest request if opt.timestamping is
9         set.
10         Reported by <natrio@list.ru>
11
12 2011-09-06  Jakob Matthes <jakob.matthes@gmail.com> (tiny change)
13
14         * main.c (print_version): Do not exit prematurely when --help is passed.
15
16 2011-09-04  Christian Jullien <eligis@orange.fr> (tiny change)
17
18         * gnutls.c: Include <sys/fcntl.h>.
19
20 2011-09-02  Mojca Miklavec <mojca.miklavec.lists@gmail.com> (tiny change)
21
22         * main.c (print_version): Do not exit prematurely when --version is passed.
23
24 2011-08-30  Giuseppe Scrivano  <gscrivano@gnu.org>
25
26         * gnutls.c (wgnutls_read_timeout): Use the non blocking socket only for
27         `gnutls_record_recv'.  Set errno to ETIMEDOUT on a read timeout.
28
29 2011-08-29  Giuseppe Scrivano  <gscrivano@gnu.org>
30
31         * gnutls.c (wgnutls_read_timeout): New function.
32         (wgnutls_read): Use wgnutls_read_timeout.
33         (wgnutls_peek): Likewise.
34
35 2011-08-27  Giuseppe Scrivano  <gscrivano@gnu.org>
36
37         * main.c (print_help): Exit with an error status if print to stdout
38         fails.
39         (print_usage): Change method signature and return a status code.
40         (print_version): Likewise.
41
42 2011-08-26  Giuseppe Scrivano  <gscrivano@gnu.org>
43
44         * gnutls.c: Include "ptimer.h".
45         (wgnutls_read): Honor read timeout.
46
47         * openssl.c (ssl_init): Make `meth' const.
48
49 2011-08-25  Giuseppe Scrivano  <gscrivano@gnu.org>
50
51         * utils.c [HAVE_UTIME && HAVE_UTIME_H]: Include <utime.h>.
52         [HAVE_UTIME && HAVE_SYS_UTIME_H]: Include <sys/utime.h>.
53         (touch) [HAVE_UTIME: Prefers utime over futimens when it is available.
54         It was reported that Cygwin has a not working futimens.
55
56 2011-08-19  Giuseppe Scrivano  <gscrivano@gnu.org>
57
58         * init.c (home_dir) [MSDOS]: Move local variable `len' here.
59
60 2011-08-18  Giuseppe Scrivano  <giuseppe@southpole.se>
61
62         * http.c (gethttp): Fix a memory leak on some errors.  Free the head
63         buffer.
64
65         * Makefile.am: Use an additional file "css_.c" which in turn includes
66         "wget.h" and immediately "css.c".
67
68         * http.c (gethttp): Reset chunked_transfer_encoding on redirections.
69
70 2011-08-13  Giuseppe Scrivano  <gscrivano@gnu.org>
71
72         * retr.c (fd_read_body): Ensure max is not already defined.
73
74         * mswindows.h (snprintf): Remove definition.
75         (vsnprintf): Likewise.
76
77 2011-08-12  Giuseppe Scrivano  <gscrivano@gnu.org>
78
79         * css.l: Remove include "wget.h".
80         Reported by: Perry Smith <pedzsan@gmail.com>.
81
82 2011-08-11  Giuseppe Scrivano  <gscrivano@gnu.org>
83
84         * utils.c (abort_run_with_timeout): Use sigprocmask instead of
85         sigsetmask.
86
87         * gnutls.c (ssl_connect_wget): Remove call to deprecated function
88         `gnutls_certificate_type_set_priority'.
89
90         * Makefile.am (version.c): Don't invoke hg to set version string.
91
92 2011-08-10  Giuseppe Scrivano  <gscrivano@gnu.org>
93
94         Fix a linker error on systems with an older gnutls version.
95         * gnutls.c (ssl_connect_wget)
96         [HAVE_GNUTLS_PRIORITY_SET_DIRECT]:  Use gnutls_priority_set_direct.
97         [! HAVE_GNUTLS_PRIORITY_SET_DIRECT]:  Use gnutls_protocol_set_priority.
98         Reported by: Karl Berry <karl@freefriends.org>
99
100 2011-08-06  Jochen Roderburg <Roderburg@Uni-Koeln.DE>
101
102         * host.c (lookup_host): Ensure it doesn't print more IPs than available
103         ones.
104
105 2011-08-06  Giuseppe Scrivano  <gscrivano@gnu.org>
106
107         * init.c (defaults): Set default value for show_all_dns_entries.
108
109         * host.c (lookup_host): If `showalldnsentries' is used then print all
110         the IP corresponding to a DNS entry.
111         * init.c (commands): Add `showalldnsentries'.
112         Suggested by: Witold Baryluk <baryluk@smp.if.uj.edu.pl>
113
114         * http.c (gethttp): Add the Cache-Control HTTP header when --no-cache
115         is specified.
116         Reported by: Коренберг Марк <socketpair@gmail.com>.
117
118 2011-08-05  Giuseppe Scrivano  <gscrivano@gnu.org>
119
120         * utils.c (acceptable): Accept always the file if it is the specified
121         output destination.
122         Reported by: Shai Berger <shai@platonix.com>
123
124 2011-08-05  Giuseppe Scrivano  <giuseppe@southpole.se>
125
126         * gnutls.c (ssl_connect_wget): Use `gnutls_priority_set_direct' instead
127         of the deprecated `gnutls_protocol_set_priority'.
128
129 2011-08-02  Giuseppe Scrivano  <giuseppe@southpole.se>
130
131         * cookies.c (parse_set_cookie): If the value is quoted, do not modify
132         it.
133         Reported by: Nirgal Vourgère <jmv_deb@nirgal.com>
134
135 2011-07-29  Giuseppe Scrivano  <giuseppe@southpole.se>
136
137         * log.c (logprintf): Exit immediately on a SIGPIPE error.
138         Reported by: Noèl Köthe  <noel@debian.org>.
139
140 2011-07-26  Carlos Martín Nieto  <carlos@cmartin.tk>  (tiny change)
141
142         * init.c (home_dir): Allocate path buffer dinamically.
143
144 2011-07-26  Giuseppe Scrivano  <giuseppe@southpole.se>
145
146         * retr.c (retrieve_url): Do not register redirects when in spider mode.
147
148 2011-07-20 Merinov Nikolay <kim.roader@gmail.com>
149
150         * iri.c (remote_to_utf8): Add test for non-ASCII symbols with
151         UTF-8 URI encoding.
152         * res.c (res_retrieve_file): Fix url_parse call.
153
154 2011-06-08  Giuseppe Scrivano  <giuseppe@southpole.se>
155
156         * retr.c (retrieve_from_file): Parse the url careless if IRI is enabled.
157         Reported by: Volker Kuhlmann <list0570@paradise.net.nz>.
158
159 2011-05-24  Giuseppe Scrivano  <gscrivano@gnu.org>
160
161         * retr.c (fd_read_body): Define max.
162
163 2010-12-28  Adrien Nader  <adrien@notk.org> (tiny change)
164
165         * main.c [WINDOWS]: Include <io.h> and <fcntl.h>.
166         (main) [WINDOWS]: Set the stdout file mode to binary.
167         Submitted also by: Martin Panter <vadmium@gmail.com>
168
169 2011-05-23  Giuseppe Scrivano  <gscrivano@gnu.org>
170
171         * retr.c (fd_read_body): Be sure the buffer size is at least 8Kb.
172         BUFSIZ may assume very small values with a negative impact on the
173         performances.
174
175         * mswindows.h [NEED_GAI_STRERROR]: remove definition for gai_strerror.
176
177 2011-05-15  Ray Satiro <raysatiro@yahoo.com>
178
179         * connect.c (select_fd) [WINDOWS]: Ensure the socket is blocking.
180         * mswindows.h: Add declaration for set_windows_fd_as_blocking_socket.
181         * mswindows.c (set_windows_fd_as_blocking_socket): New function.
182
183         * openssl.c (openssl_read): Prevent loops on read errors.
184
185 2011-04-24  Giuseppe Scrivano  <gscrivano@gnu.org>
186
187         * html-url.c: Include "exists.h".
188         * gnutls.c (wgnutls_peek): Remove local variable `ret'.
189
190 2011-04-21  Daniel Manrique <roadmr@tomechangosubanana.com> (tiny change)
191         * main.c (main): Set exit status when invalid host name given in
192         command line.
193         * html-url.c (get_urls_file): Set exit status when invalid host
194         name given in input file.
195
196 2011-04-19  Giuseppe Scrivano  <gscrivano@gnu.org>
197
198         * gnutls.c: Do not include <fcntl.h>.
199         * gnutls.c (wgnutls_peek): Ensure there is data available before attempt
200         a read on the blocking socket.
201
202         * Makefile.am (LIBS): Add $(LIB_CLOCK_GETTIME)
203         * utils.c: Include <sys/stat.h>.  Do not include <sys/time.h>.
204         (touch): Use `futimens' instead of `utimes'.
205
206         * mswindows.h: Do not include <direct.h>.  Remove macro definition for
207         mkdir.
208
209 2011-04-18  Giuseppe Scrivano  <gscrivano@gnu.org>
210
211         * utils.c: Include <sys/time.h>.  Do not include <sys/utime.h>.
212         (touch): Use `utimes' instead of `utime'.
213
214         * openssl.c (openssl_read): Fix build error.
215
216 2011-04-17  Giuseppe Scrivano  <gscrivano@gnu.org>
217
218         * wget.h [HAVE_LIBSSL32]: Define HAVE_SSL.
219
220         * gnutls.c (wgnutls_peek): Use correctly FIONBIO codes under Mingw32.
221         Reported by: Ray Satiro <raysatiro@yahoo.com>
222
223 2011-04-13  Giuseppe Scrivano  <gscrivano@gnu.org>
224
225         * openssl.c (openssl_poll): Check if the specified timeout is zero after
226         SSL_pending.
227         (openssl_peek): Make the call non-blocking.
228
229 2011-04-11  Cristian Rodríguez  <crrodriguez@opensuse.org> (tiny change)
230
231         * openssl.c (ssl_init) [! OPENSSL_NO_SSL2]: Use SSLv2 only when
232         available.
233
234 2011-04-07  Giuseppe Scrivano  <gscrivano@gnu.org>
235
236         * gnutls.c (ssl_init): Allow X509 v1 certificates.
237         Suggested by: Ray Satiro <raysatiro@yahoo.com>
238
239         (wgnutls_peek): Remove tight loop around gnutls_record_recv.
240
241 2011-04-07  Ray Satiro  <raysatiro@yahoo.com> (tiny change)
242
243         (wgnutls_read): Check for the GNUTLS_E_AGAIN return code in the recv
244         tight loop.
245         (wgnutls_write): Likewise.
246         (wgnutls_peek): Likewise.
247
248 2011-04-07  Giuseppe Scrivano  <gscrivano@gnu.org>
249
250         * gnutls.c (wgnutls_peek): New local variable `read'.
251         Use `read' instead of `ret' to store the number of read bytes.
252         Reported by: Ray Satiro <raysatiro@yahoo.com>
253
254 2011-04-04  Giuseppe Scrivano  <gscrivano@gnu.org>
255
256         * openssl.c [WINDOWS]: Include <w32sock.h>.
257         (openssl_read): Retry the read on SSL_ERROR_WANT_READ.
258
259         * host.c [WINDOWS]: Include <winsock2.h> and <ws2tcpip.h>.
260         Suggested by: Ray Satiro <raysatiro@yahoo.com>.
261
262         * Makefile.am (LIBS): Remove  @LIBSSL@ @W32LIBS@
263
264 2011-04-03  Giuseppe Scrivano  <gscrivano@gnu.org>
265
266         * gnutls.c: Include <fcntl.h>.
267         (wgnutls_peek): Make the socket non blocking before attempt a read.
268
269         * gnutls.c: Include <sys/ioctl.h>.
270         (wgnutls_peek) [F_GETFL]: Use fcntl.
271         (wgnutls_peek) [! F_GETFL]: Use ioctl.
272
273
274 2011-03-31  Giuseppe Scrivano  <gscrivano@gnu.org>
275
276         * recur.c (download_child_p): When --no-parent is used, check that the
277         ports are the same only in case the same protocol is used.
278         Reported by: Karl Berry <karl@freefriends.org>
279
280         * res.c (res_parse): Add new line to debug messages.
281
282 2011-03-21  Giuseppe Scrivano  <gscrivano@gnu.org>
283
284         * iri.h (parse_charset) [!ENABLE_IRI]: Use the parameter to avoid a
285         compiler warning.
286
287         * iri.h: Declare `dummy_iri' as extern not static.
288         * main.c [!ENABLE_IRI]: Define `dummy_iri'.
289         (main) [!ENABLE_IRI]: Initialize `dummy_iri'.
290
291 2011-03-11  Giuseppe Scrivano  <gscrivano@gnu.org>
292
293         * ftp.c (getftp): Fix some memory leaks.
294         * ftp-ls.c (ftp_parse_winnt_ls): Likewise.
295         Reported by: Zhenbo Xu <zhenbo1987@gmail.com>.
296
297 2010-11-20  Filipe Brandenburger <filbranden@gmail.com> (tiny change)
298
299         * http.c (gethttp): Repeat a POST request on a 307 response.
300         * retr.c (retrieve_url): Use NEWLOCATION_KEEP_POST.
301         * wget.h: Define NEWLOCATION_KEEP_POST.
302
303 2011-03-02  Tomasz Buchert <tomek.buchert@gmail.com> (tiny change)
304
305         * http.c (ensure_extension): Do not adjust the extension if the file
306         ends in .htm.
307
308 2011-02-22  Gilles Carry  <gilles.carry@st.com>
309
310         * main.c (prompt_for_password): Use stderr instead of stdout
311         to prompt password. This allows to use --output-document=- and
312         --ask-password simultaneously. Without this, redirecting stdout
313         makes password prompt invisible and mucks up payload such as in
314         this example:
315         wget --output-document=- --ask-password -user=foo \
316                 http://foo.com/tarball.tgz | tar zxf -
317
318 2011-02-22  Steven Schubiger  <stsc@member.fsf.org>
319
320         * http.c (gethttp, http_loop): Move duplicated code which is run
321         when an existing file is not to be clobbered to a function.
322         (get_file_flags): New static function.
323
324 2010-12-10  Evgeniy Philippov <egphilippov@googlemail.com> (tiny change)
325
326         * main.c (main): Initialize `total_downloaded_bytes'.
327
328 2010-12-09  Giuseppe Scrivano  <gscrivano@gnu.org>
329
330         * main.c (main): If --no-clobber and --convert-links are used at the
331         same time, use only the latter.
332         Reported by: Romain Vimont <rom@rom1v.com>
333
334 2010-12-07  Jessica McKellar <jesstess@mit.edu> (tiny change)
335
336         * main.c: Make help message clearer.
337
338 2010-12-02  Giuseppe Scrivano  <gscrivano@gnu.org>
339
340         * build_info.c.in: Do not list md5.
341
342 2010-12-01  Giuseppe Scrivano  <gscrivano@gnu.org>
343
344         * cmpt.c: Include <unistd.h> inconditionally.
345         * connect.c: Likewise.
346         * convert.c: Likewise.
347         * ftp-basic.c: Likewise.
348         * ftp-ls.c: Likewise.
349         * ftp.c: Likewise.
350         * gnutls.c: Likewise.
351         * http.c: Likewise.
352         * init.c: Likewise.
353         * log.c: Likewise.
354         * main.c: Likewise.
355         * openssl.c: Likewise.
356         * progress.c: Likewise.
357         * ptimer.c: Likewise.
358         * recur.c: Likewise.
359         * retr.c: Likewise.
360         * url.c: Likewise.
361         * utils.c: Likewise.
362
363         * retr.c (fd_read_body): Dinamically allocate `dlbuf'.
364
365 2010-11-27  Reza Snowdon  <vivi@mage.me.uk>
366
367         * init.c (initialize): If 'ok' is not zero; exit, as this
368         indicates there was a problem parsing 'SYSTEM_WGETRC'.
369         Fixes bug #20370.
370
371 2010-11-22  Giuseppe Scrivano  <gscrivano@gnu.org>
372
373         Revert last commit.
374         * ftp.c (getftp): When count > 0, don't append to the existing file.
375         * http.c (gethttp): Likewise.
376
377 2010-11-21  Giuseppe Scrivano  <gscrivano@gnu.org>
378
379         * ftp.c (getftp): If `count' is bigger than zero, try to resume the
380         download, not restart it.
381         * http.c (gethttp): Likewise.
382         Suggested by: Evgeny Kapun <abacabadabacaba@gmail.com>.
383
384 2010-11-19  Giuseppe Scrivano  <gscrivano@gnu.org>
385
386         * ftp.c (getftp): Accept new argument `count'.  When `count' is
387         bigger than zero, assume the file can be overwritten.
388         (ftp_loop_internal): Pass new argument `count' to `getftp'.
389
390         * http.c (gethttp): Accept new argument `count'.  When `count' is
391         bigger than zero, assume the file can be overwritten.
392         (http_loop): Pass new argument `count' to `gethttp'.
393         Reported by: Evgeny Kapun <abacabadabacaba@gmail.com>.
394
395 2010-08-08  Reza Snowdon <vivi@mage.me.uk>
396
397         * main.c (main): inserted 'defaults'.
398           Added additional 'getopt_long' while loop to search and apply a
399           user specified config file before any other options.
400           New variables 'retconf', 'use_userconfig',
401           'confval', 'userrc_ret', 'config_opt'.
402         * init.c: Include stdbool.h.
403           (commands): Added config details.
404           (defaults): Removed static.
405           (wgetrc): Removed static.
406           (initialize): Removed 'defaults ()',
407           changed 'int ok' to 'bool ok'.
408         * options.h: New variable 'choose_config'.
409         * init.h (defaults): exported function.
410           (run_wgetrc): exported function.
411
412 2010-10-24  Jessica McKellar <jesstess@mit.edu> (tiny change)
413
414         * main.c (main): Print the total download time as part of the
415         summary for downloads using the recursive or page requisites
416         options. Fixes bug #21359.
417
418 2010-10-24  Giuseppe Scrivano  <gscrivano@gnu.org>
419
420         * gnutls.c (wgnutls_peek): Do not return an error when
421         `gnutls_record_recv' fails but some data is already available.
422
423 2010-10-23  Giuseppe Scrivano  <gscrivano@gnu.org>
424
425         * Makefile.am (LIBS): Remove @LIBGNUTLS@ and use @W32LIBS@ as last
426         component.
427
428         * gnutls.c (wgnutls_peek): Block until data is available.
429
430 2010-10-21  Giuseppe Scrivano  <gscrivano@gnu.org>
431
432         * retr.c (retrieve_url): Do not register HTML files twice.
433         Reported by: Manfred Koizar <mkoi-pg@aon.at>.
434
435 2010-10-18  Manfred Koizar <mkoi-pg@aon.at> (tiny change)
436
437         * html-url.c (tag_handle_link): Do not assume external links type
438         to be always "text/html".
439
440 2010-10-16  Giuseppe Scrivano  <gscrivano@gnu.org>
441
442         * connect.c (socket_ip_address): Initialize `sockaddr' to zero.
443         * ftp-basic.c (ftp_epsv): Remove dead assignment to `s'.
444         * ftp-ls.c (ftp_parse_vms_ls): Remove dead assignment to `len'.
445         * http.c (skip_short_body): Remove dead assignment to `ret'.
446         * init.c (wgetrc_user_file_name): Remove dead assignment to `home'.
447         * main.c (main): Silent warning reported by clang.
448         (http_loop): Silent warning reported by clang.
449         * retr.c (retrieve_url): Likewise.
450         * url.c (init_seps): Remove dead assignment to `p'.
451
452 2010-10-11  Giuseppe Scrivano  <gscrivano@gnu.org>
453
454         * ftp.c (getftp): Fix indentation.
455
456 2010-10-11  Steven Schubiger <stsc@member.fsf.org>
457
458         * ftp.c (getftp): Initialize `targ'.
459
460 2010-10-08  Ivanov Anton <x86mail@gmail.com> (tiny change)
461
462     * src/html-url.c (check_style_attr): Skip quotes when they are present.
463
464 2010-10-06  Giuseppe Scrivano  <gscrivano@gnu.org>
465
466         * main.c (main): Remove unused variable `status'.
467
468 2010-09-25  Merinov Nikolay  <kim.roader@gmail.com>
469
470         * init.c: Add "unlink" command into command list.
471         * main.c: Add "unlink" option into option_data list.
472         * options.h: Adding unlink field into struct options.
473         * wget.h: Addind UNLINKERR error into uerr_t enum.
474         * exits.c (get_status_for_err): define status for UNLINKERR.
475         * ftp.c (getftp): unlink file if exists, instead clobbering.
476         (ftp_loop_internal): processing UNLINKERR.
477         * http.c (gethttp): unlink file if exists, instead clobbering.
478         (http_loop): processing UNLINKERR.
479
480 2010-09-24  Dennis, CHENG Renquan <crquan@fedoraproject.org>
481
482         Fix problem when content-disposition is used with recursive downloading.
483         * url.h (url_file_name): Add a new argument `replaced_filename'.
484         * url.c (url_file_name): Likewise.
485         * http.c (parse_content_disposition): Do not add a prefix to the return
486         value.
487         (test_parse_content_disposition): Adjust tests.
488         (gethttp): Pass additional parameter to `url_file_name'.
489         (http_loop): Likewise.
490         * ftp.c (ftp_loop_internal, ftp_get_listing, ftp_retrieve_list)
491         (ftp_loop): Likewise.
492
493 2010-09-14  Giuseppe Scrivano  <gscrivano@gnu.org>
494
495         * convert.c (local_quote_string): Accept new parameter `no_html_quote'.
496         Inhibit HTML quoting when `no_html_quote'.
497         (convert_links): Disable HTML quoting in CSS files.
498         Reported by: Manuel Reinhardt <reinhardt@syslab.com>.
499
500 2010-09-12  Giuseppe Scrivano  <gscrivano@gnu.org>
501
502         * main.c (print_help): Align --trust-server-names help text with
503         the rest of the text.
504         Suggested by: Mike Frysinger  <vapier@gentoo.org>.
505
506 2010-08-20  Giuseppe Scrivano  <gscrivano@gnu.org>
507
508         * convert.c: Include "iri.h".
509         (convert_links_in_hashtable): Parse the url, if
510         necessary, before check if it is present in the dowloaded url
511         map.
512         Reported by: <sk.random@gmail.com>.
513
514 2010-08-09  Giuseppe Scrivano  <gscrivano@gnu.org>
515
516         Fix a problem with HTTP/1.0 proxies.
517         * http.c (gethttp): Specify the connection header when keep alive
518         connections are not used.
519
520         Use persistent connections with proxies supporting them.
521         * http.c (gethttp): Specify Proxy-Connection to the HTTP proxy.
522
523 2010-08-06  Giuseppe Scrivano  <gscrivano@gnu.org>
524
525         * css-url.c (get_uri_string): Skip empty urls.
526
527 2010-07-25  John Trengrove  <jtrengrove@gmail.com> (tiny change)
528
529         * ftp.h: Added enum `parsetype'.  Modified struct to hold parsetype.
530
531         * ftp-ls.c (ftp_parse_unix_ls): Default to TT_DAY. Change to TT_HOUR_MIN
532         if hours/minutes parsed.
533         (ftp_parse_winnt_ls): Default to TT_HOUR_MIN.
534         (ftp_parse_vms_ls): Default to TT_HOUR_MIN.
535         (ftp_index): Print only if fileinfo struct value ttype set to TT_HOUR_MIN.
536
537 2010-07-30  Giuseppe Scrivano  <gscrivano@gnu.org>
538
539         * html-url.h (struct map_context): Remove member `tail'.
540
541         * html-url.c (append_url): Append the new url ordered by `position'.
542         (get_urls_html): Do not initialize `ctx.tail'.
543
544         * css-url.c (get_urls_css_file): Do not initialize `ctx.tail'.
545
546 2010-07-29  Giuseppe Scrivano  <gscrivano@gnu.org>
547
548         * gnutls.c (wgnutls_peek): Don't read more data if the buffered peek
549         data is sufficient.
550
551 2010-07-28  Giuseppe Scrivano  <gscrivano@gnu.org>
552
553         * http.h (http_loop): Add new argument `original_url'
554         * http.c (http_loop): Add new argument `original_url'.  Use
555         `original_url' to get a filename if `trustservernames' is false.
556
557         * init.c (commands): Add "trustservernames".
558
559         * options.h (library): Add variable `trustservernames'.
560
561         * main.c (option_data): Add trust-server-names.
562         (print_help): Describe --trust-server-names.
563
564         * retr.c (retrieve_url): Pass new argument to `http_loop'.
565
566 2010-07-20  Alan Jenkins <alan-jenkins@tuffmail.co.uk> (tiny change)
567
568         * http.c (gethttp): Check content-length was set before trying to
569         compare it with the already downloded filesize.
570
571 2010-07-20  Leonid Petrov <nouser@lpetrov.net>
572
573         * ftp.c (getftp): Don't attempt to retrieve the file if it is already
574         completely.
575         (ftp_loop_internal): Force the length to be zero for symlinks.
576
577 2010-07-18  Giuseppe Scrivano  <gscrivano@gnu.org>
578
579         * http.c (gethttp): If -N is used, don't exit immediately if the content
580         length is less or equal than the existing file size.  Specify "Range"
581         only if -N is not used.
582         Reported by: Caleb Cushing <xenoterracide@gmail.com>.
583
584 2010-07-14  Giuseppe Scrivano  <gscrivano@gnu.org>
585
586         * ftp.c (max): Remove definition.
587         (getftp): New variable `got_expected_bytes'.  Let `expected_bytes' be
588         the value SIZE returns, otherwise use the bytes count returned by RETR.
589         Suggested by Daniel Stenberg <daniel@haxx.se>.
590
591 2010-07-14  Giuseppe Scrivano  <gscrivano@gnu.org>
592
593         * ftp.c (max): Add definition.
594         (getftp): Consider for `expected_bytes' the greatest value between the
595         bytes count returned by SIZE and the bytes count returned by RETR.
596         Reported by: Jozua <jozua@sparky.za.net>.
597
598 2010-07-11  Giuseppe Scrivano  <gscrivano@gnu.org>
599
600         * http.c (http_loop): New variable `force_full_retrieve'.  If the remote
601         file is newer that the local one then inhibit -c.
602         Reported by: Caleb Cushing <xenoterracide@gmail.com>.
603
604 2010-07-09  Giuseppe Scrivano  <gscrivano@gnu.org>
605
606         * css-url.c (get_urls_css_file): Use `wget_read_file' instead of
607         `read_file'.  Use `wget_read_file_free' instead of `read_file_free'.
608         * convert.c (convert_links): Likewise.
609         * html-url.c (get_urls_html, get_urls_file): Likewise.
610         * res.c (res_parse_from_file): Likewise.
611
612         * utils.h: Rename `read_file' to `wget_read_file'.  Rename
613         `read_file_free' to `wget_read_file_free'.
614
615         * utils.c (wget_read_file): Renamed from `read_file'.
616         (wget_read_file_free): Renamed from `read_file_free'.
617
618 2010-07-05  Giuseppe Scrivano  <gscrivano@gnu.org>
619
620         * gnutls.c (ssl_init): New local variables `ca_directory' and `dir'.
621         Load default root certificates under the `ca_directory' directory.
622
623 2010-07-03  Giuseppe Scrivano  <gscrivano@gnu.org>
624
625         * gnutls.c (ssl_connect_wget): New local variable `allowed_protocols'.
626         Honor the --secure-protocol flag.
627
628 2010-06-20  Giuseppe Scrivano  <gscrivano@gnu.org>
629
630         * main.c (print_help): Fix help string for --random-wait.  Its range is
631         [0.5*wait, 1.5*wait) not [0, 2*wait).
632         Reported by: Tom Mizutani <gombei1970@gmail.com>.
633
634 2010-06-15  Giuseppe Scrivano  <gscrivano@gnu.org>
635
636         * gnutls.c [WIN32]: Include "w32sock.h".
637         (FD_TO_SOCKET): Add definition.
638         (ssl_connect_wget): Get the real socket handle by FD_TO_SOCKET.
639         Define FD_TO_SOCKET if it is not yet defined.
640
641 2010-06-14  Giuseppe Scrivano  <gscrivano@gnu.org>
642
643         * gnutls.c: Include <stdlib.h>.
644         (struct wgnutls_transport_context): Remove `peekstart'.
645         (ssl_connect_wget): Renamed from `ssl_connect'.
646         (wgnutls_poll): New variable `ctx'.
647         (wgnutls_read): Don't use `ctx->peekstart'.
648         (wgnutls_peek): Likewise.  Don't attempt to read if there is not
649         ready data.
650
651 2010-06-14  Giuseppe Scrivano  <gscrivano@gnu.org>
652         * http.c (http_loop): Always send a HEAD request when -N is used
653         together with --content-disposition.
654         Reported by: Jochen Roderburg <Roderburg@Uni-Koeln.DE>.
655
656 2010-06-10  Muthu Subramanian K <muthusuba@gmail.com> (tiny change)
657
658         * http.c (http_loop): Increase `total_downloaded_bytes' by
659         `hstat.rd_size', not `hstat.len'.
660
661 2010-06-10  Giuseppe Scrivano  <gscrivano@gnu.org>
662
663         * main.c (print_version): Drop the current maintainer line.
664
665 2010-06-10  Giuseppe Scrivano  <gscrivano@gnu.org>
666
667         * Makefile.am (build_info.c): Generate the `build_info.c' file under
668         the build directory.
669         Patch by: Daniel Stenberg <daniel@haxx.se>.
670
671 2010-06-03  Giuseppe Scrivano  <gscrivano@gnu.org>
672
673         * http.c (http_loop): Do not send a HEAD request before the GET request
674         when --content-disposition is used.
675         Reported by: alex_wh@mail.ru.
676
677 2010-05-31  Giuseppe Scrivano  <gscrivano@gnu.org>
678
679         * css.l: Use option "nounput".
680         (YY_NO_INPUT): Add macro definition.
681
682 2010-05-31  Giuseppe Scrivano  <gscrivano@gnu.org>
683
684         * html-parse.c (map_html_tags): Fix condition for closed tag.  Handle
685         the case '>' is not specified after '/'.
686
687 2010-05-31  Giuseppe Scrivano  <gscrivano@gnu.org>
688
689         * sysdep.h (_SVID_SOURCE): Remove definition.
690         (_BSD_SOURCE): Remove definition.
691
692 2010-05-31  Giuseppe Scrivano  <gscrivano@gnu.org>
693
694         * recur.c (retrieve_tree): Remove variable `up_error_code'.
695
696         * iri.c (open_locale_to_utf8): Remove function.
697
698 2010-05-30  Giuseppe Scrivano  <gscrivano@gnu.org>
699
700         * html-parse.c (NAME_CHAR_P): Consider '<' an invalid character.
701         (advance_declaration): Close the tag if '<' is found.
702         (map_html_tags): Likewise.
703
704 2010-05-27  Giuseppe Scrivano  <gscrivano@gnu.org>
705
706         * main.c (print_usage): Accept a new parameter `error'.
707         (main): Print diagnostic messages to stderr, not stdout.
708
709 2010-05-27  Giuseppe Scrivano  <gscrivano@gnu.org>
710
711         * Makefile.am (wget_SOURCES): Remove `snprintf.c'.
712
713         * snprintf.c: Remove file.
714
715 2010-05-27  Giuseppe Scrivano  <gscrivano@gnu.org>
716
717         * main.c (main): Exit with failure when -k is specified and -O is not
718         a regular file.
719
720 2010-05-27  Giuseppe Scrivano  <gscrivano@gnu.org>
721
722         * http.c (gethttp): Consider new cookies retrieved when the
723         authorization fails.
724
725 2010-05-25  Giuseppe Scrivano  <gscrivano@gnu.org>
726
727         * host.c (sufmatch): Do not consider zero length entries.
728
729         * http.c (H_10X): New macro.
730         (gethttp): Silently ignore 1xx responses.
731
732 2010-05-24  Giuseppe Scrivano  <gscrivano@gnu.org>
733
734         * iri.h (dummy_iri): Define static.
735
736         * css-tokens.h (css_tokens): Remove variable.
737
738 2010-05-23  Giuseppe Scrivano  <gscrivano@gnu.org>
739
740         * http.c (http_atotm): Count the NUL character when copying the locale
741         string.
742         Reported by: Florian Weimer <fw@deneb.enyo.de>
743
744 2010-05-16  Giuseppe Scrivano  <gscrivano@gnu.org>
745
746         * Makefile.am (LDADD): Remove MD5_LDADD.
747         (MD5_LDADD): Remove definition.
748         (AM_CPPFLAGS): Remove MD5_CPPFLAGS.
749         (version.c): Remove dependency from MD5_LDADD.
750         (../md5/libmd5.a): Remove rule.
751
752         * ftp-opie.c: Include "md5.h".  Do not include "gen-md5.h".
753         (skey_response): New variable ctx.  Use md5 functions from the gnulib
754         module instead of functions defined previously in the "gen-md5.h" file.
755
756         * gen-md5.h: Remove file.
757         * gen-md5.c: Likewise.
758
759         * http.c: Include "md5.h".  Do not include "gen-md5.h".
760         (digest_authentication_encode): New variable ctx.  Use md5 functions
761         from the gnulib module instead of functions defined previously in the
762         "gen-md5.h" file.
763
764 2010-05-15  Giuseppe Scrivano  <gscrivano@gnu.org>
765
766         * Makefile.am: Quote any path using $(top_srcdir) or $(top_builddir).
767         (version.c): Remove dependency from configure.ac and Makefile.am.
768
769         * css.l: Include "wget.h".
770
771 2010-05-08  Giuseppe Scrivano  <gscrivano@gnu.org>
772
773         * Makefile.am: Update copyright years.
774         * cmpt.c: Likewise.
775         * connect.h: Likewise.
776         * convert.c: Likewise.
777         * convert.h: Likewise.
778         * cookies.c: Likewise.
779         * cookies.h: Likewise.
780         * css-tokens.h: Likewise.
781         * css-url.c: Likewise.
782         * css-url.h: Likewise.
783         * css.l: Likewise.
784         * exits.c: Likewise.
785         * exits.h: Likewise.
786         * ftp-basic.c: Likewise.
787         * ftp-ls.c: Likewise.
788         * ftp-opie.c: Likewise.
789         * ftp.c: Likewise.
790         * ftp.h: Likewise.
791         * gen-md5.c: Likewise.
792         * gen-md5.h: Likewise.
793         * gettext.h: Likewise.
794         * gnutls.c: Likewise.
795         * hash.c: Likewise.
796         * hash.h: Likewise.
797         * host.c: Likewise.
798         * host.h: Likewise.
799         * html-parse.c: Likewise.
800         * html-parse.h: Likewise.
801         * html-url.c: Likewise.
802         * html-url.h: Likewise.
803         * http-ntlm.c: Likewise.
804         * http-ntlm.h: Likewise.
805         * http.c: Likewise.
806         * http.h: Likewise.
807         * init.c: Likewise.
808         * init.h: Likewise.
809         * iri.c: Likewise.
810         * iri.h: Likewise.
811         * log.c: Likewise.
812         * log.h: Likewise.
813         * main.c: Likewise.
814         * mswindows.c: Likewise.
815         * mswindows.h: Likewise.
816         * netrc.c: Likewise.
817         * netrc.h: Likewise.
818         * openssl.c: Likewise.
819         * options.h: Likewise.
820         * progress.c: Likewise.
821         * progress.h: Likewise.
822         * ptimer.c: Likewise.
823         * ptimer.h: Likewise.
824         * recur.c: Likewise.
825         * recur.h: Likewise.
826         * res.c: Likewise.
827         * res.h: Likewise.
828         * retr.c: Likewise.
829         * retr.h: Likewise.
830         * spider.c: Likewise.
831         * spider.h: Likewise.
832         * ssl.h: Likewise.
833         * sysdep.h: Likewise.
834         * test.c: Likewise.
835         * test.h: Likewise.
836         * url.c: Likewise.
837         * url.h: Likewise.
838         * utils.c: Likewise.
839         * utils.h: Likewise.
840         * wget.h: Likewise.
841
842 2010-05-07  Giuseppe Scrivano  <gscrivano@gnu.org>
843
844         * gnutls.c (wgnutls_close): Use always `close', not `closesocket'.
845         * openssl.c (openssl_close): Use always `close', not `closesocket'.
846         (ssl_connect_wget): Get the real socket handle by FD_TO_SOCKET.
847         Define FD_TO_SOCKET if it is not yet defined.
848         * Makefile.am (libunittest_a_CPPFLAGS): Add -I$(top_builddir)/lib.
849         * mswindows.h: Always include <winsock2.h> and <ws2tcpip.h>.  Do not
850         include <winsock.h>.
851         [! INHIBIT_WRAP]: Remove macro's socket, bind, connect, accept, recv,
852         send, select, getsockname, getpeername, setsockopt, closesocket.
853         Remove wrapped_socket, wrapped_bind, wrapped_connect, wrapped_listen,
854         wrapped_accept, wrapped_recv, wrapped_send, wrapped_select,
855         wrapped_getsockname, wrapped_getpeername, wrapped_setsockopt,
856         wrapped_closesocket prototypes.
857         * mswindows.c:  Remove wrapped_socket, wrapped_bind, wrapped_connect,
858         wrapped_listen, wrapped_accept, wrapped_recv, wrapped_send,
859         wrapped_select, wrapped_getsockname, wrapped_getpeername,
860         wrapped_setsockopt, wrapped_closesocket functions.  Remove WRAP macro.
861         * host.h [WINDOWS]: Include <winsock2.h> not <winsock.h>.
862         * connect.c: Include <sys/socket.h> and <sys/select.h> on any platform,
863         gnulib ensures they exist.  Remove `read', `write', `close' macros.
864         * Makefile.am: Copy build_info.c.in only if we are working in a VPATH.
865         (AM_CPPFLAGS): Add directory with generated gnulib files.
866
867 2010-05-06  Giuseppe Scrivano  <gscrivano@gnu.org>
868
869         * Makefile.am (build_info.c): Generate build_info.c in the builddir,
870         not srcdir.
871
872 2010-05-05  Giuseppe Scrivano  <gscrivano@gnu.org>
873
874         * http.c (gethttp): Give a nicer message on a malformed status line.
875
876 2010-05-04  Giuseppe Scrivano  <gscrivano@gnu.org>
877
878         * http.c (gethttp): Check `resp_status' return code and handle
879         errors.
880
881 2010-05-01  Giuseppe Scrivano <gscrivano@gnu.org>
882
883         * http.c (request_send): Specify 1.1 as HTTP version for requests.
884         (skip_short_body): Accept new parameter `chunked'.  New variable
885         `remaining_chunk_size'.  Handle the chunked transfer encoding.
886         (gethttp): New variable `chunked_transfer_encoding`.  Set `keepalive'
887         by default to true.  Check if the server is using the chunked transfer
888         encoding.
889
890         * retr.h: Define `rb_chunked_transfer_encoding'.
891
892         * retr.c (fd_read_body): New variable `chunked'.  New variable
893         `remaining_chunk_size'.  Handle the chunked transfer encoding.
894
895 2010-03-04  Steven Schubiger  <stsc@member.fsf.org>
896
897         * ftp.c (ftp_loop_internal): Omit input file from being
898         deleted after retrieval.
899
900         * retr.c (input_file_url): New function.
901
902         * retr.h: Add declaration for input_file_url.
903
904 2010-03-02  Steven Schubiger  <stsc@member.fsf.org>
905
906         * retr.c (retrieve_from_file): Improve checking for a URL
907         by invoking url_valid_scheme instead of url_has_scheme.
908
909         * url.c (url_valid_scheme): New function.
910
911         * url.h: Add declaration for url_valid_scheme.
912
913 2010-03-02  Steven Schubiger  <stsc@member.fsf.org>
914
915         * retr.c (retrieve_from_file): Free memory of input file.
916
917 2010-03-01  Steven Schubiger  <stsc@member.fsf.org>
918
919         * retr.c (retrieve_url): Retrieve the local filename from ftp_loop.
920         (retrieve_from_file): Return if there's no input file.
921
922         * ftp.c (ftp_loop_internal): Duplicate the local filename into
923         retrieve_url's scope when a valid reference is being passed.
924         (ftp_loop): Call ftp_loop_internal here with passing a
925         reference to the local filename, elsewhere with NULL.
926
927         * ftp.h: Adjust declaration of ftp_loop.
928
929 2010-01-27  Paul Townsend  <aab@purdue.edu>  (tiny change)
930
931         * retr.c (fd_read_body): Be sure to measure timer when time has
932         elapsed, too, not just when we've made progress.
933
934 2010-01-13  Micah Cowan  <micah@cowan.name>
935
936         * openssl.c: Fixed some mixed declarations-and-code.
937
938 2010-01-09  Micah Cowan  <micah@cowan.name>
939
940         * init.c, main.c, http.c, ftp.c, options.h: Renamed
941         --no-match-server-timestamps to --no-use-server-timestamps, and
942         add it to print_help.
943
944 2010-01-09  David Holman  <holman.david@gmail.com>  (tiny change)
945
946         * init.c, main.c, http.c, ftp.c, options.h: Added support for
947         --no-match-server-timestamps.
948
949 2009-12-03  Peter Rosin  <peda@lysator.liu.se>
950
951         * snprintf.c (dopr): Output %p as unsigned.
952
953 2010-01-09  Jeremy Olexa  <darkside@gentoo.org>  (tiny change)
954
955         * init.c: Deal with systems which provide PATH_MAX in
956         sys/param.h rather than limits.h.
957
958 2009-10-09  Steven Schweda  <sms@antinode.info>
959
960         * utils.c: Added characters " : \ | to the list of normal
961         caret-escaped (ODS5) characters in the char_prop[] table.
962
963 2009-09-22  Arvind Jamuna Dixit  <ardsrk@gmail.com>
964
965         * http.c (extract_param, parse_content_disposition): Support
966         RFC 2231 while parsing Content-Disposition header
967
968 2009-10-24  Petr Pisar  <petr.pisar@atlas.cz>
969
970         * openssl.c: Implement support for (multiple) subjectAltNames in
971         X509 certificates, not just the commonName.
972
973 2009-10-09  Micah Cowan  <micah@cowan.name>
974
975         * main.c: Fix declaration of compiled_features.
976
977         * build_info.c.in: Adapt to new input format. Added a check for
978         large-file support. Replaced the "openssl" and "gnutls"
979         advertisements with a single "ssl/foo" advertisement.
980
981 2009-09-30  Micah Cowan  <micah@cowan.name>
982
983         * sysdep.h: Unconditionally include stdbool.h (gnulib has it for
984         systems that don't supply it.)
985
986         * vms.c: Added functions vms_basename(), used to extract the
987         bare executable name from argv[0], and vms_getpass(), a
988         VMS-specific replacement for GNU getpass().
989
990          vms.c: Added global string constants: compilation_string
991         (NULL), link_string (NULL), and version_string (real).
992
993 2009-09-24  Micah Cowan  <micah@cowan.name>
994
995         * vms.c: Moved from vms/vms.c.
996
997         * sysdep.h: Use proper prototypes for snprintf, vsnprintf (thanks
998         to Steven Schweda).
999
1000 2009-09-24  Steven Schweda  <sms@antinode.info>
1001
1002         * main.c (print_version): Remove VMS-conditional build info
1003         string; the new VMS builders use OS_TYPE.
1004
1005         * ftp.c (getftp): Fix accidental use of target -> targ.
1006
1007 2009-09-24  Micah Cowan  <micah@cowan.name>
1008
1009         * host.c (host_errstr): host_errstr should return const char *.
1010
1011 2009-09-22  Micah Cowan  <micah@cowan.name>
1012
1013         * Makefile.am (version.c): Explicitly tell Mercurial where the
1014         top-source repository should be, so it doesn't accidentally use
1015         the repository for a containing directory (for instance, if the
1016         user's home directory is managed by a Mercurial repo). Also
1017         ensures we find the repository, even if the build directory is
1018         outside the source directory.
1019
1020         * wget.h: define WINDOWS if _WIN32 or __WIN32__ is defined, but
1021         not __CYGWIN__.
1022
1023         * mswindows.c (xsleep): Check for availability of the sleep
1024         function, in addition to the usleep function.
1025         (get_winsock_error, windows_strerror): Removed (gnulib already
1026         supplies this functionality).
1027
1028         * mswindows.h [NEED_GAI_STRERROR]: define gai_strerror
1029         to (gnulib's) strerror, rather than windows_strerror. Removed
1030         error macro definitions provided by gnulib.
1031         (windows_strerror): Removed (gnulib already supplies this
1032         functionality).
1033
1034         * host.c: Don't declare h_errno when building on Windows.
1035
1036         * Makefile.am (LIBS): Added @W32LIBS@.
1037         (EXTRA_wget_SOURCES): Removed (it's in LIBOBJ now).
1038         (version.c): Removed dependency on $(LDADD), since it may include
1039         dependencies that are not part of the Wget sources (-lwsock32, for
1040         instance).
1041
1042         * openssl.c (ssl_check_certificate): Avoid reusing the same buffer
1043         space for successive quoted arguments. Thanks to Steven Schweda
1044         for pointing out the problem.
1045
1046 2009-09-21  Micah Cowan  <micah@cowan.name>
1047
1048         * progress.c (update_speed_ring): "the the" -> "the".
1049
1050         * css-url.c, iri.c, mswindows.c: Removed assert.h inclusion (not
1051         using it).
1052
1053 2009-09-11  Steven Schweda  <sms@antinode.info>
1054
1055         * utils.c, utils.h (fopen_excl): Make second argument an int,
1056         rather than a bool (so it can handle the appropriate VMS version
1057         of the flag).
1058
1059         * main.c (print_version): Don't print LOCALEDIR unless NLS is
1060         enabled.
1061
1062         * http.c (gethttp): Pass FOPEN_BIN_FLAG, instead of true.
1063
1064         * ftp.c (ftp_retrieve_glob): Cast strcmp to assign to cmp, for a
1065         silly HP build environment.
1066
1067 2009-09-08  Steven Schubiger  <stsc@member.fsf.org>
1068
1069         * main.c, init.c: Mark the --preserve-permissions and
1070         --html-extension option as deprecated.
1071
1072 2009-09-06  Micah Cowan  <micah@cowan.name>
1073
1074         * ftp.c (getftp, ftp_loop_internal): Separate "len" input/output
1075         parameter (with different meanings for input and output), into two
1076         separate parameters, one input (passed_expected_bytes) and one
1077         output (qtyread). Fixes bug #26870.
1078
1079 2009-09-05  Steven Schubiger  <stsc@member.fsf.org>
1080
1081         * retr.h: Declare set_local_file() to avoid build warnings.
1082
1083 2009-09-05  Gisle Vanem  <gvanem@broadpark.no>
1084
1085         * connect.c, init.c, main.c, openssl.c, options.h:  Replace
1086         "ifdef MSDOS" with "ifdef USE_WATT32" since DOS-targets in fact
1087         use the Watt-32 tcp/ip stack.
1088
1089 2009-09-04  Micah Cowan  <micah@cowan.name>
1090
1091         * Makefile.am: Move build_info.c to wget_SOURCES from
1092         nodist_wget_SOURCES, reduce dependencies, and invoke build_info.pl
1093         in its new home, $(top_srcdir)/build-aux.
1094
1095 2009-09-03  Micah Cowan  <micah@cowan.name>
1096
1097         * ftp-ls.c (ftp_parse_vms_ls): Replace use of localtime_r with
1098         localtime, as not all platforms have localtime_r.
1099
1100         * Makefile.am (wget_SOURCES): Rearranged some of the file order,
1101         so .c files and .h files are apart. Added gettext.h, so that it
1102         shows up in the dist.
1103
1104 2009-09-02  Micah Cowan  <micah@cowan.name>
1105
1106         * gettext.h: Refreshed from gettext 0.17.
1107
1108         * test.c: Added definition of program_name variable, required by
1109         lib/error.c (libgnu.a). Doesn't cause problems until you try to
1110         build on a non-GNU system...
1111
1112         * build_info.c.in: Removed useless "+gettext" feature ad.
1113
1114 2009-08-29  Steven Schubiger  <stsc@member.fsf.org>
1115
1116         * convert.c (local_quote_string): Percent-encode semicolons
1117         in local file strings.
1118
1119 2009-08-27  Micah Cowan  <micah@cowan.name>
1120
1121         * wget.h (uerr_t): added new VERIFCERTERR code for SSL certificate
1122         problems. Marked exit codes that are defined but never used (at
1123         least, the ones I could find).
1124
1125         * retr.c, retr.h (retrieve_url): Added a new boolean argument to
1126         determine whether an exit status should be recorded.
1127         (retrieve_from_file): Adjust to new retrieve_url signature.
1128
1129         * res.c (res_retrieve_file): Don't have retrieve_url record an
1130         exit status for robots.txt.
1131
1132         * recur.c (retrieve_tree): Adjust to new retrieve_url signature.
1133
1134         * main.c (main): Use the exit status stored by retrieve_url.
1135
1136         * http.c (gethttp): Distinguish certificate verification problems
1137         from SSL connection issues.
1138         (http_loop): Handle newly-created VERIFCERTERR error code.
1139
1140         * exits.c, exits.h: Newly added.
1141
1142         * Makefile.am (wget_SOURCES): Add exits.c and exits.h.
1143
1144 2009-08-27  Micah Cowan  <micah@cowan.name>
1145
1146         * http.c (gethttp): Make sure Wget heeds cookies when they
1147         are sent with a 401 response; or any other sort of response for
1148         that matter (#26775).
1149
1150 2009-08-19  Micah Cowan  <micah@cowan.name>
1151
1152         * openssl.c (ssl_check_certificate): Only warn about an attack if
1153         the hostname would otherwise have matched. Also some formatting
1154         cleanup.
1155
1156 2009-08-19  Joao Ferreira  <joao@joaoff.com>
1157
1158         * openssl.c (ssl_check_certificate): Detect embedded NUL
1159         characters in the SSL certificate common name.
1160
1161 2009-08-17  Tony Lewis  <tlewis@exelana.com>
1162
1163         * http.c (gethttp): Ensure that we parse Content-Length before we
1164         attempt to refer to its value. Without this fix, NTLM support was
1165         completely buggered. #27192
1166
1167 2009-08-09  Michael Baeuerle  <michael.baeuerle@gmx.net>
1168
1169         * ftp.c: #include <strings.h> for strcasecmp.
1170
1171 2009-07-28  Micah Cowan  <micah@cowan.name>
1172
1173         * main.c (option_data): Rename --html-extension to
1174         --adjust-extension.
1175         (print_help): Ditto.
1176
1177         * options.h (struct option): Rename html_extension to
1178         adjust_extension.
1179         * http.c (gethttp): Ditto.
1180         * convert.c (local_quote_string): Ditto.
1181
1182         * init.c (commands): Add "adjustextension", and reflect rename
1183         change for opt.adjust_extension, for both "adjustextension" and
1184         "htmlextension".
1185
1186 2009-07-27  Micah Cowan  <micah@cowan.name>
1187
1188         * options.h (struct options): Added restrict_files_nonascii
1189         boolean field.
1190
1191         * url.c (FILE_CHAR_TEST): Add check for chars outside the ASCII
1192         range.
1193
1194         * init.c (defaults): Add restrict_files_nonascii to initialization.
1195         (cmd_spec_restrict_file_names): Allow parsing of "ascii" keyword.
1196
1197 2009-07-27  Marcel Telka  <marcel@telka.sk>
1198
1199         * iri.c (do_conversion): Typo: invalide -> invalid
1200
1201 2009-07-27  Petr Pisar  <petr.pisar@atlas.cz>
1202
1203         * main.c (print_help): Fixed a couple typos.
1204
1205 2009-07-26  Micah Cowan  <micah@cowan.name>
1206
1207         * main.c (option_data): Rename --locale option to --local-encoding
1208         (print_help): Document --no-iri, --local-encoding, and
1209         --remote-encoding, within usage message. Remove defunct
1210         --preserve-permissions.
1211
1212 2009-07-23  Micah Cowan  <micah@cowan.name>
1213
1214         * progress.c (get_eta): Change "Translation note" in comment to
1215         "TRANSLATORS", so it actually appears in wget.pot.
1216
1217 2009-07-06  Micah Cowan  <micah@cowan.name>
1218
1219         * main.c (print_help): Improve documentation of --base.
1220
1221 2009-07-05  Micah Cowan  <micah@cowan.name>
1222
1223         * html-url.c (tag_handle_meta): Handle meta name="robots"
1224         properly: deal with whitespace, commas after...
1225
1226         * netrc.c (parse_netrc): Rename local-scope variable "quote" to
1227         "qmark", to avoid conflict with the function name.
1228
1229 2009-07-05  Petr Pisar  <petr.pisar@atlas.cz>
1230
1231         * main.c (print_version): Mark initial line for translation, along
1232         with (env), (user), and (system). Change copyright year to 2009.
1233
1234         * http.c (http_loop): Space after colon.
1235
1236         * gnutls.c (ssl_check_certificate): Use quote function, rather
1237         than explicit quotes.
1238
1239 2009-07-05  Micah Cowan  <micah@cowan.name>
1240
1241         * Makefile.am (version.c): Add dependency on configure.ac.
1242
1243         * iri.c: Mark some strings for translation.
1244
1245 2009-07-04  Steven Schweda  <sms@antinode.info>
1246
1247         * wget.h (ORIG_SFX): Macro added, to supply an alternative "_orig"
1248         suffix on VMS.
1249
1250         * connect.c, host.c, host.h, main.c: Include "vms_ip.h" rather
1251         than <netdb.h> on VMS systems.
1252
1253         * convert.c (write_backup_file): Use "_orig" rather than ".orig"
1254         on VMS.
1255
1256         * ftp-basic.c (ftp_list): Don't use LIST -a on VMS servers.
1257
1258         * ftp.c [__VMS]: Include "vms.h"
1259         * ftp.c (getftp): Disable some unhelpful "for VMS" code. Pass the
1260         OS type to ftp_list.
1261         (getftp) [__VMS]: Alter the filename as required, and invoke fopen
1262         with extra optional arguments.
1263         (ftp_retrieve_list): Set permissions before setting the times.
1264
1265         * ftp-ls.c [__VMS]: Various improvements.
1266
1267         * http.c (SET_USER_AGENT): Added. Include operating-system info in
1268         the User-Agent header.
1269         (gethttp): Use ORIG_SFX macro.
1270         (gethttp) [__VMS]: invoke fopen with extra arguments to
1271         communicate file type.
1272         (http_loop): Add cast to time_t.
1273
1274         * init.c (wgetrc_user_file_name) [__VMS]: Adjustments for where to
1275         find the .wgetrc.
1276
1277         * log.c: Adjustments to improve handling of log files on VMS.
1278
1279         * main.c [__VMS]: Added --ftp-stmlf option (and associated
1280         documentation). Adjust description of backup-suffixes, as they now
1281         differ for VMS.
1282         (print_help, print_version): Include OS type in version
1283         information.
1284         (main) [__VMS]: Invoke fopen with extra options, to specify file
1285         type information.
1286
1287         * netrc.c (search_netrc) [__VMS]: Fix .netrc-finding.
1288
1289         * openssl.c, openssl.h (ssl_connect_wget): Renamed from ssl_connect.
1290
1291         * options.h (struct options): Add ftp_stmlf field.
1292
1293         * retr.c (write_data) [__VMS]: Avoid fflush.
1294
1295         * url.c [__VMS]: Include vms.h.
1296         * url.c (url_file_name) [__VMS]: Handle naming as required for VMS.
1297
1298         * utils.c [__VMS]: Include vms.h. Various added facilities for VMS
1299         needs.
1300
1301 2009-07-04  Micah Cowan  <micah@cowan.name>
1302
1303         * main.c (print_version): Allow localization of the version-info
1304         labels, eschew attempts at alignment (which is complicated when
1305         handling translated strings), and avoid using printf() with
1306         variable-stored format strings that lack conversion
1307         specifications.
1308         (format_and_print_line): For similar reasons, don't calculate
1309         line-continuation tabulation based on the number of bytes in a
1310         string.
1311
1312 2009-07-04  Steven Schubiger  <stsc@member.fsf.org>
1313
1314         * url.c (url_parse): If an URL scheme is invalid, distinguish
1315         between an unsupported or missing scheme.
1316
1317         * url.c: Add a "missing scheme" entry to parse_errors.
1318
1319 2009-07-03  Micah Cowan  <micah@cowan.name>
1320
1321         * iri.h (iri_dup): Provide macro definition for when IRIs are
1322         disabled.
1323
1324         * Makefile.am (LIBS): Added @LIBICONV@.
1325         (wget_SOURCES): Added iri.h.
1326         (EXTRA_wget_SOURCES): Added iri.c, so it gets packaged even if IRI
1327         support was disabled.
1328
1329 2009-07-02  Micah Cowan  <micah@cowan.name>
1330
1331         * recur.c (url_enqueue): Quote enqueue/dequeue debug messages.
1332
1333         * html-url.c (append_url): Change "merge()" quoting style from
1334         locale_quoting_style to escape_quoting_style.
1335
1336 2009-07-01  Micah Cowan  <micah@cowan.name>
1337
1338         * retr.c (retrieve_url): Use the existing "redirect" label,
1339         instead of superfluous "second_try". Removed no-longer-accurate
1340         debug statement. Use the "newloc" parameter to store the fallback
1341         URL, when IRI version was rejected.
1342
1343         * recur.c (retrieve_tree): Always use the parsed URL for tracking
1344         the Referer, since that's the one we actually requested (if
1345         there's a difference in terms of percent-encodings and such).
1346
1347 2009-07-01  Steven Schubiger  <stsc@member.fsf.org>
1348
1349         * Makefile.am: Add a rule to generate build_info.c and list
1350         the build_info.c.in file in EXTRA_DIST. Adjust elsewhere
1351         where needed.
1352
1353         * build_info.c: Remove this static source file.
1354
1355         * build_info.c.in: Data for generation of build_info.c.
1356
1357 2009-06-29  Micah Cowan  <micah@cowan.name>
1358
1359         * html-url.c (append_url): Quote some more arguments that might
1360         contain characters that are inappropriate to display for the
1361         current locale.
1362
1363         * retr.c (retrieve_from_file): Be sure to pass iri information
1364         when parsing an input-fle url, and be sure to hand a clean iri
1365         struct, off to retrieve_tree and retrieve_url.
1366
1367         * iri.c, iri.h (iri_dup): Added.
1368
1369         * retr.c (retrieve_url): Re-parse for IRI fallback.
1370
1371         * main.c (main): Set up iri before the url_parse invocation (so we
1372         can use it).
1373
1374 2009-06-20  Jay Krell  <jay.krell@cornell.edu>
1375
1376         * sysdep.h (_ALL_SOURCE): (small change) Define the _ALL_SOURCE
1377         macro on INTERIX systems. (I switched the location from ftp.c to
1378         sysdep.h --mjc)
1379
1380 2009-06-15  Micah Cowan  <micah@cowan.name>
1381
1382         * ftp.c (getftp): If we can't accept the connection, return
1383         CONERROR, not whatever the contents of err happens to be. Fixes
1384         bug #25015.
1385
1386         * retr.c (fd_read_body): Make both args to progress_create
1387         consistent, resulting in an accurate progress display. Fixes bug
1388         #24948.
1389
1390 2009-06-14  Micah Cowan  <micah@cowan.name>
1391
1392         * Makefile.am (wget_SOURCES): css-tokens.h needs to ship with
1393         dist, too.
1394
1395 2009-06-13  Micah Cowan  <micah@cowan.name>
1396
1397         * init.c: Rename setval_internal_wrapper to setval_internal_tilde,
1398         ensure we don't "replace" the tilde unless it's actually
1399         present. Clean up some minor GNU style issues.
1400
1401 2009-06-13  Julien Pichon  <julienpichon7@gmail.com>
1402
1403         * init.c: Handle tilde-expansion in wgetrc commands, without
1404         resorting to setting/unsetting globals to change behavior in one
1405         call location.
1406
1407 2009-06-12  Micah Cowan  <micah@cowan.name>
1408
1409         * host.c: Include <sys/types.h> before <sys/socket.h>. Not
1410         required by POSIX any more, but some older systems (such as
1411         FreeBSD 4.1) still need it, and it doesn't seem like it could
1412         hurt...
1413
1414         * build_info.c (library): Handle "https" as a feature in its own
1415         right, apart from "gnutls" and "openssl".
1416
1417         * host.c: Declare h_errno if no declaration is provided. Idea
1418         thanks to Maciej W. Rozycki.
1419
1420 2009-06-11  Xin Zou  <zouxin2008@gmail.com>
1421
1422         * http.c (gethttp): Fix some memory leaks.
1423
1424 2009-06-11  Micah Cowan  <micah@cowan.name>
1425
1426         * http.c (http_atotm): Handle potential for setlocale's return
1427         value to be static storage. Thanks to Benjamin Wolsey
1428         <bwy@benjaminwolsey.de>.
1429
1430         * sysdep.h: Need NAMESPACE_TWEAKS on non-Linux glibc-based
1431         systems, too. Thanks to Robert Millan.
1432
1433 2009-05-28  Steven Schubiger  <stsc@member.fsf.org>
1434
1435         * ftp.c (ftp_get_listing): Update the "listing file"
1436         string after calling ftp_loop_internal().
1437
1438 2009-05-27  Steven Schubiger  <stsc@member.fsf.org>
1439
1440         * ftp.c (ftp_get_listing): Duplicate the "listing file"
1441         string to avoid memory corruption when FOPEN_EXCL_ERR is
1442         encountered.
1443
1444 2009-05-17  Steven Schubiger  <stsc@member.fsf.org>
1445
1446         * progress.c (eta_to_human_short): Fix the remaining hours
1447         to be displayed. Spotted by Tadeu Martins (#26411).
1448
1449 2009-04-24  Micah Cowan  <micah@cowan.name>
1450
1451         * hash.c: Change stdint.h inclusion to use HAVE_STDINT_H, not C99
1452         check.
1453
1454         * connect.c: stdint.h inclusion added.
1455
1456         Thanks to Markus Duft <mduft@gentoo.org> for a similar patch.
1457
1458 2009-04-20  Micah Cowan  <micah@cowan.name>
1459
1460         * Makefile.am (version.c): Fix unportable use of "echo -n".
1461
1462 2009-04-13  Steven Schubiger  <stsc@member.fsf.org>
1463
1464         * ftp.c (ftp_retrieve_list): Move the duplicated code that
1465         determines the local file to a function.
1466
1467         * http.c (http_loop): Likewise.
1468
1469         * retr.c (set_local_file): New function.
1470
1471 2009-04-11  Steven Schubiger  <stsc@member.fsf.org>
1472
1473         * init.c (initialize): Run a custom SYSTEM_WGETRC when
1474         provided as an environment variable.
1475
1476 2009-02-27  Gisle Vanem  <gvanem@broadpark.no>
1477
1478         * main.c (main): "freopen (NULL,.." causes an assertion in MSVC
1479         debug-mode.  I.e. NULL isn't legal. But the "CONOUT$" device works
1480         fine.
1481
1482 2009-02-27  Steven Schubiger  <stsc@member.fsf.org>
1483
1484         * ftp.c (ftp_loop_internal): Don't claim for FTP retrievals
1485         when writing to standard output either that the document
1486         has been saved. Addresses bug #20520 again.
1487
1488 2009-02-21  Steven Schubiger  <stsc@member.fsf.org>
1489
1490         * http.c (http_loop): When a document is written to
1491         standard output, don't claim it has been saved to a file.
1492         Addresses bug #20520.
1493
1494 2009-02-18  Steven Schubiger  <stsc@members.fsf.org>
1495
1496         * recur.h: Remove the dangling declaration for recursive_cleanup().
1497
1498 2009-02-01  Gerardo E. Gidoni  <gerel@gnu.org>
1499
1500         * main.c, recur.c, recur.h, res.c, retr.c, retr.h: restructured code to
1501         avoid multiple 'url_parse' calls.
1502
1503 2008-11-13  Micah Cowan  <micah@cowan.name>
1504
1505         * http.c (gethttp): Don't do anything when content-length >= our
1506         requested range.
1507
1508 2008-11-27  Saint Xavier  <wget@sxav.eu>
1509
1510         * http.c (gethttp): Move authentication code before filename
1511         allocation avoiding fallbacking on default filename because
1512         "Content-Disposition" header wasn't present before authentcation
1513         has been completed. Fixes bug #24862.
1514
1515 2008-11-16  Steven Schubiger  <stsc@members.fsf.org>
1516
1517         * main.c: Declare and initialize the numurls counter.
1518
1519         * ftp.c, http.c: Make the counter visible here and use it.
1520
1521         * options.h: Remove old declaration from options struct.
1522
1523 2008-11-15  Steven Schubiger  <stsc@members.fsf.org>
1524
1525         * init.c (defaults): Set default waitretry value.
1526
1527 2008-11-14  Steven Schubiger  <stsc@members.fsf.org>
1528
1529         * main.c (format_and_print_line): Use a custom format
1530         string for printing leading spaces.
1531
1532 2008-11-12  Micah Cowan  <micah@cowan.name>
1533
1534         * ftp-ls.c (ftp_index): HTML-escape dir name in title, h1, a:href.
1535
1536 2008-11-12  Alexander Belopolsky  <alexander.belopolsky@gmail.com>
1537
1538         * url.c, url.h (url_escape_unsafe_and_reserved): Added.
1539
1540         * ftp-ls.c (ftp_index): URL-escape, rather than HTML-escape, the
1541         filename appearing in the link.
1542
1543 2008-11-12  Steven Schubiger  <stsc@members.fsf.org>
1544
1545         * main.c (print_version): Hand the relevant
1546         xstrdup/xfree calls back to format_and_print_line().
1547
1548 2008-11-11  Steven Schubiger  <stsc@members.fsf.org>
1549
1550         * main.c (format_and_print_line): Move both the memory
1551         allocating and freeing bits upwards to print_version().
1552
1553 2008-11-10  Saint Xavier  <wget@sxav.eu>
1554
1555         * http.c: Make --auth-no-challenge works with user:pass@ in URLs.
1556
1557 2008-11-05  Micah Cowan  <micah@cowan.name>
1558
1559         * ftp.c (print_length): Should print humanized "size remaining"
1560         only when it's at least 1k.
1561
1562 2008-10-31  Micah Cowan  <micah@cowan.name>
1563
1564         * main.c (print_version): Add information about the mailing list.
1565
1566 2008-10-31  Alexander Drozdov  <dzal_mail@mtu-net.ru>
1567
1568         * retr.c (fd_read_hunk): Make assert deal with maxsize == 0.
1569
1570         * ftp-ls.c (clean_line): Prevent underflow on empty lines.
1571
1572 2008-10-26  Gisle Vanem  <gvanem@broadpark.no>
1573
1574         * main.c (format_and_print_line): Put variables on top of
1575         blocks (not all compilers are C99). Add an extra '\n' if
1576         SYSTEM_WGETRC isn't defined and printed.
1577
1578 2008-09-09  Gisle Vanem  <gvanem@broadpark.no>
1579
1580         * url.c (url_error): Use aprintf, not asprintf.
1581
1582 2008-09-09  Micah Cowan  <micah@cowan.name>
1583
1584         * init.c (home_dir): Save the calculated value for home,
1585         to avoid duplicated work on repeated calls.
1586         (wgetrc_file_name) [WINDOWS]: Define and initialize home var.
1587
1588         * build_info.c, main.c: Remove unnecessary extern vars
1589         system_wgetrc and locale_dir.
1590
1591         * main.c: Define program_name for lib/error.c.
1592
1593 2008-09-02  Gisle Vanem  <gvanem@broadpark.no>
1594
1595         * mswindows.h: Must ensure <stdio.h> is included before
1596         we redefine ?vsnprintf().
1597
1598 2008-08-08  Steven Schubiger  <stsc@members.fsf.org>
1599
1600         * main.c, utils.h: Removed some dead conditional DEBUG_MALLOC code.
1601
1602 2008-08-03  Micah Cowan  <micah@cowan.name>
1603
1604         * main.c (print_help): Added --default-page.
1605
1606 2008-08-01  Joao Ferreira  <joao@joaoff.com>
1607
1608         * init.c, main.c, options.h, url.c: Added option --default-page
1609         to support alternative default names for index.html
1610
1611 2008-08-03  Micah Cowan  <micah@cowan.name>
1612
1613         * build_info.c, css-url.c: #include wget.h, not config.h.
1614
1615 2008-08-03  Steven Schubiger  <stsc@members.fsf.org>
1616
1617         * url.c, url.h (url_error): Better messages for unsupported
1618         schemes, especially https.
1619
1620         * html-url.c, recur.c, retr.c: Adjust to new url_error
1621         invocation, and free result.
1622
1623 2008-07-17  Steven Schubiger  <stsc@members.fsf.org>
1624
1625         * retr.c (retrieve_from_file): When given an URL as input file,
1626         use it as baseref if none was specified and treat the input file
1627         as HTML if its content type is text/html.
1628
1629         * init.c (cleanup): Free the memory associated with the base
1630         option (when DEBUG_MALLOC is defined).
1631
1632 2008-07-02  Xavier Saint  <wget@sxav.eu>
1633
1634         * iri.c, iri.h  : New function idn_decode() to decode ASCII
1635         encoded hostname to the locale.
1636
1637         * host.c : Show hostname to be resolved both in locale and
1638         ASCII encoded.
1639
1640 2008-06-28  Steven Schubiger  <stsc@members.fsf.org>
1641
1642         * retr.c (retrieve_from_file): Allow for reading the links from
1643         an external file (HTTP/FTP).
1644
1645 2008-06-26  Xavier Saint  <wget@sxav.eu>
1646
1647         * iri.c, iri.h : New functions locale_to_utf8() and
1648         idn_encode() adding basic capabilities of IRI/IDN.
1649
1650         * url.c : Convert URLs from locale to UTF-8 allowing a basic
1651         support of IRI/IDN
1652
1653 2008-06-25  Steven Schubiger  <stsc@members.fsf.org>
1654
1655         * ftp.c (getftp): When spidering a FTP URL, emit a diagnostic
1656         message if the remote file exists.
1657
1658 2008-06-24  Steven Schubiger  <stsc@members.fsf.org>
1659
1660         * http.c (http_loop): Replace escnonprint() occurence with
1661         a quotearg_style() call.
1662
1663 2008-06-24  Micah Cowan  <micah@cowan.name>
1664
1665         * ftp-ls.c (ftp_index): Don't assume time_t* is compatible with
1666         long*. Fixes crash on Windows, and probably other systems.
1667
1668 2008-06-22  Steven Schubiger  <stsc@members.fsf.org>
1669
1670         * http.c: Explicitly initialize and deallocate the message
1671         string used by the -nv --spider functionality.
1672
1673 2008-06-22  Steven Schubiger  <schubiger@gmail.com>
1674
1675         * http.c: Make -nv --spider include the file's name when it
1676         exists.
1677
1678 2008-06-22  Micah Cowan  <micah@cowan.name>
1679
1680         * Makefile.am (version.c): Fixed version string invocation so it
1681         once again can't result in unterminated strings, made all the
1682         string vars pointers-to-const, and moved line lengths
1683         below 80 (in Makefile.am, not in version.c).
1684
1685 2008-06-19  Xavier Saint  <wget@sxav.eu>
1686
1687         * iri.c, iri.h : New function check_encoding_name() as
1688         a preliminary encoding name check.
1689
1690         * main.c, iri.c : Make use of check_encoding_name().
1691
1692 2008-06-19  Xavier Saint  <wget@sxav.eu>
1693
1694         * iri.c : Include missing stringprep.h file and add a
1695         cast.
1696
1697         * init.c : set a default initial value for opt.enable_iri,
1698         opt.locale and opt.encoding_remote.
1699
1700 2008-06-19  Xavier Saint  <wget@sxav.eu>
1701
1702         * iri.c, iri.h : Add a new function find_locale() to find
1703         out the local system encoding.
1704
1705         * main.c : Make use of find_locale().
1706
1707 2008-06-19  Xavier Saint  <wget@sxav.eu>
1708
1709         * html-url.c : Add "content-type" meta tag parsing for
1710         retrieving page encoding.
1711
1712         * iri.h : Make no-op version of parse_charset() return
1713         NULL.
1714
1715 2008-06-16  Micah Cowan  <micah@cowan.name>
1716
1717         * http.c (http_loop): When hstat.len is higher than the
1718         successfully completed content's length, but it's because we
1719         _set_ it that way, don't abort.
1720
1721 2008-06-14  Xavier Saint  <wget@sxav.eu>
1722
1723         * iri.c, iri.h : New files.
1724
1725         * Makefile.am : Add files iri.h and conditional iri.c.
1726
1727         * build_info.c : Add compiled feature "iri".
1728
1729         * http.c : include iri.h and parse charset from Content-Type
1730         header.
1731
1732         * init.c, main.c, options.h : if an options isn't supported
1733         at compiled time, don't get rid off it and show a dummy
1734         message instead if they are used.
1735
1736 2008-06-13  Micah Cowan  <micah@cowan.name>
1737
1738         * build_info.c: ENABLE_NTLM, not HAVE_NTLM; distinguish OpenSSL
1739         from "ssl".
1740
1741 2008-06-13  Madhusudan Hosaagrahara <com.gmail.hrmadhu>
1742
1743         * Makefile.am, main.c, init.c, init.h, build_info.c: Adds build
1744         information to the --version command line option. Fixes bug
1745         #20636.
1746
1747 2008-06-01  Micah Cowan  <micah@cowan.name>
1748
1749         * main.c [WINDOWS]: Reopen stdout in binary mode, when -O - is
1750         given.
1751
1752 2008-05-31 Micah Cowan  <micah@cowan.name>
1753
1754         * html-url.c, http.c: Avoid casts in a couple spots.
1755
1756 2008-05-30 Henri Häkkinen  <henux@users.sourceforge.net>
1757
1758         * cookies.c, ftp-basic.c, hash.c, html-url.c, http-ntlm.c, http.c,
1759         init.c, log.c, main.c, progress.c, ptimer.c, spider.c, url.c,
1760         utils.c: Minor changes to silence warnings when using -Wall.
1761
1762 2008-05-26  Steven Schubiger  <schubiger@gmail.com>
1763
1764         * ftp.c (getftp): Replace last remaining invocation of escnonprint
1765         with gnulib quote.
1766
1767 2008-05-19  Micah Cowan  <micah@cowan.name>
1768
1769         * main.c (main): Password prompt should be done only once (not
1770         once per argument), and should be done prior to the background
1771         fork.
1772
1773 2008-05-17  Steven Schubiger  <schubiger@gmail.com>
1774
1775         * init.c (defaults): Set the preferred IP family to `none' by
1776         default.
1777
1778 2008-05-17  Kenny Parnell  <k.parnell@gmail.com>
1779
1780         (cmd_spec_prefer_family): Initialize prefer_family to prefer_none.
1781
1782 2008-05-17  Micah Cowan  <micah@cowan.name>
1783
1784         * main.c (main): Handle Ctrl-D on command-line.
1785
1786 2008-05-15  Steven Schubiger  <schubiger@gmail.com>
1787
1788         * ftp.c (getftp): Verify that the file actually exists in FTP, by
1789         checking it against the listing.
1790
1791 2008-05-15  Micah Cowan  <micah@cowan.name>
1792
1793         * main.c (prompt_for_password): Use the quote module.
1794
1795 2008-05-14  Micah Cowan  <micah@cowan.name>
1796
1797         * ftp.c (ftp_retrieve_list): Symlinks and other filenames
1798         should be fully quoted.
1799
1800 2008-05-12  Micah Cowan  <micah@cowan.name>
1801
1802         * main.c (main): Downgrade "-N with -O" to a warning, and switch
1803         it off to avoid confusing messages.
1804
1805 2008-04-30  Micah Cowan  <micah@cowan.name>
1806
1807         * progress.c (create_image): Fix glitch where too many spaces are
1808         printed on lines that don't display the ETA, in multibyte
1809         locales.
1810
1811 2008-04-30  Steven Schubiger  <stsc@members.fsf.org>
1812
1813         * main.c (main): New code that handles prompting for passwords
1814         when specified explicitly via command-line option (using gnulib's
1815         getpass-gnu module).
1816         (main): Include the getpass header.
1817
1818         * init.c: Add "ask-password" to the list of recognized commands.
1819
1820         * options.h: Add an according boolean member to the options
1821         struct.
1822
1823         * sysdep.h: Comment the defines __EXTENSIONS__ and _GNU_SOURCE
1824         out, because they're now defined independently by config.h.
1825
1826 2008-04-27  Rabin Vincent  <rabin@rab.in>
1827
1828         * http.c (http_loop): Fix return for the case where we don't
1829         download a file because of -nc.
1830
1831 2008-04-27  Micah Cowan  <micah@cowan.name>
1832
1833         * url.c (path_simplify): Go back to allowing leading ".." in
1834         paths, but only for FTP URLs.
1835         (test_path_simplify): Add scheme-specificness to tests, adapt for
1836         mu_run_test.
1837
1838         * test.c (all_tests): Add test_path_simplify.
1839
1840         * main.c (main): Downgrade -r, -p with -O to a warning rather than
1841         an error; elaborate just a bit more for other -O combination
1842         cases.
1843
1844 2008-04-26  Micah Cowan  <micah@cowan.name>
1845
1846         * http.c (gethttp): Move proxy CONNECT handling to below the
1847         retry_with_auth label, to deal with properly reconnecting to
1848         proxies when we need to authenticate.
1849
1850 2008-04-25  Micah Cowan  <micah@cowan.name>
1851
1852         * Makefile.am: -I foo -> -Ifoo.
1853
1854 2008-04-24  Micah Cowan  <micah@cowan.name>
1855
1856         * main.c: Revised usage description of --convert-links to apply
1857         to CSS as well as to HTML.
1858
1859 2008-04-23  Micah Cowan  <micah@cowan.name>
1860
1861         * utils.c (test_dir_matches_p): Added a test for the case
1862         described in issue #20518.
1863
1864 2008-04-22  Micah Cowan  <micah@cowan.name>
1865
1866         * Makefile.am, css.lex, css.l: Renamed css.lex to css.l.
1867         * recur.c (retrieve_tree): Fix typo to allow text/css files to
1868         be parsed.
1869
1870 2008-04-22  Ted Mielczarek  <ted.mielczarek@gmail.com>
1871
1872         * css.lex, css-url.c, css-url.h: Added to implement support for
1873         parsing CSS in Wget.
1874         * convert.c: Convert links in CSS files, too.
1875         * convert.h (convert_options): Added for options link_css_p,
1876         link_expect_css.
1877         * convert.h: Added prototype for new register_css function.
1878         * html-parse.c: Added support for parsing element content, in
1879         addition to tag starts and ends.
1880         * html-parse.h (taginfo): Added delimiter fields for element
1881         content.
1882         * html-url.h: Added.
1883         * html-url.c (append_url): No longer internal-linkage only. Now
1884         takes position and size as explicit parameters.
1885         * html-url.c: Use new html-url.h header, add support for
1886         handling of "style" HTML attributes. Mark URIs obtained from
1887         link tags with rel="stylesheet" with link_expect_css. Adapt
1888         uses of append_url to supply the newly-added parameters for
1889         position and size.
1890         * http.c: Add detection for when the content-type is text/css;
1891         and ensure that such files have the ".css" filename extension,
1892         when --convert-links is active.
1893         * recur.h: Remove declarations for functions found in
1894         html-url.c (moved to html-url.h).
1895         * recur.c: Add support for culling links from CSS files, too,
1896         and tracking for when we're expecting the file to be CSS (even
1897         when its content type isn't text/css).
1898         * retr.c (retrieve_url): Add registration of CSS files.
1899         * wget.h: Added TEXTCSS to dt flags enum.
1900         * Makefile.am: Added css.lex, css-url.c, css-url.h, html-url.h
1901         to wget_SOURCES.
1902
1903 2008-04-22  Jim Paris  <jim@jtan.com>
1904
1905         * openssl.c (ssl_init): Enable combined certificate/key in
1906         single file (apparent regression from ~1.9). Resolves issue
1907         #22767.
1908
1909 2008-04-22  Steven Schubiger  <schubiger@gmail.com>
1910
1911         * http.c (print_response_line): Changed to make responses always
1912         be logged, even in --quiet mode, if --server-response was
1913         specified. This is to bring http.c's handling of the situation
1914         in line with ftp.c's.
1915
1916 2008-04-22  Pranab Shenoy  <pranab.loosinit.shenoy@gmail.com>
1917
1918         * init.c: Added test_commands_sorted unit test to check is
1919         commands are sorted.  Fixes bug #21245.
1920
1921         * test.c: Added test_commands_sorted to the test suite.
1922
1923 2008-04-22  Rabin Vincent  <rabin@rab.in>
1924
1925         * ftp.c (ftp_get_listing): Only remove .listing if it has been
1926         created.
1927
1928 2008-04-22  Alain Guibert  <alguibert+bts@free.fr>
1929
1930         * test.h (mu_run_test): Move declaration before statements, for
1931         C90 conformance. Fixes bug #22789.
1932
1933 2008-04-22  Mike Frysinger  <vapier@gentoo.org>
1934
1935         * Makefile.am: Move @LIBS@ after other libraries, for better
1936         static-linking support. Fixes bug #22143.
1937
1938 2008-04-16  Steven Schubiger  <schubiger@gmail.com>
1939
1940         * ftp.c: Use Gnulib's quote function for printing filenames and
1941         such.
1942         * connect.c: Likewise.
1943         * convert.c: Likewise.
1944         * cookies.c: Likewise.
1945         * ftp-opie.c: Likewise.
1946         * gnutls.c: Likewise.
1947         * init.c: Likewise.
1948         * log.c: Likewise.
1949         * mswindows.c: Likewise.
1950         * openssl.c: Likewise.
1951         * progress.c: Likewise.
1952         * recur.c: Likewise.
1953         * res.c: Likewise.
1954         * utils.c: Likewise.
1955
1956 2008-04-16  Steven Schubiger  <schubiger@gmail.com>
1957
1958         * sysdep.h: Comment the defines __EXTENSIONS__ and _GNU_SOURCE
1959         out, because they're now defined independently by config.h.
1960
1961 2008-04-14  Steven Schubiger  <schubiger@gmail.com>
1962
1963         * http.c: Use Gnulib's quote function for printing filenames and
1964         such.
1965         * wget.h: #include "quote.h".
1966
1967 2008-04-12  Rabin Vincent  <rabin@rab.in>
1968
1969         * mswindows.c (fake_fork_child): Don't create a logfile for
1970         --background when --quiet is used, but not --server-response.
1971         Fixes bug #20917.
1972
1973         * utils.c (fork_to_background): Likewise.
1974
1975 2008-04-12  Micah Cowan  <micah@cowan.name>
1976
1977         * utils.c (aprintf): Minor formatting changes to Alex's code (80-
1978         column limit, concatenated string literals, avoiding nesting
1979         levels), and removed invocation of free (since we're aborting
1980         anyway).
1981
1982 2008-04-11  Alexander Dergachev  <cy6erbr4in@gmail.com>
1983
1984         * utils.c (aprintf): Now we are setting limits (1 Mb) for text
1985         buffer when we use non-C99 vsnprintf.
1986
1987 2008-04-11  Micah Cowan  <micah@cowan.name>
1988
1989         * ftp.c (getftp, ftp_loop_internal): Don't append to an existing
1990         .listing when --continue is used.  Fixes bug #22825. Thanks to
1991         Rabin Vincent <rabin@rab.in> for pointing the way with a
1992         suggested fix!
1993
1994 2008-04-10  Alexander Dergachev  <cy6erbr4in@gmail.com>
1995
1996         * xmalloc.c, xmalloc.h (memfatal): Now exported; accepts an
1997         "unknown" value for the attempted allocation size.
1998         * utils.c (aprintf): Now calls memfatal, instead of aborting.
1999
2000 2008-03-19  Micah Cowan  <micah@cowan.name>
2001
2002         * utils.c (test_dir_matches_p): More tests related for
2003         dir_matches_p.
2004
2005 2008-03-17  Micah Cowan  <micah@cowan.name>
2006
2007         * connect.c: Include sys/time.h to support use of the select
2008         function on older systems.
2009
2010 2008-02-11  Benno Schulenberg  <bensberg@justemail.net>
2011
2012         * http.c: More accurate and descriptive messages for when a file
2013         won't be retrieved during spider-mode.
2014
2015 2008-02-10  Micah Cowan  <micah@cowan.name>
2016
2017         * http.c: Added existence_checked member to the http_stat
2018         struct.
2019         (gethttp): Mark hs->existence_checked when we've checked whether
2020         a file-to-download exists; so we don't check it again if the
2021         connection gets lost (and potentially pick a new "unique" name).
2022         This fixes bug 22251.
2023         * progress.c (create_image): Add space for an extra column in
2024         the "eta" portion of the progress bar image; to deal with
2025         too-long Czech translation.
2026         * main.c, http.c, init.c: Added --auth-no-challenge option, to
2027         bring back 1.10.2 unsafe auth behavior when needed. This fixes
2028         bug #22242.
2029
2030 2008-02-07  Micah Cowan  <micah@cowan.name>
2031
2032         * progress.c (create_image): Remove assertion on exceeding
2033         screen width, which given the less-than-robust code there, can
2034         be broken by a number of factors (such as large file downloads).
2035
2036 2008-02-06  Micah Cowan  <micah@cowan.name>
2037
2038         * progress.c (countcols): Use strlen() when mbtowc or wcwidth
2039         not available (or not using NLS).
2040         * utils.c: Ensure we use single-byte separators when not doing
2041         NLS progress-bars.
2042         * wget.h: Determine whether to use NLS for progress-bars, based
2043         on whether wcwidth and mbtowc are available.
2044
2045 2008-02-03  Micah Cowan  <micah@cowan.name>
2046
2047         * progress.c (create_image): Use number of characters/columns
2048         consumed, rather than number of bytes, to determine how much of
2049         a line we've used. Fixes assertion errors and field alignment
2050         bugs (#22161, #20481)
2051         (get_eta, count_cols): Added to support the changes for
2052         create_image.
2053         * http.c (http_loop): Put no-clobber logic back into http_loop,
2054         before starting to fetch, for when we're not doing
2055         content-disposition.
2056
2057 2008-01-31  Micah Cowan  <micah@cowan.name>
2058
2059         * http.c (gethttp): Don't derive hs->contlen from possibly
2060         invalid/missing Content-Length; instead, get the appropriate
2061         value from the Content-Range header values.
2062         (parse_content_range): Handle '*' instance-length field.
2063
2064 2008-01-25  Micah Cowan  <micah@cowan.name>
2065
2066         * main.c: Added notes to translators regarding (C), diacritics
2067         in names.
2068         * Makefile.am, cmpt.c, connect.c, connect.h, convert.c,
2069         cookies.c, cookies.h, ftp-basic.c, ftp-ls.c, ftp-opie.c, ftp.c,
2070         ftp.h, gen-md5.c, gen-md5.h, gnutls.c, hash.c, hash.h, host.c,
2071         host.h, html-parse.c, html-parse.h, html-url.c, http-ntlm.c,
2072         http-ntlm.h, http.c, http.h, init.c, init.h, log.c, log.h,
2073         main.c, mswindows.c, mswindows.h, netrc.c, netrc.h, openssl.c,
2074         options.h, progress.c, progress.h, ptimer.c, ptimer.h, recur.c,
2075         recur.h, res.c, res.h, retr.c, retr.h, spider.c, spider.h,
2076         ssl.h, sysdep.h, test.c, test.h, url.c, url.h, utils.c,
2077         utils.h, wget.h, xmalloc.c, xmalloc.h: Updated copyright year.
2078
2079 2007-12-10  Micah Cowan  <micah@cowan.name>
2080
2081         * main.c: The option is --content-disposition, not
2082         --no-content-disposition (at the moment).
2083
2084 2007-12-08  Hrvoje Niksic  <hniksic@xemacs.org>
2085
2086         * ftp.c (ftp_retrieve_glob): Print both arguments of fnmatch in
2087         fnmatch error message.
2088         (ftp_retrieve_glob): Don't match with fnmatch if we're only
2089         supposed to get one file.
2090
2091 2007-12-07  Micah Cowan  <micah@cowan.name>
2092
2093         * Makefile.am: Plug in vars to include stuff from
2094         $(top_srcdir)/md5 when appropriate.
2095
2096 2007-12-05  Micah Cowan  <micah@cowan.name>
2097
2098         * utils.c (subdir_p): Handle the case where d1 is "".
2099         * convert.c (convert_all_links): Don't return without
2100         deallocating timer.
2101
2102 2007-11-28  Micah Cowan  <micah@cowan.name>
2103
2104         * Makefile.am, cmpt.c, connect.c, connect.h, convert.c,
2105         convert.h, cookies.c, cookies.h, ftp-basic.c, ftp-ls.c,
2106         ftp-opie.c, ftp.c, ftp.h, gen-md5.c, gen-md5.h, gnutls.c,
2107         hash.c, hash.h, host.c, host.h, html-parse.c, html-parse.h,
2108         html-url.c, http-ntlm.c, http-ntlm.h, http.c, http.h, init.c,
2109         init.h, log.c, log.h, main.c, mswindows.c, mswindows.h,
2110         netrc.c, netrc.h, openssl.c, options.h, progress.c, progress.h,
2111         ptimer.c, ptimer.h, recur.c, recur.h, res.c, res.h, retr.c,
2112         retr.h, safe-ctype.c, safe-ctype.h, spider.c, spider.h, ssl.h,
2113         sysdep.h, test.c, test.h, url.c, url.h, utils.c, utils.h,
2114         wget.h, xmalloc.c, xmalloc.h: Updated license exception for
2115         OpenSSL, per the SFLC.
2116
2117 2007-10-30  Micah Cowan  <micah@cowan.name>
2118
2119         * main.c (main): Declare argv parameter as char **argv, rather
2120         than char *const *argv. This fixes usage of getopt_long,
2121         regardless of whether getopt_long has a constified argv or not.
2122
2123 2007-10-22  Gisle Vanem  <gvanem@broadpark.no>
2124
2125         * mswindows.c: Move INHIBIT_WRAP macro definition up with wget.h
2126         inclusion.
2127
2128 2007-10-18  Steven Schweda  <sms@antinode.org>
2129
2130         * sysdep.h: #include <stdint.h> as well as <inttypes.h>, to work
2131         around a glitch on Tru64 systems.
2132
2133 2007-10-18  Micah Cowan  <micah@cowan.name>
2134
2135         * Makefile.am: version.c should not be distributed. Removed
2136         config-post.h. Add version.c dependency and gnulib include path
2137         for libunittest.a.
2138         * sysdep.h: Got contents of config-post.h
2139         * config-post.h: Removed.
2140         * wget.h: #include "config.h".
2141         * alloca.c, cmpt.c, connect.c, convert.c, cookies.c,
2142         ftp-basic.c, ftp-ls.c, ftp-opie.c, ftp.c, gen-md5.c, gnutls.c,
2143         hash.c, host.c, html-parse.c, html-url.c, http-ntlm.c, http.c,
2144         init.c, log.c, main.c, mswindows.c, netrc.c, openssl.c,
2145         progress.c, ptimer.c, recur.c, res.c, retr.c, spider.c, url.c,
2146         utils.c, xmalloc.c: Use wget.h at very top, and instead of
2147         config.h.
2148
2149 2007-10-15  Micah Cowan  <micah@cowan.name>
2150
2151         * Makefile.am: Remove intermediary hg-id file generation, make
2152         version.c-generation more portable.
2153
2154 2007-10-14  Micah Cowan  <micah@cowan.name>
2155
2156         * cmpt.c, cookies.c, ftp-basic.c, ftp-ls.c, ftp.c, hash.c,
2157         host.c, html-parse.c, html-url.c, http-ntlm.c, http.c, init.c,
2158         log.c, main.c, netrc.c, openssl.c, res.c, url.c, utils.c,
2159         wget.h: Replace uses of ISSPACE, etc with c_isspace, etc.
2160         * gnu-md5.c, gnu-md5.h: Removed, in deference to gnulib.
2161         * Makefile.am: Removed gnu-md5.h from wget_SOURCES.
2162         * gen-md5.c: Changed #inclusion of gnu-md5.h to md5.h (gnulib's).
2163         * recur.c (download_child_p): Print error if unlink of
2164         robots.txt fails.
2165         * main.c (main): --spider or --delete-after now implies
2166         --no-directories (thanks, Josh Williams).
2167
2168 2007-10-14  Joshua David Williams  <yurimxpxman@gmail.com>
2169
2170         * recur.c (download_child_p): Remove robots.txt if
2171         --delete-after or --spider is on.
2172
2173 2007-10-13  Micah Cowan  <micah@cowan.name>
2174
2175         * Makefile.am: Make version.c depend on Wget dependencies (source
2176         files, plus such things as LIBOBJS so we get things like
2177         http-ntlm.c). Removed getopt.[ch], as we're now using gnulib for
2178         these.
2179
2180 2007-10-10  Micah Cowan  <micah@cowan.name>
2181
2182         * http-ntlm.c: Include openssl/opensslv.h explicitly, instead of
2183         hoping it'll be included by accident in openssl/des.h.
2184
2185 2007-10-09  Gisle Vanem  <gvanem@broadpark.no>
2186
2187         * mswindows.c: 'argc' and 'argv' in 'windows_main()' are no longer
2188         needed.  Hence simply the prototype. Free 'exec_name' at exit.
2189
2190 2007-10-09  Micah Cowan  <micah@cowan.name>
2191
2192         * gettext.h: Imported from /usr/share/gettext, fuller handling
2193         of --disable-nls.
2194         * wget.h: Remove logic for handling lack of NLS (now in
2195         gettext.h).
2196         * main.c: Use gettext's ENABLE_NLS rather than HAVE_NLS.
2197         * Makefile.am: added @LIBINTL@ to LIBS (though it probably
2198         belongs in LDADD, along with everything else currently assigned
2199         to LIBS).
2200
2201 2007-10-08  Micah Cowan  <micah@cowan.name>
2202
2203         * http.c (http_loop): Add send_head_first conditional back
2204         around code that needs it, but not around the last-modified
2205         header-parsing stuff this time. Removed no-longer-useful (was it
2206         ever?) restart_loop boolean, continuing unconditionally at end
2207         of send_head_first conditional block (if we haven't jumped out).
2208
2209 2007-10-04  Micah Cowan  <micah@cowan.name>
2210
2211         * http.c (http_loop): We've got_name if content_disposition
2212         support isn't on; make sure we continue properly in that case,
2213         even though we're not sending HEAD.
2214         * Makefile.in: Removed, replaced by Makefile.am.
2215         * Makefile.am: Converted from Makefile.in.
2216
2217 2007-10-02  Gisle Vanem  <gvanem@broadpark.no>
2218
2219         * ftp.c: Use "_listing" for MSDOS (".listing" is illegal).
2220
2221         * url.c: Update comment for 'filechr_not_windows'.
2222
2223         * utils.c: Include <process.h> for 'getpid()' on Watcom.
2224
2225 2007-10-02  Micah Cowan  <micah@cowan.name>
2226
2227         * ftp.c (getftp, ftp_loop_internal), http.c (http_loop), main
2228         (main): Use datetime_str instead of time_str, for those who have
2229         potentially long-running sessions. Based on suggestions by Saso
2230         Tomat <miskox@hotmail.com> and Steven M. Schweda
2231         <sms@antinode.org>.
2232         * http.c (gethttp): Warn about host lookup failures. Adjusted
2233         from Stephen Gildea's patch.
2234
2235 2007-10-02  Stephen Gildea  <stepheng+wget@gildea.com>
2236
2237         * connect.c (connect_to_host): Warn about host lookup failures.
2238
2239 2007-09-25  Micah Cowan  <micah@cowan.name>
2240
2241         * Makefile.in: Use EXEEXT instead of exeext.
2242
2243 2007-09-24  Gisle Vanem  <giva@bgnett.no>
2244
2245         * connect.c, init.c, main.c, openssl.c, options.h, sysdep.h,
2246         url.c, utils.c: Added support for building on MS-DOS.
2247
2248 2007-09-24  Jochen Roderburg  <roderburg@uni-koeln.de>
2249
2250         * http.c (http_zero): Remove no-longer-used local_size variable.
2251         Fixes bug #21057.
2252
2253 2007-09-12  Micah Cowan  <micah@cowan.name>
2254
2255         * http.c (http_loop): Remove send_head_first from condition for
2256         parsing timestamp.
2257
2258 2007-08-29  Micah Cowan  <micah@cowan.name>
2259
2260         * openssl.c (ssl_init): Re un-const-ified the meth local
2261         variable, to match current versions of openssl.
2262         * spider.c: Removed visited_url function, as it may be very
2263         inefficient.
2264         (print_broken_links): Removed traversal of referrers, until such
2265         time as a more efficient implementation can be written.
2266         * spider.h: Replaced declaration of visited_url with an
2267         empty-bodied, function-like macro.
2268
2269 2007-08-27  Gisle Vanem  <giva@bgnett.no>
2270
2271         * mswindows.c (run_with_timeout): Ensure that the correct
2272         conversion specification is used for the return result of
2273         the GetLastError function.
2274         * getopt.c: Fix missing (but, accidentally, legal) comment
2275         delimiter after licensing text.
2276         * recur.c (retrieve_tree): Inserted missing cast for strip_auth.
2277         Includes adjustment by Ralf Wildenhues.
2278         * openssl.c (ssl_init): const-ified the meth local variable.
2279         * main.c: Include all the static function definitions in the
2280         "#ifndef TESTING" clause, leaving just the definitions for
2281         exec_name (not set), and opt.
2282         * utils.c (run_with_timeout): Now returns bool, to align with
2283         declaration in utils.h.
2284
2285 2007-08-27  Micah Cowan  <micah@cowan.name>
2286
2287         * wget.h: Added macro replacement for ngettext, for environs
2288         that lack NLS.
2289
2290 2007-08-26  Micah Cowan  <micah@cowan.name>
2291
2292         * spider.c (print_broken_links): Fixed incorrect plurals msgid
2293         usage, switched to use ngettext function.
2294
2295 2007-08-24  Micah Cowan  <micah@cowan.name>
2296
2297         * http.c (http_loop): Introduced time_came_from_head boolean
2298         flag, to help avoid parsing the same Last-Modified header twice.
2299         Replaced spidering returns of RETRUNNEEDED for some situations,
2300         to RETROK, as otherwise it will be interpreted as an error.
2301         RETRUNNEEDED appears never to be referenced outside of
2302         http.c (and wget.h), and, when returned by gethttp, is
2303         translated by http_loop to RETROK.
2304         * url.c (are_urls_equal): Don't call getchar_from_escaped_string
2305         if u2 is shorter than u1.
2306         (getchar_from_escaped_string): Don't decode reserved characters.
2307         Handle illegally appearing '%'s as literal '%'s. Ensure hex
2308         digits before attempting to decode.
2309         (test_are_urls_equal): Added tests to handle u2 shorter than u1,
2310         and %2f not treated the same as /.
2311         * spider.c (in_url_list_p): Don't call are_urls_equal if one of
2312         them is NULL.
2313
2314 2007-08-23  Joshua David Williams  <yurimxpxman@gmail.com>
2315
2316         * spider.c (in_url_list_p): Removed the bool verbose argument
2317
2318 2007-08-22  Mauro Tortonesi  <mauro@ferrara.linux.it>
2319
2320         * http.c (http_loop): Fall back to GET if HEAD fails with a 500 or 501
2321         error code.
2322
2323 2007-08-21  Mauro Tortonesi  <mauro@ferrara.linux.it>
2324
2325         * http.c (http_loop): Send preliminary HEAD request if -N is given and
2326         the destination file exists already.
2327
2328 2007-08-10  Mauro Tortonesi  <mauro@ferrara.linux.it>
2329
2330         * http.c (http_loop): Fixed HTTP HEAD requests logic when --spider is
2331         given.
2332
2333 2007-08-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2334
2335         * url.c (append_uri_pathel): Do not assume dest string to be
2336         zero-terminated.
2337         (test_append_uri_pathel): Terminate string to fix test failure.
2338
2339 2007-08-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2340
2341         * url.c (url_string): Use comparison, not assignment, in
2342         check for auth_mode == URL_AUTH_HIDE_PASSWD.
2343
2344 2007-08-09  Micah Cowan  <micah@cowan.name>
2345
2346         * http.c (http_loop): If we got a HEAD and then a GET, and the
2347         GET had a timestamp, use that one, not any we may have gotten
2348         from the HEAD.
2349
2350 2007-08-08  Micah Cowan  <micah@cowan.name>
2351
2352         * init.c (defaults): Content disposition will not be default,
2353         since it currently results in extra round-trips.
2354
2355 2007-07-31  Micah Cowan  <micah@cowan.name>
2356
2357         * http.c (gethttp): Set contlen = -1 when we encounter a
2358         negative-valued Content-Length header, so we don't consider it
2359         an internal error later on and call abort().
2360
2361 2007-07-29  Micah Cowan  <micah@cowan.name>
2362
2363         * url.h, url.c (url_string): Replaced bool arg of the url_string
2364         function with enum url_auth_mode, with added option to
2365         completely remove user/pass auth information.
2366         * http.c, ftp.c, url.c, recur.c: Adapted call to url_string
2367         function to fit new usage.
2368         * recur.c (retrieve_tree): Remove auth info from Referer header.
2369
2370 2007-07-28  Micah Cowan  <micah@cowan.name>
2371
2372         * options.h, init.c, retr.c, main.c: renamed opt maxredirect
2373         field to max_redirect, for improved consistency.
2374         * init.c: changed max_redirect parser from cmd_number_inf to
2375         cmd_number, as infinite redirects may not be appropriate.
2376         Alternatively, if cmd_number_inf should be used, then
2377         opt.max_redirect's value should be checked a bit differently in
2378         retr.c, to allow for the "infinite" meaning of zero.
2379
2380 2007-07-25  Micah Cowan  <micah@cowan.name>
2381
2382         * http.c (create_authorization_line)
2383         (basic_authentication_encode, known_authentication_scheme_p)
2384         (load_cookies): Moved declarations up.
2385         (basic_authed_hosts): Added. Tracks what hosts have issued Basic
2386         challenge and been given the global username, password.
2387         (maybe_send_basic_creds): Added. Sends Basic creds for hosts that
2388         have issued Basic challenges.
2389         (register_basic_auth_host): Added. Instantiates
2390         basic_authed_hosts if necessary, then registers the host that
2391         has issued a challenge.
2392         (gethttp) <auth>: Only send authentication credentials after
2393         we've received a challenge from that host. This is a stop-gap
2394         fix until a proper fix can be implemented; still isn't quite
2395         right, as we should only be sending credentials automatically
2396         for authenticated paths and below, and not for the entire host.
2397
2398 2007-07-16  Joshua David Williams  <yurimxpxman@gmail.com>
2399
2400         * options.h: added maxredirect to options struct
2401         * init.c: added maxredirect to list of variables
2402         * retr.c (retrieve_url): replaced MAX_REDIRECTIONS with opt.maxredirect
2403         * main.c: added option --max-redirect
2404
2405 2007-07-16  Joshua David Williams  <yurimxpxman@gmail.com>
2406
2407         * test.h: tests made more verbose; now displays the name
2408         of each test run.
2409
2410 2007-07-10  Mauro Tortonesi  <mauro@ferrara.linux.it>
2411
2412         * http.c (http_loop): Fixed the HTTP requests logic. Now it skips the
2413         preliminary HEAD request if either -O or --no-content-disposition are
2414         given, and neither --spider and -N are given.
2415
2416 2007-07-05  Micah Cowan  <micah@cowan.name>
2417
2418         * cmpt.c, connect.c, connect.h, convert.c, convert.h:
2419         * cookies.c, cookies.h, ftp-basic.c, ftp.c, ftp.h, ftp-ls.c:
2420         * ftp-opie.c, gen-md5.c, gen-md5.h, getopt.c, getopt.h, gnu-md5.c:
2421         * gnu-md5.h, gnutls.c, hash.c, hash.h, host.c, host.h:
2422         * html-parse.c, html-parse.h, html-url.c, http.c, http.h:
2423         * http-ntlm.c, http-ntlm.h, init.c, init.h, log.c, log.h, main.c:
2424         * Makefile.in, mswindows.c, mswindows.h, netrc.c, netrc.h:
2425         * openssl.c, options.h, progress.c, progress.h, ptimer.c:
2426         * ptimer.h, recur.c, recur.h, res.c, res.h, retr.c, retr.h:
2427         * safe-ctype.c, safe-ctype.h, spider.c, spider.h, ssl.h, sysdep.h:
2428         * test.c, test.h, url.c, url.h, utils.c, utils.h, wget.h:
2429         * xmalloc.c, xmalloc.h:
2430         Updated GPL reference to version 3 or later, removed FSF
2431         address.
2432
2433 2007-07-04  Mauro Tortonesi  <mauro@ferrara.linux.it>
2434
2435         * http.c (http_loop): Skip HEAD request and start immediately with GET
2436         if -O is given.
2437
2438 2007-02-02  Hrvoje Niksic  <hniksic@xemacs.org>
2439
2440         * http.c (print_server_response): Escape non-printable characters
2441         in server respone.
2442
2443 2007-02-02  Hrvoje Niksic  <hniksic@xemacs.org>
2444
2445         * netrc.c: Don't make netrc_list static, as it prevents
2446         compilation with DEBUG_MALLOC.
2447
2448         * utils.c (aprintf): Don't use vasprintf when DEBUG_MALLOC is
2449         requested because, in that case, we want the calls to malloc to be
2450         coming from us.
2451
2452 2007-01-23  Hrvoje Niksic  <hniksic@xemacs.org>
2453
2454         * cookies.c (parse_set_cookie): Would erroneously discard cookies
2455         with unparsable expiry time.
2456
2457 2007-01-23  Hrvoje Niksic  <hniksic@xemacs.org>
2458
2459         * progress.c (create_image): Check for ETA overflow.
2460         (print_row_stats): Ditto.
2461
2462 2007-01-09  Mauro Tortonesi  <mauro@ferrara.linux.it>
2463
2464         * init.c (cmd_spec_prefer_family): Small fix to get rid of a gcc
2465         warning about strict-aliasing violation.
2466
2467 2007-01-09  Steven M. Schweda  <sms@antinode.org>
2468
2469         * ftp-basic.c (ftp_syst): Fixed segfault if response text is missing.
2470
2471 2006-12-29  Gisle Vanem  <giva@bgnett.no>
2472
2473         * mswindows.c: Avoid a warning if 'ws_hangup()' is unused.
2474
2475 2006-12-27  Mauro Tortonesi  <mauro@ferrara.linux.it>
2476
2477         * http.c (parse_content_disposition): Consider directory prefix, if
2478         specified.
2479
2480 2006-11-21  Hrvoje Niksic  <hniksic@xemacs.org>
2481
2482         * retr.c (retrieve_from_file): Ditto.
2483         (url_uses_proxy): New function.
2484
2485         * main.c (main): Don't check for opt.use_proxy when deciding
2486         whether to call retrieve_url or retrieve_tree; check whether the
2487         proxy would be used for *this* URL.
2488
2489 2006-10-17  Mike Grant  <mggr@pml.ac.uk>
2490
2491         * ftp.c (ftp_loop_internal): Would incorrectly skip changing
2492         working directory when retrying after a failed FTP attempt.
2493         Originally reported by Nate Eldredge.
2494
2495 2006-10-12  Mauro Tortonesi  <mauro@ferrara.linux.it>
2496
2497         * convert.c (downloaded_file): Fixed bug which used to break -E -k -K
2498         mode.
2499
2500 2006-08-28  Mauro Tortonesi  <mauro@ferrara.linux.it>
2501
2502         * http.c: #include'd spider.h to get rid of compiler warnings.
2503
2504         * main.c: Ditto.
2505
2506         * recur.c: Ditto.
2507
2508 2006-08-24  Mauro Tortonesi  <mauro@ferrara.linux.it>
2509
2510         * Makefile.in: Added spider.c to the list of files to compile and
2511         spider.h to the list of header files. Updated copyright information.
2512
2513         * http.c: Major changes to recursive spider mode. Now for every
2514         resource we are supposed to check, we send a HEAD request to find out
2515         if it exists. If the resource is a HTML file, we retrieve it and parse
2516         it to discover links to other resources.
2517
2518         * recur.c: Ditto.
2519
2520         * res.c (res_retrieve_file): Disable opt.timestamping and opt.spider
2521         when retrieving robots.txt. Updated copyright information.
2522
2523         * convert.c: Moved code tracking broken links to spider.c.
2524
2525         * convert.h: Ditto.
2526
2527         * spider.c: Created new file to keep track of visited URLs in spider
2528         mode.
2529
2530         * spider.h: Ditto.
2531
2532 2006-08-21  Mauro Tortonesi  <mauro@ferrara.linux.it>
2533
2534         * http.c: Fixed timestamping-related bug.
2535
2536 2006-08-16  Mauro Tortonesi  <mauro@ferrara.linux.it>
2537
2538         * http.c: Fixed bug which broke --continue feature. Now if -c is
2539         given, http_loop sends a HEAD request to find out the destination
2540         filename before resuming download.
2541
2542 2006-08-08  Hrvoje Niksic  <hniksic@xemacs.org>
2543
2544         * utils.c (datetime_str): Avoid code repetition with time_str.
2545
2546 2006-07-21  Hrvoje Niksic  <hniksic@xemacs.org>
2547
2548         * init.c (commands): Correctly place "contentdisposition".
2549
2550 2006-07-14  Mauro Tortonesi  <mauro@ferrara.linux.it>
2551
2552         * sysdep.h: If intptr_t isn't defined, simply typedef it to long.
2553
2554         * http.c: Added explicit cast to int in logprintf call to remove
2555         compiler warnings on 64-bit platforms.
2556
2557         * connect.c: Added a few casts to intptr_t to remove compiler warnings
2558         on 64-bit platforms.
2559
2560         * main.c: Disable -r, -p and -N when -O is used. Disable -k when -O is
2561         used and multiple URLs are given. Update maintainer information.
2562
2563         * all: Update copyright information.
2564
2565 2006-07-10  KJKHyperion  <hackbunny@reactos.com>
2566
2567         * url.c (filechr_table): Mark DEL (0x7f) as a control character
2568         and | as a character Windows can't handle.
2569
2570 2006-06-28  Mauro Tortonesi  <mauro@ferrara.linux.it>
2571
2572         * res.c: Implemented is_robots_txt_url function for detection of
2573         robots.txt URLs and related test routine.
2574
2575         * res.h: Ditto.
2576
2577         * url.c: Implemented are_urls_equal function for URL comparison and
2578         related testing routine.
2579
2580         * url.h: Ditto.
2581
2582         * convert.c: Fixes for recursive spider mode: don't consider
2583         non-existing robots.txt as a broken link, and use are_urls_equal
2584         instead of strcasecmp for referrer URLs comparison.
2585
2586         * test.c: Call tests routines for are_urls_equal and
2587         is_robots_txt_url.
2588
2589 2006-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
2590
2591         * wget.h (wgint): Typedef to any 64-bit (or larger) type we can
2592         find, not necessarily off_t or long.
2593
2594 2006-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
2595
2596         * cmpt.c (strtoll): Check for overflow and underflow without
2597         relying on (technically) undefined behavior.  Don't assume that
2598         strtoll_type is 64 bits wide.
2599
2600 2006-06-21  Hrvoje Niksic  <hniksic@xemacs.org>
2601
2602         * utils.c (base64_encode): Cast void pointer to char * before
2603         doing arithmetic.
2604
2605 2006-06-20  Hrvoje Niksic  <hniksic@xemacs.org>
2606
2607         * utils.c (base64_encode): Made TBL const.
2608         (base64_decode): Made the base64_char_to_value table const.
2609
2610 2006-06-19  Hrvoje Niksic  <hniksic@xemacs.org>
2611
2612         * utils.c (base64_encode): Made the DATA pointer void * so the
2613         callers can pass it any kind of pointer (including both signed and
2614         unsigned char pointers).
2615         (base64_decode): Ditto for DEST.
2616
2617 2006-06-19  Hrvoje Niksic  <hniksic@xemacs.org>
2618
2619         * utils.c (base64_encode): Would read past end of STR.
2620         Reported by rick@eckle.org.
2621
2622 2006-06-13  Mauro Tortonesi  <mauro@ferrara.linux.it>
2623
2624         * options.h (struct options): Introduced member restrict_files_case to
2625         keep track of preferences on character case restrictions for
2626         filenames.
2627
2628         * init.c: Modified defaults and cmd_spec_restrict_file_names to
2629         support character case restrictions for filenames. Added
2630         test_cmd_spec_restrict_file_names unit test.
2631
2632         * url.c: Modified append_uri_pathel to support character case
2633         restrictions for filenames. Added test_append_uri_pathel unit test.
2634
2635         * test.c: Added test_cmd_spec_restrict_file_names and
2636         test_append_uri_pathel to the list of unit tests to run.
2637
2638 2006-06-12  Mauro Tortonesi  <mauro@ferrara.linux.it>
2639
2640         * retr.c (retrieve_from_file): Use retrieve_tree and automatically
2641         turn on opt.follow_ftp in case of recursive FTP retrieval through HTTP
2642         proxy.
2643
2644         * main.c: Automatically turn on opt.follow_ftp in case of recursive
2645         FTP retrieval through HTTP proxy.
2646
2647 2006-06-12  Tony Lewis  <tlewis@exelana.com>
2648
2649         * main.c: Improved CHEN Peng's patch by proposing a simpler logic.
2650
2651 2006-06-12  CHEN Peng  <chenpeng@alumni.nus.edu.sg>
2652
2653         * main.c: Use retrieve_tree in case of recursive FTP retrieval through
2654         HTTP proxy.
2655
2656 2006-05-25  Mauro Tortonesi  <mauro@ferrara.linux.it>
2657
2658         * convert.c: Added mechanisms to keep track broken links.
2659
2660         * convert.h: Ditto.
2661
2662         * wget.h: Reordered and enumerated uerr_t constants.
2663
2664         * recur.c: Fixes to support recursive spider mode.
2665
2666         * http.c: Ditto.
2667
2668         * main.c: Print broken links in case of recursive spider mode.
2669
2670         * retr.c: Changed interface of retrieve_url.
2671
2672         * retr.h: Ditto.
2673
2674         * ftp.c: Changed interface of ftp_loop.
2675
2676         * ftp.h: Ditto.
2677
2678         * res.c: Minor change to reflect changes in interface of retrieve_url.
2679
2680 2006-05-18  Lawrence Jones  <lawrence.jones@ugs.com>
2681
2682         * ftp-ls.c (ftp_parse_unix_ls): Correct size parsing, add size
2683         and filename debugging output.
2684
2685 2006-04-28  Mauro Tortonesi  <mauro@ferrara.linux.it>
2686
2687         * http.c: If Content-Disposition header is present, allow unique
2688         filename generation unless -nc is given. Permit to disable parsing of
2689         Content-Disposition header.
2690
2691         * options.h: Added option --no-content-disposition to disable parsing
2692         of HTTP Content-Disposition header.
2693
2694         * init.c: Ditto.
2695
2696         * main.c: Ditto.
2697
2698 2006-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
2699
2700         * hash.c (TOLOWER): Wrap macro arg in parentheses.
2701
2702 2006-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
2703
2704         * http.c (parse_content_disposition): Doc fix.
2705
2706 2006-03-15  Mauro Tortonesi  <mauro@ferrara.linux.it>
2707
2708         * utils.c: Restricted operational semantics of frontcmp and proclist
2709         from generic strings to directory names and them to subdir_p and
2710         dir_matches_p respectively.  Applied George Ogata's one line patch to
2711         restrict algorithm of subdir_p to full directory name matching.  Added
2712         testcases for subdir_p and dir_matches_p.
2713
2714         * utils.h: Changed all frontcmp occurrences to subdir_p.
2715
2716         * recur.c: Ditto.
2717
2718         * test.c: Changed type returned by test functions from char * to const
2719         char *.  Added test_subdir_p and test_dir_matches_p to the list of
2720         tests to run.
2721
2722         * http.c (test_parse_content_disposition): Changed return type from
2723         char * to const char *.
2724
2725 2006-03-14  Mauro Tortonesi  <mauro@ferrara.linux.it>
2726
2727         * recur.c (struct queue_element): Changed type of html_allowed member
2728         to bool.
2729
2730 2006-03-09  Mauro Tortonesi  <mauro@ferrara.linux.it>
2731
2732         * ftp.c (ftp_list): Try `LIST -a' command first and revert to `LIST'
2733         in case of failure.
2734
2735 2006-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
2736
2737         * hash.c (TOLOWER): Fix definition when STANDALONE.
2738         Reported by Beni Serfaty.
2739
2740 2006-03-02  Mauro Tortonesi  <mauro@ferrara.linux.it>
2741
2742         * http.c (http_loop): Fixed recursive HTTP retrieval.
2743
2744 2006-02-28  Hrvoje Niksic  <hniksic@xemacs.org>
2745
2746         * http.c (extract_param): Declare extern so it can be used from
2747         other files.
2748         (extract_param): Return error for empty name.
2749
2750 2006-02-28  Hrvoje Niksic  <hniksic@xemacs.org>
2751
2752         * url.c (find_last_char): Define in terms of memrchr.
2753
2754         * cmpt.c (memrchr): Define it on systems that don't have it.
2755
2756         * http.c (extract_param): New function for parsing header values
2757         with parameters.
2758         (parse_content_disposition): Use it.  Don't allow slashes and
2759         backslashes in the file name.
2760
2761 2006-02-27  Hrvoje Niksic  <hniksic@xemacs.org>
2762
2763         * url.c (path_simplify): Don't preserve ".." at beginning of path.
2764         Suggested by Frank McCown.
2765
2766 2006-02-25  Hrvoje Niksic  <hniksic@xemacs.org>
2767
2768         * http.c (gethttp): Only use FILE.N.html if FILE.html exists.
2769
2770 2006-02-09  Hrvoje Niksic  <hniksic@xemacs.org>
2771
2772         * mswindows.c (run_with_timeout): Made thread_hnd non-static.
2773
2774 2006-02-05  Hrvoje Niksic  <hniksic@xemacs.org>
2775
2776         * retr.c (sleep_between_retrievals): Sleep at a minimum of 1/2 of
2777         the specified wait period.
2778
2779 2006-02-03  Hrvoje Niksic  <hniksic@xemacs.org>
2780
2781         * utils.c (number_to_string): Don't use sprintf for printing
2782         WGINT_MIN; simply divide n by 10 and defer printing the last
2783         digit.
2784         (number_to_string): Removed the SPRINTF_WGINT macro.
2785
2786 2006-02-03  Mauro Tortonesi  <mauro@ferrara.linux.it>
2787
2788         * http.c: Fixed support for Content-Disposition header.
2789
2790         * test.c: Added test_parse_content_disposition to the list of unit
2791         tests to run.
2792
2793 2006-02-02  Hrvoje Niksic  <hniksic@xemacs.org>
2794
2795         * hash.c: Don't define countof if it's already defined.
2796
2797         * hash.c: Obtain the definition of uintptr_t when standalone.
2798
2799 2006-01-30  Mauro Tortonesi  <mauro@ferrara.linux.it>
2800
2801         * http.c: Changed output format. Removed excessively verbose debugging
2802         output.
2803
2804 2005-12-07  Mauro Tortonesi  <mauro@ferrara.linux.it>
2805
2806         * http.c: Fixed pre-download verbose output which was broken by
2807         HTTP code refactoring.
2808
2809 2005-11-23  Mauro Tortonesi  <mauro@ferrara.linux.it>
2810
2811         * http.c: Refactored HTTP code.  If -O is not used, the new code
2812         delays the choice of the file name where the downloaded resource
2813         will be saved until the HTTP headers have been retrieved.
2814         Added support for Content-Disposition header.
2815
2816 2005-11-19  Hrvoje Niksic  <hniksic@xemacs.org>
2817
2818         * hash.c (INVALID_PTR): Use uintptr_t instead of unsigned long.
2819         (hash_pointer): Don't assume a pointer fits in `unsigned long'.
2820
2821 2005-11-02  Mauro Tortonesi  <mauro@ferrara.linux.it>
2822
2823         * Makefile.in: Removed support for unit testing (now it is in
2824         tests/Makefile.in).
2825
2826 2005-10-27  Mauro Tortonesi  <mauro@ferrara.linux.it>
2827
2828         * Makefile.in: Added basic support for unit testing.
2829
2830         * test.c: Ditto.
2831
2832         * test.h: Ditto.
2833
2834 2005-10-13  Daniel Stenberg  <daniel@haxx.se>
2835
2836         * http-ntlm.c (ntlm_output): Fixed buffer overflow vulnerability.
2837
2838 2005-10-09  Russ Allbery  <rra@stanford.edu>
2839
2840         * snprintf.c: Remove round to round_int and pow10 to pow10_int, to
2841         avoid warnings from GCC 4.0.
2842
2843 2005-10-05  Mauro Tortonesi  <mauro@ferrara.linux.it>
2844
2845         * retr.c: Changed semantics of no_proxy_match.
2846
2847 2005-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
2848
2849         * main.c (main): Don't print the summary if nothing has been downloaded.
2850
2851 2005-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
2852
2853         * retr.c (retr_rate): Rename parameter from MSECS to SECS since it
2854         no longer holds milliseconds.
2855
2856 2005-09-01  Hrvoje Niksic  <hniksic@xemacs.org>
2857
2858         * progress.c: Introduce symbolic constants for "magic" values of
2859         0.2 and 0.9, REFRESH_INTERVAL and ETA_REFRESH_INTERVAL.
2860
2861 2005-08-27  Hrvoje Niksic  <hniksic@xemacs.org>
2862
2863         * cmpt.c (strtoll): Correctly handle strtoll("0x", ptr, 0) and
2864         strtoll("0x<nonhexchar>", ptr, 0) -- in both cases *ptr must be
2865         set to the position of 'x', not after it.
2866
2867 2005-08-27  Hrvoje Niksic  <hniksic@xemacs.org>
2868
2869         * hash.c (hash_table_map): Rename to hash_table_for_each and
2870         update callers.
2871         Document the meaning of the callback's return value.
2872         (hash_table_iterate): New function.
2873         (hash_table_iter_next): Likewise.
2874         Update most places that used hash_table_for_each to use the
2875         iteration, which doesn't require a temporary function with
2876         explicit state management.
2877
2878 2005-08-26  Albert Chin  <wget@mlists.thewrittenword.com>
2879
2880         * Makefile.in: Use @datadir@.  Define localedir as $(datadir)/locale.
2881
2882 2005-08-26  Jeremy Shapiro  <jnshapiro@gmail.com>
2883
2884         * openssl.c (ssl_init): Set SSL_MODE_AUTO_RETRY.
2885
2886 2005-08-23  Hrvoje Niksic  <hniksic@xemacs.org>
2887
2888         * host.c (address_list_from_ipv4_addresses): Use IP_INADDR_DATA.
2889
2890 2005-08-12  Hrvoje Niksic  <hniksic@xemacs.org>
2891
2892         * wget.h: Renamed strtoll_return to strtoll_type.
2893
2894 2005-08-11  Hrvoje Niksic  <hniksic@xemacs.org>
2895
2896         * progress.c (eta_to_human_short): Switch to days when printing
2897         more than 48h rather than 100h.  (It's not immediately apparent
2898         how many days there are in 83h.)
2899
2900 2005-08-11  Hrvoje Niksic  <hniksic@xemacs.org>
2901
2902         * cmpt.c (strtoll): Define it if missing on the system and if Wget
2903         needs it.
2904
2905         * mswindows.c (str_to_int64): Move to cmpt.c and rename to strtoll.
2906
2907 2005-08-10  Hrvoje Niksic  <hniksic@xemacs.org>
2908
2909         * host.c (print_address): Always use inet_ntop when IPv6 is
2910         enabled.
2911
2912         * host.h (ip_address): Simplify the data union.
2913
2914 2005-08-09  Hrvoje Niksic  <hniksic@xemacs.org>
2915
2916         * mswindows.c (inet_ntop): Also handle IPv4 addresses for
2917         completeness.
2918
2919 2005-08-09  Hrvoje Niksic  <hniksic@xemacs.org>
2920
2921         * http.c (gethttp): Don't read more than the amount of data
2922         specified by the content-length header.
2923
2924 2005-08-09  Vasil Dimov  <vd@datamax.bg>
2925
2926         * ftp.c (getftp): Don't free RESPLINE if ftp_response returns a
2927         status other than FTPOK.
2928
2929 2005-08-04  Giuseppe Bonacci  <g.bonacci@libero.it>
2930
2931         * ftp-ls.c (ftp_parse_unix_ls): Remember the position of the
2932         previous token instead of backtracking back to it.
2933
2934 2005-07-08  Gisle Vanem  <giva@bgnett.no>
2935
2936         * mswindows.h: Include process.h to get getpid() declaration.
2937
2938 2005-07-08  Hrvoje Niksic  <hniksic@xemacs.org>
2939
2940         * utils.c (aprintf): Use vasprintf where available.
2941
2942 2005-07-08  Hrvoje Niksic  <hniksic@xemacs.org>
2943
2944         * url.c (rewrite_shorthand_url): Simplify code using aprintf and
2945         strspn.
2946
2947 2005-07-07  Hrvoje Niksic  <hniksic@xemacs.org>
2948
2949         * gnutls.c (ssl_check_certificate): Check for the validity of the
2950         presented X509 certificate.
2951
2952 2005-07-07  Hrvoje Niksic  <hniksic@xemacs.org>
2953
2954         * openssl.c (ssl_check_certificate): Print custom error messages
2955         for frequent X509 certificate problems.
2956
2957 2005-07-07  Hrvoje Niksic  <hniksic@xemacs.org>
2958
2959         * mswindows.h: Define an alias for stat and fstat, as requested by
2960         config-compiler.h.
2961         (gai_strerror): Define to windows_strerror if NEED_GAI_STRERROR is
2962         defined.
2963
2964 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
2965
2966         * mswindows.h: Use strtoll where available.
2967
2968 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
2969
2970         * sysdep.h: Add a full declaration of fnmatch.h.
2971
2972 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
2973
2974         * utils.c: Unconditionally include <setjmp.h>.
2975
2976 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
2977
2978         * utils.c (fnmatch_nocase): New function.
2979         (proclist): Use it instead of fnmatch when opt.ignore_case is
2980         requested.
2981         (in_acclist): Respect opt.ignore_case.
2982         (frontcmp): Respect opt.ignore_case.
2983
2984         * options.h (struct options): New flag opt.ignore_case.
2985
2986 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
2987
2988         * ptimer.c: Measure time in seconds rather than milliseconds.
2989         Adjusted all callers.
2990
2991 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
2992
2993         * http.c (gethttp): When freeing MESSAGE, take into account that
2994         it can be NULL.
2995
2996 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
2997
2998         * cmpt.c (timegm): Handle years after 2099.
2999
3000 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
3001
3002         * cmpt.c (timegm): Remove unused variable.
3003
3004 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
3005
3006         * cmpt.c (timegm): Don't call mktime; simply count the seconds
3007         between 1970-01-01 and the specified date.
3008
3009 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
3010
3011         * wget.h (or): Define HAVE_SSL when either HAVE_OPENSSL or
3012         HAVE_GNUTLS are defined.
3013
3014         * gnutls.c: New file.
3015
3016 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
3017
3018         * http.c (gethttp): Don't print the request write error message
3019         twice.
3020
3021 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
3022
3023         * openssl.c (openssl_errstr): Instead of always using a large
3024         static buffer, only allocate the error string when there is an
3025         actual error.
3026
3027 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
3028
3029         * xmalloc.c (debugging_free): Prefix hex pointer value with "0x"
3030         when printing.
3031
3032 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
3033
3034         * utils.c (NEXT_BASE64_CHAR): Rename to NEXT_CHAR and simplify to
3035         get the next non-whitespace character.
3036
3037 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
3038
3039         * utils.c (base64_decode): Don't silently tolerate non-base64
3040         non-white-space characters in the base64 stream.
3041
3042 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
3043
3044         * connect.c (LAZY_RETRIEVE_INFO): Make last_tick unsigned to match
3045         transport_map_modified_tick.
3046
3047 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
3048
3049         * config-post.h (alloca): Updated declaration to not enumerate all
3050         Windows compilers.
3051
3052 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
3053
3054         * openssl.c (openssl_errstr): Separate error messages with "; ".
3055
3056 2005-07-03  Hrvoje Niksic  <hniksic@xemacs.org>
3057
3058         * ftp.c (getftp): Ditto.
3059
3060         * http.c (gethttp): Use fd_errstr.
3061
3062         * connect.c (fd_register_transport): Restructure parameters to
3063         include only a single structure that describes transport
3064         implementation.
3065
3066         * openssl.c (openssl_errstr): New function: dump SSL error strings
3067         into a static buffer and return a pointer to the buffer.
3068
3069         * connect.c (fd_errstr): New function; returns transport-specific
3070         error message, or strerror(errno) if transport doesn't supply one.
3071
3072 2005-07-03  Hrvoje Niksic  <hniksic@xemacs.org>
3073
3074         * mswindows.h: Also wrap accept() and listen().
3075
3076 2005-07-03  Hrvoje Niksic  <hniksic@xemacs.org>
3077
3078         * url.c (path_end): Skip separators appropriate for the scheme.
3079         (strpbrk_or_eos): Remove gcc-specific version, as the optimization
3080         it tried to perform no longer applies.
3081
3082 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
3083
3084         * host.c: Don't include "connect.h" now that we no longer have
3085         socket_has_inet6.
3086
3087 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
3088
3089         * host.c: Remove extraneous definition of netdb.h.
3090
3091 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
3092
3093         * http.c (gethttp): Skip error message body in the keep-alive
3094         case.
3095
3096 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
3097
3098         * url.c (url_parse): Would crash when parsing fragments.  Support
3099         fragments for FTP URLs too.
3100
3101 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
3102
3103         * version.c: Don't use "cvs" in version name, since we're not
3104         using CVS anymore.
3105
3106 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
3107
3108         * progress.c (create_image): Ditto.
3109
3110         * retr.c (retr_rate): Display smaller rate numbers with greater
3111         precision.
3112
3113 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
3114
3115         * http.c (response_head_terminator): Minor optimization.
3116
3117         * retr.c (fd_read_hunk): Call terminator with pointer to the start
3118         of the data and the pointer to the current data.  Changed all
3119         callers.
3120
3121 2005-07-01  Hrvoje Niksic  <hniksic@xemacs.org>
3122
3123         * url.c (url_parse): Make sure u->params is not initialized for
3124         http/https URLs.
3125         (url_parse): Don't crash on garbage following []-delimited IPv6
3126         addresses.
3127
3128 2005-07-01  Hrvoje Niksic  <hniksic@xemacs.org>
3129
3130         * main.c (print_help): Don't refer to the non-existent -nr in
3131         description of --mirror.
3132
3133 2005-06-30  Hrvoje Niksic  <hniksic@xemacs.org>
3134
3135         * host.c (pretty_print_address): Renamed to just print_address.
3136         Clarify documentation.
3137
3138 2005-06-30  Hrvoje Niksic  <hniksic@xemacs.org>
3139
3140         * http.c (gethttp): Explicitly document the different cases when
3141         generating the Host header.
3142
3143 2005-06-30  Hrvoje Niksic  <hniksic@xemacs.org>
3144
3145         * host.c (pretty_print_address): Handle error result from
3146         inet_ntop.
3147
3148 2005-06-30  Gisle Vanem  <giva@bgnett.no>
3149
3150         * mswindows.c (inet_ntop): New function.  Print IPv6 addresses
3151         using WSAAddressToString.
3152
3153 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
3154
3155         * progress.c (dot_update): Remove unused variable row_qty.
3156
3157 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
3158
3159         * main.c: Check for both SIGHUP and SIGUSR1 before using them.
3160
3161 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
3162
3163         * utils.c: Unconditionally include locale.h.
3164
3165 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
3166
3167         * ptimer.c: Include sys/time.h to get struct timeval.
3168
3169 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
3170
3171         * wget.h: Remove obsolete definition of with_thousand_seps_sum.
3172
3173 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
3174
3175         * gnu-md5.h: Unconditionally include limits.h.
3176
3177 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
3178
3179         * utils.c (random_number): Use lrand48 if available.
3180         (random_float): Use drand48 if available.
3181
3182 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
3183
3184         * main.c (secs_to_human_time): Use print_decimal when printing
3185         total download time in seconds.
3186
3187         * progress.c (print_row_stats): Use it to print total download
3188         time at the end of the download.
3189         (create_image): Ditto.
3190
3191         * utils.c (print_decimal): New function; print small decimal
3192         numbers with more precision than large ones.
3193
3194         * progress.c (print_row_stats): New function.  Print ETA after the
3195         download rate at the end of each row.
3196
3197 2005-06-28  Hrvoje Niksic  <hniksic@xemacs.org>
3198
3199         * init.c (parse_line): Check for alphanumerics.
3200
3201 2005-06-28  Hrvoje Niksic  <hniksic@xemacs.org>
3202
3203         * (dot_create): Remove unnecessary casts.
3204
3205 2005-06-28  Hrvoje Niksic  <hniksic@xemacs.org>
3206
3207         * ftp.c (getftp): Delete trailing newlines from LIST output so
3208         lines don't come out with trailing \015\012 with -S.
3209
3210 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
3211
3212         * mswindows.h: Remove superfluous includes.
3213
3214 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
3215
3216         * config-post.h (alloca): Amend alloca declaration to take care of
3217         all Win32 compilers, not just MSVC and MinGW.
3218
3219 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
3220
3221         * utils.c (get_grouping_data): Force separator to "." rather than
3222         " " when "," is taken.
3223
3224 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
3225
3226         * wget.h (PTR_FORMAT): Cast the result of sizeof to int before
3227         passing it to printf's %*.
3228
3229         * retr.h: Declare output_stream and output_stream_regular.
3230
3231         * ftp.h: Declare ftp_last_respline.
3232
3233         * convert.h: Declare dl_url_file_map.
3234
3235         * http.h: New file.
3236
3237 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
3238
3239         * cookies.c: Make cookies_now static.
3240
3241 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
3242
3243         * utils.c (human_readable): Remove intermediary cast to long; MSVC
3244         has problems casting *unsigned* __int64 to double.
3245
3246 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
3247
3248         * sysdep.h: Use the system-provided fnmatch by default.
3249
3250 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
3251
3252         * http.c (mktime_from_utc): Renamed to timegm and moved to cmpt.c.
3253         Don't compile it if GNU timegm is available.
3254         (http_atotm): Use timegm.
3255
3256 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
3257
3258         * http.c (http_atotm): Correctly query the old locale value.
3259
3260 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
3261
3262         * config-post.h (alloca): Don't #define alloca under MinGW32,
3263         which defines it in malloc.h, included from mswindows.h.
3264
3265 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
3266
3267         * utils.c (get_grouping_data): Force the use of separators in C
3268         locale.
3269
3270 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
3271
3272         * main.c (i18n_initialize): Set all locale categories.
3273
3274         * http.c (http_atotm): Temporarily set locale to "C".
3275
3276 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
3277
3278         * http.c (gethttp): Improve "POST data file missing" error
3279         message.
3280
3281 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
3282
3283         * progress.c (set_progress_implementation): Type COLON as const
3284         char *.
3285
3286 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
3287
3288         * utils.c (with_thousand_seps): Handle negative numbers.
3289
3290 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
3291
3292         * progress.c (create_image): Mark the "eta" string for translation.
3293
3294 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
3295
3296         * html-url.c (get_urls_file): Don't explicitly set entry->next to
3297         NULL since entry is already zeroed out.
3298
3299 2005-06-26  Gisle Vanem  <giva@bgnett.no>
3300
3301         * mswindows.h: Define gai_strerror under MinGW.
3302
3303 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
3304
3305         * utils.c (with_thousand_seps): Correctly implement thousand seps
3306         consisting of more than one character.
3307
3308 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
3309
3310         * main.c (secs_to_human_time): Ditto.
3311
3312         * progress.c (create_image): Print more exact duration of very
3313         short downloads.
3314
3315         * main.c (secs_to_human_time): Don't translate time suffixes "h",
3316         "m", and "s", which are not strictly SI, but are "accepted for use
3317         with SI".
3318         (secs_to_human_time): Print really small intervals as 0s, not
3319         0.00s.
3320
3321 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
3322
3323         * config-post.h: Replace the alloca declaration with the one from
3324         the latest Autoconf manual.  This should remove a warning with GCC
3325         on AIX.
3326
3327 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
3328
3329         * ftp.c (getftp): Always invoke SIZE, not only when continuing a
3330         download.
3331
3332         * main.c (main): Ditto here.
3333
3334         * progress.c (create_image): When the download is finished, print
3335         how long it took.
3336
3337 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
3338
3339         * main.c (main): Print the downloaded and quota amounts with the
3340         "human_readable" function.
3341
3342         * ftp.c (print_length): Ditto.
3343
3344         * http.c (gethttp): Don't display thousand separators.
3345
3346         * utils.c (with_thousand_seps): Rewritten to respect locale
3347         settings and to be type size agnostic.
3348
3349 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
3350
3351         * utils.c (human_readable): Divide with 1024 instead of shifting
3352         so the operation can work with non-integer N.
3353
3354 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
3355
3356         * progress.c (eta_to_human): New logic for more human-readable
3357         ETA.
3358
3359 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
3360
3361         * utils.c (with_thousand_seps_sum): Decrease buffer size so it
3362         cannot overrun add_thousand_seps's buffer.
3363
3364 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
3365
3366         * utils.c (SPRINTF_WGINT): The correct format is %I64d, not just
3367         %I64.
3368
3369 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
3370
3371         * http.c (http_loop): Don't warn about wildcards in HTTP URLs if
3372         globbing isn't requested in the first place.
3373
3374         * retr.c (retrieve_url): Temporarily turn off globbing when
3375         processing HTTP->FTP redirects.
3376
3377 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
3378
3379         * utils.c (with_thousand_seps_sum): Now defined only if
3380         SUM_SIZE_INT is double.
3381
3382         * wget.h (SUM_SIZE_INT): Instead of bothering with long, long
3383         long, __int64, and friends, simply either use wgint or double, end
3384         of story.  Since we know how to print either, we no longer need
3385         LARGE_INT_FMT.
3386
3387         * sysdeps.h (LARGE_INT): Renamed to SUM_SIZE_INT to better reflect
3388         its intent, and moved to wget.h.
3389
3390 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
3391
3392         * Makefile.in: No need to clean .libs.
3393
3394 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
3395
3396         * cookies.c (parse_set_cookies): Cast pointer subtraction to int
3397         before using it with %d; AIX compiler warns on this.
3398         Reported by Jens Schleusener.
3399
3400 2005-06-24  Hrvoje Niksic  <hniksic@xemacs.org>
3401
3402         * http.c (gethttp): Don't prepend / here.
3403
3404         * cookies.c (cookie_handle_set_cookie): Prepend / to PATH.
3405         (cookie_header): Ditto.
3406
3407 2005-06-24  Hrvoje Niksic  <hniksic@xemacs.org>
3408
3409         * init.c: opt.verbose must be declared as int.
3410
3411 2005-06-23  Hrvoje Niksic  <hniksic@xemacs.org>
3412
3413         * cmpt.c (strpbrk): Removed.
3414         (mktime): Removed.
3415         Include <time.h>.
3416
3417 2005-06-23  Hrvoje Niksic  <hniksic@xemacs.org>
3418
3419         * utils.c (read_file): Ditto.
3420
3421         * main.c (main): Use struct_fstat.
3422
3423         * mswindows.h (struct_fstat): Define a struct_fstat to deal with
3424         the fact that Borland 5.5 has 64-bit stat, but not 64-bit fstat!
3425
3426 2005-06-23  Hrvoje Niksic  <hniksic@xemacs.org>
3427
3428         * sysdep.h: Remove code that deals with Watcom.
3429
3430 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
3431
3432         * all: Use bool instead of int and false/true instead of 0/non-0
3433         for boolean variables and values.
3434
3435 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
3436
3437         * sysdep.h: Include the stdbool.h/_Bool/bool blurb from Autoconf.
3438
3439 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
3440
3441         * init.c (cmd_lockable_boolean): Removed.
3442
3443 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
3444
3445         * cookies.c (struct cookie): Use 1-bit bitfields for booleans
3446         which makes the structure takes less space at no cost in
3447         complexity.
3448
3449 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
3450
3451         * Makefile.in ($(OBJ)): Add the config.h dependency.
3452
3453 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
3454
3455         * openssl.c, connect.c, host.c: Replace instances of #ifdef
3456         ENABLE_DEBUG if (opt.debug) {...} #endif with IF_DEBUG {...}.
3457
3458         * main.c: Rename the IF_DEBUG defined here to WHEN_DEBUG.
3459
3460         * wget.h (IF_DEBUG): New macro.
3461         (DEBUGP): Define in terms of IF_DEBUG.
3462
3463 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
3464
3465         * http.c (gethttp): Only handle --set-cookies (and assert that
3466         cookie jar exists) if opt.cookies is true.  Failure to do so
3467         triggered the assert when --no-cookies was used and the server
3468         sent a Set-Cookie header.  Ouch!
3469
3470 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
3471
3472         * connect.c (select_fd): Expect select() to exist.
3473
3474         * utils.c (xsleep): Always use select() as sleep fallback on
3475         non-Windows platforms.
3476
3477         * ptimer.c: Delete the implementation of PTIMER_TIME.
3478
3479         * main.c: Assume existence of signal(), test for different signal
3480         names instead.
3481
3482         * cmpt.c: Better document reasons why certain functions are
3483         included.
3484
3485 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
3486
3487         * Makefile.in: Remove the manually maintained dependency list;
3488         make all object files depend on every header.
3489
3490 2005-06-20  Hrvoje Niksic  <hniksic@xemacs.org>
3491
3492         * hash.c: Rename "mapping" to "cell" to avoid confusion with the
3493         term "mapping" (or "map") sometimes being used for the entire hash
3494         table.  Also rename "non-empty" to "occupied" for easier reading
3495         of if (!NON_EMPTY (...)) ... .
3496
3497 2005-06-20  Hrvoje Niksic  <hniksic@xemacs.org>
3498
3499         * main.c, ptimer.c, sysdep.h, utils.c: Use #elif to simplify reading of
3500         chained if-else-else-else-... statements.
3501
3502 2005-06-20  Hrvoje Niksic  <hniksic@xemacs.org>
3503
3504         * all: Return type of signal handlers is `void'.  Include signal.h
3505         unconditionally.
3506
3507         * all: Don't explicitly cast values returned by malloc.  We no
3508         longer support ancient compilers that don't declare malloc, and we
3509         never supported C++ builds.
3510
3511 2005-06-19  Hrvoje Niksic  <hniksic@xemacs.org>
3512
3513         * all: Don't declare errno.  Include both time.h and sys/time.h,
3514         as long as sys/time.h exists.  Don't dereference function pointers
3515         when invoking the functions they point to.
3516
3517         * cmpt.c (memmove): Remove function mandated by C89.
3518         (strerror): Ditto.
3519         (strstr): Ditto.
3520
3521         * all: Undo the K&R-ization changes from 2005-05-03.
3522
3523         * all: Remove support for K&R compilers: use C89 function
3524         declarations, remove definition of PARAMS, remove support for
3525         varargs, and remove ansi2knr.  Assume the presence of time.h,
3526         string.h, and other headers mandated by C89.
3527
3528 2005-06-19  Hrvoje Niksic  <hniksic@xemacs.org>
3529
3530         * init.c (cmd_lockable_boolean): Don't recognize literal "2" and
3531         "-1" values; unlike 0 and 1, those should never be exposed to the
3532         user.  Update the error message to be more self-consistent, as
3533         proposed by Benno Schulenberg.
3534
3535 2005-06-18  Hrvoje Niksic  <hniksic@xemacs.org>
3536
3537         * http.c (gethttp): Don't free "head" before using it to save
3538         headers.
3539
3540 2005-06-18  Hrvoje Niksic  <hniksic@xemacs.org>
3541
3542         * http.c (gethttp): When -E is in use, check for file existence
3543         after appending ".html" to the name and modify the file name if
3544         necessary.
3545
3546 2005-06-17  Hrvoje Niksic  <hniksic@xemacs.org>
3547
3548         * connect.c (socket_has_inet6): Removed.
3549
3550         * host.c (lookup_host): Don't use the AI_ADDRCONFIG getaddrinfo
3551         hint.
3552
3553 2005-06-16  Hrvoje Niksic  <hniksic@xemacs.org>
3554
3555         * init.c (cmd_lockable_boolean): Improve the error message so it
3556         lists the more useful values first.
3557
3558 2005-06-15  Hrvoje Niksic  <hniksic@xemacs.org>
3559
3560         * http.c (gethttp): Also report the system error when the POST
3561         data file is missing.
3562
3563 2005-06-15  Benno Schulenberg  <benno@nietvergeten.nl>
3564
3565         * ftp.c, http.c, connect.c, cookies.c, html-url.c, init.c, res.c:
3566         Gettext-ize messages that were previously missed.
3567
3568 2005-06-15  Hrvoje Niksic  <hniksic@xemacs.org>
3569
3570         * host.h (ip_address): Remove the trailing comma from the type
3571         enum in the no-IPv6 case.
3572
3573         * main.c (struct cmdline_option): Remove the trailing comma from
3574         the enum.
3575
3576         Reported by Jens Schleusener.
3577
3578 2005-05-30  Hrvoje Niksic  <hniksic@xemacs.org>
3579
3580         * url.c (strpbrk_or_eos): Check for a recent GCC version before
3581         using the statement-as-expression extension.
3582
3583 2005-05-30  Hrvoje Niksic  <hniksic@xemacs.org>
3584
3585         * http.c (gethttp): Don't attempt to "skip short body" if we're
3586         issuing a HEAD request (in which case the response head is not
3587         followed by a body).
3588
3589 2005-05-30  Hrvoje Niksic  <hniksic@xemacs.org>
3590
3591         * init.c (cmd_spec_header): Don't split the string along the
3592         commas using cmd_vector; just append the new value using
3593         vec_append instead.
3594
3595         * utils.c (vec_append): New function.
3596
3597 2005-05-27  Andreas Beckmann  <debian@abeckmann.de>
3598
3599         * html-url.c (tag_handle_link): Mark the content from the <link
3600         src="..."> tag as expecting HTML.
3601
3602 2005-05-24  Hrvoje Niksic  <hniksic@xemacs.org>
3603
3604         * http.c (http_atotm): Document the origin of the "cookie date"
3605         format.
3606
3607 2005-05-21  Hrvoje Niksic  <hniksic@xemacs.org>
3608
3609         * init.c (setval_internal): Report exact command name alongside
3610         the "display name".
3611
3612 2005-05-18  Hrvoje Niksic  <hniksic@xemacs.org>
3613
3614         * cookies.c (update_cookie_field): Explicitly cast -1 to time_t to
3615         cope with systems where time_t is unsigned.
3616
3617         * cookies.c: Remove unnecessary casts to time_t from values
3618         already of that type.
3619
3620 2005-05-17  Hrvoje Niksic  <hniksic@xemacs.org>
3621
3622         * ftp.c (ftp_loop_internal): Same here.
3623
3624         * http.c (http_loop): Don't clobber the file when -c is specified
3625         and the first attempt to retrieve the file fails.
3626
3627 2005-05-16  Hrvoje Niksic  <hniksic@xemacs.org>
3628
3629         * openssl.c (ssl_check_certificate): Print all issues with a
3630         certificate.
3631
3632 2005-05-16  Hrvoje Niksic  <hniksic@xemacs.org>
3633
3634         * ftp-basic.c: Don't xfree() the line returned by ftp_response if
3635         the returned code is not FTPOK.
3636
3637 2005-05-16  Hrvoje Niksic  <hniksic@xemacs.org>
3638
3639         * init.c (cleanup): Don't free the non-existent opt.ftp_acc.  Free
3640         the SSL-related stuff.
3641
3642 2005-05-16  Hrvoje Niksic  <hniksic@xemacs.org>
3643
3644         * ftp.c (print_length): Consistently print \n at end of the
3645         "Length" line.
3646
3647 2005-05-14  Hrvoje Niksic  <hniksic@xemacs.org>
3648
3649         * openssl.c (ssl_connect): Announce the beginning and the end of
3650         the SSL handshake when in debug mode.
3651
3652         * wget.h (PTR_FORMAT): New macro for easier printing of pointer
3653         values.  Use %0*lx along with PTR_FORMAT instead of %p.
3654
3655 2005-05-14  Hrvoje Niksic  <hniksic@xemacs.org>
3656
3657         * http.c (gethttp): Would forget to close the connection when
3658         keep_alive was not used.
3659
3660 2005-05-13  Hrvoje Niksic  <hniksic@xemacs.org>
3661
3662         * openssl.c (pattern_match): Document the code that decides
3663         whether "*" matches ".".
3664
3665 2005-05-12  Hrvoje Niksic  <hniksic@xemacs.org>
3666
3667         * ftp-ls.c (ftp_index): Use %d to print the port number, which is
3668         now int.
3669         From Steven M. Schweda's VMS patches.
3670
3671 2005-05-12  Hrvoje Niksic  <hniksic@xemacs.org>
3672
3673         * url.c (rewrite_shorthand_url): Don't rewrite "https://host" to
3674         "ftp://https//host" when SSL is not used.
3675
3676 2005-05-11  Hrvoje Niksic  <hniksic@xemacs.org>
3677
3678         * openssl.c (ssl_check_server_identity): Renamed to
3679         ssl_check_certificate because it does more than just checking the
3680         server's identity.
3681         (ssl_check_certificate): Tell the user about
3682         --no-check-certificate.
3683
3684 2005-05-11  Hrvoje Niksic  <hniksic@xemacs.org>
3685
3686         * openssl.c (ssl_init): Always use SSL_VERIFY_NONE, so that the
3687         handshake finishes even if the certificate is invalid.  That way
3688         ssl_check_server_identity can provide better diagnostics on why
3689         the verification failed.
3690
3691 2005-05-11  Hrvoje Niksic  <hniksic@xemacs.org>
3692
3693         * openssl.c (pattern_match): New function.
3694         (ssl_check_server_identity): Treat peer certificate common name as
3695         wildcard.
3696
3697 2005-05-10  Hrvoje Niksic  <hniksic@xemacs.org>
3698
3699         * openssl.c (ssl_check_server_identity): Print certificate subject
3700         and issuer.
3701
3702 2005-05-10  Hrvoje Niksic  <hniksic@xemacs.org>
3703
3704         * res.c (res_register_specs): Correctly pass pointers to
3705         hash_table_get_pair.
3706
3707 2005-05-10  Hrvoje Niksic  <hniksic@xemacs.org>
3708
3709         * http.c (gethttp): Call ssl_check_server_identity.
3710
3711         * openssl.c (ssl_check_server_identity): New function, verifies
3712         that the host name in the certificate matches the actual host
3713         name.
3714         (verify_cert_callback): Removed, since it didn't do anything
3715         except returning the preverify_ok argument.
3716
3717         * connect.c (fd_transport_context): Allow retrieval of the context
3718         pointer registered with fd_register_transport.
3719
3720 2005-05-09  Hrvoje Niksic  <hniksic@xemacs.org>
3721
3722         * openssl.c (verify_cert_callback): Renamed from verify_callback.
3723         Always return the received "ok" value.  Print the X509 name in
3724         debug mode.
3725         (ssl_init): Enable partial writes in SSL context.
3726
3727 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
3728
3729         * http.c (http_loop): Check for wildcards in the URL path
3730         component, not in the whole URL.
3731
3732         * ftp.c (ftp_loop): Check for wildcards in URL path before
3733         unescaping, so the users can escape globbing metacharacters with %
3734         escapes.
3735
3736 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
3737
3738         * init.c (run_command): Correctly interpret the return value of
3739         parse_line.
3740         (commands): Re-alphabetize.
3741
3742 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
3743
3744         * netrc.c (parse_netrc): Explicitly check for assignment != NULL
3745         to silence warning from Borland C.
3746
3747         * url.c (sync_path): Don't unnecessarily increment p.
3748         (url_parse): Don't unnecessarily set url_encode to NULL just
3749         prior to return from the function.
3750
3751 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
3752
3753         * log.c (escnonprint_internal): Place variable declarations
3754         before other statements.
3755
3756 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
3757
3758         * html-url.c: Include recur.h.
3759
3760         * http.c (request_new): Define as accepting no args.
3761
3762 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
3763
3764         * url.c (strpbrk_or_eos): Made inline.  Use strchr(s, '\0') for
3765         finding the NUL char position.
3766
3767 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
3768
3769         * url.c (decide_copy_method): Renamed to char_needs_escaping.
3770         Since it now returns only two possible values, change it to return
3771         boolean (int).
3772
3773 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
3774
3775         * ftp-basic.c (ftp_request): Prevent newlines in VALUE causing
3776         inadvertent sending of multiple FTP commands.
3777
3778 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
3779
3780         * url.c (decide_copy_method): Never cause reencode_escapes to
3781         decode % escapes; it is too intrusive and breaks some servers.
3782
3783 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
3784
3785         * http.c (gethttp): When tunnelling SSL traffic over proxy with
3786         CONNECT, we're really talking to the remote server directly.
3787         Because of this, the request-line argument must be the URL path
3788         rather than the whole URL, as it would be when using regular
3789         proxies.
3790         Reported by Charles Lane.
3791
3792 2005-05-06  Hrvoje Niksic  <hniksic@xemacs.org>
3793
3794         * init.c (cmd_spec_useragent): Allow empty User-Agent.
3795
3796         * http.c (gethttp): Don't print "unknown authentication scheme"
3797         for failed Basic authentication.
3798         (SET_USER_AGENT): Don't set user-agent if opt.useragent is empty.
3799         (gethttp): Use alloca for allocation of www_authenticate.
3800
3801 2005-05-06  Hrvoje Niksic  <hniksic@xemacs.org>
3802
3803         * main.c (print_help): Fix wording of --secure-protocol help text.
3804
3805 2005-05-06  Hrvoje Niksic  <hniksic@xemacs.org>
3806
3807         * cmpt.c (strstr): Updated from glibc 2.3.5.
3808
3809 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
3810
3811         * http.c (http_atotm): Zero out the whole struct tm being passed
3812         to strptime.
3813
3814 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
3815
3816         * main.c (main): Propagate option name to setoptval.
3817
3818         * init.c (setoptval): Accept another argument, OPTNAME.  Propagate
3819         that argument as the option name independently of the actual
3820         command, determined by command_by_name(com).
3821
3822 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
3823
3824         * init.c (parse_line): Make the return value indicate whether
3825         there was a syntax error or a setter failed.
3826         (run_wgetrc): Return an indication on whether an error has been
3827         encountered.
3828         (initialize): Abort if there have been errors running either
3829         .wgetrc file.
3830
3831 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
3832
3833         * log.c (copy_and_escape): Slightly reduce code repetition between
3834         the two loops.
3835
3836 2005-05-05  Charles C.Fu  <ccwf@bacchus.com>
3837
3838         * utils.c (proclist): Strip leading slash when calling fnmatch
3839         too, otherwise wildcard comparisons always fail.
3840
3841 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
3842
3843         * utils.c (touch): Set access time to current time.
3844
3845 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
3846
3847         * url.c (url_unescape): Don't unescape %00, it effectively
3848         truncates the string.
3849
3850 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
3851
3852         * log.c (copy_and_escape): Replace the FOR_URI argument with a
3853         slightly more general mechanism for specifying different kinds of
3854         escape.
3855
3856 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
3857
3858         * ftp-basic.c (ftp_response): Fix printing FTP server response.
3859
3860 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
3861
3862         * retr.c (limit_bandwidth_reset): Reset sleep_adjust.
3863         (limit_bandwidth): Don't allow huge "adjustment" values that
3864         result from being suspended for a while.
3865
3866 2005-05-04  Hrvoje Niksic  <hniksic@xemacs.org>
3867
3868         * wget.h: If gettext was found but libtintl.h wasn't, declare
3869         gettext's return type to avoid type mismatches.
3870
3871 2005-05-03  Hrvoje Niksic  <hniksic@xemacs.org>
3872
3873         * url.c (url_parse): Rename label `error' to avoid conflict with
3874         identifier.
3875
3876         * retr.c (fd_read_body): Rename label `out' to avoid conflict with
3877         identifier.
3878         (fd_read_hunk): Use explicit double constant.
3879         (retrieve_from_file): Don't use string concatenation.
3880         (sleep_between_retrievals): Make sure xsleep is called with a
3881         `double' argument.
3882         (no_proxy_match): Define as static, like it is declared.
3883
3884         * progress.c (bar_create): Use 0.0 instead of 0 because K&R
3885         compilers can't automatically promote it.
3886
3887         * http-ntlm.c (ntlm_output): Replace \xHH sequences with \OOO for
3888         the sake of old compilers.
3889
3890         * ftp.c (ftp_loop_internal): Don't use string concatenation.
3891
3892         * http.c (request_send): Use explicit double constants when
3893         calling fd_read and fd_write.
3894         (post_file): Ditto.
3895         (gethttp): Ditto.
3896         (skip_short_body): Ditto.
3897
3898         * ftp-basic.c: When calling fd_write, specify the last argument as
3899         a `double' constant for the sake of K&R compilers which don't see
3900         the prototype and therefore can't promote it to double
3901         automatically.
3902
3903         * cookies.c (cookie_jar_load): Rename abort label to abort_cookie
3904         to avoid name conflict in K&R compilers.
3905
3906 2005-04-29  Hrvoje Niksic  <hniksic@xemacs.org>
3907
3908         * ptimer.c (posix_init): Since we allow _POSIX_MONOTONIC_CLOCK==0,
3909         it is not enough to check for _POSIX_MONOTONIC_CLOCK-0, we must
3910         also check for defined(_POSIX_MONOTONIC_CLOCK).
3911
3912 2005-04-28  Hrvoje Niksic  <hniksic@xemacs.org>
3913
3914         * ftp.c, hash.c, connect.c, host.c, http.c: Remove unreached code,
3915         such as "break" following return or abort.
3916
3917 2005-04-28  Hrvoje Niksic  <hniksic@xemacs.org>
3918
3919         * init.c (commands): Wrap the use of opt.random_file in #ifdef
3920         HAVE_SSL.
3921
3922 2005-04-28  Hrvoje Niksic  <hniksic@xemacs.org>
3923
3924         * http.c (gethttp): Correctly set the user agent.
3925
3926 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
3927
3928         * init.c (cmd_spec_useragent): Free the old value of
3929         opt.useragent before setting the new one.
3930
3931 2005-04-27  Mauro Tortonesi  <mauro@ferrara.linux.it>
3932
3933         * main.c: Map --ftp-password, --http-password and --proxy-password to
3934         the new ftppassword, httppassword and proxypassword commands
3935         respectively.  Document the --user and --password options in the help
3936         string.
3937
3938 2005-04-27  Mauro Tortonesi  <mauro@ferrara.linux.it>
3939
3940         * ftp.c: Add support for --user and --password.
3941
3942         * http.c: Add support for --user and --password.
3943
3944         * init.c: Deprecated ftppasswd, httppasswd, login, passwd and
3945         proxypasswd commands.  Added ftppassword, ftpuser, httppassword,
3946         password, proxypassword and user commands.
3947
3948         * main.c: Renamed --ftp-passwd to --ftp-password.  Added --ftp-user,
3949         --http-password, --password, --proxy-password and --user.  Deprecated
3950         --http-passwd and --proxy-passwd.  Added documentation for new options
3951         and removed documentation for deprecated options in the help string.
3952
3953         * options.h (struct options): Added user and passwd members to handle
3954         --user and --password respectively.  Renamed ftp_acc and ftp_pass
3955         members to ftp_user and ftp_passwd for consistency.
3956
3957 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
3958
3959         * main.c (print_help): Advertise "DER", not "ASN1".
3960
3961 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
3962
3963         * openssl.c (init_prng): Disable the weak random seed by default.
3964
3965         * http.c (gethttp): Simplify SSL initialization; disable SSL when
3966         anything goes wrong with the initialization.
3967
3968         * options.h (struct options): New option opt.random_file.
3969
3970 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
3971
3972         * init.c: Wrap private key commands in IF_SSL.
3973
3974 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
3975
3976         * openssl.c (ssl_init): Ditto.
3977
3978         * options.h (struct options): Allow separate specification of key
3979         type and certificate type.
3980
3981         * init.c (cmd_spec_cert_type): Provide a "der" synonym for "asn1"
3982         certificate encoding.
3983
3984 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
3985
3986         * openssl.c: Renamed "gen_sslfunc.c" to "openssl.c" and
3987         "gen_sslfunc.h" to "openssl.h".  This reflects the intent of
3988         openssl.c encapsulating the OpenSSL-specific code.
3989
3990 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
3991
3992         * init.c: Renamed "closure" (a synonym for context in some
3993         cultures) to "place", which more accurately reflects the usage.
3994
3995 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
3996
3997         * gen_sslfunc.c (ssl_init): Use default locations for loading the
3998         certificate bundles.
3999         (ssl_init_prng): Disable the cryptographically weak PRNG
4000         initialization fallback.
4001
4002         * init.c: Renamed SSL command-line arguments and wgetrc commands.
4003         (defaults): Check the server certificate by default.
4004
4005 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
4006
4007         * cookies.c (cookie_handle_set_cookie): Delete the part of the
4008         path after the trailing slash.
4009
4010         * http.c (gethttp): Call cookie_handle_set_cookie with path that
4011         begins with '/'.
4012
4013 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
4014
4015         * http.c (gethttp): Call skip_short_body only if keep_alive is in
4016         use.
4017         (gethttp): Send the User-Agent header with the CONNECT request as
4018         well.
4019
4020 2005-04-25  Hrvoje Niksic  <hniksic@xemacs.org>
4021
4022         * main.c (option_data): Removed support for the undocumented flag
4023         --use-proxy.
4024
4025 2005-04-25  Hrvoje Niksic  <hniksic@xemacs.org>
4026
4027         * main.c (option_data): Don't treat -Y as a boolean switch; treat
4028         it as a value switch instead, so "-Y off" continues to work.
4029
4030 2005-04-24  Hrvoje Niksic  <hniksic@xemacs.org>
4031
4032         * utils.c (aprintf): Delete unreachable statement.
4033
4034 2005-04-24  Hrvoje Niksic  <hniksic@xemacs.org>
4035
4036         * host.c (cmp_prefer_ipv4): New function.
4037         (cmp_prefer_ipv6): New function.
4038         (lookup_host): Use the appropriate comparator according to
4039         opt.prefer_family.
4040
4041         * init.c: New option prefer_family.
4042
4043         * host.c (is_valid_ipv6_address): Spell NS_* constants in lower
4044         case to avoid clash with system headers.
4045         (lookup_host): Reorder the addresses so that IPv4 ones come first.
4046
4047         * utils.c (stable_sort): New function.
4048
4049 2005-04-24  Hrvoje Niksic  <hniksic@xemacs.org>
4050
4051         * connect.c (retryable_socket_connect_error): Return 0 for
4052         ENETUNREACH and EHOSTUNREACH.
4053
4054 2005-04-23  Hrvoje Niksic  <hniksic@xemacs.org>
4055
4056         * cmpt.c: Reenable the memmove implementation for systems that
4057         lack it.
4058
4059         * http.c (gethttp): Store the "authorized" state of the persistent
4060         connection.
4061         (request_remove_header): New function.
4062         (gethttp): Don't send the "Basic" authentication if the connection
4063         is already authorized.
4064
4065 2005-04-23  Hrvoje Niksic  <hniksic@xemacs.org>
4066
4067         * utils.c (base64_encode): Treat input as unsigned chars.
4068         Required for correct encoding of binary stuff.
4069
4070 2005-04-23  Hrvoje Niksic  <hniksic@xemacs.org>
4071
4072         * http-ntlm.c: Format the function definitions in an
4073         ansi2knr-friendly fashion.
4074
4075 2005-04-22  Hrvoje Niksic  <hniksic@xemacs.org>
4076
4077         * http.c (gethttp): Handle multiple WWW-Authentication headers,
4078         only one of which is recognized.  Those are sent by IIS with NTLM
4079         authorization.
4080         (create_authorization_line): Propagate information whether
4081         authorization is finished.
4082         (gethttp): Only stop authorization when it's really finished, not
4083         after fixed two steps.
4084
4085 2005-04-21  Hrvoje Niksic  <hniksic@xemacs.org>
4086
4087         * gen_sslfunc.c (ssl_init): Fix warning message text; mark the
4088         message as translatable.
4089
4090 2005-04-21  Hrvoje Niksic  <hniksic@xemacs.org>
4091
4092         * main.c (print_help): Print the EGD option outside the cluster of
4093         SSL options.
4094
4095 2005-04-21  Hrvoje Niksic  <hniksic@xemacs.org>
4096
4097         * http-ntlm.c (ntlm_output): Fix setting the domain.
4098         Suggested by Sami Krank.
4099
4100 2005-04-20  Mauro Tortonesi  <mauro@ferrara.linux.it>
4101
4102         * connect.c: Set IPV6_V6ONLY socket option when -6 switch is used.
4103
4104 2005-04-20  FUJISHIMA Satsuki  <sf@FreeBSD.org>
4105
4106         * http.c (request_set_header): Fix the check whether a new header
4107         needs to be allocated.
4108
4109 2005-04-18  Hrvoje Niksic  <hniksic@xemacs.org>
4110
4111         * utils.c (base64_encode): Use the parameter order that makes more
4112         sense.  Return the length of the base64 written.  Updated all
4113         callers.
4114
4115 2005-04-17  Hrvoje Niksic  <hniksic@xemacs.org>
4116
4117         * http.c (request_set_header): Free NAME when VALUE is NULL and
4118         freeing the header name is requested.
4119
4120 2005-04-17  Hrvoje Niksic  <hniksic@xemacs.org>
4121
4122         * snprintf.c (fmtstr): Declare VALUE as const char *.
4123         Based on patch by Russ Allbery.
4124
4125 2005-04-17  Hrvoje Niksic  <hniksic@xemacs.org>
4126
4127         * snprintf.c (fmtfp): More correct handling of significant digit
4128         count with %g -- 0.002 has one significant digit, not three.
4129
4130 2005-04-16  Hrvoje Niksic  <hniksic@xemacs.org>
4131
4132         * retr.c (fd_read_body): Respect read timeout with non-interactive
4133         or no progress gauge -- treat ETIMEDOUT specially only when
4134         progress_interactive.
4135         Reported by FUJISHIMA Satsuki.
4136
4137 2005-04-16  FUJISHIMA Satsuki  <sf@FreeBSD.org>
4138
4139         * http.c (gethttp): Don't use HTTP/1.0 persistent connections over
4140         proxy.
4141
4142 2005-04-16  Hrvoje Niksic  <hniksic@xemacs.org>
4143
4144         * snprintf.c: Use the PARAMS macro to handle prototypes.  Write
4145         function definitions in the ansi2knr-friendly way.
4146         (fmtstr): If string precision is specified, don't read VALUE past
4147         it.
4148         (dopr): Actually print %g and %e formats.
4149         (fmtfp): Fix a bug that caused 0.01 to be printed as 0.1.
4150         (fmtfp): Use LLONG in floating point conversions to be able to
4151         convert more digits.
4152         (fmtfp): Interpret precision as number of significant digits with
4153         %g.
4154         (fmtfp): Omit trailing decimal zeros with %g.
4155
4156         * snprintf.c: Don't include <ctype.h> because none of it is used.
4157         Include strings.h/string.h, as per Autoconf.
4158
4159 2005-04-15  Hrvoje Niksic  <hniksic@xemacs.org>
4160
4161         * ptimer.c: Use _POSIX_TIMERS - 0 > 0, which handles the case when
4162         _POSIX_TIMERS is defined but empty, as well as the case when it is
4163         undefined.  Do the same with the check for _POSIX_MONOTONIC_CLOCK.
4164         Suggested by Larry Jones.
4165
4166 2005-04-15  Hrvoje Niksic  <hniksic@xemacs.org>
4167
4168         * ptimer.c: Check that _POSIX_TIMERS is defined as well as > 0.
4169         Problem reported by Steven M. Schweda.
4170
4171 2005-04-14  Hrvoje Niksic  <hniksic@xemacs.org>
4172
4173         * http.c (skip_short_body): Print the skipped body data in debug
4174         mode.
4175         (skip_short_body): Don't skip more than 4k of body data.
4176         (skip_short_body): Return whether the skipping was successful.
4177         (gethttp): If skip_short_body failed, invalidate the connection.
4178
4179 2005-04-12  Gisle Vanem  <giva@bgnett.no>
4180
4181         * ftp.c (getftp): Ditto.
4182
4183         * http.c (gethttp): Open the output file in binary mode.
4184
4185 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
4186
4187         * hash.c: Conditionalize including config.h on HAVE_CONFIG_H
4188         instead of on STANDALONE.
4189
4190 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
4191
4192         * gen_sslfunc.c (ssl_print_errors): Made static.
4193         (ssl_print_errors): Eliminate potentially dangerous fixed-size
4194         error buffer.  Passing NULL to ERR_error_string causes it to use
4195         its own static buffer, which is fine for our purposes.
4196
4197         * gen_sslfunc.c: Include gen_sslfunc.h.  Make the declarations of
4198         ssl_init and ssl_conect match the actual definitions.
4199         (ssl_connect): Simply return a boolean, the SSL context is no
4200         longer useful as a return value.
4201
4202         * retr.c: Don't include SSL headers; we don't need them.
4203
4204 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
4205
4206         * config-post.h: Don't define _VA_LIST under Solaris; it breaks
4207         compilation with GCC 3.4 under Solaris 10.  (It was defined to
4208         avoid a warning with previous versions of GCC.)
4209
4210 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
4211
4212         * xmalloc.c (register_ptr): Warn the user to increase SZ prior to
4213         aborting.
4214
4215 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
4216
4217         * convert.c (convert_cleanup): Free converted_files.
4218
4219 2005-04-10  Hrvoje Niksic  <hniksic@xemacs.org>
4220
4221         * wget.h (DEBUGP): Use __builtin_expect to give a hint to GCC that
4222         opt.debug is false in the vast majority of cases.
4223
4224 2005-04-10  Hrvoje Niksic  <hniksic@xemacs.org>
4225
4226         * config-post.h: Declare alloca as void *, not char *.
4227
4228 2005-04-09  Hrvoje Niksic  <hniksic@xemacs.org>
4229
4230         * recur.c (download_child_p): When -p is used, (temporarily)
4231         ignore accept/reject rules for HTMLs, even when they are at the
4232         maximum recursion depth.  That is because with -p we are, if
4233         necessary, overstepping the max. depth to get the requisites.
4234
4235 2004-06-12  Larry Jones <lawrence.jones@ugsplm.com>
4236
4237         * recur.c (download_child_p): Correct the logic in check number 6:
4238         test opt.reclevel (not DEPTH) against INFINITE_RECURSION.
4239
4240 2005-04-09  Hrvoje Niksic  <hniksic@xemacs.org>
4241
4242         * url.c: Use "static const" in preference to "const static".
4243         Sun's cc warns that "storage class after type is obsolescent".
4244
4245         * url.c (urlchr_table): Don't mark ~ as unsafe, too many broken
4246         web sites are confused when ~ is changed to %7E.  Their servers
4247         redirect /%7Efoo/ to /~foo/, which Wget again accesses using %7E,
4248         causing further redirections, therefore looping infinitely.  See
4249         Debian bug #301624 for an example.
4250
4251 2005-04-09  Hrvoje Niksic  <hniksic@xemacs.org>
4252
4253         * alloca.c: Include wget.h to be able to use xmalloc.  In addition
4254         to defining malloc to xmalloc, also define free to xfree.
4255
4256 2005-04-09  Hrvoje Niksic  <hniksic@xemacs.org>
4257
4258         * http-ntlm.c (ntlm_output): Use "char", not "unsigned char" for
4259         ntlmbuf.  Our base64 functions accept char anyway.
4260         (ntlm_output): Join up the format string, since we nominally
4261         support K&R compilers.
4262         (ntlm_output): Ditto.
4263
4264 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
4265
4266         * ptimer.c: Use Windows timers under Cygwin, whose POSIX timer
4267         implementation is incomplete.
4268
4269 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
4270
4271         * ptimer.c (struct ptimer): Remove the unused initialized field.
4272
4273         * ptimer.c: Renamed function parameters from WT (which used to
4274         stand for wget_timer or wtimer) to PT.
4275
4276 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
4277
4278         * ptimer.c (posix_init): Be smarter about choosing clocks.  In
4279         decreasing order of preference, use CLOCK_MONOTONIC,
4280         CLOCK_HIGHRES, and CLOCK_REALTIME.
4281         (ptimer_allocate): Removed.
4282
4283         * ptimer.c: Refactor the code by cleanly separating the
4284         architecture-dependent code from the architecture-independent
4285         code.
4286
4287 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
4288
4289         * ptimer.c (ptimer_init): Explicitly check that
4290         _POSIX_MONOTONIC_CLOCK is *both* defined and >=0.  (Undefined
4291         symbols are >=0.)
4292
4293 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
4294
4295         * ptimer.c (ptimer_diff): Fix typo affecting Windows build.
4296
4297 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
4298
4299         * ptimer.c (ptimer_init): In fact, _POSIX_MONOTONIC_CLOCK needs to
4300         be >= 0.
4301
4302         * ptimer.c (ptimer_init): Check whether _POSIX_MONOTONIC_CLOCK is
4303         defined instead of whether it's greater than 0.  glibc defines it
4304         to 0, but still makes it available via sysconf.
4305
4306 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
4307
4308         * mswindows.c (str_to_int64): Rename OVERFLOW and UNDERFLOW to
4309         INT64_OVERFLOW and INT64_UNDERFLOW, since those names are used.
4310
4311 2005-04-07  Hrvoje Niksic  <hniksic@xemacs.org>
4312
4313         * ptimer.c: New file.  Move the "wtimer" functions from utils.c to
4314         this file and rename them to ptimer_.
4315
4316 2005-04-07  Hrvoje Niksic  <hniksic@xemacs.org>
4317
4318         * host.c (NO_ADDRESS): Define NO_ADDRESS only after the system
4319         headers have been included.
4320
4321 2005-04-06  Hrvoje Niksic  <hniksic@xemacs.org>
4322
4323         * http.c (pconn): Include NTLM data, which is per-connection.
4324         (known_authentication_scheme_p): Recognize NTLM authorization.
4325         (create_authorization_line): Call ntlm_input and ntlm_output.
4326
4327         * http-ntlm.c: New file, donated by Daniel Stenberg and originally
4328         written for curl, heavily modified for Wget.
4329
4330         * utils.c (base64_encode): Relocated from http.c, since it is now
4331         used by http-ntlm.c, and will possibly be used elsewhere.
4332         (base64_decode): New function, originally based on code from GNU
4333         recode.
4334
4335 2005-04-02  Hrvoje Niksic  <hniksic@xemacs.org>
4336
4337         * ftp.c (ftp_loop): Ditto.
4338
4339         * ftp-basic.c (ftp_pasv): Use the xzero shorthand for memset(0).
4340         (ftp_lpsv): Ditto.
4341
4342 2005-04-05  Mauro Tortonesi  <mauro@ferrara.linux.it>
4343
4344         * Makefile.in: removed string_t.c from list of source files.
4345
4346 2005-04-04  Mauro Tortonesi  <mauro@ferrara.linux.it>
4347
4348         * string_t.c: Removed.
4349
4350         * string_t.h: Removed.
4351
4352 2005-04-02  Hrvoje Niksic  <hniksic@xemacs.org>
4353
4354         * url.c (rewrite_shorthand_url): Only accept recognized schemes.
4355         That way "foo:80" will correctly be rewritten to "http://foo:80"
4356         instead of left unchanged and ultimately rejected because of
4357         "unsupported scheme foo".
4358
4359 2005-03-31  Hrvoje Niksic  <hniksic@xemacs.org>
4360
4361         * utils.c (number_to_string): Avoid explicit 64-bit constants;
4362         construct them by multiplication at compile-time.
4363
4364         * utils.c, elsewhere: Don't append "L" to 32-bit integer
4365         constants; we aren't really compilable on 16-bit systems anyway.
4366
4367         * hash.c (prime_size): Remove primes larger than 2^31, but include
4368         2^31-1, which is prime.
4369
4370 2005-03-30  Hrvoje Niksic  <hniksic@xemacs.org>
4371
4372         * utils.c (string_set_to_array): New function.
4373
4374         * convert.c: Replace the use of "slists" with sets/hash-tables,
4375         which in fact suit the intended purpose much better.
4376         downloaded_html_list is removed altogether.
4377
4378 2005-03-29  Hrvoje Niksic  <hniksic@xemacs.org>
4379
4380         * ftp.h (enum): Rename GLOBALL, GETALL, and GETONE to
4381         GLOB_GLOBALL, GLOB_GETALL, and GLOB_GETONE to avoid conflict with
4382         Linux headers.
4383
4384 2005-03-29  Hrvoje Niksic  <hniksic@xemacs.org>
4385
4386         * utils.c (numdigit): More correct handling of negative numbers.
4387
4388 2005-03-21  Hrvoje Niksic  <hniksic@xemacs.org>
4389
4390         * http.c (gethttp): Print the human-readable size.
4391
4392         * ftp.c (getftp): Print the human-readable size of the file to be
4393         downloaded.
4394
4395         * utils.c (human_readable): New function.
4396
4397         * utils.c: Renamed "legible" to "with_thousand_seps",
4398         "legible_large_int" to "with_thousand_seps_large", and "legible_1"
4399         to "add_thousand_seps".
4400
4401 2005-03-21  Hrvoje Niksic  <hniksic@xemacs.org>
4402
4403         * http.c (gethttp): Inhibit persistent connections when talking to
4404         proxies, as mandated by RFC 2068.
4405
4406 2005-03-20  Hrvoje Niksic  <hniksic@xemacs.org>
4407
4408         * url.c (unescape_single_char): New function.
4409         (url_escape_dir): Use it to unescape slashes in directory
4410         components.
4411         (url_string): Escape unsafe chars in host name, except for the ':'
4412         charaters, which can appear in IPv6 addresses.
4413
4414         * main.c (main): Don't access the cookie jar directly.
4415
4416         * log.c (escnonprint_internal): Correctly calculate the needed
4417         string size.  Don't forget the buffer's new size after having
4418         reallocated it.
4419         (log_cleanup): New function.  Free the escnonprint ring data.
4420
4421         * init.c (cleanup): Don't free the cookie jar explicitly, it is
4422         now done by http_cleanup.
4423         (cleanup): opt.user_headers is now a vector, free it with
4424         free_vec.
4425
4426         * http.c (gethttp): Make sure to free the request data, the status
4427         message, and the response data before returning from the function.
4428         (save_cookies): New function.
4429         (http_cleanup): Free the cookie jar here.
4430
4431         * hash.c: Renamed string_hash to hash_string and ptrhash to
4432         hash_pointer.  Exported hash_pointer.
4433
4434         * xmalloc.c: Organized malloc_table (previously malloc_debug) as a
4435         simple EQ hash table.  register_ptr and unregister_ptr are now of
4436         O(1) complexity.
4437
4438         * xmalloc.c: Renamed "*_debug" to debugging_* and "*_real" to
4439         checking_*.
4440
4441 2005-03-12  Hrvoje Niksic  <hniksic@xemacs.org>
4442
4443         * utils.c (debug_test_md5): Moved to gen-md5.c.
4444
4445         * mswindows.h: Don't declare inet_ntop, since we don't use it.
4446
4447         * mswindows.h: For consistency, also wrap closesocket, it being
4448         a Winsock call.
4449
4450         * mswindows.h: Don't declare sleep and usleep; we're defining
4451         xsleep now.
4452
4453         * mswindows.h (mkdir): Don't special-case Borland C, _mkdir
4454         works there as well.
4455
4456         * host.c: Don't include winsock header files; the correct ones
4457         are already included by mswindows.h.
4458
4459         * mswindows.c (xsleep): Round toward the nearest millisecond
4460         in an attempt to avoid average short sleeps.
4461
4462         * utils.c (wtimer_granularity): Report correct values for
4463         Windows timers and for high-resolution timers.
4464
4465         * utils.c (wtimer_initialize_once): New function, called to
4466         initialize the timer frequency.
4467
4468         * utils.c: Replace the use of GetSystemTime with high-resolution
4469         counters under Windows.  When high-resolution counters are
4470         unavailable, use GetTickCount().
4471
4472 2005-03-15  Hrvoje Niksic  <hniksic@xemacs.org>
4473
4474         * retr.c (fd_read_body): Undo the 2004-11-18 change.  Instead,
4475         always be "exact".
4476
4477 2005-03-17  Hrvoje Niksic  <hniksic@xemacs.org>
4478
4479         * ftp-basic.c (ftp_login): Don't free the string if ftp_response
4480         returned an error status because the line didn't get allocated in
4481         the first place.
4482
4483 2005-03-15  Hrvoje Niksic  <hniksic@xemacs.org>
4484
4485         * http.c (read_http_response_head): Limit the response size to 64k
4486         bytes.
4487
4488         * retr.c (fd_read_hunk): Accept a MAXSIZE argument that limits the
4489         number of bytes the function is allowed to allocate.
4490         (fd_read_line): Limit the line to 4096 bytes.
4491
4492 2005-03-12  Hrvoje Niksic  <hniksic@xemacs.org>
4493
4494         * wget.h: Include options.h after wgint has been defined.
4495
4496         * options.h (struct options): Declare options processed with
4497         cmd_bytes as wgint, not long.
4498
4499 2005-03-18  Hrvoje Niksic  <hniksic@xemacs.org>
4500
4501         * init.c (cmd_file): Use concat_strings.
4502
4503         * http.c (basic_authentication_encode): Use concat_strings.
4504
4505         * ftp-ls.c (ftp_index): Use concat_strings.
4506
4507         * ftp-basic.c (ftp_request): Use concat_strings.
4508
4509         * utils.c (concat_strings): New function.
4510
4511 2005-03-12  Hrvoje Niksic  <hniksic@xemacs.org>
4512
4513         * init.c (simple_atof): Handle negative numbers; skip whitespace
4514         before the number.
4515         (simple_atoi): Ditto.  Also, check for overflow and underflow.
4516         (cmd_number): Bail out on negative numbers.
4517         (parse_bytes_helper): Ditto.
4518
4519 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
4520
4521         * http.c (gethttp): Handle multiple Set-Cookie headers sent by
4522         remote server.
4523
4524 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
4525
4526         * init.c (defaults): Use passive FTP by default.
4527
4528 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
4529
4530         * mswindows.c: Provide wrappers to Winsock functions that set
4531         errno to WSAGetLastError() in case of failure.  Also provide a
4532         Windows-specific version of strerror.
4533
4534         * mswindows.h: Wrap calls to socket, bind, connect, recv, send,
4535         select, getsockname, getpeername, and setsockopt.
4536
4537 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
4538
4539         * url.c (url_parse): Reject port numbers larger than 65535.  We
4540         also check for overflow while parsing port numbers.
4541
4542 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
4543
4544         * utils.c (read_file): Don't use wgint for file size; LFS won't
4545         work since the file is mmap'ed as a whole.
4546
4547         * options.h: Don't include stdio.h.
4548
4549         * log.c: Ditto.
4550
4551         * init.c: Disambiguate assignment from non-zero test to avoid
4552         Borland C warning.
4553
4554         * http.c (response_new): Don't needlessly post-increment count.
4555
4556         * hash.c: Include stdio.h.
4557
4558         * gnu-md5.h: Don't include stdio.h.
4559
4560         * getopt.h (struct option): Always use const.
4561
4562         * ftp.c (getftp): Avoid unnecessary assignment to RES to avoid
4563         Borland C warning.
4564
4565         * ftp-ls.c: Disambiguate assignment from non-zero test to avoid
4566         Borland C warning.
4567
4568         * cmpt.c (strptime_internal): Don't initialize rp_backup when
4569         !_NL_CURRENT to avoid Borland C warning.
4570
4571 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
4572
4573         * utils.c (fopen_excl): Fix parse error when O_BINARY is
4574         available.
4575
4576 2005-03-05  Hrvoje Niksic  <hniksic@xemacs.org>
4577
4578         * url.c (url_file_name): Don't allow hosts named ".." to be
4579         appended as path elements.
4580
4581 2005-03-03  Hrvoje Niksic  <hniksic@xemacs.org>
4582
4583         * retr.c (retrieve_url): Escape location header.
4584
4585         * http.c (print_server_response_1): Escape server response when
4586         printing it.
4587         (gethttp): Escape host name, status message, location header, and
4588         content type.
4589         (http_loop): Escape error message from server.
4590
4591         * host.c (lookup_host): Escape host name when printing it.
4592
4593         * ftp.c (getftp): Escape user name when printing it.
4594         (getftp): Escape remote file and directory for printing.
4595         (getftp): Escape server listing when printing it.
4596         (ftp_retrieve_list): Escape link name and file name.
4597         (ftp_retrieve_glob): Escape file name.
4598
4599         * ftp-basic.c (ftp_response): Escape server response when printing
4600         it.
4601
4602         * cookies.c (parse_set_cookies): Escape the cookie field when
4603         printing it.
4604         (parse_set_cookies): Escape contents of remote header.
4605         (cookie_handle_set_cookie): Escape host name and cookie domain.
4606
4607         * connect.c (connect_to_ip): Escape the host name.
4608
4609         * log.c (escnonprint): New function, used for printing strings
4610         coming from the server that possibly contain non-ASCII characters.
4611         (escnonprint_uri): Ditto.
4612
4613 2005-02-24  Hrvoje Niksic  <hniksic@xemacs.org>
4614
4615         * ftp.c (getftp): Ditto.
4616
4617         * http.c (gethttp): When we're not supposed to overwrite files,
4618         use fopen_excl to open the file and recompute the file name.
4619
4620         * log.c (redirect_output): Use unique_create to avoid a race
4621         condition.
4622
4623         * mswindows.c (fake_fork_child): Use unique_create.
4624
4625         * utils.c (fopen_excl): New function that opens a stdio stream
4626         with the O_EXCL flag (where available).
4627         (unique_create): New function, like unique_name, but also creating
4628         the file and returning a file pointer.
4629         (fork_to_background): Use unique_create to create the file
4630         immediately to avoid race condition with multiple instances of
4631         wget -b.
4632
4633 2005-02-24  Hrvoje Niksic  <hniksic@xemacs.org>
4634
4635         * host.c (lookup_host): Test for AI_ADDRCONFIG directly, instead
4636         of checking for HAVE_GETADDRINFO_AI_ADDRCONFIG.
4637
4638 2005-02-23  Hrvoje Niksic  <hniksic@xemacs.org>
4639
4640         * host.c (is_valid_ipv6_address): Move here from url.c.
4641         (lookup_host): If the address is numeric, don't print the
4642         "resolving..." line, don't set up DNS timeouts, and set the
4643         AI_NUMERICHOST hint, where available.
4644
4645 2005-02-26  Gisle Vanem  <giva@bgnett.no>
4646
4647         * utils.c: Use the nnnLL syntax under GCC.  Define struct_stat to
4648         struct _stati64 under __MINGW32__ as well as under MS VC.
4649
4650 2005-02-26  Hrvoje Niksic  <hniksic@xemacs.org>
4651
4652         * utils.c: Use the nnnI64 syntax for __int64 constants under all
4653         Windows compilers.
4654         (SPRINTF_WGINT): Use "%I64" under all Windows compilers.
4655
4656         * mswindows.h (WGINT_MAX): Use the nnnI64 syntax for
4657         __int64 constants under all Windows compilers.
4658         (struct_stat): Use `struct stati64' under Borland C.
4659         (fstat): Don't redefine to _fstati64 under Borland.
4660
4661         * mswindows.c: Define str_to_int64 under Borland C as well as
4662         under (older) Visual C.
4663
4664 2005-02-25  Hrvoje Niksic  <hniksic@xemacs.org>
4665
4666         * ftp.c (getftp): Initialize err to suppress compiler warning.
4667
4668 2005-02-24  Hrvoje Niksic  <hniksic@xemacs.org>
4669
4670         * ftp.c (ftp_expected_bytes): Fix bug that caused infloop because
4671         of not correctly skipping the '(' character.
4672
4673 2005-02-24  Hrvoje Niksic  <hniksic@xemacs.org>
4674
4675         * mswindows.c (wget_ftello): Removed.
4676
4677         * mswindows.h: Remove bogus definition of stat.
4678         (wget_ftello): Remove the leftover ftello replacement.
4679
4680 2005-02-20  Hrvoje Niksic  <hniksic@xemacs.org>
4681
4682         * mswindows.c (wget_ftello): Wget's replacement for ftello.
4683
4684         * utils.c (file_size): Use ftello where available.
4685
4686         * ftp-ls.c (ftp_parse_unix_ls): Use str_to_wgint to parse the file
4687         size.
4688         (ftp_parse_winnt_ls): Ditto.
4689
4690         * ftp-basic.c (ftp_size): Use str_to_wgint to convert number to
4691         wgint; pass 10 instead of 0 as the BASE argument.
4692
4693         * ftp.c (ftp_expected_bytes): Use str_to_wgint to parse the file
4694         size.
4695
4696         * sysdep.h (LARGE_INT_FMT): Use __int64 as LARGE_INT on
4697         MSVC/Windows; print it with "%I64".
4698
4699         * wget.h: Define a `wgint' type, normally aliased to (the possibly
4700         64-bit variant of) off_t.
4701
4702         * all: Use `wgint' instead of `long' for numeric variables that
4703         can hold file sizes.
4704
4705         * utils.c (number_to_string): Support printing of `wgint'
4706         argument.
4707         (number_to_static_string): New function.
4708
4709         * all: Replace printf("%ld", long_value) with printf("%s",
4710         number_to_static_string(wgint_value)).
4711
4712 2005-02-18  Mauro Tortonesi <mauro@ferrara.linux.it>
4713
4714         * main.c: Added the --ftp-passwd command line option.
4715
4716         * init.c: Renamed command passwd to ftppasswd.
4717
4718 2005-02-11  Mauro Tortonesi <mauro@ferrara.linux.it>
4719
4720         * string_t.c: Fixed a bug in do_escape and triggered escape of
4721         backslashes in string_escape to avoid ambiguities in the result
4722         string.
4723
4724 2005-02-10  Mauro Tortonesi <mauro@ferrara.linux.it>
4725
4726         * string.h: Renamed to string_t.h to fix a compilation conflict
4727         with the string.h header in the standard C library.
4728
4729         * string.c: Renamed to string_t.c for consistency with string.h.
4730
4731         * string_t.c: Ditto.
4732
4733         * string_t.h: Ditto.
4734
4735 2004-12-31  Mauro Tortonesi <mauro@ferrara.linux.it>
4736
4737         * string.c: New file.
4738
4739         * string.h: New file.
4740
4741         * Makefile.in: Added string.c to the list of modules to compile.
4742
4743         * main.c: Updated copyright.
4744
4745 2004-11-18  Ulf Harnhammar <ulf.harnhammar.9485@student.uu.se>
4746
4747         * ftp-ls.c: Fixed a problem in ftp_parse_winnt_ls that could allow a
4748         malicious remote FTP server to crash wget.
4749
4750 2004-11-18  Hans-Andreas Engel <engel@node.ch>
4751
4752         * http.c: Enable --convert-links (-k) when a single page is downloaded
4753         via --output-document (-O).
4754
4755 2004-11-18  Mauro Tortonesi <mauro@deepspace6.net>
4756
4757         * connect.c: Minor correction to the comment in front of fd_peek.
4758
4759 2004-11-18  Leonid Petrov <nouser@lpetrov.net>
4760
4761         * retr.c: Fix a timeout problem in fd_read_body when using http_proxy.
4762
4763 2004-11-15  YAMAZAKI Makoto <Yamazaki.Makoto@fujixerox.co.jp>
4764
4765         * netrc.c: Fix termination by assertion bug in netrc parsing.
4766
4767 2004-05-09  David Fritz  <zeroxdf@att.net>
4768
4769         * mswindows.c (fake_fork): Pass entire command line to the child
4770         process.
4771
4772 2004-03-31  Hrvoje Niksic  <hniksic@xemacs.org>
4773
4774         * http.c (gethttp): Fix typo: SCHEME_SSL -> SCHEME_HTTPS.
4775
4776 2004-03-30  Hrvoje Niksic  <hniksic@xemacs.org>
4777
4778         * http.c (gethttp): Send the Proxy-Authorization header over
4779         non-SSL connections too.
4780
4781 2004-03-25  David Fritz  <zeroxdf@att.net>
4782
4783         * mswindows.c (fake_fork_child): Ignore error code when
4784         OpenFileMapping() fails; assume it failed because the object does
4785         not exist.
4786
4787 2004-03-24  David Fritz  <zeroxdf@att.net>
4788
4789         * mswindows.c (fake_fork): New function.
4790
4791         * mswindows.c (fork_to_background): Use it.
4792
4793 2004-03-19  David Fritz  <zeroxdf@att.net>
4794
4795         * mswindows.c (ws_hangup): Incorporate old fork_to_background()
4796         code.  Add event name argument.
4797         (fork_to_backgorund): Now a simple wrapper around ws_hangup().
4798         (ws_handler): Correctly handle the case when neither CTRLC_BACKGND
4799         nor CTRLBREAK_BACKGND are defined.  Don't bother handling close,
4800         logoff, or shutdown events.  Call ws_hangup() with the correct
4801         event name; don't assume it was CTRL+Break.
4802
4803 2004-03-19  Hrvoje Niksic  <hniksic@xemacs.org>
4804
4805         * url.c (url_parse): Decode %HH sequences in host name.
4806
4807 2004-03-04  Hrvoje Niksic  <hniksic@xemacs.org>
4808
4809         * convert.c (local_quote_string): Quote "#" as "%23" and "%" as
4810         "%25" when creating links to local files.
4811
4812 2004-03-02  David Fritz  <zeroxdf@att.net>
4813
4814         * mswindows.c (ws_percenttitle): Guard against future changes by
4815         doing nothing if the proper variables have not been initialized.
4816         Clamp percentage value.
4817
4818 2004-03-04  Gisle Vanem  <giva@bgnett.no>
4819
4820         * retr.c (fd_read_body): Don't change console title if quiet.
4821
4822 2004-02-25  David Fritz  <zeroxdf@att.net>
4823
4824         * mswindows.c (set_sleep_mode): Remove argument and return value.
4825         Call GetModuleHandle() instead of LoadLibrary()/FreeLibrary() for
4826         kernel32.dll.  Use typedef for function-pointer.  Don't cast
4827         l-value.  Don't use dereference operator when calling through
4828         function-pointer.
4829         (ws_startup): Update call to set_sleep_mode().
4830         (ws_cleanup): Remove call to set_sleep_mode().
4831
4832 2004-02-23  David Fritz  <zeroxdf@att.net>
4833
4834         * http.c (http_loop): Ditto.
4835
4836         * ftp.c (ftp_loop_internal): Update call to ws_changetitle().
4837
4838         * main.c (main): Don't bother calling ws_changetitle().
4839
4840         * mswindows.h (ws_changetitle): Update prototype.
4841
4842         * mswindows.c (ws_changetitle): Remove second argument.  Use
4843         xfree_null().
4844         (ws_percenttitle): Only update title when percentage has changed.
4845
4846 2004-02-23  David Fritz  <zeroxdf@att.net>
4847
4848         * mswindows.h: Ditto.
4849
4850         * mswindows.c: Misc. formatting/comment tweaks throughout.
4851
4852 2004-02-20  David Fritz  <zeroxdf@att.net>
4853
4854         * main.c (print_help): Remove call to ws_help().
4855
4856         * mswindows.c (ws_help): Remove.
4857
4858         * mswindows.h (ws_help): Remove.
4859
4860 2004-02-16  David Fritz  <zeroxdf@att.net>
4861
4862         * init.c (home_dir): Use aprintf() instead of xmalloc()/sprintf().
4863         Under Windows, if $HOME is not defined, use the directory that
4864         contains the Wget binary instead of hard-coded `C:\'.
4865         (wgetrc_file_name): Under Windows, look for $HOME/.wgetrc then, if
4866         not found, look for wget.ini in the directory of the Wget binary.
4867
4868         * mswindows.c (ws_mypath): Employ slightly more robust methodology.
4869         Strip trailing path separator.
4870
4871 2004-02-06  Hrvoje Niksic  <hniksic@xemacs.org>
4872
4873         * http.c (gethttp): Respect --ignore-length.
4874         (gethttp): Inhibit keep-alive if --ignore-length is specified.
4875
4876 2004-02-06  Hrvoje Niksic  <hniksic@xemacs.org>
4877
4878         * connect.c (sockaddr_set_data): Zero out
4879         sockaddr_in/sockaddr_in6.  Apparently BSD-derived stacks need this
4880         when binding a socket to local address.
4881
4882 2004-02-04  Hrvoje Niksic  <hniksic@xemacs.org>
4883
4884         * hash.c: Make the file compilable outside Wget source tree when
4885         -DSTANDALONE is used.
4886
4887 2004-01-29  Hrvoje Niksic  <hniksic@xemacs.org>
4888
4889         * utils.c (determine_screen_width): Return 0 if not running on
4890         Windows or on a TIOCGWINSZ-capable system.
4891
4892 2004-01-28  David Fritz  <zeroxdf@att.net>
4893
4894         * utils.c (determine_screen_width): Correctly determine console
4895         width under Windows.
4896
4897 2004-01-28  Christian Biere  <christianbiere@gmx.de>
4898
4899         * progress.c (bar_set_params): Fixed syntax error when HAVE_ISATTY
4900         was undefined.
4901
4902         * ftp.c (ftp_loop_internal): Allocate a larger buffer in case
4903         "try" gets translated to something large.  Ditto in http_loop in
4904         http.c.
4905
4906         * http.c (response_header_copy): Don't write to buf[BUFSIZE].
4907
4908         * ftp-opie.c (skey_response): Eliminate unnecessary string
4909         concatenation; just call gen_md5_update twice.
4910
4911 2004-01-25  Hrvoje Niksic  <hniksic@xemacs.org>
4912
4913         * utils.c (xsleep): Don't call usleep with values larger than
4914         1,000,000.
4915
4916 2003-12-16  Hrvoje Niksic  <hniksic@xemacs.org>
4917
4918         * http.c (gethttp): Fix generation of `Content-Length'.
4919
4920 2003-12-15  Gisle Vanem  <giva@bgnett.no>
4921
4922         * url.c (url_skip_credentials): Fixed return value; 'url' if no
4923         credentials.
4924
4925 2003-12-14  Hrvoje Niksic  <hniksic@xemacs.org>
4926
4927         * url.c (url_skip_credentials): Return a pointer directly.
4928
4929 2003-12-14  Hrvoje Niksic  <hniksic@xemacs.org>
4930
4931         * url.c (url_file_name): Ditto.
4932         (parse_errors): Ditto.
4933
4934         * retr.c (retr_rate): Ditto.
4935
4936         * progress.c (create_image): Ditto.
4937
4938         * netrc.c (parse_netrc): Ditto.
4939
4940         * main.c (struct cmdline_option): Ditto.
4941         (redirect_output_signal): Ditto.
4942
4943         * init.c (commands): Ditto.
4944
4945         * ftp-ls.c (ftp_index): Ditto.
4946
4947         * cookies.c (check_domain_match): Declare the pointer to a literal
4948         string as `const'.
4949
4950 2003-12-12  Hrvoje Niksic  <hniksic@xemacs.org>
4951
4952         * retr.c (fd_read_body): Pass total size to progress_create, not
4953         the remaining amount.
4954
4955 2003-12-12  Hrvoje Niksic  <hniksic@xemacs.org>
4956
4957         * retr.c (fd_read_body): Don't fiddle with "interactive timeout"
4958         if read timeout is unset.
4959
4960 2003-12-12  Hrvoje Niksic  <hniksic@xemacs.org>
4961
4962         * connect.c (bind_local): Don't set the IPV6_V6ONLY option on the
4963         socket.
4964
4965 2003-12-06  Hrvoje Niksic  <hniksic@xemacs.org>
4966
4967         * url.c (url_file_name): Respect the setting of
4968         opt.protocol_directories.
4969
4970         * main.c (main): Only check for ret=='?' when longindex is unset.
4971         (option_data): New option --protocol-directories.
4972
4973 2003-12-06  Hrvoje Niksic  <hniksic@xemacs.org>
4974
4975         * ftp.c (getftp): Ditto.
4976
4977         * http.c (gethttp): Correctly calculate bandwidth as total data
4978         read divided with download time.
4979
4980         * retr.c (fd_read_body): Separate the return values for data
4981         written and read.
4982
4983 2003-12-05  Hrvoje Niksic  <hniksic@xemacs.org>
4984
4985         * http.c (H_REDIRECTED): Respect the HTTP/1.1 "303 See Other"
4986         response code.
4987         Suggested by Dan Razzell.
4988
4989 2003-11-30  Hrvoje Niksic  <hniksic@xemacs.org>
4990
4991         * retr.c (fd_read_body): Report the amount of data *written* as
4992         amount_read.  This is not entirely logical, but that's what the
4993         callers expect, and it's not easy to change.
4994
4995         * ftp.c (ftp_loop_internal): Ditto.
4996
4997         * http.c (http_loop): Be smarter about assigning restval; if we're
4998         in the nth pass of a download, simply use the information we have
4999         about how much data has been retrieved as restval.
5000
5001         * ftp.c (getftp): Ditto for FTP "REST" command.
5002
5003         * http.c (gethttp): When the server doesn't respect range, skip
5004         the first RESTVAL bytes of the read body.  Never truncate the
5005         output file.
5006
5007         * retr.c (fd_read_body): Support skipping initial STARTPOS octets.
5008
5009 2003-11-30  Hrvoje Niksic  <hniksic@xemacs.org>
5010
5011         * http.c (skip_short_body): Renamed skip_body to skip_short_body;
5012         don't bother calling fd_read_body.
5013
5014 2003-11-30  Hrvoje Niksic  <hniksic@xemacs.org>
5015
5016         * retr.c (fd_read_body): Sanitize arguments and document them
5017         better.  Make sure the timer is created and updated only if
5018         necessary.  Updated callers.
5019
5020 2003-11-30  Hrvoje Niksic  <hniksic@xemacs.org>
5021
5022         * http.c (skip_body): New function.
5023         (gethttp): Use it to skip the body of the responses we don't care
5024         to download.  That allows us to reuse the connection.
5025         (gethttp): Trust that the HEAD requests will not generate body
5026         data.
5027
5028         * retr.c (fd_read_body): Don't write to OUT if it's NULL.
5029
5030 2003-11-29  Hrvoje Niksic  <hniksic@xemacs.org>
5031
5032         * http.c (gethttp): Initialize SSL only the first time when SSL
5033         URL is downloaded.
5034
5035 2003-11-29  Hrvoje Niksic  <hniksic@xemacs.org>
5036
5037         * cookies.c (cookie_header): Only generate the contents of the
5038         header, not the leading "Cookie: " or the trailing "\r\n".
5039
5040         * http.c (gethttp): When adding headers specified with `--header',
5041         allow them to override the headers generated by Wget.
5042
5043         * init.c (cmd_spec_header): Made opt.user_headers a vector.
5044
5045         * http.c (request_new): New function.  Returns a request structure
5046         which can be modified in various ways, most notably by adding HTTP
5047         headers to the request.
5048         (request_set_header): New function for adding the header to the
5049         request.  If the header is already available, it gets replaced.
5050         (request_send): Construct and send the request.
5051         (gethttp): Use the request_* functions to generate the request.
5052
5053 2003-11-28  Hrvoje Niksic  <hniksic@xemacs.org>
5054
5055         * http.c (gethttp): Don't include the Proxy-Authorization header
5056         in the request tunneled through proxy.
5057
5058 2003-11-28  Hrvoje Niksic  <hniksic@xemacs.org>
5059
5060         * http.c (gethttp): Use the CONNECT handle to establish SSL
5061         passthrough through non-SSL proxies.
5062
5063 2003-11-28  Hrvoje Niksic  <hniksic@xemacs.org>
5064
5065         * init.c: Don't #include netinet/Winsock stuff.
5066
5067 2003-11-28  Hrvoje Niksic  <hniksic@xemacs.org>
5068
5069         * http.c: Deleted the old functions header_process,
5070         header_extract_number, header_exists, header_strdup,
5071         http_process_range, http_process_none, http_process_type, and
5072         http_process_connection.
5073
5074         * http.c (response_new): New function.
5075         (response_header_bounds): Ditto.
5076         (response_header_copy): Ditto.
5077         (response_header_strdup): Ditto.
5078         (response_status): Ditto.
5079         (gethttp): Use the new response_* functions to parse the response.
5080         Support HTTP/0.9 responses.
5081
5082 2003-11-27  Hrvoje Niksic  <hniksic@xemacs.org>
5083
5084         * progress.c (create_image): Don't calculate ETA if nothing has
5085         been downloaded yet, because it causes division by zero.
5086
5087 2003-11-27  Hrvoje Niksic  <hniksic@xemacs.org>
5088
5089         * connect.c (bind_local): Rename sa_len to addrlen because IRIX
5090         headers define sa_len as a macro.
5091
5092 2003-11-26  Hrvoje Niksic  <hniksic@xemacs.org>
5093
5094         * html-parse.c (convert_and_copy): Remove embedded newlines when
5095         AP_TRIM_BLANKS is specified.
5096
5097 2003-11-26  Hrvoje Niksic  <hniksic@xemacs.org>
5098
5099         * ftp.c: Set con->csock to -1 where rbuf_uninitialize was
5100         previously used.
5101
5102 2003-11-26  Hrvoje Niksic  <hniksic@xemacs.org>
5103
5104         * Makefile.in (http$o): Added the trailing backslash that was
5105         missing.
5106
5107 2003-11-21  Hrvoje Niksic  <hniksic@xemacs.org>
5108
5109         * headers.c: Removed.  The file is no longer relevant, now that no
5110         special handling of headers is done by the rbuf code.  Moved
5111         portions to http.c.
5112
5113 2003-11-21  Hrvoje Niksic  <hniksic@xemacs.org>
5114
5115         * rbuf.c: Removed.
5116
5117         * ftp-basic.c (ftp_response): Use fd_read_line.  No longer use
5118         struct rbuf.  Updated all callers.
5119
5120         * http.c (gethttp): Use fd_read_head to read all the headers in
5121         one go.
5122         (next_header): New function.
5123
5124         * retr.c (fd_read_line): New function: reads a line from FD,
5125         leaving the rest of the data unread.
5126         (fd_read_head): New function.
5127
5128         * connect.c (fd_peek): New function, implements peeking.
5129         (poll_internal): New function.
5130         (fd_read): Use it.
5131         (fd_write): Ditto.
5132         (fd_peek): Ditto.
5133         (fd_register_transport): Allow registering a "peeker" callback.
5134
5135 2003-11-20  Hrvoje Niksic  <hniksic@xemacs.org>
5136
5137         * connect.c: Renamed xread/xwrite/xclose to
5138         fd_read/fd_write/fd_close.  The "x" prefix is not appropriate
5139         because the semantics have diverged from read/write/close too
5140         significantly.  Updated all callers.
5141
5142 2003-11-20  Hrvoje Niksic  <hniksic@xemacs.org>
5143
5144         * connect.c (sock_write): It's not necessary to initialize RES.
5145
5146 2003-11-19  Hrvoje Niksic  <hniksic@xemacs.org>
5147
5148         * main.c (main): Don't reference opt.ipv4_only and opt.ipv6_only
5149         if IPv6 is disabled.
5150
5151 2003-11-19  Hrvoje Niksic  <hniksic@xemacs.org>
5152
5153         * connect.c (socket_has_inet6): Only compile it if IPv6 is enabled
5154         and AI_ADDRCONFIG is missing.
5155
5156 2003-11-18  Hrvoje Niksic  <hniksic@xemacs.org>
5157
5158         * gen_sslfunc.c (ssl_init_prng): Warn the user when using a weak
5159         random seed.
5160
5161 2003-11-18  Hrvoje Niksic  <hniksic@xemacs.org>
5162
5163         * host.c (address_list_contains): Renamed address_list_find to
5164         address_list_contains because its result is boolean.
5165
5166 2003-11-18  Hrvoje Niksic  <hniksic@xemacs.org>
5167
5168         * connect.c (select_fd): Return 1 if select is not available.
5169
5170 2003-11-17  Hrvoje Niksic  <hniksic@xemacs.org>
5171
5172         * connect.c (connect_to_host): Don't reference address list after
5173         releasing it.
5174
5175 2003-11-17  Hrvoje Niksic  <hniksic@xemacs.org>
5176
5177         * main.c (print_help): Fix alignment of FTP options output.
5178
5179 2003-11-17  Hrvoje Niksic  <hniksic@xemacs.org>
5180
5181         * host.c (lookup_host): Check for the ability to create IPv6
5182         sockets here.
5183
5184         * init.c (defaults): Don't auto-set --inet4-only on IPv6-less
5185         systems.
5186
5187 2003-11-16  Hrvoje Niksic  <hniksic@xemacs.org>
5188
5189         * main.c (print_help): Fix typo in `-O' help message.  Fix docs of
5190         -Y/--proxy.  Fix docs of `--cookies' and `--glob'.  Improve docs
5191         of --convert-links.  Fix docs of SSL options.
5192
5193 2003-11-16  Hrvoje Niksic  <hniksic@xemacs.org>
5194
5195         * ftp-basic.c: Don't include <arpa/inet.h> and others because
5196         they're no longer needed.
5197
5198 2003-11-16  Hrvoje Niksic  <hniksic@xemacs.org>
5199
5200         * main.c (main): Don't allow setting of both opt.ipv4_only and
5201         opt.ipv6_only.
5202
5203         * init.c (defaults): Mark opt.ipv4_only specially when set
5204         automatically.
5205
5206 2003-11-15  Hrvoje Niksic  <hniksic@xemacs.org>
5207
5208         * host.c (lookup_host): Use AI_ADDRCONFIG only if the family is
5209         unspecified.  This ensures that specifying `--no-inet4' on systems
5210         where IPv6 resolves, but doesn't work behaves the same regardless
5211         of the availability of AI_ADDRCONFIG.
5212
5213 2003-11-15  Hrvoje Niksic  <hniksic@xemacs.org>
5214
5215         * host.c: Don't refer to the now-removed function
5216         forget_host_lookup in the documentation of lookup_host.
5217
5218 2003-11-15  Hrvoje Niksic  <hniksic@xemacs.org>
5219
5220         * http.c (persistent_available_p): Correctly specify the endpoint
5221         argument to socket_ip_address.
5222         (gethttp): When printing the "reusing connection to..." message,
5223         specify the host name of the reused connection, not the current
5224         host name.  That makes more sense because it provides a useful
5225         piece of information -- we know to which host we're supposed to
5226         connect anyway!
5227
5228 2003-11-15  Hrvoje Niksic  <hniksic@xemacs.org>
5229
5230         * init.c: Make sure the options are in alphabetic order!
5231
5232         * host.c (lookup_host): Merge lookup_host_passive and lookup_host
5233         after all -- having both would result in some code duplication.
5234         (lookup_host): Set hints.ai_family to AF_INET if ipv4_only is
5235         requested.  Likewise, set it to AF_INET6 for ipv6_only.  Specify
5236         AI_ADDRCONFIG where available.
5237         (lookup_host): New flag LH_REFRESH that specifies that a cached
5238         entry for HOST should be refreshed.
5239         (cache_query): New function.
5240         (cache_store): Ditto.
5241         (cache_remove): Ditto.
5242         (forget_host_lookup): No longer necessary, replaced with static
5243         function cache_remove.
5244
5245 2003-11-14  Hrvoje Niksic  <hniksic@xemacs.org>
5246
5247         * main.c: Enable -4 and -6 only if IPv6 is enabled.
5248
5249 2003-11-14  Hrvoje Niksic  <hniksic@xemacs.org>
5250
5251         * connect.c (register_transport): Renamed from register_extended.
5252         Explain the intended usage.
5253
5254 2003-11-14  Hrvoje Niksic  <hniksic@xemacs.org>
5255
5256         * url.c (uri_merge): Merging "foo" and "bar" should result in
5257         "bar", not in "foo/bar".
5258         (path_simplify): Don't remove empty path elements; don't
5259         special-case leading slash.
5260         (path_simplify): Don't swallow ".."'s at the beginning of string.
5261         E.g. simplify "foo/../../bar" as "../bar", not as "bar".
5262         (append_uri_pathel): Defang ".." path element upon encountering
5263         it.
5264
5265 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
5266
5267         * http.c (persistent_available_p): Don't attempt to talk to two
5268         different SSL sites over the same secure connection.
5269
5270 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
5271
5272         * http.c (gethttp): Ditto.
5273
5274         * ftp.c (getftp): Use retryable_socket_connect_error instead of
5275         CONNECT_ERROR.
5276
5277         * wget.h (CONNECT_ERROR): Removed.
5278
5279         * connect.c (retryable_socket_connect_error): New function instead
5280         of unsupported_socket_family_error.
5281
5282 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
5283
5284         * wget.h (CONNECT_ERROR): Use it.
5285
5286         * connect.c (unsupported_socket_family_error): New function.
5287
5288 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
5289
5290         * connect.c (bind_local): Renamed bindport to bind_local; return
5291         the socket directly.  Updated callers.
5292         (accept_connection): Renamed acceptport to accept_connection;
5293         return the created socket directly.  Updated callers.
5294
5295 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
5296
5297         * init.c (defaults): Turn on opt.ipv4_only if we're compiling with
5298         IPv6, and AI_ADDRINFO is not available, and AF_INET6 sockets can't
5299         be created.
5300
5301 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
5302
5303         * host.c (lookup_host): Document the fact that the addresses are
5304         returned in order.
5305
5306 2003-11-12  Hrvoje Niksic  <hniksic@xemacs.org>
5307
5308         * utils.c: Use limits.h only where available.
5309
5310         * hash.c: Use INVALID_PTR and INVALID_PTR_BYTE.  Include limits.h.
5311
5312 2003-11-11  Hrvoje Niksic  <hniksic@xemacs.org>
5313
5314         * main.c: Added options --inet4-only and --inet6-only.
5315
5316 2003-11-11  Hrvoje Niksic  <hniksic@xemacs.org>
5317
5318         * host.c (host_errstr): Use the more standard message "Unknown
5319         host".
5320
5321 2003-11-10  Hrvoje Niksic  <hniksic@xemacs.org>
5322
5323         * connect.c (connect_to_host): Use that flag to decide whether to
5324         re-resolve the host name.
5325
5326         * host.c (struct address_list): Added a flag that maintains
5327         whether the connection worked at some point.
5328
5329 2003-11-10  Hrvoje Niksic  <hniksic@xemacs.org>
5330
5331         * host.c (lookup_host): Special-case the numeric addresses only in
5332         the non-IPv6 case.
5333
5334 2003-11-10  Hrvoje Niksic  <hniksic@xemacs.org>
5335
5336         * connect.c (resolve_bind_address): Call lookup_host_passive.
5337         Make sure that opt.bind_address is resolved only once.
5338
5339         * host.c (lookup_host_passive): New function, handles "passive"
5340         lookups.
5341         (lookup_host): Remove the passive flags.  Remove the
5342         family-related flags -- use ip_default_family instead.
5343
5344 2003-11-09  Hrvoje Niksic  <hniksic@xemacs.org>
5345
5346         * html-url.c: Get URLs from <object data="...">.
5347
5348 2003-11-09  Hrvoje Niksic  <hniksic@xemacs.org>
5349
5350         * main.c (option_data): Specify the command to use for --mirror.
5351
5352 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
5353
5354         * cookies.c (cookie_handle_set_cookie): Specify exact match for
5355         unspecified domains.
5356
5357 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
5358
5359         * main.c (main): Removed one-letter options `-C', `-g', `-G', and
5360         `-s'.
5361
5362 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
5363
5364         * main.c (main): Add --dont-remove-listing for backward
5365         compatibility with previous versions.
5366         (print_help): Fix typo, spotted by Dennis Smit.
5367
5368 2003-11-08  Gisle Vanem  <giva@bgnett.no>
5369
5370         * ftp-basic.c: Support Windows-2000 ftp servers. Win-2000 *is*
5371         Win-NT 5.0 so calling it ST_WINNT is okay I guess.
5372
5373 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
5374
5375         * progress.c (update_speed_ring): Clear the speed ring when the
5376         download stalls.
5377
5378         * retr.c (get_contents): Specify 0.95s read timeout, so that the
5379         progress gauge can be updated even when data arrives very slowly
5380         or stalls.
5381
5382 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
5383
5384         * utils.c (wtimer_allocate): Bless the use of wtimer_read on a
5385         timer that has merely been allocated because get_contents() does
5386         that.
5387         (wtimer_update): Abort if the timer is not initialized.
5388
5389 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
5390
5391         * retr.c (get_contents): Pass the timer to limit_bandwidth().
5392
5393         * utils.c (wtimer_update): New function instead of wget_elapsed;
5394         just update the timer, but don't return anything.
5395         (wtimer_read): Read and return the last known value of the timer.
5396
5397 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
5398
5399         * http.c (persistent_available_p): Instead of matching all the
5400         addresses of HOST and last host, determine the peer's IP address
5401         with socket_ip_address and see if that address is one of those
5402         HOST resolves to.
5403
5404         * host.c (address_list_match_all): Removed.
5405         (address_list_find): New function, finds an IP address in the
5406         address list.
5407
5408         * ftp.c (ftp_do_pasv): Get the peer's address here, and pass it to
5409         ftp_epsv so it doesn't need to call getpeername.
5410
5411         * ftp-basic.c (ftp_port): Use socket_ip_address instead of
5412         getpeername.
5413         (ftp_lprt): Ditto.
5414
5415         * connect.c (socket_ip_address): Replaces conaddr, generalized to
5416         either get peer's or local address.
5417         (sockaddr_get_data): Made local to this file.
5418
5419 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
5420
5421         * hash.c (HASH_POSITION): Explicitly accept the hash function.
5422         (grow_hash_table): Extract ht->hash_function outside the loop.
5423         (hash_table_remove): Ditto.
5424         (hash_table_clear): Fill entries with 0xff to clear them.
5425         (hash_table_remove): Mark entries as deleted with the correct
5426         marker.
5427
5428 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
5429
5430         * http.c (persistent_available_p): No reason for the host lookup
5431         to be silent -- it's a lookup like any other.
5432
5433 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
5434
5435         * connect.c (register_extended): Check that fd >= 0.
5436
5437 2003-11-07  Hrvoje Niksic  <hniksic@xemacs.org>
5438
5439         * connect.c (LAZY_RETRIEVE_INFO): Set LAST_INFO.
5440
5441 2003-11-07  Hrvoje Niksic  <hniksic@xemacs.org>
5442
5443         * hash.c (NON_EMPTY): Use the all-bit-set value as the marker that
5444         the field is empty.  This allows NULL pointer and 0 value to be
5445         used as keys, which is necessary for the connect.c code to work
5446         when fd==0.
5447         (hash_table_new): Fill mappings with 0xff.
5448         (grow_hash_table): Ditto.
5449
5450 2003-11-07  Hrvoje Niksic  <hniksic@xemacs.org>
5451
5452         * url.c (url_parse): Allow empty ports.
5453
5454 2003-11-07  Hrvoje Niksic  <hniksic@xemacs.org>
5455
5456         * main.c (print_help): Break the help string into multiple chunks.
5457         (cmdline_option): New option handler OPT_FUNCALL.  Generalized
5458         HANDLE_CMD to generic DATA.
5459         (option_data): Use the new OPT_FUNCALL feature.
5460
5461 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
5462
5463         * log.h: Declare log_init, log_close, and
5464         log_request_redirect_output here.
5465
5466 2003-11-05  Dennis Smit  <ds@nerds-incorporated.org>
5467
5468         * main.c: (main): added --preserve-permissions option.
5469
5470         * ftp.c (ftp_retrieve_list): added support for
5471         --preserve-permissions option.
5472
5473         * init.c: added support for --preserve-permission option.
5474
5475         * option.h: added support for --preserve-permission option.
5476
5477 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
5478
5479         * main.c (init_switches): New function.  Convert option_data to
5480         long_options and short_options, which can be fed to getopt_long.
5481         (main): Execute command-line options by consulting option_data.
5482
5483 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
5484
5485         * gen_sslfunc.c (ssl_read): Implement a more correct check for
5486         EINTR.
5487         (ssl_write): Ditto.
5488         (init_ssl): Use a global SSL context.
5489
5490 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
5491
5492         * connect.c (xclose): Free INFO even if it doesn't provide a
5493         closer.
5494
5495 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
5496
5497         * connect.c: Updated all callers of
5498         iread/ssl_iread/iwrite/ssl_iwrite to use xread and xwrite instead.
5499
5500         * rbuf.h (struct rbuf): Removed the SSL member because SSL is
5501         handled automatically by xread.
5502
5503         * hash.c (ptrhash): Made private.
5504         (ptrcmp): Ditto.
5505         (inthash): Removed.
5506
5507         * connect.c (select_fd): Don't set errno, leave it to the caller.
5508
5509         * gen_sslfunc.c (connect_ssl): Use register_extended to register
5510         SSL callbacks for communication with SSL-enabled endpoints.
5511         (ssl_read): New function.
5512         (ssl_write): Ditto.
5513         (ssl_poll): Ditto.
5514         (ssl_close): Ditto.
5515
5516         * connect.c (register_extended): New function -- register
5517         callbacks for basic socket operations.
5518         (xread): Ditto.
5519         (xwrite): Ditto.
5520         (xclose): Ditto.
5521         (sock_read): New function, default implementation for reading.
5522         (sock_write): Ditto for writing.
5523         (sock_poll): Ditto for polling.
5524         (sock_close): Ditto for closing.
5525
5526 2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
5527
5528         * connect.c (bindport): Fix compilation under pre-C99 compilers.
5529
5530 2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
5531
5532         * connect.c (connect_to_ip): More compact error checking.
5533         (bindport): Don't treat failed setsockopt as a fatal error.
5534
5535 2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
5536
5537         * connect.c (resolve_bind_address): Use a more accurate error
5538         message -- we're not binding to ANY, we're disabling bind
5539         altogether.
5540
5541 2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
5542
5543         * cookies.c (save_cookies_mapper): Respect the setting of
5544         keep-session-cookies.
5545         (cookie_jar_load): Import session cookies.
5546         Based on code submitted by Nicolas Schodet.
5547
5548         * utils.c (datetime_str): Use information in TM when it's
5549         non-NULL.
5550
5551         * main.c (main): New option `--keep-session-cookies'.
5552
5553 2003-11-04  Hrvoje Niksic  <hniksic@xemacs.org>
5554
5555         * Makefile.in (realclean): Delete config.h.in.
5556
5557 2003-11-04  Hrvoje Niksic  <hniksic@xemacs.org>
5558
5559         * config-post.h: New file, included from now autogenerated
5560         config.h.in.
5561
5562 2003-11-04  Hrvoje Niksic  <hniksic@xemacs.org>
5563
5564         * progress.c (progress_handle_sigwinch): Don't call
5565         determine_screen_width() from the signal handler.  Instead, just
5566         set a volatile variable.
5567         (bar_create): Check whether SIGWINCH was received.
5568         (bar_update): Ditto.
5569
5570         * sysdep.h: Define SYSTEM_FNMATCH only if HAVE_FNMATCH_H is true.
5571
5572 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
5573
5574         * utils.c (xsleep): New function.  Uses nanosleep where available,
5575         resuming sleeps interrupted by signals.  Updated callers of sleep
5576         and usleep to use xsleep.
5577
5578 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
5579
5580         * ftp-basic.c (ftp_login): Remove shadowing (and bogus)
5581         declaration of SEED.
5582
5583 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
5584
5585         * log.c (logvprintf): Documented better.  Renamed to
5586         log_vprintf_internal to avoid confusion with the public API
5587         functions logprintf and logputs.
5588
5589 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
5590
5591         * wget.h (N_): Don't parenthesize argument.
5592
5593 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
5594
5595         * host.h (ADDRESS_IPV4_DATA): Don't take the address of in.s_addr
5596         because that doesn't work on machines that define it as bitfield.
5597
5598 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
5599
5600         * connect.c (select_fd): Generalize the third argument into WAIT,
5601         so that the caller can request waiting for both read and write.
5602         Updated callers.
5603
5604 2003-11-02  Hrvoje Niksic  <hniksic@xemacs.org>
5605
5606         * html-url.c (cleanup_html_url): Destroy the hash tables, don't
5607         just call free on them.
5608         (init_interesting): Use hash_table_put instead of string_set_add
5609         because we don't need the strdup that the latter function
5610         performs.
5611
5612         * init.c (cleanup): Don't pass NULL to cookie_jar_delete.
5613
5614         * xmalloc.c (xfree_real): Abort when passed a NULL pointer.
5615         (xfree_debug): Print at the file and line of the offending call to
5616         free.
5617
5618 2003-11-02  Hrvoje Niksic  <hniksic@xemacs.org>
5619
5620         * wget.h: Retired the `boolean' type.  Moved the DEFAULT_LOGFILE
5621         define to log.h.  Moved the INFINITE_RECURSION define to recur.h.
5622
5623         * xmalloc.h: Renamed FREE_MAYBE to xfree_null and moved the
5624         definition from wget.h to xmalloc.h.
5625
5626 2003-11-02  Hrvoje Niksic  <hniksic@xemacs.org>
5627
5628         * html-parse.c (decode_entity): New function; split the decoding
5629         of entities here.
5630         (convert_and_copy): Use it to decode entities.
5631         (decode_entity): Handle the &apos entity.
5632         (decode_entity): Don't decode Latin 1 numeric entities.  Don't
5633         decode &#0.
5634
5635 2003-11-01  Hrvoje Niksic  <hniksic@xemacs.org>
5636
5637         * ftp-opie.c (calculate_skey_response): Use uint32_t instead of
5638         `unsigned long' for the cheksum array.  Document the function.
5639
5640 2003-11-01  Hrvoje Niksic  <hniksic@xemacs.org>
5641
5642         * connect.c (acceptport): Don't call select_fd when timeout is not
5643         requested.
5644
5645 2003-11-01  Hrvoje Niksic  <hniksic@xemacs.org>
5646
5647         * host.c: Removed the ip_default_family global variable.
5648
5649         * host.c (lookup_host): Document the function.  Fixed declaration
5650         of VEC.
5651
5652 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
5653
5654         * various: Use new macros xnew, xnew0, xnew_array, and xnew0_array
5655         in various places.
5656
5657 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
5658
5659         * wget.h: Move declarations of malloc and logging code to
5660         xmalloc.h and log.h respectively to unclutter this file.
5661         (STRDUP_ALLOCA): Made it side-effect free.
5662
5663         * xmalloc.h: New files.  Define macros xnew, xnew0, xnew_array,
5664         and xnew0_array.
5665
5666         * xmalloc.c: New file.  Move the xmalloc routines here.
5667
5668 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
5669
5670         * connect.c (sockaddr_set_data): Remove the broken code that
5671         checked for NULL address.
5672
5673 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
5674
5675         * host.c (address_list_from_single): Removed.
5676         (address_list_from_ipv4_addresses): Renamed from
5677         address_list_from_vector.
5678
5679 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
5680
5681         * sysdep.h (CLOSE): Don't call close on file descriptors less than
5682         0, i.e. on uncreated sockets.
5683
5684         * connect.c (resolve_bind_address): Work on struct sockaddr
5685         directly.
5686         (connect_to_host): Replacement for connect_to_many.  Resolve HOST
5687         and connect to any of its addresses.  If we can't connect and the
5688         host name lookup was cached, try to resolve it again.  This should
5689         fix problems with hosts behind dynamic DNS.  Updated all callers.
5690         (connect_to_ip): Replacement for connect_to_one.  Removed SILENT;
5691         added the argument PRINT instead.  Updated all callers.
5692         (set_connection_host_name): Removed.
5693
5694         * host.c (address_list_address_at): New function instead of
5695         address_list_copy_one. It returns a pointer to ip_address *, so
5696         it's not necessary to copy the data.
5697         (address_list_cached_p): New function.
5698         (forget_host_lookup): Ditto.
5699
5700         * connect.c: Got rid of the MSOCK global variable.  Made bindport
5701         return the local socket it creates.  Added a new argument to
5702         acceptport, the socket to call accept on.  Updated callers.
5703         (closeport): Removed.
5704
5705         * connect.c: Moved the sockaddr code from host.c to this file,
5706         because most of that stuff is used for connecting, and has nothing
5707         to do with host names anyway.
5708         (sockaddr_set_data, sockaddr_get_data): New functions, replace the
5709         old sockaddr_set_address, sockaddr_set_port, sockaddr_get_address,
5710         and sockaddr_get_port.
5711
5712 2003-10-30  Hrvoje Niksic  <hniksic@xemacs.org>
5713
5714         * sysdep.h: Use `S >= 8' rather than `S == 8' when looking for
5715         large integers.
5716
5717 2003-10-30  Hrvoje Niksic  <hniksic@xemacs.org>
5718
5719         * url.c (append_uri_pathel): New argument ESCAPED_P that says
5720         whether [B, E) is to be treated as URL-escaped or not.  If
5721         ESCAPED_P is false, don't unescape the region.
5722         (url_file_name): u->file is not URL-escaped.
5723
5724 2003-10-30  Hrvoje Niksic  <hniksic@xemacs.org>
5725
5726         * retr.c (retrieve_from_file): Use retrieve_tree for
5727         page-requisites.
5728
5729         * main.c (main): Don't define opt.recursive when -p is used.
5730         Instead, make sure that recursion is used for HTTP in that case.
5731
5732 2003-10-29  Hrvoje Niksic  <hniksic@xemacs.org>
5733
5734         * host.h: Defined accessors for elements of ip_address.  Updated
5735         all callers.
5736         (address_list_match_all): Use memcmp in the non-IPv6 case.
5737
5738         * wget.h (CONNECT_ERROR): Don't retry connecting if connect()
5739         returned EAFNOSUPPORT.
5740
5741 2003-10-27  Mauro Tortonesi <mauro@deepspace6.net>
5742
5743         * connect.h: changed bindport prototype and added the related
5744         BIND_ON_IPV4_ONLY and BIND_ON_IPV6_ONLY flags.
5745
5746         * connect.c: changed bindport and resolve_bind_address to allow
5747         protocol-version specific DNS resolution. modified conaddr,
5748         acceptport and connect_to_one to make use of struct
5749         sockaddr_storage and of the new ip_address structure.
5750
5751         * ftp-basic.c: added LPRT/LPSV (RFC1639) support, refactored
5752         PORT/PASV (RFC959) and EPRT/EPSV (RFC2428) support code.
5753
5754         * ftp.c: added the ftp_do_port and ftp_do_pasv functions to
5755         handle FTP over IPv6.
5756
5757         * ftp.h: changed prototype of ftp_epsv and added prototypes for
5758         ftp_lpsv, ftp_lprt and ftp_eprt.
5759
5760         * host.c: renamed the
5761         wget_sockaddr_set_address and wget_sockaddr_get_addr, and
5762         wget_sockaddr_{s,g}et_port couples to sockaddr_{s,g}et_address and
5763         sockaddr_{g,s}et_port respectively.  changed
5764         address_list_match_all, address_list_from_addrinfo sockaddr_len,
5765         pretty_print_address, lookup_host, sockaddr_{s,g}et_address and
5766         sockaddr_{g,s}et_port to make use of struct sockaddr_storage and
5767         of the new ip_address structure.  removed map_ipv4_to_ip and
5768         map_ip_to_ipv4.
5769
5770         * host.h: redefined structure ip_address and removed structure
5771         wget_sockaddr.
5772
5773 2003-10-26  Hrvoje Niksic  <hniksic@xemacs.org>
5774
5775         * sysdep.h: Include inttypes.h where available.
5776
5777         * host.c: Switch from u_int32_t to uint32_t.
5778
5779 2003-10-26  Hrvoje Niksic  <hniksic@xemacs.org>
5780
5781         * netrc.c (parse_netrc): Reset the QUOTE flag after the closing
5782         quote.
5783
5784 2003-10-25  Hrvoje Niksic  <hniksic@xemacs.org>
5785
5786         * url.c (is_valid_ipv6_address): Reformat to GNU coding style.
5787         Use enums for NS_IN* constants.  Use ISXDIGIT.
5788
5789         * convert.c (construct_relative): Document better how the function
5790         works.
5791
5792 2003-10-23  Hrvoje Niksic  <hniksic@xemacs.org>
5793
5794         * config.h.in: Deploy preprocessor magic to avoid Ultrix's
5795         <netdb.h> include <bitypes.h> which defines its own u_int32_t.
5796         Reported by Bernhard Simon.
5797
5798 2003-10-23  Hrvoje Niksic  <hniksic@xemacs.org>
5799
5800         * version.c: Bump version.
5801
5802 2003-10-23  Hrvoje Niksic  <hniksic@xemacs.org>
5803
5804         * url.c: Ditto.
5805
5806         * html-parse.c (advance_declaration): Don't use trailing comma in
5807         enum because older compilers don't support it.
5808
5809         * utils.c: Don't redefine HAVE_SIGSETJMP.
5810
5811 2003-10-16  Hrvoje Niksic  <hniksic@xemacs.org>
5812
5813         * convert.c (construct_relative): Don't handle absolute files
5814         specially -- for example, -P/tmp/foo shouldn't imply that
5815         converted files must refer to "/tmp/foo/..."!
5816
5817 2003-10-15  Hrvoje Niksic  <hniksic@xemacs.org>
5818
5819         * http.c: Consider status 307 a valid redirect.
5820
5821 2003-10-15  Philip Stadermann  <philip.stadermann@credativ.de>
5822
5823         * ftp.c (ftp_retrieve_glob): Correctly loop through the list whose
5824         elements might have been deleted.
5825
5826 2003-10-13  Hrvoje Niksic  <hniksic@xemacs.org>
5827
5828         * html-url.c (tag_handle_meta): Set the Refresh link to expect
5829         HTML.
5830         (append_one_url): Renamed to append_url.
5831
5832 2003-10-13  Hrvoje Niksic  <hniksic@xemacs.org>
5833
5834         * sysdep.h: Only define u_int32_t.
5835
5836 2003-10-11  Hrvoje Niksic  <hniksic@xemacs.org>
5837
5838         * utils.c (large_int_to_string): Use snprintf() to print the
5839         number.  This will work even on systems where libc doesn't
5840         understand %lld, but the compiler does, because it will use our
5841         snprintf replacement.
5842
5843         * init.c (parse_bytes_helper): New function.
5844         (cmd_bytes): Use it to parse bytes, but cast the result to long.
5845         (cmd_bytes_large): Ditto, but store the result to LARGE_INT.  Used
5846         for --quota so that --quota=10G works even on machines without
5847         long long.
5848
5849         * options.h (struct options): Declare quota as LARGE_INT.
5850
5851         * retr.c (downloaded_exceeds_quota): Removed.
5852         (downloaded_increase): Ditto.
5853         (total_downloaded_bytes): New variable, replaces opt.downloaded,
5854         which was the wrong place for it anyway.  Updated callers of
5855         downloaded_exceeds_quota and downloaded_increase to check this
5856         variable directly.
5857
5858         * sysdep.h: Get rid of VERY_LONG_TYPE.  Use LARGE_INT for the same
5859         purpose, defined as `long', `long long' or `double', depending on
5860         size of long and whether long long is available.
5861
5862 2003-10-11  Hrvoje Niksic  <hniksic@xemacs.org>
5863
5864         * sysdep.h: Also check size of short for int32_t.
5865
5866 2003-10-11  Hrvoje Niksic  <hniksic@xemacs.org>
5867
5868         * host.c (lookup_host): Use u_int32_t to store the result of
5869         inet_addr().  That removes the need for offset fiddling, caring
5870         about endian-ness, etc.
5871
5872         * sysdep.h: Define int32_t and u_int32_t if not available.
5873
5874 2003-10-11  Hrvoje Niksic  <hniksic@xemacs.org>
5875
5876         * ftp-basic.c (ftp_epsv): Use socklen_t * as the third argument to
5877         getpeername.
5878
5879         * config.h.in: Define socklen_t stub.
5880
5881         * host.c (sockaddr_len): Return socklen_t.
5882
5883         * connect.c (conaddr): Use socklen_t as the third argument to
5884         accept, getsockname, and connect.
5885
5886 2003-10-10  Hrvoje Niksic  <hniksic@xemacs.org>
5887
5888         * recur.c (retrieve_tree): Don't descend into documents that are
5889         not expected to contain HTML, regardless of their content-type.
5890
5891         * html-url.c (tag_url_attributes): Record which attributes are
5892         supposed to yield HTML links that can be followed.
5893         (tag_find_urls): Propagate that information to the caller through
5894         struct urlpos.
5895
5896 2003-10-10  Hrvoje Niksic  <hniksic@xemacs.org>
5897
5898         * hash.c (find_mapping): Return the next available mapping when
5899         the key is not found, not NULL.
5900         (hash_table_put): Use find_mapping to find the storage for the new
5901         data.
5902         (hash_table_put): Grow the table before exceeding maximum
5903         fullness, not afterwards.
5904
5905 2003-10-10  Hrvoje Niksic  <hniksic@xemacs.org>
5906
5907         * hash.c (hash_table_new): Slightly change the meaning of the
5908         first parameter.  Instead of being the minimum initial size, it is
5909         now the minimum number of items that the hash table can take
5910         without needing to resize.
5911
5912 2003-10-09  Hrvoje Niksic  <hniksic@xemacs.org>
5913
5914         * html-url.c (init_interesting): Initialize interesting_tags and
5915         interesting_attributes as hash tables.  This simplifies the code
5916         immensely because hash tables handle allocation and remove
5917         duplicates automatically.
5918         (find_tag): Removed.
5919         (collect_tags_mapper): Instead of calling find_tag, simply get the
5920         entry from interesting_tags hash table, which is both simpler and
5921         faster.
5922
5923 2003-10-09  Hrvoje Niksic  <hniksic@xemacs.org>
5924
5925         * hash.c (hash_table_get): Declare hash-table argument as const.
5926         (find_mapping): Ditto.
5927         (hash_table_get_pair): Ditto.
5928         (hash_table_contains): Ditto.
5929         (hash_table_count): Ditto.
5930
5931 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
5932
5933         * html-url.c (get_urls_html): Parse the appropriate flags to
5934         html-parse.c.
5935
5936         * html-parse.c (map_html_tags): Accept FLAGS from the caller
5937         instead of examining OPT.
5938
5939 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
5940
5941         * html-url.c (find_tag): Switch to binary search.
5942
5943 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
5944
5945         * main.c (print_help): Fix typo; stured -> stored.
5946
5947 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
5948
5949         * getopt.c: Add definitions of getopt_long and getopt_long_only.
5950
5951 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
5952
5953         * config.h.in: Renamed DEBUG to ENABLE_DEBUG.  ENABLE_DEBUG is, I
5954         think, a better name, because it implies that debugging output is
5955         merely possible, not "on by default", as might be construed from
5956         just DEBUG.
5957
5958 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
5959
5960         * ftp.c (has_insecure_name_p): Define it here.
5961
5962         * utils.c (has_wildcards_p): Define it here.
5963
5964         * sysdep.h: Declare fnmatch-related macros here, if not using
5965         system fnmatch().  Update .c files to not declare fnmatch.h
5966         directly.
5967
5968         * cmpt.c (fnmatch): Moved here.  Use it only under non-GNU libc.
5969
5970 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
5971
5972         * getopt.c: Newer version, imported from Free libit.
5973
5974 2003-10-07  Hrvoje Niksic  <hniksic@xemacs.org>
5975
5976         * cookies.c (struct cookie): Remove unused backpointer to cookie
5977         jar.
5978
5979 2003-10-07  Hrvoje Niksic  <hniksic@xemacs.org>
5980
5981         * cmpt.c (memmove): Comment out, since it's no longer used.
5982
5983         * cookies.c (cookie_jar_generate_cookie_header): Allocate room for
5984         chains in one pass.
5985         (find_chains_of_host): Assume that the caller has allocated DEST
5986         to be sufficiently large to take all the data.
5987         (eliminate_dups): Run through the array and eliminate dups on the
5988         fly instead of using memmove.
5989         (cookie_jar_process_set_cookie): Free cookie->domain before
5990         re-setting it.
5991
5992 2003-10-05  Gisle Vanem  <giva@bgnett.no>
5993
5994         * mswindows.c (set_sleep_mode): Fix type of
5995         _SetThreadExecutionState.
5996
5997 2003-10-05  Hrvoje Niksic  <hniksic@xemacs.org>
5998
5999         * utils.c (file_size): Return -1 if fopen() returns NULL.  Prior
6000         to this patch, wget --post-file=nosuchfile dumped core.
6001
6002 2003-10-04  Gisle Vanem  <giva@bgnett.no>
6003
6004         * mswindows.c (run_with_timeout): Use WaitForSingleObject to wait
6005         for thread termination.
6006
6007 2003-10-04  Hrvoje Niksic  <hniksic@xemacs.org>
6008
6009         * log.c: Use `...' in function definitions; ansi2knr will convert
6010         them to va_dcl.  This allowed removal of the ugly VA_START_1 and
6011         VA_START_2 macros.
6012
6013 2003-10-03  Gisle Vanem  <giva@bgnett.no>
6014
6015         * connect.c: And don't include them here.
6016
6017         * mswindows.h: Include winsock headers here.
6018
6019 2003-10-03  Hrvoje Niksic  <hniksic@xemacs.org>
6020
6021         * html-parse.c (convert_and_copy): Move variable declarations
6022         before statements.
6023
6024 2003-10-02  Gisle Vanem  <giva@bgnett.no>
6025
6026         * mswindows.c (run_with_timeout): For Windows: Run the 'fun' in a
6027         thread via a helper function. Continually query the thread's
6028         exit-code until finished or timed out.
6029
6030 2003-10-02  Hrvoje Niksic  <hniksic@xemacs.org>
6031
6032         * wget.h (XMALLOC_ARRAY): Removed.
6033         (ALLOCA_ARRAY): Ditto.
6034
6035         * html-parse.c: Renamed alloca_p to resized.
6036         (GROW_ARRAY): Renamed DO_REALLOC_FROM_ALLOCA to GROW_ARRAY and
6037         returned it to html-parse.c, since nothing else was using it.
6038
6039 2003-10-02  Hrvoje Niksic  <hniksic@xemacs.org>
6040
6041         * retr.c (retrieve_url): Initialize DUMMY storage for DT.  Caught
6042         by valgrind.
6043
6044 2003-10-02  Hrvoje Niksic  <hniksic@xemacs.org>
6045
6046         * html-parse.c (convert_and_copy): Handle numeric entities in
6047         hexadecimal, &#xHH.
6048         (convert_and_copy): Copy the contents directly to the pool without
6049         a stack-allocated intermediary.
6050
6051 2003-10-02  Hrvoje Niksic  <hniksic@xemacs.org>
6052
6053         * utils.c (alarm_set): New function; use either setitimer or alarm
6054         to set up the alarm.
6055         (alarm_cancel): New function; cancel the alarm set up by
6056         alarm_set.
6057         (run_with_timeout): Use them.
6058
6059 2003-10-01  Hrvoje Niksic  <hniksic@xemacs.org>
6060
6061         * url.c (url_parse): Don't leak memory when a reencoded URL turns
6062         out to be invalid.
6063
6064         * url.c (parse_errors): Mark error messages for translation.
6065         (url_error): Translate error messages returned to the caller.
6066
6067 2003-10-01  Hrvoje Niksic  <hniksic@xemacs.org>
6068
6069         * ftp.c (ftp_loop_internal): Initialize TMRATE to NULL to shut up
6070         the compiler.
6071
6072 2003-09-26  Gisle Vanem  <giva@bgnett.no>
6073
6074         * src/mswindows.c: Added ws_percenttitle() showing progress in the
6075         window titlebar. Called from retr.c. Secured ws_mypath().
6076
6077         * windows/config.h.ms: alloca() prototype not needed.  Removed
6078         "#undef ENABLE_NLS"; should be in Makefile IMHO. Moved
6079         WGET_USE_STDARG from mswindows.h to config.ms.h because of #ifdef
6080         in log.c. (MSVC's vararg.h and stdarg.h are incompatible).
6081
6082 2003-09-29  Aaron Hawley <Aaron.Hawley@uvm.edu>
6083
6084         * ftp.c (getftp): --spider option should now work with FTP
6085         downloads.
6086         (ftp_loop_internal): quiet reports and calculations of downloads
6087         when --spider option set, nor try deleting when --delete-after
6088         also set.
6089         (ftp_loop): --spider will skip HTML-ification of .listing file.
6090
6091 2003-09-26  Gisle Vanem  <giva@bgnett.no>
6092
6093         * mswindows.c (read_registry): Removed.
6094         (set_sleep_mode): New function.
6095         (windows_main_junk): Call it.
6096
6097 2003-09-26  Gisle Vanem  <giva@bgnett.no>
6098
6099         * mswindows.c (read_registry): Fix invocation of registry
6100         functions.
6101
6102         * mswindows.c (read_registry): Condition definitions of sleep and
6103         usleep with not HAVE_SLEEP and HAVE_USLEEP respectively.  Define
6104         HAVE_SLEEP and HAVE_USLEEP under __DMC__.
6105
6106 2003-09-24  Hrvoje Niksic  <hniksic@xemacs.org>
6107
6108         * url.c (url_escape_1): Revert unintentional change to lowercase
6109         xdigit escapes.
6110         (url_escape_dir): Document that this function depends on the
6111         output of url_escape_1.
6112
6113 2003-09-23  Hrvoje Niksic  <hniksic@xemacs.org>
6114
6115         * progress.c (create_image): Print the current ETA if we're done
6116         with the download.
6117         (create_image): Change '-' display char to '+' in the progress bar.
6118
6119         * Makefile.in (clean): Remove .libs.
6120
6121 2003-09-23  Hrvoje Niksic  <hniksic@xemacs.org>
6122
6123         * cookies.c (struct cookie): New flag domain_exact.
6124         (update_cookie_field): Skip leading dot in domain.
6125         (find_matching_chains): Match numeric addresses exactly; don't
6126         needlessly copy HOST to the stack.
6127         (matching_cookie): Added argument HOST.  If cookie->domain_exact
6128         is set, check that HOST is equal to cookie->domain.
6129         (cookie_jar_load): Only use TAB as delimiter.  Document the
6130         meaning of DOMAIN-FLAG.  Skip leading dot in domain.
6131         (cookie_jar_load): Don't ignore DOMAIN-FLAG -- instead, set
6132         domain_exact to true if DOMAIN-FLAG is false.
6133         (save_cookies_mapper): If domain_exact is false, prepend the
6134         domain with dot, like Mozilla does.
6135
6136 2003-09-22  Hrvoje Niksic  <hniksic@xemacs.org>
6137
6138         * progress.c (create_image): Print the initial part of the
6139         download with '-' characters, analogous to how dot progress prints
6140         the initial part with ','.
6141
6142         * hash.c (ptrhash): New function.
6143         (ptrcmp): Ditto.
6144         (hash_table_new): Default to identity hash table.
6145
6146 2003-09-22  Hrvoje Niksic  <hniksic@xemacs.org>
6147
6148         * safe-ctype.h (_sch_test): The cast of BIT to unsigned char was
6149         broken -- _sch_istable bitmasks are 16-bit, not 8-bit!  Cast BIT
6150         to unsigned short instead.
6151
6152 2003-09-22  Hrvoje Niksic  <hniksic@xemacs.org>
6153
6154         * url.c (path_simplify): Instead of calls to memmove, handle "./"
6155         and "../" by advancing pointers.
6156
6157 2003-09-22  Hrvoje Niksic  <hniksic@xemacs.org>
6158
6159         * retr.c (getproxy): Moved from url.c.
6160
6161         * convert.c: Split off link conversion from url.c into separate
6162         file.  Also included the book-keeping stuff from recur.c.
6163
6164 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
6165
6166         * init.c: Improved documentation of functions.
6167         (cmd_boolean): Attempt to make code that tries to avoid calling
6168         strcmp for "speed" a bit more readable.
6169
6170         * init.c (simple_atof): Report error on encountering non-digit,
6171         non-"." character.
6172         (simple_atoi): Replacement for myatoi(), calling interface
6173         compatible with simple_atof.  Updated myatoi's callers.
6174
6175 2003-09-21  Bertrand Demiddelaer  <bert@b3rt.org>
6176
6177         * url.c (path_simplify): Would read two bytes past the end of the
6178         string in the "./" case.
6179
6180 2003-09-21  Matthew J. Mellon  <mellon@tymenet.com>
6181
6182         * http.c (gethttp): Recognize content-type "application/xhtml+xml"
6183         as what Wget considers "text/html".
6184
6185 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
6186
6187         * connect.c (connect_with_timeout): Made timeout type double.
6188
6189         * options.h (struct options): New members read_timeout,
6190         dns_timeout, and connect_timeout.
6191         Use them.
6192
6193 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
6194
6195         * init.c (simple_atof): New function.
6196         (cmd_time): Use it.
6197         (cmd_bytes): Accept things like "1.5k" and such.  Use simple_atof
6198         to parse decimals.
6199
6200         * retr.c (limit_bandwidth): Adjust each sleep by the error of the
6201         previous one.
6202
6203 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
6204
6205         * main.c (main): Use setoptval() for setting the options.  Use
6206         run_command for `-e'.
6207
6208         * init.c (parse_line): Rewritten to return COMIND right away.
6209         Changed linkage to static.
6210         (run_wgetrc): Use the available comind when calling setval, so it
6211         doesn't have to be computed twice.
6212         (setval_internal): New function, runs the command's action without
6213         any error checking.
6214         (setoptval): New function, does what setval used to do, but exits
6215         in case of error.
6216         (run_command): New function.
6217
6218 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
6219
6220         * connect.c (select_fd): Change MAXTIME's type to double.  Handle
6221         its decimal part.
6222
6223         * retr.c (sleep_between_retrievals): In the random-wait case, use
6224         random_float() to wait between 0 and 2*opt.wait seconds.
6225
6226         * utils.c (run_with_timeout): Accept `double' timeouts.  Correctly
6227         handle timeout values in (0, 1) range.
6228         (random_float): New function.
6229
6230         * options.h (struct options): Change the types of wait, waitretry,
6231         and timeout to double.
6232
6233         * init.c (cmd_time): Accept floating point time.
6234
6235 2003-09-20  Hrvoje Niksic  <hniksic@xemacs.org>
6236
6237         * retr.c (get_contents): Cosmetic fixes.
6238
6239 2003-09-20  Hrvoje Niksic  <hniksic@xemacs.org>
6240
6241         * url.c (uri_merge): Get rid of uri_merge_1.
6242         (uri_merge): Merge "foo//", "bar" as "foo//bar", not "foo///bar",
6243         i.e. don't add an extra slash merely because BASE ends with two
6244         slashes.
6245         (parse_credentials): Renamed from parse_uname.  Rewrittern in
6246         standard [beg, end) calling style.
6247         (url_skip_credentials): Renamed from url_skip_uname.  Made static.
6248         (url_skip_credentials): Include # and ; as terminators.  Old code
6249         would mistakenly consider "http://foo.com#hniksic@iskon.hr" to
6250         contain a username.
6251         (url_skip_scheme): Removed because it was unused.
6252         (url_has_scheme): Require "scheme" to be at least one char long.
6253
6254 2003-09-19  Hrvoje Niksic  <hniksic@xemacs.org>
6255
6256         * url.c (url_file_name): Expect NULL dir_prefix.
6257
6258         * init.c (cmd_file): Use a macro to prevent multiple #ifdef
6259         WINDOWS.
6260         (defaults): Set dir_prefix to NULL by default.
6261
6262 2003-09-19  Hrvoje Niksic  <hniksic@xemacs.org>
6263
6264         * safe-ctype.h (_sch_test): Cast BIT to unsigned char, like latest
6265         gcc does.
6266
6267 2003-09-19  Hrvoje Niksic  <hniksic@xemacs.org>
6268
6269         * wget.h (BOUNDED_TO_ALLOCA): Evaluate PLACE only once.
6270         (ARRAY_SIZE): Renamed to countof.  All callers updated.
6271
6272 2003-09-19  Hrvoje Niksic  <hniksic@xemacs.org>
6273
6274         * main.c (main): New option --strict-comments.
6275
6276         * html-parse.c (find_comment_end): New function: simple BM search
6277         for "-->".
6278         (map_html_tags): Use it if looking at a comment and not in strict
6279         comments mode.
6280
6281 2003-09-17  Aurelien Marchand  <artaxerxes@users.sf.net>
6282
6283         * ftp.h: Added OS400 system in enum
6284         * ftp-basic.c: recognize OS400 systems
6285         * ftp.c: don't prepend the CWD if talking to OS400, since it
6286         breaks the change in library
6287
6288 2003-09-18  Hrvoje Niksic  <hniksic@xemacs.org>
6289
6290         * retr.c (get_contents): Pass the correct argument to ssl_iread.
6291
6292 2003-09-18  Hrvoje Niksic  <hniksic@xemacs.org>
6293
6294         * safe-ctype.h: Don't #define ctype.h macros to errors because
6295         that loses when someone #include's ctype.h after safe-ctype.h.
6296
6297 2003-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
6298
6299         * url.c: Undef U, W, C after use.
6300
6301 2003-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
6302
6303         * init.c (cmd_spec_restrict_file_names): Allow the OS setting to
6304         be augmented by ",nocontrol" which means don't escape the control
6305         characters, but otherwise keep OS settings.
6306
6307         * url.c (file_unsafe_char): Deleted.
6308         (append_uri_pathel): Query filechr_table directly.
6309         (filechr_table): Separated Unix, Windows, and control-unsafe
6310         characters.
6311
6312 2003-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
6313
6314         * url.c (url_escape_1): New function.
6315         (url_escape): Use it.
6316         (sync_path): Handle pathological cases where u->file and u->dir
6317         contain really strange characters.
6318         (ENCODE): Deleted.
6319         (REENCODE): Deleted.
6320
6321 2003-09-16  Hrvoje Niksic  <hniksic@xemacs.org>
6322
6323         * url.c (url_file_name): Don't reallocate FNAME if the file
6324         doesn't exist, as is usually the case.
6325
6326         * utils.c (unique_name): New flag allow_passthrough.
6327
6328 2003-09-16  Hrvoje Niksic  <hniksic@xemacs.org>
6329
6330         * utils.c (wtimer_sys_diff): Convert the time difference to signed
6331         __int64, then to double.  This works around MS VC++ 6 which can't
6332         convert unsigned __int64 to double directly.
6333
6334 2003-09-16  Hrvoje Niksic  <hniksic@xemacs.org>
6335
6336         * Makefile.in (clean): Also remove the core.<number> files
6337         produced by recent Linux systems.
6338
6339 2003-09-16  Hrvoje Niksic  <hniksic@xemacs.org>
6340
6341         * http.c (post_file): Don't pad the file if it's not large
6342         enough.  Bail out instead.
6343
6344 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
6345
6346         * retr.c (get_contents): Reduce the buffer size to the amount of
6347         data that may pass through for one second.  This prevents long
6348         sleeps when limiting bandwidth.
6349
6350         * connect.c (connect_to_one): Reduce the socket's RCVBUF when
6351         bandwidth limitation to small values is requested.
6352
6353 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
6354
6355         * progress.c (update_speed_ring): Moved the speed ring update to a
6356         separate function and documented it better.
6357
6358         * progress.c: Use `double' for most timers to support granularity
6359         smaller than 1ms.
6360
6361 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
6362
6363         * wget.h (XDIGIT_TO_XCHAR): Implement as index into a literal
6364         string.
6365         (XDIGIT_TO_xchar): Ditto.
6366
6367 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
6368
6369         * utils.c: Change the type of timer-related functions from long to
6370         double, for better precision.  On machines supporting gettimeofday
6371         the timers now work with granularity of less than one millisecond.
6372
6373 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
6374
6375         * cookies.c (parse_set_cookies): Fixed the parser to handle more
6376         edge conditions.
6377         (test_cookies): New function, contains a test suite for
6378         parse_set_cookies.
6379
6380 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
6381
6382         * url.c (strpbrk_or_eos): Implement as a macro under Gcc.
6383
6384 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
6385
6386         * cookies.c (parse_set_cookies): Allow trailing space in
6387         set-cookies header.  Also, allow any amount of whitespace, not
6388         only one character.  Allow empty set-cookies header without
6389         spewing an error.
6390
6391 2003-09-14  Hrvoje Niksic  <hniksic@xemacs.org>
6392
6393         * url.c (append_uri_pathel): Use opt.restrict_file_names when
6394         calling file_unsafe_char.
6395
6396         * init.c: New command restrict_file_names.
6397
6398         * main.c (main): New option --restrict-file-names[=windows,unix].
6399
6400         * url.c (url_file_name): Renamed from url_filename.
6401         (url_file_name): Add directory and hostdir prefix here, not in
6402         mkstruct.
6403         (append_dir_structure): New function, does part of the work that
6404         used to be in mkstruct.  Iterates over path elements in u->path,
6405         calling append_uri_pathel on each one to append it to the file
6406         name.
6407         (append_uri_pathel): URL-unescape a path element and reencode it
6408         with a different set of rules, more appropriate for handling of
6409         files.
6410         (file_unsafe_char): New function, uses a lookup table to decide
6411         whether a character should be escaped for use in file name.
6412         (append_string): New utility function.
6413         (append_char): Ditto.
6414         (file_unsafe_char): New argument restrict_for_windows, decide
6415         whether Windows file names should be escaped in run-time.
6416
6417         * connect.c: Include <stdlib.h> to get prototype for abort().
6418
6419 2003-09-14  Hrvoje Niksic  <hniksic@xemacs.org>
6420
6421         * utils.c (wtimer_sys_set): Extracted the code that sets the
6422         current time here.
6423         (wtimer_reset): Call it.
6424         (wtimer_sys_diff): Extracted the code that calculates the
6425         difference between two system times here.
6426         (wtimer_elapsed): Call it.
6427         (wtimer_elapsed): Don't return a value smaller than the previous
6428         one, which could previously happen when system time is set back.
6429         Instead, reset start time to current time and note the elapsed
6430         offset for future calculations.  The returned times are now
6431         guaranteed to be monotonically nondecreasing.
6432
6433 2003-09-10  Hrvoje Niksic  <hniksic@xemacs.org>
6434
6435         * host.c (lookup_host): Print the result of the DNS lookup.
6436
6437 2003-09-10  Hrvoje Niksic  <hniksic@xemacs.org>
6438
6439         * init.c (cmd_boolean): Accept yes/no along with on/off.
6440         (cmd_lockable_boolean): Ditto.
6441
6442 2003-09-10  Hrvoje Niksic  <hniksic@xemacs.org>
6443
6444         * init.c: New command dns_cache.
6445
6446         * main.c (main): New option --dns-cache[=off].
6447
6448 2003-09-09  Hrvoje Niksic  <hniksic@xemacs.org>
6449
6450         * config.h.in: Initialize HAVE_GETADDRINFO and ENABLE_IPV6.
6451
6452         * all: Use #ifdef ENABLE_IPV6 instead of the older INET6.  Use
6453         HAVE_GETADDRINFO for getaddrinfo-related stuff.
6454
6455 2003-09-09  Hrvoje Niksic  <hniksic@xemacs.org>
6456
6457         * url.c (url_parse): Return an error if the URL contains a [...]
6458         IPv6 numeric address and we don't support IPv6.
6459
6460 2003-09-05  Hrvoje Niksic  <hniksic@xemacs.org>
6461
6462         * url.c (is_valid_ipv6_address): Modified to not require
6463         zero-terminated strings.
6464         (is_valid_ipv4_address): Ditto.
6465
6466 2003-09-05  Mauro Tortonesi <mauro@deepspace6.net>
6467
6468         src/url.c: added RFC 2732 compliance for URL parsing. The
6469         functions is_*_address valid are a modified version of
6470         glibc 2.3.2 inet_pton's code.
6471
6472 2003-09-03  Ahmon Dancy  <dancy@dancysoft.com>
6473
6474         * main.c init.c options.h: Added --retry-connrefused option so
6475         that Connection Refused failures are treated as non-fatal (when
6476         trying to retrieve from busy servers).
6477
6478         * wget.h: New CONNECT_ERROR macro for encapsulating this
6479         modification.
6480
6481         * ftp.c http.c : Use CONNECT_ERROR macro in places where
6482         ECONNREFUSED was checked.
6483
6484 2003-01-11  Ian Abbott  <abbotti@mev.co.uk>
6485
6486         * ftp.c (ftp_retrieve_glob): Reject insecure filenames as determined
6487         by calling new function has_insecure_name_p.  This is based on a
6488         patch by Red Hat.
6489
6490         * fnmatch.c (has_insecure_name_p): New function: returns non-zero
6491         if filename starts with `/' or contains `../' and is therefore
6492         considered insecure.
6493
6494         * fnmatch.h: Declare has_insecure_name_p().
6495
6496 2002-08-03  Hrvoje Niksic  <hniksic@xemacs.org>
6497
6498         * init.c (cmd_file): Allocate RESULT correctly.
6499
6500 2002-07-24  Hrvoje Niksic  <hniksic@xemacs.org>
6501
6502         * recur.c (retrieve_tree): Check whether downloaded_html_set is
6503         non-NULL before using it.
6504
6505 2002-05-27  Hrvoje Niksic  <hniksic@arsdigita.com>
6506
6507         * html-parse.c (NAME_CHAR_P): Allow almost any character here.
6508
6509 2002-05-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6510
6511         * progress.c (bar_set_params): Fall back to dot progress if the
6512         terminal type is "emacs".
6513
6514 2002-05-20  Hrvoje Niksic  <hniksic@arsdigita.com>
6515
6516         * log.c: Don't #undef WGET_USE_STDARG.
6517
6518 2002-05-16  Hrvoje Niksic  <hniksic@arsdigita.com>
6519
6520         * hash.c (prime_size): Store the offset of the prime number in the
6521         prime table.  When searching, start with the given offset.
6522         (hash_table_new): Pass the pointer to ht->prime_offset to
6523         prime_size.
6524         (grow_hash_table): Ditto.
6525         (prime_size): Make 13 the first prime to make empty hash tables
6526         slightly smaller.
6527
6528 2002-05-16  Ian Abbott  <abbotti@mev.co.uk>
6529
6530         * recur.c (download_child_p): Minor optimization to avoid an
6531         unnecessary additional call to schemes_are_similar_p function.
6532
6533 2002-05-16  Ian Abbott  <abbotti@mev.co.uk>
6534
6535         * url.c (schemes_are_similar_p): New function to test enumerated
6536         scheme codes for similarity.
6537
6538         * url.h: Declare it.
6539
6540         * recur.c (download_child_p): Use it to compare schemes.  This
6541         also fixes a bug that allows hosts to be spanned (without the
6542         -H option) when the parent scheme is https and the child's is
6543         http or vice versa.
6544
6545 2002-05-14  Bill Richardson  <bill@riverstonenet.com>
6546
6547         * ftp.c (getftp): Don't ftruncate stdout.
6548
6549         * http.c (gethttp): Don't ftruncate stdout.
6550
6551 2002-05-09  Ian Abbott  <abbotti@mev.co.uk>
6552
6553         * cmpt.c (strptime_internal): Synched with glibc-2.1.3.
6554         (get_number): Ditto.
6555         (get_alt_number): Ditto.
6556         (__isleap): New function-like macro used by strptime.
6557         (day_of_the_week): New function used by strptime.
6558         (day_of_the_year): Ditto.
6559         (__mon_yday): Now shared by mktime and strptime implementations.
6560
6561 2002-05-08  Hrvoje Niksic  <hniksic@arsdigita.com>
6562
6563         * cookies.c (check_domain_match): Use match_tail in case
6564         insensitive mode.
6565
6566         * utils.c (match_tail): Allow the caller to specify case
6567         insensitive mode.
6568
6569         * cookies.c (store_cookie): When expiry_time is 0, print it as
6570         undefined, not indefinite.
6571
6572 2002-05-07  Ian Abbott  <abbotti@mev.co.uk>
6573
6574         * cookies.c (cookie_jar_process_set_cookie): Do not store
6575         discarded cookie.
6576
6577 2002-04-21  Hrvoje Niksic  <hniksic@arsdigita.com>
6578
6579         * cookies.c (check_domain_match): Allow cookies to be set for
6580         subdomains of unknown top-level domains under some circumstances.
6581
6582 2002-04-21  Thomas Lussnig  <thomas.lussnig@bewegungsmelder.de>
6583
6584         * gen_ssl.c:
6585         - allow checking of server cert
6586         - allow defining client cert type
6587         - allow limit of ssl protocol
6588         - check more return values
6589         - added debug message on break
6590
6591 2002-04-21  Hrvoje Niksic  <hniksic@arsdigita.com>
6592
6593         * recur.c (download_child_p): Revert order of items in check
6594         number 6 for clarity.
6595
6596 2002-04-20  Hrvoje Niksic  <hniksic@arsdigita.com>
6597
6598         * init.c: Ditto.
6599
6600         * main.c: Ditto.
6601
6602         * http.c: Use the new interface.
6603
6604         * cookies.c: Provide an OO-style "cookie jar" interface to enable
6605         separate cookie jars.
6606
6607         * http.c (http_atotm): Declare argument as const.
6608
6609 2002-04-20  Hrvoje Niksic  <hniksic@arsdigita.com>
6610
6611         * cookies.c (cookie_new): Default to PORT_ANY.
6612         (find_cookie_chain_exact): Only search by DOMAIN.
6613         (find_matching_cookie): Also check that PORT matches.
6614         (store_cookie): Only match the domain.
6615         (set_cookie_header_cb): When a cookie "fakes" a domain, assume it
6616         is valid for that host rather than discarding it completely.
6617         (find_matching_chains): Don't search by PORT.
6618         (matching_cookie): Also match PORT.
6619         (load_cookies): Set the port if specified, otherwise leave it as
6620         ANY.
6621         (save_cookies_mapper): Save the port if specified, otherwise leave
6622         it empty.
6623
6624 2002-04-19  Thomas Lussnig  <thomas.lussnig@bewegungsmelder.de>
6625
6626         * init.c: The option `egdfile' was not in sort order.
6627
6628 2002-04-16  Hrvoje Niksic  <hniksic@arsdigita.com>
6629
6630         * ftp.c (getftp): Treat directories that begin with <letter>: as
6631         absolute.
6632         (getftp): Strip trailing slashes from con->id before merging it
6633         with TARGET.
6634
6635 2002-04-16  Hrvoje Niksic  <hniksic@arsdigita.com>
6636
6637         * http.c (gethttp): If Content-Type is not given, assume
6638         text/html.
6639
6640 2002-04-15  Hrvoje Niksic  <hniksic@arsdigita.com>
6641
6642         * recur.c (download_child_p): Don't ignore rejection of HTML
6643         documents that are themselves leaves of recursion.
6644
6645 2002-04-15  Ian Abbott  <abbotti@mev.co.uk>
6646
6647         Makefile.in: Updated several dependencies for object files to take
6648         account of nested include files.
6649
6650 2002-04-15  Ian Abbott  <abbotti@mev.co.uk>
6651
6652         Makefile.in: The target `connect$o' (connect.o) now depends on
6653         `utils.h'
6654
6655 2002-04-15  Ian Abbott  <abbotti@mev.co.uk>
6656
6657         * host.c (SET_H_ERRNO): New function-like macro to set `h_errno'.
6658         (gethostbyname_with_timeout): Use it.
6659
6660         * utils.c: Don't define `SETJMP()', `run_with_timeout_env' or
6661         `abort_run_with_timeout()' when `USE_SIGNAL_TIMEOUT' is undefined.
6662
6663 2002-04-15  Hrvoje Niksic  <hniksic@arsdigita.com>
6664
6665         * host.c (getaddrinfo_with_timeout): New function.
6666         (gethostbyname_with_timeout): Ditto.
6667         (lookup_host): Use them.
6668
6669 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6670
6671         * utils.c (number_to_string): Handle the case when n < -INT_MAX.
6672
6673 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6674
6675         * init.c (comind): Use a marginally faster implementation of
6676         binary search.  To quote Martin Buchholz, "a nanosecond saved is a
6677         nanosecond earned."
6678
6679 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6680
6681         * main.c (print_help): Document `--post-data' and `--post-file'.
6682
6683 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6684
6685         * http.c (gethttp): Ditto.
6686
6687         * retr.c (retrieve_url): Initialize variables to appease the
6688         compiler.
6689
6690         * gen_sslfunc.c (ssl_iread): Don't handle EINTR when calling
6691         select_fd.
6692         (ssl_iwrite): Ditto.
6693
6694         * connect.c (select_fd): Rewrite to handle EINTR.  Set errno to
6695         ETIMEDOUT in case of timeout.
6696         (iread): No need to handle EINTR when calling select_fd.
6697         (iwrite): Ditto.
6698
6699 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6700
6701         * retr.c (retrieve_url): Make sure that POST is not honored for
6702         redirections.
6703
6704         * http.c (gethttp): Send the POST data when requested.
6705         (post_file): New function.
6706         (gethttp): Use it.
6707
6708         * main.c (main): Ditto.
6709
6710         * init.c: Add new options.
6711
6712         * options.h (struct options): New options post_data and
6713         post_file_name.
6714
6715 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
6716
6717         * connect.c (connect_with_timeout): Firing SIGALRM can result in
6718         connect() exiting with EINTR.  Treat EINTR the same as ETIMEDOUT.
6719
6720 2002-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6721
6722         * connect.c (connect_with_timeout): Use it.
6723
6724         * utils.c (run_with_timeout): New function.
6725
6726 2002-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
6727
6728         * url.c (getproxy): Accept a struct url argument.  This obviates
6729         the need for USE_PROXY_P.
6730
6731         * retr.c (retrieve_url): Allow proxy to be a non-FTP URL.
6732
6733         * ftp.c (getftp): Recognize FWTK-style proxy.
6734
6735 2002-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
6736
6737         * config.h.in: Only define _VA_LIST when compiled with gcc.
6738
6739 2002-04012  Ian Abbott  <abbotti@mev.co.uk>
6740
6741         * http.c (http_loop): Compensate for MS Windows two-second
6742         granularity of file modification time when comparing timestamps.
6743
6744         * ftp.c (ftp_retrieve_list): Ditto.
6745
6746 2002-04-12  Ian Abbott  <abbotti@mev.co.uk>
6747
6748         * utils.c (has_html_suffix_p): New function to test filename for
6749         common html extensions.
6750
6751         * utils.h: Declare it.
6752
6753         * http.c (http_loop): Use it instead of previous test.
6754
6755         * retr.c (retrieve_url): Ditto.
6756
6757         * recur.c (download_child_p): Ditto.
6758
6759 2002-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
6760
6761         * config.h.in: Define _VA_LIST on Solaris to prevent stdio.h from
6762         declaring va_list.
6763         From Kevin Rodgers <kevinr@ihs.com>.
6764
6765 2002-04-12  Ian Abbott  <abbotti@mev.co.uk>
6766
6767         * Makefile.in: Specify libtool mode explicitly when linking.
6768
6769 2002-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
6770
6771         * connect.c (connect_with_timeout): New function.
6772         (connect_to_one): Use it.
6773
6774         * config.h.in: Add stubs for HAVE_SIGSETJMP, HAVE_SIGBLOCK, and
6775         HAVE_SETJMP_H.
6776
6777 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
6778
6779         * log.c: Set WGET_USE_STDARG if __STDC__ is defined and stdarg.h
6780         is present.
6781
6782 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
6783
6784         * progress.c (bar_create): If INITIAL is larger than TOTAL, fix
6785         TOTAL.
6786         (bar_finish): Likewise.
6787
6788 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
6789
6790         * html-url.c (tag_handle_form): New function.  Pick up form
6791         actions and mark them for conversion only.
6792
6793 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
6794
6795         * progress.c (struct progress_implementation): Use PARAMS when
6796         declaring the parameters of *create, *update, *finish, and
6797         *set_params.
6798
6799         * netrc.c: Ditto.
6800
6801         * http.c: Reformat some function definitions so that ansi2knr can
6802         read them.
6803
6804         * hash.c (struct hash_table): Use the PARAMS macro around
6805         parameters in the declaration of hash_function and test_function.
6806         (prime_size): Spell 2580823717UL and 3355070839UL as (unsigned
6807         long)0x99d43ea5 and (unsigned long)0xc7fa5177 respectively, so
6808         that pre-ANSI compilers can read them.
6809         (find_mapping): Use PARAMS when declaring EQUALS.
6810         (hash_table_put): Ditto.
6811
6812         * ftp.h: Wrap the parameters of ftp_index declaration in PARAMS.
6813
6814         * cookies.c (cookie_new): Use (unsigned long)0 instead of 0UL,
6815         which was unsupported by pre-ANSI compilers.
6816
6817         From Nelson H. F. Beebe <beebe@math.utah.edu>, for the most part.
6818
6819 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
6820
6821         * url.c (url_filename): Use compose_file_name regardless of
6822         whether opt.dirstruct is set.
6823         (mkstruct): Don't handle the query and the reencoding of DIR; that
6824         is done in compose_file_name.
6825
6826 2002-04-10  Hrvoje Niksic  <hniksic@arsdigita.com>
6827
6828         * wget.h: Ditto for extern char *exec_name.
6829
6830         * options.h: Don't guard against OPTIONS_DEFINED_HERE -- it is
6831         perfectly legal to follow an `extern' with a non-`extern' ones,
6832         provided the types match.
6833
6834         * main.c: Don't define OPTIONS_DEFINED_HERE.
6835
6836 2002-04-10  Hrvoje Niksic  <hniksic@arsdigita.com>
6837
6838         * progress.c (create_image): Revert to calculating ETA based on
6839         average download speed.
6840         (create_image): Don't print ETA until the download has been active
6841         for at least 3 seconds.
6842         (create_image): When ETA is not available, don't print anything.
6843         The previous version would print --:--.
6844
6845 2002-04-10  Hrvoje Niksic  <hniksic@arsdigita.com>
6846
6847         * progress.c (bar_update): Keep updating a subinterval until it
6848         reaches or exceeds a watermark.  That way the measurement will be
6849         guaranteed to span a configurable minimum of time.  The current
6850         default is 3s in 30 100ms intervals.
6851
6852 2002-04-09  Hrvoje Niksic  <hniksic@arsdigita.com>
6853
6854         * progress.c (bar_update): Maintain an array of the time it took
6855         to perform previous 30 network reads.
6856         (create_image): Calculate the download speed and ETA based on the
6857         last 30 reads, not the entire download.
6858         (create_image): Make sure that the ETA is not changed more than
6859         once per second.
6860
6861 2002-04-09  Ian Abbott  <abbotti@mev.co.uk>
6862
6863         * mswindows.c (borland_utime): New function conditionally defined
6864         when `HACK_BCC_UTIME_BUG' is defined.  A reimplementation of
6865         `utime()' as Borland's `utime()' function is broken on Windows 9x
6866         systems.  (Original patch by Chin-yuan Kuo <sr1111111@yahoo.com.tw>.)
6867
6868 2002-04-08  Hrvoje Niksic  <hniksic@arsdigita.com>
6869
6870         * ftp.c (ftp_loop): Propagate the result of ftp_retrieve_glob.
6871
6872 2002-03-26  Ian Abbott  <abbotti@mev.co.uk>
6873
6874         * Makefile.in: Updated several dependencies for object files.
6875
6876 2002-03-20  Ian Abbott  <abbotti@mev.co.uk>
6877
6878         * mswindows.c: Include "utils.h".
6879
6880 2002-03-18  Ian Abbott  <abbotti@mev.co.uk>
6881
6882         * host.h: Don't include netdb.h on windows.
6883
6884 2002-02-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6885
6886         * recur.c (retrieve_tree): Handle the case when start_url doesn't
6887         parse.
6888
6889 2002-02-19  Andreas Damm  <andreas-sourceforge@radab.org>
6890
6891         * wget.h (DO_REALLOC_FROM_ALLOCA): Multiply with sizeof(type) when
6892         calling xmalloc and memcpy.
6893
6894 2002-02-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6895
6896         * host.h: Include Unix-specific includes #ifndef WINDOWS.
6897         Patch originally provided by Christian Lackas.
6898
6899 2002-02-11  Christian Lackas  <delta@lackas.net>
6900
6901         * recur.c: recurive downloading for https fixed.
6902
6903 2002-02-19  Alan Eldridge  <alane@geeksrus.net>
6904
6905         * host.h: Also include <netinet/in.h> and <sys/socket.h>.
6906
6907         * ftp-basic.c: Also include <netinet/in.h>.
6908
6909 2002-02-05  Ian Abbott  <abbotti@mev.co.uk>
6910
6911         * http.c (gethttp): when -c used, mark already fully retrieved
6912         file as successfully retrieved.
6913
6914 2002-02-19  Hrvoje Niksic  <hniksic@arsdigita.com>
6915
6916         * url.c (url_parse): Don't treat '?' as query string separator
6917         when parsing FTP URLs.
6918
6919 2002-02-01  Hrvoje Niksic  <hniksic@arsdigita.com>
6920
6921         * html-url.c (tag_handle_meta): Don't crash on <meta
6922         http-equiv=refresh> where content is missing.
6923
6924 2002-01-31  Herold Heiko  <Heiko.Herold@previnet.it>
6925
6926         * ftp-basic.c, host.c: don't include sys/socket.h, arpa/inet.h,
6927         netdb.h on windows.
6928
6929 2002-01-30  Hrvoje Niksic  <hniksic@arsdigita.com>
6930
6931         * retr.c (retrieve_url): Remove redirection cycle detection.  This
6932         is because some sites legitimately redirect the user back to the
6933         same location, e.g. after an authorization check performed by
6934         another page.  MAX_REDIRECTIONS is still used to prevent infinite
6935         redirection loops.
6936
6937 2002-01-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6938
6939         * http.c (gethttp): Wrap host name in square brackets if it
6940         contains a colon.
6941
6942 2002-01-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6943
6944         * url.c (url_parse): Allow all hex digits, not only decimal ones,
6945         to form an IP address.
6946
6947 2002-01-26  Hrvoje Niksic  <hniksic@arsdigita.com>
6948
6949         * url.c (urlchr_table): Make square braces reserved, so we can
6950         parse http://[::1]/.
6951         (url_parse): Handle host in braces.
6952         (url_string): If url->host contains colons, wrap it in braces.
6953
6954 2002-01-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6955
6956         * connect.c (resolve_bind_address): New function.
6957         (connect_to_one): Use it.
6958         (bindport): Ditto.
6959
6960         * init.c: Don't resolve bind-address here.
6961
6962         * host.c (wget_sockaddr_set_address): Would bug out with ADDR == NULL.
6963
6964 2002-01-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6965
6966         * host.c (lookup_host): Use sizeof(ip4_address) to calculate the
6967         offset.
6968         (address_list_new): Use map_ipv4_to_ip.
6969         (wget_sockaddr_set_address): Convert ADDR to IPv4 before using it
6970         in IPv4 context.
6971
6972 2002-01-24  Hrvoje Niksic  <hniksic@arsdigita.com>
6973
6974         * source: Integrated IPv6 support.
6975         Written by Thomas Lussnig <thomas.lussnig@bewegungsmelder.de>.
6976
6977 2002-01-15  Ian Abbott  <abbotti@mev.co.uk>
6978
6979         * init.c (cmd_file): Change `\' to `/' for Windows (yes, really!)
6980         (cmd_directory): New function. Like cmd_file(), but strips
6981         trailing directory separators.
6982         (commands): Change action for "dirprefix" from `cmd_file' to
6983         `cmd_directory'.
6984
6985         * utils.c (make_directory): Allow intermediate `mkdir' calls to
6986         fail, as not all path components that do not exist should be
6987         directory components, especially under Windows.
6988
6989 2002-01-17  Hrvoje Niksic  <hniksic@arsdigita.com>
6990
6991         * netrc.c (parse_netrc): Skip leading whitespace before testing
6992         whether the line is empty.  Empty lines still contain the line
6993         terminator.
6994
6995 2002-01-15  Hrvoje Niksic  <hniksic@arsdigita.com>
6996
6997         * gen_sslfunc.c (ssl_iread): Call select on the file descriptor
6998         only if no data is pending in SSL buffers.
6999         From tony@bluetail.com.
7000
7001 2002-01-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7002
7003         * headers.c (header_get): Strip trailing whitespace from the
7004         header.
7005
7006 2002-01-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7007
7008         * url.c (parse_uname): URL-decode *USER and *PASSWD.
7009
7010 2002-01-07  Ian Abbott <abbotti@mev.co.uk>
7011
7012         * url.c (uri_merge_1): Deal with "net path" relative URL (one that
7013         starts with "//").
7014
7015 2002-01-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7016
7017         * http.c (gethttp): Invalidate SOCK if get_contents encountered an
7018         error.
7019
7020 2001-12-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7021
7022         * version.c: Wget 1.8.1 is released.
7023
7024 2001-12-19  Hrvoje Niksic  <hniksic@arsdigita.com>
7025
7026         * version.c: Wget 1.8.1-pre3 is released.
7027
7028 2001-12-19  Hrvoje Niksic  <hniksic@arsdigita.com>
7029
7030         * recur.c (retrieve_tree): Enqueue the canonical representation of
7031         start_url, so that the test against dl_url_file_map works.
7032
7033 2001-12-19  Hrvoje Niksic  <hniksic@arsdigita.com>
7034
7035         * log.c (logputs): Check for requested verbosity before printing
7036         anything.
7037
7038 2001-12-19  Hrvoje Niksic  <hniksic@arsdigita.com>
7039
7040         * html-url.c (tag_handle_link): Treat the "shortcut icon" link as
7041         inline.
7042
7043 2001-12-18  Hrvoje Niksic  <hniksic@arsdigita.com>
7044
7045         * recur.c (retrieve_tree): Make a copy of file obtained from
7046         dl_url_file_map because the code calls xfree(file) later.
7047
7048 2001-12-18  Hrvoje Niksic  <hniksic@arsdigita.com>
7049
7050         * recur.c (register_html): Maintain a hash table of HTML files
7051         along with the list.  Disallow duplicates.
7052         (retrieve_tree): Use downloaded_html_set to check whether the file
7053         found in dl_url_file_map is an HTML file, and descend into it if
7054         so.
7055         (convert_all_links): Don't guard against duplicates in
7056         downloaded_html_list, since they are no longer possible.
7057
7058 2001-12-18  Ian Abbott  <abbotti@mev.co.uk>
7059
7060         * recur.c (retrieve_tree): Pass on referring URL when retrieving
7061         recursed URL.
7062
7063 2001-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
7064
7065         * version.c: Wget 1.8.1-pre2 is released.
7066
7067 2001-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
7068
7069         * retr.c (sleep_between_retrievals): Simplify indentation.
7070
7071 2001-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
7072
7073         * gen_sslfunc.c (ssl_init_prng): Use random_number to get a byte
7074         of "randomness" at a time.
7075         (ssl_init_prng): Don't seed the PRNG; random_number will do that.
7076
7077         * retr.c (sleep_between_retrievals): Use it.  Make sure that the
7078         random amount averages in opt.wait.
7079         (sleep_between_retrievals): Don't seed the PRNG; random_number
7080         will do that.
7081
7082         * utils.c (random_number): New function.
7083
7084 2001-12-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7085
7086         * url.c (path_simplify): Move here from utils.c, and make static.
7087
7088 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
7089
7090         * init.c (wgetrc_file_name): Print correct message when loading
7091         getenv("WGETRC") fails.
7092
7093 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
7094
7095         * recur.c (register_download): Don't abort when one URL references
7096         two different files.
7097
7098 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
7099
7100         * http.c (gethttp): Check for conn->scheme, not u->scheme, before
7101         calling ssl_iwrite.
7102
7103 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
7104
7105         * version.c: Wget 1.8.1-pre1 is released.
7106
7107 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
7108
7109         * res.c (matches): Fix broken URL in the docstring.
7110
7111 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
7112
7113         * html-url.c (tag_url_attributes): Mark <embed href=...> as
7114         external.
7115
7116 2001-12-12  Hrvoje Niksic  <hniksic@arsdigita.com>
7117
7118         * url.c (get_urls_file): Cosmetic changes.
7119
7120 2001-12-12  Hrvoje Niksic  <hniksic@arsdigita.com>
7121
7122         * html-url.c (append_one_url): Resurrect warning when unable to
7123         resolve a relative link.
7124
7125 2001-12-12  Hrvoje Niksic  <hniksic@arsdigita.com>
7126
7127         * html-url.c (collect_tags_mapper): Break into several functions.
7128         (tag_url_attributes): Collect <embed href=...>.
7129
7130 2001-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
7131
7132         * host.c: New type ipv4_address.  Use it consistently instead of
7133         `unsigned char[4]' and `unsigned char *'.
7134         (pretty_print_address): Accept a `const void *', to require even
7135         less casting.
7136
7137 2001-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
7138
7139         * ftp-ls.c (ftp_parse_vms_ls): Fix obvious memory leaks.
7140
7141 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
7142
7143         * main.c (main): Initialize progress after fork_to_background, so
7144         that it knows when to use dots.
7145
7146         * mswindows.c (ws_hangup): Call log_request_redirect_output.
7147
7148         * utils.c (fork_to_background): Print the PID of the child
7149         process.
7150
7151         * log.c (log_request_redirect_output): Set a flag that output
7152         redirection has been requested.  Doing anything else in a signal
7153         handler is unsafe.
7154         (check_redirect_output): New function: check whether redirection
7155         has been requested and, if so, call redirect_output().
7156         (logputs): Call check_redirect_output.
7157         (logprintf): Ditto.
7158         (debug_logprintf): Ditto.
7159         (redirect_output): Print clearer messages.
7160
7161         * main.c (redirect_output_signal): Don't call
7162         redirect_output_signal directly.  Instead, call
7163         log_request_redirect_output.
7164
7165         * utils.c (memfatal): Ditto.
7166
7167         * progress.c (display_image): Use it.
7168
7169         * log.c (log_set_save_context): New function: allow the caller to
7170         turn off saving log context lines.
7171
7172 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
7173
7174         * host.c (address_list_set_faulty): Uncomment a sanity check.
7175
7176 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
7177
7178         * utils.c (long_to_string): Return a pointer after where the
7179         number ends.
7180         (long_to_string): Rename to number_to_string.
7181
7182 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
7183
7184         * utils.c (path_simplify): Correctly handle the unlikely case that
7185         b starts out as path + 1.
7186
7187 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
7188
7189         * utils.c (path_simplify): Rewrite, with better comments, and
7190         without the use of strcpy to move overlapping blocks.
7191
7192 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
7193
7194         * init.c (cmd_spec_progress): Resurrect.  Check whether VAL is a
7195         valid progress type before setting it.
7196
7197 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
7198
7199         * main.c (main): Remove stray debugging message.
7200
7201 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
7202
7203         * progress.c (create_image): Fix ETA padding when hours are prined.
7204
7205 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
7206
7207         * version.c: Wget 1.8 is released.
7208
7209 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
7210
7211         * url.c (reencode_string): Declare static.
7212
7213         * res.c (registered_specs): Declare static.
7214
7215         * progress.c (current_impl_locked): Declare static.
7216
7217         * log.c (flush_log_p): Declare static.
7218         (needs_flushing): Ditto.
7219
7220         * http.c (digest_authentication_encode): Declare static.
7221
7222         * html-url.c (init_interesting): Declare static.
7223
7224         * host.c (host_name_addresses_map): Declare static.
7225
7226         * cookies.c (find_matching_chains): Declare static.
7227
7228         * ftp-ls.c (ftp_parse_vms_ls): Warn about the memory leak
7229         indicated by lint.
7230
7231         * utils.c (path_simplify): Remove unused variable STUB_CHAR.
7232
7233         * host.c (address_list_set_faulty): Document that INDEX is
7234         currently unused.
7235
7236         * url.c (rewrite_shorthand_url): Remove unused variable PATH.
7237
7238 2001-12-08  Hrvoje Niksic  <hniksic@arsdigita.com>
7239
7240         * version.c: Wget 1.8-pre2 is released.
7241
7242 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7243
7244         * progress.c (progress_handle_sigwinch): Set up the signal again.
7245
7246         * utils.c: Include <sys/termios.h>, where Solaris defines
7247         TIOCGWINSZ.
7248
7249         * progress.c (bar_create): Don't use the last column on the screen.
7250         (create_image): Pad ETA to constant size.  Pad SIZE to nine digits
7251         only until it exceeded them.
7252
7253 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7254
7255         * version.c: Wget 1.8-pre1 is released.
7256
7257 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7258
7259         * progress.c (progress_create): Make sure that, when the output is
7260         redirected, the progress implementation gets changed to the
7261         fallback one.
7262         (bar_set_params): Set current_impl_locked to 1 when "force" is
7263         specified.
7264         (progress_create): Don't change the progress implementation if
7265         current_impl_locked is non-zero.
7266
7267         * main.c (redirect_output_signal): Call
7268         progress_schedule_redirect.
7269
7270         * progress.c (progress_schedule_redirect): New function.
7271
7272 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7273
7274         * log.c (logvprintf): Restructure to allow being called multiple
7275         times.
7276         (logprintf): Call logvprintf in a loop.
7277         (debug_logprintf): Ditto.
7278
7279 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7280
7281         * gen_sslfunc.c (ssl_init_prng): Allow the user to disable EGD by
7282         setting egd_file it to empty string.
7283
7284         * main.c (main): Change the option name from --sslegdsock to
7285         --egd-file.
7286
7287 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7288
7289         * gen_sslfunc.c (ssl_init_prng): Make the printed message
7290         translatable.
7291
7292 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7293
7294         * url.c (scheme_disable): New function.
7295
7296         * main.c (main): Call ssl_init_prng from here rather than from
7297         init_ssl, so that it has a chance to disable support for https
7298         before a URL has been resolved.
7299
7300         * gen_sslfunc.c (ssl_init_prng): Seed with rand() if all else
7301         failed.
7302         (ssl_init_prng): Disable support for https if seeding the PRNG
7303         fails.
7304
7305 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7306
7307         * utils.c (read_whole_line): Handle lines beginning with \0.
7308
7309 2001-12-05  Hrvoje Niksic  <hniksic@arsdigita.com>
7310
7311         * recur.c (convert_all_links): Guard against duplicates in
7312         downloaded_html_files.
7313         (register_download): Don't invalidate similar-looking URLs.
7314         (match_except_index): New function.
7315
7316 2001-12-05  Hrvoje Niksic  <hniksic@arsdigita.com>
7317
7318         * utils.c (path_simplify): Document with test cases.
7319
7320 2001-12-04  Hrvoje Niksic  <hniksic@arsdigita.com>
7321
7322         * gen_sslfunc.c: Ditto.
7323
7324         * rbuf.c: Include <string.h>.
7325
7326 2001-12-04  Hrvoje Niksic  <hniksic@arsdigita.com>
7327
7328         * recur.c (retrieve_tree): Check whether the URL was already
7329         downloaded before downloading it again.
7330         (descend_child_p): Renamed to download_child_p.
7331         (register_download): When one URL is downloaded to a file already
7332         "owned" by another URL, delete all references that map any URL to
7333         that file.
7334         (register_delete_file): New function.
7335         (retrieve_tree): Use it after deleting a file.
7336
7337         * url.c (url_parse): Re-canonicalize the URL also if the path is
7338         empty, so that e.g. "http://www.server.com" ->
7339         "http://www.server.com/".
7340         (lowercase_str): Use ISUPPER instead of !ISLOWER.
7341
7342         * retr.c (retrieve_url): Use the canonical URL form when calling
7343         register_download().
7344
7345 2001-12-04  Ian Abbott <abbotti@mev.co.uk>
7346
7347         * snprintf.c (dopr): Use `unsigned int' as the second argument to
7348         va_arg when casting to `unsigned short' is intended.
7349
7350 2001-12-04  Herold Heiko  <Heiko.Herold@previnet.it>
7351
7352         * gen_sslfunc.c: on windows provide ssl crypto random
7353           initialization through RAND_screen(); could possibly
7354           be not enough for strong ssl communication (see the
7355           relevant manual page from the openssl package).
7356
7357 2001-12-04  Hrvoje Niksic  <hniksic@arsdigita.com>
7358
7359         * url.c (local_quote_string): Reenable quoting of question marks,
7360         but only when `--html-extension' is used.
7361
7362 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
7363
7364         * version.c: Wget 1.8-beta3 is released.
7365
7366 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
7367
7368         * snprintf.c (dopr): Cast the result of va_arg to short int and
7369         short unsigned int where these types are expected to be used.
7370
7371 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
7372
7373         * snprintf.c (dopr): Replace `short int' and `unsigned short int'
7374         with `int' when using it as the second argument to `va_arg'.
7375
7376 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
7377
7378         * host.c (address_list_new_one): New function.
7379         (lookup_host): Use it.
7380
7381 2001-12-03  Andre Majorel  <amajorel@teaser.fr>
7382
7383         * host.c (lookup_host): Don't initialize TMPSTORE directly because
7384         it's not legal C.
7385
7386 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
7387
7388         * ftp-basic.c (ftp_port): Don't return HOSTERR if we fail getting
7389         the socket data.
7390
7391         * ftp.c: Ditto.
7392
7393         * http.c: No need to declare h_errno.
7394
7395         * host.c: Declare h_errno.
7396
7397 2001-12-02  Hrvoje Niksic  <hniksic@arsdigita.com>
7398
7399         * utils.c (file_merge): If BASE doesn't contain a slash, just
7400         return a copy of FILE.
7401
7402 2001-12-02  Hrvoje Niksic  <hniksic@arsdigita.com>
7403
7404         * version.c: Wget 1.8-beta2 is released.
7405
7406 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
7407
7408         * ftp.c (getftp): When PWD fails, assume "/".
7409
7410         * ftp-basic.c (ftp_syst): Fix indentation.
7411
7412 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
7413
7414         * url.c (get_urls_file): If opt.base_href is specified, merge each
7415         URL with the base.
7416
7417 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
7418
7419         * main.c (print_help): Don't document the removed `-nh'.
7420
7421 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
7422
7423         * url.c (url_full_path): Document better.
7424
7425         * http.c (gethttp): Use the full path when creating digest
7426         authorization.
7427
7428 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
7429
7430         * cookies.c (path_matches): Return 0 if PREFIX doesn't begin with
7431         '/'.
7432
7433 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
7434
7435         * cookies.c (path_matches): FULL_PATH doesn't begin with '/', but
7436         PREFIX does.
7437
7438 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
7439
7440         * cookies.c (check_domain_match): Reimplement to match Netscape's
7441         "preliminary specification" for cookies.
7442
7443 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
7444
7445         * url.c (replace_attr_refresh_hack): New function.
7446         (convert_links): Call replace_attr_refresh_hack for Refresh
7447         links.  It will add the "TMOUT; URL=" junk before the link.
7448
7449         * html-url.c (collect_tags_mapper): Set ID to the ID of the
7450         "content" attribute, not "http-equiv".
7451         (collect_tags_mapper): Don't use OFFSET to hack the raw_* values;
7452         instead, store the information that this entry belongs to a
7453         "refresh" link.
7454
7455 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
7456
7457         * version.c: Wget 1.8-beta1 is released.
7458
7459 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
7460
7461         * recur.c (retrieve_tree): Allow -p retrievals to exceed maximum
7462         depth by more than one.
7463
7464 2001-11-30  Hrvoje Niksic  <hniksic@arsdigita.com>
7465
7466         * retr.c (retrieve_url): Don't allow more than 20 redirections.
7467
7468 2001-11-30  Hrvoje Niksic  <hniksic@arsdigita.com>
7469
7470         * recur.c (retrieve_tree): Skip the non-inline entries when
7471         enqueuing the children of a leaf HTML node in -p mode.
7472         (descend_url_p): Ignore opt.no_parent when in -p mode and UPOS is
7473         "inline".
7474
7475         * html-url.c (get_urls_html): Don't accept dash_p_leaf_HTML.
7476         (collect_tags_mapper): When an entry is "inline", mark it as such.
7477
7478         * recur.c (descend_url_p): Fix test when checking for
7479         acceptance/rejection rules.
7480
7481 2001-10-31 Daniel BODEA <dali@dali-designs.com>
7482
7483         * netrc.c (search_netrc): When slack_default is 0, still look for
7484         an account with matching password, just not the "default account".
7485         HTTP Authorization using .netrc should now work as expected.
7486
7487 2001-11-30  T. Bharath  <TBharath@responsenetworks.com>
7488
7489         * http.c (persistent_available_p): Call SHUTDOWN_SSL if
7490         test_socket_open fails.
7491
7492 2001-11-30  Hrvoje Niksic  <hniksic@arsdigita.com>
7493
7494         * progress.c (display_image): Just print one CR to reset the
7495         cursor position.
7496
7497 2001-11-30  Christian Fraenkel  <c.fraenkel@gmx.net>
7498
7499         * init.c: New command `ssl_egd_sock'.
7500
7501         * main.c (main): New option `--sslegdsock'.
7502
7503         * gen_sslfunc.c (ssl_init_prng): Seed the RNG using EGD.
7504
7505 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
7506
7507         * cmpt.c (memmove): Include a simple memmove implementation.
7508
7509 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
7510
7511         * headers: Guard against header files being included twice.
7512
7513 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
7514
7515         * gen-md5.c: Use unsigned char * as the buffer argument to
7516         gen_md5_update.
7517
7518 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
7519
7520         * connect.h: Declare select_fd.
7521
7522 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
7523
7524         * recur.c (descend_url_p): When resolving no_parent, compare with
7525         start_url, not parent url.  Otherwise link from /a/b/ to /a/c/
7526         wouldn't be followed, although the download started from /a/.
7527
7528 2001-01-23  Herold Heiko  <Heiko.Herold@previnet.it>
7529
7530         * config.h.ms, mswindows.h: defined HAVE_ISATTY, use _isatty for
7531         MS VC; somebody with Borland compiler please check and provide
7532         patch if possible;
7533
7534         * cmpt.c: provided a usleep emulation.
7535
7536 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
7537
7538         * host.c (address_list_new): Initialize al->faulty.
7539
7540 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
7541
7542         * http.c (http_process_range): Accept the broken output of
7543         "JavaWebServer/1.1.1".
7544
7545 2001-11-28  Hrvoje Niksic  <hniksic@arsdigita.com>
7546
7547         * progress.c (dot_set_params): If PARAMS is unspecified, use
7548         dot_style, if available.
7549
7550         * init.c: Ditto.
7551
7552         * main.c (main): Resurect --dot-style.
7553
7554         * progress.c (dot_finish): Print the quantity if we're left at the
7555         beginning of a row.
7556
7557 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7558
7559         * cmpt.c (random): Removed.
7560
7561         * retr.c (sleep_between_retrievals): Use the more portable rand()
7562         instead of random().
7563
7564 2001-11-27  Ian Abbott <abbotti@mev.co.uk>
7565
7566         * retr.c (retrieve_from_file): Initialize `new_file' to NULL to
7567         prevent seg fault.
7568
7569 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7570
7571         * connect.c (connect_to_many): Use address_list_set_faulty to
7572         prevent the faulty address from being reused.
7573
7574         * host.c (address_list_set_faulty): New function.
7575         (address_list_get_bounds): New function, instead of
7576         address_list_count.
7577
7578 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7579
7580         * url.c (convert_links): Don't translate %d-%d.
7581
7582         * main.c (print_help): Remove stray HAVE_RANDOM code.
7583
7584 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7585
7586         * ftp.c (getftp): Improve output after sending PASV.  Don't
7587         attempt to "look up" the IP address we already know; call
7588         connect_to_one directly.
7589
7590 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7591
7592         * progress.c: Change the default progress implementation to "bar".
7593
7594 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7595
7596         * progress.c (bar_create): Print two newlines.
7597
7598 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7599
7600         * cmpt.c (random): New function, a simple-minded replacement for
7601         random() on systems that don't have it.
7602
7603 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7604
7605         * config.h.in: Put a HAVE_USLEEP stub.
7606
7607         * cmpt.c (usleep): Replacement implementation of usleep using
7608         select.
7609
7610         * init.c: New option init_rate.
7611
7612         * main.c (main): New option --limit-rate.
7613
7614         * retr.c (limit_bandwidth): New function.
7615         (get_contents): Call it to limit the bandwidth used when
7616         downloading.
7617
7618         * progress.c (dot_update): Would print the wrong download speed on
7619         rows other than the first one when the download was continued.
7620         (dot_finish): Ditto.
7621
7622 2001-11-26  Ian Abbott <abbotti@mev.co.uk>
7623
7624         * http.c (gethttp): fix undeclared variable 'err' when compiled
7625         with HAVE_SSL.
7626
7627 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7628
7629         * progress.c: Don't allocate new timers; use the timing data
7630         propagated from the caller.
7631
7632         * retr.c (get_contents): Allocate and use a timer.
7633
7634 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7635
7636         * http.c (last_host_ip): Made into an address_list.
7637         (invalidate_persistent): Release pc_last_host_ip.
7638         (register_persistent): Use lookup_host.
7639         (persistent_available_p): Check for equality of hosts using
7640         address_list_match_all.  Call address_list_release.
7641         (http_cleanup): New function.
7642
7643         * ftp.c (getftp): Use lookup_host and connect_to_many.
7644
7645         * http.c (gethttp): Use lookup_host and connect_to_many.
7646
7647         * connect.c (make_connection): Removed.
7648         (connect_to_one): New function.
7649         (connect_to_many): Ditto.
7650         (set_connection_host_name): Ditto.
7651
7652         * host.c (lookup_host): New function; new return type.
7653         (address_list_new): New function.
7654         (address_list_count): Ditto.
7655         (address_list_copy_one): Ditto.
7656         (address_list_delete): Ditto.
7657         (address_list_release): Ditto.
7658         (pretty_print_address): Ditto.
7659
7660 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7661
7662         * recur.c (retrieve_tree): In case of followed redirection,
7663         blacklist the pre-redirection URL.
7664
7665 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7666
7667         * recur.c (descend_redirect_p): New function.
7668         (retrieve_tree): Make sure redirections are not blindly followed.
7669
7670 2001-11-04  Alan Eldridge  <alane@geeksrus.net>
7671
7672         * config.h.in: added HAVE_RANDOM.
7673
7674         * options.h: added random_wait to struct options.
7675
7676         * main.c (print_help [HAVE_RANDOM], main): added arg parsing, help
7677         for --random-wait.
7678
7679         * retr.c (sleep_between_retrievals) [HAVE_RANDOM]: added
7680         implementation of random wait times.
7681
7682         * init.c (commands): added "randomwait" keyword.
7683
7684 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7685
7686         * recur.c (descend_url_p): Be more conservative with blacklisting
7687         URLs.
7688         (convert_all_links): Print how many files have been converted, and
7689         how long it took.
7690
7691         * progress.c (create_image): Place the number of downloaded bytes
7692         right after the progress bar.
7693
7694         * utils.c (suffix): Return a pointer into the string.
7695
7696 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7697
7698         * url.c (convert_links): Handle CO_NULLIFY_BASE.
7699
7700         * recur.c (retrieve_tree): Ignore download-ignorable children.
7701         (convert_all_links): Specify CO_NULLIFY_BASE when link_base_p.
7702
7703         * html-url.c (handle_link): Return the newly created urlpos.
7704         (collect_tags_mapper): When dealing with BASE, store the base
7705         reference and mark it as download-ignorable.
7706
7707 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7708
7709         * url.c (convert_links): Attempt to quote '?' as "%3F" when
7710         linking to local files.  Given up on the attempt, as it breaks
7711         local browsing.
7712
7713 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7714
7715         * main.c (private_initialize): Removed.
7716         (main): Don't call private_initialize.
7717
7718         * http.c: Call lookup_host.
7719
7720         * host.c (host_init): Removed.
7721         (add_host_to_cache): Initialize host_name_address_map here, on
7722         demand.
7723         (ngethostbyname): Commented out.
7724
7725         * connect.c (make_connection): Remove dead code; use lookup_host.
7726
7727         * host.c (store_hostaddress): Renamed to lookup_host and reversed
7728         the args.
7729         Removed host_address_name_map and host_slave_master_map.
7730
7731 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7732
7733         * progress.c (dot_create): Align the "[ skipping ... ]" string
7734         with the dots.
7735
7736         * retr.c (rate): Split into two functions: calc_rate and
7737         retr_rate.
7738
7739         * progress.c (create_image): Draw a dummy progress bar even when
7740         total size is unknown.
7741         (display_image): Place the text cursor at the end of the "image".
7742
7743 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
7744
7745         * url.c (reencode_string): Use unsigned char, not char --
7746         otherwise the hex digits come out wrong for 8-bit chars such as
7747         nbsp.
7748         (lowercase_str): New function.
7749         (url_parse): Canonicalize u->url if needed.
7750         (get_urls_file): Parse each URL, and return only the valid ones.
7751         (free_urlpos): Call url_free.
7752         (mkstruct): Add :port if the port is non-standard.
7753         (mkstruct): Append the query string to the file name, if any.
7754         (urlpath_length): Use strpbrk_or_eos.
7755         (uri_merge_1): Handle the cases where LINK is an empty string,
7756         where LINK consists only of query, and where LINK consists only of
7757         fragment.
7758         (convert_links): Count and report both kinds of conversion.
7759         (downloaded_file): Use a hash table, not a list.
7760         (downloaded_files_free): Free the hash table.
7761
7762         * retr.c (retrieve_from_file): Ditto.
7763
7764         * main.c (main): Call either retrieve_url or retrieve_tree
7765         for each URL, not both.
7766
7767         * retr.c (register_all_redirections): New function.
7768         (register_redirections_mapper): Ditto.
7769         (retrieve_url): Register the redirections.
7770         (retrieve_url): Make the string "Error parsing proxy ..."
7771         translatable.
7772
7773         * res.c (add_path): Strip leading slash from robots.txt paths so
7774         that the path representations are "compatible".
7775         (free_specs): Free each individual path, too.
7776         (res_cleanup): New function.
7777         (cleanup_hash_table_mapper): Ditto.
7778
7779         * recur.c (url_queue_new): New function.
7780         (url_queue_delete): Ditto.
7781         (url_enqueue): Ditto.
7782         (url_dequeue): Ditto.
7783         (retrieve_tree): New function, replacement for recursive_retrieve.
7784         (descend_url_p): New function.
7785         (register_redirection): New function.
7786
7787         * progress.c (create_image): Cosmetic changes.
7788
7789         * init.c (cleanup): Do all those complex cleanups only if
7790         DEBUG_MALLOC is defined.
7791
7792         * main.c: Removed --simple-check and the corresponding
7793         simple_host_check in init.c.
7794
7795         * html-url.c (handle_link): Parse the URL here, and propagate the
7796         parsed URL to the caller, who would otherwise have to parse it
7797         again.
7798
7799         * host.c (xstrdup_lower): Moved to utils.c.
7800         (realhost): Removed.
7801         (same_host): Ditto.
7802
7803 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7804
7805         * utils.c (path_simplify): Preserver the (non-)existence of
7806         leading slash.  Return non-zero if changes were made.
7807
7808 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7809
7810         * progress.c (bar_update): Don't modify bp->total_length if it is
7811         zero.
7812
7813 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7814
7815         * retr.c (retrieve_url): When the redirection URL doesn't parse,
7816         print the correct error message rather than "UNKNOWN".
7817
7818 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7819
7820         * progress.c (bar_finish): If the timer didn't record any time
7821         since the download beginning, fake 1ms.
7822
7823 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7824
7825         * recur.c (recursive_retrieve): Fix typo.
7826
7827 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
7828
7829         * progress.c (create_image): Don't translate "%ld ".
7830
7831 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
7832
7833         * progress.c (bar_set_params): Allow the user to force the use of
7834         the bar.
7835
7836 2001-11-23  Lemble Gregory  <gregory.lemble@st.com>
7837
7838         * gen_sslfunc.c (ssl_init_prng): New function; seed the SSL RNG.
7839
7840 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
7841
7842         * progress.c: Renamed dp_* functions to dot_* for greater clarity
7843         and consistency with bar_*.
7844         (print_download_speed): Get rid of the unneeded '@' character.
7845         (create_image): Fix download rate geometry.
7846
7847         * progress.c (print_elapsed): Remove spurious space.
7848         (print_elapsed): Renamed to print_download_speed, since that's
7849         what it does.
7850
7851 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
7852
7853         * progress.c (bar_update): If the downloaded amount becomes larger
7854         than the expected amount, adjust the expected amount accordingly.
7855
7856 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
7857
7858         * utils.c (determine_screen_width): New function.
7859
7860         * main.c (main): New option `--progress=TYPE'.
7861         (main): Implement compatibility with the old option `--dot-style'.
7862
7863         * init.c: Removed cmd_spec_dotstyle -- that logic is now in
7864         dp_set_params.
7865         (cmd_spec_progress): New function.
7866
7867         * retr.c (get_contents): Use the progress_* functions instead of
7868         the old show_progress().
7869         (show_progress): Removed.
7870         (rate): Print "xxxx.xx K/s" instead of "KB/s".  Ditto for MB/s,
7871         etc.
7872
7873         * progress.c (set_progress_implementation): New function.
7874         (valid_progress_implementation_p): Ditto.
7875         (progress_create): Ditto.
7876         (progress_update): Ditto.
7877         (progress_finish): Ditto.
7878         (dp_create): Ditto.
7879         (dp_update): Ditto.
7880         (dp_finish): Ditto.
7881         (dp_set_params): Ditto.
7882         (print_elapsed): Ditto.
7883
7884 2001-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
7885
7886         * retr.c (show_progress): Use it.
7887
7888         * log.c (log_set_flush): New function.
7889
7890 2001-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
7891
7892         * utils.c (path_simplify): Don't remove trailing slashes.
7893
7894         * ftp.c (ftp_get_listing): Use it.
7895
7896         * utils.c (file_merge): New function.
7897
7898         * url.c (opt_url): Removed.
7899
7900         * recur.c (recursive_retrieve): Inline "opt_url" logic.
7901
7902         * main.c (main): Use xfree(), not free().
7903
7904         * url.c (rewrite_url_maybe): Renamed to rewrite_shorthand_url.
7905
7906         * ftp.c (ccon): Move `ccon' typedef here, since it's only used
7907         internally.
7908
7909         * config.h.in: Include a stub for HAVE_STRPBRK.
7910
7911         * cmpt.c (strpbrk): Include a replacement for systems without
7912         strpbrk().
7913
7914         * ftp.c: Use url_set_dir and url_set_file when modifying the URL.
7915
7916         * url.c (url_set_dir): New function.
7917         (url_set_file): Ditto.
7918
7919         * ftp-basic.c (ftp_process_type): Process FTP type here; the URL
7920         parser makes the URL "params" available, so we can do that in this
7921         function.
7922
7923         * retr.c: Ditto.
7924
7925         * ftp.c: Ditto; pass the local file information in `ccon'.
7926
7927         * http.c: Get rid of the ugly kludge that had URL being replaced
7928         with the proxy URL when proxy retrieval was requested.  Use a
7929         separate parameter to http_loop and gethttp for the proxy URL.
7930
7931         * http.c: Changed to reflect the fact that local file, proxy, and
7932         referer information are no longer stored in struct url.  The local
7933         file information is passed in `struct hstat' now.
7934
7935         * url.c: Reworked URL parsing to be more regular.  Reencode the
7936         URL using reencode_string.
7937         Removed non-URL-related information from struct url.  This
7938         includes fields `proxy', `local', and `referer'.
7939
7940 2001-11-22  Jochen Hein  <jochen@jochen.org>
7941
7942         * main.c (main): Split the copyright notice for easier
7943         translation.
7944
7945 2001-08-21  Dave Turner <dct25@hermes.cam.ac.uk>
7946
7947         * ftp-basic.c (ftp_size): New function to send non-standard SIZE
7948           command to server to request file size.
7949         * ftp.h (ftp_size): Export it.
7950         * ftp.c (getftp): Use new ftp_size function if restoring
7951           transfer of a file with unknown size.
7952
7953 2001-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
7954
7955         * url.c (parseurl): Don't depend on the now-obsolete TYPE.
7956
7957 2001-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
7958
7959         * url.c (getproxy): Handle URL shorthands.
7960
7961 2001-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
7962
7963         * main.c: Remove --wait / --waitretry backwards compatibility
7964         code.
7965
7966 2001-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
7967
7968         * main.c (main): Use it.
7969
7970         * url.c (rewrite_url_maybe): New function.
7971
7972 2001-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
7973
7974         * url.c: Clean up handling of URL schemes.
7975
7976 2001-05-13  Hrvoje Niksic  <hniksic@arsdigita.com>
7977
7978         * url.c: Get rid of `protostrings'.
7979         (skip_proto): Don't use protostrings.
7980         (has_proto): Ditto.
7981
7982 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
7983
7984         * Makefile.in: Conditionally compile getopt.o.
7985
7986 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
7987
7988         * md5.h: Renamed to gnu-md5.h.
7989
7990         * md5.c: Renamed to gnu-md5.c.
7991
7992         * http.c: Ditto.
7993
7994         * ftp-opie.c: Use the new macros.
7995
7996         * sysdep.h: Define md5-related macros.
7997
7998         * config.h.in: Define HAVE_SOLARIS_MD5 or HAVE_BUILTIN_MD5
7999         depending on which md5 implementation is used.
8000
8001 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
8002
8003         * res.c (res_register_specs): Initialize OLD and HP_OLD to appease
8004         the compiler.
8005
8006 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
8007
8008         * http.c (gethttp): Print the whole response line when printing
8009         headers is requested.
8010
8011 2001-05-12  Hrvoje Niksic  <hniksic@arsdigita.com>
8012
8013         * res.c: New file.  Implement all RES-related code here.
8014
8015 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
8016
8017         * version.c: Wget 1.7.1 is released.
8018
8019 2001-11-16  Hrvoje Niksic  <hniksic@arsdigita.com>
8020
8021         * headers.c (header_extract_number): Ignore trailing whitespace.
8022
8023 2001-08-24  Ian Abbott  <abbotti@mev.co.uk>
8024
8025         * html-url.c (collect_tags_mapper): Fix bug converting links
8026         with -k option for tags with multiple link attributes by
8027         handling links in the order they appear.
8028
8029 2001-08-15  Ian Abbott  <abbotti@mev.co.uk>
8030
8031         * ftp.c (ftp_loop_internal): Avoid a potential buffer overflow in
8032           the call to the 'rate' function by moving it past the error
8033           checking for the 'getftp' function return value.
8034
8035 2001-11-16  Hrvoje Niksic  <hniksic@arsdigita.com>
8036
8037         * html-parse.c (advance_declaration): Use 0x22 instead of '"' or
8038         '\"'.  Different compilers' assert macros are broken in different
8039         ways.
8040
8041 2001-09-29  Christian Fraenkel  <c.fraenkel@gmx.net>
8042
8043         * http.c (gethttp): print debug output for errors occuring during
8044         the ssl handshake.
8045
8046 2001-11-16  Chris Seawood  <cls@seawood.org>
8047
8048         * init.c: Ditto.
8049
8050         * host.c: Ditto.
8051
8052         * connect.c: Ditto.
8053
8054         * sysdep.h: Support compilation under BEOS.
8055
8056 2001-06-08  Edward J. Sabol  <sabol@alderaan.gsfc.nasa.gov>
8057
8058         * url.c (url_equal): Fix a memory leak when parseurl returns an
8059         error on the second URL. Also, since url_equal is not used at the
8060         moment, do not compile it.
8061
8062         * url.h: Ditto for the prototype of url_equal.
8063
8064 2001-11-16  Hrvoje Niksic  <hniksic@arsdigita.com>
8065
8066         * html-parse.c (map_html_tags): Support XML-style empty tags.
8067
8068 2001-06-26  Hrvoje Niksic  <hniksic@arsdigita.com>
8069
8070         * wget.h (DO_REALLOC_FROM_ALLOCA): Check for do_realloc_newsize in
8071         loop condition because we're no longer setting SIZEVAR here.
8072
8073 2001-06-26  Hrvoje Niksic  <hniksic@arsdigita.com>
8074
8075         * wget.h (DO_REALLOC_FROM_ALLOCA): Set SIZEVAR after the memcpy()
8076         call because it needs the old value.
8077
8078 2001-06-18  Hrvoje Niksic  <hniksic@arsdigita.com>
8079
8080         * cookies.c (ATTR_NAME_CHAR): Allow almost any character to be in
8081         an attribute name.
8082
8083 2001-06-18  Hrvoje Niksic  <hniksic@arsdigita.com>
8084
8085         * url.c (url_filename): Make sure that slashes that sneak in to
8086         u->file via query string get protected.
8087         (file_name_protect_query_string): New function.
8088
8089 2001-06-14  Hrvoje Niksic  <hniksic@arsdigita.com>
8090
8091         * recur.c (recursive_retrieve): Also check undesirable_urls with
8092         canonicalized URL.
8093
8094 2001-06-14  Hrvoje Niksic  <hniksic@arsdigita.com>
8095
8096         * http.c (gethttp): Search `.netrc' with real host, not the proxy
8097         one.
8098
8099 2001-06-14  Hrvoje Niksic  <hniksic@arsdigita.com>
8100
8101         * sysdep.h (MAP_FAILED): Provide MAP_FAILED for systems that don't
8102         define it.
8103
8104 2001-06-09  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8105
8106         * ftp.h: Provide correct prototype for ftp_parse_ls().
8107
8108 2001-06-04  Hrvoje Niksic  <hniksic@arsdigita.com>
8109
8110         * version.c: Wget 1.7 is released.
8111
8112 2001-06-03  Karl Eichwalder  <ke@suse.de>
8113
8114         * ftp-ls.c (ftp_parse_ls): Fix typo.
8115
8116 2001-05-27  Hrvoje Niksic  <hniksic@arsdigita.com>
8117
8118         * all: Update copyright information.
8119
8120 2001-05-26  Hrvoje Niksic  <hniksic@arsdigita.com>
8121
8122         * http.c (gethttp): Indicate that the continued download failed
8123         for *this* file.
8124
8125 2001-05-26  Hrvoje Niksic  <hniksic@arsdigita.com>
8126
8127         * version.c: Wget 1.7-pre1 is released.
8128
8129 2001-05-26  Hrvoje Niksic  <hniksic@arsdigita.com>
8130
8131         * version.c: Updated version to 1.7-pre1.
8132
8133 2001-05-14  Hrvoje Niksic  <hniksic@arsdigita.com>
8134
8135         * gen_sslfunc.c: Don't include <sys/time.h> directly.
8136
8137 2001-05-14  Hrvoje Niksic  <hniksic@arsdigita.com>
8138
8139         * http.c (gethttp): Use real URL data for cookies, not the proxy
8140         stuff.
8141
8142 2001-05-12  Hrvoje Niksic  <hniksic@arsdigita.com>
8143
8144         * main.c (print_help): Document `--no-http-keep-alive'.
8145
8146         * utils.c (numdigit): Handle negative numbers *correctly*.
8147
8148         * hash.c (make_nocase_string_hash_table): Use term "nocase" rather
8149         than the confusing "unsigned".
8150
8151         * utils.c (string_set_contains): Renamed from string_set_exists.
8152
8153         * hash.c (hash_table_contains): Renamed from hash_table_exists.
8154
8155         * cookies.c: Move case-insensitive hash tables to hash.c.
8156
8157 2001-05-09  Hrvoje Niksic  <hniksic@arsdigita.com>
8158
8159         * http.c (gethttp): Before concluding that the file is already
8160         fully retrieved, make sure that the file existed and `Range' was
8161         actually requested.
8162
8163 2001-05-09  Hrvoje Niksic  <hniksic@arsdigita.com>
8164
8165         * cookies.c (eliminate_dups): New function.
8166         (build_cookies_request): Use it.
8167         (build_cookies_request): Set chain_store_size after reallocating
8168         all_chains.
8169         (check_domain_match): Annotated for easier future debugging.
8170         (store_cookie): In the debug message, print whether the cookie is
8171         permanent.
8172
8173 2001-05-08  Hrvoje Niksic  <hniksic@arsdigita.com>
8174
8175         * http.c (http_loop): Reset no_truncate before deciding whether to
8176         set it.
8177         (gethttp): Further clarify "-c conflicts with existing file" error
8178         message, based on input from Herold Heiko.
8179
8180 2001-05-07  Hrvoje Niksic  <hniksic@arsdigita.com>
8181
8182         * http.c (http_loop): If restval is set, set no_truncate to 1
8183         unconditionally.
8184
8185 2001-05-02  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8186
8187         * ftp-ls.c (ftp_parse_winnt_ls): Assure months are being correctly
8188         converted. Pointed out by <Stefan.Weil@de.heidelberg.com>.
8189         (ftp_parse_vms_ls): Ditto.
8190
8191 2001-04-30  Hrvoje Niksic  <hniksic@arsdigita.com>
8192
8193         * init.c (cmd_address): Zero SIN before using it; apparently
8194         needed on *BSD.
8195
8196 2001-04-29  Hrvoje Niksic  <hniksic@arsdigita.com>
8197
8198         * ftp.c (ftp_loop_internal): Don't set NO_TRUNCATE if the file is
8199         empty.
8200
8201 2001-04-29  Hrvoje Niksic  <hniksic@arsdigita.com>
8202
8203         * main.c (main): Make `--cookies' respect its argument.
8204
8205 2001-04-28  Hrvoje Niksic  <hniksic@arsdigita.com>
8206
8207         * main.c (main): Removed undocumented option `--email-address'.
8208
8209         * netrc.c: Use the latest read_whole_line.
8210
8211         * init.c (defaults): Set opt.ftp_pass to "-wget@".
8212
8213         * mswindows.c (pwd_cuserid): Ditto.
8214
8215         * utils.c (pwd_cuserid): Removed.
8216
8217         * host.c (ftp_getaddress): Removed.
8218
8219 2001-04-28  Hrvoje Niksic  <hniksic@arsdigita.com>
8220
8221         (http_loop): Allocate space for filename_plus_orig_suffix with
8222         alloca; this is more efficient and removes the need to free it
8223         before each and every return.
8224
8225 2001-04-28  Hrvoje Niksic  <hniksic@arsdigita.com>
8226
8227         * http.c (gethttp): Return RETRUNNEEDED when the retrieval is
8228         unneeded because the file is already there and fully downloaded,
8229         and -c is specified.
8230         (http_loop): Handle RETRUNNEEDED.
8231
8232         * wget.h (uerr_t): New value RETRUNNEEDED.
8233
8234         * http.c (http_loop): Set no_truncate for files that both exist
8235         and are non-empty.
8236         (gethttp): Consider the download finished when restval >= contlen,
8237         not only when restval==contlen.
8238         (gethttp): Handle redirection before giving up due to -c.
8239         (gethttp): Clarify error message which explains that -c will not
8240         truncate the file.
8241         (gethttp): When returning CONTNOTSUPPORTED, don't forget to free
8242         the stuff that needs freeing and release the socket.
8243
8244 2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
8245
8246         * main.c (print_help): Wget booleans accept "off", not "no".
8247
8248 2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
8249
8250         * http.c (http_loop): If allow_cache is zero, always disable
8251         caching, not only when retrieving through proxy.
8252
8253         * init.c: Ditto.
8254
8255         * options.h (struct options): Rename proxy_cache to allow_cache.
8256
8257 2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
8258
8259         * http.c (mktime_from_utc): Improve documentation.
8260         (http_atotm): Put format strings into a separate array.
8261
8262 2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
8263
8264         * safe-ctype.h: Instead of throwing #error when isalpha is
8265         defined, redefine it to something that will throw a compile-time
8266         error if actually *used*.  Do the same for the rest of the
8267         standard C macros.
8268
8269 2001-04-26  Hrvoje Niksic  <hniksic@arsdigita.com>
8270
8271         * url.c (getproxy): Ignore empty proxy vars.
8272
8273 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
8274
8275         * http.c (http_loop): Would load cookies every time.
8276
8277         * cookies.c (load_cookies): Handle cookies whose values contain
8278         embedded spaces.
8279
8280 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
8281
8282         * utils.c: Define each DIGITS_* in one line.
8283
8284 2001-04-25  Roger L. Beeman  <beeman@cisco.com>
8285
8286         * http.c (http_atotm): Initialize t.tm_isdst to 0.
8287         (mktime_from_utc): Prevent mktime() from having discontinuities at
8288         DST transition points.
8289
8290 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
8291
8292         * html-url.c (get_urls_html): Fix documentation.
8293
8294 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
8295
8296         * url.c (UNSAFE_CHAR): Reimplement using a static table.
8297         (url_init): Removed.
8298         (init_unsafe_char_table): Removed.
8299
8300 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
8301
8302         * snprintf.c (dopr): Replace ISDIGIT with '0' <= ch && ch <= '9'.
8303
8304 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
8305
8306         * utils.c: Document timer functions.
8307
8308         * retr.c (rate): Use it.
8309         (rate): Print in GB/s if transfer rate exceeds 1 GB/s.
8310
8311         * utils.c (wtimer_granularity): New function.
8312
8313 2001-04-24  Hrvoje Niksic  <hniksic@arsdigita.com>
8314
8315         * retr.c (show_progress): Ditto.
8316
8317         * ftp.c (getftp): Ditto.
8318
8319         * http.c (gethttp): Use new timer functions.
8320
8321         * utils.c (wtimer_allocate): New function.
8322         (wtimer_new): Ditto.
8323         (wtimer_delete): Ditto.
8324         (wtimer_reset): Ditto.
8325         (wtimer_elapsed): Ditto.
8326
8327 2001-04-24  Hrvoje Niksic  <hniksic@arsdigita.com>
8328
8329         * utils.c (long_to_string): New, faster version.  Favors smaller
8330         numbers; much of the calculation is now done at compile-time.
8331
8332 2001-04-24  Hrvoje Niksic  <hniksic@arsdigita.com>
8333
8334         * utils.c (numdigit): Handle negative numbers.
8335
8336 2001-04-23  Hrvoje Niksic  <hniksic@arsdigita.com>
8337
8338         * retr.c (show_progress): Print the download rate even when the
8339         percentages are not available.
8340
8341 2001-04-21  Hrvoje Niksic  <hniksic@arsdigita.com>
8342
8343         * ftp.c (getftp): Adjust expected_bytes if the length is
8344         authoritative.
8345
8346 2001-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
8347
8348         * url.c: Don't declare `construct'.
8349
8350         * hash.c (grow_hash_table): Speed up rehashing; inline storing of
8351         mappings to new locations.
8352         (hash_table_new): Make resize_threshold a field in the hash table,
8353         so we don't have to recalculate it in each hash_table_put.
8354         (grow_hash_table): Update resize_threshold.
8355         (MAX): Remove unused macro.
8356         (prime_size): Made static.
8357
8358 2001-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
8359
8360         * retr.c (retrieve_url): Call uri_merge, not url_concat.
8361
8362         * html-url.c (collect_tags_mapper): Call uri_merge, not
8363         url_concat.
8364
8365         * url.c (mkstruct): Use encode_string instead of xstrdup followed
8366         by URL_CLEANSE.
8367         (path_simplify_with_kludge): Deleted.
8368         (contains_unsafe): Deleted.
8369         (construct): Renamed to uri_merge_1.
8370         (url_concat): Renamed to uri_merge.
8371
8372 2001-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
8373
8374         * url.c (str_url): Use encode_string instead of the unnecessary
8375         CLEANDUP.
8376         (encode_string_maybe): New function, returns input string if no
8377         encoding is needed.
8378         (encode_string): Call encode_string_maybe to do the dirty work,
8379         xstrdup if no work needed.
8380
8381 2001-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
8382
8383         * wget.h (XDIGIT_TO_xchar): Define here.
8384
8385         * url.c (decode_string): Use new name.
8386         (encode_string): Ditto.
8387
8388         * http.c (XDIGIT_TO_xchar): Rename HEXD2asc to XDIGIT_TO_xchar.
8389         (dump_hash): Use new name.
8390
8391         * wget.h: Rename ASC2HEXD and HEXD2ASC to XCHAR_TO_XDIGIT and
8392         XDIGIT_TO_XCHAR respectively.
8393
8394 2001-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
8395
8396         * init.c: Include cookies.h.
8397
8398         * cookies.h: Declare cookies_cleanup.
8399
8400         * cookies.c (check_domain_match): Remove unused variable.
8401         (save_cookies): Remove extraneous argument from debug statement.
8402
8403         * host.c (same_host): Don't call skip_url.
8404
8405         * url.c (skip_url): Removed.  Removed its calls from various
8406         functions in url.c.
8407
8408 2001-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
8409
8410         * cookies.c (unsigned_string_hash): Use the new code in
8411         string_hash as reference.
8412
8413         * hash.c (hash_table_map): Allow deletion and change of the
8414         element processed by MAPFUN.
8415         (string_hash): Use the function from glib.
8416
8417 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
8418
8419         * config.h.in: Include #undef stub.
8420
8421         * hash.c (hash_table_remove): Rewrite to actually clear deleted
8422         entries instead of just marking them as deleted.
8423
8424 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
8425
8426         * hash.h: Declare hash_table_get_pair and hash_table_count.
8427
8428 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
8429
8430         * cookies.c: Declare http_atotm.
8431
8432 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
8433
8434         * ftp-ls.c (ftp_parse_unix_ls): Use octal constants for
8435         permissions.  A compiler that doesn't accept octal constants is
8436         seriously broken and shouldn't be used -- octal constants were
8437         present in K&R C!
8438
8439 2001-01-20  Karl Eichwalder  <ke@suse.de>
8440
8441         * Makefile.in: Provide and use DESTDIR according to the Coding
8442         Standards.
8443
8444 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
8445
8446         * ftp-ls.c (ftp_parse_vms_ls): Make seconds optional in time
8447         specification.
8448
8449 2001-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
8450
8451         * url.c (parseurl): Don't strip trailing slash when u->dir is "/"
8452         because that strips the *leading* slash, thus forcing relative
8453         FTP retrieval.
8454
8455 2001-04-10  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8456
8457         * ftp.c (getftp): Convert initial FTP directory from VMS to UNIX
8458         notation for VMS servers.
8459         (ftp_retrieve_dirs): Do not prepend '/' to f->name when
8460         odir is an empty string.
8461
8462 2001-04-10  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8463
8464         * ftp-ls.c (ftp_parse_winnt_ls): Made the fix for AM/PM more
8465         effective. Suggested by Edward J. Sabol.
8466
8467 2001-04-10  Hrvoje Niksic  <hniksic@arsdigita.com>
8468
8469         * cookies.c (build_cookies_request): Use and sort cookies from all
8470         matching domains.
8471         (build_cookies_request): Check for duplicates before generating
8472         the `Cookies' header.
8473
8474         * main.c (main): Don't load cookies here.
8475         (main): Make loadcookies and savecookies call the correct command.
8476
8477         * http.c (http_loop): Load cookies on-demand.
8478
8479 2001-04-09  Hrvoje Niksic  <hniksic@arsdigita.com>
8480
8481         * http.c (gethttp): Fix indentation of SSL ifdef.
8482
8483 2001-04-09  Hrvoje Niksic  <hniksic@arsdigita.com>
8484
8485         * ftp.c (ftp_retrieve_dirs): Don't forcibly prepend "/" to u->dir;
8486         that hack is no longer necessary.
8487         (getftp): Prepend initial directory to *non*-absolute u->dir's.
8488
8489 2001-04-09  Hrvoje Niksic  <hniksic@arsdigita.com>
8490
8491         * init.c (cmd_file): New function.
8492         (enable_tilde_expansion): New variable.
8493         (run_wgetrc): Use it.
8494         (cmd_file): Use it.
8495
8496 2001-04-08  Hrvoje Niksic  <hniksic@arsdigita.com>
8497
8498         * init.c: Include cookie-related options.
8499
8500         * main.c (main): Include cookie-specific options.
8501         (main): Load cookies before download is finished.
8502         (main): Save cookies when done.
8503
8504         * http.c (gethttp): Process the `Set-Cookie' header.
8505         (gethttp): Include cookies in the response.
8506
8507         * cookies.c: New file.
8508
8509 2001-04-08  Hrvoje Niksic  <hniksic@arsdigita.com>
8510
8511         * utils.c (datetime_str): New function.
8512
8513 2001-04-08  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8514
8515         * ftp-ls.c (ftp_parse_winnt_ls): The AM/PM change did assume
8516         12:01PM == 00:01, which was obviously wrong. Taken care of this
8517         anomaly.
8518
8519         * ChangeLog: Removed an excess conflict marker. Reformatted the
8520         entry by Philipp Thomas from 2001-03-09.
8521
8522         * ftp-ls.c (ftp_parse_winnt_ls): Ensure that adjusted PM hours lay
8523         between 0 and 23. Elminate unused variable `sec'.
8524
8525 2001-04-08  Hrvoje Niksic  <hniksic@arsdigita.com>
8526
8527         * hash.c (hash_table_count): New function.
8528
8529 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8530
8531         * utils.c (read_file): Cast MAP_FAILED to char *.  Enforced by
8532         Digital Unix cc.
8533
8534 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8535
8536         * config.h.in: Oops, do the namespace tweaks only on systems we
8537         know about.
8538
8539 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8540
8541         * hash.c: Include <string.h>.
8542
8543 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8544
8545         * config.h.in: Define "compilation environment" options that work
8546         under Linux and Solaris.  To be reviewed on other OS'es.
8547
8548 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8549
8550         * http.c (gethttp): Prepend literal newline with `\n\'.
8551
8552 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8553
8554         * sysdep.h: Don't define VERY_LONG_FORMAT.
8555
8556         * utils.c (very_long_to_string): New function.
8557         (legible_very_long): Use it; don't use VERY_LONG_FORMAT.
8558
8559 2001-04-04  Christian Fraenkel  <christian.fraenkel@gmx.net>
8560
8561         * url.c (parse_uname): Would run past the end of the string if the
8562         username was present, but the URL did not contain a slash, e.g.
8563         http://foo:bar@myhost.
8564
8565 2001-04-03  KOJIMA Hajime  <kjm@rins.ryukoku.ac.jp>
8566
8567         * http.c (http_atotm): Use %A instead of %a to match full
8568         weekday.  (On most systems there is no difference.)
8569
8570 2001-04-03  Paul Bludov  <paul@ozero.net>
8571
8572         * mswindows.c (sleep): Use SleepEx() instead of Sleep().
8573         (ws_changetitle): Use alloca() instead of malloc() to avoid memory
8574         leak.
8575         (ws_mypath): Use GetModuleFileName instead of argv[0].
8576         (ws_startup): Use data.wVersion for comparison.
8577
8578 2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
8579
8580         * http.c (http_loop): Ditto.
8581
8582         * ftp.c (ftp_loop_internal): Made the check whether to continue
8583         retrieval `-O'-friendly.
8584
8585 2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
8586
8587         * netrc.c (parse_netrc): Don't trim the line endings explicitly;
8588         they will be handled as whitespace.
8589         (parse_netrc): Correctly handle lines that end with whitespace.
8590
8591 2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
8592
8593         * retr.c (retrieve_url): New variable global_download_count used
8594         to identify first retrieval.
8595
8596         * ftp.c (getftp): Ditto.
8597
8598         * http.c (gethttp): Rewind opt.dfp only on first retrieval.
8599
8600 2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
8601
8602         * init.c (cmd_address): Heap-allocate the address that gets stored
8603         to CLOSURE.  Old code would simply assign an address on the stack.
8604
8605 2001-04-01  Nicolas Lichtmaier <nick@debian.org>
8606
8607         * ftp.c (ftp_get_listing): Propagate error status.
8608         (ftp_retrieve_glob): Use it.
8609         (ftp_loop): Ditto.
8610
8611 2001-04-01  Nicolas Lichtmaier <nick@debian.org>
8612
8613         * main.c (main): Add -C to the string that is the third arg to
8614         getopt_long().
8615
8616 2001-04-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8617
8618         * ftp.c (getftp): Don't start the download from scratch if `-c'
8619         was specified, but the file is already fully downloaded.
8620
8621         * http.c (gethttp): Don't truncate a pre-existing file if `-c' was
8622         specified and the server doesn't support continued download.
8623         (gethttp): Don't start the download from scratch if `-c' was
8624         specified, but the file is already fully downloaded.
8625
8626 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
8627
8628         (recursive_retrieve): Don't clear the hash tables at this point at
8629         all; it interferes with the normal operation of register_download.
8630
8631 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
8632
8633         * recur.c (recursive_retrieve): Clear the hash tables only when
8634         they are defined.
8635
8636 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
8637
8638         * http.c (gethttp): Make sure the socket is closed with
8639         CLOSE_INVALIDATE before we have drained the body.
8640
8641 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
8642
8643         * retr.c (retrieve_url): Call register_download() for downloaded
8644         files and register_html() for downloaded HTML files.
8645
8646         * recur.c (register_download): New function; register here that a
8647         file has been downloaded, rather than in recursive_retrieve().
8648         (register_html): New function; enqueue the location of HTML files
8649         here rather than in recursive_retrieve().
8650
8651 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
8652
8653         * main.c (print_help): Use multiple fputs instead of a single ugly
8654         printf().
8655         (main): Consistently assign numbers >128 to options without a
8656         corresponding character.
8657
8658 2001-03-09  Philipp Thomas  <pthomas@suse.de>
8659
8660         * safe-ctype.h: New file. Locale independent ctype.h replacement
8661         taken from libiberty.
8662
8663         * safe-ctype.c: New file. Tables for above.
8664
8665         * Makefile.in: Add safe-ctype$o to OBJS.  Add dependencies for
8666         safe-ctype$o.
8667
8668         * cmpt.c: Remove include of ctype.h. Use ISSPACE instead of
8669         isspace.
8670
8671         * ftp-basic.c: Don't include ctype.h.
8672
8673         * ftp-ls.c: Likewise.
8674
8675         * ftp.c: Likewise.
8676
8677         * headers.c: Likewise.
8678
8679         * host.c: Likewise.
8680
8681         * html-parse.c: Likewise.
8682
8683         * html-url.c: Likewise.
8684
8685         * http.c: Likewise.
8686
8687         * init.c: Likewise.
8688
8689         * main.c: Likewise. Set LC_CTYPE along with LC_MESSAGES.
8690
8691         * netrc.c: Likewise.
8692
8693         * recur.c: Likewise.
8694
8695         * retr.c: Likewise.
8696
8697         * snprintf.c: Replace ctype.h with safe-ctype.h. Use ISDIGIT
8698         instead of isdigit.
8699
8700         * sysdep.h: Remove defines of ctype macros as they aren't needed
8701         for safe-ctype-h.
8702
8703         * url.c: Don't include ctype.h.
8704
8705         * utils.c: Likewise.
8706
8707         * wget.h: Include safe-ctype.h.
8708
8709 2001-03-27  Dan Harkless  <wget@harkless.org>
8710
8711         * Makefile.in: Moved top_builddir out of "User configuration
8712         section" of top Makefile and analogous spot in this one.
8713
8714 2001-03-17  Dan Harkless  <wget@harkless.org>
8715
8716         * Makefile.in: Include @SSL_INCLUDES@ substition in INCLUDES.
8717         Define top_builddir.  Link wget with libtool so the user doesn't
8718         have to supply a bunch of custom environment variables to
8719         correctly link with the OpenSSL shared libraries.
8720
8721 2001-03-06  Hack Kampbjorn  <hack@hackdata.com>
8722
8723         * http.c (gethttp): skip :port in host header if it is the
8724         DEFAULT_HTTPS_PORT when using SSL.
8725
8726         * url.c: move the #define of DEFAULT_HTTP_PORT, DEFAULT_FTP_PORT
8727         and DEFAULT_HTTPS_PORT to the header file so it can be use in the
8728         rest of the code.
8729         * url.h: Ditto
8730
8731 2001-03-01  Jonas Jensen  <bones@huleboer.dk>
8732
8733         * retr.c (show_progress): Correctly calculate the number of bytes
8734         in the first line of the download that have been actually
8735         downloaded in this run.
8736
8737 2001-02-23  Dan Harkless  <wget@harkless.org>
8738
8739         * main.c (print_help): --help documentation for -N said it would
8740         re-download files if they had the _same_ timestamp on server.
8741         (print_help): -nr belongs in "FTP options" section of --help
8742         output, not "Recursive retrieval" section.  Alphabetized FTP
8743         options by long option name.
8744
8745 2001-02-16  Dan Harkless  <wget@harkless.org>
8746
8747         * init.c (commands): Hack Kampbjørn <hack@hackdata.com> discovered
8748         that "httpsproxy" had been inserted into commands[] out of
8749         alphabetical order, causing "BUG: unknown command `httpuser'".
8750
8751 2001-02-13  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8752
8753         * ftp-ls.c (ftp_parse_ls): Added support of ST_MACOS (Unix-like
8754         listing without correct permissons).
8755
8756         * ftp.h (stype): Added ST_MACOS to identify the NetPresenz MacOS
8757         FTP server.
8758
8759         * ftp.c (ftp_retrieve_list): New mirroring logic: A remote file
8760         shall be donwloaded only when it's newer than the local copy or
8761         when it has the same timeestamp but its size is different. ST_VMS
8762         and ST_MACOS as special cases that lie about file size.
8763
8764         * ftp-ls.c (ftp_parse_ls): Support for ST_MACOS.
8765
8766         * Makefile.in: Removed dependency on ftpparse library due to unclear
8767         copyright issues and absence of any feedback to our queries.
8768
8769         * ftp-ls.c: Removed dependency on ftpparse library due to unclear
8770         copyright issues and absence of any feedback to our queries.
8771         (ftp_parse_ls): Added a warning message when remote server system
8772         does not seem to be suported by wget.
8773         (ftp_parse_vms_ls): New function for parsing VMS ftp
8774         server listing output.
8775         (clean_line): New function responsible for removing
8776         end-of-line characters from FTP listing texts.
8777
8778         * ftp.c (getftp): Global variables pwd and host_type are now
8779         member of the ccon structure under names ccon.id and ccon.rs.
8780
8781         * ftp.h (struct ccon): Added formed global variables from ftp.c,
8782         enum stype rs (remote system identification) and char *id (initial
8783         working directory), as suggested by Hrvoje.
8784
8785         * url.c (parse_uname): Added support for passwords containing '@'
8786         characters.
8787         (skip_uname): Ditto.
8788
8789 2001-02-11  Hrvoje Niksic  <hniksic@arsdigita.com>
8790
8791         * ftp.c (ftp_loop): Reset con.
8792
8793 2001-01-06  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8794
8795         * url.c (parse_uname): Added support for passwords containing '@'
8796         characters.
8797         (skip_uname): Ditto.
8798
8799 2001-02-11  Hack Kampbjørn  <hack@hackdata.com>
8800
8801         * url.c (parseurl): Debug-print u->ftp_type.
8802
8803 2001-02-11  Hrvoje Niksic  <hniksic@arsdigita.com>
8804
8805         * ftp.c (ftp_loop_internal): Disable padding.
8806         (getftp): Ditto.
8807
8808         * http.c (http_loop): Disable padding.
8809
8810         * retr.c (show_progress): Use it to enable padding.
8811
8812         * retr.c (rate): Optional parameter PAD for padding the rate.
8813
8814 2001-02-10  Hrvoje Niksic  <hniksic@arsdigita.com>
8815
8816         * retr.c (show_progress): Make sure that the last output line
8817         includes progress.
8818
8819 2001-02-10  Jonas Jensen  <bones@huleboer.dk>
8820
8821         * retr.c (show_progress): Print the download rate along with the
8822         percentages.
8823         Along with Anders Thorsby <anders@thorsby.dk>.
8824
8825 2001-02-10  Tim Mooney  <mooney@dogbert.cc.ndsu.NoDak.edu>
8826
8827         * ftp.h: Rename enums `command' to `wget_ftp_command' and
8828         `fstatus' to `wget_ftp_status' because old names clash with Tru64
8829         net/if.h.
8830
8831 2001-02-08  Christian Fraenkel <christian.fraenkel@gmx.net>
8832
8833         * gen_sslfunc.c: verify_callback is now static
8834
8835         * gen_sslfunc.c (init_ssl): load certificate if specified
8836
8837         * gen_sslfunc.c (ssl_printerr): new function
8838
8839         * init.c: added new --sslcertfile and --sslcertkey switches
8840
8841         * main.c: ditto
8842
8843         * options.h: ditto
8844
8845         * http.c (gethttp): abort when init_ssl fails
8846
8847 2001-01-23  Herold Heiko  <Heiko.Herold@previnet.it>
8848
8849         * mswindows.h: Include <malloc.h>; it's needed for alloca().
8850
8851 2001-01-10  Dan Harkless  <wget@harkless.org>
8852
8853         * url.c (str_url): Clarified this function's comment header after
8854         Hrvoje answered my question on the list as to when hide != 1.
8855         Also Hrvoje pointed out I need to use xstrdup() on the string literal.
8856
8857 2001-01-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8858
8859         * connect.c (bindport): Declare addrlen as int.  Diagnosed by
8860         Drazen Kacar <dave@arsdigita.com>.
8861         (conaddr): Ditto.
8862
8863 2001-01-09  Dan Harkless  <wget@harkless.org>
8864
8865         * html-url.c: A bunch of fixup of `--page-requisites'-related
8866         comments to reflect Hrvoje's changes to my code when transplanting
8867         it into this new file, to fix spelling mistakes, to clarify, etc.
8868
8869         * url.c (write_backup_file): Clarified a comment.
8870         (str_url): Henrik van Ginhoven pointed out on the list that we
8871         shouldn't give away the number of characters in the password by
8872         replacing each character with a 'x'.  Use "<password>" instead.
8873
8874         * ftp.c (ftp_retrieve_dirs): The bug where recursion into FTP
8875         directories didn't work if logging in put you in a directory other
8876         than "/" is fixed now.  Removed the comment here warning of the bug.
8877
8878         * main.c (print_help): --continue's description was misleading.
8879         We don't "restart", we "resume".  Also, better to say
8880         "partially-downloaded file" rather than just "existing file".
8881
8882 2001-01-06  Dan Harkless  <wget@harkless.org>
8883
8884         * ChangeLog: The '[Not in 1.6 branch.]'s were decided not to be
8885         the best way to go about my aim.  Removed them in favor of:
8886
8887         * ChangeLog-branches/1.6_branch.ChangeLog: New file.
8888
8889 2001-01-04  Hrvoje Niksic  <hniksic@arsdigita.com>
8890
8891         * url.c (replace_attr): New function, to be used by both
8892         TO_COMPLETE and TO_RELATIVE case in convert_links.
8893         (find_fragment): New function for finding URL fragments.
8894         (replace_attr): Better handle the case where the original string
8895         is not quoted.  Use find_fragment.
8896         (convert_links): Use replace_attr().
8897
8898 2000-12-31  Dan Harkless  <wget@harkless.org>
8899
8900         * ChangeLog: Since this flat file doesn't have multiple branches,
8901         looking at the dates would make you think that things went into
8902         1.6 that actually just went into the 1.7-dev branch.  Added "[Not
8903         in 1.6 branch.]" where appropriate to clarify.
8904
8905 2000-12-30  Dan Harkless  <wget@harkless.org>
8906
8907         * ftp.c, http.c:  Applied Hack Kampbjørn <hack@hackdata.com>'s
8908         patch to deal with h_errno not being defined in netdb.h under Cygwin.
8909
8910 2000-12-18  Csaba Raduly  <csaba.raduly@sophos.com>
8911
8912         * sysdep.h: Include <malloc.h> and <io.h> under Watcom.
8913
8914 2000-12-17  Igor Khristophorov  <igor@atdot.org>
8915
8916         * http.c (check_end): Fix test for '+' or '-'.
8917
8918 2000-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
8919
8920         * url.c (parseurl): Rename inner loop var from i to ind to avoid
8921         clash with the function top-level-declared variable i.
8922         (str_url): Likewise, rename inner-loop i to j.
8923
8924         * recur.c (parse_robots): Don't declare LEN at top of function.
8925         (robots_match): Renamed parameter FORBIDDEN to avoid hiding of
8926         global variable.
8927
8928         * main.c (main): Change erroneous use of bitwise and to logical.
8929
8930         * init.c (cmd_address): Don't heap-allocate `sin'; it can be on
8931         the stack because it will be copied to closure.
8932
8933         Thanks to Csaba Raduly's run of PC-LINT over the sources.
8934
8935 2000-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
8936
8937         * http.c (basic_authentication_encode): Use xmalloc(), not
8938         malloc().  Thanks to Csaba Raduly's run of PC-LINT over the
8939         sources.
8940
8941 2000-12-17  Csaba Raduly  <csaba.raduly@sophos.com>
8942
8943         * sysdep.h: Test for __EMX__ rather than for EMXOS2 for OS/2
8944         compilation.
8945
8946 2000-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
8947
8948         * mswindows.c: Include <errno.h>.
8949
8950         * gen_sslfunc.c: Include <errno.h>.
8951
8952         * ftp-basic.c: Don't attempt to declare errno or h_errno because
8953         they're not used.
8954
8955         * main.c: Include <errno.h> because errno is used.
8956
8957         * ftp.c: Ditto.
8958
8959         * http.c: Include <netdb.h> for h_errno.
8960
8961 2000-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
8962
8963         * html-parse.c (advance_declaration): MSVC assert() chokes on
8964         '\"'.  Use '"' instead.
8965
8966 2000-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
8967
8968         * utils.c (xfree_real): Removed.
8969         (xfree_debug): Just call free().
8970
8971         * wget.h (xfree): Make it an alias for free.
8972
8973 2000-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
8974
8975         * http.c (http_loop): Furthermore, touch output_document only if
8976         it is known to be an existing regular file.
8977
8978 2000-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
8979
8980         * ftp.c (ftp_retrieve_list): Ditto.
8981
8982         * http.c (http_loop): Touch output_document if that is used for
8983         output.
8984
8985 2000-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8986
8987         * http.c: Include gen_sslfunc.h after including Wget's headers.
8988         (persistent_available_p): Needed coma before `int ssl'.
8989
8990 2000-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
8991
8992         * ftp.c (ftp_loop_internal): Ditto.
8993
8994         * http.c (http_loop): Use it.
8995
8996         * retr.c (sleep_between_retrievals): New function that handles the
8997         logic of opt.wait and opt.waitretry.
8998
8999 2000-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
9000
9001         * rbuf.h: Implement only a single version of RBUF_READCHAR, using
9002         rbuf_read_bufferful when the buffer is depleted.
9003
9004         * rbuf.c (rbuf_read_bufferful): New function.
9005
9006 2000-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
9007
9008         * gen_sslfunc.h: Use ansi2knr style function declarations.
9009
9010         * gen_sslfunc.c: Reformat according to the GNU coding standards.
9011         More should be done.
9012
9013         * http.c (persistent_available_p): Place the cheap SSL test nearer
9014         the top of the function.
9015         (CLOSE_FINISH, CLOSE_INVALIDATE): Define only one version of each.
9016
9017 2000-12-05  Hrvoje Niksic  <hniksic@arsdigita.com>
9018
9019         * url.c (init_unsafe_char_table): Reinstate space as an unsafe
9020         char.
9021
9022 2000-12-03  Christian Fraenkel <christian.fraenkel@gmx.net>
9023
9024         * Makefile.in: added gen_sslfunc object
9025         * config.h.in: added HAVE_SSL define
9026         * connect.c: changed select_fd from static int to int
9027         * connect.h: ditto
9028         * gen_sslfunc.h: New file
9029         * gen_sslfunc.c: ditto
9030         * http.c: added HTTPS fuctionality
9031         * retrc.c: ditto
9032         * url.c: ditto
9033         * init.c: added opt.httpsproxy
9034         * options.h: ditto
9035         * rbuf.h: added alternate rbuf struct
9036         * wget.h: added CONSSLERR
9037         * rbuf.c: ditto
9038
9039         * http.c: Added HTTPS fuctionality.
9040
9041         * retrc.c: Ditto.
9042
9043         * url.c: Ditto.
9044
9045         * init.c: Added opt.httpsproxy.
9046
9047         * options.h: Ditto.
9048
9049         * rbuf.h: Added alternate rbuf struct.
9050
9051         * wget.h: Added CONSSLERR.
9052
9053         * rbuf.c: Ditto.
9054
9055 2000-11-30  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
9056
9057         * ftp-ls.c (ftp_parse_unix_ls): Added second parameter
9058         "ignore_perms" to ignore file and directory permissions for
9059         Windows NT FTP server listings.
9060         (ftp_parse_winnt_ls): New function.
9061         (ftp_parse_ls): Parses UNIX and Windows NT listings
9062         separately. Simple heuristics for distinguishing between UNIX and
9063         MS-DOS-like FTP listing provided by Windows NT FTP service.
9064
9065 2000-11-18  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
9066
9067         * ftpparse.c, ftpparse.h: New files.
9068
9069         * ftp-ls.c (ftp_parse_ls): Use ftp_parse_unix_ls for UNIX servers
9070         only. Use ftp_parse_nonunix_ls otherwise.
9071         (ftp_parse_nonunix_ls): Stub to the ftpparse library handling all
9072         exotic FTP servers.
9073
9074         * ftp.h (stype): New enum, distinguishes UNIX, VMS, and "other"
9075         FTP servers.
9076
9077         * ftp.c: New static wariables host_type, pwd, and pwd_len.
9078         (getftp): Support for VMS. Support for FTP servers that do not
9079         place you in the root directory after login.
9080         (ftp_retrieve_list): VMS is silent about the real file size, issue
9081         a more appropriate message.
9082         (ftp_get_listing): Pass host_type to ftp_parse_ls.
9083
9084         * ftp-basic.c (ftp_pwd, ftp_syst): New functions.
9085
9086 2000-11-30  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
9087
9088         * ftp-ls.c (ftp_parse_unix_ls): Added second parameter
9089         "ignore_perms" to ignore file and directory permissions for
9090         Windows NT FTP server listings.
9091         (ftp_parse_winnt_ls): New function.
9092         (ftp_parse_ls): Parses UNIX and Windows NT listings
9093         separately. Simple heuristics for distinguishing between UNIX
9094         and MS-DOS-like FTP listing provided by Windows NT FTP service.
9095
9096 2000-11-29  John Summerfield  <summer@OS2.ami.com.au>
9097
9098         * netrc.c (parse_netrc): Get rid of line ending.
9099
9100 2000-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
9101
9102         * ftp.c (ftp_retrieve_list): Undo typo "fix" until resolution by
9103         Dan.
9104
9105 2000-11-24  Karl Eichwalder  <ke@suse.de>
9106
9107         * main.c (print_help): Untabify.
9108
9109 2000-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
9110
9111         * utils.c (xrealloc_debug): Do the unregister/register thing only
9112         if the pointer has actually changed.
9113         (xmalloc_real): Declare `static' in DEBUG_MALLOC builds.
9114         (xfree_real): Ditto.
9115         (xrealloc_real): Ditto.
9116         (xstrdup_real): Ditto.
9117
9118 2000-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
9119
9120         * ftp.c (getftp): ftp_getaddress() returns a malloc'ed copy of the
9121         string; no need to strdup() it.
9122         (getftp): Make pwd_len a local variable.
9123         (ftp_loop): Free PWD before returning.
9124
9125         * init.c (cleanup): Free opt.ftp_pass only if it's non-NULL.
9126
9127 2000-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
9128
9129         * all: Use xfree() instead of free.
9130
9131         * utils.c (xfree): New function.
9132
9133 2000-11-21  Hrvoje Niksic  <hniksic@arsdigita.com>
9134
9135         * url.c (convert_links): HTML-quote the converted string.
9136
9137         * utils.c (html_quote_string): Move here from ftp-ls.c
9138         (html_quote_string): Make non-static; declare in utils.h.
9139         (html_quote_string): Convert SP to &#32;.
9140
9141 2000-11-21  Hrvoje Niksic  <hniksic@arsdigita.com>
9142
9143         * ftp.c (getftp): Reformat Jan's code according to GNU coding
9144         standards; remove (debugging?) printf's; use '\0' for the ASCII
9145         zero character.  Use alloca() instead of malloc() for
9146         inter-function temporary allocations.
9147
9148 2000-11-18  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
9149
9150         * ftpparse.c, ftpparse.h: New files.
9151
9152         * ftp-ls.c (ftp_parse_ls): Use ftp_parse_unix_ls for UNIX servers
9153         only. Use ftp_parse_nonunix_ls otherwise.
9154         (ftp_parse_nonunix_ls): Stub to the ftpparse library handling all
9155         exotic FTP servers.
9156
9157         * ftp.h (stype): New enum, distinguishes UNIX, VMS, and "other"
9158         FTP servers.
9159
9160         * ftp.c: New static wariables host_type, pwd, and pwd_len.
9161         (getftp): Support for VMS. Support for FTP servers that do not
9162         place you in the root directory after login.
9163         (ftp_retrieve_list): VMS is silent about the real file size, issue
9164         a more appropriate message.
9165         (ftp_get_listing): Pass host_type to ftp_parse_ls.
9166
9167         * ftp-basic.c (ftp_pwd, ftp_syst): New functions.
9168
9169 2000-11-21  Hrvoje Niksic  <hniksic@arsdigita.com>
9170
9171         * hash.c (hash_table_put): Don't overwrite deleted mappings.
9172
9173 2000-11-21  Hrvoje Niksic  <hniksic@arsdigita.com>
9174
9175         * hash.c (find_mapping): New function.
9176         (hash_table_get): Use it.
9177         (hash_table_get_pair): Ditto.
9178         (hash_table_exists): Ditto.
9179         (hash_table_remove): Ditto.
9180         (hash_table_remove): Really delete the entry if the mapping
9181         following LOCATION is empty.
9182
9183         * utils.c (string_set_add): Check whether the element has existed
9184         before.
9185
9186         * hash.c (hash_table_get_pair): New function.
9187
9188 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
9189
9190         * http.c (http_process_type): Ignore trailing whitespace; use
9191         strdupdelim().
9192
9193         * recur.c (recursive_retrieve): Use the new `convert' field.
9194         (convert_all_links): Ditto.
9195         (convert_all_links): Don't respect meta_disallow_follow.
9196
9197         * html-url.c (handle_link): Fill out link_relative_p and
9198         link_complete_p.
9199
9200         * url.h (struct _urlpos): Make elements more readable.
9201
9202         * recur.c (recursive_retrieve): Call slist_prepend instead of
9203         slist_append.
9204         (convert_all_links): Call slist_nreverse before iterating through
9205         urls_html.
9206
9207         * utils.c (slist_prepend): New function.
9208         (slist_nreverse): Ditto.
9209
9210 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
9211
9212         * http.c (check_end): Constify.
9213
9214 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
9215
9216         * http.c (http_loop): If username and password are known, try the
9217         `Basic' authentication scheme by default.
9218
9219         * connect.h: Declare test_socket_open.
9220
9221 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
9222
9223         * version.c: Bump version from 1.5.3+dev to 1.7-dev.
9224
9225 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
9226
9227         * http.c (gethttp): Don't use the return value of sprintf().
9228         (gethttp): Inhibit keep-alive if opt.http_keep_alive is 0.
9229
9230 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
9231
9232         * recur.c (recursive_retrieve): Print the "so we don't load"
9233         debugging message only if we really don't load.
9234
9235         * http.c (gethttp): Inhibit keep-alive if proxy is being used.
9236         (gethttp): Don't request keep-alive if keep-alive is inhibited.
9237
9238 2000-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
9239
9240         * http.c (gethttp): Make the HTTP persistent connections more
9241         robust.
9242
9243 2000-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
9244
9245         * retr.c (get_contents): If use_expected, make sure that the
9246         appropriate amount of data is being read.
9247
9248         * http.c (gethttp): Check for both `Keep-Alive: ...' and
9249         `Connection: Keep-Alive'.
9250
9251         * wget.h (DEBUGP): Call debug_logprintf only if opt.debug is
9252         turned on.
9253
9254 2000-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
9255
9256         * http.c (connection_available_p): Use it.
9257
9258         * connect.c (test_socket_open): New function.
9259
9260         * http.c (gethttp): Support persistent connections.  Based on the
9261         ideas, and partly on code, by Sam Horrocks <sam@daemoninc.com>.
9262         (register_persistent): New function.
9263         (connection_available_p): Ditto.
9264         (invalidate_connection): Ditto.
9265
9266 2000-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
9267
9268         * url.c (convert_links): Handle UREL2ABS case.
9269
9270         * recur.c (recursive_retrieve): Instead of the list
9271         urls_downloaded, use hash tables dl_file_url_map and
9272         dl_url_file_map.
9273         (convert_all_links): Use them to retrieve data.
9274
9275         * host.c (clean_hosts): Free the hash tables.
9276
9277         * main.c (private_initialize): Call host_init().
9278
9279         * host.c (store_hostaddress): Use a saner, hash table-based data
9280         model.
9281         (realhost): Ditto.
9282         (host_init): Initialize the hash tables.
9283
9284 2000-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
9285
9286         * utils.c (slist_append): Eviscerate NOSORT.  Hash tables are now
9287         used for what the sorted slists used to be used for.
9288         (slist_contains): Don't rely on the list being sorted.
9289         (slist_append): Simplify the code.
9290
9291         * recur.c (recursive_cleanup): Use free_string_set.
9292
9293         * utils.c (string_set_add, string_set_exists, string_set_free):
9294         New functions for easier freeing of hash tables whose keys are
9295         strdup'ed strings.
9296
9297         * recur.c (recursive_retrieve): Use the hash table functions for
9298         storing undesirable URLs.
9299
9300         * hash.c: New file.
9301
9302 2000-11-17  Hrvoje Niksic  <hniksic@arsdigita.com>
9303
9304         * main.c (private_initialize): Call url_init.
9305         (main): Call private_initialize.
9306
9307         * url.c (unsafe_char_table): New table.
9308         (UNSAFE_CHAR): Use it.
9309         (init_unsafe_char_table): New function.
9310         (url_init): New function; call init_unsafe_char_table.
9311
9312 2000-11-16  Hrvoje Niksic  <hniksic@arsdigita.com>
9313
9314         * mswindows.h: Define snprintf and vsnprintf to _snprintf and
9315         _vsnprintf respectively.
9316
9317 2000-11-15  Hrvoje Niksic  <hniksic@arsdigita.com>
9318
9319         * config.h.in: Do the _XOPEN_SOURCE and _SVID_SOURCE things only
9320         on Linux.
9321
9322 2000-11-15  Hrvoje Niksic  <hniksic@arsdigita.com>
9323
9324         * html-url.c (handle_link): Handle HTML fragment identifiers.
9325
9326         * recur.c (recursive_retrieve): If norobot info is respected and
9327         the file is specified not to be followed by robots, respect that.
9328
9329         * html-url.c (collect_tags_mapper): Handle <meta name=robots
9330         content=X>.  For us the important cases are where X is NONE or
9331         where X contains NOFOLLOW.
9332         (get_urls_html): Propagate that information to the caller.
9333
9334 2000-11-13  Hrvoje Niksic  <hniksic@arsdigita.com>
9335
9336         * url.c (convert_links): Unlink the file we might be reading from
9337         before writing to it.
9338         (convert_links): Use alloca instead of malloc for
9339         filename_plus_orig_suffix.
9340
9341 2000-11-12  Hrvoje Niksic  <hniksic@arsdigita.com>
9342
9343         * host.c (realhost): Add HOST to the list with quality==0 only if
9344         it wasn't already there.
9345         Based on analysis by Lu Guohan <feng@public.bjnet.edu.cn>.
9346
9347 2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
9348
9349         * url.c (get_urls_file): Ditto.
9350         (convert_links): Ditto.
9351
9352         * html-url.c (get_urls_html): Use read_file() instead of
9353         load_file().
9354
9355         * utils.c (read_file): New function, instead of the old
9356         load_file().
9357         (read_file_free): Ditto.
9358
9359         * url.c (findurl): Search only for the supported protocols.
9360         (convert_links): Use fwrite() when writing out a region of
9361         characters.
9362
9363 2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
9364
9365         * ftp-ls.c: Move html_quote_string and ftp_index here.
9366
9367         * url.c: Remove get_urls_html, since that's now in html-url.c.
9368
9369         * html-url.c: New file.
9370
9371         * html-parse.c: New file.
9372
9373 2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
9374
9375         * init.c (run_wgetrc): Don't bother killing off '\r' since
9376         pars_line() skips whitespace at end of line anyway.
9377         (parse_line): Oops, it didn't.  Now it does.
9378
9379         * recur.c (parse_robots): Ditto here.
9380
9381         * ftp-ls.c (ftp_parse_unix_ls): Kill off the newline character
9382         manually because read_whole_line no longer does.
9383
9384         * utils.c (read_whole_line): Rewrite to: a) use less memory
9385         (reallocates to needed size after work), b) work faster -->
9386         fgets() instead of getc, c) be more correct --> doesn't kill the
9387         newline character at the end of line.
9388
9389 2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
9390
9391         * init.c (comind): Initialize MAX to array size - 1.
9392
9393 2000-11-08  Hrvoje Niksic  <hniksic@arsdigita.com>
9394
9395         * url.c (construct): Changed last_slash[-1] to *(last_slash - 1).
9396         Suggested by Edward J. Sabol.
9397
9398 2000-11-08  Hrvoje Niksic  <hniksic@arsdigita.com>
9399
9400         * url.c (construct): Handle the case where host name is not
9401         followed by a slash.
9402
9403 2000-11-06  Hrvoje Niksic  <hniksic@arsdigita.com>
9404
9405         * init.c: commands[] need to be sorted!  ("base" wasn't.)
9406
9407 2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
9408
9409         * wget.h (DO_REALLOC_FROM_ALLOCA): Use braces to disambiguate
9410         `if'.
9411
9412 2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
9413
9414         * url.c (construct): Insert unneeded initialization for the
9415         compiler to shut up.
9416
9417         * config.h.in: Define _XOPEN_SOURCE to 500 to get the prototype
9418         for strptime() (*duh*).  Define _SVID_SOURCE to get S_IFLNK which
9419         otherwise gets lost when you define _XOPEN_SOURCE.
9420
9421         * utils.c (touch): Include the file name in the error message.
9422         From Debian.
9423
9424 2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
9425
9426         * log.c (logvprintf): Use vsnprintf() in all cases.  If necessary,
9427         resize the buffer to fit the formated message.  That way, messages
9428         of arbitrary size may be printed.
9429         (logvprintf): Use saved_append() to optionally log the last
9430         several lines of output.
9431         (logputs): Ditto.
9432         (log_close): Adapt to new data structures.
9433         (log_dump): Ditto.
9434         (redirect_output): Print messages to stderr, not to stdout.
9435
9436         * log.c (saved_append_1): New function.  Replaces the old logging
9437         system ("log all output until 10M characters") with a new, much
9438         more reasonable one ("log last screenful of text").
9439         (saved_append): New function; call saved_append_1.
9440         (free_log_line): New function.
9441
9442 2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
9443
9444         * url.c (construct): Fix comment.
9445         (find_last_char): Document.
9446
9447 2000-11-04  Hrvoje Niksic  <hniksic@arsdigita.com>
9448
9449         * snprintf.c: New file.
9450
9451 2000-11-03  Hrvoje Niksic  <hniksic@arsdigita.com>
9452
9453         * wget.h: If HAVE_STDARG_H is not defined, don't declare argument
9454         types to logprintf() and debug_logprintf().
9455
9456 2000-11-02  Hrvoje Niksic  <hniksic@arsdigita.com>
9457
9458         * ftp.c (ftp_loop_internal): Hide the password from the URL when
9459         printing non-verbose.  Problem spotted by Dariusz Mlynarczyk
9460         <darekm@bydg.lomac.com.pl>.
9461
9462 2000-11-02  Junio Hamano  <junio@twinsun.com>
9463
9464         * ftp-basic.c (ftp_login): Make comparison case-insensitive.
9465
9466 2000-11-02  Tyler Riddle  <triddle@liquidmarket.com>
9467
9468         * http.c (known_authentication_scheme_p): Recognize NTML
9469         authentication.
9470         (create_authorization_line): Treat NTML the same as `Basic'.
9471
9472 2000-11-02  Hrvoje Niksic  <hniksic@arsdigita.com>
9473
9474         * retr.c (retrieve_url): Free url before returning.
9475         (retrieve_url): Free mynewloc before returning.
9476         Spotted by Mark A. Mankins <Mankins_Mark@prc.com>.
9477
9478 2000-11-02  Hrvoje Niksic  <hniksic@arsdigita.com>
9479
9480         * url.c (parseurl): Remove possible reading past the end of
9481         sup_protos[].  Spotted by Mark A. Mankins <Mankins_Mark@prc.com>.
9482
9483 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
9484
9485         * main.c (main): In case of opt.downloaded overflowing, print
9486         <overflow> instead of a totally bogus random value.
9487
9488         * retr.c (retrieve_from_file): Ditto.
9489
9490         * recur.c (recursive_retrieve): Ditto.
9491
9492         * main.c (main): Ditto.
9493
9494         * http.c (http_loop): Ditto.
9495
9496         * ftp.c (ftp_loop_internal): Use downloaded_increase() instead of
9497         `+=', and downloaded_exceeds_quota() instead of the simple-minded
9498         check.
9499         (ftp_retrieve_list): Ditto.
9500         (ftp_retrieve_dirs): Ditto.
9501         (ftp_retrieve_glob): Ditto.
9502
9503         * retr.c (downloaded_increase): New function.  Notice overflows of
9504         opt.downloaded.
9505         (downloaded_exceeds_quota): Make sure that opt.downloaded is not
9506         used if it overflowed.
9507
9508         * options.h (struct options): New member downloaded_overflow.
9509
9510 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
9511
9512         * wget.h (enum): Remove extra space after last enumeration.
9513
9514 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
9515
9516         * main.c (main): Use legible_very_long() for printing
9517         opt.downloaded.
9518
9519         * utils.c (legible_1): New function that operates on strings and
9520         does the brunt of legible()'s work.
9521         (legible): Use legible_1().
9522         (legible_very_long): New function; dump the argument with
9523         sprintf(), and call legible_1().
9524
9525         * options.h (struct options): Use VERY_LONG_TYPE for
9526         opt.downloaded.
9527
9528         * sysdep.h (VERY_LONG_TYPE): Define it to have a 64-bit or greater
9529         type.
9530
9531         * config.h.in: Make sure that SIZEOF_LONG and SIZEOF_LONG_LONG get
9532         defined.  Define HAVE_LONG_LONG if long long is available.
9533
9534 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
9535
9536         * utils.c (long_to_string): Update with a later, better version.
9537
9538 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
9539
9540         * url.c (path_simplify_with_kludge): New function.
9541         (path_simplify_with_kludge): Disable it.  Instead...
9542         (parse_dir): ...make sure that at this point the right thing is
9543         done, i.e. that "query" part of the URL (?...) is always assigned
9544         to the file, never to the directory portion of the path.
9545
9546 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
9547
9548         * retr.c (retrieve_url): Detect redirection cycles.
9549
9550 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
9551
9552         * url.c (get_urls_html): Decode HTML entities using
9553         html_decode_entities.
9554
9555         * html.c (htmlfindurl): Don't count the `#' in numeric entities
9556         (&#NNN;) as an HTML fragemnt.
9557         (html_decode_entities): New function.
9558
9559 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
9560
9561         * html.c (htmlfindurl): Fix recognition of # HTML fragments.
9562
9563 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
9564
9565         * url.c (construct): Rewritten for clarity.  Avoids the
9566         unnecessary copying and stack-allocation the old version
9567         performed.
9568
9569 2000-10-31  Hrvoje Niksic  <hniksic@arsdigita.com>
9570
9571         * ftp.c (getftp): Ditto.
9572
9573         * http.c (gethttp): Rewind the stream when retrying from scratch.
9574
9575 2000-10-31  Hrvoje Niksic  <hniksic@arsdigita.com>
9576
9577         * retr.c (retrieve_url): Use url_concat() to handle relative
9578         redirections instead of /ad hoc/ code.
9579
9580         * url.c (url_concat): New function encapsulating weird
9581         construct().
9582         (urllen_http_hack): New function.
9583         (construct): When constructing new URLs, recognize that `?' does
9584         not form part of the file name in HTTP.
9585
9586 2000-10-13  Adrian Aichner  <adrian@xemacs.org>
9587
9588         * retr.c: Add msec timing support for WINDOWS.
9589         * retr.c (reset_timer): GetSystemTime() on WINDOWS.
9590         * retr.c (elapsed_time): Calculate delta time to msec on WINDOWS.
9591
9592 2000-10-27  Dan Harkless  <wget@harkless.org>
9593
9594         * retr.c (retrieve_url): Manually applied T. Bharath
9595         <TBharath@responsenetworks.com>'s patch to get wget to grok
9596         illegal relative URL redirects.  Reformatted and re-commented it.
9597
9598 2000-10-23  Dan Harkless  <wget@harkless.org>
9599
9600         * connect.c (make_connection and bindport): Manually applied Rob
9601         Mayoff <mayoff@dqd.com>'s 1.5.3 patch to add --bind-address,
9602         changing coding style to GNU's.
9603
9604         * ftp.c (ftp_loop_internal): --delete-after wasn't implemented for
9605         files downloaded via FTP.  Per a comment, .listing files were not
9606         counted towards number of bytes and files downloaded because they're
9607         deleted anyway.  Well, they aren't under -nr, so count them then.
9608
9609         * init.c: Manually applied Rob Mayoff's 1.5.3 patch to add
9610         --bind-address, alphabetizing, changing coding style to GNU's,
9611         commenting, and renaming cmd_ip_address() to cmd_address() to
9612         imply hostnames also okay.
9613
9614         * main.c (main): --delete-after didn't delete the root of the
9615         tree.  Ignore --convert-links if --delete-after was specified.
9616         Manually applied Rob Mayoff's 1.5.3 patch to add --bind-address,
9617         fixing duplicate use of added-since-1.5.3 case value.
9618         (print_help): Clarified that --delete-after deletes local files.
9619         Rob forgot to add a line for his new --bind-address option.
9620
9621         * options.h (struct options): Manually applied Rob Mayoff's patch
9622         to add --bind-address (bind_address structure member).
9623
9624         * recur.c (recursive_retrieve): Improved comment; added DEBUGP().
9625         Ignore --convert-links if --delete-after was specified.
9626
9627         * retr.c (retrieve_from_file): Just added a DEBUGP().
9628
9629 2000-10-19  Dan Harkless  <wget@harkless.org>
9630
9631         * ftp.c (ftp_loop_internal): downloaded_file() enumerators changed.
9632         (getftp): Applied Piotr Sulecki <Piotr.Sulecki@ios.krakow.pl>'s
9633         patch to work around FTP servers that incorrectly respond to the
9634         "REST" command with the remaining size rather than the total file size.
9635
9636         * http.c (gethttp): Improved a comment and added code to tack on
9637         ".html" to text/html files without that extension when -E specified.
9638         (http_loop): Use new downloaded_file() enumerators and deal with
9639         the case of gethttp() called xrealloc() on u->local.
9640
9641         * init.c (commands): Added new "htmlextension" command.
9642         Also renamed John Daily's cmd_quad() to the more descriptive
9643         cmd_lockable_boolean(), alpha-sorted the CMD_DECLARE()s and
9644         removed duplicate cmd_boolean() declaration.
9645
9646         * main.c (print_help): Added my new -E / --html-extension option.
9647         (main): Undocumented --email-address option previously used -E synonym.
9648         Stole it away for the much more deserving --html-extension's use.
9649
9650         * options.h (struct options): Added html_extension field.
9651
9652         * url.c (convert_links): URL X that we saved as X.html locally due
9653         to -E needs to be backed up as X.orig, not X.html.orig.  Added comments.
9654         (downloaded_file): Now remembers if we added .html extension to a file.
9655
9656         * url.h (downloaded_file_t): Added extra enumerators to support above.
9657         (downloaded_file): Now takes and returns a downloaded_file_t.
9658
9659         * wget.h (unnamed "dt" enum): Added ADDED_HTML_EXTENSION enumerator.
9660
9661 2000-10-09  Dan Harkless  <wget@harkless.org>
9662
9663         * html.c (htmlfindurl): Added unneeded initialization to quiet warning.
9664
9665         * main.c (print_help): Clarified what --retr-symlinks does.
9666
9667 2000-09-15  John Daily  <jdaily@cyberdude.com>
9668
9669         * init.c: Add support for "always" and "never" values to allow
9670         .wgetrc to override commandline (useful e.g. with .pm files
9671         calling `wget --passive-ftp' when your firewall doesn't allow that).
9672
9673         * ftp.c (getftp): passive_ftp is first option to support always/never.
9674
9675 2000-08-30  Dan Harkless  <wget@harkless.org>
9676
9677         * ftp.c (ftp_retrieve_list): Use new INFINITE_RECURSION #define.
9678
9679         * html.c: htmlfindurl() now takes final `dash_p_leaf_HTML' parameter.
9680         Wrapped some > 80-column lines.  When -p is specified and we're at a
9681         leaf node, do not traverse <A>, <AREA>, or <LINK> tags other than
9682         <LINK REL="stylesheet">.
9683
9684         * html.h (htmlfindurl): Now takes final `dash_p_leaf_HTML' parameter.
9685
9686         * init.c: Added new -p / --page-requisites / page_requisites option.
9687
9688         * main.c (print_help): Clarified that -l inf and -l 0 both allow
9689         infinite recursion.  Changed the unhelpful --mirrior description
9690         to simply give the options it's equivalent to.  Added new -p option.
9691         (main): Added some comments; handle new -p / --page-requisites.
9692
9693         * options.h (struct options): Added new page_requisites field.
9694
9695         * recur.c: Changed "URL-s" to "URLs" and "HTML-s" to "HTMLs".
9696         Calculate and pass down new `dash_p_leaf_HTML' parameter to
9697         get_urls_html().  Use new INFINITE_RECURSION #define.
9698
9699         * retr.c: Changed "URL-s" to "URLs".  get_urls_html() now takes
9700         final `dash_p_leaf_HTML' parameter.
9701
9702         * url.c: get_urls_html() and htmlfindurl() now take final
9703         `dash_p_leaf_HTML' parameter.
9704
9705         * url.h (get_urls_html): Now takes final `dash_p_leaf_HTML' parameter.
9706
9707         * wget.h: Added some comments and new INFINITE_RECURSION #define.
9708
9709 2000-08-23  Dan Harkless  <wget@harkless.org>
9710
9711         * main.c (print_help): -B / --base was not mentioned.
9712
9713 2000-08-22  Dan Harkless  <wget@harkless.org>
9714
9715         * main.c (print_help): Modified -nc description to mention that it
9716         also prevents the creation of multiple versions of the same file
9717         with ".<number>" suffixes.
9718
9719 2000-07-14  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
9720
9721         * retr.c (retrieve_url): Consistently strdup opt.referer when
9722         setting u->referer.
9723
9724 2000-06-09  Dan Harkless  <wget@harkless.org>
9725
9726         * main.c (print_help): --help output for --waitretry was over 80 cols.
9727
9728 2000-06-09  Hrvoje Niksic  <hniksic@iskon.hr>
9729
9730         * url.c (encode_string): Fix comment.
9731         Suggested by Herold Heiko <Heiko.Herold@previnet.it>.
9732
9733 2000-06-01  Const Kaplinsky  <const@ce.cctpu.edu.ru>
9734
9735         * ftp.c (ftp_retrieve_list): Change permissions only on plain
9736         files.
9737
9738 2000-06-01  Hrvoje Niksic  <hniksic@iskon.hr>
9739
9740         * url.c (str_url): Print the port number only if it's different
9741         from the default port number for that protocol.
9742
9743 2000-05-22  Dan Harkless  <wget@harkless.org>
9744
9745         * main.c (print_help): Added --help line for Damir Dzeko
9746         <ddzeko@zesoi.fer.hr>'s until-now-undocumented --referer option.
9747         Removed comments that --referer and --waitretry were undocumented.
9748         Changed "`.wgetrc' command" to "`.wgetrc'-style command" on --help
9749         line for --execute.
9750
9751 2000-05-18  Hrvoje Niksic  <hniksic@iskon.hr>
9752
9753         * ftp.c (getftp): Ditto.
9754
9755         * http.c (gethttp): Check for return value of fclose/fflush.
9756
9757 2000-04-12  Hrvoje Niksic  <hniksic@iskon.hr>
9758
9759         * host.c (store_hostaddress): Instead of shifting ADDR, start
9760         copying from the correct address.
9761
9762 2000-04-12  Hrvoje Niksic  <hniksic@iskon.hr>
9763
9764         * http.c (gethttp): Don't free REQUEST -- it was allocated with
9765         alloca().
9766         Pointed out by Gisle Vanem <gvanem@eunet.no>.
9767
9768 2000-04-04  Dan Harkless  <wget@harkless.org>
9769
9770         * host.c (store_hostaddress): R. K. Owen's patch introduces a
9771         "left shift count >= width of type" warning on 32-bit
9772         architectures.  Got rid of it by tricking the compiler w/ a variable.
9773
9774         * url.c (UNSAFE_CHAR): The macro didn't include all the illegal
9775         characters per RFC1738, namely everything above '~'.  It also
9776         generated a warning on OSes where char =~ unsigned char.  Fixed.
9777
9778 1998-10-17  Hrvoje Niksic  <hniksic@srce.hr>
9779
9780         * http.c (http_process_type): Removed needless strdup(), a memory
9781         leak.
9782
9783 1998-09-25  Hrvoje Niksic  <hniksic@srce.hr>
9784
9785         * html.c (htmlfindurl): Set PH to the first occurrence of `#'.
9786
9787 1998-09-25  Simon Munton  <simonm@m4data.co.uk>
9788
9789         * init.c (wgetrc_file_name): Don't free HOME under Windows.
9790
9791 1998-12-01  "R. K. Owen"  <rkowen@Nersc.GOV>
9792
9793         * host.c (store_hostaddress): Fix for big endian 64-bit machines.
9794
9795 1998-12-01  Hrvoje Niksic  <hniksic@srce.hr>
9796
9797         * url.c (UNSAFE_CHAR): New macro.
9798         (contains_unsafe): Use it.
9799         (encode_string): Ditto.
9800
9801 1998-12-01  Hrvoje Niksic  <hniksic@srce.hr>
9802
9803         * main.c (i18n_initialize): Use LC_MESSAGES only if available.
9804
9805 2000-03-31  Hrvoje Niksic  <hniksic@srce.hr>
9806
9807         * Use TOUPPER/TOLOWER.
9808
9809 1998-12-22  Alexander V. Lukyanov  <lav@yars.free.net>
9810
9811         * ftp-opie.c (btoe): Zero-terminate OSTORE.
9812
9813 2000-03-21  Hrvoje Niksic  <hniksic@iskon.hr>
9814
9815         * wget.h (DO_REALLOC_FROM_ALLOCA): Ditto.
9816
9817         * sysdep.h (ISALNUM): New macro.
9818         (TOLOWER): Ditto.
9819         (TOUPPER): Ditto.
9820
9821 2000-03-10  Dan Harkless  <wget@harkless.org>
9822
9823         * html.c (idmatch): Implemented checking of my new --follow-tags
9824         and --ignore-tags options.
9825
9826         * init.c (commands): Added comment reminding people adding new
9827         entries doing allocation to add corresponding freeing in cleanup().
9828         (commands): Added new followtags and ignoretags commands.
9829         (cleanup): Free storage for new followtags and ignoretags.
9830
9831         * main.c: Use of "comma-separated list" was random -- normalized
9832         it.  Did some alphabetization.  Added comments pointing out
9833         "Options without arguments" and "Options accepting an argument"
9834         sections of long_options[].  Added new options --follow-tags and
9835         -G / --ignore-tags.  Added comment that Damir's --referer is
9836         currently undocumented.  Added comment that Heiko's --waitretry is
9837         partially undocumented (mentioned in --help but not in
9838         wget.texi).  Moved improperly sorted 24, 129, and 'G' cases.
9839
9840         * options.h (struct options): Added new fields follow_tags and
9841         ignore_tags.
9842
9843         * wget.h: Added "#define EQ 0" so we can say "strcmp(a, b) == EQ".
9844
9845 2000-03-02  Dan Harkless  <wget@harkless.org>
9846
9847         * ftp.c (ftp_loop_internal): Heiko introduced "suggest explicit
9848         braces to avoid ambiguous `else'" warnings.  Eliminated them.
9849
9850         * http.c (gethttp): Dan Berger's query string patch is totally
9851         bogus.  If you have two different URLs, gen_page.cgi?page1 and
9852         get_page.cgi?page2, they'll both be saved as get_page.cgi and the
9853         second will overwrite the first.  Also, parameters to implicit
9854         CGIs, like "http://www.host.com/db/?2000-03-02" cause the URLs to
9855         be printed with trailing garbage characters, and could seg fault.
9856         Backing out the patch, which Dan B. informed me by email was just
9857         a kludge to download StarOffice from Sun made necessary due to
9858         wget's unconditional escaping of certain characters (room for an
9859         option there?).
9860         (http_loop): Heiko introduced "suggest explicit braces to avoid
9861         ambiguous `else'" warnings.  Eliminated them.
9862
9863         * main.c: Heiko's --wait / --waitretry backwards compatibility
9864         code looks to have been totally untested -- automatic variable
9865         'wr' was used without being initialized, and a long int was passed
9866         into setval()'s char* val parameter.
9867
9868         * recur.c (parse_robots): Applied Edward J. Sabol
9869         <sabol@alderaan.gsfc.nasa.gov>'s patch for Guan Yang's reported
9870         problem with "User-agent:<space>*<space>" lines in robots.txt.
9871
9872         * url.c (parseurl, str_url): Removing Dan Berger's code (see
9873         http.c above for explanation).
9874
9875 1999-08-25  Heiko Herold  <Heiko.Herold@previnet.it>
9876
9877         * ftp.c: Respect new option waitretry.
9878
9879 2000-01-30  Damir Dzeko  <ddzeko@zesoi.fer.hr>
9880
9881         * http.c (gethttp): Send custom Referer, if required.
9882
9883 1999-09-24  Charles G Waldman  <cgw@fnal.gov>
9884
9885         * netrc.c (parse_netrc): Allow passwords to contain spaces.
9886
9887         * netrc.c (parse_netrc): New function.
9888
9889 1999-09-17  Dan Berger  <dberger@ix.netcom.com>
9890
9891         * http.c (gethttp): Send it.
9892
9893         * url.c (parseurl): Detect query string in HTTP URL-s.
9894         (str_url): Print it.
9895
9896 2000-03-02  HIROSE Masaaki  <hirose31@t3.rim.or.jp>
9897
9898         * html.c (html_allow): Add <link href=...> and <script src=...>.
9899
9900 1999-05-02  andrew deryabin  <djsf@softhome.net>
9901
9902         * http.c (gethttp): Specify port in `Host' header only if it's
9903         different from 80.
9904
9905 1998-11-03  Edward J. Sabol  <sabol@alderaan.gsfc.nasa.gov>
9906
9907         * recur.c (recursive_retrieve): If a finite maximum depth is
9908         specified, and we're are already at that depth, don't download the
9909         HTML file for parsing.
9910
9911 2000-03-01  Dan Harkless  <wget@harkless.org>
9912
9913         * ftp.c (ftp_loop_internal): Call new downloaded_file() function,
9914         even though we don't do conversion on HTML files retrieved via
9915         FTP, so _current_ usage of downloaded_file() makes this call unneeded.
9916         (ftp_retrieve_list): Added a comment saying where we need to
9917         stat() a .orig file if FTP'd HTML file conversion is ever implemented.
9918         (ftp_retrieve_list): "Local file '%s' is more recent," is sometimes
9919         a lie -- reworded as "Server file no newer than local file '%s' --".
9920
9921         * http.c (http_loop): Fixed a typo and clarified a comment.
9922         (http_loop): When -K and -N are specified together, compare size
9923         and timestamp of server file X against local file X.orig (if
9924         extant) rather than converted local file X.
9925         (http_loop): "Local file '%s' is more recent," is sometimes a lie
9926         -- reworded as "Server file no newer than local file '%s' --".
9927         (http_loop): Call new downloaded_file() function to prevent
9928         wrongful overwriting of .orig file when -N is specified.
9929
9930         * url.c (convert_links): When -K specified, only rename X to
9931         X.orig if downloaded_file() returns TRUE.  Otherwise when we skip
9932         file X due to -N, we clobber an X.orig from a previous invocation.
9933         (convert_links): Call the failsafe xstrdup(), not the real strdup().
9934         (convert_links): Added a note asking anyone who understands how
9935         multiple URLs can correspond to a single file to comment it.
9936         (downloaded_file): Added this new function.
9937
9938         * url.h (downloaded_file): Added prototype for this new function
9939         as well as its downloaded_file_t enum type.
9940
9941         * wget.h (boolean): Added this new typedef and TRUE and FALSE #defines.
9942
9943 2000-02-29  Dan Harkless  <wget@harkless.org>
9944
9945         * version.c: Upped version to developer-only "1.5.3+dev".
9946
9947 2000-02-18  Dan Harkless  <wget@harkless.org>
9948
9949         * init.c (backup_converted): Added this new option.
9950
9951         * main.c (-K / --backup-converted): Added this new option.
9952
9953         * options.h (backup_converted): Added this new option.
9954
9955         * url.c (convert_links): When backup_converted is specified, save
9956         file X as X.orig before converting.
9957
9958         * url.h (urlpos): Fixed typo -- said "Rekative" instead of "Relative".
9959
9960 1998-09-21  Hrvoje Niksic  <hniksic@srce.hr>
9961
9962         * version.c: Wget 1.5.3 is released.
9963
9964 1998-09-21  Hrvoje Niksic  <hniksic@srce.hr>
9965
9966         * host.c (ftp_getaddress): Don't warn when reverse-lookup of local
9967         address doesn't yield FQDN.
9968
9969 1998-09-21  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
9970
9971         * cmpt.c (strerror): Fix declaration of sys_errlist.
9972
9973 1998-09-11  Hrvoje Niksic  <hniksic@srce.hr>
9974
9975         * main.c (main): Don't use an array subscript as the first
9976         argument to STRDUP_ALLOCA.
9977         From Kaveh R. Ghazi.
9978
9979 1998-09-11  Szakacsits Szabolcs  <szaka@sienet.hu>
9980
9981         * html.c (htmlfindurl): Download table background.
9982
9983 1998-09-11  Hans Grobler  <grobh@conde.ee.sun.ac.za>
9984
9985         * init.c (parse_line): Would free *com before allocating it.
9986         (parse_line): Would free com instead of *com.
9987
9988 1998-09-10  Howard Gayle  <howard@fjst.com>
9989
9990         * url.c (get_urls_html): Would drop the last character of the
9991         link.
9992
9993 1998-09-10  Hrvoje Niksic  <hniksic@srce.hr>
9994
9995         * http.c (http_loop): Don't print status code if quiet.
9996
9997 1998-09-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9998
9999         * log.c: Use <stdarg.h> only when __STDC__.
10000
10001 1998-09-10  Adam D. Moss  <adam@foxbox.org>
10002
10003         * html.c (htmlfindurl): Download <layer src=...>.
10004
10005 1998-09-10  Howard Gayle  <howard@fjst.com>
10006
10007         * ftp.c (ftp_retrieve_list): Don't update the time stamp of a file
10008         not retrieved.
10009
10010 1998-06-27  Hrvoje Niksic  <hniksic@srce.hr>
10011
10012         * utils.c: Include <libc.h> on NeXT.
10013
10014 1998-06-26  Heinz Salzmann  <heinz.salzmann@intermetall.de>
10015
10016         * url.c (get_urls_html): Fix calculation of URL position.
10017
10018 1998-06-23  Hrvoje Niksic  <hniksic@srce.hr>
10019
10020         * version.c: Wget 1.5.2 is released.
10021
10022 1998-06-23  Dave Love  <d.love@dl.ac.uk>
10023
10024         * ftp.c, init.c, netrc.c: Include errno.h.
10025
10026         * http.c: Include errno.h and time header.
10027
10028         * Makefile.in (exext): Define.
10029         (install.bin, uninstall.bin): Use it.
10030
10031 1998-06-21  Hrvoje Niksic  <hniksic@srce.hr>
10032
10033         * http.c (http_loop): Don't attempt to compare local and remote
10034         sizes if the remote size is unknown.
10035
10036 1998-06-16  Hrvoje Niksic  <hniksic@srce.hr>
10037
10038         * url.c (get_urls_html): Use malloc() instead of alloca in the
10039         loop.
10040
10041 1998-06-13  Hrvoje Niksic  <hniksic@srce.hr>
10042
10043         * version.c: Wget 1.5.2-b4 is released.
10044
10045 1998-06-13  Hrvoje Niksic  <hniksic@srce.hr>
10046
10047         * url.c (get_urls_html): Ignore spaces before and after the URI.
10048
10049 1998-06-08  Wanderlei Antonio Cavassin  <cavassin@conectiva.com.br>
10050
10051         * ftp.c (getftp): Translate `done'.
10052
10053 1998-06-06  Hrvoje Niksic  <hniksic@srce.hr>
10054
10055         * version.c: Wget 1.5.2-b3 is released.
10056
10057 1998-06-06  Alexander Kourakos  <awk@bnt.com>
10058
10059         * init.c (cleanup): Close dfp, don't free it.
10060
10061 1998-06-06  Hrvoje Niksic  <hniksic@srce.hr>
10062
10063         * utils.c (make_directory): Twiddle.
10064
10065         * config.h.in: Added template for access().
10066
10067 1998-06-05  Mathieu Guillaume  <mat@cythere.com>
10068
10069         * html.c (htmlfindurl): Download <input src=...>
10070
10071 1998-06-03  Hrvoje Niksic  <hniksic@srce.hr>
10072
10073         * utils.c (file_exists_p): Use access() with two arguments.
10074
10075 1998-05-27  Martin Kraemer  <Martin.Kraemer@mch.sni.de>
10076
10077         * netrc.c (parse_netrc): Correct logic.
10078
10079 1998-05-27  Hrvoje Niksic  <hniksic@srce.hr>
10080
10081         * ftp.c (getftp): Added `break'; suggested by Lin Zhe Min
10082         <ljm@ljm.wownet.net>.
10083
10084 1998-05-24  Hrvoje Niksic  <hniksic@srce.hr>
10085
10086         * version.c: Wget 1.5.2-b2 is released.
10087
10088 1998-05-18  Juan Jose Rodriguez  <jcnsoft@jal1.telmex.net.mx>
10089
10090         * mswindows.h: Don't translate mkdir to _mkdir under Borland.
10091
10092 1998-05-17  Hrvoje Niksic  <hniksic@srce.hr>
10093
10094         * retr.c (elapsed_time): Return correct value when
10095         HAVE_GETTIMEOFDAY is undefined.
10096
10097 1998-05-13  Hrvoje Niksic  <hniksic@srce.hr>
10098
10099         * version.c: Wget 1.5.2-b1 is released.
10100
10101 1998-05-08  Hrvoje Niksic  <hniksic@srce.hr>
10102
10103         * getopt.c (_getopt_internal): Use exec_name instead of argv[0].
10104         (_getopt_internal): Don't translate `#if 0'-ed strings.
10105
10106 1998-05-06  Douglas E. Wegscheid  <wegscd@whirlpool.com>
10107
10108         * mswindows.c (ws_handler): Use fork_to_background().
10109
10110 1998-05-05  Hrvoje Niksic  <hniksic@srce.hr>
10111
10112         * version.c: Wget 1.5.1 is released.
10113
10114 1998-05-05  Hrvoje Niksic  <hniksic@srce.hr>
10115
10116         * http.c (parse_http_status_line): Avoid `minor' and `major'
10117         names.
10118
10119 1998-05-02  Hrvoje Niksic  <hniksic@srce.hr>
10120
10121         * utils.c (mkdirhier): Renamed to make_directory.
10122
10123 1998-05-01  Hrvoje Niksic  <hniksic@srce.hr>
10124
10125         * mswindows.c (fork_to_background): Define under Windows.
10126
10127         * utils.c (fork_to_background): New function.
10128
10129         * html.c (htmlfindurl): Removed rerdundant casts.
10130
10131 1998-05-01  Douglas E. Wegscheid  <wegscd@whirlpool.com>
10132
10133         * mswindows.c (ws_mypath): Cache the path.
10134
10135 1998-04-30  Douglas E. Wegscheid  <wegscd@whirlpool.com>
10136
10137         * ftp.h: Prefix enum ftype members with FT_.
10138
10139         * ftp-ls.c, ftp.c, html.h: Adjust accordingly.
10140
10141         * mswindows.h: Use stat under Borland, _stat under MSVC.
10142
10143 1998-04-28  Hrvoje Niksic  <hniksic@srce.hr>
10144
10145         * http.c (known_authentication_scheme_p): New function.
10146         (gethttp): Handle authorization more correctly.
10147
10148         * ftp-basic.h: Removed.
10149
10150         * cmpt.h: Removed.
10151
10152         * utils.c: Include <unistd.h> before <pwd.h>; needed under SunOS
10153         with gcc 2.8.
10154         (numdigit): Use `while' loop.
10155
10156         * http.c (create_authorization_line): Detect authentication
10157         schemes case-insensitively.
10158
10159         * http.c (extract_header_attr): Use strdupdelim().
10160         (digest_authentication_encode): Move declaration of local
10161         variables to smaller scope.
10162         (digest_authentication_encode): Reset REALM, OPAQUE and NONCE.
10163         (create_authorization_line): Detect authentication schemes
10164         case-insensitively.
10165
10166         * utils.c (touch): Constify.
10167
10168         * http.c (gethttp): Report a nicer error when no data is received.
10169
10170         * rbuf.h (RBUF_READCHAR): Ditto.
10171
10172         * ftp-basic.c (ftp_response): Use sizeof.
10173
10174 1998-04-27  Hrvoje Niksic  <hniksic@srce.hr>
10175
10176         * retr.c (print_percentage): EXPECTED is long, not int.
10177         (print_percentage): Use floating-point arithmetic to avoid
10178         overflow with large files' sizes multiplied with 100.
10179
10180 1998-04-27  Gregor Hoffleit  <flight@mathi.uni-heidelberg.de>
10181
10182         * config.h.in: Added pid_t stub.
10183
10184         * sysdep.h (S_ISREG): Moved here from mswindows.h (NeXT doesn't
10185         define it).
10186
10187 1998-04-20  Hrvoje Niksic  <hniksic@srce.hr>
10188
10189         * version.c: Wget 1.5.0 is released.
10190
10191 1998-04-18  Hrvoje Niksic  <hniksic@srce.hr>
10192
10193         * url.c (str_url): Ditto.
10194
10195         * ftp-basic.c (ftp_rest): Use new name.
10196
10197         * utils.c (long_to_string): Renamed from prnum().
10198
10199 1998-04-16  Hrvoje Niksic  <hniksic@srce.hr>
10200
10201         * version.c: Wget 1.5-b17 is released.
10202
10203 1998-04-08  Hrvoje Niksic  <hniksic@srce.hr>
10204
10205         * headers.c (header_get): New argument FLAGS.
10206
10207         * http.c (gethttp): If request is malformed, bail out of the
10208         header loop.
10209         (gethttp): Check for empty header *after* the status line checks.
10210         (gethttp): Disallow continuations for status line.
10211
10212 1998-04-08  Hrvoje Niksic  <hniksic@srce.hr>
10213
10214         * version.c: Wget 1.5-b16 is released.
10215
10216 1998-04-08  Hrvoje Niksic  <hniksic@srce.hr>
10217
10218         * init.c (commands): Renamed `always_rest' to `continue'.
10219
10220 1998-04-05  Hrvoje Niksic  <hniksic@srce.hr>
10221
10222         * all: Use it.
10223
10224         * log.c (logputs): New argument.
10225         (logvprintf): Ditto.
10226         (logprintf): Ditto.
10227
10228 1998-04-04  Hrvoje Niksic  <hniksic@srce.hr>
10229
10230         * http.c (http_atotm): Update comment.
10231
10232         * main.c (i18n_initialize): Set LC_MESSAGES, not LC_ALL.
10233
10234         * wget.h: Renamed ENABLED_NLS to HAVE_NLS.
10235
10236         * main.c (i18n_initialize): New function.
10237         (main): Use it.
10238
10239         * log.c: Include <unistd.h>.
10240
10241         * retr.c (show_progress): Cast alloca to char *.
10242
10243 1998-04-04  Hrvoje Niksic  <hniksic@srce.hr>
10244
10245         * version.c: Wget 1.5-b15 is released.
10246
10247 1998-04-04  Hrvoje Niksic  <hniksic@srce.hr>
10248
10249         * utils.h: Declare file_non_directory_p().
10250
10251 1998-04-03  Hrvoje Niksic  <hniksic@srce.hr>
10252
10253         * main.c (main): It's `tries', not `numtries' now.
10254
10255 1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
10256
10257         * init.c (getperms): Removed.
10258
10259 1998-04-01  Tim Charron  <tcharron@interlog.com>
10260
10261         * log.c (logvprintf): Don't use ARGS twice.
10262
10263 1998-04-01  John  <john@futuresguide.com>
10264
10265         * mswindows.c: Cleaned up.
10266
10267 1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
10268
10269         * version.c: Wget 1.5-b14 is released.
10270
10271 1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
10272
10273         * ftp-opie.c (STRLEN4): New macro.
10274         (btoe): Use it.
10275
10276 1998-04-01  Junio Hamano  <junio@twinsun.com>
10277
10278         * http.c: Document all the Digest functions.
10279
10280 1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
10281
10282         * utils.c (file_non_directory_p): Renamed from isfile().
10283
10284         * mswindows.h (S_ISREG): New macro, suggested by Tim Adam.
10285
10286 1998-03-31  Hrvoje Niksic  <hniksic@srce.hr>
10287
10288         * utils.c (mkdirhier): Use 0777 instead of opt.dirmode.
10289
10290         * init.c (cmd_spec_dotstyle): Use 48 dots per line for binary
10291         style.
10292         (cmd_permissions): Removed.
10293
10294         * config.h.in: Add template for WORDS_BIGENDIAN.
10295
10296 1998-03-31  Junio Hamano  <junio@twinsun.com>
10297
10298         * http.c (HEXD2asc): New macro.
10299         (dump_hash): Use it.
10300
10301 1998-03-31  Hrvoje Niksic  <hniksic@srce.hr>
10302
10303         * version.c: Wget 1.5-b13 is released.
10304
10305 1998-03-31  Hrvoje Niksic  <hniksic@srce.hr>
10306
10307         * main.c (main): Don't try to use `com'.
10308
10309 1998-03-30  Hrvoje Niksic  <hniksic@srce.hr>
10310
10311         * init.c (cmd_permissions): New function.
10312
10313 1998-03-30  Hrvoje Niksic  <hniksic@srce.hr>
10314
10315         * version.c: Wget 1.5-b12 is released.
10316
10317 1998-03-30  Hrvoje Niksic  <hniksic@srce.hr>
10318
10319         * init.c (commands): Renamed `numtries' to `tries'.
10320         (cmd_spec_debug): Removed.
10321         (home_dir): Under Windows, return `C:\' if HOME is undefined.
10322
10323 1998-03-29  Hrvoje Niksic  <hniksic@srce.hr>
10324
10325         * config.h.in: Define _XOPEN_SOURCE.
10326
10327         * init.c (check_user_specified_header): New function.
10328         (cmd_spec_header): Use it.
10329         (cmd_spec_useragent): New function.
10330
10331 1998-03-29  Hrvoje Niksic  <hniksic@srce.hr>
10332
10333         * version.c: Wget 1.5-b11 is released.
10334
10335 1998-03-28  Hrvoje Niksic  <hniksic@srce.hr>
10336
10337         * wget.h: Include <libintl.h> only if NLS is enabled.
10338
10339 1998-03-26  Hrvoje Niksic  <hniksic@srce.hr>
10340
10341         * options.h (struct options): Made `wait' a long.
10342         (struct options): Ditto for `timeout'.
10343
10344 1998-03-19  Hrvoje Niksic  <hniksic@srce.hr>
10345
10346         * utils.c (exists): Renamed to file_exists_p.
10347         (file_exists_p): Use access() if available.
10348
10349 1998-03-17  Hrvoje Niksic  <hniksic@srce.hr>
10350
10351         * utils.c (memfatal): Set save_log_p to 0 to avoid potential
10352         infloop.
10353
10354         * log.c: do_logging -> save_log_p.
10355
10356         * config.h.in: Added template for HAVE_VSNPRINTF.
10357
10358 1998-03-16  Hrvoje Niksic  <hniksic@srce.hr>
10359
10360         * init.c: Ditto.
10361
10362         * http.c: Protect declaration against non-ANSI compiler.
10363
10364         * log.c (logvprintf): Use vsnprintf() if available.
10365
10366         * getopt.c (main): Don't translate test stuff.
10367
10368 1998-03-16  Hrvoje Niksic  <hniksic@srce.hr>
10369
10370         * version.c: Wget 1.5-b10 is released.
10371
10372 1998-03-11  Hrvoje Niksic  <hniksic@srce.hr>
10373
10374         * ftp.c (getftp): Don't translate "CWD %s".
10375
10376         * wget.h (GCC_FORMAT_ATTR): Renamed from FORMAT_ATTR.
10377
10378 1998-03-07  Hrvoje Niksic  <hniksic@srce.hr>
10379
10380         * ftp-opie.c (btoe): Use memcpy() instead of strncat().
10381
10382         * log.c (logputs): New function.
10383         (logvprintf): Renamed from vlogmsg; use logputs().
10384
10385         * retr.c (show_progress): Print `[100%]' when the retrieval is
10386         finished.
10387
10388         * init.c (run_wgetrc): Use FILE, not PATH.
10389         (wgetrc_file_name): Ditto.
10390
10391 1998-03-07  Tim Adam  <tma@osa.com.au>
10392
10393         * recur.c (parse_robots): Correctly reset `entries' on empty
10394         disallow.
10395
10396 1998-03-07  Hrvoje Niksic  <hniksic@srce.hr>
10397
10398         * init.c (cmd_spec_debug): Use cmd_boolean().
10399
10400 1998-02-23  Hrvoje Niksic  <hniksic@srce.hr>
10401
10402         * http.c (gethttp): Create proxy-authorization correctly.
10403
10404 1998-02-22  Hrvoje Niksic  <hniksic@srce.hr>
10405
10406         * md5.c: Ditto.
10407
10408         * getopt.c: Use ANSI function definitions.
10409
10410         * ftp-opie.c: New file.
10411
10412         * options.h: Don't redefine EXTERN.
10413
10414         * init.c: Sort it correctly.
10415
10416 1998-02-22  Hrvoje Niksic  <hniksic@srce.hr>
10417
10418         * version.c: Wget 1.5-b9 is released.
10419
10420 1998-02-22  Hrvoje Niksic  <hniksic@srce.hr>
10421
10422         * recur.c (recursive_retrieve): Reset `first_time'.
10423
10424         * ftp.c (getftp): Added `default' clause to switches of uerr_t.
10425
10426         * rbuf.c (rbuf_peek): Simplified.
10427         (rbuf_flush): Use MINVAL.
10428
10429         * wget.h (MINVAL): Moved from url.h.
10430
10431         * rbuf.h (RBUF_FD): New macro.
10432
10433         * url.c (add_url): Add to the head of the list.
10434
10435         * ftp.c (ftp_retrieve_list): Set the permissions to downloaded
10436         file.
10437         (getftp): Set the default permissions to 0600.
10438
10439 1998-02-21  Hrvoje Niksic  <hniksic@srce.hr>
10440
10441         * url.c (get_urls_html): Ditto.
10442         (convert_links): Ditto.
10443
10444         * recur.c (parse_robots): Ditto.
10445
10446         * html.c (ftp_index): Ditto.
10447
10448         * ftp-ls.c (ftp_parse_unix_ls): Open file as binary.
10449
10450         * init.c (defaults): Initialize `opt' to zero via memset.
10451
10452         * http.c (digest_authentication_encode): goto considered harmful.
10453
10454 1998-02-19  Hrvoje Niksic  <hniksic@srce.hr>
10455
10456         * ftp.c (delelement): Simplify and fix leak.
10457
10458 1998-02-18  Hrvoje Niksic  <hniksic@srce.hr>
10459
10460         * http.c (dump_hash): Use HEXD2ASC instead of home-grown stuff.
10461
10462         * url.h (HEXD2ASC): Removed warning.
10463
10464         * init.c (comind): Use binary search.
10465         (commands): Reorganized.
10466         (setval): Ditto.
10467         (cmd_boolean): New function.
10468         (cmd_number): Ditto.
10469         (cmd_number_inf): Ditto.
10470         (cmd_string): Ditto.
10471         (cmd_vector): Ditto.
10472         (cmd_directory_vector): Ditto.
10473         (cmd_bytes): Ditto.
10474         (cmd_time): Ditto.
10475         (cmd_spec_debug): Ditto.
10476         (cmd_spec_dirmode): Ditto.
10477         (cmd_spec_dirstruct): Ditto.
10478         (cmd_spec_dotstyle): Ditto.
10479         (cmd_spec_header): Ditto.
10480         (cmd_spec_htmlify): Ditto.
10481         (cmd_spec_mirror): Ditto.
10482         (cmd_spec_outputdocument): Ditto.
10483         (cmd_spec_recursive): Ditto.
10484         (settime): Merged with cmd_time().
10485         (setbytes): Merged with cmd_bytes().
10486         (setonoff): Merged with cmd_boolean().
10487         (onoff): Ditto.
10488
10489 1998-02-17  Hrvoje Niksic  <hniksic@srce.hr>
10490
10491         * Makefile.in (distclean): Remove `config.h'.
10492
10493 1998-02-17  Hrvoje Niksic  <hniksic@srce.hr>
10494
10495         * version.c: Wget 1.5-b8 is released.
10496
10497 1998-02-17  Hrvoje Niksic  <hniksic@srce.hr>
10498
10499         * http.c (digest_authentication_encode): New function.
10500         (create_authorization_line): Use it.
10501         (dump_hash): New function.
10502         (digest_authentication_encode): Use it.
10503
10504         * fnmatch.c: Renamed from `mtch.c'.
10505
10506 1998-02-15  Karl Eichwalder  <ke@suse.de>
10507
10508         * main.c (main): Tag "Written by..." string as translatable.
10509
10510 1998-02-15  Hrvoje Niksic  <hniksic@srce.hr>
10511
10512         * wget.h (FREE_MAYBE): New macro.
10513
10514         * http.c (create_authorization_line): Don't use ANSI C string
10515         concatenation feature.
10516         (basic_authentication_encode): Use alloca() for temporary
10517         variables.
10518
10519         * recur.h: Ditto.
10520
10521         * http.c: Ditto.
10522
10523         * headers.h: Ditto.
10524
10525         * ftp-basic.c: Protect declaration against non-ANSI compiler.
10526
10527         * http.c (create_authorization_line): Cast `unsigned char *' to
10528         `char *' for sprintf, to shut up the noisy Digital Unix cc.
10529
10530 1998-02-15  Hrvoje Niksic  <hniksic@srce.hr>
10531
10532         * version.c: Wget 1.5-b7 is released.
10533
10534 1998-02-15  Hrvoje Niksic  <hniksic@srce.hr>
10535
10536         * cmpt.c (strstr): Synched with glibc-2.0.6.
10537
10538         * ftp-basic.c (calculate_skey_response): Ditto.
10539         (calculate_skey_response): Use alloca().
10540
10541         * http.c (create_authorization_line): Work with FSF's version of
10542         md5.c.
10543
10544         * md5.c: New file, from GNU libc.
10545
10546 1998-02-14  Hrvoje Niksic  <hniksic@srce.hr>
10547
10548         * url.h (URL_CLEANSE): Name the temporary variable more carefully.
10549
10550 1998-02-13  Hrvoje Niksic  <hniksic@srce.hr>
10551
10552         * http.c (basic_authentication_encode): New function, instead of
10553         the macro.
10554
10555 1998-02-13  Junio Hamano  <junio@twinsun.com>
10556
10557         * http.c: Add HTTP-DA support.
10558         * ftp-basic.c: Add Opie/S-key support.
10559         * config.h.in, Makefile.in: Add HTTP-DA and Opie/S-key support.
10560         * md5.c, md5.h: New files.
10561
10562 1998-02-13  Hrvoje Niksic  <hniksic@srce.hr>
10563
10564         * http.c (http_process_range): Renamed from hprocrange().
10565         (http_process_range): Parse the whole header.
10566
10567         * headers.c: New file.
10568         (header_process): New function.
10569         (header_get): Renamed from fetch_next_header.
10570
10571         * all: Include utils.h only where necessary.
10572
10573         * wget.h: Declare xmalloc(), xrealloc() and xstrdup() here.
10574
10575         * wget.h: Add provisions for dmalloc.
10576
10577 1998-02-12  Hrvoje Niksic  <hniksic@srce.hr>
10578
10579         * version.c: Wget 1.5-b6 is released.
10580
10581 1998-02-12  Hrvoje Niksic  <hniksic@srce.hr>
10582
10583         * ftp.c (ftp_loop): Determine `filename' more precisely.
10584
10585         * init.c (setval): Don't set `opt.quiet' if output-document is
10586         `-'.
10587
10588         * log.c (log_init): Print to STDERR instead of STDOUT.
10589         (vlogmsg): Use STDERR by default.
10590         (logflush): Ditto.
10591
10592 1998-02-11  Simon Josefsson  <jas@pdc.kth.se>
10593
10594         * host.c: Use addr_in again.
10595
10596 1998-02-08  Karl Eichwalder  <karl@suse.de>
10597
10598         * http.c (gethttp): Fixed typo.
10599
10600 1998-02-08  Hrvoje Niksic  <hniksic@srce.hr>
10601
10602         * version.c: Wget 1.5-b5 is released.
10603
10604 1998-02-08  Hrvoje Niksic  <hniksic@srce.hr>
10605
10606         * retr.c (show_progress): Use it.
10607
10608         * log.c (logflush): New function.
10609
10610         * wget.h: Utilize __attribute__ if on gcc.
10611
10612 1998-02-07  Hrvoje Niksic  <hniksic@srce.hr>
10613
10614         * http.c (base64_encode_line): New argument LENGTH.
10615         (BASIC_AUTHENTICATION_ENCODE): Use it.
10616         (BASIC_AUTHENTICATION_ENCODE): Take length of HEADER into account.
10617
10618         * main.c (main): Fixed fprintf() format mismatch.
10619
10620 1998-02-06  Hrvoje Niksic  <hniksic@srce.hr>
10621
10622         * version.c: Wget 1.5-b4 is released.
10623
10624 1998-02-03  Simon Josefsson  <jas@pdc.kth.se>
10625
10626         * host.c: use sockaddr_in instead of addr_in.
10627
10628 1998-02-04  Hrvoje Niksic  <hniksic@srce.hr>
10629
10630         * init.c (cleanup): Use it.
10631
10632         * recur.c (recursive_cleanup): New function.
10633
10634         * retr.c (retrieve_from_file): Ditto.
10635
10636         * main.c (main): Use it.
10637
10638         * recur.c (recursive_reset): New function.
10639
10640         * retr.c (retrieve_from_file): Ditto.
10641
10642         * main.c (main): Simplify call to recursive_retrieve().
10643
10644         * recur.c (recursive_retrieve): Removed FLAGS argument.
10645
10646         * http.c (gethttp): Changed call to iwrite().
10647
10648 1998-02-03  Hrvoje Niksic  <hniksic@srce.hr>
10649
10650         * url.c (get_urls_html): Ditto.
10651         (free_urlpos): Ditto.
10652         (mkstruct): Ditto.
10653         (construct): Ditto.
10654
10655         * retr.c (retrieve_url): Move declaration of local variables to
10656         smaller scope.
10657
10658         * url.c (urlproto): Use it.
10659         (parseurl): Ditto.
10660         (str_url): Ditto.
10661         (get_urls_html): Ditto.
10662
10663         * utils.h (ARRAY_SIZE): New macro.
10664
10665         * url.c (proto): Moved from url.h.
10666
10667         * url.h (URL_CLEANSE): Reformatted.
10668         (USE_PROXY_P): Renamed from USE_PROXY.
10669
10670         * ftp-basic.c: Adjust to the new interface of iwrite().
10671
10672         * ftp-basic.c (ftp_port): Use alloca().
10673
10674 1998-02-03  Hrvoje Niksic  <hniksic@srce.hr>
10675
10676         * version.c: Wget 1.5-b3 is released.
10677
10678         * host.c (ftp_getaddress): Don't print to stderr directly.
10679
10680         * init.c (setbytes): Support `g' for gigabytes.
10681         (cmdtype): New specification CTIME.
10682         (setval): Use it with settime().
10683         (commands): Use it for WAIT and TIMEOUT.
10684
10685 1998-02-02  Hrvoje Niksic  <hniksic@srce.hr>
10686
10687         * http.c (BASIC_AUTHENTICATION_ENCODE): New macro.
10688         (gethttp): Use it.
10689
10690         * utils.c (unique_name_1): Moved from url.c.
10691         (unique_name): Ditto.
10692
10693         * url.c (url_filename): Ditto.
10694
10695         * log.c (redirect_output): Changed call to unique_name().
10696
10697         * url.c (unique_name_1): Renamed from unique_name().
10698         (unique_name): Changed interface.
10699
10700         * init.c (enum cmdid): Moved from init.h.
10701         (cmdtype): Ditto.
10702         (struct cmd): Ditto.
10703
10704         * main.c (main): Use it.
10705         (main): Moved `--backups' to not have a short option.
10706
10707         * options.h (struct options): New member BACKGROUND.
10708
10709         * main.c (print_help): Rearranged.
10710         (main): New long options for -n* short options: --no-directories,
10711         --no-host-directories, --non-verbose, --no-host-lookup and
10712         --dont-remove-listing.
10713
10714 1998-02-01  Hrvoje Niksic  <hniksic@srce.hr>
10715
10716         * main.c (main): Use log_close().
10717
10718         * log.c: New variable LOGFP.
10719         (vlogmsg): Use it.
10720         (redirect_output): Don't open /dev/null; set LOGFP to stdin
10721         instead.
10722         (log_close): New function.
10723
10724         * options.h (struct options): Removed LFILE.
10725
10726         * log.c (log_enable): Removed.
10727
10728         * main.c (main): Use it.
10729
10730         * log.c (log_init): New function.
10731
10732         * url.c (get_urls_html): Removed needless assignment to BASE.
10733
10734         * host.c (add_hlist): Don't set CMP needlessly.
10735
10736         * utils.c (match_backwards): Ditto.
10737         (in_acclist): Ditto.
10738
10739         * url.c (findurl): Ditto.
10740
10741         * netrc.c (parse_netrc): Ditto.
10742
10743         * log.c (log_dump): Ditto.
10744
10745         * html.c (html_quote_string): Ditto.
10746
10747         * ftp-basic.c (ftp_request): Made static.
10748
10749         * connect.c: Made global variables static.
10750
10751         * url.c (construct): Ditto.
10752
10753         * init.c (init_path): Avoid assignment inside `if'-condition.
10754
10755         * ftp.c: Don't include in.h or winsock.h.
10756
10757         * ftp.c (ftp_loop): Use SZ.
10758
10759         * connect.c (bindport): Cast &addrlen to int *.
10760         (conaddr): Ditto.
10761
10762         * init.c (initialize): Don't use SYSTEM_WGETRC unconditionally.
10763
10764 1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
10765
10766         * ftp.c (getftp): Initialize opt.ftp_pass here.
10767         (ftp_retrieve_dirs): Use alloca().
10768
10769         * init.c (defaults): Don't initialize opt.ftp_pass.
10770
10771         * sysdep.h (S_ISLNK): Declare for OS/2; ditto for lstat.
10772         From Ivan F. Martinez <ivanfm@ecodigit.com.br>.
10773
10774 1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
10775
10776         * recur.c (parse_robots): Check for comments more correctly.
10777
10778         * host.c (ftp_getaddress): Use STRDUP_ALLOCA.
10779         (ftp_getaddress): Add diagnostics when reverse-lookup yields only
10780         hostname.
10781
10782 1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
10783
10784         * version.c: Wget 1.5-b2 is released.
10785
10786         * netrc.c (NETRC_FILE_NAME): Moved from netrc.h.
10787
10788         * utils.c (proclist): Pass FNM_PATHNAME to fnmatch().
10789
10790         * ftp-basic.c (ftp_pasv): Avoid unnecessary casting to unsigned
10791         char.
10792
10793         * log.c: Don't attempt to hide arguments from ansi2knr.
10794
10795         * cmpt.c: Synched strptime() and mktime() with glibc-2.0.6.
10796
10797         * ansi2knr.c: Use a later version, from fileutils-3.16l alpha.
10798
10799         * ftp.c (getftp): Ditto.
10800
10801         * http.c (gethttp): Use it.
10802
10803         * retr.c (get_contents): New argument EXPECTED; pass it to
10804         show_progress().
10805         (show_progress): New argument EXPECTED; use it to display
10806         percentages.
10807
10808         * init.c (setval): Ditto.
10809
10810         * http.c (gethttp): Ditto.
10811         (http_loop): Ditto.
10812
10813         * ftp.c (getftp): Ditto.
10814         (ftp_loop_internal): Ditto.
10815
10816         * ftp-ls.c (ftp_parse_unix_ls): Use abort() instead of assert(0).
10817
10818         * sysdep.h (CLOSE): Simplify; use DEBUGP.
10819
10820         * netrc.c (search_netrc): Use alloca().
10821
10822         * init.c (defaults): Initialize no_flush.
10823
10824         * log.c (vlogmsg): Don't flush if no_flush.
10825
10826         * options.h (struct options): New variable no_flush.
10827
10828         * main.c (main): Don't play games with buffering.
10829
10830         * log.c (vlogmsg): Flush the output after every message.
10831
10832 1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
10833
10834         * init.c (parse_line): Ditto.
10835
10836         * url.c (get_urls_html): Ditto.
10837
10838         * main.c (main): Don't cast to unsigned char.
10839
10840         * init.c (run_wgetrc): Don't cast to unsigned char.
10841         (parse_line): Accept char instead of unsigned char.
10842
10843         * html.c (htmlfindurl): Use char instead of unsigned char.
10844
10845         * all: Use them.
10846
10847         * sysdep.h: Add wrappers to ctype macros to make them
10848         eight-bit-clean:
10849
10850 1998-01-30  Hrvoje Niksic  <hniksic@srce.hr>
10851
10852         * html.c (htmlfindurl): Download <img lowsrc=...>
10853
10854         * main.c (main): Ignore SIGPIPE.
10855
10856         * connect.c (select_fd): New argument WRITEP.
10857         (iwrite): Call select_fd().
10858
10859 1997-02-27  Fila Kolodny <fila@ibi.com>
10860
10861         * ftp.c (ftp_retrieve_list): If retrieving symlink and the proper
10862         one already exists, just skip it.
10863
10864 1998-01-30  Hrvoje Niksic  <hniksic@srce.hr>
10865
10866         * http.c (gethttp): Cosmetic changes.
10867
10868         * http.c (check_end): Allow `+D...' instead of `GMT'.
10869         From Fabrizio Pollastri <pollastri@cstv.to.cnr.it>.
10870
10871         * url.c (process_ftp_type): New function.
10872         (parseurl): Use it.
10873
10874         * connect.c (iwrite): Allow writing in a few chunks.
10875         (bindport): Made SRV static, so addr can point to it.
10876         (select_fd): Removed HPUX kludge.
10877
10878         * host.c (free_hlist): Incorporated into clean_hosts().
10879
10880 1998-01-29  Hrvoje Niksic  <hniksic@srce.hr>
10881
10882         * host.c (hlist): Made static.
10883         (search_address): Cosmetic change.
10884
10885 1998-01-29  Hrvoje Niksic  <hniksic@srce.hr>
10886
10887         * version.c: Wget v1.5-b1 is released.
10888
10889         * http.c (hgetlen): Use sizeof() to get the header length.
10890         (hgetrange): Ditto.
10891         (hgettype): Ditto.
10892         (hgetlocation): Ditto.
10893         (hgetmodified): Ditto.
10894         (haccepts_none): Ditto.
10895
10896         * main.c (main): Updated `--version' and `--help' output, as per
10897         Francois Pinard's suggestions.
10898
10899         * main.c: Include locale.h; call setlocale(), bindtextdomain() and
10900         textdomain().
10901
10902         * config.h.in: Define stubs for I18N3.
10903
10904         * wget.h: Include libintl.h.
10905
10906 1998-01-28  Hrvoje Niksic  <hniksic@srce.hr>
10907
10908         * url.c (mkstruct): Check for opt.cut_dirs.
10909         (mkstruct): alloca()-te more, xmalloc() less.
10910
10911         * utils.c (load_file): Check for ferror().
10912
10913         * url.c (get_urls_file): Close only the files we opened.
10914         (get_urls_html): Ditto.
10915         (count_slashes): New function.
10916
10917         * http.h: Removed.
10918
10919         * http.c (gethttp): Respect username and password provided by
10920         proxy URL.
10921         (base64_encode_line): Write into an existing buffer instead of
10922         malloc-ing a new one.
10923         (struct http_stat): Moved from http.h
10924
10925         * retr.c (retrieve_url): Free SUF.
10926
10927         * all: Removed lots of unnecessary .h dependencies.
10928
10929         * html.c (global_state): Made static.
10930
10931         * utils.h (ALLOCA_ARRAY): New macro.
10932
10933         * main.c (main): New option `--cut-dirs'.
10934
10935         * url.c (construct): Use alloca() for T.
10936
10937         * utils.c (mkdirhier): Use STRDUP_ALLOCA.
10938
10939         * host.c (_host_t): Moved from host.h.
10940         (struct host): Renamed from _host_t.
10941         (store_hostaddress): Use STRDUP_ALLOCA for INET_S.
10942         (realhost): Ditto.
10943
10944         * host.h: Don't include url.h.
10945
10946         * ftp.c (LIST_FILENAME): Moved from ftp.h.
10947
10948         * init.c (DEFAULT_FTP_ACCT): Moved from ftp.h.
10949
10950         * main.c (main): Enable log if the output goes to a TTY.
10951
10952         * connect.h: Removed unused constant `BACKLOG'.
10953
10954         * config.h.in: Check for isatty().
10955
10956         * Makefile.in (LINK): Use CFLAGS when linking.
10957
10958 1998-01-27  Hrvoje Niksic  <hniksic@srce.hr>
10959
10960         * mswindows.c (ws_hangup): Use redirect_output().
10961
10962         * main.c (redirect_output_signal): New function; use
10963         redirect_output().
10964
10965         * log.c (redirect_output): New function, based on hangup(), which
10966         is deleted.
10967
10968         * log.c (vlogmsg): New function.
10969
10970         * wget.h (DEBUGP): Use debug_logmsg().
10971
10972         * main.c (hangup): Use it.
10973
10974         * log.c (log_dump): New function.
10975
10976         * utils.h (DO_REALLOC): Use `long' for various sizes.
10977
10978         * http.c (hskip_lws): Use `while', for clarity.
10979         (HTTP_DYNAMIC_LINE_BUFFER): New constant.
10980         (fetch_next_header): Use it instead of DYNAMIC_LINE_BUFFER.
10981
10982         * ftp-basic.c (FTP_DYNAMIC_LINE_BUFFER): New constant.
10983         (ftp_response): Use it instead of DYNAMIC_LINE_BUFFER.
10984
10985         * utils.c (DYNAMIC_LINE_BUFFER): Moved from utils.c.
10986         (LEGIBLE_SEPARATOR): Ditto.
10987         (FILE_BUFFER_SIZE): Ditto.
10988
10989         * retr.c (BUFFER_SIZE): Moved from retr.h.
10990
10991         * log.c: New file.
10992         (logmsg): Moved from utils.c.
10993         (debug_logmsg): New function.
10994
10995         * mswindows.h: Include it here.
10996
10997         * init.c: Ditto.
10998
10999         * utils.c: Don't include <windows.h>.
11000
11001 1998-01-25  Hrvoje Niksic  <hniksic@srce.hr>
11002
11003         * host.c (ftp_getaddress): Ditto.
11004
11005         * main.c (main): Use it.
11006
11007         * utils.h (STRDUP_ALLOCA): New macro.
11008
11009         * init.c: Prepend `wget: ' to error messages printed on stderr.
11010
11011         * utils.c (mkdirhier): Renamed from mymkdir.
11012         (touch): Renamed from my_touch.
11013         (pwd_cuserid): Renamed from my_cuserid().
11014
11015 1998-01-24  Andy Eskilsson  <andy.eskilsson@telelogic.se>
11016
11017         * utils.c (accdir): Process wildcards.
11018         (proclist): New function.
11019         (accdir): Use it to avoid code repetition.
11020
11021 1998-01-24  Hrvoje Niksic  <hniksic@srce.hr>
11022
11023         * recur.c (parse_robots): Respect opt.useragent; use alloca().
11024
11025         * http.c (gethttp): Construct useragent accordingly.
11026
11027         * version.c: Changed version string to numbers-only.
11028
11029         * main.c (print_help): List all the options.
11030
11031         * mswindows.c (windows_main_junk): Initialize argv0 here.
11032
11033 1998-01-24  Karl Heuer  <kwzh@gnu.org>
11034
11035         * netrc.c (search_netrc): Initialize `l' only after processing
11036         netrc.
11037
11038         * main.c (main): Don't trap SIGHUP if it's being ignored.
11039
11040 1998-01-24  Hrvoje Niksic  <hniksic@srce.hr>
11041
11042         * all: Use logmsg().
11043
11044         * utils.c (time_str): Moved from retr.c.
11045         (logmsg): New function.
11046         (logmsg_noflush): Ditto.
11047
11048         * rbuf.c: New file, moved buf_* functions here.
11049
11050         * ftp.c (ftp_expected_bytes): Moved from ftp-basic.c.
11051
11052         * ftp-basic.c (ftp_rest): Use prnum().
11053
11054         * ftp-basic.c: Ditto.
11055
11056         * ftp.c: Use the new reading functions and macros.
11057
11058         * retr.c (buf_initialize): New function.
11059         (buf_initialized_p): Ditto.
11060         (buf_uninitialize): Ditto.
11061         (buf_fd): Ditto.
11062
11063         * http.c (fetch_next_header): Use the BUF_READCHAR macro for
11064         efficiency.
11065         (gethttp): Use alloca() where appropriate.
11066
11067         * retr.c (buf_readchar): Use it.
11068         (buf_peek): Use rstreams.
11069
11070         * retr.h (BUF_READCHAR): New macro.
11071
11072         * init.c (home_dir): Rewritten for clarity.
11073         (init_path): Ditto.
11074
11075         * mswindows.c (ws_backgnd): Made static.
11076         (read_registry): Ditto.
11077         (ws_cleanup): Ditto.
11078         (ws_handler): Ditto.
11079
11080 1998-01-23  Hrvoje Niksic  <hniksic@srce.hr>
11081
11082         * alloca.c: New file.
11083
11084         * Makefile.in (ALLOCA): Define.
11085
11086         * mswindows.c (ws_help): Constify.
11087         (ws_help): Use alloca.
11088
11089         * mswindows.c: Reformat.
11090
11091         * all: Added _(...) annotations for I18N snarfing and translation.
11092
11093         * host.c (ftp_getaddress): Nuke SYSINFO.
11094         (ftp_getaddress): Don't use getdomainname().
11095         (ftp_getaddress): Use uname(), where available.
11096
11097         * http.c (gethttp): Protect a stray fprintf().
11098
11099         * init.c (settime): New function.
11100         (setval): Treat WAIT specially, allowing suffixes like `m' for
11101         minutes, etc.
11102
11103 1998-01-21  Hrvoje Niksic  <hniksic@srce.hr>
11104
11105         * url.c (get_urls_html): Use alloca() for TEMP.
11106
11107 1998-01-21  Jordan Mendelson  <jordy@wserv.com>
11108
11109         * url.c (rotate_backups): New function.
11110
11111         * http.c (gethttp): Ditto.
11112
11113         * ftp.c (getftp): Rotate backups.
11114
11115 1997-12-18  Hrvoje Niksic  <hniksic@srce.hr>
11116
11117         * all: Renamed nmalloc(), nrealloc() and nstrdup() to xmalloc(),
11118         xrealloc() and xstrdup().  Use the new functions.
11119
11120         * url.c (decode_string): Made static.
11121         (has_proto): Ditto.
11122         (parse_dir): Ditto.
11123         (parse_uname): Ditto.
11124         (mkstruct): Ditto.
11125         (construct): Ditto.
11126         (construct_relative): Ditto.
11127
11128         * retr.c (show_progress): Made static.
11129
11130         * recur.c (robots_url): Made static.
11131         (retrieve_robots): Ditto.
11132         (parse_robots): Ditto.
11133         (robots_match): Ditto.
11134
11135         * main.h: Removed.
11136
11137         * main.c (printhelp): Made static.
11138         (hangup): Ditto.
11139
11140         * init.c (comind): Made static.
11141         (defaults): Ditto.
11142         (init_path): Ditto.
11143         (run_wgetrc): Ditto.
11144         (onoff): Ditto.
11145         (setonoff): Ditto.
11146         (setnum): Ditto.
11147         (myatoi): Ditto.
11148         (getperms): Ditto.
11149         (setbytes): Ditto.
11150
11151         * http.c (fetch_next_header): Made static.
11152         (hparsestatline): Ditto.
11153         (hskip_lws): Ditto.
11154         (hgetlen): Ditto.
11155         (hgetrange): Ditto.
11156         (hgettype): Ditto.
11157         (hgetlocation): Ditto.
11158         (hgetmodified): Ditto.
11159         (haccepts_none): Ditto.
11160         (gethttp): Ditto.
11161         (base64_encode_line): Ditto.
11162         (mktime_from_utc): Ditto.
11163         (http_atotm): Ditto.
11164
11165         * html.c (idmatch): Made static.
11166
11167         * host.c (search_host): Made static.
11168         (search_address): Ditto.
11169         (free_hlist): Ditto.
11170
11171         * ftp.c (getftp): Made static.
11172         (ftp_loop_internal): Ditto.
11173         (ftp_get_listing): Ditto.
11174         (ftp_retrieve_list): Ditto.
11175         (ftp_retrieve_dirs): Ditto.
11176         (ftp_retrieve_glob): Ditto.
11177         (freefileinfo): Ditto.
11178         (delelement): Ditto.
11179
11180         * ftp-ls.c (symperms): Made static.
11181         (ftp_parse_unix_ls): Ditto.
11182
11183         * connect.c (select_fd): Made static.
11184
11185         * utils.c (xmalloc): Renamed from nmalloc.
11186         (xrealloc): Renamed from nrealloc.
11187         (xstrdup): Renamed from nstrdup.
11188
11189         * getopt.c (exchange): Use alloca.
11190
11191         * mswindows.c (mycuserid): Use strncpy.
11192
11193         * New files mswindows.c, mswindows.h, sysdep.h.  winjunk.c,
11194         systhings.h, windecl.h and winjunk.h removed.
11195
11196         * mswindows.c (sleep): New function.
11197
11198         * utils.c: Include <windows.h> under Windows.
11199
11200 1997-06-12  Darko Budor  <dbudor@zesoi.fer.hr>
11201
11202         * url.h (URL_UNSAFE): Change default under Windows.
11203
11204         * retr.c (retrieve_from_file): Respect opt.delete_after.
11205
11206         * main.c (main): Call ws_help on Windows.
11207
11208         * winjunk.c (windows_main_junk): New function.
11209
11210         * main.c (main): Junk-process argv[0].
11211
11212         * http.c (mktime_from_utc): Return -1 if mktime failed.
11213
11214         * http.c (http_loop): Ditto.
11215
11216         * ftp.c (ftp_loop_internal): Change title on Windows when using a
11217         new URL.
11218
11219         * winjunk.c (getdomainname): Lots of functions.
11220
11221 1997-06-12  Hrvoje Niksic  <hniksic@srce.hr>
11222
11223         * cmpt.c (strptime_internal): Handle years more correctly for
11224         `%y'.
11225
11226 1997-06-09  Mike Thomas <mthomas@reality.ctron.com>
11227
11228         * http.c (gethttp): Allocate enough space for
11229         `Proxy-Authorization' header.
11230
11231 1997-05-10  Hrvoje Niksic  <hniksic@srce.hr>
11232
11233         * version.c: Wget/1.4.5 is released.
11234
11235 1997-05-10  Hrvoje Niksic  <hniksic@srce.hr>
11236
11237         * retr.c (get_contents): Check return value of fwrite more
11238         carefully.
11239
11240 1997-03-30  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
11241
11242         * cmpt.c (strptime_internal) [case 'Y']: Always subtract 1900 from
11243         year, regardless of century.
11244
11245 1997-03-30  Hrvoje Niksic  <hniksic@srce.hr>
11246
11247         * utils.c (isfile): Use `lstat' instead of `stat'.
11248
11249 1997-03-29  Hrvoje Niksic  <hniksic@srce.hr>
11250
11251         * utils.c (numdigit): Use explicit test.
11252
11253 1997-03-21  Hrvoje Niksic  <hniksic@srce.hr>
11254
11255         * http.c (http_loop): Always use `url_filename' to get u->local.
11256
11257 1997-03-20  Hrvoje Niksic  <hniksic@srce.hr>
11258
11259         * url.c: Recognize https.
11260
11261 1997-03-13  Hrvoje Niksic  <hniksic@srce.hr>
11262
11263         * recur.c (recursive_retrieve): Lowercase just the host name.
11264
11265 1997-03-09  Hrvoje Niksic  <hniksic@srce.hr>
11266
11267         * url.c (get_urls_file): Use the correct test.
11268         (get_urls_html): Ditto.
11269
11270 1997-03-07  Hrvoje Niksic  <hniksic@srce.hr>
11271
11272         * connect.c: Reverted addrlen to int.
11273
11274         * init.c (parse_line): Check for -1 instead of NONE.
11275
11276         * version.c: Changed version to 1.4.5.
11277
11278 1997-02-17  Hrvoje Niksic  <hniksic@srce.hr>
11279
11280         * init.c: New option netrc.
11281         (initialize): Don't parse .netrc.
11282
11283         * cmpt.c (recursive): Return rp.
11284         (strptime_internal): Match the long strings first, the abbreviated
11285         second.
11286
11287 1997-02-16  Hrvoje Niksic  <hniksic@srce.hr>
11288
11289         * http.c (check_end): New function.
11290         (http_atotm): Use it.
11291
11292 1997-02-13  gilles Cedoc  <gilles@cedocar.fr>
11293
11294         * http.c (gethttp): Use them.
11295
11296         * init.c: New options proxy_user and proxy_passwd.
11297
11298 1997-02-14  Hrvoje Niksic  <hniksic@srce.hr>
11299
11300         * ftp.c (ftp_retrieve_list): Create links even if not relative.
11301
11302 1997-02-10  Hrvoje Niksic  <hniksic@srce.hr>
11303
11304         * recur.c (recursive_retrieve): Lowercase the host name, if the
11305         URL is not "optimized".
11306
11307         * host.c (realhost): Return l->hostname, even if it matches with
11308         host.
11309
11310 1997-02-10  Marin Purgar  <pmc@asgard.hr>
11311
11312         * connect.c: Make addrlen size_t instead of int.
11313         (conaddr): Ditto.
11314
11315 1997-02-09  Gregor Hoffleit  <flight@mathi.uni-heidelberg.DE>
11316
11317         * systhings.h: Define S_ISLNK on NeXT too.
11318
11319 1997-02-09  Hrvoje Niksic  <hniksic@srce.hr>
11320
11321         * version.c: Released 1.4.3.
11322
11323         * url.c: Futher update to list of protostrings.
11324         (skip_proto): Skip `//' correctly for FTP and HTTP.
11325
11326         * url.c (get_urls_html): Handle bogus `http:' things a little
11327         different.
11328
11329         * main.c (main): Removed `follow-ftp' from `f'.
11330         (main): Dumped the `prefix-files' and `file-prefix' options and
11331         features; old and bogus.
11332         (main): Exit on failed setval() in `-e'.
11333
11334         * http.c (fetch_next_header): Use it to detect header continuation
11335         correctly.
11336
11337         * retr.c (buf_peek): New function.
11338
11339 1997-02-08  Hrvoje Niksic  <hniksic@srce.hr>
11340
11341         * wget.h: Include time.h and stuff.
11342
11343 1997-02-08  Roger Beeman  <beeman@cisco.com>
11344
11345         * ftp.c: Include <time.h>
11346
11347 1997-02-07  Hrvoje Niksic  <hniksic@srce.hr>
11348
11349         * url.c (findurl): Would read over buffer limits.
11350
11351 1997-02-06  Hrvoje Niksic  <hniksic@srce.hr>
11352
11353         * ftp-ls.c (ftp_parse_unix_ls): Allow spaces in file names.
11354
11355 1997-02-05  Hrvoje Niksic  <hniksic@srce.hr>
11356
11357         * http.c (http_atotm): Initialize tm.is_dst.
11358
11359 1997-02-02  Hrvoje Niksic  <hniksic@srce.hr>
11360
11361         * http.c (gethttp): Don't print the number of retrieved headers.
11362
11363         * main.c (main): New option `--no-clobber', alias for `-nc'.
11364
11365         * url.c: Recognize `https://'.
11366
11367 1997-02-01  Hrvoje Niksic  <hniksic@srce.hr>
11368
11369         * host.c (herrmsg): Don't use h_errno.
11370
11371 1997-01-30  Hrvoje Niksic  <hniksic@srce.hr>
11372
11373         * host.c (accept_domain): Use it.
11374
11375         * main.c (main): New option `--exclude-domains'.
11376
11377         * retr.c (retrieve_url): Use it.
11378         (retrieve_url): Bail out when an URL is redirecting to itself.
11379
11380         * url.c (url_equal): New function.
11381
11382 1997-01-29  Hrvoje Niksic  <hniksic@srce.hr>
11383
11384         * connect.c: Include arpa/inet.h instead of arpa/nameser.h.
11385
11386         * http.c (mk_utc_time): New function.
11387         (http_atotm): Use it; handle time zones correctly.
11388
11389 1997-01-28  Hrvoje Niksic  <hniksic@srce.hr>
11390
11391         * http.c: Ditto.
11392
11393         * ftp-basic.c: Use it instead of WRITE.
11394
11395         * connect.c (iwrite): New function.
11396
11397 1997-01-27  Hrvoje Niksic  <hniksic@srce.hr>
11398
11399         * cmpt.c (mktime): New function.
11400
11401         * netrc.c: Include <sys/types.h>.
11402
11403         * main.c (main): Wouldn't recognize --spider.
11404
11405         * retr.c (rate): Use `B', `KB' and `MB'.
11406         (reset_timer,elapsed_time): Moved from utils.c.
11407
11408         * ftp.c (ftp_retrieve_list): Ditto.
11409
11410         * http.c (http_loop): Don't touch the file if opt.dfp.
11411
11412 1997-01-24  Hrvoje Niksic  <hniksic@srce.hr>
11413
11414         * cmpt.c: New file.
11415
11416         * ftp.c (ftp_retrieve_glob): New argument semantics.
11417         (ftp_retrieve_dirs): Use it.
11418         (ftp_loop): Ditto.
11419
11420         * html.c (htmlfindurl): Recognize `'' as the quote char.
11421
11422 1997-01-23  Hrvoje Niksic  <hniksic@srce.hr>
11423
11424         * ftp.c (ftp_loop_internal): Use it.
11425
11426         * utils.c (remove_link): New function.
11427
11428 1997-01-22  Hrvoje Niksic  <hniksic@srce.hr>
11429
11430         * retr.c (retrieve_url): Require STRICT redirection URL.
11431
11432         * url.c (parseurl): New argument STRICT.
11433
11434         * http.c (hparsestatline): Be a little-bit less strict about
11435         status line format.
11436
11437 1997-01-21  Hrvoje Niksic  <hniksic@srce.hr>
11438
11439         * http.c (gethttp): Use it.
11440
11441         * main.c (main): Don't use '<digit>' as options.
11442
11443         * init.c: New option ignore_length.
11444
11445         * http.c (gethttp): Ditto.
11446         (http_loop): Check for redirection without Location:.
11447         (gethttp): Don't print Length unless RETROKF.
11448
11449         * ftp.c (getftp): Use it.
11450
11451         * url.c (mkalldirs): New function.
11452
11453         * utils.c (mymkdir): Don't check for existing non-directory.
11454
11455         * url.c (mkstruct): Don't create the directory.
11456
11457 1997-01-20  Hrvoje Niksic  <hniksic@srce.hr>
11458
11459         * init.c (setval): Removed NO_RECURSION checks.
11460
11461 1997-01-19  Hrvoje Niksic  <hniksic@srce.hr>
11462
11463         * version.c: "Released" 1.4.3-pre2.
11464
11465         * recur.c (recursive_retrieve): Bypass host checking only if URL
11466         is ftp AND parent URL is not ftp.
11467
11468         * ftp-basic.c (ftp_request): Print out Turtle Power.
11469
11470         * ftp.c (ftp_loop): Call ftp_retrieve_glob with 0 if there's no
11471         wildcard.
11472         (ftp_retrieve_glob): Call ftp_loop_internal even on empty list, if
11473         not glob.
11474
11475         * http.c (gethttp): Be a little bit smarter about status codes.
11476
11477         * recur.c (recursive_retrieve): Always reset opt.recursive when
11478         dealing with FTP.
11479
11480 1997-01-18  Hrvoje Niksic  <hniksic@srce.hr>
11481
11482         * retr.c (retrieve_url): New variable location_changed; use it for
11483         tests instead of mynewloc.
11484         (retrieve_url): Allow heuristic adding of html.
11485
11486         * url.c (url_filename): Don't use the `%' in Windows file names.
11487
11488         * http.c (http_loop): Always time-stamp the local file.
11489
11490         * http.c (http_loop): Ditto.
11491
11492         * ftp.c (ftp_retrieve_list): Use it.
11493
11494         * utils.c (my_touch): New function.
11495
11496         * ftp.c (ftp_retrieve_list): Use #ifdef HAVE_STRUCT_UTIMBUF
11497         instead of #ifndef NeXT.
11498
11499         * utils.c (strptime): New version, by Ulrich Drepper.
11500
11501 1997-01-17  Hrvoje Niksic  <hniksic@srce.hr>
11502
11503         * http.c (haccepts_none): Renamed from `haccepts_bytes'.
11504         (gethttp): If haccepts_none(), disable ACCEPTRANGES.
11505         (http_loop): Would remove ACCEPTRANGES.
11506
11507         * ftp.c (getftp): Call ftp_list with NULL.
11508
11509 1997-01-15  Hrvoje Niksic  <hniksic@srce.hr>
11510
11511         * html.c (ftp_index): Don't print minutes and seconds if we don't
11512         know them; beautify the output.
11513
11514         * ftp.c (getftp): Don't close the socket on FTPNSFOD.
11515
11516 1997-01-14  Hrvoje Niksic  <hniksic@srce.hr>
11517
11518         * utils.c (strptime): New function.
11519         (strptime): Don't use get_alt_number.
11520         (strptime): Don't use locale.
11521         (match_string): Made it a function.
11522
11523 1997-01-12  Hrvoje Niksic  <hniksic@srce.hr>
11524
11525         * http.c (http_atotm): New function.
11526         (http_loop): Use it.
11527
11528         * atotm.c: Removed from the distribution.
11529
11530         * http.c (base64_encode_line): Rewrite.
11531
11532 1997-01-09  Hrvoje Niksic  <hniksic@srce.hr>
11533
11534         * ftp.c (getftp): Use ftp_expected_bytes; print size.
11535
11536         * ftp-basic.c (ftp_response): Use ftp_last_respline.
11537         (ftp_expected_bytes): New function.
11538
11539         * ftp.c (getftp): Print the unauthoritative file length.
11540
11541         * ftp-ls.c: Renamed from ftp-unix.c.
11542         (ftp_parse_ls): Moved from ftp.c.
11543         (ftp_parse_unix_ls): Recognize seconds in time spec.
11544         (ftp_parse_unix_ls): Recognize year-less dates of the previous
11545         year.
11546
11547 1997-01-08  Hrvoje Niksic  <hniksic@srce.hr>
11548
11549         * ftp-basic.c: Don't declare errno if #defined.
11550
11551         * host.c (ftp_getaddress): Check for sysinfo legally.
11552
11553 1997-01-08  Darko Budor  <dbudor@diana.zems.fer.hr>
11554
11555         * connect.c (iread): Use READ.
11556
11557 1996-12-23  Hrvoje Niksic  <hniksic@srce.hr>
11558
11559         * url.c: Recognize finger, rlogin, tn3270, mid and cid as valid
11560         schemes.
11561
11562 1996-12-22  Hrvoje Niksic  <hniksic@srce.hr>
11563
11564         * host.c (ftp_getaddress): Allow `.' in hostname.
11565
11566 1996-12-26  Darko Budor <dbudor@zems.fer.hr>
11567
11568         * wget.h: READ and WRITE macros for use instead of read and write
11569         on sockets, grep READ *.c, grep WRITE *.c
11570
11571         * wsstartup.c: new file - startup for winsock
11572
11573         * wsstartup.h: new file
11574
11575         * win32decl.h: new file - fixup for <errno.h> and winsock trouble
11576
11577         * configure.bat: Configure utility for MSVC
11578
11579         * src/Makefile.ms,config.h.ms: new files for use with MSVC 4.x
11580
11581 1996-12-22  Hrvoje Niksic  <hniksic@srce.hr>
11582
11583         * version.c: Released 1.4.3-pre.
11584
11585         * utils.c (prnum): Accept long.
11586         (legible): Use prnum().
11587
11588         * connect.c (make_connection): Accept port as short.
11589         (bindport): Ditto.
11590
11591         * http.c (gethttp): Use search_netrc.
11592
11593 1996-12-21  Hrvoje Niksic  <hniksic@srce.hr>
11594
11595         * ftp.c (getftp): Use search_netrc.
11596
11597         * netrc.c (free_netrc): New function.
11598
11599         * init.c (home_dir): New function.
11600
11601         * url.c (convert_links): Allow REL2ABS changes.
11602
11603 1996-12-21  Gordon Matzigkeit  <gord@gnu.ai.mit.edu>
11604
11605         * netrc.c: New file.
11606         (parse_netrc, maybe_add_to_list): New functions.
11607
11608 1996-12-17  Hrvoje Niksic  <hniksic@srce.hr>
11609
11610         * retr.c (retrieve_url): Reset opt.recursion before calling
11611         ftp_loop if it is reached through newloc.
11612
11613         * init.c (run_wgetrc): Print the wgetrc path too, when reporting
11614         error; don't use "Syntax error", since we don't know if it is
11615         really a syntax error.
11616
11617 1996-12-16  Hrvoje Niksic  <hniksic@srce.hr>
11618
11619         * utils.c (acceptable): Extract the filename part of the path.
11620
11621         * recur.c (recursive_retrieve): Call acceptable() with the right
11622         argument; would bug out on wildcards.
11623
11624         * init.c (parse_line): Likewise.
11625
11626         * html.c (htmlfindurl): Cast to char * when calling stuff.
11627
11628 1996-12-15  Hrvoje Niksic  <hniksic@srce.hr>
11629
11630         * ftp.c (getftp): Use ftp_pasv.
11631
11632         * ftp-basic.c (ftp_request): Accept NULL value.
11633         (ftp_pasv): New function.
11634
11635         * options.h (struct options): Add passive FTP option.
11636
11637 1996-12-15  Hrvoje Niksic  <hniksic@srce.hr>
11638
11639         * url.c (parseurl): Debug output.
11640
11641         * utils.c (path_simplify): New one, adapted from bash's
11642         canonicalize_pathname().
11643
11644 1996-12-14  Hrvoje Niksic  <hniksic@srce.hr>
11645
11646         * ftp.c (getftp): Don't discard the buffer.
11647
11648         * retr.c (get_contents): New parameter nobuf.
11649
11650 1996-12-13  Shawn McHorse  <riffraff@txdirect.net>
11651
11652         * html.c (htmlfindurl): Recognize <meta contents="d; URL=...".
11653
11654         * init.c (setval): Strip the trailing slashes on CVECDIR.
11655
11656 1996-12-13  Hrvoje Niksic  <hniksic@srce.hr>
11657
11658         * init.c: Make excludes and includes under CVECDIR instead of
11659         CVEC.
11660
11661 1996-12-13  Shawn McHorse  <riffraff@txdirect.net>
11662
11663         * url.c (get_urls_html): Skip "http:".
11664
11665 1996-12-13  Hrvoje Niksic  <hniksic@srce.hr>
11666
11667         * utils.c (strcasecmp): From glibc.
11668         (strncasecmp): Also.
11669         (strstr): Also.
11670
11671         * url.c: Added javascript: to the list of URLs prefixes.
11672
11673 1996-12-12  Shawn McHorse  <riffraff@txdirect.net>
11674
11675         * recur.c (retrieve_robots): Print the warning message only if
11676         verbose.
11677
11678 1996-12-12  Gregor Hoffleit  <flight@mathi.uni-heidelberg.DE>
11679
11680         * ftp.c (ftp_retrieve_list): Use NeXT old utime interface.
11681
11682 1996-12-12  Hrvoje Niksic  <hniksic@srce.hr>
11683
11684         * systhings.h: New file.
11685
11686         * ../configure.in: Check for utime.h
11687
11688         * ftp.c: Check whether we have unistd.h.
11689
11690 1996-11-27  Hrvoje Niksic  <hniksic@srce.hr>
11691
11692         * recur.c (recursive_retrieve): Send the canonical URL as referer.
11693         (recursive_retrieve): Call get_urls_html with the canonical URL.
11694
11695 1996-12-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11696
11697         * (configure.in, config.h.in, src/Makefile.in, src/*.[ch]): Add
11698         ansi2knr support for compilers which don't support ANSI style
11699         function prototypes and signatures.
11700
11701         * (aclocal.m4, src/ansi2knr.c, src/ansi2knr.1): New files.
11702
11703 1996-11-26  Hrvoje Niksic  <hniksic@srce.hr>
11704
11705         * url.c: Use it; Recognize paths ending with "." and ".." as
11706         directories.
11707         (url_filename): Append .n whenever file exists and could be a
11708         directory.
11709
11710         * url.h (ISDDOT): New macro.
11711
11712         * init.c (parse_line): Use unsigned char.
11713
11714         * url.c (get_urls_html): Cast to unsigned char * when calling
11715         htmlfindurl.
11716
11717         * html.c (htmlfindurl): Use unsigned char.
11718
11719         * version.c: Changed version to 1.4.3.
11720
11721 1996-11-25  Hrvoje Niksic  <hniksic@srce.hr>
11722
11723         * version.c: Released 1.4.2.
11724
11725         * ftp.c (getftp): Simplified assertion.
11726         (ftp_loop_internal): Remove symlink before downloading.
11727         (ftp_retrieve_list): Unlink the symlink name before attempting to
11728         create a symlink!
11729
11730         * options.h (struct options): Renamed print_server_response to
11731         server_response.
11732
11733         * ftp.c (rel_constr): Removed.
11734         (ftp_retrieve_list): Don't use it.
11735         (ftp_retrieve_list): Use opt.retr_symlinks.
11736
11737 1996-11-24  Hrvoje Niksic  <hniksic@srce.hr>
11738
11739         * main.c (main): New option retr_symlinks.
11740
11741         * url.c (convert_links): Print verbose message.
11742
11743 1996-11-24  Hrvoje Niksic  <hniksic@srce.hr>
11744
11745         * http.c (http_loop): Reset newloc in the beginning of function;
11746         would cause FMR in retrieve_url.
11747
11748 1996-11-23  Hrvoje Niksic  <hniksic@srce.hr>
11749
11750         * recur.c (convert_all_links): Find the URL of each HTML document,
11751         and feed it to get_urls_html; would bug out.
11752         (convert_all_links): Check for l2 instead of dl; removed dl.
11753
11754         * url.c (convert_links): Don't refer to freed newname.
11755
11756         * recur.c (recursive_retrieve): Add this_url to urls_downloaded.
11757
11758         * main.c (main): Print the OS_TYPE in the debug output, too.
11759
11760         * recur.c (recursive_retrieve): Check for opt.delete_after.
11761
11762         * main.c (main): New option delete-after.
11763
11764         * init.c (setval): Cleaned up.
11765
11766 1996-11-21  Hrvoje Niksic  <hniksic@srce.hr>
11767
11768         * Makefile.in (wget): Make `wget' the default target.
11769
11770         * ftp.c (ftp_loop_internal): Move noclobber checking out of the
11771         loop.
11772         (ftp_retrieve_list): Warn about non-matching sizes.
11773
11774         * http.c (http_loop): Made -nc non-dependent on opt.recursive.
11775
11776         * init.c (setnum): Renamed from setnuminf; New argument flags.
11777         (setval): Use it.
11778
11779         * main.c (main): Sorted the options.
11780         (main): New option --wait.
11781
11782 1996-11-21  Shawn McHorse  <riffraff@txdirect.net>
11783
11784         * html.c (htmlfindurl): Reset s->in_quote after getting out of
11785         quotes.
11786
11787 1996-11-20  Hrvoje Niksic  <hniksic@srce.hr>
11788
11789         * version.c: Changed version to 1.4.2.
11790
11791 1996-11-20  Hrvoje Niksic  <hniksic@srce.hr>
11792
11793         * version.c: Released 1.4.1.
11794
11795         * html.c (html_quote_string): New function.
11796         (ftp_index): Use it.
11797         (htmlfindurl): A more gentle ending debug message.
11798
11799         * ftp.c (ftp_loop): Check for opt.htmlify.
11800
11801         * init.c: New command htmlify.
11802
11803         * ftp.c (getftp): Nicer error messages, with `'-encapsulated
11804         strings.
11805         (ftp_loop): Print size of index.html.
11806
11807         * init.c (setval): Implement "styles".
11808
11809         * main.c (main): New option dotstyle.
11810
11811 1996-11-19  Hrvoje Niksic  <hniksic@srce.hr>
11812
11813         * ftp.c (getftp): Close the master socket in case of errors, after
11814         bindport().
11815
11816         * connect.c (bindport): Initialize msock to -1.
11817
11818         * ftp.c (getftp): Initialize dtsock to -1.
11819
11820         * connect.c (closeport): Don't close sock if sock == -1.
11821
11822 1996-11-18  Hrvoje Niksic  <hniksic@srce.hr>
11823
11824         * init.c (setnuminf): Nuked default value -- just leave unchanged.
11825         (setval): Don't send default values.
11826         (defaults): Use DEFAULT_TIMEOUT -- aaargh.
11827
11828         * options.h (struct options): Use long for dot_bytes.
11829
11830         * init.c (setquota): Renamed to setbytes.
11831         (setval): Use setbytes on DOTBYTES.
11832
11833 1996-11-17  Hrvoje Niksic  <hniksic@srce.hr>
11834
11835         * ftp.c (getftp): Initialize con->dltime.
11836
11837         * recur.c (recursive_retrieve): Use same_host instead of
11838         try_robots; simply load robots_txt whenever the host is changed.
11839         (recursive_retrieve): Free forbidden before calling parse_robots.
11840
11841 1996-11-16  Hrvoje Niksic  <hniksic@srce.hr>
11842
11843         * retr.c (show_progress): Use them.
11844
11845         * options.h (struct options): New options dot_bytes, dots_on_line
11846         and dot_spacing.
11847
11848 1996-11-16  Mark Boyns  <boyns@sdsu.edu>
11849
11850         * recur.c (recursive_retrieve): Retrieve directories regardless of
11851         acc/rej rules; check for empty u->file.
11852
11853 1996-11-14  Hrvoje Niksic  <hniksic@srce.hr>
11854
11855         * init.c (setval): Use it.
11856
11857         * utils.c (merge_vecs): New function.
11858
11859         * init.c (setval): Reset the list-type functions when encountering
11860         "".
11861
11862 1996-11-14  Shawn McHorse  <riffraff@txdirect.net>
11863
11864         * recur.c (recursive_retrieve): Use base_url instead of this_url
11865         for no_parent.
11866
11867 1996-11-14  Shawn McHorse  <riffraff@txdirect.net>
11868
11869         * html.c (htmlfindurl): Reset s->in_quote after exiting the quote.
11870
11871 1996-11-13  Hrvoje Niksic  <hniksic@srce.hr>
11872
11873         * utils.c (sepstring): Rewrote; don't use strtok.
11874
11875         * recur.c (recursive_retrieve): Enter assorted this_url to slist
11876         when running the first time.
11877         (retrieve_robots): Warn to ignore errors when robots are loaded.
11878
11879         * utils.c (load_file): Moved from url.c.
11880
11881         * http.c: Made static variables const too in h* functions.
11882
11883         * main.c (main): Renamed --continue-ftp to --continue.
11884
11885         * recur.c (recursive_retrieve): Use it.
11886
11887         * utils.c (frontcmp): New function.
11888
11889         * url.c (accdir): New function.
11890
11891         * html.c (htmlfindurl): Recognize <area href=...>.
11892
11893         * ftp.c (ftp_retrieve_dirs): Implemented opt.includes.
11894
11895         * init.c (setval): Free the existing opt.excludes and
11896         opt.includes, if available.
11897
11898         * main.c (main): New option -I.
11899
11900 1996-11-12  Hrvoje Niksic  <hniksic@srce.hr>
11901
11902         * ftp.c (ftp_retrieve_glob): Do not weed out directories.
11903
11904         * version.c: Changed version to 1.4.1.
11905
11906 1996-11-11  Hrvoje Niksic  <hniksic@srce.hr>
11907
11908         * version.c: Released 1.4.0.
11909
11910 1996-11-10  Hrvoje Niksic  <hniksic@srce.hr>
11911
11912         * main.c (main): Free com and val after parse_line.
11913         (printhelp): Reorder the listing.
11914
11915         * http.c: More robust header parsing.
11916
11917         * http.c: Allow any number of spaces, or no spaces, precede ':'.
11918         (hskip_lws): New function.
11919         (haccepts_bytes): New function.
11920         (gethttp): Use it.
11921
11922         * init.c (setval): Check header sanity.
11923         (setval): Allow resetting of headers.
11924
11925 1996-11-10  Hrvoje Niksic  <hniksic@srce.hr>
11926
11927         * http.c (http_loop): Don't use has_wildcards.
11928
11929         * http.c (gethttp): Free all_headers -- would leak.
11930
11931         * recur.c (recursive_retrieve): Initialize depth to 1 instead of
11932         0 -- this fixes a long-standing bug in -rl.
11933
11934 1996-11-09  Hrvoje Niksic  <hniksic@srce.hr>
11935
11936         * ftp.c: Use -1 as "impossible" value for con->fd.
11937
11938         * url.h (URL_SEPARATOR): Don't treat `*' and `+' as separators.
11939
11940         * init.c (parse_line): Use isalpha.
11941
11942         * ftp-unix.c: Use HAVE_UNISTD_H.
11943
11944         * mtch.c (has_wildcards): Don't match \.
11945
11946         * http.c (http_loop): Warn on HTTP wildcard usage.
11947
11948 1996-11-08  Hrvoje Niksic  <hniksic@srce.hr>
11949
11950         * url.c (url_filename): Do not create numbered suffixes if
11951         opt.noclobber -- would bug out on -nc.
11952
11953 1996-11-07  Hrvoje Niksic  <hniksic@srce.hr>
11954
11955         * recur.c (parse_robots): Don't chuck out the commands without
11956         arguments (`Disallow:<empty>' didn't work).
11957         (parse_robots): Compare versions lowercase.
11958         (parse_robots): Match on base_version, not version_string!
11959         (parse_robots): Handle comments properly.
11960         (parse_robots): Match versions in a sane way.
11961
11962         * init.c: Print nicer error messages.
11963
11964         * version.c: Changed version to 1.4.0.
11965
11966 1996-11-06  Hrvoje Niksic  <hniksic@srce.hr>
11967
11968         * version.c: Released 1.4.0-test2.
11969
11970         * init.c (run_wgetrc): Close fp.
11971
11972         * ftp.c (ftp_retrieve_dirs): Allocate the correct length for
11973         u->dir.
11974
11975 1996-11-06  Hrvoje Niksic  <hniksic@srce.hr>
11976
11977         * init.c (setquota): Allow inf as quota specification.
11978
11979 1996-11-05  Hrvoje Niksic  <hniksic@srce.hr>
11980
11981         * ftp.c (ftp_retrieve_dirs): Return QUOTEXC if quota exceeded.
11982         (ftp_retrieve_glob): Return QUOTEXC on quota exceeded.
11983
11984         * main.c (main): Check for quota by comparison with downloaded
11985         stuff, not from status.
11986
11987         * connect.c (select_fd): Should compile on HPUX without warnings now.
11988
11989         * ftp.c (ftp_get_listing): Check whether ftp_loop_internal
11990         returned RETROK.
11991
11992 1996-11-04  Hrvoje Niksic  <hniksic@srce.hr>
11993
11994         * ftp.c (ftp_retrieve_glob): Print the pattern nicely.
11995         (getftp): Return FTPRETRINT on control connection error.
11996
11997         * html.c (htmlfindurl): Recognize <embed src=...> and
11998         <bgsound src=...>.
11999         (ftp_index): Handle username and password correctly.
12000
12001         * main.c (main): Made `-np' a synonim for --no-parent.
12002
12003 1996-11-02  Hrvoje Niksic  <hniksic@srce.hr>
12004
12005         * ftp.c (ftp_loop): Check for opt.ftp_glob too before calling
12006         ftp_retrieve_glob.
12007
12008         * version.c: Changed version to 1.4.0-test2.
12009
12010 1996-11-02  Hrvoje Niksic  <hniksic@srce.hr>
12011
12012         * version.c: Released 1.4.0-test1.
12013
12014         * url.c (str_url): Don't use sprintf when creating %2F-prefixed
12015         directory.
12016         (convert_links): Removed definition of make_backup.
12017
12018         * http.h: Removed definition of MAX_ERROR_LENGTH.
12019
12020         * host.c (ftp_getaddress): Check for "(none)" domains.
12021
12022         * ftp.c (ftp_retrieve_dirs): Docfix.
12023
12024         * http.c (gethttp): Use ou->referer instead of u->referer.
12025
12026         * retr.c (retrieve_url): Reset u to avoid freeing pointers twice;
12027         this was known to cause coredumps on Linux.
12028
12029         * html.c (ftp_index): Cast the argument to local_time to time_t *.
12030
12031 1996-11-01  Hrvoje Niksic  <hniksic@srce.hr>
12032
12033         * connect.c (select_fd): Use exceptfds -- once and for all.
12034
12035         * retr.c (retrieve_from_file): Free filename after
12036         recursive_retrieve.
12037         (retrieve_from_file): Send RFIRST_TIME to recursive_retrieve on
12038         first-time retrieval.
12039         (retrieve_from_file): Return uerr_t; new argument, count.
12040         (retrieve_from_file): Break on QUOTEXC.
12041
12042         * init.c (setquota): Fixed a bug that caused rejection of
12043         non-postfixed values..
12044
12045 1996-10-30  Hrvoje Niksic  <hniksic@srce.hr>
12046
12047         * version.c: Changed name to wget.
12048
12049         * connect.c (iread): Smarter use of select.
12050         (select_fd): Set errno on timeout.  If not timeout, return 1
12051         instead of 0.
12052
12053 1996-10-29  Hrvoje Niksic  <hniksic@srce.hr>
12054
12055         * ftp.c (ftp_loop_internal): Don't use con->cmd before
12056         establishing it.
12057
12058 1996-10-26  Hrvoje Niksic  <hniksic@srce.hr>
12059
12060         * http.c (gethttp): Send correct referer when using proxy.
12061         (gethttp): Use struct urlinfo ou to access the relevant data; send
12062         correct authorization in all cases.
12063
12064         * host.c (same_host): Use skip_uname to skip username and
12065         password.
12066
12067         * url.c (skip_uname): New function.
12068         (parseurl): Use it.
12069
12070         * host.c (same_host): Do not assume HTTP -- same_host should now
12071         be totally foolproof.
12072
12073         * url.c (skip_proto): New function.
12074         (parse_uname): Use it.
12075
12076         * http.c (gethttp): Create local user and passwd from what is
12077         given.
12078
12079         * url.c (parseurl): Check for HTTP username and password too.
12080
12081 1996-10-25  Hrvoje Niksic  <hniksic@srce.hr>
12082
12083         * config.h.in: Removed #define gethostbyname R...
12084
12085 1996-10-22  Hrvoje Niksic  <hniksic@srce.hr>
12086
12087         * version.c: Changed version to 1.4.0-test1.
12088
12089 1996-10-21  Hrvoje Niksic  <hniksic@srce.hr>
12090
12091         * version.c: "Released" 1.4b29.
12092
12093         * recur.c (recursive_retrieve): Check for no_parent.
12094
12095         * init.c (setval): Option update.
12096
12097         * main.c (main): New option no-parent.
12098
12099         * options.h (struct options): New variable no_parent.
12100
12101         * recur.c (recursive_retrieve): Only files are checked for
12102         opt.accepts and opt.rejects.
12103         (recursive_retrieve): Check directories for opt.excludes.
12104         (recursive_retrieve): Make the dir absolute when checking
12105         opt.excludes.
12106
12107         * html.c (htmlfindurl): Recognize <applet code=...> and <script
12108         src=...>
12109
12110 1996-10-18  Hrvoje Niksic  <hniksic@srce.hr>
12111
12112         * ftp.c (getftp): Do not line-break assert entries at all.
12113         (ftp_retrieve_dirs): docfix.
12114
12115         * connect.c (select_fd): Use fd + 1 as nfds.
12116
12117         * version.c: Changed version to 1.4b29.
12118
12119 1996-10-18  Hrvoje Niksic  <hniksic@srce.hr>
12120
12121         * version.c: "Released" 1.4b28.
12122
12123         * ftp.c (ftp_loop_internal): Check whether f->size == len and
12124         don't continue the loop if it is.
12125         (ftp_get_listing): Remove list_filename on unsuccesful loop.
12126
12127 1996-10-17  Hrvoje Niksic  <hniksic@srce.hr>
12128
12129         * ftp.c (ftp_loop_internal): Use strcpy to initialize tmp.
12130         (getftp): Do not use multiline assert.
12131
12132         * http.c (hparsestatline): Use mjr and mnr instead of major and
12133         minor, which don't compile on Ultrix.
12134         (http_loop): Use strcpy() to initialize tmp.
12135
12136         * all: Geturl -> Fetch
12137
12138 1996-10-17  Hrvoje Niksic  <hniksic@srce.hr>
12139
12140         * recur.c (parse_robots): Fixed an off-by-one bug when looking for
12141         ':'.
12142
12143         * html.c (htmlfindurl): Fixed several possible off-by-one bugs by
12144         moving `bufsize &&' to the beginning of each check in for-loops.
12145
12146         * recur.c (parse_robots): Close fp on exit.
12147
12148         * url.c (mymkdir): Check for each directory before creating.
12149
12150 1996-10-16  Hrvoje Niksic  <hniksic@srce.hr>
12151
12152         * version.c: Changed version to 1.4b28.
12153
12154 1996-10-16  Hrvoje Niksic  <hniksic@srce.hr>
12155
12156         * version.c: "Released" 1.4b27.
12157
12158         * init.c (parse_line): Use isspace.
12159         (parse_line): Free *com on all errors.
12160
12161         * ftp.c (ftp_loop): Change FTPOK to RETROK before exiting.
12162         (delelement): Use next instead of f->next and prev instead of
12163         f->prev.
12164         (delelement): Free the members of the deleted element.
12165
12166         * http.c (http_loop): Do not return RETROK on code != 20x.
12167
12168         * init.c (cleanup): Free opt.user_header.
12169         (cleanup): Free opt.domains.
12170
12171         * url.c (freelists): Moved to cleanup().
12172
12173         * http.c (hparsestatline): Docfix.
12174
12175         * main.c (main): Return with error status on unsuccesful
12176         retrieval.
12177
12178         * init.c (setval): Do not remove listing when mirroring.
12179
12180         * url.c (url_filename): Use opt.fileprefix.
12181
12182         * ftp.c (ftp_get_listing): Use url_filename to get filename for
12183         .listing.
12184
12185         * main.c (main): New option: -rn.
12186
12187 1996-10-15  Hrvoje Niksic  <hniksic@srce.hr>
12188
12189         * Makefile.in (RM): Added RM = rm -f.
12190
12191         * host.c (clean_hosts): New function.
12192         (free_hlist): Just free the list, no reset.
12193
12194         * version.c: Changed version to 1.4b27.
12195
12196 1996-10-13  Hrvoje Niksic  <hniksic@srce.hr>
12197
12198         * version.c: "Released" 1.4b26.
12199
12200         * retr.c (retrieve_from_file): If call get_urls_html with
12201         opt.spider to make it silent in spider mode.
12202
12203         * url.c (str_url): Use CLEANDUP instead of URL_CLEANSE.
12204
12205         * url.h (CLEANDUP): New macro.
12206
12207         * http.c (gethttp): Fixed a bug that freed location only when it
12208         was NULL.
12209
12210         * retr.c (retrieve_url): Free url if it will not be stored,
12211         i.e. newloc is NULL.
12212
12213         * html.c (htmlfindurl): Handle exiting from quotes correctly; the
12214         old version would bug out on <a href="x#a"href="y">.
12215
12216         * html.h (state_t): New member in_quote.
12217
12218         * html.c (htmlfindurl): Free s->attr at the beginning of
12219         attr-loop.
12220
12221         * recur.c (recursive_retrieve): Recognize RCLEANUP.
12222         (tried_robots): Make hosts a global variable.
12223         (recursive_retrieve): Free constr after URL host optimization.
12224         (tried_robots): Free urlinfo before exiting.
12225
12226         * utils.c (free_slist): New function.
12227
12228         * recur.c (recursive_retrieve): Use flags to add cleanup
12229         possibility.
12230
12231         * main.c (main): Free filename after recursive_retrieve.
12232
12233         * http.c (gethttp): Store successful responses too.
12234
12235 1996-10-12  Hrvoje Niksic  <hniksic@srce.hr>
12236
12237         * all: Constified the whole source.  This required some minor
12238         changes in many functions in url.c, possibly introducing bugs -- I
12239         hope not.
12240
12241         * ftp-basic.c: Removed last_respline.
12242
12243         * http.c (gethttp): Free type.
12244
12245         * host.c (same_host): Free real1 and real2.
12246
12247         * main.c (main): New option --spider.
12248
12249         * retr.c (get_contents): Don't reset errno.
12250
12251         * main.c (main): Sorted the options.
12252
12253         * connect.c (iread): Set errno to ETIMEDOUT only if it was left
12254         uninitialized by select().
12255
12256         * http.c (http_loop): Print the time when the connection is
12257         closed.
12258         (gethttp): Debug-print the HTTP request.
12259
12260 1996-10-11  Hrvoje Niksic  <hniksic@srce.hr>
12261
12262         * connect.c (iread): Do not try reading after timeout.
12263
12264         * main.c (main): Would bug out on -T.
12265
12266         * connect.c (select_fd): Do not use exceptfds.
12267         (iread): Set ETIMEDOUT on select_fd <= 0.
12268
12269         * version.c: Changed version to 1.4b26.
12270
12271 1996-10-10  Hrvoje Niksic  <hniksic@srce.hr>
12272
12273         * version.c: "Released" 1.4b25.
12274
12275         * ftp-unix.c (ftp_parse_unix_ls): Ignore lines without file name
12276         or link name.
12277
12278         * http.c (gethttp): Add errcode to struct hstat.
12279         (http_loop): Use it.
12280
12281         * url.c (no_proxy_match): Simplify using char** for no_proxy.
12282
12283         * options.h (struct options): Make opt.no_proxy a vector.
12284
12285         * utils.c (sepstring): Use !*s instead of !strlen(s).
12286
12287         * init.c (setval): Set opt.maxreclevel to 0 on --mirror.
12288         (getperms): Use ISODIGIT instead of isdigit.
12289
12290         * ftp.c (getftp): Print time.
12291
12292         * main.c (main): Use legible output of downloaded quantity.
12293
12294         * ftp.c (getftp): Use elapsed_time().
12295         (ftp_loop_internal): Use rate().
12296
12297         * http.c (http_loop): Add download ratio output; Use rate().
12298
12299         * utils.c (rate): New function.
12300
12301 1996-10-09  Hrvoje Niksic  <hniksic@srce.hr>
12302
12303         * http.c (http_loop): Use timer.
12304
12305         * ftp.c: Split to ftp-basic.c and ftp.c
12306
12307         * utils.c (reset_timer): New function.
12308         (elapsed_time): New function.
12309
12310         * retr.c (show_progress): Make bytes_in_line and offs long; should
12311         work on 16-bit machines.
12312
12313 1996-10-08  Hrvoje Niksic  <hniksic@srce.hr>
12314
12315         * url.c (in_acclist): New argument backward.
12316
12317         * ftp.c (ftp_retrieve_glob): Use acceptable() to determine whether
12318         a file should be retrieved according to suffix.
12319         (ftp_get_listing): Check the return value of unlink; Do not call
12320         ftp_retrieve_dirs if depth reached maxreclevel.
12321         (ftp_retrieve_dirs): Check whether the directory is in
12322         exclude-list.
12323
12324         * main.c (main): Print the version number at the beginning of
12325         DEBUG output.
12326         (main): Use strrchr when creating exec_name.
12327
12328         * ftp.c (ftp_retrieve_glob): Do not close control connection.
12329
12330         * version.c: Changed version to 1.4b25.
12331
12332 1996-10-07  Hrvoje Niksic  <hniksic@srce.hr>
12333
12334         * version.c: "Released" 1.4b24.
12335
12336         * Makefile.in: Rewrite.
12337
12338         * ftp.c (ftp_loop_internal): Likewise.
12339
12340         * retr.c (time_str): Check for failed time().
12341
12342         * html.c (htmlfindurl): Recognize <fig src> and <overlay src> from
12343         HTML3.0.
12344
12345         * retr.c (time_str): Return time_t *.
12346
12347         * connect.c (bindport): Close msock on unsuccesful bind.
12348         (bindport): The same for getsockname and listen.
12349
12350         * retr.c (retrieve_url): Allow any number of retries on
12351         proxy.
12352
12353         * http.c (gethttp): Do not treat errno == 0 as timeout.
12354         (http_loop): Likewise.
12355         (http_loop): Cosmetic changes.
12356
12357         * connect.c (iread): Set errno to ETIMEDOUT in case of timeout.
12358
12359         * retr.c (get_contents): Reset errno.
12360
12361         * ftp.c (getftp): Minor fixes.
12362
12363 1996-10-06  Hrvoje Niksic  <hniksic@srce.hr>
12364
12365         * http.c: Do not use backups.
12366
12367         * geturl.1 (WARNING): Warn that man-page could be obsolete.
12368
12369         * getopt.c (getopt_long): Moved to getopt.c
12370
12371         * geturl.texi: Enhanced.
12372
12373         * main.c (main): Use it.
12374
12375         * recur.c (convert_all_links): New function.
12376
12377         * utils.c (add_slist): New argument flags.
12378
12379         * recur.c (recursive_retrieve): Update a list of downloaded URLs.
12380         (parse_robots): Do not chuck out empty value fields.
12381         (parse_robots): Make yourself welcome on empty Disallow.
12382
12383         * version.c: Changed version to 1.4b24.
12384
12385 1996-10-06  Hrvoje Niksic  <hniksic@srce.hr>
12386
12387         * version.c: "Released" 1.4b23.
12388
12389         * ftp.c (ftp_loop_internal): Get the time after getftp.
12390
12391         * Makefile.in (install.info): New target.
12392         (install): Use it.
12393
12394         * http.c (http_loop): Fix output when doing -O.
12395
12396 1996-10-05  Hrvoje Niksic  <hniksic@srce.hr>
12397
12398         * geturl.texi: New file.
12399
12400         * main.c (main): Do not print the warnings and download summary if
12401         opt.quiet is set.
12402
12403         * version.c: Changed version to 1.4b23.
12404
12405 1996-10-05  Hrvoje Niksic  <hniksic@srce.hr>
12406
12407         * "Released" 1.4b22.
12408
12409         * atotm.c (atotm): Use True and False instead of TRUE and FALSE,
12410         to avoid redefinition warnings.
12411
12412         * host.c (store_hostaddress): Use memcpy() to copy the address
12413         returned by inet_addr.
12414
12415         * version.c: Changed version to 1.4b22.
12416
12417 1996-10-04  Hrvoje Niksic  <hniksic@srce.hr>
12418
12419         * version.c: "Released" 1.4b21.
12420
12421         * ftp-unix.c (ftp_parse_ls): Renamed to ftp_parse_unix_ls.
12422
12423         * ftp.c (ftp_port): Use conaddr.
12424         (getftp): Print the file length.
12425         (ftp_retrieve_list): Check the stamps of plain files only.
12426
12427         * connect.c (closeport): Do not call shutdown().
12428         (conaddr): New function.
12429
12430         * html.c (ftp_index): Made it dfp-aware.
12431
12432         * init.c (cleanup): New name of freemem. Close opt.dfp.
12433
12434         * ftp.c (getftp): Use opt.dfp if it is set.
12435
12436         * ftp-unix.c (ftp_parse_ls): Recognize time in h:mm format.
12437
12438         * ftp.c (ftp_retrieve_dirs): Fixed a bug that caused incorrect
12439         CWDs to be sent with recursive FTP retrievals.
12440
12441 1996-10-03  Hrvoje Niksic  <hniksic@srce.hr>
12442
12443         * recur.c (parse_robots): Made it more compliant with "official"
12444         specifications.
12445
12446         * http.c: New function.
12447
12448         * ftp-unix.c (ftp_parse_ls): Added better debug output.
12449
12450         * ftp.c (getftp): Print out the LIST in case of
12451         opt.print_server_response.
12452
12453         * version.c: Changed version to 1.4b21.
12454
12455 1996-10-01  Hrvoje Niksic  <hniksic@srce.hr>
12456
12457         * version.c: "Released" 1.4b20.
12458
12459         * README: Update.
12460
12461         * http.c (gethttp): Preset lengths of various headers instead of
12462         calculating them dynamically.
12463         (gethttp): Check for 206 partial contents.
12464
12465 1996-09-30  Hrvoje Niksic  <hniksic@srce.hr>
12466
12467         * configure.in: Set SYSTEM_GETURLRC to $libdir/geturlrc
12468
12469         * http.c (gethttp): Send the port number in the Host: header.
12470
12471 1996-09-29  Hrvoje Niksic  <hniksic@srce.hr>
12472
12473         * http.c (gethttp): Send host: header.
12474         (gethttp): Add the possibility of user-defined headers.
12475         (gethttp): Move decision about pragma: no-cache to http_loop,
12476         where it belongs.
12477         (gethttp): Pass a struct instead of enormous argument list.
12478         (http_loop): Use a new, fancier display format.
12479         (ftp_loop): Likewise.
12480
12481         * main.c: (hangup): Turn off buffering of the new log file.
12482
12483         * install-sh: Likewise.
12484
12485         * config.sub: Replace with the one in autoconf-2.10
12486
12487         * geturl.1: Update.
12488
12489         * init.c: New options httpuser and httppasswd.
12490
12491         * http.c: (base64_encode_line): New function.
12492         (gethttp): Send authentication.
12493
12494         * connect.c (make_connection): Use store_hostaddress.
12495
12496 1996-09-28  Hrvoje Niksic  <hniksic@srce.hr>
12497
12498         * host.c (store_hostaddress): New function.
12499
12500         * NEWS: Update.
12501
12502         * http.c (hgetrange): New function.
12503         (gethttp): Use ranges.
12504
12505         * utils.c (numdigit): Accept long instead of int.
12506
12507         * http.c (http_loop): Add restart capabilities.
12508
12509         * ftp.c (ftp_retrieve_glob): Fixed a bug that could cause matchres
12510         being used uninitialized.
12511         (ftp_retrieve_list): Similar fix.
12512
12513         * host.c (add_hlist): Fixed a bug that could cause cmp being used
12514         uninitialized.
12515
12516         * url.c (construct_relative): New function.
12517
12518         * recur.c (recursive_retrieve): Use it.
12519
12520         * retr.c (convert_links): New function.
12521
12522 1996-09-27  Hrvoje Niksic  <hniksic@srce.hr>
12523
12524         * url.c (free_urlpos): New function.
12525
12526         * recur.c (recursive_retrieve): Adapt.
12527
12528         * url.c (get_urls_html): Return a linked list instead of a vector.
12529
12530         * url.c (get_urls_file): Return a linked list instead of a vector.
12531
12532         * geturl.1: Update.
12533
12534         * http.c (gethttp): Implement it.
12535
12536         * init.c (setval): New option: SAVEHEADERS
12537
12538         * ftp.c (ftp_loop_internal): Do not set restval if listing is to
12539         be retrieved. Lack of this test caused bugs when the connection
12540         was lost during listing.
12541
12542         * retr.c (retrieve_url): Fixed a bug that caused
12543         coredumps. *newloc is now reset by default.
12544         (retrieve_url): Lift the twenty-tries limit on proxies.
12545
12546         * version.c: Changed version to 1.4b20.
12547
12548 1996-09-20  Hrvoje Niksic  <hniksic@srce.hr>
12549
12550         * version.c: "Released" 1.4b19.
12551
12552 1996-09-19  Hrvoje Niksic  <hniksic@srce.hr>
12553
12554         * ftp.c (ftp_loop_internal): Renamed from ftp_1fl_loop.
12555         (getftp): Changed prototype to accept ccon *.
12556
12557 1996-09-17  Hrvoje Niksic  <hniksic@srce.hr>
12558
12559         * ftp.c (ftp_retrieve_list): Fixed a bug that caused setting
12560         incorrect values to files pointed to by symbolic links.
12561         (ftp_1fl_loop): Do not count listings among the downloaded URL-s.
12562
12563 1996-09-16  Hrvoje Niksic  <hniksic@srce.hr>
12564
12565         * url.c (mkstruct): Do not prepend "./" in front of a pathname.
12566
12567         * main.c (main): New option: --user-agent.
12568
12569         * geturl.1: Ditto.
12570
12571         * init.h: Ditto.
12572
12573         * init.c (setval): Ditto.
12574
12575         * main.c (main): Rename "server-headers" to "server-response".
12576
12577         * ftp-unix.c (ftp_parse_ls): Check for asterisks at the end of
12578         executables in 'ls -F' listings.
12579
12580 1996-09-15  Hrvoje Niksic  <hniksic@srce.hr>
12581
12582         * url.c (parseurl): Remove realloc() and sprintf().
12583         (str_url): Get rid of sprintf().
12584
12585         * recur.c (recursive_retrieve): Enable FTP recursion through proxy
12586         servers.
12587
12588         * url.h (URL_CLEANSE): Made it else-resistant.
12589         (USE_PROXY): New macro.
12590
12591 1996-09-14  Hrvoje Niksic  <hniksic@srce.hr>
12592
12593         * NEWS: Update.
12594
12595         * version.c: Changed version to 1.4b19.
12596
12597 1996-09-14  Hrvoje Niksic  <hniksic@srce.hr>
12598
12599         * version.c: "Released" 1.4b18.
12600
12601         * url.c: Made it reallocate space exponentially.
12602
12603 1996-09-14  Drazen Kacar  <dave@fly.cc.fer.hr>
12604
12605         * html.c (htmlfindurl): Added <frame src> and <iframe src> among
12606         the list of stuff to fetch.
12607
12608 1996-09-13  Hrvoje Niksic  <hniksic@srce.hr>
12609
12610         * url.c (get_urls_html): Fixed a bug that caused SIGSEGV's with
12611         -Fi.
12612
12613         * html.c (htmlfindurl): Rewrite.
12614
12615         * http.c (gethttp): Use opt.proxy_cache.
12616
12617         * main.c (main): Added --cache option.
12618
12619         * ftp.c (ftp_response): Print server response if opt.print_server
12620         response is set.
12621         (getftp): Print newlines after each request if the server response
12622         is to be printed.
12623         (ftp_response): Copy the last response line to last_respline.
12624
12625         * http.c (gethttp): Add Pragma: nocache for retried
12626         proxy-retrievals.
12627
12628         * ftp.c (getftp): Use it.
12629
12630         * retr.c (buf_discard): New function.
12631
12632         * ftp.c (ftp_response): Use buf_readchar().
12633         (getftp): Flush the control connection buffer before calling
12634         get_contents().
12635
12636         * retr.c (buf_readchar): New function.
12637         (buf_flush): New function.
12638         (get_contents): Use buf_readchar() instead of read(x, x, 1).
12639         (get_contents): Use buf_flush.
12640
12641 1996-09-12  Hrvoje Niksic  <hniksic@srce.hr>
12642
12643         * ftp.c: Incorporate changes to ftp_response.
12644
12645         * ftp.c (ftp_response): Allocate the server response dynamically,
12646         as in read_whole_line and fetch_next_header.
12647
12648         * utils.c (read_whole_line): Fixed a bug that prevented reading
12649         the last line if it is not \n-terminated. Also fixed a possible
12650         memory overflow.
12651
12652         * http.c (fetch_next_header): Return malloc-ed string as large as
12653         needed.
12654         (gethttp): Use new fetch_next_header.
12655
12656 1996-09-12  Hrvoje Niksic  <hniksic@srce.hr>
12657
12658         * http.c (hgetlen): Compute the header length the first time only.
12659         (hgettype): Ditto.
12660         (hgetlocation): Ditto.
12661         (hgetmodified): Ditto.
12662
12663 1996-09-11  Hrvoje Niksic  <hniksic@srce.hr>
12664
12665         * sample.geturlrc: Update.
12666
12667 1996-09-10  Hrvoje Niksic  <hniksic@srce.hr>
12668
12669         * http.c (http_loop): Ditto.
12670
12671         * ftp.c (getftp): Open the output file as binary.
12672
12673         * version.c: Changed version to 1.4b18.
12674
12675 1996-09-10  Hrvoje Niksic  <hniksic@srce.hr>
12676
12677         * version.c: "Released" 1.4b17.
12678
12679         * ftp-unix.c (ftp_parse_ls): If unable to open file, return NULL
12680         instead of failed assertion.
12681
12682 1996-09-09  Hrvoje Niksic  <hniksic@srce.hr>
12683
12684         * ftp.c (ftp_get_listing): Add a numbered suffix to LIST_FILENAME
12685         if a file of that name already exists.
12686
12687 1996-09-05  Hrvoje Niksic  <hniksic@srce.hr>
12688
12689         * ftp.c (ftp_1fl_loop): Handler FTPPORTERR and FOPENERR correctly.
12690
12691         * config.h.in: Define gethostbyname as Rgethostbyname when using
12692         Socks.
12693
12694         * configure.in: Check for -lresolv if using Socks.
12695
12696         * version.c: Changed version to 1.4b17.
12697
12698 1996-07-15  Hrvoje Niksic  <hniksic@srce.hr>
12699
12700         * version.c: "Released" 1.4b16.
12701
12702         * http.c (gethttp): More intelligent check for first line of HTTP
12703         response.
12704         (gethttp): Would bug out on time-stamping.
12705
12706         * version.c: Changed version to 1.4b16.
12707
12708 1996-07-11  Hrvoje Niksic  <hniksic@srce.hr>
12709
12710         * version.c: Released 1.4b15.
12711
12712         * http.c (http_loop): Print \n after the loop entry, not before.
12713
12714         * url.c (url_filename): Use ISDOT.
12715
12716         * url.h (ISDOT): New macro.
12717
12718         * recur.c (recursive_retrieve): Change only opt.recursive for
12719         following FTP.
12720
12721 1996-07-11  Antonio Rosella <antonio.rosella@agip.it>
12722
12723         * socks/geturl.cgi: Fixed version No.
12724
12725         * socks/download-netscape.html: Ditto.
12726
12727         * socks/download.html: Changed socks.html to download.html.
12728
12729 1996-07-11  Hrvoje Niksic  <hniksic@srce.hr>
12730
12731         * url.c (url_filename): Check for opt.dirstruct instead for
12732         opt.recursive && opt.dirstruct.
12733
12734         * init.c (defaults): Ditto.
12735         (defaults): Reset dirstruct by default.
12736         (setval): Set opt.dirstruct whenever setting recursive.
12737
12738         * init.h: Removed FORCEDIRHIER.
12739
12740         * INSTALL: Added -L to socks-description.
12741
12742         * version.c: Changed version to 1.4b15.
12743
12744 1996-07-10  Hrvoje Niksic  <hniksic@srce.hr>
12745
12746         * version.c: "Released" 1.4b14.
12747
12748         * geturl.1: Update AUTHOR to include Rosella as contributor.
12749
12750         * NEWS: Update.
12751
12752         * socks/geturl.cgi: Simplified command creation, nuked <blink>.
12753
12754         * socks/geturl.cgi: Wrap nutscape extensions within if $netscape.
12755         (cal_time): Fix == to eq.
12756
12757         * socks/geturl.cgi: GPL-ized with permission of A. Rosella.
12758
12759         * geturl.1 (hostname): Moved URL CONVENTIONS to the beginning.
12760
12761         * Makefile.in: Use @VERSION@.
12762
12763         * configure.in: Check version from version.c.
12764
12765         * socks/geturl.cgi: Changed /pub/bin/perl to /usr/bin/perl.
12766
12767         * socks/download.html: Created from download-netscape.html, made
12768         HTML-2.0 compliant.
12769
12770         * recur.c (recursive_retrieve): Set opt.force_dir_hier when
12771         following FTP links from recursions.
12772
12773 1996-07-09  Hrvoje Niksic  <hniksic@srce.hr>
12774
12775         * url.c (mymkdir): Fixed a bug that prevented mymkdir() to create
12776         absolute directories correctly.
12777
12778         * version.c: Changed version to 1.4b14.
12779
12780 1996-07-09  Hrvoje Niksic  <hniksic@srce.hr>
12781
12782         * version.c: "Released" 1.4b13.
12783
12784         * url.c (make_backup): New function.
12785
12786         * http.c (http_loop): Make a backup copy of the local file (using
12787         rename(2)) before opening it.
12788
12789         * main.c (main): Added --backups.
12790
12791         * host.c (ftp_getaddress): Bail out on failed mycuserid().
12792         (ftp_getaddress): Check for leading dot on MY_DOMAIN.
12793         (ftp_getaddress): Check for empty, null or (null) domain.
12794
12795         * url.c (get_urls_html): If this_url is NULL, the base must have a
12796         protocol.
12797         (parseurl): Use has_proto.
12798
12799         * retr.c (retrieve_url): Warn when proxy is used with more than 20
12800         retries.
12801
12802         * url.c (mkstruct): Create the directory (calling mymkdir()) only
12803         if it is not already there.
12804         (has_proto): New function.
12805         (get_urls_html): Eliminate the remaining call to findurl -- use
12806         has_proto.
12807
12808         * geturl.1: Ditto.
12809
12810         * main.c: Change -X to -x.
12811
12812         * url.c (url_filename): Simplify creation of filename if
12813         prefix_files is set.
12814         (url_filename): Simplify everything. And I do mean *everything*.
12815         (mkstruct): Add dir_prefix before hostname.
12816         (path_simplify): Fixed a bug that caused writing outside the path
12817         string in case of "." and ".." path strings.
12818
12819 1996-07-06  Hrvoje Niksic  <hniksic@srce.hr>
12820
12821         * init.c: Added --mirror.
12822
12823         * main.c (main): Added -X to force saving of directory hierarchy.
12824
12825         * ftp.c (ftp_retrieve_list): Added recursion depth counter.
12826         (ftp_retrieve_list): Check whether quota is exceeded.
12827
12828         * url.c (get_urls_html): Skip leading blanks for absolute URIs.
12829
12830         * http.c (gethttp): Use referer if present.
12831
12832         * recur.c (recursive_retrieve): Set u->referer before calling
12833         retrieve_url.
12834
12835         * url.c (newurl): Use memset to nullify the struct members.
12836         (freeurl): Free the referer field too.
12837
12838         * url.h: Added referer to urlinfo.
12839
12840         * geturl.1: Updated the manual to document some of the new features.
12841
12842         * utils.c (numdigit): Moved from url.c.
12843
12844         * README: Rewritten.
12845
12846         * config.h.in: Add the support for socks.
12847
12848         * configure.in: Add the support for socks.
12849
12850         * url.c (url_filename): If the dir_prefix is ".", work with just
12851         the file name.
12852         (url_filename): Do not look for .n extensions if timestamping if
12853         turned on.
12854
12855         * retr.c (show_progress): Skip the over-abundant restval data, and
12856         print the rest of it with ',' instead of '.'.
12857
12858 1996-07-05  Hrvoje Niksic  <hniksic@srce.hr>
12859
12860         * retr.c (show_progress): Changed second arg. to long (as it
12861         should be).
12862         (show_progress): Moved to retr.c.
12863         (get_contents): Moved to retr.c.
12864
12865         * version.c: Change version to 1.4b13.
12866
12867 1996-07-05  Hrvoje Lacko <hlacko@fly.cc.fer.hr>
12868
12869         * url.c (in_acclist): Would return after the first suffix.
12870
12871 1996-07-04  Hrvoje Niksic  <hniksic@srce.hr>
12872
12873         * version.c: "Released" 1.4b12.
12874
12875         * url.c (path_simplify): More kludgifications.
12876         (get_urls_html): Use new parameters for htmlfindurl.
12877
12878         * html.c: Removed memorizing "parser states", since the new
12879         organization does not require them.
12880
12881         * init.c (run_geturlrc): Use read_whole_line.
12882
12883         * ftp-unix.c (ftp_parse_ls): Use read_whole_line.
12884
12885         * recur.c (parse_robots): Use read_whole_line.
12886
12887         * utils.c (read_whole_line): New function.
12888
12889         * recur.c (tried_robots): Use add_slist/in_slist, *much* cleaner.
12890
12891         * host.c (ngethostbyname): Call inet_addr just once. Yet to be
12892         tested on OSF and Ultrix.
12893         (add_hlist): New function.
12894         (free_hlist): New function.
12895         (search_host): New function.
12896         (search_address): New function.
12897         (realhost): Use search_host, search_address and add_hlist.
12898         (same_host): Replaced realloc() with strdupdelim(), made
12899         case-insensitive, fixed a memory leak.
12900
12901         * html.c (ftp_index): Fixed tm_min and tm_sec to be tm_hour and
12902         tm_min, like intended.
12903
12904         * version.c: Change user agent information to
12905         Geturl/version.
12906
12907 1996-07-03  Hrvoje Niksic  <hniksic@srce.hr>
12908
12909         * utils.c: Renamed nmalloc.c to utils.c, .h likewise.
12910
12911         * url.c (acceptable): Always accept directories.
12912
12913         * ftp-unix.c (ftp_parse_ls): Support brain-damaged "ls -F"-loving
12914         servers by stripping trailing @ from symlinks and trailing / from
12915         directories.
12916
12917         * ftp.c (ftp_loop): Debugged the "enhanced" heuristics. :-)
12918
12919         * url.c (skip_url): Use toupper instead of UCASE.
12920
12921         * host.c (sufmatch): Made it case-insensitive.
12922
12923         * url.c (match_backwards_or_pattern): Fixed i == -1 to j == -1.
12924         (match_backwards): New function, instead of
12925         match_backwards_or_pattern.
12926
12927         * recur.c (recursive_retrieve): Increased performance by
12928         introducing inl, which reduces number of calls to in_slist to only
12929         one.
12930
12931         * ftp.c (ftp_loop): Enhanced the heuristics that decides which
12932         routine to use.
12933
12934         * main.c (printhelp): Removed the warranty stuff.
12935
12936 1996-07-02  Hrvoje Niksic  <hniksic@srce.hr>
12937
12938         * url.c (add_slist): Simplify.
12939         (match_backwards_or_pattern): New function.
12940         (in_acclist): Use match_backwards_or_pattern.
12941         (matches): Remove.
12942
12943 1996-06-30  Hrvoje Niksic  <hniksic@srce.hr>
12944
12945         * ftp.c (ftp_loop): Call ftp_index on empty file names, if not
12946         recursive.
12947
12948         * html.c (ftp_index): Fixed to work. Beautified the output.
12949
12950         * ftp.c (ftp_retrieve_glob): Another argument to control whether
12951         globbing is to be used.
12952         (ftp_retrieve_list): Compare the time-stamps of local and remote
12953         files to determine whether to download.
12954
12955 1996-06-29  Hrvoje Niksic  <hniksic@srce.hr>
12956
12957         * ftp.c (rel_constr): New function.
12958
12959         * retr.c (retrieve_from_file): Check for text/html before
12960         retrieving recursively.
12961
12962         * main.c (main): Check whether the file is HTML before going into
12963         recursive HTML retrieving.
12964
12965         * ftp.c (ftp_retrieve_list): Manage directories.
12966         (ftp_retrieve_glob): Pass all the file-types to ftp_retrieve_list.
12967         (ftp_1fl_loop): Fixed a bug that caused con->com to be incorrectly
12968         initialized, causing bugchecks in getftp to fail.
12969
12970         * configure.in: Check for symlink.
12971
12972         * ftp.c (ftp_retrieve_list): Added support for symlinks.
12973
12974         * version.c: "Released" 1.4b10.
12975
12976         * atotm.c (atotm): Redeclared as time_t.
12977
12978         * init.c: New variable "timestamping".
12979
12980         * main.c (main): New option 'N'.
12981
12982         * http.c (hgetlocation): Case-insensitive match.
12983         (hgetmodified): New function.
12984         (http_loop): Implement time-stamping.
12985
12986 1996-06-28  Hrvoje Niksic  <hniksic@srce.hr>
12987
12988         * version.c: Changed version to 1.4b10
12989
12990         * atotm.c: New file, from phttpd.
12991
12992         * options.h (struct options): New parameter timestamping.
12993
12994         * version.c: 1.4b9 "released".
12995
12996         * recur.c (recursive_retrieve): Used linked list (ulist) for
12997         faster storing of URLs.
12998
12999         * url.c (get_urls_html): Removed the old kludge with comparing the
13000         outputs of htmlfindurl and findurl.
13001         (get_urls_html): Added better protocol support here.
13002         (create_hash): Removed, as well as add_hash and in_hash.
13003         (addslist): New function.
13004         (in_slist): ditto
13005
13006         * version.c: Released 1.4b8, changed version to b9.
13007
13008 1996-06-27  Hrvoje Niksic  <hniksic@srce.hr>
13009
13010         * ftp.c (freefileinfo): New function.
13011         (delelement): New function.
13012
13013         * everywhere: GPL!
13014
13015         * ftp.c (ftp_loop): Use ccon.
13016         (ftp_retrieve_glob): Likewise.
13017
13018         * ftp.h: Define ccon, to define status of control connection.
13019
13020         * ftp.c (ftp_get_listing): New function.
13021         (ftp_retrieve_more): New function.
13022         (ftp_retrieve_glob): New function.
13023
13024 1996-06-25  Hrvoje Niksic  <hniksic@srce.hr>
13025
13026         * configure.in: Removed the search for cuserid().
13027
13028         * init.c (getmode): Renamed to getperms.
13029
13030 1996-06-24  Hrvoje Niksic  <hniksic@srce.hr>
13031
13032         * version.c: New version.
13033
13034         * main.c (hangup): New function, that handles hangup. Hangup
13035         signal now causes geturl to stop writing on stdout, and to write
13036         to a log file.
13037
13038         * ftp.c (getftp): "Released" 1.4b7.
13039
13040         * html.c (htmlfindurl): Ignore everything inside <head>...</head>.
13041         (ftp_index): Use fileinfo/urlinfo.
13042
13043         * ftp-unix.c (ftp_parse_ls): New function.
13044         (symperms): New function.
13045
13046         * ftp.c (ftp_1fl_loop): New function, to handle 1-file loops.
13047
13048         * retr.c (retrieve_url): Added FTP support.
13049
13050 1996-06-23  Hrvoje Niksic  <hniksic@srce.hr>
13051
13052         * geturl.h: Removed NOTFTP2HTML enum.
13053         Added DO_LOGIN, DO_CWD and DO_LIST. LIST_ONLY is obsolete.
13054
13055         * ftp.c (getftp): Resynched with urlinfo.
13056         (getftp): Removed HMTL-ization of index.html from getftp.
13057
13058         * version.c: 1.4b6 "released".
13059
13060         * options.h (options): New struct, to keep options in.
13061
13062         * http.c (http_loop,gethttp): Synched with proxy.
13063
13064         * retr.c (retrieve_url): Implemented proxy retrieval.
13065
13066         * main.c (main): Use retrieve_from_file.
13067
13068 1996-06-22  Hrvoje Niksic  <hniksic@srce.hr>
13069
13070         * retr.c (retrieve_from_file): New function.
13071
13072         * url.c (parseurl): Modified to return URLOK if all OK. Protocol
13073         can be found in u->proto.
13074
13075         * ftp.c (ftp_response): Fixed to accept multi-line responses as
13076         per RFC 959.
13077
13078         * recr.c (recursive_retrieve): Take newloc from retrieve_url.
13079
13080         * url.c (mymkdir): Removed the file of the same name, if one
13081         exists.
13082         (isfile): New function.
13083         (mkstruct): Fixed the '/' glitches.
13084         (path_simplify): Hacked to treat something/.. correctly.
13085
13086 1996-06-21  Hrvoje Niksic  <hniksic@srce.hr>
13087
13088         * http.c (gethttp): Close the socket after error in headers.
13089         (http_loop): HEOF no longer a fatal header.
13090
13091         * loop.c (retrieve_url): When dt is NULL, do not modify it. This
13092         simplifies the syntax of calling retrieve_url.
13093
13094         * recr.c (recursive_retrieve): Modified to use get_urls_html.
13095
13096         * url.c (get_urls_file): New function.
13097         (get_urls_html): New function.
13098
13099         * recr.c (recursive_retrieve): Patched up to conform to the
13100         standards.
13101
13102         * http.c (gethttp): Synched with the rest...
13103         (gethttp): Treat only CONREFUSED specially, with connection
13104         errors.
13105
13106         * init.c,geturl.1,http.c (http_loop): Removed kill_error.
13107
13108 1996-06-20  Hrvoje Niksic  <hniksic@srce.hr>
13109
13110         * http.c (http_loop): New function.
13111
13112         * loop.c: Removed *lots* of stuff from retrieve_url.
13113
13114         * url.c (parseurl): Changed to work with urlinfo. Integrated
13115         username finding and path parsing.
13116         (newurl): New function.
13117         (freeurl): New function.
13118         (mkstruct): Removed the old bogosities, made it urlinfo-compliant.
13119         (url_filename): Likewise.
13120         (path_simplify): Accept relative paths too.
13121         (opt_url): Made urlinfo-compliant, removed bogosities.
13122         (path_simplify): Expanded to accept relative paths.
13123         (str_url): A replacement for hide_url
13124         (decode_string): Fixed a bug that caused malfunctioning when
13125         encountering an illegal %.. combination.
13126         (opt_url): Removed the argument. Dot-optimizations are now default.
13127
13128         * nmalloc.c (strdupdelim): New function.
13129
13130         * url.h: Added the urlinfo structure
13131
13132 1996-06-19  Hrvoje Niksic  <hniksic@srce.hr>
13133
13134         * url.c (hide_url): Thrown out the protocol assertion. Do not
13135         change the URL if the protocol if not recognized.
13136         (findurl): Put continue instead of break.
13137
13138 1996-06-18  Hrvoje Niksic  <hniksic@srce.hr>
13139
13140         * sample.geturlrc: Changed the defaults to be commented out and
13141         harmless (previous defaults caused pains if copied to
13142         ~/.geturlrc).
13143
13144         * http.c (gethttp): Print the HTTP request in debug mode.
13145
13146         * connect.c (iread): Added EINTR check loop to select-ing
13147         too. EINTR is now correctly handled with select().
13148
13149         * TODO: new file
13150
13151 1996-05-07  Hrvoje Niksic  <hniksic@srce.hr>
13152
13153         * host.c (same_host): Made the function a little bit more
13154         intelligent regarding diversified URL syntaxes.
13155
13156         * url.c (skip_url): Spaces are now skipped after URL:
13157
13158         * Released 1.3.1 with the patch to prevent crashing when sending
13159         NULL to robot* functions and the patch to compile "out of the box"
13160         on AIX.
13161
13162         * recr.c (recursive_retrieve): Added checking whether this_url is
13163         NULL when calling the robot functions.
13164
13165         * ChangeLog: New file.