]> sjero.net Git - wget/blob - src/ChangeLog
Fix HTTP Digest authentication when the algorithm is not specified
[wget] / src / ChangeLog
1 2013-07-12  Giuseppe Scrivano  <gscrivano@gnu.org>
2
3         * http.c (digest_authentication_encode): Set default value of
4         `algorithm' to "MD5".  Check if `qop' is not-NULL before access it.
5
6 2013-07-11  Karsten Hopp  <karsten@redhat.com>
7
8         * openssl.c (struct openssl_read_args, struct scwt_context): New struct.
9         (openssl_read, ssl_connect_with_timeout_callback): New function.
10         (ssl_connect_wget): respect connect timeout.
11
12 2013-07-11  Tim Ruehsen  <tim.ruehsen@gmx.de>
13
14         * gnutls.c (ssl_connect_wget): respect connect timeout.
15
16 2013-07-11  Tomas Hozza  <thozza@redhat.com>
17
18         * ftp.c (ftp_loop): Use ftp_retrieve_glob() also in case
19         --preserve-permissions was specified.
20
21 2013-03-20  Tomas Hozza  <thozza@redhat.com>
22
23         * http.c (gethttp): Set "sock" to -1 if it's not and we have no
24         persistent connection
25
26 2013-04-26  Tomas Hozza  <thozza@redhat.com> (tiny change)
27
28         * log.c (redirect_output): Use DEFAULT_LOGFILE in diagnostic message
29         when `logfile' is NULL.
30         * utils.c (unique_create): Ensure `logfile' has always a value.
31
32 2013-06-26  Darshit Shah <darnir@gmail.com>
33
34         * http.c (gethttp): Reverse change by commit 90896 that prevented
35         downloading response body data to non-GET Request methods.
36
37 2013-06-19 Ciprian Vieru <devel.php@gmail.com> (tiny change)
38
39         * html-url.c: Define TAG_TD, TAG_TH, TAG_VIDEO, TAG_AUDIO, TAG_SOURCE.
40         (tag_url_attributes, known_tags): Likewise.
41
42 2013-06-22  Ángel González <keisial@gmail.com>
43
44         * init.c (cmd_string_uppercase): Rewrite function.
45
46 2013-06-19  Tim Ruehsen  <tim.ruehsen@gmx.de>
47
48         * connect.c (socket_ip_address): zero out ip address structure to
49         avoid access to uninitialized values by inet_ntop().
50         * ftp.c (ftp_loop_internal): fix segfault caused by warc_tmp NULL pointer.
51
52 2013-05-21  Ray Satiro  <raysatiro@yahoo.com>
53
54         * url.c (url_file_name): Use MAX_PATH in Windows.
55
56 2013-06-13  Darshit Shah  <darnir@gmail.com>
57
58         * http.c (gethttp): Follow RFC 2616 and httpbis specifications when
59         handling redirections. Do not suspend the method on 301/302 redirects.
60         (gethttp): If method if not GET, we do not intend to download
61         anything.
62         * main.c (main): Set spider mode when opt.method is HEAD. This will
63         prevent Wget from downloading any file.
64         * retr.c (SUSPEND_METHOD): Rename macro SUSPEND_POST_DATA to
65         SUSPEND_METHOD to more accurately reflect its use. Similarly rename
66         related variables.
67
68 2013-05-14 Bykov Aleksey <gnfalex@rambler.ru>
69
70         * warc.c (warc_tempfile): For fix "Could not open temporary WARC manifest
71         file." issue in Win system force to use `mkostemp(filename, O_TEMPORARY)'
72         instead  of `mkstemp(filename)'. Thank to Angel Gonzalez for help.
73
74 2013-05-14  Tim Ruehsen  <tim.ruehsen@gmx.de>
75
76         * cookies.c (cookie_jar_load): Replaced read_whole_file() by getline().
77         * init.c (run_wgetrc): Likewise.
78         * netrc.c (parse_netrc): Likewise.
79         * utils.c: Likewise.
80         * ftp.c (getftp): Likewise.
81         * ftp-ls.c (ftp_parse_unix_ls, ftp_parse_winnt_ls, ftp_parse_vms_ls): Likewise.
82         * ftp-ls.c (clean_line): Accept the string length as parameter.
83         * ftp-ls.c: Replaced indent tabs by spaces.
84         * ftp.c: Likewise.
85         * utils.c: Removed read_whole_file() definition.
86         * netrc.c: Removed read_whole_file() definition for STANDALONE.
87         * utils.h: Removed read_whole_file() declaration.
88
89 2013-05-09  Tim Ruehsen  <tim.ruehsen@gmx.de>
90
91         * utils.c (acceptable): use standard string functions instead of
92         self-written code.
93         (match_tail): Likewise.
94         (suffix): Likewise.
95         (has_wildcards_p): Likewise.
96         (test_subdir_p): Fix some warnings.
97         (test_dir_matches_p): Likewise.
98
99 2013-05-05  mancha  <mancha1@hush.com> (tiny change)
100
101         * gnutls.c (ssl_connect_wget): Don't abort on non-fatal alerts
102         received during handshake. For example, when connecting to servers
103         using TSL-SNI that send warning-level unrecognized_name alerts.
104
105 2013-05-04  Darshit Shah <darnir@gmail.com>
106
107         * init.c (cmd_string_uppercase): Fix issue that cased invalid headers
108         when converting to uppercase.
109
110 2013-05-01  Gijs van Tulder  <gvtulder@gmail.com>
111
112         * retr.c (retrieve_url): New variable `saved_method'.
113         (SUSPEND_POST_DATA): Save the method to `saved_method'.
114         (RESTORE_POST_DATA): Restore the method from `saved_method'.
115
116 2013-05-01  Giuseppe Scrivano  <gscrivano@gnu.org>
117
118         * init.c: Declare `cmd_string_uppercase'.
119         (commands): Now `method' uses cmd_string_uppercase.
120         (cmd_string_uppercase): New method
121         * http.c (gethttp): Do not transform opt.method to uppercase.
122         Reported by: Stefano Lattarini <stefano.lattarini@gmail.com>
123
124 2013-04-24  Darshit Shah <darnir@gmail.com>
125
126         * http.c (gethttp): Remove check for opt.post_data and
127         opt.post_file_name.
128         * main.c (main): Change location in code where --post-data and
129         --post-file options are converted to --body-data --body-file.
130
131 2013-04-21  Gijs van Tulder  <gvtulder@gmail.com>
132
133         * http.c: Copy opt.body_data to the WARC file, instead of
134         opt.post_data (the old option).
135
136 2013-04-12  Gijs van Tulder  <gvtulder@gmail.com>
137
138         * warc.c: Generate unique UUIDs for the manifest and the record
139         holding the command-line arguments.
140         Write the manifest to a "metadata" record to follow the WARC
141         implementation guidelines.
142         * warc.h: Declare new function warc_write_metadata_record.
143
144 2013-03-15  Darshit Shah <darnir@gmail.com>
145
146         * http.c (post_file): Rename function to body_file_send to more
147         accurately reflect its use.
148         * http.c (gethttp): Add support for --method, --body-data and
149         --body-file
150         * init.c (commands): Same.
151         * options.h (options): Same.
152         * main.c (option_data): Same.
153         * main.c (print_help): Add --method command.
154         * main.c (main): Make old --post-{data,file} commands aliases to
155         --method.
156         Add sanity checks for --method, --body-data and --body-file.
157         * retr.c (SUSPEND_POST_DATA): Edit Macro Definition to use body_data.
158         * retr.c (RESTORE_POST_DATA): Same.
159
160 2013-03-31  Gijs van Tulder  <gvtulder@gmail.com>
161
162         * warc.c: Correctly write the field length in the skip length field
163         of .warc.gz files. (Following the GZIP spec in RFC 1952.)
164
165 2013-03-12  Darshit Shah <darnir@gmail.com>
166
167         * http.c (gethttp): Make wget return FILEBADFILE error and abort if
168         post-file does not exist.
169
170         * http.c (http_loop): Handle FILEBADFILE as a valid err.
171
172         * exits.c (get_status_for_err): Mark FILEBADFILE as an IO error.
173
174 2013-02-15  Darshit Shah <darnir@gmail.com>
175
176         * cookies.c (cookie_handle_set_cookie): Set cookie->discard_requested
177         to true on domain mismatch.
178
179 2012-12-20  Tim Ruehsen  <tim.ruehsen@gmx.de>
180
181         * gnutls.c (ssl_connect_wget): added +VERS-SSL3.0 to fix
182         --secure-protocol=SSLv2/SSLv3.
183
184 2012-12-09  Giuseppe Scrivano  <gscrivano@gnu.org>
185
186         * main.c (main): Keep looking for "config" until there are
187         arguments to parse.
188         Reported by: Adrien Dumont <adr.dum@hotmail.fr>
189
190         * test.c: Include "wget.h".
191
192 2012-12-08  Michael Stapelberg <michael@stapelberg.de> (tiny change)
193
194         * retr.c (retrieve_url): Set iri->orig_url to NULL after it is
195         freed.
196
197 2012-11-26  Giuseppe Scrivano  <gscrivano@gnu.org>
198
199         * wget.h (MAX_INT_TO_STRING_LEN): Define macro.
200         * warc.c (warc_write_block_from_file): Use `MAX_INT_TO_STRING_LEN'
201         to find the buffer size.
202         (warc_write_cdx_record): Likewise.
203
204 2012-09-03  Tim Ruehsen  <tim.ruehsen@gmx.de>
205
206         * http.c (digest_authentication_encode): Add support for RFC 2617
207         MD5-sess authentication algorithm.
208         Feature request and testing by: Avinash <pavinash@gmail.com>
209
210 2012-11-14  Ángel González  <keisial@gmail.com>
211
212         * warc.c (warc_sha1_stream_with_payload): Fix compilation under
213         gcc -std=c89.
214
215 2012-11-24  Gijs van Tulder  <gvtulder@gmail.com>
216
217         * warc.c (warc_write_cdx_record): Use `number_to_string' to
218         convert the offset to a string.
219
220 2012-11-24  Giuseppe Scrivano  <gscrivano@gnu.org>
221
222         * warc.c (warc_write_block_from_file): Use `number_to_string' to
223         convert the content-length to a string.
224
225 2012-11-15  Giuseppe Scrivano  <gscrivano@gnu.org>
226
227         * retr.c (write_data): Fix comment.
228
229 2012-11-13  Giuseppe Scrivano  <gscrivano@gnu.org>
230
231         * retr.c (fd_read_body): Correctly check the return code from
232         write_data.
233         Reported by: Torsten Scheck <torsten.scheck@gmx.de>
234
235 2012-08-29  Rohit Mathulla <rohit_mathulla@yahoo.com> (tiny change)
236
237         * html-url.c (get_urls_file): Convert shorthand URLs.
238
239 2012-10-07  Ray Satiro <raysatiro@yahoo.com>
240
241         * url.c: Change the functions of a growable string object to null
242         terminate the string.
243         * url.c (append_null): New function to null terminate a growable
244         string object.
245         * url.c (shorten_length): New function to shorten the length of a
246         growable string object.
247
248 2012-10-03 Merinov Nikolay <kim.roader@gmail.com>
249
250         * ftp.c (ftp_loop_internal): Ignore --no-clobber option when
251         receiving directory listing.
252
253 2012-10-07  Tim Ruehsen  <tim.ruehsen@gmx.de>
254             Giuseppe Scrivano  <gscrivano@gnu.org>
255
256         * utils.c (get_max_length): If `pathconf' is not available
257         fallback to PATH_MAX.
258
259 2012-10-06  Giuseppe Scrivano  <gscrivano@gnu.org>
260
261         * http.c (http_loop): Send a HEAD request when -c and
262         --content-disposition are used together.
263
264 2012-09-29 Merinov Nikolay <kim.roader@gmail.com>
265
266         * ftp-ls.c (ftp_parse_winnt_ls): Support filename extracting with
267         new listing format.
268
269 2012-09-29  Tim Ruehsen  <tim.ruehsen@gmx.de>
270
271         * url.h (CHOMP_BUFFER): Add definition.
272         * url.c (url_file_name): New local variables `fname_len_check' and
273         `max_length'. Check that the length of the file name is acceptable.
274         * utils.h (get_max_length): Declare function.
275         * utils.c (get_max_length): New function.
276
277 2012-09-28  Steven Schubiger  <stsc@member.fsf.org>
278
279         * src/recur.c (retrieve_tree): Combine duplicated code.
280
281 2012-09-02  Nguyễn Thái Ngọc Duy  <pclouds@gmail.com> (tiny change)
282
283         * src/main.c (main): mark more strings for translation.
284         * src/mswindows.c (fork_to_background): Likewise.
285         * src/recur.c (download_child_p): Likewise.
286
287 2012-08-28  Tim Ruehsen  <tim.ruehsen@gmx.de>
288
289         * gnutls.c (ssl_check_certificate): deinit gnutls_x509_crt_t.
290         * gnutls.c (ssl_init): don't error if CA directory is empty.
291
292 2012-07-07  Giuseppe Scrivano  <gscrivano@gnu.org>
293
294         * html-url.c (cleanup_html_url): Remove "static" modifier.
295         * init.c (cleanup_html_url): Likewise.
296         Reported by: Mike Frysinger <vapier@gentoo.org>.
297
298 2012-08-25  Hrvoje Niksic  <hniksic@gmail.com>
299
300         * warc.c (warc_find_duplicate_cdx_record): Use hash_table_get
301         instead of hash_table_get_pair.
302
303 2012-08-21  <y-iida@secom.co.jp> (tiny change)
304
305         * connect.c (connect_to_ip) [ENABLE_IPV6]: Attempt to use IPv6.
306         * http.c (gethttp): Likewise.
307
308 2012-07-03  Steven Schubiger  <stsc@member.fsf.org>
309
310         * init.c: Include warc.h for warc_close in cleanup function.
311
312 2012-07-08  Steven Schubiger  <stsc@member.fsf.org>
313
314         * exits.h: Fix comment.
315         * exits.c: Likewise.
316
317 2012-07-07  Tim Ruehsen <tim.ruehsen@gmx.de>
318
319         (digest_authentication_encode): Add support for RFC 2617 Digest
320         Access Authentication.
321
322 2012-07-07  Giuseppe Scrivano  <gscrivano@gnu.org>
323
324         * http.c (http_loop): Fix log message.
325         * main.c (main): Likewise.
326         Reported by: Petr Pisar <petr.pisar@atlas.cz>
327
328 2012-06-17  Giuseppe Scrivano  <gscrivano@gnu.org>
329
330         * wget.h: Define `CLOSEFAILED'.
331         * init.c: Include "exits.h".
332         (cleanup): Check `fclose' failure.
333         * exits.c (get_status_for_err): Handle `CLOSEFAILED'.
334
335 2012-06-16  Giuseppe Scrivano  <gscrivano@gnu.org>
336
337         * main.c (main): Move some cleanup related function to...
338         * init.c (cleanup): ...here.
339
340         * main.c: Do not include "stdout.h".
341         (main): Do not register `close_stdout' at exit.
342         Reported by: Micah Cowan  <micah@cowan.name>.
343
344 2012-06-09  Giuseppe Scrivano  <gscrivano@gnu.org>
345
346         * main.c (print_help): Move --report-speed under the section
347         "Logging and input file".
348
349 2012-06-06  Giuseppe Scrivano  <gscrivano@gnu.org>
350
351         * main.c (print_help): Rename --bits to --report-bps.
352         (cmdline_options): Likewise.
353         * init.c (commands): Rename --report-bps to --report-speed.
354         (cmd_spec_report_speed): New function.
355
356         * options.h (struct options): Rename `bits_fmt' to `report_bps'.
357         * main.c (print_help): Rename --bits to --report-bps.
358         (cmdline_options): Likewise.
359         * init.c (commands): Likewise
360
361         * progress.c (create_image): Adjust caller.
362         * retr.c (retr_rate): Likewise.
363         * utils.c (convert_to_bits): Likewise.
364
365 2012-06-04  Tim Ruehsen  <tim.ruehsen@gmx.de>
366
367         * main.c (main): Check for filename != NULL.
368         * warc.c (warc_process_cdx_line): Fix memory leak.
369         * utils.c (match_posix_regex, compile_posix_regex): Remove dead
370    assignment.
371         * openssl.c (ssl_init): Fix old-style function definition.
372
373 2012-06-02  Giuseppe Scrivano  <gscrivano@gnu.org>
374
375         * connect.c: Include <sys/socket.h> and <sys/select.h>.
376
377 2012-05-30  Gijs van Tulder  <gvtulder@gmail.com>
378
379         * warc.c: Fix segfault if CDX record is not found.
380
381 2011-05-26  Steven Schweda  <sms@antinode.info>
382         * connect.c [HAVE_SYS_SOCKET_H]: Include <sys/socket.h>.
383         [HAVE_SYS_SELECT_H]: Include <sys/select.h>.
384
385 2012-05-26  Mike Frysinger <vapier@gentoo.org>
386
387         * warc.c: Change type of `warc_current_gzfile' to gzFile.
388
389 2012-05-26  Giuseppe Scrivano  <gscrivano@gnu.org>
390
391         * warc.c (warc_load_cdx_dedup_file): Change type of `line_length' to
392         ssize_t.
393         Suggested by: Ángel González <keisial@gmail.com>
394
395 2012-05-18  Tim Ruehsen  <tim.ruehsen@gmx.de>
396
397         * gnutls.c (wgnutls_poll): Honor the specified `timeout' value.
398         (wgnutls_peek): Likewise.
399
400 2012-05-19  illusionoflife  <illusion.of.life92@gmail.com> (tiny change)
401
402         * convert.c (register_html,register_css): Fixed functions signature to
403         not accept unused argument
404         * retr.c (retrieve_url): Changed register_{css,html} usage according
405         new signature.
406
407 2012-05-16  Giuseppe Scrivano  <gscrivano@gnu.org>
408
409         * warc.h: Cut length lines to 80 columns.
410         * warc.c: Likewise.
411
412 2012-05-14  Tim Ruehsen  <tim.ruehsen@gmx.de>
413
414         * gnutls.c (wgnutls_read_timeout): removed warnings, moved fcntl stuff
415         outside loop.
416
417         * hash.h (hash_table_put): Make argument "value" const.
418         * hash.c (hash_table_put): Make argument value const.  Cast `value' to
419         void.
420         * http.c (request_set_header): Make argument `name' const.  Cast `value'
421         and `name' to void*.
422         (request_remove_header): Make argument `name' const.
423         * url.c (url_file_name): Make `index_filename' static.
424         * warc.h (warc_write_cdx_record): Make `url', `timestamp', `mime_type',
425         `payload_digest', `redirect_location', `warc_filename', response_uuid'
426         arguments const. Make `checksum' const.
427         * warc.c (warc_write_date_header): Make the `timestamp' argument const.
428         Make `extension' const.
429         (warc_write_cdx_record): Make `url', `timestamp', `mime_type',
430         `payload_digest', `redirect_location', `warc_filename', response_uuid'
431         arguments const. Make `checksum' const.
432
433 2012-05-13  Tim Ruehsen  <tim.ruehsen@gmx.de>
434
435         * gnutls.c (credentials): Change type to
436         gnutls_certificate_credentials_t.
437         (ssl_init): Do not use deprecated types.
438         (ssl_connect_wget): Likewise.
439
440 2012-04-11  Gijs van Tulder  <gvtulder@gmail.com>
441
442         * init.c: Add --accept-regex, --reject-regex and --regex-type.
443         * main.c: Likewise.
444         * options.c: Likewise.
445         * recur.c: Likewise.
446         * utils.c: Add regex-related functions.
447         * utils.h: Add regex-related functions.
448
449 2012-03-30  Tim Ruehsen  <tim.ruehsen@gmx.de>
450
451         * convert.c (convert_links_in_hashtable): Mmake it static.
452         * cookies.c (parse_set_cookie): Remove empty else branches.
453         * css-url.c: Include "css-url.h".
454         (get_uri_string): Make it static.
455         * css-url.h (get_urls_css): Add protoype.
456         * gnutls.c (ssl_init): Add prototype.
457         * html-parse.c (tagstack_push): Make it static.
458         * html-parse.c (tagstack_pop): Make it static.
459         * html-parse.c (tagstack_find): Make it static.
460         * html-url.c (cleanup_html_url): Make it static.
461         * progress.c (count_cols): Make it static.
462         * progress.c (get_eta): Make it static.
463         * retr.h (convert_to_bits): Remove prototype.
464         * util.h (convert_to_bits): Add prototype.
465         * spider.c (spider_cleanup): Make it static.
466         * warc.c (warc_write_start_record): Add prototype.
467         * warc.c (warc_write_end_record): Add prototype.
468         * warc.c (warc_start_cdx_file): Add prototype.
469         * warc.c (warc_init): Add prototype.
470         * warc.c (warc_load_cdx_dedup_file): Add prototype.
471         * warc.c (warc_write_metadata): Add prototype.
472         * warc.c (warc_close): Add prototype.
473         * warc.c (warc_tempfile): Add prototype.
474         * warc.c (warc_write_warcinfo_record): Make it static.
475         * warc.c (warc_load_cdx_dedup_file): Make it static.
476         * warc.c (warc_write_metadata): Make it static.
477         * warc.h (warc_init): Fix prototype.
478         * warc.h (warc_close): Fix prototype.
479         * warc.h (warc_tempfile): Fix prototype.
480
481 2012-03-30  Tim Ruehsen  <tim.ruehsen@gmx.de>
482
483         * url.c: Use empty query in local filenames.
484
485 2012-04-22  Tim Ruehsen <tim.ruehsen@gmx.de>
486
487         * main.c (main): Dynamically allocate `opt.progress_type'.
488
489 2012-04-21  Tim Ruehsen  <tim.ruehsen@gmx.de>
490
491         * ftp-basic.c (ftp_pasv): Fix memory leak.
492
493         * http.c (gethttp): Fix memory leak.
494
495         * ftp.c (getftp): Silent compiler warning.
496
497 2009-06-14  Phil Pennock  <mutt-dev@spodhuis.org> (tiny change)
498         * host.h: Declare `is_valid_ip_address'.
499         * host.c (is_valid_ip_address): New function.
500         * http.c (gethttp): Specify the hostname to ssl_connect_wget.
501         * gnutls.c (ssl_connect_wget): Specify the server name.
502         * openssl.c (ssl_connect_wget): Likewise.
503         * ssl.h: Change method signature for ssl_connect_wget.
504
505 2012-04-13  Tim Ruehsen  <tim.ruehsen@gmx.de> (tiny change)
506
507         * warc.c (warc_load_cdx_dedup_file): Fix a memory leak by freeing
508         `lineptr'.
509
510 2012-04-07  Daniel Kahn Gillmor <dkg@fifthhorseman.net> (tiny change)
511
512         * gnutls.c (key_type_to_gnutls_type): New function.
513         (ssl_init): Use correctly the specified gnutls certificate.
514
515 2012-04-01  Gijs van Tulder  <gvtulder@gmail.com>
516
517         * html-url.c: Prevent crash on incomplete STYLE tag.
518
519 2012-04-01  Giuseppe Scrivano  <gscrivano@gnu.org>
520
521         * gnutls.c (wgnutls_read_timeout): Ensure timer is freed.
522
523         * gnutls.c (wgnutls_read_timeout): Do not use timer if it is not
524         allocated.
525         Reported by: Xu Zhongxing <xu_zhong_xing@163.com>
526
527 2012-03-30  Tim Ruehsen  <tim.ruehsen@gmx.de> (tiny change)
528
529         * warc.c: make warc_uuid_str() implementation depend on HAVE_LIBUUID.
530
531 2012-03-29  Tim Ruehsen <tim.ruehsen@gmx.de> (tiny change)
532
533         * utils.c (library): Include <sys/time.h>.
534
535 2012-03-25  Giuseppe Scrivano  <gscrivano@gnu.org>
536
537         * utils.c: Include <sys/ioctl.h>.
538
539         * ptimer.c: Include <sys/time.h>.
540
541         * connect.c: Include <sys/socket.h>, <sys/select.h>, <sys/time.h>.
542         Reported by: Ray Satiro <raysatiro@yahoo.com>.
543
544 2012-03-25 Ray Satiro <raysatiro@yahoo.com>
545
546         * build_info.c.in: Check that HAVE_LIBSSL32 is defined when OpenSSL
547         is used.
548
549 2012-03-07  Steven Schubiger  <stsc@member.fsf.org>
550
551         * init.c (wgetrc_user_file_name): Correct typo.
552
553 2012-03-06   Sasikantha Babu   <sasikanth.v19@gmail.com>
554
555         * utils.c (convert_to_bits): Added new function convert_to_bits to
556         convert bytes to bits.
557         * retr.c (calc_rate): Modified the function to handle --bits
558         option and download rate calculated as bits per sec (SI-prefix)
559         for --bits otherwise bytes (IEC-prefix).
560         (retr_rate): Rates will display in bits per sec for --bits.
561         * options.h (struct opt): Added --bit option bool variable bits_fmt.
562         * main.c (print_help) : Added help for --bit.
563         * init.c: Defined command for --bit option.
564         * retr.h: Added function prototype.
565
566 2012-02-26  Giuseppe Scrivano  <gscrivano@gnu.org>
567
568         * main.c: Include "closeout.h"
569         (main): Register close_stdout at exit.
570
571 2012-02-01  Gijs van Tulder  <gvtulder@gmail.com>
572
573         * warc.c: Fix large file support with ftello, fseeko.
574         * warc.h: Fix large file support.
575         * http.c: Fix large file support.
576
577 2012-02-23  Giuseppe Scrivano  <giuseppe@southpole.se>
578
579         * main.c (main): Write diagnostic messages to `stderr' not to `stdout'.
580
581         * main.c (main): Fail gracefully if `malloc' fails.
582
583         * gnutls.c (wgnutls_read): Remove unused variables `timer' and `flags'.
584
585 2012-02-17  Steven Schubiger  <stsc@member.fsf.org>
586
587         * warc.c: Add license header.
588
589 2012-01-27  Gijs van Tulder  <gvtulder@gmail.com>
590
591         * retr.c (fd_read_body): If the response is chunked, the chunk
592         headers are now written to the WARC file, making the WARC file
593         an exact copy of the HTTP response.
594
595 2012-01-27  Gijs van Tulder  <gvtulder@gmail.com>
596
597         * retr.c (fd_read_body): Fix a memory leak with chunked responses.
598         * http.c (skip_short_body): Fix the same memory leak.
599
600 2012-01-09  Gijs van Tulder  <gvtulder@gmail.com>
601
602         * init.c: Disable WARC compression if zlib is disabled.
603         * main.c: Do not show the 'no-warc-compression' option if zlib is
604         disabled.
605         * warc.c: Do not compress WARC files if zlib is disabled.
606
607 2012-01-09  Sasikantha Babu   <sasikanth.v19@gmail.com> (tiny change)
608         * connect.c (connect_to_ip): properly formatted ipv6 address display.
609         (socket_family): New function - returns socket family type.
610         * http.c (gethttp): properly formatted ipv6 address display.
611
612 2011-11-09  Gijs van Tulder  <address@hidden>
613
614         * warc.c: Call gzdopen() with wb9 instead of wb+9, which fails on
615         zlib version >= 1.2.4.
616
617 2011-11-04  Steven Schweda  <address@hidden>
618
619         * warc.c [! WINDOWS]: Include <libgen.h>.
620         (warc_write_warcinfo_record): Assign a new allocated buffer and
621         free it on errors.
622
623 2011-11-01  Steven Schweda  <address@hidden>
624
625         * gnutls.c (ssl_init): Ensure GNU TLS is loaded only once.
626
627 2011-10-07  Steven Schweda  <address@hidden>
628
629         * connect.c: Add HAVE_SYS_SELECT_H and HAVE_SYS_SOCKET_H conditions
630         on includes of <sys/select.h> and <sys/socket.h>, respectively.
631         * ftp.c (getftp): Move BIN_TYPE_TRANSFER macro into VMS-specific
632         section.  On VMS, use Stream_LF attributes for listing files.  Pass
633         BIN_TYPE_FILE to fopen_excl() instead of constant-everywhere "true".
634         * ftp.c (ftp_retrieve_list): Restore lost test of opt.preserve_perm
635         (--preserve-permissions) on the chmod() operation.
636         * init.c, main.c: Remove "deprecated" from opt.preserve_perm
637         (--preserve-permissions).
638         * init.c (initialize): Use distinct messages for errors in C macro
639         SYSTEM_WGETRC and environment-variable SYSTEM_WGETRC.  Avoid use of
640         C macro SYSTEM_WGETRC when it's not defined.
641         * log.c (log_close): Avoid closing logfp when it's stderr.
642         * main.c (print_help):  Restore --preserve-permissions.
643         * main.c (main): Avoid using a negative value of longindex as a
644         subscript (for long_options[]) when searching for "--config".
645         * main.c (main): Exit the program using exit() instead of "return".
646         (VMS handles these differently, and exit() is better.)
647         * openssl.c (ssl_init): Add type cast (SSL_METHOD *) to newly "const"
648         "meth" argument to accommodate OpenSSL version 0.9.8, where that
649         argument is not "const" in the OpenSSL function (SSL_CTX_new).
650         * test.c: Declare "program_argstring".
651         * utils.c (fopen_excl): Comment typography.
652         * warc.h: New file.
653         * warc.c: New file.
654
655 2011-10-02  Henrik Holst <henrik.holst@millistream.com> (tiny change)
656         * http.c (gethttp): If 'contentonerror' is used then do not
657         skip the http body on 4xx and 5xx errors.
658
659         * init.c (commands): Add 'contentonerror'.
660
661         * main.c (print_help, option_data): Add new option 'contentonerror'
662         to make wget not skip the http content on 4xx and 5xx errors.
663
664         * options.h: New variable 'content_on_error'.
665
666 2011-09-19  Giuseppe Scrivano  <gscrivano@gnu.org>
667
668         * main.c (print_version): Update copyright year.
669         (print_version): Fix typo.
670
671 2011-09-13  Giuseppe Scrivano  <gscrivano@gnu.org>
672
673         * ftp.c (ftp_retrieve_glob): Propagate correctly the `res' error
674         code.
675
676 2011-09-07  Giuseppe Scrivano  <gscrivano@gnu.org>
677
678         * http.c (gethttp): Don't inhibit arest request if opt.timestamping is
679         set.
680         Reported by <natrio@list.ru>
681
682 2011-09-06  Jakob Matthes <jakob.matthes@gmail.com> (tiny change)
683
684         * main.c (print_version): Do not exit prematurely when --help is passed.
685
686 2011-09-04  Christian Jullien <eligis@orange.fr> (tiny change)
687
688         * gnutls.c: Include <sys/fcntl.h>.
689
690 2011-09-02  Mojca Miklavec <mojca.miklavec.lists@gmail.com> (tiny change)
691
692         * main.c (print_version): Do not exit prematurely when --version is passed.
693
694 2011-08-30  Giuseppe Scrivano  <gscrivano@gnu.org>
695
696         * gnutls.c (wgnutls_read_timeout): Use the non blocking socket only for
697         `gnutls_record_recv'.  Set errno to ETIMEDOUT on a read timeout.
698
699 2011-08-29  Giuseppe Scrivano  <gscrivano@gnu.org>
700
701         * gnutls.c (wgnutls_read_timeout): New function.
702         (wgnutls_read): Use wgnutls_read_timeout.
703         (wgnutls_peek): Likewise.
704
705 2011-08-27  Giuseppe Scrivano  <gscrivano@gnu.org>
706
707         * main.c (print_help): Exit with an error status if print to stdout
708         fails.
709         (print_usage): Change method signature and return a status code.
710         (print_version): Likewise.
711
712 2011-08-26  Giuseppe Scrivano  <gscrivano@gnu.org>
713
714         * gnutls.c: Include "ptimer.h".
715         (wgnutls_read): Honor read timeout.
716
717         * openssl.c (ssl_init): Make `meth' const.
718
719 2011-08-25  Giuseppe Scrivano  <gscrivano@gnu.org>
720
721         * utils.c [HAVE_UTIME && HAVE_UTIME_H]: Include <utime.h>.
722         [HAVE_UTIME && HAVE_SYS_UTIME_H]: Include <sys/utime.h>.
723         (touch) [HAVE_UTIME: Prefers utime over futimens when it is available.
724         It was reported that Cygwin has a not working futimens.
725
726 2011-08-19  Giuseppe Scrivano  <gscrivano@gnu.org>
727
728         * init.c (home_dir) [MSDOS]: Move local variable `len' here.
729
730 2011-08-18  Giuseppe Scrivano  <giuseppe@southpole.se>
731
732         * http.c (gethttp): Fix a memory leak on some errors.  Free the head
733         buffer.
734
735         * Makefile.am: Use an additional file "css_.c" which in turn includes
736         "wget.h" and immediately "css.c".
737
738         * http.c (gethttp): Reset chunked_transfer_encoding on redirections.
739
740 2011-08-13  Giuseppe Scrivano  <gscrivano@gnu.org>
741
742         * retr.c (fd_read_body): Ensure max is not already defined.
743
744         * mswindows.h (snprintf): Remove definition.
745         (vsnprintf): Likewise.
746
747 2011-08-12  Giuseppe Scrivano  <gscrivano@gnu.org>
748
749         * css.l: Remove include "wget.h".
750         Reported by: Perry Smith <pedzsan@gmail.com>.
751
752 2011-08-11  Giuseppe Scrivano  <gscrivano@gnu.org>
753
754         * utils.c (abort_run_with_timeout): Use sigprocmask instead of
755         sigsetmask.
756
757         * gnutls.c (ssl_connect_wget): Remove call to deprecated function
758         `gnutls_certificate_type_set_priority'.
759
760         * Makefile.am (version.c): Don't invoke hg to set version string.
761
762 2011-08-10  Giuseppe Scrivano  <gscrivano@gnu.org>
763
764         Fix a linker error on systems with an older gnutls version.
765         * gnutls.c (ssl_connect_wget)
766         [HAVE_GNUTLS_PRIORITY_SET_DIRECT]:  Use gnutls_priority_set_direct.
767         [! HAVE_GNUTLS_PRIORITY_SET_DIRECT]:  Use gnutls_protocol_set_priority.
768         Reported by: Karl Berry <karl@freefriends.org>
769
770 2011-08-06  Jochen Roderburg <Roderburg@Uni-Koeln.DE>
771
772         * host.c (lookup_host): Ensure it doesn't print more IPs than available
773         ones.
774
775 2011-08-06  Giuseppe Scrivano  <gscrivano@gnu.org>
776
777         * init.c (defaults): Set default value for show_all_dns_entries.
778
779         * host.c (lookup_host): If `showalldnsentries' is used then print all
780         the IP corresponding to a DNS entry.
781         * init.c (commands): Add `showalldnsentries'.
782         Suggested by: Witold Baryluk <baryluk@smp.if.uj.edu.pl>
783
784         * http.c (gethttp): Add the Cache-Control HTTP header when --no-cache
785         is specified.
786         Reported by: Коренберг Марк <socketpair@gmail.com>.
787
788 2011-08-05  Giuseppe Scrivano  <gscrivano@gnu.org>
789
790         * utils.c (acceptable): Accept always the file if it is the specified
791         output destination.
792         Reported by: Shai Berger <shai@platonix.com>
793
794 2011-08-05  Giuseppe Scrivano  <giuseppe@southpole.se>
795
796         * gnutls.c (ssl_connect_wget): Use `gnutls_priority_set_direct' instead
797         of the deprecated `gnutls_protocol_set_priority'.
798
799 2011-08-02  Giuseppe Scrivano  <giuseppe@southpole.se>
800
801         * cookies.c (parse_set_cookie): If the value is quoted, do not modify
802         it.
803         Reported by: Nirgal Vourgère <jmv_deb@nirgal.com>
804
805 2011-07-29  Giuseppe Scrivano  <giuseppe@southpole.se>
806
807         * log.c (logprintf): Exit immediately on a SIGPIPE error.
808         Reported by: Noèl Köthe  <noel@debian.org>.
809
810 2011-07-26  Carlos Martín Nieto  <carlos@cmartin.tk>  (tiny change)
811
812         * init.c (home_dir): Allocate path buffer dinamically.
813
814 2011-07-26  Giuseppe Scrivano  <giuseppe@southpole.se>
815
816         * retr.c (retrieve_url): Do not register redirects when in spider mode.
817
818 2011-07-20 Merinov Nikolay <kim.roader@gmail.com>
819
820         * iri.c (remote_to_utf8): Add test for non-ASCII symbols with
821         UTF-8 URI encoding.
822         * res.c (res_retrieve_file): Fix url_parse call.
823
824 2011-06-08  Giuseppe Scrivano  <giuseppe@southpole.se>
825
826         * retr.c (retrieve_from_file): Parse the url careless if IRI is enabled.
827         Reported by: Volker Kuhlmann <list0570@paradise.net.nz>.
828
829 2011-05-24  Giuseppe Scrivano  <gscrivano@gnu.org>
830
831         * retr.c (fd_read_body): Define max.
832
833 2010-12-28  Adrien Nader  <adrien@notk.org> (tiny change)
834
835         * main.c [WINDOWS]: Include <io.h> and <fcntl.h>.
836         (main) [WINDOWS]: Set the stdout file mode to binary.
837         Submitted also by: Martin Panter <vadmium@gmail.com>
838
839 2011-05-23  Giuseppe Scrivano  <gscrivano@gnu.org>
840
841         * retr.c (fd_read_body): Be sure the buffer size is at least 8Kb.
842         BUFSIZ may assume very small values with a negative impact on the
843         performances.
844
845         * mswindows.h [NEED_GAI_STRERROR]: remove definition for gai_strerror.
846
847 2011-05-15  Ray Satiro <raysatiro@yahoo.com>
848
849         * connect.c (select_fd) [WINDOWS]: Ensure the socket is blocking.
850         * mswindows.h: Add declaration for set_windows_fd_as_blocking_socket.
851         * mswindows.c (set_windows_fd_as_blocking_socket): New function.
852
853         * openssl.c (openssl_read): Prevent loops on read errors.
854
855 2011-04-24  Giuseppe Scrivano  <gscrivano@gnu.org>
856
857         * html-url.c: Include "exists.h".
858         * gnutls.c (wgnutls_peek): Remove local variable `ret'.
859
860 2011-04-21  Daniel Manrique <roadmr@tomechangosubanana.com> (tiny change)
861         * main.c (main): Set exit status when invalid host name given in
862         command line.
863         * html-url.c (get_urls_file): Set exit status when invalid host
864         name given in input file.
865
866 2011-04-19  Giuseppe Scrivano  <gscrivano@gnu.org>
867
868         * gnutls.c: Do not include <fcntl.h>.
869         * gnutls.c (wgnutls_peek): Ensure there is data available before attempt
870         a read on the blocking socket.
871
872         * Makefile.am (LIBS): Add $(LIB_CLOCK_GETTIME)
873         * utils.c: Include <sys/stat.h>.  Do not include <sys/time.h>.
874         (touch): Use `futimens' instead of `utimes'.
875
876         * mswindows.h: Do not include <direct.h>.  Remove macro definition for
877         mkdir.
878
879 2011-04-18  Giuseppe Scrivano  <gscrivano@gnu.org>
880
881         * utils.c: Include <sys/time.h>.  Do not include <sys/utime.h>.
882         (touch): Use `utimes' instead of `utime'.
883
884         * openssl.c (openssl_read): Fix build error.
885
886 2011-04-17  Giuseppe Scrivano  <gscrivano@gnu.org>
887
888         * wget.h [HAVE_LIBSSL32]: Define HAVE_SSL.
889
890         * gnutls.c (wgnutls_peek): Use correctly FIONBIO codes under Mingw32.
891         Reported by: Ray Satiro <raysatiro@yahoo.com>
892
893 2011-04-13  Giuseppe Scrivano  <gscrivano@gnu.org>
894
895         * openssl.c (openssl_poll): Check if the specified timeout is zero after
896         SSL_pending.
897         (openssl_peek): Make the call non-blocking.
898
899 2011-04-11  Cristian Rodríguez  <crrodriguez@opensuse.org> (tiny change)
900
901         * openssl.c (ssl_init) [! OPENSSL_NO_SSL2]: Use SSLv2 only when
902         available.
903
904 2011-04-07  Giuseppe Scrivano  <gscrivano@gnu.org>
905
906         * gnutls.c (ssl_init): Allow X509 v1 certificates.
907         Suggested by: Ray Satiro <raysatiro@yahoo.com>
908
909         (wgnutls_peek): Remove tight loop around gnutls_record_recv.
910
911 2011-04-07  Ray Satiro  <raysatiro@yahoo.com> (tiny change)
912
913         (wgnutls_read): Check for the GNUTLS_E_AGAIN return code in the recv
914         tight loop.
915         (wgnutls_write): Likewise.
916         (wgnutls_peek): Likewise.
917
918 2011-04-07  Giuseppe Scrivano  <gscrivano@gnu.org>
919
920         * gnutls.c (wgnutls_peek): New local variable `read'.
921         Use `read' instead of `ret' to store the number of read bytes.
922         Reported by: Ray Satiro <raysatiro@yahoo.com>
923
924 2011-04-04  Giuseppe Scrivano  <gscrivano@gnu.org>
925
926         * openssl.c [WINDOWS]: Include <w32sock.h>.
927         (openssl_read): Retry the read on SSL_ERROR_WANT_READ.
928
929         * host.c [WINDOWS]: Include <winsock2.h> and <ws2tcpip.h>.
930         Suggested by: Ray Satiro <raysatiro@yahoo.com>.
931
932         * Makefile.am (LIBS): Remove  @LIBSSL@ @W32LIBS@
933
934 2011-04-03  Giuseppe Scrivano  <gscrivano@gnu.org>
935
936         * gnutls.c: Include <fcntl.h>.
937         (wgnutls_peek): Make the socket non blocking before attempt a read.
938
939         * gnutls.c: Include <sys/ioctl.h>.
940         (wgnutls_peek) [F_GETFL]: Use fcntl.
941         (wgnutls_peek) [! F_GETFL]: Use ioctl.
942
943
944 2011-03-31  Giuseppe Scrivano  <gscrivano@gnu.org>
945
946         * recur.c (download_child_p): When --no-parent is used, check that the
947         ports are the same only in case the same protocol is used.
948         Reported by: Karl Berry <karl@freefriends.org>
949
950         * res.c (res_parse): Add new line to debug messages.
951
952 2011-03-21  Giuseppe Scrivano  <gscrivano@gnu.org>
953
954         * iri.h (parse_charset) [!ENABLE_IRI]: Use the parameter to avoid a
955         compiler warning.
956
957         * iri.h: Declare `dummy_iri' as extern not static.
958         * main.c [!ENABLE_IRI]: Define `dummy_iri'.
959         (main) [!ENABLE_IRI]: Initialize `dummy_iri'.
960
961 2011-03-11  Giuseppe Scrivano  <gscrivano@gnu.org>
962
963         * ftp.c (getftp): Fix some memory leaks.
964         * ftp-ls.c (ftp_parse_winnt_ls): Likewise.
965         Reported by: Zhenbo Xu <zhenbo1987@gmail.com>.
966
967 2010-11-20  Filipe Brandenburger <filbranden@gmail.com> (tiny change)
968
969         * http.c (gethttp): Repeat a POST request on a 307 response.
970         * retr.c (retrieve_url): Use NEWLOCATION_KEEP_POST.
971         * wget.h: Define NEWLOCATION_KEEP_POST.
972
973 2011-03-02  Tomasz Buchert <tomek.buchert@gmail.com> (tiny change)
974
975         * http.c (ensure_extension): Do not adjust the extension if the file
976         ends in .htm.
977
978 2011-02-22  Gilles Carry  <gilles.carry@st.com>
979
980         * main.c (prompt_for_password): Use stderr instead of stdout
981         to prompt password. This allows to use --output-document=- and
982         --ask-password simultaneously. Without this, redirecting stdout
983         makes password prompt invisible and mucks up payload such as in
984         this example:
985         wget --output-document=- --ask-password -user=foo \
986                 http://foo.com/tarball.tgz | tar zxf -
987
988 2011-02-22  Steven Schubiger  <stsc@member.fsf.org>
989
990         * http.c (gethttp, http_loop): Move duplicated code which is run
991         when an existing file is not to be clobbered to a function.
992         (get_file_flags): New static function.
993
994 2010-12-10  Evgeniy Philippov <egphilippov@googlemail.com> (tiny change)
995
996         * main.c (main): Initialize `total_downloaded_bytes'.
997
998 2010-12-09  Giuseppe Scrivano  <gscrivano@gnu.org>
999
1000         * main.c (main): If --no-clobber and --convert-links are used at the
1001         same time, use only the latter.
1002         Reported by: Romain Vimont <rom@rom1v.com>
1003
1004 2010-12-07  Jessica McKellar <jesstess@mit.edu> (tiny change)
1005
1006         * main.c: Make help message clearer.
1007
1008 2010-12-02  Giuseppe Scrivano  <gscrivano@gnu.org>
1009
1010         * build_info.c.in: Do not list md5.
1011
1012 2010-12-01  Giuseppe Scrivano  <gscrivano@gnu.org>
1013
1014         * cmpt.c: Include <unistd.h> inconditionally.
1015         * connect.c: Likewise.
1016         * convert.c: Likewise.
1017         * ftp-basic.c: Likewise.
1018         * ftp-ls.c: Likewise.
1019         * ftp.c: Likewise.
1020         * gnutls.c: Likewise.
1021         * http.c: Likewise.
1022         * init.c: Likewise.
1023         * log.c: Likewise.
1024         * main.c: Likewise.
1025         * openssl.c: Likewise.
1026         * progress.c: Likewise.
1027         * ptimer.c: Likewise.
1028         * recur.c: Likewise.
1029         * retr.c: Likewise.
1030         * url.c: Likewise.
1031         * utils.c: Likewise.
1032
1033         * retr.c (fd_read_body): Dinamically allocate `dlbuf'.
1034
1035 2010-11-27  Reza Snowdon  <vivi@mage.me.uk>
1036
1037         * init.c (initialize): If 'ok' is not zero; exit, as this
1038         indicates there was a problem parsing 'SYSTEM_WGETRC'.
1039         Fixes bug #20370.
1040
1041 2010-11-22  Giuseppe Scrivano  <gscrivano@gnu.org>
1042
1043         Revert last commit.
1044         * ftp.c (getftp): When count > 0, don't append to the existing file.
1045         * http.c (gethttp): Likewise.
1046
1047 2010-11-21  Giuseppe Scrivano  <gscrivano@gnu.org>
1048
1049         * ftp.c (getftp): If `count' is bigger than zero, try to resume the
1050         download, not restart it.
1051         * http.c (gethttp): Likewise.
1052         Suggested by: Evgeny Kapun <abacabadabacaba@gmail.com>.
1053
1054 2010-11-19  Giuseppe Scrivano  <gscrivano@gnu.org>
1055
1056         * ftp.c (getftp): Accept new argument `count'.  When `count' is
1057         bigger than zero, assume the file can be overwritten.
1058         (ftp_loop_internal): Pass new argument `count' to `getftp'.
1059
1060         * http.c (gethttp): Accept new argument `count'.  When `count' is
1061         bigger than zero, assume the file can be overwritten.
1062         (http_loop): Pass new argument `count' to `gethttp'.
1063         Reported by: Evgeny Kapun <abacabadabacaba@gmail.com>.
1064
1065 2010-08-08  Reza Snowdon <vivi@mage.me.uk>
1066
1067         * main.c (main): inserted 'defaults'.
1068           Added additional 'getopt_long' while loop to search and apply a
1069           user specified config file before any other options.
1070           New variables 'retconf', 'use_userconfig',
1071           'confval', 'userrc_ret', 'config_opt'.
1072         * init.c: Include stdbool.h.
1073           (commands): Added config details.
1074           (defaults): Removed static.
1075           (wgetrc): Removed static.
1076           (initialize): Removed 'defaults ()',
1077           changed 'int ok' to 'bool ok'.
1078         * options.h: New variable 'choose_config'.
1079         * init.h (defaults): exported function.
1080           (run_wgetrc): exported function.
1081
1082 2010-10-24  Jessica McKellar <jesstess@mit.edu> (tiny change)
1083
1084         * main.c (main): Print the total download time as part of the
1085         summary for downloads using the recursive or page requisites
1086         options. Fixes bug #21359.
1087
1088 2010-10-24  Giuseppe Scrivano  <gscrivano@gnu.org>
1089
1090         * gnutls.c (wgnutls_peek): Do not return an error when
1091         `gnutls_record_recv' fails but some data is already available.
1092
1093 2010-10-23  Giuseppe Scrivano  <gscrivano@gnu.org>
1094
1095         * Makefile.am (LIBS): Remove @LIBGNUTLS@ and use @W32LIBS@ as last
1096         component.
1097
1098         * gnutls.c (wgnutls_peek): Block until data is available.
1099
1100 2010-10-21  Giuseppe Scrivano  <gscrivano@gnu.org>
1101
1102         * retr.c (retrieve_url): Do not register HTML files twice.
1103         Reported by: Manfred Koizar <mkoi-pg@aon.at>.
1104
1105 2010-10-18  Manfred Koizar <mkoi-pg@aon.at> (tiny change)
1106
1107         * html-url.c (tag_handle_link): Do not assume external links type
1108         to be always "text/html".
1109
1110 2010-10-16  Giuseppe Scrivano  <gscrivano@gnu.org>
1111
1112         * connect.c (socket_ip_address): Initialize `sockaddr' to zero.
1113         * ftp-basic.c (ftp_epsv): Remove dead assignment to `s'.
1114         * ftp-ls.c (ftp_parse_vms_ls): Remove dead assignment to `len'.
1115         * http.c (skip_short_body): Remove dead assignment to `ret'.
1116         * init.c (wgetrc_user_file_name): Remove dead assignment to `home'.
1117         * main.c (main): Silent warning reported by clang.
1118         (http_loop): Silent warning reported by clang.
1119         * retr.c (retrieve_url): Likewise.
1120         * url.c (init_seps): Remove dead assignment to `p'.
1121
1122 2010-10-11  Giuseppe Scrivano  <gscrivano@gnu.org>
1123
1124         * ftp.c (getftp): Fix indentation.
1125
1126 2010-10-11  Steven Schubiger <stsc@member.fsf.org>
1127
1128         * ftp.c (getftp): Initialize `targ'.
1129
1130 2010-10-08  Ivanov Anton <x86mail@gmail.com> (tiny change)
1131
1132     * src/html-url.c (check_style_attr): Skip quotes when they are present.
1133
1134 2010-10-06  Giuseppe Scrivano  <gscrivano@gnu.org>
1135
1136         * main.c (main): Remove unused variable `status'.
1137
1138 2010-09-25  Merinov Nikolay  <kim.roader@gmail.com>
1139
1140         * init.c: Add "unlink" command into command list.
1141         * main.c: Add "unlink" option into option_data list.
1142         * options.h: Adding unlink field into struct options.
1143         * wget.h: Addind UNLINKERR error into uerr_t enum.
1144         * exits.c (get_status_for_err): define status for UNLINKERR.
1145         * ftp.c (getftp): unlink file if exists, instead clobbering.
1146         (ftp_loop_internal): processing UNLINKERR.
1147         * http.c (gethttp): unlink file if exists, instead clobbering.
1148         (http_loop): processing UNLINKERR.
1149
1150 2010-09-24  Dennis, CHENG Renquan <crquan@fedoraproject.org>
1151
1152         Fix problem when content-disposition is used with recursive downloading.
1153         * url.h (url_file_name): Add a new argument `replaced_filename'.
1154         * url.c (url_file_name): Likewise.
1155         * http.c (parse_content_disposition): Do not add a prefix to the return
1156         value.
1157         (test_parse_content_disposition): Adjust tests.
1158         (gethttp): Pass additional parameter to `url_file_name'.
1159         (http_loop): Likewise.
1160         * ftp.c (ftp_loop_internal, ftp_get_listing, ftp_retrieve_list)
1161         (ftp_loop): Likewise.
1162
1163 2010-09-14  Giuseppe Scrivano  <gscrivano@gnu.org>
1164
1165         * convert.c (local_quote_string): Accept new parameter `no_html_quote'.
1166         Inhibit HTML quoting when `no_html_quote'.
1167         (convert_links): Disable HTML quoting in CSS files.
1168         Reported by: Manuel Reinhardt <reinhardt@syslab.com>.
1169
1170 2010-09-12  Giuseppe Scrivano  <gscrivano@gnu.org>
1171
1172         * main.c (print_help): Align --trust-server-names help text with
1173         the rest of the text.
1174         Suggested by: Mike Frysinger  <vapier@gentoo.org>.
1175
1176 2010-08-20  Giuseppe Scrivano  <gscrivano@gnu.org>
1177
1178         * convert.c: Include "iri.h".
1179         (convert_links_in_hashtable): Parse the url, if
1180         necessary, before check if it is present in the dowloaded url
1181         map.
1182         Reported by: <sk.random@gmail.com>.
1183
1184 2010-08-09  Giuseppe Scrivano  <gscrivano@gnu.org>
1185
1186         Fix a problem with HTTP/1.0 proxies.
1187         * http.c (gethttp): Specify the connection header when keep alive
1188         connections are not used.
1189
1190         Use persistent connections with proxies supporting them.
1191         * http.c (gethttp): Specify Proxy-Connection to the HTTP proxy.
1192
1193 2010-08-06  Giuseppe Scrivano  <gscrivano@gnu.org>
1194
1195         * css-url.c (get_uri_string): Skip empty urls.
1196
1197 2010-07-25  John Trengrove  <jtrengrove@gmail.com> (tiny change)
1198
1199         * ftp.h: Added enum `parsetype'.  Modified struct to hold parsetype.
1200
1201         * ftp-ls.c (ftp_parse_unix_ls): Default to TT_DAY. Change to TT_HOUR_MIN
1202         if hours/minutes parsed.
1203         (ftp_parse_winnt_ls): Default to TT_HOUR_MIN.
1204         (ftp_parse_vms_ls): Default to TT_HOUR_MIN.
1205         (ftp_index): Print only if fileinfo struct value ttype set to TT_HOUR_MIN.
1206
1207 2010-07-30  Giuseppe Scrivano  <gscrivano@gnu.org>
1208
1209         * html-url.h (struct map_context): Remove member `tail'.
1210
1211         * html-url.c (append_url): Append the new url ordered by `position'.
1212         (get_urls_html): Do not initialize `ctx.tail'.
1213
1214         * css-url.c (get_urls_css_file): Do not initialize `ctx.tail'.
1215
1216 2010-07-29  Giuseppe Scrivano  <gscrivano@gnu.org>
1217
1218         * gnutls.c (wgnutls_peek): Don't read more data if the buffered peek
1219         data is sufficient.
1220
1221 2010-07-28  Giuseppe Scrivano  <gscrivano@gnu.org>
1222
1223         * http.h (http_loop): Add new argument `original_url'
1224         * http.c (http_loop): Add new argument `original_url'.  Use
1225         `original_url' to get a filename if `trustservernames' is false.
1226
1227         * init.c (commands): Add "trustservernames".
1228
1229         * options.h (library): Add variable `trustservernames'.
1230
1231         * main.c (option_data): Add trust-server-names.
1232         (print_help): Describe --trust-server-names.
1233
1234         * retr.c (retrieve_url): Pass new argument to `http_loop'.
1235
1236 2010-07-20  Alan Jenkins <alan-jenkins@tuffmail.co.uk> (tiny change)
1237
1238         * http.c (gethttp): Check content-length was set before trying to
1239         compare it with the already downloded filesize.
1240
1241 2010-07-20  Leonid Petrov <nouser@lpetrov.net>
1242
1243         * ftp.c (getftp): Don't attempt to retrieve the file if it is already
1244         completely.
1245         (ftp_loop_internal): Force the length to be zero for symlinks.
1246
1247 2010-07-18  Giuseppe Scrivano  <gscrivano@gnu.org>
1248
1249         * http.c (gethttp): If -N is used, don't exit immediately if the content
1250         length is less or equal than the existing file size.  Specify "Range"
1251         only if -N is not used.
1252         Reported by: Caleb Cushing <xenoterracide@gmail.com>.
1253
1254 2010-07-14  Giuseppe Scrivano  <gscrivano@gnu.org>
1255
1256         * ftp.c (max): Remove definition.
1257         (getftp): New variable `got_expected_bytes'.  Let `expected_bytes' be
1258         the value SIZE returns, otherwise use the bytes count returned by RETR.
1259         Suggested by Daniel Stenberg <daniel@haxx.se>.
1260
1261 2010-07-14  Giuseppe Scrivano  <gscrivano@gnu.org>
1262
1263         * ftp.c (max): Add definition.
1264         (getftp): Consider for `expected_bytes' the greatest value between the
1265         bytes count returned by SIZE and the bytes count returned by RETR.
1266         Reported by: Jozua <jozua@sparky.za.net>.
1267
1268 2010-07-11  Giuseppe Scrivano  <gscrivano@gnu.org>
1269
1270         * http.c (http_loop): New variable `force_full_retrieve'.  If the remote
1271         file is newer that the local one then inhibit -c.
1272         Reported by: Caleb Cushing <xenoterracide@gmail.com>.
1273
1274 2010-07-09  Giuseppe Scrivano  <gscrivano@gnu.org>
1275
1276         * css-url.c (get_urls_css_file): Use `wget_read_file' instead of
1277         `read_file'.  Use `wget_read_file_free' instead of `read_file_free'.
1278         * convert.c (convert_links): Likewise.
1279         * html-url.c (get_urls_html, get_urls_file): Likewise.
1280         * res.c (res_parse_from_file): Likewise.
1281
1282         * utils.h: Rename `read_file' to `wget_read_file'.  Rename
1283         `read_file_free' to `wget_read_file_free'.
1284
1285         * utils.c (wget_read_file): Renamed from `read_file'.
1286         (wget_read_file_free): Renamed from `read_file_free'.
1287
1288 2010-07-05  Giuseppe Scrivano  <gscrivano@gnu.org>
1289
1290         * gnutls.c (ssl_init): New local variables `ca_directory' and `dir'.
1291         Load default root certificates under the `ca_directory' directory.
1292
1293 2010-07-03  Giuseppe Scrivano  <gscrivano@gnu.org>
1294
1295         * gnutls.c (ssl_connect_wget): New local variable `allowed_protocols'.
1296         Honor the --secure-protocol flag.
1297
1298 2010-06-20  Giuseppe Scrivano  <gscrivano@gnu.org>
1299
1300         * main.c (print_help): Fix help string for --random-wait.  Its range is
1301         [0.5*wait, 1.5*wait) not [0, 2*wait).
1302         Reported by: Tom Mizutani <gombei1970@gmail.com>.
1303
1304 2010-06-15  Giuseppe Scrivano  <gscrivano@gnu.org>
1305
1306         * gnutls.c [WIN32]: Include "w32sock.h".
1307         (FD_TO_SOCKET): Add definition.
1308         (ssl_connect_wget): Get the real socket handle by FD_TO_SOCKET.
1309         Define FD_TO_SOCKET if it is not yet defined.
1310
1311 2010-06-14  Giuseppe Scrivano  <gscrivano@gnu.org>
1312
1313         * gnutls.c: Include <stdlib.h>.
1314         (struct wgnutls_transport_context): Remove `peekstart'.
1315         (ssl_connect_wget): Renamed from `ssl_connect'.
1316         (wgnutls_poll): New variable `ctx'.
1317         (wgnutls_read): Don't use `ctx->peekstart'.
1318         (wgnutls_peek): Likewise.  Don't attempt to read if there is not
1319         ready data.
1320
1321 2010-06-14  Giuseppe Scrivano  <gscrivano@gnu.org>
1322         * http.c (http_loop): Always send a HEAD request when -N is used
1323         together with --content-disposition.
1324         Reported by: Jochen Roderburg <Roderburg@Uni-Koeln.DE>.
1325
1326 2010-06-10  Muthu Subramanian K <muthusuba@gmail.com> (tiny change)
1327
1328         * http.c (http_loop): Increase `total_downloaded_bytes' by
1329         `hstat.rd_size', not `hstat.len'.
1330
1331 2010-06-10  Giuseppe Scrivano  <gscrivano@gnu.org>
1332
1333         * main.c (print_version): Drop the current maintainer line.
1334
1335 2010-06-10  Giuseppe Scrivano  <gscrivano@gnu.org>
1336
1337         * Makefile.am (build_info.c): Generate the `build_info.c' file under
1338         the build directory.
1339         Patch by: Daniel Stenberg <daniel@haxx.se>.
1340
1341 2010-06-03  Giuseppe Scrivano  <gscrivano@gnu.org>
1342
1343         * http.c (http_loop): Do not send a HEAD request before the GET request
1344         when --content-disposition is used.
1345         Reported by: alex_wh@mail.ru.
1346
1347 2010-05-31  Giuseppe Scrivano  <gscrivano@gnu.org>
1348
1349         * css.l: Use option "nounput".
1350         (YY_NO_INPUT): Add macro definition.
1351
1352 2010-05-31  Giuseppe Scrivano  <gscrivano@gnu.org>
1353
1354         * html-parse.c (map_html_tags): Fix condition for closed tag.  Handle
1355         the case '>' is not specified after '/'.
1356
1357 2010-05-31  Giuseppe Scrivano  <gscrivano@gnu.org>
1358
1359         * sysdep.h (_SVID_SOURCE): Remove definition.
1360         (_BSD_SOURCE): Remove definition.
1361
1362 2010-05-31  Giuseppe Scrivano  <gscrivano@gnu.org>
1363
1364         * recur.c (retrieve_tree): Remove variable `up_error_code'.
1365
1366         * iri.c (open_locale_to_utf8): Remove function.
1367
1368 2010-05-30  Giuseppe Scrivano  <gscrivano@gnu.org>
1369
1370         * html-parse.c (NAME_CHAR_P): Consider '<' an invalid character.
1371         (advance_declaration): Close the tag if '<' is found.
1372         (map_html_tags): Likewise.
1373
1374 2010-05-27  Giuseppe Scrivano  <gscrivano@gnu.org>
1375
1376         * main.c (print_usage): Accept a new parameter `error'.
1377         (main): Print diagnostic messages to stderr, not stdout.
1378
1379 2010-05-27  Giuseppe Scrivano  <gscrivano@gnu.org>
1380
1381         * Makefile.am (wget_SOURCES): Remove `snprintf.c'.
1382
1383         * snprintf.c: Remove file.
1384
1385 2010-05-27  Giuseppe Scrivano  <gscrivano@gnu.org>
1386
1387         * main.c (main): Exit with failure when -k is specified and -O is not
1388         a regular file.
1389
1390 2010-05-27  Giuseppe Scrivano  <gscrivano@gnu.org>
1391
1392         * http.c (gethttp): Consider new cookies retrieved when the
1393         authorization fails.
1394
1395 2010-05-25  Giuseppe Scrivano  <gscrivano@gnu.org>
1396
1397         * host.c (sufmatch): Do not consider zero length entries.
1398
1399         * http.c (H_10X): New macro.
1400         (gethttp): Silently ignore 1xx responses.
1401
1402 2010-05-24  Giuseppe Scrivano  <gscrivano@gnu.org>
1403
1404         * iri.h (dummy_iri): Define static.
1405
1406         * css-tokens.h (css_tokens): Remove variable.
1407
1408 2010-05-23  Giuseppe Scrivano  <gscrivano@gnu.org>
1409
1410         * http.c (http_atotm): Count the NUL character when copying the locale
1411         string.
1412         Reported by: Florian Weimer <fw@deneb.enyo.de>
1413
1414 2010-05-16  Giuseppe Scrivano  <gscrivano@gnu.org>
1415
1416         * Makefile.am (LDADD): Remove MD5_LDADD.
1417         (MD5_LDADD): Remove definition.
1418         (AM_CPPFLAGS): Remove MD5_CPPFLAGS.
1419         (version.c): Remove dependency from MD5_LDADD.
1420         (../md5/libmd5.a): Remove rule.
1421
1422         * ftp-opie.c: Include "md5.h".  Do not include "gen-md5.h".
1423         (skey_response): New variable ctx.  Use md5 functions from the gnulib
1424         module instead of functions defined previously in the "gen-md5.h" file.
1425
1426         * gen-md5.h: Remove file.
1427         * gen-md5.c: Likewise.
1428
1429         * http.c: Include "md5.h".  Do not include "gen-md5.h".
1430         (digest_authentication_encode): New variable ctx.  Use md5 functions
1431         from the gnulib module instead of functions defined previously in the
1432         "gen-md5.h" file.
1433
1434 2010-05-15  Giuseppe Scrivano  <gscrivano@gnu.org>
1435
1436         * Makefile.am: Quote any path using $(top_srcdir) or $(top_builddir).
1437         (version.c): Remove dependency from configure.ac and Makefile.am.
1438
1439         * css.l: Include "wget.h".
1440
1441 2010-05-08  Giuseppe Scrivano  <gscrivano@gnu.org>
1442
1443         * Makefile.am: Update copyright years.
1444         * cmpt.c: Likewise.
1445         * connect.h: Likewise.
1446         * convert.c: Likewise.
1447         * convert.h: Likewise.
1448         * cookies.c: Likewise.
1449         * cookies.h: Likewise.
1450         * css-tokens.h: Likewise.
1451         * css-url.c: Likewise.
1452         * css-url.h: Likewise.
1453         * css.l: Likewise.
1454         * exits.c: Likewise.
1455         * exits.h: Likewise.
1456         * ftp-basic.c: Likewise.
1457         * ftp-ls.c: Likewise.
1458         * ftp-opie.c: Likewise.
1459         * ftp.c: Likewise.
1460         * ftp.h: Likewise.
1461         * gen-md5.c: Likewise.
1462         * gen-md5.h: Likewise.
1463         * gettext.h: Likewise.
1464         * gnutls.c: Likewise.
1465         * hash.c: Likewise.
1466         * hash.h: Likewise.
1467         * host.c: Likewise.
1468         * host.h: Likewise.
1469         * html-parse.c: Likewise.
1470         * html-parse.h: Likewise.
1471         * html-url.c: Likewise.
1472         * html-url.h: Likewise.
1473         * http-ntlm.c: Likewise.
1474         * http-ntlm.h: Likewise.
1475         * http.c: Likewise.
1476         * http.h: Likewise.
1477         * init.c: Likewise.
1478         * init.h: Likewise.
1479         * iri.c: Likewise.
1480         * iri.h: Likewise.
1481         * log.c: Likewise.
1482         * log.h: Likewise.
1483         * main.c: Likewise.
1484         * mswindows.c: Likewise.
1485         * mswindows.h: Likewise.
1486         * netrc.c: Likewise.
1487         * netrc.h: Likewise.
1488         * openssl.c: Likewise.
1489         * options.h: Likewise.
1490         * progress.c: Likewise.
1491         * progress.h: Likewise.
1492         * ptimer.c: Likewise.
1493         * ptimer.h: Likewise.
1494         * recur.c: Likewise.
1495         * recur.h: Likewise.
1496         * res.c: Likewise.
1497         * res.h: Likewise.
1498         * retr.c: Likewise.
1499         * retr.h: Likewise.
1500         * spider.c: Likewise.
1501         * spider.h: Likewise.
1502         * ssl.h: Likewise.
1503         * sysdep.h: Likewise.
1504         * test.c: Likewise.
1505         * test.h: Likewise.
1506         * url.c: Likewise.
1507         * url.h: Likewise.
1508         * utils.c: Likewise.
1509         * utils.h: Likewise.
1510         * wget.h: Likewise.
1511
1512 2010-05-07  Giuseppe Scrivano  <gscrivano@gnu.org>
1513
1514         * gnutls.c (wgnutls_close): Use always `close', not `closesocket'.
1515         * openssl.c (openssl_close): Use always `close', not `closesocket'.
1516         (ssl_connect_wget): Get the real socket handle by FD_TO_SOCKET.
1517         Define FD_TO_SOCKET if it is not yet defined.
1518         * Makefile.am (libunittest_a_CPPFLAGS): Add -I$(top_builddir)/lib.
1519         * mswindows.h: Always include <winsock2.h> and <ws2tcpip.h>.  Do not
1520         include <winsock.h>.
1521         [! INHIBIT_WRAP]: Remove macro's socket, bind, connect, accept, recv,
1522         send, select, getsockname, getpeername, setsockopt, closesocket.
1523         Remove wrapped_socket, wrapped_bind, wrapped_connect, wrapped_listen,
1524         wrapped_accept, wrapped_recv, wrapped_send, wrapped_select,
1525         wrapped_getsockname, wrapped_getpeername, wrapped_setsockopt,
1526         wrapped_closesocket prototypes.
1527         * mswindows.c:  Remove wrapped_socket, wrapped_bind, wrapped_connect,
1528         wrapped_listen, wrapped_accept, wrapped_recv, wrapped_send,
1529         wrapped_select, wrapped_getsockname, wrapped_getpeername,
1530         wrapped_setsockopt, wrapped_closesocket functions.  Remove WRAP macro.
1531         * host.h [WINDOWS]: Include <winsock2.h> not <winsock.h>.
1532         * connect.c: Include <sys/socket.h> and <sys/select.h> on any platform,
1533         gnulib ensures they exist.  Remove `read', `write', `close' macros.
1534         * Makefile.am: Copy build_info.c.in only if we are working in a VPATH.
1535         (AM_CPPFLAGS): Add directory with generated gnulib files.
1536
1537 2010-05-06  Giuseppe Scrivano  <gscrivano@gnu.org>
1538
1539         * Makefile.am (build_info.c): Generate build_info.c in the builddir,
1540         not srcdir.
1541
1542 2010-05-05  Giuseppe Scrivano  <gscrivano@gnu.org>
1543
1544         * http.c (gethttp): Give a nicer message on a malformed status line.
1545
1546 2010-05-04  Giuseppe Scrivano  <gscrivano@gnu.org>
1547
1548         * http.c (gethttp): Check `resp_status' return code and handle
1549         errors.
1550
1551 2010-05-01  Giuseppe Scrivano <gscrivano@gnu.org>
1552
1553         * http.c (request_send): Specify 1.1 as HTTP version for requests.
1554         (skip_short_body): Accept new parameter `chunked'.  New variable
1555         `remaining_chunk_size'.  Handle the chunked transfer encoding.
1556         (gethttp): New variable `chunked_transfer_encoding`.  Set `keepalive'
1557         by default to true.  Check if the server is using the chunked transfer
1558         encoding.
1559
1560         * retr.h: Define `rb_chunked_transfer_encoding'.
1561
1562         * retr.c (fd_read_body): New variable `chunked'.  New variable
1563         `remaining_chunk_size'.  Handle the chunked transfer encoding.
1564
1565 2010-03-04  Steven Schubiger  <stsc@member.fsf.org>
1566
1567         * ftp.c (ftp_loop_internal): Omit input file from being
1568         deleted after retrieval.
1569
1570         * retr.c (input_file_url): New function.
1571
1572         * retr.h: Add declaration for input_file_url.
1573
1574 2010-03-02  Steven Schubiger  <stsc@member.fsf.org>
1575
1576         * retr.c (retrieve_from_file): Improve checking for a URL
1577         by invoking url_valid_scheme instead of url_has_scheme.
1578
1579         * url.c (url_valid_scheme): New function.
1580
1581         * url.h: Add declaration for url_valid_scheme.
1582
1583 2010-03-02  Steven Schubiger  <stsc@member.fsf.org>
1584
1585         * retr.c (retrieve_from_file): Free memory of input file.
1586
1587 2010-03-01  Steven Schubiger  <stsc@member.fsf.org>
1588
1589         * retr.c (retrieve_url): Retrieve the local filename from ftp_loop.
1590         (retrieve_from_file): Return if there's no input file.
1591
1592         * ftp.c (ftp_loop_internal): Duplicate the local filename into
1593         retrieve_url's scope when a valid reference is being passed.
1594         (ftp_loop): Call ftp_loop_internal here with passing a
1595         reference to the local filename, elsewhere with NULL.
1596
1597         * ftp.h: Adjust declaration of ftp_loop.
1598
1599 2010-01-27  Paul Townsend  <aab@purdue.edu>  (tiny change)
1600
1601         * retr.c (fd_read_body): Be sure to measure timer when time has
1602         elapsed, too, not just when we've made progress.
1603
1604 2010-01-13  Micah Cowan  <micah@cowan.name>
1605
1606         * openssl.c: Fixed some mixed declarations-and-code.
1607
1608 2010-01-09  Micah Cowan  <micah@cowan.name>
1609
1610         * init.c, main.c, http.c, ftp.c, options.h: Renamed
1611         --no-match-server-timestamps to --no-use-server-timestamps, and
1612         add it to print_help.
1613
1614 2010-01-09  David Holman  <holman.david@gmail.com>  (tiny change)
1615
1616         * init.c, main.c, http.c, ftp.c, options.h: Added support for
1617         --no-match-server-timestamps.
1618
1619 2009-12-03  Peter Rosin  <peda@lysator.liu.se>
1620
1621         * snprintf.c (dopr): Output %p as unsigned.
1622
1623 2010-01-09  Jeremy Olexa  <darkside@gentoo.org>  (tiny change)
1624
1625         * init.c: Deal with systems which provide PATH_MAX in
1626         sys/param.h rather than limits.h.
1627
1628 2009-10-09  Steven Schweda  <sms@antinode.info>
1629
1630         * utils.c: Added characters " : \ | to the list of normal
1631         caret-escaped (ODS5) characters in the char_prop[] table.
1632
1633 2009-09-22  Arvind Jamuna Dixit  <ardsrk@gmail.com>
1634
1635         * http.c (extract_param, parse_content_disposition): Support
1636         RFC 2231 while parsing Content-Disposition header
1637
1638 2009-10-24  Petr Pisar  <petr.pisar@atlas.cz>
1639
1640         * openssl.c: Implement support for (multiple) subjectAltNames in
1641         X509 certificates, not just the commonName.
1642
1643 2009-10-09  Micah Cowan  <micah@cowan.name>
1644
1645         * main.c: Fix declaration of compiled_features.
1646
1647         * build_info.c.in: Adapt to new input format. Added a check for
1648         large-file support. Replaced the "openssl" and "gnutls"
1649         advertisements with a single "ssl/foo" advertisement.
1650
1651 2009-09-30  Micah Cowan  <micah@cowan.name>
1652
1653         * sysdep.h: Unconditionally include stdbool.h (gnulib has it for
1654         systems that don't supply it.)
1655
1656         * vms.c: Added functions vms_basename(), used to extract the
1657         bare executable name from argv[0], and vms_getpass(), a
1658         VMS-specific replacement for GNU getpass().
1659
1660          vms.c: Added global string constants: compilation_string
1661         (NULL), link_string (NULL), and version_string (real).
1662
1663 2009-09-24  Micah Cowan  <micah@cowan.name>
1664
1665         * vms.c: Moved from vms/vms.c.
1666
1667         * sysdep.h: Use proper prototypes for snprintf, vsnprintf (thanks
1668         to Steven Schweda).
1669
1670 2009-09-24  Steven Schweda  <sms@antinode.info>
1671
1672         * main.c (print_version): Remove VMS-conditional build info
1673         string; the new VMS builders use OS_TYPE.
1674
1675         * ftp.c (getftp): Fix accidental use of target -> targ.
1676
1677 2009-09-24  Micah Cowan  <micah@cowan.name>
1678
1679         * host.c (host_errstr): host_errstr should return const char *.
1680
1681 2009-09-22  Micah Cowan  <micah@cowan.name>
1682
1683         * Makefile.am (version.c): Explicitly tell Mercurial where the
1684         top-source repository should be, so it doesn't accidentally use
1685         the repository for a containing directory (for instance, if the
1686         user's home directory is managed by a Mercurial repo). Also
1687         ensures we find the repository, even if the build directory is
1688         outside the source directory.
1689
1690         * wget.h: define WINDOWS if _WIN32 or __WIN32__ is defined, but
1691         not __CYGWIN__.
1692
1693         * mswindows.c (xsleep): Check for availability of the sleep
1694         function, in addition to the usleep function.
1695         (get_winsock_error, windows_strerror): Removed (gnulib already
1696         supplies this functionality).
1697
1698         * mswindows.h [NEED_GAI_STRERROR]: define gai_strerror
1699         to (gnulib's) strerror, rather than windows_strerror. Removed
1700         error macro definitions provided by gnulib.
1701         (windows_strerror): Removed (gnulib already supplies this
1702         functionality).
1703
1704         * host.c: Don't declare h_errno when building on Windows.
1705
1706         * Makefile.am (LIBS): Added @W32LIBS@.
1707         (EXTRA_wget_SOURCES): Removed (it's in LIBOBJ now).
1708         (version.c): Removed dependency on $(LDADD), since it may include
1709         dependencies that are not part of the Wget sources (-lwsock32, for
1710         instance).
1711
1712         * openssl.c (ssl_check_certificate): Avoid reusing the same buffer
1713         space for successive quoted arguments. Thanks to Steven Schweda
1714         for pointing out the problem.
1715
1716 2009-09-21  Micah Cowan  <micah@cowan.name>
1717
1718         * progress.c (update_speed_ring): "the the" -> "the".
1719
1720         * css-url.c, iri.c, mswindows.c: Removed assert.h inclusion (not
1721         using it).
1722
1723 2009-09-11  Steven Schweda  <sms@antinode.info>
1724
1725         * utils.c, utils.h (fopen_excl): Make second argument an int,
1726         rather than a bool (so it can handle the appropriate VMS version
1727         of the flag).
1728
1729         * main.c (print_version): Don't print LOCALEDIR unless NLS is
1730         enabled.
1731
1732         * http.c (gethttp): Pass FOPEN_BIN_FLAG, instead of true.
1733
1734         * ftp.c (ftp_retrieve_glob): Cast strcmp to assign to cmp, for a
1735         silly HP build environment.
1736
1737 2009-09-08  Steven Schubiger  <stsc@member.fsf.org>
1738
1739         * main.c, init.c: Mark the --preserve-permissions and
1740         --html-extension option as deprecated.
1741
1742 2009-09-06  Micah Cowan  <micah@cowan.name>
1743
1744         * ftp.c (getftp, ftp_loop_internal): Separate "len" input/output
1745         parameter (with different meanings for input and output), into two
1746         separate parameters, one input (passed_expected_bytes) and one
1747         output (qtyread). Fixes bug #26870.
1748
1749 2009-09-05  Steven Schubiger  <stsc@member.fsf.org>
1750
1751         * retr.h: Declare set_local_file() to avoid build warnings.
1752
1753 2009-09-05  Gisle Vanem  <gvanem@broadpark.no>
1754
1755         * connect.c, init.c, main.c, openssl.c, options.h:  Replace
1756         "ifdef MSDOS" with "ifdef USE_WATT32" since DOS-targets in fact
1757         use the Watt-32 tcp/ip stack.
1758
1759 2009-09-04  Micah Cowan  <micah@cowan.name>
1760
1761         * Makefile.am: Move build_info.c to wget_SOURCES from
1762         nodist_wget_SOURCES, reduce dependencies, and invoke build_info.pl
1763         in its new home, $(top_srcdir)/build-aux.
1764
1765 2009-09-03  Micah Cowan  <micah@cowan.name>
1766
1767         * ftp-ls.c (ftp_parse_vms_ls): Replace use of localtime_r with
1768         localtime, as not all platforms have localtime_r.
1769
1770         * Makefile.am (wget_SOURCES): Rearranged some of the file order,
1771         so .c files and .h files are apart. Added gettext.h, so that it
1772         shows up in the dist.
1773
1774 2009-09-02  Micah Cowan  <micah@cowan.name>
1775
1776         * gettext.h: Refreshed from gettext 0.17.
1777
1778         * test.c: Added definition of program_name variable, required by
1779         lib/error.c (libgnu.a). Doesn't cause problems until you try to
1780         build on a non-GNU system...
1781
1782         * build_info.c.in: Removed useless "+gettext" feature ad.
1783
1784 2009-08-29  Steven Schubiger  <stsc@member.fsf.org>
1785
1786         * convert.c (local_quote_string): Percent-encode semicolons
1787         in local file strings.
1788
1789 2009-08-27  Micah Cowan  <micah@cowan.name>
1790
1791         * wget.h (uerr_t): added new VERIFCERTERR code for SSL certificate
1792         problems. Marked exit codes that are defined but never used (at
1793         least, the ones I could find).
1794
1795         * retr.c, retr.h (retrieve_url): Added a new boolean argument to
1796         determine whether an exit status should be recorded.
1797         (retrieve_from_file): Adjust to new retrieve_url signature.
1798
1799         * res.c (res_retrieve_file): Don't have retrieve_url record an
1800         exit status for robots.txt.
1801
1802         * recur.c (retrieve_tree): Adjust to new retrieve_url signature.
1803
1804         * main.c (main): Use the exit status stored by retrieve_url.
1805
1806         * http.c (gethttp): Distinguish certificate verification problems
1807         from SSL connection issues.
1808         (http_loop): Handle newly-created VERIFCERTERR error code.
1809
1810         * exits.c, exits.h: Newly added.
1811
1812         * Makefile.am (wget_SOURCES): Add exits.c and exits.h.
1813
1814 2009-08-27  Micah Cowan  <micah@cowan.name>
1815
1816         * http.c (gethttp): Make sure Wget heeds cookies when they
1817         are sent with a 401 response; or any other sort of response for
1818         that matter (#26775).
1819
1820 2009-08-19  Micah Cowan  <micah@cowan.name>
1821
1822         * openssl.c (ssl_check_certificate): Only warn about an attack if
1823         the hostname would otherwise have matched. Also some formatting
1824         cleanup.
1825
1826 2009-08-19  Joao Ferreira  <joao@joaoff.com>
1827
1828         * openssl.c (ssl_check_certificate): Detect embedded NUL
1829         characters in the SSL certificate common name.
1830
1831 2009-08-17  Tony Lewis  <tlewis@exelana.com>
1832
1833         * http.c (gethttp): Ensure that we parse Content-Length before we
1834         attempt to refer to its value. Without this fix, NTLM support was
1835         completely buggered. #27192
1836
1837 2009-08-09  Michael Baeuerle  <michael.baeuerle@gmx.net>
1838
1839         * ftp.c: #include <strings.h> for strcasecmp.
1840
1841 2009-07-28  Micah Cowan  <micah@cowan.name>
1842
1843         * main.c (option_data): Rename --html-extension to
1844         --adjust-extension.
1845         (print_help): Ditto.
1846
1847         * options.h (struct option): Rename html_extension to
1848         adjust_extension.
1849         * http.c (gethttp): Ditto.
1850         * convert.c (local_quote_string): Ditto.
1851
1852         * init.c (commands): Add "adjustextension", and reflect rename
1853         change for opt.adjust_extension, for both "adjustextension" and
1854         "htmlextension".
1855
1856 2009-07-27  Micah Cowan  <micah@cowan.name>
1857
1858         * options.h (struct options): Added restrict_files_nonascii
1859         boolean field.
1860
1861         * url.c (FILE_CHAR_TEST): Add check for chars outside the ASCII
1862         range.
1863
1864         * init.c (defaults): Add restrict_files_nonascii to initialization.
1865         (cmd_spec_restrict_file_names): Allow parsing of "ascii" keyword.
1866
1867 2009-07-27  Marcel Telka  <marcel@telka.sk>
1868
1869         * iri.c (do_conversion): Typo: invalide -> invalid
1870
1871 2009-07-27  Petr Pisar  <petr.pisar@atlas.cz>
1872
1873         * main.c (print_help): Fixed a couple typos.
1874
1875 2009-07-26  Micah Cowan  <micah@cowan.name>
1876
1877         * main.c (option_data): Rename --locale option to --local-encoding
1878         (print_help): Document --no-iri, --local-encoding, and
1879         --remote-encoding, within usage message. Remove defunct
1880         --preserve-permissions.
1881
1882 2009-07-23  Micah Cowan  <micah@cowan.name>
1883
1884         * progress.c (get_eta): Change "Translation note" in comment to
1885         "TRANSLATORS", so it actually appears in wget.pot.
1886
1887 2009-07-06  Micah Cowan  <micah@cowan.name>
1888
1889         * main.c (print_help): Improve documentation of --base.
1890
1891 2009-07-05  Micah Cowan  <micah@cowan.name>
1892
1893         * html-url.c (tag_handle_meta): Handle meta name="robots"
1894         properly: deal with whitespace, commas after...
1895
1896         * netrc.c (parse_netrc): Rename local-scope variable "quote" to
1897         "qmark", to avoid conflict with the function name.
1898
1899 2009-07-05  Petr Pisar  <petr.pisar@atlas.cz>
1900
1901         * main.c (print_version): Mark initial line for translation, along
1902         with (env), (user), and (system). Change copyright year to 2009.
1903
1904         * http.c (http_loop): Space after colon.
1905
1906         * gnutls.c (ssl_check_certificate): Use quote function, rather
1907         than explicit quotes.
1908
1909 2009-07-05  Micah Cowan  <micah@cowan.name>
1910
1911         * Makefile.am (version.c): Add dependency on configure.ac.
1912
1913         * iri.c: Mark some strings for translation.
1914
1915 2009-07-04  Steven Schweda  <sms@antinode.info>
1916
1917         * wget.h (ORIG_SFX): Macro added, to supply an alternative "_orig"
1918         suffix on VMS.
1919
1920         * connect.c, host.c, host.h, main.c: Include "vms_ip.h" rather
1921         than <netdb.h> on VMS systems.
1922
1923         * convert.c (write_backup_file): Use "_orig" rather than ".orig"
1924         on VMS.
1925
1926         * ftp-basic.c (ftp_list): Don't use LIST -a on VMS servers.
1927
1928         * ftp.c [__VMS]: Include "vms.h"
1929         * ftp.c (getftp): Disable some unhelpful "for VMS" code. Pass the
1930         OS type to ftp_list.
1931         (getftp) [__VMS]: Alter the filename as required, and invoke fopen
1932         with extra optional arguments.
1933         (ftp_retrieve_list): Set permissions before setting the times.
1934
1935         * ftp-ls.c [__VMS]: Various improvements.
1936
1937         * http.c (SET_USER_AGENT): Added. Include operating-system info in
1938         the User-Agent header.
1939         (gethttp): Use ORIG_SFX macro.
1940         (gethttp) [__VMS]: invoke fopen with extra arguments to
1941         communicate file type.
1942         (http_loop): Add cast to time_t.
1943
1944         * init.c (wgetrc_user_file_name) [__VMS]: Adjustments for where to
1945         find the .wgetrc.
1946
1947         * log.c: Adjustments to improve handling of log files on VMS.
1948
1949         * main.c [__VMS]: Added --ftp-stmlf option (and associated
1950         documentation). Adjust description of backup-suffixes, as they now
1951         differ for VMS.
1952         (print_help, print_version): Include OS type in version
1953         information.
1954         (main) [__VMS]: Invoke fopen with extra options, to specify file
1955         type information.
1956
1957         * netrc.c (search_netrc) [__VMS]: Fix .netrc-finding.
1958
1959         * openssl.c, openssl.h (ssl_connect_wget): Renamed from ssl_connect.
1960
1961         * options.h (struct options): Add ftp_stmlf field.
1962
1963         * retr.c (write_data) [__VMS]: Avoid fflush.
1964
1965         * url.c [__VMS]: Include vms.h.
1966         * url.c (url_file_name) [__VMS]: Handle naming as required for VMS.
1967
1968         * utils.c [__VMS]: Include vms.h. Various added facilities for VMS
1969         needs.
1970
1971 2009-07-04  Micah Cowan  <micah@cowan.name>
1972
1973         * main.c (print_version): Allow localization of the version-info
1974         labels, eschew attempts at alignment (which is complicated when
1975         handling translated strings), and avoid using printf() with
1976         variable-stored format strings that lack conversion
1977         specifications.
1978         (format_and_print_line): For similar reasons, don't calculate
1979         line-continuation tabulation based on the number of bytes in a
1980         string.
1981
1982 2009-07-04  Steven Schubiger  <stsc@member.fsf.org>
1983
1984         * url.c (url_parse): If an URL scheme is invalid, distinguish
1985         between an unsupported or missing scheme.
1986
1987         * url.c: Add a "missing scheme" entry to parse_errors.
1988
1989 2009-07-03  Micah Cowan  <micah@cowan.name>
1990
1991         * iri.h (iri_dup): Provide macro definition for when IRIs are
1992         disabled.
1993
1994         * Makefile.am (LIBS): Added @LIBICONV@.
1995         (wget_SOURCES): Added iri.h.
1996         (EXTRA_wget_SOURCES): Added iri.c, so it gets packaged even if IRI
1997         support was disabled.
1998
1999 2009-07-02  Micah Cowan  <micah@cowan.name>
2000
2001         * recur.c (url_enqueue): Quote enqueue/dequeue debug messages.
2002
2003         * html-url.c (append_url): Change "merge()" quoting style from
2004         locale_quoting_style to escape_quoting_style.
2005
2006 2009-07-01  Micah Cowan  <micah@cowan.name>
2007
2008         * retr.c (retrieve_url): Use the existing "redirect" label,
2009         instead of superfluous "second_try". Removed no-longer-accurate
2010         debug statement. Use the "newloc" parameter to store the fallback
2011         URL, when IRI version was rejected.
2012
2013         * recur.c (retrieve_tree): Always use the parsed URL for tracking
2014         the Referer, since that's the one we actually requested (if
2015         there's a difference in terms of percent-encodings and such).
2016
2017 2009-07-01  Steven Schubiger  <stsc@member.fsf.org>
2018
2019         * Makefile.am: Add a rule to generate build_info.c and list
2020         the build_info.c.in file in EXTRA_DIST. Adjust elsewhere
2021         where needed.
2022
2023         * build_info.c: Remove this static source file.
2024
2025         * build_info.c.in: Data for generation of build_info.c.
2026
2027 2009-06-29  Micah Cowan  <micah@cowan.name>
2028
2029         * html-url.c (append_url): Quote some more arguments that might
2030         contain characters that are inappropriate to display for the
2031         current locale.
2032
2033         * retr.c (retrieve_from_file): Be sure to pass iri information
2034         when parsing an input-fle url, and be sure to hand a clean iri
2035         struct, off to retrieve_tree and retrieve_url.
2036
2037         * iri.c, iri.h (iri_dup): Added.
2038
2039         * retr.c (retrieve_url): Re-parse for IRI fallback.
2040
2041         * main.c (main): Set up iri before the url_parse invocation (so we
2042         can use it).
2043
2044 2009-06-20  Jay Krell  <jay.krell@cornell.edu>
2045
2046         * sysdep.h (_ALL_SOURCE): (small change) Define the _ALL_SOURCE
2047         macro on INTERIX systems. (I switched the location from ftp.c to
2048         sysdep.h --mjc)
2049
2050 2009-06-15  Micah Cowan  <micah@cowan.name>
2051
2052         * ftp.c (getftp): If we can't accept the connection, return
2053         CONERROR, not whatever the contents of err happens to be. Fixes
2054         bug #25015.
2055
2056         * retr.c (fd_read_body): Make both args to progress_create
2057         consistent, resulting in an accurate progress display. Fixes bug
2058         #24948.
2059
2060 2009-06-14  Micah Cowan  <micah@cowan.name>
2061
2062         * Makefile.am (wget_SOURCES): css-tokens.h needs to ship with
2063         dist, too.
2064
2065 2009-06-13  Micah Cowan  <micah@cowan.name>
2066
2067         * init.c: Rename setval_internal_wrapper to setval_internal_tilde,
2068         ensure we don't "replace" the tilde unless it's actually
2069         present. Clean up some minor GNU style issues.
2070
2071 2009-06-13  Julien Pichon  <julienpichon7@gmail.com>
2072
2073         * init.c: Handle tilde-expansion in wgetrc commands, without
2074         resorting to setting/unsetting globals to change behavior in one
2075         call location.
2076
2077 2009-06-12  Micah Cowan  <micah@cowan.name>
2078
2079         * host.c: Include <sys/types.h> before <sys/socket.h>. Not
2080         required by POSIX any more, but some older systems (such as
2081         FreeBSD 4.1) still need it, and it doesn't seem like it could
2082         hurt...
2083
2084         * build_info.c (library): Handle "https" as a feature in its own
2085         right, apart from "gnutls" and "openssl".
2086
2087         * host.c: Declare h_errno if no declaration is provided. Idea
2088         thanks to Maciej W. Rozycki.
2089
2090 2009-06-11  Xin Zou  <zouxin2008@gmail.com>
2091
2092         * http.c (gethttp): Fix some memory leaks.
2093
2094 2009-06-11  Micah Cowan  <micah@cowan.name>
2095
2096         * http.c (http_atotm): Handle potential for setlocale's return
2097         value to be static storage. Thanks to Benjamin Wolsey
2098         <bwy@benjaminwolsey.de>.
2099
2100         * sysdep.h: Need NAMESPACE_TWEAKS on non-Linux glibc-based
2101         systems, too. Thanks to Robert Millan.
2102
2103 2009-05-28  Steven Schubiger  <stsc@member.fsf.org>
2104
2105         * ftp.c (ftp_get_listing): Update the "listing file"
2106         string after calling ftp_loop_internal().
2107
2108 2009-05-27  Steven Schubiger  <stsc@member.fsf.org>
2109
2110         * ftp.c (ftp_get_listing): Duplicate the "listing file"
2111         string to avoid memory corruption when FOPEN_EXCL_ERR is
2112         encountered.
2113
2114 2009-05-17  Steven Schubiger  <stsc@member.fsf.org>
2115
2116         * progress.c (eta_to_human_short): Fix the remaining hours
2117         to be displayed. Spotted by Tadeu Martins (#26411).
2118
2119 2009-04-24  Micah Cowan  <micah@cowan.name>
2120
2121         * hash.c: Change stdint.h inclusion to use HAVE_STDINT_H, not C99
2122         check.
2123
2124         * connect.c: stdint.h inclusion added.
2125
2126         Thanks to Markus Duft <mduft@gentoo.org> for a similar patch.
2127
2128 2009-04-20  Micah Cowan  <micah@cowan.name>
2129
2130         * Makefile.am (version.c): Fix unportable use of "echo -n".
2131
2132 2009-04-13  Steven Schubiger  <stsc@member.fsf.org>
2133
2134         * ftp.c (ftp_retrieve_list): Move the duplicated code that
2135         determines the local file to a function.
2136
2137         * http.c (http_loop): Likewise.
2138
2139         * retr.c (set_local_file): New function.
2140
2141 2009-04-11  Steven Schubiger  <stsc@member.fsf.org>
2142
2143         * init.c (initialize): Run a custom SYSTEM_WGETRC when
2144         provided as an environment variable.
2145
2146 2009-02-27  Gisle Vanem  <gvanem@broadpark.no>
2147
2148         * main.c (main): "freopen (NULL,.." causes an assertion in MSVC
2149         debug-mode.  I.e. NULL isn't legal. But the "CONOUT$" device works
2150         fine.
2151
2152 2009-02-27  Steven Schubiger  <stsc@member.fsf.org>
2153
2154         * ftp.c (ftp_loop_internal): Don't claim for FTP retrievals
2155         when writing to standard output either that the document
2156         has been saved. Addresses bug #20520 again.
2157
2158 2009-02-21  Steven Schubiger  <stsc@member.fsf.org>
2159
2160         * http.c (http_loop): When a document is written to
2161         standard output, don't claim it has been saved to a file.
2162         Addresses bug #20520.
2163
2164 2009-02-18  Steven Schubiger  <stsc@members.fsf.org>
2165
2166         * recur.h: Remove the dangling declaration for recursive_cleanup().
2167
2168 2009-02-01  Gerardo E. Gidoni  <gerel@gnu.org>
2169
2170         * main.c, recur.c, recur.h, res.c, retr.c, retr.h: restructured code to
2171         avoid multiple 'url_parse' calls.
2172
2173 2008-11-13  Micah Cowan  <micah@cowan.name>
2174
2175         * http.c (gethttp): Don't do anything when content-length >= our
2176         requested range.
2177
2178 2008-11-27  Saint Xavier  <wget@sxav.eu>
2179
2180         * http.c (gethttp): Move authentication code before filename
2181         allocation avoiding fallbacking on default filename because
2182         "Content-Disposition" header wasn't present before authentcation
2183         has been completed. Fixes bug #24862.
2184
2185 2008-11-16  Steven Schubiger  <stsc@members.fsf.org>
2186
2187         * main.c: Declare and initialize the numurls counter.
2188
2189         * ftp.c, http.c: Make the counter visible here and use it.
2190
2191         * options.h: Remove old declaration from options struct.
2192
2193 2008-11-15  Steven Schubiger  <stsc@members.fsf.org>
2194
2195         * init.c (defaults): Set default waitretry value.
2196
2197 2008-11-14  Steven Schubiger  <stsc@members.fsf.org>
2198
2199         * main.c (format_and_print_line): Use a custom format
2200         string for printing leading spaces.
2201
2202 2008-11-12  Micah Cowan  <micah@cowan.name>
2203
2204         * ftp-ls.c (ftp_index): HTML-escape dir name in title, h1, a:href.
2205
2206 2008-11-12  Alexander Belopolsky  <alexander.belopolsky@gmail.com>
2207
2208         * url.c, url.h (url_escape_unsafe_and_reserved): Added.
2209
2210         * ftp-ls.c (ftp_index): URL-escape, rather than HTML-escape, the
2211         filename appearing in the link.
2212
2213 2008-11-12  Steven Schubiger  <stsc@members.fsf.org>
2214
2215         * main.c (print_version): Hand the relevant
2216         xstrdup/xfree calls back to format_and_print_line().
2217
2218 2008-11-11  Steven Schubiger  <stsc@members.fsf.org>
2219
2220         * main.c (format_and_print_line): Move both the memory
2221         allocating and freeing bits upwards to print_version().
2222
2223 2008-11-10  Saint Xavier  <wget@sxav.eu>
2224
2225         * http.c: Make --auth-no-challenge works with user:pass@ in URLs.
2226
2227 2008-11-05  Micah Cowan  <micah@cowan.name>
2228
2229         * ftp.c (print_length): Should print humanized "size remaining"
2230         only when it's at least 1k.
2231
2232 2008-10-31  Micah Cowan  <micah@cowan.name>
2233
2234         * main.c (print_version): Add information about the mailing list.
2235
2236 2008-10-31  Alexander Drozdov  <dzal_mail@mtu-net.ru>
2237
2238         * retr.c (fd_read_hunk): Make assert deal with maxsize == 0.
2239
2240         * ftp-ls.c (clean_line): Prevent underflow on empty lines.
2241
2242 2008-10-26  Gisle Vanem  <gvanem@broadpark.no>
2243
2244         * main.c (format_and_print_line): Put variables on top of
2245         blocks (not all compilers are C99). Add an extra '\n' if
2246         SYSTEM_WGETRC isn't defined and printed.
2247
2248 2008-09-09  Gisle Vanem  <gvanem@broadpark.no>
2249
2250         * url.c (url_error): Use aprintf, not asprintf.
2251
2252 2008-09-09  Micah Cowan  <micah@cowan.name>
2253
2254         * init.c (home_dir): Save the calculated value for home,
2255         to avoid duplicated work on repeated calls.
2256         (wgetrc_file_name) [WINDOWS]: Define and initialize home var.
2257
2258         * build_info.c, main.c: Remove unnecessary extern vars
2259         system_wgetrc and locale_dir.
2260
2261         * main.c: Define program_name for lib/error.c.
2262
2263 2008-09-02  Gisle Vanem  <gvanem@broadpark.no>
2264
2265         * mswindows.h: Must ensure <stdio.h> is included before
2266         we redefine ?vsnprintf().
2267
2268 2008-08-08  Steven Schubiger  <stsc@members.fsf.org>
2269
2270         * main.c, utils.h: Removed some dead conditional DEBUG_MALLOC code.
2271
2272 2008-08-03  Micah Cowan  <micah@cowan.name>
2273
2274         * main.c (print_help): Added --default-page.
2275
2276 2008-08-01  Joao Ferreira  <joao@joaoff.com>
2277
2278         * init.c, main.c, options.h, url.c: Added option --default-page
2279         to support alternative default names for index.html
2280
2281 2008-08-03  Micah Cowan  <micah@cowan.name>
2282
2283         * build_info.c, css-url.c: #include wget.h, not config.h.
2284
2285 2008-08-03  Steven Schubiger  <stsc@members.fsf.org>
2286
2287         * url.c, url.h (url_error): Better messages for unsupported
2288         schemes, especially https.
2289
2290         * html-url.c, recur.c, retr.c: Adjust to new url_error
2291         invocation, and free result.
2292
2293 2008-07-17  Steven Schubiger  <stsc@members.fsf.org>
2294
2295         * retr.c (retrieve_from_file): When given an URL as input file,
2296         use it as baseref if none was specified and treat the input file
2297         as HTML if its content type is text/html.
2298
2299         * init.c (cleanup): Free the memory associated with the base
2300         option (when DEBUG_MALLOC is defined).
2301
2302 2008-07-02  Xavier Saint  <wget@sxav.eu>
2303
2304         * iri.c, iri.h  : New function idn_decode() to decode ASCII
2305         encoded hostname to the locale.
2306
2307         * host.c : Show hostname to be resolved both in locale and
2308         ASCII encoded.
2309
2310 2008-06-28  Steven Schubiger  <stsc@members.fsf.org>
2311
2312         * retr.c (retrieve_from_file): Allow for reading the links from
2313         an external file (HTTP/FTP).
2314
2315 2008-06-26  Xavier Saint  <wget@sxav.eu>
2316
2317         * iri.c, iri.h : New functions locale_to_utf8() and
2318         idn_encode() adding basic capabilities of IRI/IDN.
2319
2320         * url.c : Convert URLs from locale to UTF-8 allowing a basic
2321         support of IRI/IDN
2322
2323 2008-06-25  Steven Schubiger  <stsc@members.fsf.org>
2324
2325         * ftp.c (getftp): When spidering a FTP URL, emit a diagnostic
2326         message if the remote file exists.
2327
2328 2008-06-24  Steven Schubiger  <stsc@members.fsf.org>
2329
2330         * http.c (http_loop): Replace escnonprint() occurence with
2331         a quotearg_style() call.
2332
2333 2008-06-24  Micah Cowan  <micah@cowan.name>
2334
2335         * ftp-ls.c (ftp_index): Don't assume time_t* is compatible with
2336         long*. Fixes crash on Windows, and probably other systems.
2337
2338 2008-06-22  Steven Schubiger  <stsc@members.fsf.org>
2339
2340         * http.c: Explicitly initialize and deallocate the message
2341         string used by the -nv --spider functionality.
2342
2343 2008-06-22  Steven Schubiger  <schubiger@gmail.com>
2344
2345         * http.c: Make -nv --spider include the file's name when it
2346         exists.
2347
2348 2008-06-22  Micah Cowan  <micah@cowan.name>
2349
2350         * Makefile.am (version.c): Fixed version string invocation so it
2351         once again can't result in unterminated strings, made all the
2352         string vars pointers-to-const, and moved line lengths
2353         below 80 (in Makefile.am, not in version.c).
2354
2355 2008-06-19  Xavier Saint  <wget@sxav.eu>
2356
2357         * iri.c, iri.h : New function check_encoding_name() as
2358         a preliminary encoding name check.
2359
2360         * main.c, iri.c : Make use of check_encoding_name().
2361
2362 2008-06-19  Xavier Saint  <wget@sxav.eu>
2363
2364         * iri.c : Include missing stringprep.h file and add a
2365         cast.
2366
2367         * init.c : set a default initial value for opt.enable_iri,
2368         opt.locale and opt.encoding_remote.
2369
2370 2008-06-19  Xavier Saint  <wget@sxav.eu>
2371
2372         * iri.c, iri.h : Add a new function find_locale() to find
2373         out the local system encoding.
2374
2375         * main.c : Make use of find_locale().
2376
2377 2008-06-19  Xavier Saint  <wget@sxav.eu>
2378
2379         * html-url.c : Add "content-type" meta tag parsing for
2380         retrieving page encoding.
2381
2382         * iri.h : Make no-op version of parse_charset() return
2383         NULL.
2384
2385 2008-06-16  Micah Cowan  <micah@cowan.name>
2386
2387         * http.c (http_loop): When hstat.len is higher than the
2388         successfully completed content's length, but it's because we
2389         _set_ it that way, don't abort.
2390
2391 2008-06-14  Xavier Saint  <wget@sxav.eu>
2392
2393         * iri.c, iri.h : New files.
2394
2395         * Makefile.am : Add files iri.h and conditional iri.c.
2396
2397         * build_info.c : Add compiled feature "iri".
2398
2399         * http.c : include iri.h and parse charset from Content-Type
2400         header.
2401
2402         * init.c, main.c, options.h : if an options isn't supported
2403         at compiled time, don't get rid off it and show a dummy
2404         message instead if they are used.
2405
2406 2008-06-13  Micah Cowan  <micah@cowan.name>
2407
2408         * build_info.c: ENABLE_NTLM, not HAVE_NTLM; distinguish OpenSSL
2409         from "ssl".
2410
2411 2008-06-13  Madhusudan Hosaagrahara <com.gmail.hrmadhu>
2412
2413         * Makefile.am, main.c, init.c, init.h, build_info.c: Adds build
2414         information to the --version command line option. Fixes bug
2415         #20636.
2416
2417 2008-06-01  Micah Cowan  <micah@cowan.name>
2418
2419         * main.c [WINDOWS]: Reopen stdout in binary mode, when -O - is
2420         given.
2421
2422 2008-05-31 Micah Cowan  <micah@cowan.name>
2423
2424         * html-url.c, http.c: Avoid casts in a couple spots.
2425
2426 2008-05-30 Henri Häkkinen  <henux@users.sourceforge.net>
2427
2428         * cookies.c, ftp-basic.c, hash.c, html-url.c, http-ntlm.c, http.c,
2429         init.c, log.c, main.c, progress.c, ptimer.c, spider.c, url.c,
2430         utils.c: Minor changes to silence warnings when using -Wall.
2431
2432 2008-05-26  Steven Schubiger  <schubiger@gmail.com>
2433
2434         * ftp.c (getftp): Replace last remaining invocation of escnonprint
2435         with gnulib quote.
2436
2437 2008-05-19  Micah Cowan  <micah@cowan.name>
2438
2439         * main.c (main): Password prompt should be done only once (not
2440         once per argument), and should be done prior to the background
2441         fork.
2442
2443 2008-05-17  Steven Schubiger  <schubiger@gmail.com>
2444
2445         * init.c (defaults): Set the preferred IP family to `none' by
2446         default.
2447
2448 2008-05-17  Kenny Parnell  <k.parnell@gmail.com>
2449
2450         (cmd_spec_prefer_family): Initialize prefer_family to prefer_none.
2451
2452 2008-05-17  Micah Cowan  <micah@cowan.name>
2453
2454         * main.c (main): Handle Ctrl-D on command-line.
2455
2456 2008-05-15  Steven Schubiger  <schubiger@gmail.com>
2457
2458         * ftp.c (getftp): Verify that the file actually exists in FTP, by
2459         checking it against the listing.
2460
2461 2008-05-15  Micah Cowan  <micah@cowan.name>
2462
2463         * main.c (prompt_for_password): Use the quote module.
2464
2465 2008-05-14  Micah Cowan  <micah@cowan.name>
2466
2467         * ftp.c (ftp_retrieve_list): Symlinks and other filenames
2468         should be fully quoted.
2469
2470 2008-05-12  Micah Cowan  <micah@cowan.name>
2471
2472         * main.c (main): Downgrade "-N with -O" to a warning, and switch
2473         it off to avoid confusing messages.
2474
2475 2008-04-30  Micah Cowan  <micah@cowan.name>
2476
2477         * progress.c (create_image): Fix glitch where too many spaces are
2478         printed on lines that don't display the ETA, in multibyte
2479         locales.
2480
2481 2008-04-30  Steven Schubiger  <stsc@members.fsf.org>
2482
2483         * main.c (main): New code that handles prompting for passwords
2484         when specified explicitly via command-line option (using gnulib's
2485         getpass-gnu module).
2486         (main): Include the getpass header.
2487
2488         * init.c: Add "ask-password" to the list of recognized commands.
2489
2490         * options.h: Add an according boolean member to the options
2491         struct.
2492
2493         * sysdep.h: Comment the defines __EXTENSIONS__ and _GNU_SOURCE
2494         out, because they're now defined independently by config.h.
2495
2496 2008-04-27  Rabin Vincent  <rabin@rab.in>
2497
2498         * http.c (http_loop): Fix return for the case where we don't
2499         download a file because of -nc.
2500
2501 2008-04-27  Micah Cowan  <micah@cowan.name>
2502
2503         * url.c (path_simplify): Go back to allowing leading ".." in
2504         paths, but only for FTP URLs.
2505         (test_path_simplify): Add scheme-specificness to tests, adapt for
2506         mu_run_test.
2507
2508         * test.c (all_tests): Add test_path_simplify.
2509
2510         * main.c (main): Downgrade -r, -p with -O to a warning rather than
2511         an error; elaborate just a bit more for other -O combination
2512         cases.
2513
2514 2008-04-26  Micah Cowan  <micah@cowan.name>
2515
2516         * http.c (gethttp): Move proxy CONNECT handling to below the
2517         retry_with_auth label, to deal with properly reconnecting to
2518         proxies when we need to authenticate.
2519
2520 2008-04-25  Micah Cowan  <micah@cowan.name>
2521
2522         * Makefile.am: -I foo -> -Ifoo.
2523
2524 2008-04-24  Micah Cowan  <micah@cowan.name>
2525
2526         * main.c: Revised usage description of --convert-links to apply
2527         to CSS as well as to HTML.
2528
2529 2008-04-23  Micah Cowan  <micah@cowan.name>
2530
2531         * utils.c (test_dir_matches_p): Added a test for the case
2532         described in issue #20518.
2533
2534 2008-04-22  Micah Cowan  <micah@cowan.name>
2535
2536         * Makefile.am, css.lex, css.l: Renamed css.lex to css.l.
2537         * recur.c (retrieve_tree): Fix typo to allow text/css files to
2538         be parsed.
2539
2540 2008-04-22  Ted Mielczarek  <ted.mielczarek@gmail.com>
2541
2542         * css.lex, css-url.c, css-url.h: Added to implement support for
2543         parsing CSS in Wget.
2544         * convert.c: Convert links in CSS files, too.
2545         * convert.h (convert_options): Added for options link_css_p,
2546         link_expect_css.
2547         * convert.h: Added prototype for new register_css function.
2548         * html-parse.c: Added support for parsing element content, in
2549         addition to tag starts and ends.
2550         * html-parse.h (taginfo): Added delimiter fields for element
2551         content.
2552         * html-url.h: Added.
2553         * html-url.c (append_url): No longer internal-linkage only. Now
2554         takes position and size as explicit parameters.
2555         * html-url.c: Use new html-url.h header, add support for
2556         handling of "style" HTML attributes. Mark URIs obtained from
2557         link tags with rel="stylesheet" with link_expect_css. Adapt
2558         uses of append_url to supply the newly-added parameters for
2559         position and size.
2560         * http.c: Add detection for when the content-type is text/css;
2561         and ensure that such files have the ".css" filename extension,
2562         when --convert-links is active.
2563         * recur.h: Remove declarations for functions found in
2564         html-url.c (moved to html-url.h).
2565         * recur.c: Add support for culling links from CSS files, too,
2566         and tracking for when we're expecting the file to be CSS (even
2567         when its content type isn't text/css).
2568         * retr.c (retrieve_url): Add registration of CSS files.
2569         * wget.h: Added TEXTCSS to dt flags enum.
2570         * Makefile.am: Added css.lex, css-url.c, css-url.h, html-url.h
2571         to wget_SOURCES.
2572
2573 2008-04-22  Jim Paris  <jim@jtan.com>
2574
2575         * openssl.c (ssl_init): Enable combined certificate/key in
2576         single file (apparent regression from ~1.9). Resolves issue
2577         #22767.
2578
2579 2008-04-22  Steven Schubiger  <schubiger@gmail.com>
2580
2581         * http.c (print_response_line): Changed to make responses always
2582         be logged, even in --quiet mode, if --server-response was
2583         specified. This is to bring http.c's handling of the situation
2584         in line with ftp.c's.
2585
2586 2008-04-22  Pranab Shenoy  <pranab.loosinit.shenoy@gmail.com>
2587
2588         * init.c: Added test_commands_sorted unit test to check is
2589         commands are sorted.  Fixes bug #21245.
2590
2591         * test.c: Added test_commands_sorted to the test suite.
2592
2593 2008-04-22  Rabin Vincent  <rabin@rab.in>
2594
2595         * ftp.c (ftp_get_listing): Only remove .listing if it has been
2596         created.
2597
2598 2008-04-22  Alain Guibert  <alguibert+bts@free.fr>
2599
2600         * test.h (mu_run_test): Move declaration before statements, for
2601         C90 conformance. Fixes bug #22789.
2602
2603 2008-04-22  Mike Frysinger  <vapier@gentoo.org>
2604
2605         * Makefile.am: Move @LIBS@ after other libraries, for better
2606         static-linking support. Fixes bug #22143.
2607
2608 2008-04-16  Steven Schubiger  <schubiger@gmail.com>
2609
2610         * ftp.c: Use Gnulib's quote function for printing filenames and
2611         such.
2612         * connect.c: Likewise.
2613         * convert.c: Likewise.
2614         * cookies.c: Likewise.
2615         * ftp-opie.c: Likewise.
2616         * gnutls.c: Likewise.
2617         * init.c: Likewise.
2618         * log.c: Likewise.
2619         * mswindows.c: Likewise.
2620         * openssl.c: Likewise.
2621         * progress.c: Likewise.
2622         * recur.c: Likewise.
2623         * res.c: Likewise.
2624         * utils.c: Likewise.
2625
2626 2008-04-16  Steven Schubiger  <schubiger@gmail.com>
2627
2628         * sysdep.h: Comment the defines __EXTENSIONS__ and _GNU_SOURCE
2629         out, because they're now defined independently by config.h.
2630
2631 2008-04-14  Steven Schubiger  <schubiger@gmail.com>
2632
2633         * http.c: Use Gnulib's quote function for printing filenames and
2634         such.
2635         * wget.h: #include "quote.h".
2636
2637 2008-04-12  Rabin Vincent  <rabin@rab.in>
2638
2639         * mswindows.c (fake_fork_child): Don't create a logfile for
2640         --background when --quiet is used, but not --server-response.
2641         Fixes bug #20917.
2642
2643         * utils.c (fork_to_background): Likewise.
2644
2645 2008-04-12  Micah Cowan  <micah@cowan.name>
2646
2647         * utils.c (aprintf): Minor formatting changes to Alex's code (80-
2648         column limit, concatenated string literals, avoiding nesting
2649         levels), and removed invocation of free (since we're aborting
2650         anyway).
2651
2652 2008-04-11  Alexander Dergachev  <cy6erbr4in@gmail.com>
2653
2654         * utils.c (aprintf): Now we are setting limits (1 Mb) for text
2655         buffer when we use non-C99 vsnprintf.
2656
2657 2008-04-11  Micah Cowan  <micah@cowan.name>
2658
2659         * ftp.c (getftp, ftp_loop_internal): Don't append to an existing
2660         .listing when --continue is used.  Fixes bug #22825. Thanks to
2661         Rabin Vincent <rabin@rab.in> for pointing the way with a
2662         suggested fix!
2663
2664 2008-04-10  Alexander Dergachev  <cy6erbr4in@gmail.com>
2665
2666         * xmalloc.c, xmalloc.h (memfatal): Now exported; accepts an
2667         "unknown" value for the attempted allocation size.
2668         * utils.c (aprintf): Now calls memfatal, instead of aborting.
2669
2670 2008-03-19  Micah Cowan  <micah@cowan.name>
2671
2672         * utils.c (test_dir_matches_p): More tests related for
2673         dir_matches_p.
2674
2675 2008-03-17  Micah Cowan  <micah@cowan.name>
2676
2677         * connect.c: Include sys/time.h to support use of the select
2678         function on older systems.
2679
2680 2008-02-11  Benno Schulenberg  <bensberg@justemail.net>
2681
2682         * http.c: More accurate and descriptive messages for when a file
2683         won't be retrieved during spider-mode.
2684
2685 2008-02-10  Micah Cowan  <micah@cowan.name>
2686
2687         * http.c: Added existence_checked member to the http_stat
2688         struct.
2689         (gethttp): Mark hs->existence_checked when we've checked whether
2690         a file-to-download exists; so we don't check it again if the
2691         connection gets lost (and potentially pick a new "unique" name).
2692         This fixes bug 22251.
2693         * progress.c (create_image): Add space for an extra column in
2694         the "eta" portion of the progress bar image; to deal with
2695         too-long Czech translation.
2696         * main.c, http.c, init.c: Added --auth-no-challenge option, to
2697         bring back 1.10.2 unsafe auth behavior when needed. This fixes
2698         bug #22242.
2699
2700 2008-02-07  Micah Cowan  <micah@cowan.name>
2701
2702         * progress.c (create_image): Remove assertion on exceeding
2703         screen width, which given the less-than-robust code there, can
2704         be broken by a number of factors (such as large file downloads).
2705
2706 2008-02-06  Micah Cowan  <micah@cowan.name>
2707
2708         * progress.c (countcols): Use strlen() when mbtowc or wcwidth
2709         not available (or not using NLS).
2710         * utils.c: Ensure we use single-byte separators when not doing
2711         NLS progress-bars.
2712         * wget.h: Determine whether to use NLS for progress-bars, based
2713         on whether wcwidth and mbtowc are available.
2714
2715 2008-02-03  Micah Cowan  <micah@cowan.name>
2716
2717         * progress.c (create_image): Use number of characters/columns
2718         consumed, rather than number of bytes, to determine how much of
2719         a line we've used. Fixes assertion errors and field alignment
2720         bugs (#22161, #20481)
2721         (get_eta, count_cols): Added to support the changes for
2722         create_image.
2723         * http.c (http_loop): Put no-clobber logic back into http_loop,
2724         before starting to fetch, for when we're not doing
2725         content-disposition.
2726
2727 2008-01-31  Micah Cowan  <micah@cowan.name>
2728
2729         * http.c (gethttp): Don't derive hs->contlen from possibly
2730         invalid/missing Content-Length; instead, get the appropriate
2731         value from the Content-Range header values.
2732         (parse_content_range): Handle '*' instance-length field.
2733
2734 2008-01-25  Micah Cowan  <micah@cowan.name>
2735
2736         * main.c: Added notes to translators regarding (C), diacritics
2737         in names.
2738         * Makefile.am, cmpt.c, connect.c, connect.h, convert.c,
2739         cookies.c, cookies.h, ftp-basic.c, ftp-ls.c, ftp-opie.c, ftp.c,
2740         ftp.h, gen-md5.c, gen-md5.h, gnutls.c, hash.c, hash.h, host.c,
2741         host.h, html-parse.c, html-parse.h, html-url.c, http-ntlm.c,
2742         http-ntlm.h, http.c, http.h, init.c, init.h, log.c, log.h,
2743         main.c, mswindows.c, mswindows.h, netrc.c, netrc.h, openssl.c,
2744         options.h, progress.c, progress.h, ptimer.c, ptimer.h, recur.c,
2745         recur.h, res.c, res.h, retr.c, retr.h, spider.c, spider.h,
2746         ssl.h, sysdep.h, test.c, test.h, url.c, url.h, utils.c,
2747         utils.h, wget.h, xmalloc.c, xmalloc.h: Updated copyright year.
2748
2749 2007-12-10  Micah Cowan  <micah@cowan.name>
2750
2751         * main.c: The option is --content-disposition, not
2752         --no-content-disposition (at the moment).
2753
2754 2007-12-08  Hrvoje Niksic  <hniksic@xemacs.org>
2755
2756         * ftp.c (ftp_retrieve_glob): Print both arguments of fnmatch in
2757         fnmatch error message.
2758         (ftp_retrieve_glob): Don't match with fnmatch if we're only
2759         supposed to get one file.
2760
2761 2007-12-07  Micah Cowan  <micah@cowan.name>
2762
2763         * Makefile.am: Plug in vars to include stuff from
2764         $(top_srcdir)/md5 when appropriate.
2765
2766 2007-12-05  Micah Cowan  <micah@cowan.name>
2767
2768         * utils.c (subdir_p): Handle the case where d1 is "".
2769         * convert.c (convert_all_links): Don't return without
2770         deallocating timer.
2771
2772 2007-11-28  Micah Cowan  <micah@cowan.name>
2773
2774         * Makefile.am, cmpt.c, connect.c, connect.h, convert.c,
2775         convert.h, cookies.c, cookies.h, ftp-basic.c, ftp-ls.c,
2776         ftp-opie.c, ftp.c, ftp.h, gen-md5.c, gen-md5.h, gnutls.c,
2777         hash.c, hash.h, host.c, host.h, html-parse.c, html-parse.h,
2778         html-url.c, http-ntlm.c, http-ntlm.h, http.c, http.h, init.c,
2779         init.h, log.c, log.h, main.c, mswindows.c, mswindows.h,
2780         netrc.c, netrc.h, openssl.c, options.h, progress.c, progress.h,
2781         ptimer.c, ptimer.h, recur.c, recur.h, res.c, res.h, retr.c,
2782         retr.h, safe-ctype.c, safe-ctype.h, spider.c, spider.h, ssl.h,
2783         sysdep.h, test.c, test.h, url.c, url.h, utils.c, utils.h,
2784         wget.h, xmalloc.c, xmalloc.h: Updated license exception for
2785         OpenSSL, per the SFLC.
2786
2787 2007-10-30  Micah Cowan  <micah@cowan.name>
2788
2789         * main.c (main): Declare argv parameter as char **argv, rather
2790         than char *const *argv. This fixes usage of getopt_long,
2791         regardless of whether getopt_long has a constified argv or not.
2792
2793 2007-10-22  Gisle Vanem  <gvanem@broadpark.no>
2794
2795         * mswindows.c: Move INHIBIT_WRAP macro definition up with wget.h
2796         inclusion.
2797
2798 2007-10-18  Steven Schweda  <sms@antinode.org>
2799
2800         * sysdep.h: #include <stdint.h> as well as <inttypes.h>, to work
2801         around a glitch on Tru64 systems.
2802
2803 2007-10-18  Micah Cowan  <micah@cowan.name>
2804
2805         * Makefile.am: version.c should not be distributed. Removed
2806         config-post.h. Add version.c dependency and gnulib include path
2807         for libunittest.a.
2808         * sysdep.h: Got contents of config-post.h
2809         * config-post.h: Removed.
2810         * wget.h: #include "config.h".
2811         * alloca.c, cmpt.c, connect.c, convert.c, cookies.c,
2812         ftp-basic.c, ftp-ls.c, ftp-opie.c, ftp.c, gen-md5.c, gnutls.c,
2813         hash.c, host.c, html-parse.c, html-url.c, http-ntlm.c, http.c,
2814         init.c, log.c, main.c, mswindows.c, netrc.c, openssl.c,
2815         progress.c, ptimer.c, recur.c, res.c, retr.c, spider.c, url.c,
2816         utils.c, xmalloc.c: Use wget.h at very top, and instead of
2817         config.h.
2818
2819 2007-10-15  Micah Cowan  <micah@cowan.name>
2820
2821         * Makefile.am: Remove intermediary hg-id file generation, make
2822         version.c-generation more portable.
2823
2824 2007-10-14  Micah Cowan  <micah@cowan.name>
2825
2826         * cmpt.c, cookies.c, ftp-basic.c, ftp-ls.c, ftp.c, hash.c,
2827         host.c, html-parse.c, html-url.c, http-ntlm.c, http.c, init.c,
2828         log.c, main.c, netrc.c, openssl.c, res.c, url.c, utils.c,
2829         wget.h: Replace uses of ISSPACE, etc with c_isspace, etc.
2830         * gnu-md5.c, gnu-md5.h: Removed, in deference to gnulib.
2831         * Makefile.am: Removed gnu-md5.h from wget_SOURCES.
2832         * gen-md5.c: Changed #inclusion of gnu-md5.h to md5.h (gnulib's).
2833         * recur.c (download_child_p): Print error if unlink of
2834         robots.txt fails.
2835         * main.c (main): --spider or --delete-after now implies
2836         --no-directories (thanks, Josh Williams).
2837
2838 2007-10-14  Joshua David Williams  <yurimxpxman@gmail.com>
2839
2840         * recur.c (download_child_p): Remove robots.txt if
2841         --delete-after or --spider is on.
2842
2843 2007-10-13  Micah Cowan  <micah@cowan.name>
2844
2845         * Makefile.am: Make version.c depend on Wget dependencies (source
2846         files, plus such things as LIBOBJS so we get things like
2847         http-ntlm.c). Removed getopt.[ch], as we're now using gnulib for
2848         these.
2849
2850 2007-10-10  Micah Cowan  <micah@cowan.name>
2851
2852         * http-ntlm.c: Include openssl/opensslv.h explicitly, instead of
2853         hoping it'll be included by accident in openssl/des.h.
2854
2855 2007-10-09  Gisle Vanem  <gvanem@broadpark.no>
2856
2857         * mswindows.c: 'argc' and 'argv' in 'windows_main()' are no longer
2858         needed.  Hence simply the prototype. Free 'exec_name' at exit.
2859
2860 2007-10-09  Micah Cowan  <micah@cowan.name>
2861
2862         * gettext.h: Imported from /usr/share/gettext, fuller handling
2863         of --disable-nls.
2864         * wget.h: Remove logic for handling lack of NLS (now in
2865         gettext.h).
2866         * main.c: Use gettext's ENABLE_NLS rather than HAVE_NLS.
2867         * Makefile.am: added @LIBINTL@ to LIBS (though it probably
2868         belongs in LDADD, along with everything else currently assigned
2869         to LIBS).
2870
2871 2007-10-08  Micah Cowan  <micah@cowan.name>
2872
2873         * http.c (http_loop): Add send_head_first conditional back
2874         around code that needs it, but not around the last-modified
2875         header-parsing stuff this time. Removed no-longer-useful (was it
2876         ever?) restart_loop boolean, continuing unconditionally at end
2877         of send_head_first conditional block (if we haven't jumped out).
2878
2879 2007-10-04  Micah Cowan  <micah@cowan.name>
2880
2881         * http.c (http_loop): We've got_name if content_disposition
2882         support isn't on; make sure we continue properly in that case,
2883         even though we're not sending HEAD.
2884         * Makefile.in: Removed, replaced by Makefile.am.
2885         * Makefile.am: Converted from Makefile.in.
2886
2887 2007-10-02  Gisle Vanem  <gvanem@broadpark.no>
2888
2889         * ftp.c: Use "_listing" for MSDOS (".listing" is illegal).
2890
2891         * url.c: Update comment for 'filechr_not_windows'.
2892
2893         * utils.c: Include <process.h> for 'getpid()' on Watcom.
2894
2895 2007-10-02  Micah Cowan  <micah@cowan.name>
2896
2897         * ftp.c (getftp, ftp_loop_internal), http.c (http_loop), main
2898         (main): Use datetime_str instead of time_str, for those who have
2899         potentially long-running sessions. Based on suggestions by Saso
2900         Tomat <miskox@hotmail.com> and Steven M. Schweda
2901         <sms@antinode.org>.
2902         * http.c (gethttp): Warn about host lookup failures. Adjusted
2903         from Stephen Gildea's patch.
2904
2905 2007-10-02  Stephen Gildea  <stepheng+wget@gildea.com>
2906
2907         * connect.c (connect_to_host): Warn about host lookup failures.
2908
2909 2007-09-25  Micah Cowan  <micah@cowan.name>
2910
2911         * Makefile.in: Use EXEEXT instead of exeext.
2912
2913 2007-09-24  Gisle Vanem  <giva@bgnett.no>
2914
2915         * connect.c, init.c, main.c, openssl.c, options.h, sysdep.h,
2916         url.c, utils.c: Added support for building on MS-DOS.
2917
2918 2007-09-24  Jochen Roderburg  <roderburg@uni-koeln.de>
2919
2920         * http.c (http_zero): Remove no-longer-used local_size variable.
2921         Fixes bug #21057.
2922
2923 2007-09-12  Micah Cowan  <micah@cowan.name>
2924
2925         * http.c (http_loop): Remove send_head_first from condition for
2926         parsing timestamp.
2927
2928 2007-08-29  Micah Cowan  <micah@cowan.name>
2929
2930         * openssl.c (ssl_init): Re un-const-ified the meth local
2931         variable, to match current versions of openssl.
2932         * spider.c: Removed visited_url function, as it may be very
2933         inefficient.
2934         (print_broken_links): Removed traversal of referrers, until such
2935         time as a more efficient implementation can be written.
2936         * spider.h: Replaced declaration of visited_url with an
2937         empty-bodied, function-like macro.
2938
2939 2007-08-27  Gisle Vanem  <giva@bgnett.no>
2940
2941         * mswindows.c (run_with_timeout): Ensure that the correct
2942         conversion specification is used for the return result of
2943         the GetLastError function.
2944         * getopt.c: Fix missing (but, accidentally, legal) comment
2945         delimiter after licensing text.
2946         * recur.c (retrieve_tree): Inserted missing cast for strip_auth.
2947         Includes adjustment by Ralf Wildenhues.
2948         * openssl.c (ssl_init): const-ified the meth local variable.
2949         * main.c: Include all the static function definitions in the
2950         "#ifndef TESTING" clause, leaving just the definitions for
2951         exec_name (not set), and opt.
2952         * utils.c (run_with_timeout): Now returns bool, to align with
2953         declaration in utils.h.
2954
2955 2007-08-27  Micah Cowan  <micah@cowan.name>
2956
2957         * wget.h: Added macro replacement for ngettext, for environs
2958         that lack NLS.
2959
2960 2007-08-26  Micah Cowan  <micah@cowan.name>
2961
2962         * spider.c (print_broken_links): Fixed incorrect plurals msgid
2963         usage, switched to use ngettext function.
2964
2965 2007-08-24  Micah Cowan  <micah@cowan.name>
2966
2967         * http.c (http_loop): Introduced time_came_from_head boolean
2968         flag, to help avoid parsing the same Last-Modified header twice.
2969         Replaced spidering returns of RETRUNNEEDED for some situations,
2970         to RETROK, as otherwise it will be interpreted as an error.
2971         RETRUNNEEDED appears never to be referenced outside of
2972         http.c (and wget.h), and, when returned by gethttp, is
2973         translated by http_loop to RETROK.
2974         * url.c (are_urls_equal): Don't call getchar_from_escaped_string
2975         if u2 is shorter than u1.
2976         (getchar_from_escaped_string): Don't decode reserved characters.
2977         Handle illegally appearing '%'s as literal '%'s. Ensure hex
2978         digits before attempting to decode.
2979         (test_are_urls_equal): Added tests to handle u2 shorter than u1,
2980         and %2f not treated the same as /.
2981         * spider.c (in_url_list_p): Don't call are_urls_equal if one of
2982         them is NULL.
2983
2984 2007-08-23  Joshua David Williams  <yurimxpxman@gmail.com>
2985
2986         * spider.c (in_url_list_p): Removed the bool verbose argument
2987
2988 2007-08-22  Mauro Tortonesi  <mauro@ferrara.linux.it>
2989
2990         * http.c (http_loop): Fall back to GET if HEAD fails with a 500 or 501
2991         error code.
2992
2993 2007-08-21  Mauro Tortonesi  <mauro@ferrara.linux.it>
2994
2995         * http.c (http_loop): Send preliminary HEAD request if -N is given and
2996         the destination file exists already.
2997
2998 2007-08-10  Mauro Tortonesi  <mauro@ferrara.linux.it>
2999
3000         * http.c (http_loop): Fixed HTTP HEAD requests logic when --spider is
3001         given.
3002
3003 2007-08-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3004
3005         * url.c (append_uri_pathel): Do not assume dest string to be
3006         zero-terminated.
3007         (test_append_uri_pathel): Terminate string to fix test failure.
3008
3009 2007-08-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3010
3011         * url.c (url_string): Use comparison, not assignment, in
3012         check for auth_mode == URL_AUTH_HIDE_PASSWD.
3013
3014 2007-08-09  Micah Cowan  <micah@cowan.name>
3015
3016         * http.c (http_loop): If we got a HEAD and then a GET, and the
3017         GET had a timestamp, use that one, not any we may have gotten
3018         from the HEAD.
3019
3020 2007-08-08  Micah Cowan  <micah@cowan.name>
3021
3022         * init.c (defaults): Content disposition will not be default,
3023         since it currently results in extra round-trips.
3024
3025 2007-07-31  Micah Cowan  <micah@cowan.name>
3026
3027         * http.c (gethttp): Set contlen = -1 when we encounter a
3028         negative-valued Content-Length header, so we don't consider it
3029         an internal error later on and call abort().
3030
3031 2007-07-29  Micah Cowan  <micah@cowan.name>
3032
3033         * url.h, url.c (url_string): Replaced bool arg of the url_string
3034         function with enum url_auth_mode, with added option to
3035         completely remove user/pass auth information.
3036         * http.c, ftp.c, url.c, recur.c: Adapted call to url_string
3037         function to fit new usage.
3038         * recur.c (retrieve_tree): Remove auth info from Referer header.
3039
3040 2007-07-28  Micah Cowan  <micah@cowan.name>
3041
3042         * options.h, init.c, retr.c, main.c: renamed opt maxredirect
3043         field to max_redirect, for improved consistency.
3044         * init.c: changed max_redirect parser from cmd_number_inf to
3045         cmd_number, as infinite redirects may not be appropriate.
3046         Alternatively, if cmd_number_inf should be used, then
3047         opt.max_redirect's value should be checked a bit differently in
3048         retr.c, to allow for the "infinite" meaning of zero.
3049
3050 2007-07-25  Micah Cowan  <micah@cowan.name>
3051
3052         * http.c (create_authorization_line)
3053         (basic_authentication_encode, known_authentication_scheme_p)
3054         (load_cookies): Moved declarations up.
3055         (basic_authed_hosts): Added. Tracks what hosts have issued Basic
3056         challenge and been given the global username, password.
3057         (maybe_send_basic_creds): Added. Sends Basic creds for hosts that
3058         have issued Basic challenges.
3059         (register_basic_auth_host): Added. Instantiates
3060         basic_authed_hosts if necessary, then registers the host that
3061         has issued a challenge.
3062         (gethttp) <auth>: Only send authentication credentials after
3063         we've received a challenge from that host. This is a stop-gap
3064         fix until a proper fix can be implemented; still isn't quite
3065         right, as we should only be sending credentials automatically
3066         for authenticated paths and below, and not for the entire host.
3067
3068 2007-07-16  Joshua David Williams  <yurimxpxman@gmail.com>
3069
3070         * options.h: added maxredirect to options struct
3071         * init.c: added maxredirect to list of variables
3072         * retr.c (retrieve_url): replaced MAX_REDIRECTIONS with opt.maxredirect
3073         * main.c: added option --max-redirect
3074
3075 2007-07-16  Joshua David Williams  <yurimxpxman@gmail.com>
3076
3077         * test.h: tests made more verbose; now displays the name
3078         of each test run.
3079
3080 2007-07-10  Mauro Tortonesi  <mauro@ferrara.linux.it>
3081
3082         * http.c (http_loop): Fixed the HTTP requests logic. Now it skips the
3083         preliminary HEAD request if either -O or --no-content-disposition are
3084         given, and neither --spider and -N are given.
3085
3086 2007-07-05  Micah Cowan  <micah@cowan.name>
3087
3088         * cmpt.c, connect.c, connect.h, convert.c, convert.h:
3089         * cookies.c, cookies.h, ftp-basic.c, ftp.c, ftp.h, ftp-ls.c:
3090         * ftp-opie.c, gen-md5.c, gen-md5.h, getopt.c, getopt.h, gnu-md5.c:
3091         * gnu-md5.h, gnutls.c, hash.c, hash.h, host.c, host.h:
3092         * html-parse.c, html-parse.h, html-url.c, http.c, http.h:
3093         * http-ntlm.c, http-ntlm.h, init.c, init.h, log.c, log.h, main.c:
3094         * Makefile.in, mswindows.c, mswindows.h, netrc.c, netrc.h:
3095         * openssl.c, options.h, progress.c, progress.h, ptimer.c:
3096         * ptimer.h, recur.c, recur.h, res.c, res.h, retr.c, retr.h:
3097         * safe-ctype.c, safe-ctype.h, spider.c, spider.h, ssl.h, sysdep.h:
3098         * test.c, test.h, url.c, url.h, utils.c, utils.h, wget.h:
3099         * xmalloc.c, xmalloc.h:
3100         Updated GPL reference to version 3 or later, removed FSF
3101         address.
3102
3103 2007-07-04  Mauro Tortonesi  <mauro@ferrara.linux.it>
3104
3105         * http.c (http_loop): Skip HEAD request and start immediately with GET
3106         if -O is given.
3107
3108 2007-02-02  Hrvoje Niksic  <hniksic@xemacs.org>
3109
3110         * http.c (print_server_response): Escape non-printable characters
3111         in server respone.
3112
3113 2007-02-02  Hrvoje Niksic  <hniksic@xemacs.org>
3114
3115         * netrc.c: Don't make netrc_list static, as it prevents
3116         compilation with DEBUG_MALLOC.
3117
3118         * utils.c (aprintf): Don't use vasprintf when DEBUG_MALLOC is
3119         requested because, in that case, we want the calls to malloc to be
3120         coming from us.
3121
3122 2007-01-23  Hrvoje Niksic  <hniksic@xemacs.org>
3123
3124         * cookies.c (parse_set_cookie): Would erroneously discard cookies
3125         with unparsable expiry time.
3126
3127 2007-01-23  Hrvoje Niksic  <hniksic@xemacs.org>
3128
3129         * progress.c (create_image): Check for ETA overflow.
3130         (print_row_stats): Ditto.
3131
3132 2007-01-09  Mauro Tortonesi  <mauro@ferrara.linux.it>
3133
3134         * init.c (cmd_spec_prefer_family): Small fix to get rid of a gcc
3135         warning about strict-aliasing violation.
3136
3137 2007-01-09  Steven M. Schweda  <sms@antinode.org>
3138
3139         * ftp-basic.c (ftp_syst): Fixed segfault if response text is missing.
3140
3141 2006-12-29  Gisle Vanem  <giva@bgnett.no>
3142
3143         * mswindows.c: Avoid a warning if 'ws_hangup()' is unused.
3144
3145 2006-12-27  Mauro Tortonesi  <mauro@ferrara.linux.it>
3146
3147         * http.c (parse_content_disposition): Consider directory prefix, if
3148         specified.
3149
3150 2006-11-21  Hrvoje Niksic  <hniksic@xemacs.org>
3151
3152         * retr.c (retrieve_from_file): Ditto.
3153         (url_uses_proxy): New function.
3154
3155         * main.c (main): Don't check for opt.use_proxy when deciding
3156         whether to call retrieve_url or retrieve_tree; check whether the
3157         proxy would be used for *this* URL.
3158
3159 2006-10-17  Mike Grant  <mggr@pml.ac.uk>
3160
3161         * ftp.c (ftp_loop_internal): Would incorrectly skip changing
3162         working directory when retrying after a failed FTP attempt.
3163         Originally reported by Nate Eldredge.
3164
3165 2006-10-12  Mauro Tortonesi  <mauro@ferrara.linux.it>
3166
3167         * convert.c (downloaded_file): Fixed bug which used to break -E -k -K
3168         mode.
3169
3170 2006-08-28  Mauro Tortonesi  <mauro@ferrara.linux.it>
3171
3172         * http.c: #include'd spider.h to get rid of compiler warnings.
3173
3174         * main.c: Ditto.
3175
3176         * recur.c: Ditto.
3177
3178 2006-08-24  Mauro Tortonesi  <mauro@ferrara.linux.it>
3179
3180         * Makefile.in: Added spider.c to the list of files to compile and
3181         spider.h to the list of header files. Updated copyright information.
3182
3183         * http.c: Major changes to recursive spider mode. Now for every
3184         resource we are supposed to check, we send a HEAD request to find out
3185         if it exists. If the resource is a HTML file, we retrieve it and parse
3186         it to discover links to other resources.
3187
3188         * recur.c: Ditto.
3189
3190         * res.c (res_retrieve_file): Disable opt.timestamping and opt.spider
3191         when retrieving robots.txt. Updated copyright information.
3192
3193         * convert.c: Moved code tracking broken links to spider.c.
3194
3195         * convert.h: Ditto.
3196
3197         * spider.c: Created new file to keep track of visited URLs in spider
3198         mode.
3199
3200         * spider.h: Ditto.
3201
3202 2006-08-21  Mauro Tortonesi  <mauro@ferrara.linux.it>
3203
3204         * http.c: Fixed timestamping-related bug.
3205
3206 2006-08-16  Mauro Tortonesi  <mauro@ferrara.linux.it>
3207
3208         * http.c: Fixed bug which broke --continue feature. Now if -c is
3209         given, http_loop sends a HEAD request to find out the destination
3210         filename before resuming download.
3211
3212 2006-08-08  Hrvoje Niksic  <hniksic@xemacs.org>
3213
3214         * utils.c (datetime_str): Avoid code repetition with time_str.
3215
3216 2006-07-21  Hrvoje Niksic  <hniksic@xemacs.org>
3217
3218         * init.c (commands): Correctly place "contentdisposition".
3219
3220 2006-07-14  Mauro Tortonesi  <mauro@ferrara.linux.it>
3221
3222         * sysdep.h: If intptr_t isn't defined, simply typedef it to long.
3223
3224         * http.c: Added explicit cast to int in logprintf call to remove
3225         compiler warnings on 64-bit platforms.
3226
3227         * connect.c: Added a few casts to intptr_t to remove compiler warnings
3228         on 64-bit platforms.
3229
3230         * main.c: Disable -r, -p and -N when -O is used. Disable -k when -O is
3231         used and multiple URLs are given. Update maintainer information.
3232
3233         * all: Update copyright information.
3234
3235 2006-07-10  KJKHyperion  <hackbunny@reactos.com>
3236
3237         * url.c (filechr_table): Mark DEL (0x7f) as a control character
3238         and | as a character Windows can't handle.
3239
3240 2006-06-28  Mauro Tortonesi  <mauro@ferrara.linux.it>
3241
3242         * res.c: Implemented is_robots_txt_url function for detection of
3243         robots.txt URLs and related test routine.
3244
3245         * res.h: Ditto.
3246
3247         * url.c: Implemented are_urls_equal function for URL comparison and
3248         related testing routine.
3249
3250         * url.h: Ditto.
3251
3252         * convert.c: Fixes for recursive spider mode: don't consider
3253         non-existing robots.txt as a broken link, and use are_urls_equal
3254         instead of strcasecmp for referrer URLs comparison.
3255
3256         * test.c: Call tests routines for are_urls_equal and
3257         is_robots_txt_url.
3258
3259 2006-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
3260
3261         * wget.h (wgint): Typedef to any 64-bit (or larger) type we can
3262         find, not necessarily off_t or long.
3263
3264 2006-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
3265
3266         * cmpt.c (strtoll): Check for overflow and underflow without
3267         relying on (technically) undefined behavior.  Don't assume that
3268         strtoll_type is 64 bits wide.
3269
3270 2006-06-21  Hrvoje Niksic  <hniksic@xemacs.org>
3271
3272         * utils.c (base64_encode): Cast void pointer to char * before
3273         doing arithmetic.
3274
3275 2006-06-20  Hrvoje Niksic  <hniksic@xemacs.org>
3276
3277         * utils.c (base64_encode): Made TBL const.
3278         (base64_decode): Made the base64_char_to_value table const.
3279
3280 2006-06-19  Hrvoje Niksic  <hniksic@xemacs.org>
3281
3282         * utils.c (base64_encode): Made the DATA pointer void * so the
3283         callers can pass it any kind of pointer (including both signed and
3284         unsigned char pointers).
3285         (base64_decode): Ditto for DEST.
3286
3287 2006-06-19  Hrvoje Niksic  <hniksic@xemacs.org>
3288
3289         * utils.c (base64_encode): Would read past end of STR.
3290         Reported by rick@eckle.org.
3291
3292 2006-06-13  Mauro Tortonesi  <mauro@ferrara.linux.it>
3293
3294         * options.h (struct options): Introduced member restrict_files_case to
3295         keep track of preferences on character case restrictions for
3296         filenames.
3297
3298         * init.c: Modified defaults and cmd_spec_restrict_file_names to
3299         support character case restrictions for filenames. Added
3300         test_cmd_spec_restrict_file_names unit test.
3301
3302         * url.c: Modified append_uri_pathel to support character case
3303         restrictions for filenames. Added test_append_uri_pathel unit test.
3304
3305         * test.c: Added test_cmd_spec_restrict_file_names and
3306         test_append_uri_pathel to the list of unit tests to run.
3307
3308 2006-06-12  Mauro Tortonesi  <mauro@ferrara.linux.it>
3309
3310         * retr.c (retrieve_from_file): Use retrieve_tree and automatically
3311         turn on opt.follow_ftp in case of recursive FTP retrieval through HTTP
3312         proxy.
3313
3314         * main.c: Automatically turn on opt.follow_ftp in case of recursive
3315         FTP retrieval through HTTP proxy.
3316
3317 2006-06-12  Tony Lewis  <tlewis@exelana.com>
3318
3319         * main.c: Improved CHEN Peng's patch by proposing a simpler logic.
3320
3321 2006-06-12  CHEN Peng  <chenpeng@alumni.nus.edu.sg>
3322
3323         * main.c: Use retrieve_tree in case of recursive FTP retrieval through
3324         HTTP proxy.
3325
3326 2006-05-25  Mauro Tortonesi  <mauro@ferrara.linux.it>
3327
3328         * convert.c: Added mechanisms to keep track broken links.
3329
3330         * convert.h: Ditto.
3331
3332         * wget.h: Reordered and enumerated uerr_t constants.
3333
3334         * recur.c: Fixes to support recursive spider mode.
3335
3336         * http.c: Ditto.
3337
3338         * main.c: Print broken links in case of recursive spider mode.
3339
3340         * retr.c: Changed interface of retrieve_url.
3341
3342         * retr.h: Ditto.
3343
3344         * ftp.c: Changed interface of ftp_loop.
3345
3346         * ftp.h: Ditto.
3347
3348         * res.c: Minor change to reflect changes in interface of retrieve_url.
3349
3350 2006-05-18  Lawrence Jones  <lawrence.jones@ugs.com>
3351
3352         * ftp-ls.c (ftp_parse_unix_ls): Correct size parsing, add size
3353         and filename debugging output.
3354
3355 2006-04-28  Mauro Tortonesi  <mauro@ferrara.linux.it>
3356
3357         * http.c: If Content-Disposition header is present, allow unique
3358         filename generation unless -nc is given. Permit to disable parsing of
3359         Content-Disposition header.
3360
3361         * options.h: Added option --no-content-disposition to disable parsing
3362         of HTTP Content-Disposition header.
3363
3364         * init.c: Ditto.
3365
3366         * main.c: Ditto.
3367
3368 2006-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
3369
3370         * hash.c (TOLOWER): Wrap macro arg in parentheses.
3371
3372 2006-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
3373
3374         * http.c (parse_content_disposition): Doc fix.
3375
3376 2006-03-15  Mauro Tortonesi  <mauro@ferrara.linux.it>
3377
3378         * utils.c: Restricted operational semantics of frontcmp and proclist
3379         from generic strings to directory names and them to subdir_p and
3380         dir_matches_p respectively.  Applied George Ogata's one line patch to
3381         restrict algorithm of subdir_p to full directory name matching.  Added
3382         testcases for subdir_p and dir_matches_p.
3383
3384         * utils.h: Changed all frontcmp occurrences to subdir_p.
3385
3386         * recur.c: Ditto.
3387
3388         * test.c: Changed type returned by test functions from char * to const
3389         char *.  Added test_subdir_p and test_dir_matches_p to the list of
3390         tests to run.
3391
3392         * http.c (test_parse_content_disposition): Changed return type from
3393         char * to const char *.
3394
3395 2006-03-14  Mauro Tortonesi  <mauro@ferrara.linux.it>
3396
3397         * recur.c (struct queue_element): Changed type of html_allowed member
3398         to bool.
3399
3400 2006-03-09  Mauro Tortonesi  <mauro@ferrara.linux.it>
3401
3402         * ftp.c (ftp_list): Try `LIST -a' command first and revert to `LIST'
3403         in case of failure.
3404
3405 2006-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
3406
3407         * hash.c (TOLOWER): Fix definition when STANDALONE.
3408         Reported by Beni Serfaty.
3409
3410 2006-03-02  Mauro Tortonesi  <mauro@ferrara.linux.it>
3411
3412         * http.c (http_loop): Fixed recursive HTTP retrieval.
3413
3414 2006-02-28  Hrvoje Niksic  <hniksic@xemacs.org>
3415
3416         * http.c (extract_param): Declare extern so it can be used from
3417         other files.
3418         (extract_param): Return error for empty name.
3419
3420 2006-02-28  Hrvoje Niksic  <hniksic@xemacs.org>
3421
3422         * url.c (find_last_char): Define in terms of memrchr.
3423
3424         * cmpt.c (memrchr): Define it on systems that don't have it.
3425
3426         * http.c (extract_param): New function for parsing header values
3427         with parameters.
3428         (parse_content_disposition): Use it.  Don't allow slashes and
3429         backslashes in the file name.
3430
3431 2006-02-27  Hrvoje Niksic  <hniksic@xemacs.org>
3432
3433         * url.c (path_simplify): Don't preserve ".." at beginning of path.
3434         Suggested by Frank McCown.
3435
3436 2006-02-25  Hrvoje Niksic  <hniksic@xemacs.org>
3437
3438         * http.c (gethttp): Only use FILE.N.html if FILE.html exists.
3439
3440 2006-02-09  Hrvoje Niksic  <hniksic@xemacs.org>
3441
3442         * mswindows.c (run_with_timeout): Made thread_hnd non-static.
3443
3444 2006-02-05  Hrvoje Niksic  <hniksic@xemacs.org>
3445
3446         * retr.c (sleep_between_retrievals): Sleep at a minimum of 1/2 of
3447         the specified wait period.
3448
3449 2006-02-03  Hrvoje Niksic  <hniksic@xemacs.org>
3450
3451         * utils.c (number_to_string): Don't use sprintf for printing
3452         WGINT_MIN; simply divide n by 10 and defer printing the last
3453         digit.
3454         (number_to_string): Removed the SPRINTF_WGINT macro.
3455
3456 2006-02-03  Mauro Tortonesi  <mauro@ferrara.linux.it>
3457
3458         * http.c: Fixed support for Content-Disposition header.
3459
3460         * test.c: Added test_parse_content_disposition to the list of unit
3461         tests to run.
3462
3463 2006-02-02  Hrvoje Niksic  <hniksic@xemacs.org>
3464
3465         * hash.c: Don't define countof if it's already defined.
3466
3467         * hash.c: Obtain the definition of uintptr_t when standalone.
3468
3469 2006-01-30  Mauro Tortonesi  <mauro@ferrara.linux.it>
3470
3471         * http.c: Changed output format. Removed excessively verbose debugging
3472         output.
3473
3474 2005-12-07  Mauro Tortonesi  <mauro@ferrara.linux.it>
3475
3476         * http.c: Fixed pre-download verbose output which was broken by
3477         HTTP code refactoring.
3478
3479 2005-11-23  Mauro Tortonesi  <mauro@ferrara.linux.it>
3480
3481         * http.c: Refactored HTTP code.  If -O is not used, the new code
3482         delays the choice of the file name where the downloaded resource
3483         will be saved until the HTTP headers have been retrieved.
3484         Added support for Content-Disposition header.
3485
3486 2005-11-19  Hrvoje Niksic  <hniksic@xemacs.org>
3487
3488         * hash.c (INVALID_PTR): Use uintptr_t instead of unsigned long.
3489         (hash_pointer): Don't assume a pointer fits in `unsigned long'.
3490
3491 2005-11-02  Mauro Tortonesi  <mauro@ferrara.linux.it>
3492
3493         * Makefile.in: Removed support for unit testing (now it is in
3494         tests/Makefile.in).
3495
3496 2005-10-27  Mauro Tortonesi  <mauro@ferrara.linux.it>
3497
3498         * Makefile.in: Added basic support for unit testing.
3499
3500         * test.c: Ditto.
3501
3502         * test.h: Ditto.
3503
3504 2005-10-13  Daniel Stenberg  <daniel@haxx.se>
3505
3506         * http-ntlm.c (ntlm_output): Fixed buffer overflow vulnerability.
3507
3508 2005-10-09  Russ Allbery  <rra@stanford.edu>
3509
3510         * snprintf.c: Remove round to round_int and pow10 to pow10_int, to
3511         avoid warnings from GCC 4.0.
3512
3513 2005-10-05  Mauro Tortonesi  <mauro@ferrara.linux.it>
3514
3515         * retr.c: Changed semantics of no_proxy_match.
3516
3517 2005-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
3518
3519         * main.c (main): Don't print the summary if nothing has been downloaded.
3520
3521 2005-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
3522
3523         * retr.c (retr_rate): Rename parameter from MSECS to SECS since it
3524         no longer holds milliseconds.
3525
3526 2005-09-01  Hrvoje Niksic  <hniksic@xemacs.org>
3527
3528         * progress.c: Introduce symbolic constants for "magic" values of
3529         0.2 and 0.9, REFRESH_INTERVAL and ETA_REFRESH_INTERVAL.
3530
3531 2005-08-27  Hrvoje Niksic  <hniksic@xemacs.org>
3532
3533         * cmpt.c (strtoll): Correctly handle strtoll("0x", ptr, 0) and
3534         strtoll("0x<nonhexchar>", ptr, 0) -- in both cases *ptr must be
3535         set to the position of 'x', not after it.
3536
3537 2005-08-27  Hrvoje Niksic  <hniksic@xemacs.org>
3538
3539         * hash.c (hash_table_map): Rename to hash_table_for_each and
3540         update callers.
3541         Document the meaning of the callback's return value.
3542         (hash_table_iterate): New function.
3543         (hash_table_iter_next): Likewise.
3544         Update most places that used hash_table_for_each to use the
3545         iteration, which doesn't require a temporary function with
3546         explicit state management.
3547
3548 2005-08-26  Albert Chin  <wget@mlists.thewrittenword.com>
3549
3550         * Makefile.in: Use @datadir@.  Define localedir as $(datadir)/locale.
3551
3552 2005-08-26  Jeremy Shapiro  <jnshapiro@gmail.com>
3553
3554         * openssl.c (ssl_init): Set SSL_MODE_AUTO_RETRY.
3555
3556 2005-08-23  Hrvoje Niksic  <hniksic@xemacs.org>
3557
3558         * host.c (address_list_from_ipv4_addresses): Use IP_INADDR_DATA.
3559
3560 2005-08-12  Hrvoje Niksic  <hniksic@xemacs.org>
3561
3562         * wget.h: Renamed strtoll_return to strtoll_type.
3563
3564 2005-08-11  Hrvoje Niksic  <hniksic@xemacs.org>
3565
3566         * progress.c (eta_to_human_short): Switch to days when printing
3567         more than 48h rather than 100h.  (It's not immediately apparent
3568         how many days there are in 83h.)
3569
3570 2005-08-11  Hrvoje Niksic  <hniksic@xemacs.org>
3571
3572         * cmpt.c (strtoll): Define it if missing on the system and if Wget
3573         needs it.
3574
3575         * mswindows.c (str_to_int64): Move to cmpt.c and rename to strtoll.
3576
3577 2005-08-10  Hrvoje Niksic  <hniksic@xemacs.org>
3578
3579         * host.c (print_address): Always use inet_ntop when IPv6 is
3580         enabled.
3581
3582         * host.h (ip_address): Simplify the data union.
3583
3584 2005-08-09  Hrvoje Niksic  <hniksic@xemacs.org>
3585
3586         * mswindows.c (inet_ntop): Also handle IPv4 addresses for
3587         completeness.
3588
3589 2005-08-09  Hrvoje Niksic  <hniksic@xemacs.org>
3590
3591         * http.c (gethttp): Don't read more than the amount of data
3592         specified by the content-length header.
3593
3594 2005-08-09  Vasil Dimov  <vd@datamax.bg>
3595
3596         * ftp.c (getftp): Don't free RESPLINE if ftp_response returns a
3597         status other than FTPOK.
3598
3599 2005-08-04  Giuseppe Bonacci  <g.bonacci@libero.it>
3600
3601         * ftp-ls.c (ftp_parse_unix_ls): Remember the position of the
3602         previous token instead of backtracking back to it.
3603
3604 2005-07-08  Gisle Vanem  <giva@bgnett.no>
3605
3606         * mswindows.h: Include process.h to get getpid() declaration.
3607
3608 2005-07-08  Hrvoje Niksic  <hniksic@xemacs.org>
3609
3610         * utils.c (aprintf): Use vasprintf where available.
3611
3612 2005-07-08  Hrvoje Niksic  <hniksic@xemacs.org>
3613
3614         * url.c (rewrite_shorthand_url): Simplify code using aprintf and
3615         strspn.
3616
3617 2005-07-07  Hrvoje Niksic  <hniksic@xemacs.org>
3618
3619         * gnutls.c (ssl_check_certificate): Check for the validity of the
3620         presented X509 certificate.
3621
3622 2005-07-07  Hrvoje Niksic  <hniksic@xemacs.org>
3623
3624         * openssl.c (ssl_check_certificate): Print custom error messages
3625         for frequent X509 certificate problems.
3626
3627 2005-07-07  Hrvoje Niksic  <hniksic@xemacs.org>
3628
3629         * mswindows.h: Define an alias for stat and fstat, as requested by
3630         config-compiler.h.
3631         (gai_strerror): Define to windows_strerror if NEED_GAI_STRERROR is
3632         defined.
3633
3634 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
3635
3636         * mswindows.h: Use strtoll where available.
3637
3638 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
3639
3640         * sysdep.h: Add a full declaration of fnmatch.h.
3641
3642 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
3643
3644         * utils.c: Unconditionally include <setjmp.h>.
3645
3646 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
3647
3648         * utils.c (fnmatch_nocase): New function.
3649         (proclist): Use it instead of fnmatch when opt.ignore_case is
3650         requested.
3651         (in_acclist): Respect opt.ignore_case.
3652         (frontcmp): Respect opt.ignore_case.
3653
3654         * options.h (struct options): New flag opt.ignore_case.
3655
3656 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
3657
3658         * ptimer.c: Measure time in seconds rather than milliseconds.
3659         Adjusted all callers.
3660
3661 2005-07-06  Hrvoje Niksic  <hniksic@xemacs.org>
3662
3663         * http.c (gethttp): When freeing MESSAGE, take into account that
3664         it can be NULL.
3665
3666 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
3667
3668         * cmpt.c (timegm): Handle years after 2099.
3669
3670 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
3671
3672         * cmpt.c (timegm): Remove unused variable.
3673
3674 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
3675
3676         * cmpt.c (timegm): Don't call mktime; simply count the seconds
3677         between 1970-01-01 and the specified date.
3678
3679 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
3680
3681         * wget.h (or): Define HAVE_SSL when either HAVE_OPENSSL or
3682         HAVE_GNUTLS are defined.
3683
3684         * gnutls.c: New file.
3685
3686 2005-07-05  Hrvoje Niksic  <hniksic@xemacs.org>
3687
3688         * http.c (gethttp): Don't print the request write error message
3689         twice.
3690
3691 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
3692
3693         * openssl.c (openssl_errstr): Instead of always using a large
3694         static buffer, only allocate the error string when there is an
3695         actual error.
3696
3697 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
3698
3699         * xmalloc.c (debugging_free): Prefix hex pointer value with "0x"
3700         when printing.
3701
3702 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
3703
3704         * utils.c (NEXT_BASE64_CHAR): Rename to NEXT_CHAR and simplify to
3705         get the next non-whitespace character.
3706
3707 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
3708
3709         * utils.c (base64_decode): Don't silently tolerate non-base64
3710         non-white-space characters in the base64 stream.
3711
3712 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
3713
3714         * connect.c (LAZY_RETRIEVE_INFO): Make last_tick unsigned to match
3715         transport_map_modified_tick.
3716
3717 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
3718
3719         * config-post.h (alloca): Updated declaration to not enumerate all
3720         Windows compilers.
3721
3722 2005-07-04  Hrvoje Niksic  <hniksic@xemacs.org>
3723
3724         * openssl.c (openssl_errstr): Separate error messages with "; ".
3725
3726 2005-07-03  Hrvoje Niksic  <hniksic@xemacs.org>
3727
3728         * ftp.c (getftp): Ditto.
3729
3730         * http.c (gethttp): Use fd_errstr.
3731
3732         * connect.c (fd_register_transport): Restructure parameters to
3733         include only a single structure that describes transport
3734         implementation.
3735
3736         * openssl.c (openssl_errstr): New function: dump SSL error strings
3737         into a static buffer and return a pointer to the buffer.
3738
3739         * connect.c (fd_errstr): New function; returns transport-specific
3740         error message, or strerror(errno) if transport doesn't supply one.
3741
3742 2005-07-03  Hrvoje Niksic  <hniksic@xemacs.org>
3743
3744         * mswindows.h: Also wrap accept() and listen().
3745
3746 2005-07-03  Hrvoje Niksic  <hniksic@xemacs.org>
3747
3748         * url.c (path_end): Skip separators appropriate for the scheme.
3749         (strpbrk_or_eos): Remove gcc-specific version, as the optimization
3750         it tried to perform no longer applies.
3751
3752 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
3753
3754         * host.c: Don't include "connect.h" now that we no longer have
3755         socket_has_inet6.
3756
3757 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
3758
3759         * host.c: Remove extraneous definition of netdb.h.
3760
3761 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
3762
3763         * http.c (gethttp): Skip error message body in the keep-alive
3764         case.
3765
3766 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
3767
3768         * url.c (url_parse): Would crash when parsing fragments.  Support
3769         fragments for FTP URLs too.
3770
3771 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
3772
3773         * version.c: Don't use "cvs" in version name, since we're not
3774         using CVS anymore.
3775
3776 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
3777
3778         * progress.c (create_image): Ditto.
3779
3780         * retr.c (retr_rate): Display smaller rate numbers with greater
3781         precision.
3782
3783 2005-07-02  Hrvoje Niksic  <hniksic@xemacs.org>
3784
3785         * http.c (response_head_terminator): Minor optimization.
3786
3787         * retr.c (fd_read_hunk): Call terminator with pointer to the start
3788         of the data and the pointer to the current data.  Changed all
3789         callers.
3790
3791 2005-07-01  Hrvoje Niksic  <hniksic@xemacs.org>
3792
3793         * url.c (url_parse): Make sure u->params is not initialized for
3794         http/https URLs.
3795         (url_parse): Don't crash on garbage following []-delimited IPv6
3796         addresses.
3797
3798 2005-07-01  Hrvoje Niksic  <hniksic@xemacs.org>
3799
3800         * main.c (print_help): Don't refer to the non-existent -nr in
3801         description of --mirror.
3802
3803 2005-06-30  Hrvoje Niksic  <hniksic@xemacs.org>
3804
3805         * host.c (pretty_print_address): Renamed to just print_address.
3806         Clarify documentation.
3807
3808 2005-06-30  Hrvoje Niksic  <hniksic@xemacs.org>
3809
3810         * http.c (gethttp): Explicitly document the different cases when
3811         generating the Host header.
3812
3813 2005-06-30  Hrvoje Niksic  <hniksic@xemacs.org>
3814
3815         * host.c (pretty_print_address): Handle error result from
3816         inet_ntop.
3817
3818 2005-06-30  Gisle Vanem  <giva@bgnett.no>
3819
3820         * mswindows.c (inet_ntop): New function.  Print IPv6 addresses
3821         using WSAAddressToString.
3822
3823 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
3824
3825         * progress.c (dot_update): Remove unused variable row_qty.
3826
3827 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
3828
3829         * main.c: Check for both SIGHUP and SIGUSR1 before using them.
3830
3831 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
3832
3833         * utils.c: Unconditionally include locale.h.
3834
3835 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
3836
3837         * ptimer.c: Include sys/time.h to get struct timeval.
3838
3839 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
3840
3841         * wget.h: Remove obsolete definition of with_thousand_seps_sum.
3842
3843 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
3844
3845         * gnu-md5.h: Unconditionally include limits.h.
3846
3847 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
3848
3849         * utils.c (random_number): Use lrand48 if available.
3850         (random_float): Use drand48 if available.
3851
3852 2005-06-29  Hrvoje Niksic  <hniksic@xemacs.org>
3853
3854         * main.c (secs_to_human_time): Use print_decimal when printing
3855         total download time in seconds.
3856
3857         * progress.c (print_row_stats): Use it to print total download
3858         time at the end of the download.
3859         (create_image): Ditto.
3860
3861         * utils.c (print_decimal): New function; print small decimal
3862         numbers with more precision than large ones.
3863
3864         * progress.c (print_row_stats): New function.  Print ETA after the
3865         download rate at the end of each row.
3866
3867 2005-06-28  Hrvoje Niksic  <hniksic@xemacs.org>
3868
3869         * init.c (parse_line): Check for alphanumerics.
3870
3871 2005-06-28  Hrvoje Niksic  <hniksic@xemacs.org>
3872
3873         * (dot_create): Remove unnecessary casts.
3874
3875 2005-06-28  Hrvoje Niksic  <hniksic@xemacs.org>
3876
3877         * ftp.c (getftp): Delete trailing newlines from LIST output so
3878         lines don't come out with trailing \015\012 with -S.
3879
3880 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
3881
3882         * mswindows.h: Remove superfluous includes.
3883
3884 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
3885
3886         * config-post.h (alloca): Amend alloca declaration to take care of
3887         all Win32 compilers, not just MSVC and MinGW.
3888
3889 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
3890
3891         * utils.c (get_grouping_data): Force separator to "." rather than
3892         " " when "," is taken.
3893
3894 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
3895
3896         * wget.h (PTR_FORMAT): Cast the result of sizeof to int before
3897         passing it to printf's %*.
3898
3899         * retr.h: Declare output_stream and output_stream_regular.
3900
3901         * ftp.h: Declare ftp_last_respline.
3902
3903         * convert.h: Declare dl_url_file_map.
3904
3905         * http.h: New file.
3906
3907 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
3908
3909         * cookies.c: Make cookies_now static.
3910
3911 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
3912
3913         * utils.c (human_readable): Remove intermediary cast to long; MSVC
3914         has problems casting *unsigned* __int64 to double.
3915
3916 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
3917
3918         * sysdep.h: Use the system-provided fnmatch by default.
3919
3920 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
3921
3922         * http.c (mktime_from_utc): Renamed to timegm and moved to cmpt.c.
3923         Don't compile it if GNU timegm is available.
3924         (http_atotm): Use timegm.
3925
3926 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
3927
3928         * http.c (http_atotm): Correctly query the old locale value.
3929
3930 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
3931
3932         * config-post.h (alloca): Don't #define alloca under MinGW32,
3933         which defines it in malloc.h, included from mswindows.h.
3934
3935 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
3936
3937         * utils.c (get_grouping_data): Force the use of separators in C
3938         locale.
3939
3940 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
3941
3942         * main.c (i18n_initialize): Set all locale categories.
3943
3944         * http.c (http_atotm): Temporarily set locale to "C".
3945
3946 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
3947
3948         * http.c (gethttp): Improve "POST data file missing" error
3949         message.
3950
3951 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
3952
3953         * progress.c (set_progress_implementation): Type COLON as const
3954         char *.
3955
3956 2005-06-27  Hrvoje Niksic  <hniksic@xemacs.org>
3957
3958         * utils.c (with_thousand_seps): Handle negative numbers.
3959
3960 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
3961
3962         * progress.c (create_image): Mark the "eta" string for translation.
3963
3964 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
3965
3966         * html-url.c (get_urls_file): Don't explicitly set entry->next to
3967         NULL since entry is already zeroed out.
3968
3969 2005-06-26  Gisle Vanem  <giva@bgnett.no>
3970
3971         * mswindows.h: Define gai_strerror under MinGW.
3972
3973 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
3974
3975         * utils.c (with_thousand_seps): Correctly implement thousand seps
3976         consisting of more than one character.
3977
3978 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
3979
3980         * main.c (secs_to_human_time): Ditto.
3981
3982         * progress.c (create_image): Print more exact duration of very
3983         short downloads.
3984
3985         * main.c (secs_to_human_time): Don't translate time suffixes "h",
3986         "m", and "s", which are not strictly SI, but are "accepted for use
3987         with SI".
3988         (secs_to_human_time): Print really small intervals as 0s, not
3989         0.00s.
3990
3991 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
3992
3993         * config-post.h: Replace the alloca declaration with the one from
3994         the latest Autoconf manual.  This should remove a warning with GCC
3995         on AIX.
3996
3997 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
3998
3999         * ftp.c (getftp): Always invoke SIZE, not only when continuing a
4000         download.
4001
4002         * main.c (main): Ditto here.
4003
4004         * progress.c (create_image): When the download is finished, print
4005         how long it took.
4006
4007 2005-06-26  Hrvoje Niksic  <hniksic@xemacs.org>
4008
4009         * main.c (main): Print the downloaded and quota amounts with the
4010         "human_readable" function.
4011
4012         * ftp.c (print_length): Ditto.
4013
4014         * http.c (gethttp): Don't display thousand separators.
4015
4016         * utils.c (with_thousand_seps): Rewritten to respect locale
4017         settings and to be type size agnostic.
4018
4019 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
4020
4021         * utils.c (human_readable): Divide with 1024 instead of shifting
4022         so the operation can work with non-integer N.
4023
4024 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
4025
4026         * progress.c (eta_to_human): New logic for more human-readable
4027         ETA.
4028
4029 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
4030
4031         * utils.c (with_thousand_seps_sum): Decrease buffer size so it
4032         cannot overrun add_thousand_seps's buffer.
4033
4034 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
4035
4036         * utils.c (SPRINTF_WGINT): The correct format is %I64d, not just
4037         %I64.
4038
4039 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
4040
4041         * http.c (http_loop): Don't warn about wildcards in HTTP URLs if
4042         globbing isn't requested in the first place.
4043
4044         * retr.c (retrieve_url): Temporarily turn off globbing when
4045         processing HTTP->FTP redirects.
4046
4047 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
4048
4049         * utils.c (with_thousand_seps_sum): Now defined only if
4050         SUM_SIZE_INT is double.
4051
4052         * wget.h (SUM_SIZE_INT): Instead of bothering with long, long
4053         long, __int64, and friends, simply either use wgint or double, end
4054         of story.  Since we know how to print either, we no longer need
4055         LARGE_INT_FMT.
4056
4057         * sysdeps.h (LARGE_INT): Renamed to SUM_SIZE_INT to better reflect
4058         its intent, and moved to wget.h.
4059
4060 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
4061
4062         * Makefile.in: No need to clean .libs.
4063
4064 2005-06-25  Hrvoje Niksic  <hniksic@xemacs.org>
4065
4066         * cookies.c (parse_set_cookies): Cast pointer subtraction to int
4067         before using it with %d; AIX compiler warns on this.
4068         Reported by Jens Schleusener.
4069
4070 2005-06-24  Hrvoje Niksic  <hniksic@xemacs.org>
4071
4072         * http.c (gethttp): Don't prepend / here.
4073
4074         * cookies.c (cookie_handle_set_cookie): Prepend / to PATH.
4075         (cookie_header): Ditto.
4076
4077 2005-06-24  Hrvoje Niksic  <hniksic@xemacs.org>
4078
4079         * init.c: opt.verbose must be declared as int.
4080
4081 2005-06-23  Hrvoje Niksic  <hniksic@xemacs.org>
4082
4083         * cmpt.c (strpbrk): Removed.
4084         (mktime): Removed.
4085         Include <time.h>.
4086
4087 2005-06-23  Hrvoje Niksic  <hniksic@xemacs.org>
4088
4089         * utils.c (read_file): Ditto.
4090
4091         * main.c (main): Use struct_fstat.
4092
4093         * mswindows.h (struct_fstat): Define a struct_fstat to deal with
4094         the fact that Borland 5.5 has 64-bit stat, but not 64-bit fstat!
4095
4096 2005-06-23  Hrvoje Niksic  <hniksic@xemacs.org>
4097
4098         * sysdep.h: Remove code that deals with Watcom.
4099
4100 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
4101
4102         * all: Use bool instead of int and false/true instead of 0/non-0
4103         for boolean variables and values.
4104
4105 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
4106
4107         * sysdep.h: Include the stdbool.h/_Bool/bool blurb from Autoconf.
4108
4109 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
4110
4111         * init.c (cmd_lockable_boolean): Removed.
4112
4113 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
4114
4115         * cookies.c (struct cookie): Use 1-bit bitfields for booleans
4116         which makes the structure takes less space at no cost in
4117         complexity.
4118
4119 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
4120
4121         * Makefile.in ($(OBJ)): Add the config.h dependency.
4122
4123 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
4124
4125         * openssl.c, connect.c, host.c: Replace instances of #ifdef
4126         ENABLE_DEBUG if (opt.debug) {...} #endif with IF_DEBUG {...}.
4127
4128         * main.c: Rename the IF_DEBUG defined here to WHEN_DEBUG.
4129
4130         * wget.h (IF_DEBUG): New macro.
4131         (DEBUGP): Define in terms of IF_DEBUG.
4132
4133 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
4134
4135         * http.c (gethttp): Only handle --set-cookies (and assert that
4136         cookie jar exists) if opt.cookies is true.  Failure to do so
4137         triggered the assert when --no-cookies was used and the server
4138         sent a Set-Cookie header.  Ouch!
4139
4140 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
4141
4142         * connect.c (select_fd): Expect select() to exist.
4143
4144         * utils.c (xsleep): Always use select() as sleep fallback on
4145         non-Windows platforms.
4146
4147         * ptimer.c: Delete the implementation of PTIMER_TIME.
4148
4149         * main.c: Assume existence of signal(), test for different signal
4150         names instead.
4151
4152         * cmpt.c: Better document reasons why certain functions are
4153         included.
4154
4155 2005-06-22  Hrvoje Niksic  <hniksic@xemacs.org>
4156
4157         * Makefile.in: Remove the manually maintained dependency list;
4158         make all object files depend on every header.
4159
4160 2005-06-20  Hrvoje Niksic  <hniksic@xemacs.org>
4161
4162         * hash.c: Rename "mapping" to "cell" to avoid confusion with the
4163         term "mapping" (or "map") sometimes being used for the entire hash
4164         table.  Also rename "non-empty" to "occupied" for easier reading
4165         of if (!NON_EMPTY (...)) ... .
4166
4167 2005-06-20  Hrvoje Niksic  <hniksic@xemacs.org>
4168
4169         * main.c, ptimer.c, sysdep.h, utils.c: Use #elif to simplify reading of
4170         chained if-else-else-else-... statements.
4171
4172 2005-06-20  Hrvoje Niksic  <hniksic@xemacs.org>
4173
4174         * all: Return type of signal handlers is `void'.  Include signal.h
4175         unconditionally.
4176
4177         * all: Don't explicitly cast values returned by malloc.  We no
4178         longer support ancient compilers that don't declare malloc, and we
4179         never supported C++ builds.
4180
4181 2005-06-19  Hrvoje Niksic  <hniksic@xemacs.org>
4182
4183         * all: Don't declare errno.  Include both time.h and sys/time.h,
4184         as long as sys/time.h exists.  Don't dereference function pointers
4185         when invoking the functions they point to.
4186
4187         * cmpt.c (memmove): Remove function mandated by C89.
4188         (strerror): Ditto.
4189         (strstr): Ditto.
4190
4191         * all: Undo the K&R-ization changes from 2005-05-03.
4192
4193         * all: Remove support for K&R compilers: use C89 function
4194         declarations, remove definition of PARAMS, remove support for
4195         varargs, and remove ansi2knr.  Assume the presence of time.h,
4196         string.h, and other headers mandated by C89.
4197
4198 2005-06-19  Hrvoje Niksic  <hniksic@xemacs.org>
4199
4200         * init.c (cmd_lockable_boolean): Don't recognize literal "2" and
4201         "-1" values; unlike 0 and 1, those should never be exposed to the
4202         user.  Update the error message to be more self-consistent, as
4203         proposed by Benno Schulenberg.
4204
4205 2005-06-18  Hrvoje Niksic  <hniksic@xemacs.org>
4206
4207         * http.c (gethttp): Don't free "head" before using it to save
4208         headers.
4209
4210 2005-06-18  Hrvoje Niksic  <hniksic@xemacs.org>
4211
4212         * http.c (gethttp): When -E is in use, check for file existence
4213         after appending ".html" to the name and modify the file name if
4214         necessary.
4215
4216 2005-06-17  Hrvoje Niksic  <hniksic@xemacs.org>
4217
4218         * connect.c (socket_has_inet6): Removed.
4219
4220         * host.c (lookup_host): Don't use the AI_ADDRCONFIG getaddrinfo
4221         hint.
4222
4223 2005-06-16  Hrvoje Niksic  <hniksic@xemacs.org>
4224
4225         * init.c (cmd_lockable_boolean): Improve the error message so it
4226         lists the more useful values first.
4227
4228 2005-06-15  Hrvoje Niksic  <hniksic@xemacs.org>
4229
4230         * http.c (gethttp): Also report the system error when the POST
4231         data file is missing.
4232
4233 2005-06-15  Benno Schulenberg  <benno@nietvergeten.nl>
4234
4235         * ftp.c, http.c, connect.c, cookies.c, html-url.c, init.c, res.c:
4236         Gettext-ize messages that were previously missed.
4237
4238 2005-06-15  Hrvoje Niksic  <hniksic@xemacs.org>
4239
4240         * host.h (ip_address): Remove the trailing comma from the type
4241         enum in the no-IPv6 case.
4242
4243         * main.c (struct cmdline_option): Remove the trailing comma from
4244         the enum.
4245
4246         Reported by Jens Schleusener.
4247
4248 2005-05-30  Hrvoje Niksic  <hniksic@xemacs.org>
4249
4250         * url.c (strpbrk_or_eos): Check for a recent GCC version before
4251         using the statement-as-expression extension.
4252
4253 2005-05-30  Hrvoje Niksic  <hniksic@xemacs.org>
4254
4255         * http.c (gethttp): Don't attempt to "skip short body" if we're
4256         issuing a HEAD request (in which case the response head is not
4257         followed by a body).
4258
4259 2005-05-30  Hrvoje Niksic  <hniksic@xemacs.org>
4260
4261         * init.c (cmd_spec_header): Don't split the string along the
4262         commas using cmd_vector; just append the new value using
4263         vec_append instead.
4264
4265         * utils.c (vec_append): New function.
4266
4267 2005-05-27  Andreas Beckmann  <debian@abeckmann.de>
4268
4269         * html-url.c (tag_handle_link): Mark the content from the <link
4270         src="..."> tag as expecting HTML.
4271
4272 2005-05-24  Hrvoje Niksic  <hniksic@xemacs.org>
4273
4274         * http.c (http_atotm): Document the origin of the "cookie date"
4275         format.
4276
4277 2005-05-21  Hrvoje Niksic  <hniksic@xemacs.org>
4278
4279         * init.c (setval_internal): Report exact command name alongside
4280         the "display name".
4281
4282 2005-05-18  Hrvoje Niksic  <hniksic@xemacs.org>
4283
4284         * cookies.c (update_cookie_field): Explicitly cast -1 to time_t to
4285         cope with systems where time_t is unsigned.
4286
4287         * cookies.c: Remove unnecessary casts to time_t from values
4288         already of that type.
4289
4290 2005-05-17  Hrvoje Niksic  <hniksic@xemacs.org>
4291
4292         * ftp.c (ftp_loop_internal): Same here.
4293
4294         * http.c (http_loop): Don't clobber the file when -c is specified
4295         and the first attempt to retrieve the file fails.
4296
4297 2005-05-16  Hrvoje Niksic  <hniksic@xemacs.org>
4298
4299         * openssl.c (ssl_check_certificate): Print all issues with a
4300         certificate.
4301
4302 2005-05-16  Hrvoje Niksic  <hniksic@xemacs.org>
4303
4304         * ftp-basic.c: Don't xfree() the line returned by ftp_response if
4305         the returned code is not FTPOK.
4306
4307 2005-05-16  Hrvoje Niksic  <hniksic@xemacs.org>
4308
4309         * init.c (cleanup): Don't free the non-existent opt.ftp_acc.  Free
4310         the SSL-related stuff.
4311
4312 2005-05-16  Hrvoje Niksic  <hniksic@xemacs.org>
4313
4314         * ftp.c (print_length): Consistently print \n at end of the
4315         "Length" line.
4316
4317 2005-05-14  Hrvoje Niksic  <hniksic@xemacs.org>
4318
4319         * openssl.c (ssl_connect): Announce the beginning and the end of
4320         the SSL handshake when in debug mode.
4321
4322         * wget.h (PTR_FORMAT): New macro for easier printing of pointer
4323         values.  Use %0*lx along with PTR_FORMAT instead of %p.
4324
4325 2005-05-14  Hrvoje Niksic  <hniksic@xemacs.org>
4326
4327         * http.c (gethttp): Would forget to close the connection when
4328         keep_alive was not used.
4329
4330 2005-05-13  Hrvoje Niksic  <hniksic@xemacs.org>
4331
4332         * openssl.c (pattern_match): Document the code that decides
4333         whether "*" matches ".".
4334
4335 2005-05-12  Hrvoje Niksic  <hniksic@xemacs.org>
4336
4337         * ftp-ls.c (ftp_index): Use %d to print the port number, which is
4338         now int.
4339         From Steven M. Schweda's VMS patches.
4340
4341 2005-05-12  Hrvoje Niksic  <hniksic@xemacs.org>
4342
4343         * url.c (rewrite_shorthand_url): Don't rewrite "https://host" to
4344         "ftp://https//host" when SSL is not used.
4345
4346 2005-05-11  Hrvoje Niksic  <hniksic@xemacs.org>
4347
4348         * openssl.c (ssl_check_server_identity): Renamed to
4349         ssl_check_certificate because it does more than just checking the
4350         server's identity.
4351         (ssl_check_certificate): Tell the user about
4352         --no-check-certificate.
4353
4354 2005-05-11  Hrvoje Niksic  <hniksic@xemacs.org>
4355
4356         * openssl.c (ssl_init): Always use SSL_VERIFY_NONE, so that the
4357         handshake finishes even if the certificate is invalid.  That way
4358         ssl_check_server_identity can provide better diagnostics on why
4359         the verification failed.
4360
4361 2005-05-11  Hrvoje Niksic  <hniksic@xemacs.org>
4362
4363         * openssl.c (pattern_match): New function.
4364         (ssl_check_server_identity): Treat peer certificate common name as
4365         wildcard.
4366
4367 2005-05-10  Hrvoje Niksic  <hniksic@xemacs.org>
4368
4369         * openssl.c (ssl_check_server_identity): Print certificate subject
4370         and issuer.
4371
4372 2005-05-10  Hrvoje Niksic  <hniksic@xemacs.org>
4373
4374         * res.c (res_register_specs): Correctly pass pointers to
4375         hash_table_get_pair.
4376
4377 2005-05-10  Hrvoje Niksic  <hniksic@xemacs.org>
4378
4379         * http.c (gethttp): Call ssl_check_server_identity.
4380
4381         * openssl.c (ssl_check_server_identity): New function, verifies
4382         that the host name in the certificate matches the actual host
4383         name.
4384         (verify_cert_callback): Removed, since it didn't do anything
4385         except returning the preverify_ok argument.
4386
4387         * connect.c (fd_transport_context): Allow retrieval of the context
4388         pointer registered with fd_register_transport.
4389
4390 2005-05-09  Hrvoje Niksic  <hniksic@xemacs.org>
4391
4392         * openssl.c (verify_cert_callback): Renamed from verify_callback.
4393         Always return the received "ok" value.  Print the X509 name in
4394         debug mode.
4395         (ssl_init): Enable partial writes in SSL context.
4396
4397 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
4398
4399         * http.c (http_loop): Check for wildcards in the URL path
4400         component, not in the whole URL.
4401
4402         * ftp.c (ftp_loop): Check for wildcards in URL path before
4403         unescaping, so the users can escape globbing metacharacters with %
4404         escapes.
4405
4406 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
4407
4408         * init.c (run_command): Correctly interpret the return value of
4409         parse_line.
4410         (commands): Re-alphabetize.
4411
4412 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
4413
4414         * netrc.c (parse_netrc): Explicitly check for assignment != NULL
4415         to silence warning from Borland C.
4416
4417         * url.c (sync_path): Don't unnecessarily increment p.
4418         (url_parse): Don't unnecessarily set url_encode to NULL just
4419         prior to return from the function.
4420
4421 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
4422
4423         * log.c (escnonprint_internal): Place variable declarations
4424         before other statements.
4425
4426 2005-05-08  Hrvoje Niksic  <hniksic@xemacs.org>
4427
4428         * html-url.c: Include recur.h.
4429
4430         * http.c (request_new): Define as accepting no args.
4431
4432 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
4433
4434         * url.c (strpbrk_or_eos): Made inline.  Use strchr(s, '\0') for
4435         finding the NUL char position.
4436
4437 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
4438
4439         * url.c (decide_copy_method): Renamed to char_needs_escaping.
4440         Since it now returns only two possible values, change it to return
4441         boolean (int).
4442
4443 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
4444
4445         * ftp-basic.c (ftp_request): Prevent newlines in VALUE causing
4446         inadvertent sending of multiple FTP commands.
4447
4448 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
4449
4450         * url.c (decide_copy_method): Never cause reencode_escapes to
4451         decode % escapes; it is too intrusive and breaks some servers.
4452
4453 2005-05-07  Hrvoje Niksic  <hniksic@xemacs.org>
4454
4455         * http.c (gethttp): When tunnelling SSL traffic over proxy with
4456         CONNECT, we're really talking to the remote server directly.
4457         Because of this, the request-line argument must be the URL path
4458         rather than the whole URL, as it would be when using regular
4459         proxies.
4460         Reported by Charles Lane.
4461
4462 2005-05-06  Hrvoje Niksic  <hniksic@xemacs.org>
4463
4464         * init.c (cmd_spec_useragent): Allow empty User-Agent.
4465
4466         * http.c (gethttp): Don't print "unknown authentication scheme"
4467         for failed Basic authentication.
4468         (SET_USER_AGENT): Don't set user-agent if opt.useragent is empty.
4469         (gethttp): Use alloca for allocation of www_authenticate.
4470
4471 2005-05-06  Hrvoje Niksic  <hniksic@xemacs.org>
4472
4473         * main.c (print_help): Fix wording of --secure-protocol help text.
4474
4475 2005-05-06  Hrvoje Niksic  <hniksic@xemacs.org>
4476
4477         * cmpt.c (strstr): Updated from glibc 2.3.5.
4478
4479 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
4480
4481         * http.c (http_atotm): Zero out the whole struct tm being passed
4482         to strptime.
4483
4484 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
4485
4486         * main.c (main): Propagate option name to setoptval.
4487
4488         * init.c (setoptval): Accept another argument, OPTNAME.  Propagate
4489         that argument as the option name independently of the actual
4490         command, determined by command_by_name(com).
4491
4492 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
4493
4494         * init.c (parse_line): Make the return value indicate whether
4495         there was a syntax error or a setter failed.
4496         (run_wgetrc): Return an indication on whether an error has been
4497         encountered.
4498         (initialize): Abort if there have been errors running either
4499         .wgetrc file.
4500
4501 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
4502
4503         * log.c (copy_and_escape): Slightly reduce code repetition between
4504         the two loops.
4505
4506 2005-05-05  Charles C.Fu  <ccwf@bacchus.com>
4507
4508         * utils.c (proclist): Strip leading slash when calling fnmatch
4509         too, otherwise wildcard comparisons always fail.
4510
4511 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
4512
4513         * utils.c (touch): Set access time to current time.
4514
4515 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
4516
4517         * url.c (url_unescape): Don't unescape %00, it effectively
4518         truncates the string.
4519
4520 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
4521
4522         * log.c (copy_and_escape): Replace the FOR_URI argument with a
4523         slightly more general mechanism for specifying different kinds of
4524         escape.
4525
4526 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
4527
4528         * ftp-basic.c (ftp_response): Fix printing FTP server response.
4529
4530 2005-05-05  Hrvoje Niksic  <hniksic@xemacs.org>
4531
4532         * retr.c (limit_bandwidth_reset): Reset sleep_adjust.
4533         (limit_bandwidth): Don't allow huge "adjustment" values that
4534         result from being suspended for a while.
4535
4536 2005-05-04  Hrvoje Niksic  <hniksic@xemacs.org>
4537
4538         * wget.h: If gettext was found but libtintl.h wasn't, declare
4539         gettext's return type to avoid type mismatches.
4540
4541 2005-05-03  Hrvoje Niksic  <hniksic@xemacs.org>
4542
4543         * url.c (url_parse): Rename label `error' to avoid conflict with
4544         identifier.
4545
4546         * retr.c (fd_read_body): Rename label `out' to avoid conflict with
4547         identifier.
4548         (fd_read_hunk): Use explicit double constant.
4549         (retrieve_from_file): Don't use string concatenation.
4550         (sleep_between_retrievals): Make sure xsleep is called with a
4551         `double' argument.
4552         (no_proxy_match): Define as static, like it is declared.
4553
4554         * progress.c (bar_create): Use 0.0 instead of 0 because K&R
4555         compilers can't automatically promote it.
4556
4557         * http-ntlm.c (ntlm_output): Replace \xHH sequences with \OOO for
4558         the sake of old compilers.
4559
4560         * ftp.c (ftp_loop_internal): Don't use string concatenation.
4561
4562         * http.c (request_send): Use explicit double constants when
4563         calling fd_read and fd_write.
4564         (post_file): Ditto.
4565         (gethttp): Ditto.
4566         (skip_short_body): Ditto.
4567
4568         * ftp-basic.c: When calling fd_write, specify the last argument as
4569         a `double' constant for the sake of K&R compilers which don't see
4570         the prototype and therefore can't promote it to double
4571         automatically.
4572
4573         * cookies.c (cookie_jar_load): Rename abort label to abort_cookie
4574         to avoid name conflict in K&R compilers.
4575
4576 2005-04-29  Hrvoje Niksic  <hniksic@xemacs.org>
4577
4578         * ptimer.c (posix_init): Since we allow _POSIX_MONOTONIC_CLOCK==0,
4579         it is not enough to check for _POSIX_MONOTONIC_CLOCK-0, we must
4580         also check for defined(_POSIX_MONOTONIC_CLOCK).
4581
4582 2005-04-28  Hrvoje Niksic  <hniksic@xemacs.org>
4583
4584         * ftp.c, hash.c, connect.c, host.c, http.c: Remove unreached code,
4585         such as "break" following return or abort.
4586
4587 2005-04-28  Hrvoje Niksic  <hniksic@xemacs.org>
4588
4589         * init.c (commands): Wrap the use of opt.random_file in #ifdef
4590         HAVE_SSL.
4591
4592 2005-04-28  Hrvoje Niksic  <hniksic@xemacs.org>
4593
4594         * http.c (gethttp): Correctly set the user agent.
4595
4596 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
4597
4598         * init.c (cmd_spec_useragent): Free the old value of
4599         opt.useragent before setting the new one.
4600
4601 2005-04-27  Mauro Tortonesi  <mauro@ferrara.linux.it>
4602
4603         * main.c: Map --ftp-password, --http-password and --proxy-password to
4604         the new ftppassword, httppassword and proxypassword commands
4605         respectively.  Document the --user and --password options in the help
4606         string.
4607
4608 2005-04-27  Mauro Tortonesi  <mauro@ferrara.linux.it>
4609
4610         * ftp.c: Add support for --user and --password.
4611
4612         * http.c: Add support for --user and --password.
4613
4614         * init.c: Deprecated ftppasswd, httppasswd, login, passwd and
4615         proxypasswd commands.  Added ftppassword, ftpuser, httppassword,
4616         password, proxypassword and user commands.
4617
4618         * main.c: Renamed --ftp-passwd to --ftp-password.  Added --ftp-user,
4619         --http-password, --password, --proxy-password and --user.  Deprecated
4620         --http-passwd and --proxy-passwd.  Added documentation for new options
4621         and removed documentation for deprecated options in the help string.
4622
4623         * options.h (struct options): Added user and passwd members to handle
4624         --user and --password respectively.  Renamed ftp_acc and ftp_pass
4625         members to ftp_user and ftp_passwd for consistency.
4626
4627 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
4628
4629         * main.c (print_help): Advertise "DER", not "ASN1".
4630
4631 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
4632
4633         * openssl.c (init_prng): Disable the weak random seed by default.
4634
4635         * http.c (gethttp): Simplify SSL initialization; disable SSL when
4636         anything goes wrong with the initialization.
4637
4638         * options.h (struct options): New option opt.random_file.
4639
4640 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
4641
4642         * init.c: Wrap private key commands in IF_SSL.
4643
4644 2005-04-27  Hrvoje Niksic  <hniksic@xemacs.org>
4645
4646         * openssl.c (ssl_init): Ditto.
4647
4648         * options.h (struct options): Allow separate specification of key
4649         type and certificate type.
4650
4651         * init.c (cmd_spec_cert_type): Provide a "der" synonym for "asn1"
4652         certificate encoding.
4653
4654 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
4655
4656         * openssl.c: Renamed "gen_sslfunc.c" to "openssl.c" and
4657         "gen_sslfunc.h" to "openssl.h".  This reflects the intent of
4658         openssl.c encapsulating the OpenSSL-specific code.
4659
4660 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
4661
4662         * init.c: Renamed "closure" (a synonym for context in some
4663         cultures) to "place", which more accurately reflects the usage.
4664
4665 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
4666
4667         * gen_sslfunc.c (ssl_init): Use default locations for loading the
4668         certificate bundles.
4669         (ssl_init_prng): Disable the cryptographically weak PRNG
4670         initialization fallback.
4671
4672         * init.c: Renamed SSL command-line arguments and wgetrc commands.
4673         (defaults): Check the server certificate by default.
4674
4675 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
4676
4677         * cookies.c (cookie_handle_set_cookie): Delete the part of the
4678         path after the trailing slash.
4679
4680         * http.c (gethttp): Call cookie_handle_set_cookie with path that
4681         begins with '/'.
4682
4683 2005-04-26  Hrvoje Niksic  <hniksic@xemacs.org>
4684
4685         * http.c (gethttp): Call skip_short_body only if keep_alive is in
4686         use.
4687         (gethttp): Send the User-Agent header with the CONNECT request as
4688         well.
4689
4690 2005-04-25  Hrvoje Niksic  <hniksic@xemacs.org>
4691
4692         * main.c (option_data): Removed support for the undocumented flag
4693         --use-proxy.
4694
4695 2005-04-25  Hrvoje Niksic  <hniksic@xemacs.org>
4696
4697         * main.c (option_data): Don't treat -Y as a boolean switch; treat
4698         it as a value switch instead, so "-Y off" continues to work.
4699
4700 2005-04-24  Hrvoje Niksic  <hniksic@xemacs.org>
4701
4702         * utils.c (aprintf): Delete unreachable statement.
4703
4704 2005-04-24  Hrvoje Niksic  <hniksic@xemacs.org>
4705
4706         * host.c (cmp_prefer_ipv4): New function.
4707         (cmp_prefer_ipv6): New function.
4708         (lookup_host): Use the appropriate comparator according to
4709         opt.prefer_family.
4710
4711         * init.c: New option prefer_family.
4712
4713         * host.c (is_valid_ipv6_address): Spell NS_* constants in lower
4714         case to avoid clash with system headers.
4715         (lookup_host): Reorder the addresses so that IPv4 ones come first.
4716
4717         * utils.c (stable_sort): New function.
4718
4719 2005-04-24  Hrvoje Niksic  <hniksic@xemacs.org>
4720
4721         * connect.c (retryable_socket_connect_error): Return 0 for
4722         ENETUNREACH and EHOSTUNREACH.
4723
4724 2005-04-23  Hrvoje Niksic  <hniksic@xemacs.org>
4725
4726         * cmpt.c: Reenable the memmove implementation for systems that
4727         lack it.
4728
4729         * http.c (gethttp): Store the "authorized" state of the persistent
4730         connection.
4731         (request_remove_header): New function.
4732         (gethttp): Don't send the "Basic" authentication if the connection
4733         is already authorized.
4734
4735 2005-04-23  Hrvoje Niksic  <hniksic@xemacs.org>
4736
4737         * utils.c (base64_encode): Treat input as unsigned chars.
4738         Required for correct encoding of binary stuff.
4739
4740 2005-04-23  Hrvoje Niksic  <hniksic@xemacs.org>
4741
4742         * http-ntlm.c: Format the function definitions in an
4743         ansi2knr-friendly fashion.
4744
4745 2005-04-22  Hrvoje Niksic  <hniksic@xemacs.org>
4746
4747         * http.c (gethttp): Handle multiple WWW-Authentication headers,
4748         only one of which is recognized.  Those are sent by IIS with NTLM
4749         authorization.
4750         (create_authorization_line): Propagate information whether
4751         authorization is finished.
4752         (gethttp): Only stop authorization when it's really finished, not
4753         after fixed two steps.
4754
4755 2005-04-21  Hrvoje Niksic  <hniksic@xemacs.org>
4756
4757         * gen_sslfunc.c (ssl_init): Fix warning message text; mark the
4758         message as translatable.
4759
4760 2005-04-21  Hrvoje Niksic  <hniksic@xemacs.org>
4761
4762         * main.c (print_help): Print the EGD option outside the cluster of
4763         SSL options.
4764
4765 2005-04-21  Hrvoje Niksic  <hniksic@xemacs.org>
4766
4767         * http-ntlm.c (ntlm_output): Fix setting the domain.
4768         Suggested by Sami Krank.
4769
4770 2005-04-20  Mauro Tortonesi  <mauro@ferrara.linux.it>
4771
4772         * connect.c: Set IPV6_V6ONLY socket option when -6 switch is used.
4773
4774 2005-04-20  FUJISHIMA Satsuki  <sf@FreeBSD.org>
4775
4776         * http.c (request_set_header): Fix the check whether a new header
4777         needs to be allocated.
4778
4779 2005-04-18  Hrvoje Niksic  <hniksic@xemacs.org>
4780
4781         * utils.c (base64_encode): Use the parameter order that makes more
4782         sense.  Return the length of the base64 written.  Updated all
4783         callers.
4784
4785 2005-04-17  Hrvoje Niksic  <hniksic@xemacs.org>
4786
4787         * http.c (request_set_header): Free NAME when VALUE is NULL and
4788         freeing the header name is requested.
4789
4790 2005-04-17  Hrvoje Niksic  <hniksic@xemacs.org>
4791
4792         * snprintf.c (fmtstr): Declare VALUE as const char *.
4793         Based on patch by Russ Allbery.
4794
4795 2005-04-17  Hrvoje Niksic  <hniksic@xemacs.org>
4796
4797         * snprintf.c (fmtfp): More correct handling of significant digit
4798         count with %g -- 0.002 has one significant digit, not three.
4799
4800 2005-04-16  Hrvoje Niksic  <hniksic@xemacs.org>
4801
4802         * retr.c (fd_read_body): Respect read timeout with non-interactive
4803         or no progress gauge -- treat ETIMEDOUT specially only when
4804         progress_interactive.
4805         Reported by FUJISHIMA Satsuki.
4806
4807 2005-04-16  FUJISHIMA Satsuki  <sf@FreeBSD.org>
4808
4809         * http.c (gethttp): Don't use HTTP/1.0 persistent connections over
4810         proxy.
4811
4812 2005-04-16  Hrvoje Niksic  <hniksic@xemacs.org>
4813
4814         * snprintf.c: Use the PARAMS macro to handle prototypes.  Write
4815         function definitions in the ansi2knr-friendly way.
4816         (fmtstr): If string precision is specified, don't read VALUE past
4817         it.
4818         (dopr): Actually print %g and %e formats.
4819         (fmtfp): Fix a bug that caused 0.01 to be printed as 0.1.
4820         (fmtfp): Use LLONG in floating point conversions to be able to
4821         convert more digits.
4822         (fmtfp): Interpret precision as number of significant digits with
4823         %g.
4824         (fmtfp): Omit trailing decimal zeros with %g.
4825
4826         * snprintf.c: Don't include <ctype.h> because none of it is used.
4827         Include strings.h/string.h, as per Autoconf.
4828
4829 2005-04-15  Hrvoje Niksic  <hniksic@xemacs.org>
4830
4831         * ptimer.c: Use _POSIX_TIMERS - 0 > 0, which handles the case when
4832         _POSIX_TIMERS is defined but empty, as well as the case when it is
4833         undefined.  Do the same with the check for _POSIX_MONOTONIC_CLOCK.
4834         Suggested by Larry Jones.
4835
4836 2005-04-15  Hrvoje Niksic  <hniksic@xemacs.org>
4837
4838         * ptimer.c: Check that _POSIX_TIMERS is defined as well as > 0.
4839         Problem reported by Steven M. Schweda.
4840
4841 2005-04-14  Hrvoje Niksic  <hniksic@xemacs.org>
4842
4843         * http.c (skip_short_body): Print the skipped body data in debug
4844         mode.
4845         (skip_short_body): Don't skip more than 4k of body data.
4846         (skip_short_body): Return whether the skipping was successful.
4847         (gethttp): If skip_short_body failed, invalidate the connection.
4848
4849 2005-04-12  Gisle Vanem  <giva@bgnett.no>
4850
4851         * ftp.c (getftp): Ditto.
4852
4853         * http.c (gethttp): Open the output file in binary mode.
4854
4855 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
4856
4857         * hash.c: Conditionalize including config.h on HAVE_CONFIG_H
4858         instead of on STANDALONE.
4859
4860 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
4861
4862         * gen_sslfunc.c (ssl_print_errors): Made static.
4863         (ssl_print_errors): Eliminate potentially dangerous fixed-size
4864         error buffer.  Passing NULL to ERR_error_string causes it to use
4865         its own static buffer, which is fine for our purposes.
4866
4867         * gen_sslfunc.c: Include gen_sslfunc.h.  Make the declarations of
4868         ssl_init and ssl_conect match the actual definitions.
4869         (ssl_connect): Simply return a boolean, the SSL context is no
4870         longer useful as a return value.
4871
4872         * retr.c: Don't include SSL headers; we don't need them.
4873
4874 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
4875
4876         * config-post.h: Don't define _VA_LIST under Solaris; it breaks
4877         compilation with GCC 3.4 under Solaris 10.  (It was defined to
4878         avoid a warning with previous versions of GCC.)
4879
4880 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
4881
4882         * xmalloc.c (register_ptr): Warn the user to increase SZ prior to
4883         aborting.
4884
4885 2005-04-11  Hrvoje Niksic  <hniksic@xemacs.org>
4886
4887         * convert.c (convert_cleanup): Free converted_files.
4888
4889 2005-04-10  Hrvoje Niksic  <hniksic@xemacs.org>
4890
4891         * wget.h (DEBUGP): Use __builtin_expect to give a hint to GCC that
4892         opt.debug is false in the vast majority of cases.
4893
4894 2005-04-10  Hrvoje Niksic  <hniksic@xemacs.org>
4895
4896         * config-post.h: Declare alloca as void *, not char *.
4897
4898 2005-04-09  Hrvoje Niksic  <hniksic@xemacs.org>
4899
4900         * recur.c (download_child_p): When -p is used, (temporarily)
4901         ignore accept/reject rules for HTMLs, even when they are at the
4902         maximum recursion depth.  That is because with -p we are, if
4903         necessary, overstepping the max. depth to get the requisites.
4904
4905 2004-06-12  Larry Jones <lawrence.jones@ugsplm.com>
4906
4907         * recur.c (download_child_p): Correct the logic in check number 6:
4908         test opt.reclevel (not DEPTH) against INFINITE_RECURSION.
4909
4910 2005-04-09  Hrvoje Niksic  <hniksic@xemacs.org>
4911
4912         * url.c: Use "static const" in preference to "const static".
4913         Sun's cc warns that "storage class after type is obsolescent".
4914
4915         * url.c (urlchr_table): Don't mark ~ as unsafe, too many broken
4916         web sites are confused when ~ is changed to %7E.  Their servers
4917         redirect /%7Efoo/ to /~foo/, which Wget again accesses using %7E,
4918         causing further redirections, therefore looping infinitely.  See
4919         Debian bug #301624 for an example.
4920
4921 2005-04-09  Hrvoje Niksic  <hniksic@xemacs.org>
4922
4923         * alloca.c: Include wget.h to be able to use xmalloc.  In addition
4924         to defining malloc to xmalloc, also define free to xfree.
4925
4926 2005-04-09  Hrvoje Niksic  <hniksic@xemacs.org>
4927
4928         * http-ntlm.c (ntlm_output): Use "char", not "unsigned char" for
4929         ntlmbuf.  Our base64 functions accept char anyway.
4930         (ntlm_output): Join up the format string, since we nominally
4931         support K&R compilers.
4932         (ntlm_output): Ditto.
4933
4934 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
4935
4936         * ptimer.c: Use Windows timers under Cygwin, whose POSIX timer
4937         implementation is incomplete.
4938
4939 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
4940
4941         * ptimer.c (struct ptimer): Remove the unused initialized field.
4942
4943         * ptimer.c: Renamed function parameters from WT (which used to
4944         stand for wget_timer or wtimer) to PT.
4945
4946 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
4947
4948         * ptimer.c (posix_init): Be smarter about choosing clocks.  In
4949         decreasing order of preference, use CLOCK_MONOTONIC,
4950         CLOCK_HIGHRES, and CLOCK_REALTIME.
4951         (ptimer_allocate): Removed.
4952
4953         * ptimer.c: Refactor the code by cleanly separating the
4954         architecture-dependent code from the architecture-independent
4955         code.
4956
4957 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
4958
4959         * ptimer.c (ptimer_init): Explicitly check that
4960         _POSIX_MONOTONIC_CLOCK is *both* defined and >=0.  (Undefined
4961         symbols are >=0.)
4962
4963 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
4964
4965         * ptimer.c (ptimer_diff): Fix typo affecting Windows build.
4966
4967 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
4968
4969         * ptimer.c (ptimer_init): In fact, _POSIX_MONOTONIC_CLOCK needs to
4970         be >= 0.
4971
4972         * ptimer.c (ptimer_init): Check whether _POSIX_MONOTONIC_CLOCK is
4973         defined instead of whether it's greater than 0.  glibc defines it
4974         to 0, but still makes it available via sysconf.
4975
4976 2005-04-08  Hrvoje Niksic  <hniksic@xemacs.org>
4977
4978         * mswindows.c (str_to_int64): Rename OVERFLOW and UNDERFLOW to
4979         INT64_OVERFLOW and INT64_UNDERFLOW, since those names are used.
4980
4981 2005-04-07  Hrvoje Niksic  <hniksic@xemacs.org>
4982
4983         * ptimer.c: New file.  Move the "wtimer" functions from utils.c to
4984         this file and rename them to ptimer_.
4985
4986 2005-04-07  Hrvoje Niksic  <hniksic@xemacs.org>
4987
4988         * host.c (NO_ADDRESS): Define NO_ADDRESS only after the system
4989         headers have been included.
4990
4991 2005-04-06  Hrvoje Niksic  <hniksic@xemacs.org>
4992
4993         * http.c (pconn): Include NTLM data, which is per-connection.
4994         (known_authentication_scheme_p): Recognize NTLM authorization.
4995         (create_authorization_line): Call ntlm_input and ntlm_output.
4996
4997         * http-ntlm.c: New file, donated by Daniel Stenberg and originally
4998         written for curl, heavily modified for Wget.
4999
5000         * utils.c (base64_encode): Relocated from http.c, since it is now
5001         used by http-ntlm.c, and will possibly be used elsewhere.
5002         (base64_decode): New function, originally based on code from GNU
5003         recode.
5004
5005 2005-04-02  Hrvoje Niksic  <hniksic@xemacs.org>
5006
5007         * ftp.c (ftp_loop): Ditto.
5008
5009         * ftp-basic.c (ftp_pasv): Use the xzero shorthand for memset(0).
5010         (ftp_lpsv): Ditto.
5011
5012 2005-04-05  Mauro Tortonesi  <mauro@ferrara.linux.it>
5013
5014         * Makefile.in: removed string_t.c from list of source files.
5015
5016 2005-04-04  Mauro Tortonesi  <mauro@ferrara.linux.it>
5017
5018         * string_t.c: Removed.
5019
5020         * string_t.h: Removed.
5021
5022 2005-04-02  Hrvoje Niksic  <hniksic@xemacs.org>
5023
5024         * url.c (rewrite_shorthand_url): Only accept recognized schemes.
5025         That way "foo:80" will correctly be rewritten to "http://foo:80"
5026         instead of left unchanged and ultimately rejected because of
5027         "unsupported scheme foo".
5028
5029 2005-03-31  Hrvoje Niksic  <hniksic@xemacs.org>
5030
5031         * utils.c (number_to_string): Avoid explicit 64-bit constants;
5032         construct them by multiplication at compile-time.
5033
5034         * utils.c, elsewhere: Don't append "L" to 32-bit integer
5035         constants; we aren't really compilable on 16-bit systems anyway.
5036
5037         * hash.c (prime_size): Remove primes larger than 2^31, but include
5038         2^31-1, which is prime.
5039
5040 2005-03-30  Hrvoje Niksic  <hniksic@xemacs.org>
5041
5042         * utils.c (string_set_to_array): New function.
5043
5044         * convert.c: Replace the use of "slists" with sets/hash-tables,
5045         which in fact suit the intended purpose much better.
5046         downloaded_html_list is removed altogether.
5047
5048 2005-03-29  Hrvoje Niksic  <hniksic@xemacs.org>
5049
5050         * ftp.h (enum): Rename GLOBALL, GETALL, and GETONE to
5051         GLOB_GLOBALL, GLOB_GETALL, and GLOB_GETONE to avoid conflict with
5052         Linux headers.
5053
5054 2005-03-29  Hrvoje Niksic  <hniksic@xemacs.org>
5055
5056         * utils.c (numdigit): More correct handling of negative numbers.
5057
5058 2005-03-21  Hrvoje Niksic  <hniksic@xemacs.org>
5059
5060         * http.c (gethttp): Print the human-readable size.
5061
5062         * ftp.c (getftp): Print the human-readable size of the file to be
5063         downloaded.
5064
5065         * utils.c (human_readable): New function.
5066
5067         * utils.c: Renamed "legible" to "with_thousand_seps",
5068         "legible_large_int" to "with_thousand_seps_large", and "legible_1"
5069         to "add_thousand_seps".
5070
5071 2005-03-21  Hrvoje Niksic  <hniksic@xemacs.org>
5072
5073         * http.c (gethttp): Inhibit persistent connections when talking to
5074         proxies, as mandated by RFC 2068.
5075
5076 2005-03-20  Hrvoje Niksic  <hniksic@xemacs.org>
5077
5078         * url.c (unescape_single_char): New function.
5079         (url_escape_dir): Use it to unescape slashes in directory
5080         components.
5081         (url_string): Escape unsafe chars in host name, except for the ':'
5082         charaters, which can appear in IPv6 addresses.
5083
5084         * main.c (main): Don't access the cookie jar directly.
5085
5086         * log.c (escnonprint_internal): Correctly calculate the needed
5087         string size.  Don't forget the buffer's new size after having
5088         reallocated it.
5089         (log_cleanup): New function.  Free the escnonprint ring data.
5090
5091         * init.c (cleanup): Don't free the cookie jar explicitly, it is
5092         now done by http_cleanup.
5093         (cleanup): opt.user_headers is now a vector, free it with
5094         free_vec.
5095
5096         * http.c (gethttp): Make sure to free the request data, the status
5097         message, and the response data before returning from the function.
5098         (save_cookies): New function.
5099         (http_cleanup): Free the cookie jar here.
5100
5101         * hash.c: Renamed string_hash to hash_string and ptrhash to
5102         hash_pointer.  Exported hash_pointer.
5103
5104         * xmalloc.c: Organized malloc_table (previously malloc_debug) as a
5105         simple EQ hash table.  register_ptr and unregister_ptr are now of
5106         O(1) complexity.
5107
5108         * xmalloc.c: Renamed "*_debug" to debugging_* and "*_real" to
5109         checking_*.
5110
5111 2005-03-12  Hrvoje Niksic  <hniksic@xemacs.org>
5112
5113         * utils.c (debug_test_md5): Moved to gen-md5.c.
5114
5115         * mswindows.h: Don't declare inet_ntop, since we don't use it.
5116
5117         * mswindows.h: For consistency, also wrap closesocket, it being
5118         a Winsock call.
5119
5120         * mswindows.h: Don't declare sleep and usleep; we're defining
5121         xsleep now.
5122
5123         * mswindows.h (mkdir): Don't special-case Borland C, _mkdir
5124         works there as well.
5125
5126         * host.c: Don't include winsock header files; the correct ones
5127         are already included by mswindows.h.
5128
5129         * mswindows.c (xsleep): Round toward the nearest millisecond
5130         in an attempt to avoid average short sleeps.
5131
5132         * utils.c (wtimer_granularity): Report correct values for
5133         Windows timers and for high-resolution timers.
5134
5135         * utils.c (wtimer_initialize_once): New function, called to
5136         initialize the timer frequency.
5137
5138         * utils.c: Replace the use of GetSystemTime with high-resolution
5139         counters under Windows.  When high-resolution counters are
5140         unavailable, use GetTickCount().
5141
5142 2005-03-15  Hrvoje Niksic  <hniksic@xemacs.org>
5143
5144         * retr.c (fd_read_body): Undo the 2004-11-18 change.  Instead,
5145         always be "exact".
5146
5147 2005-03-17  Hrvoje Niksic  <hniksic@xemacs.org>
5148
5149         * ftp-basic.c (ftp_login): Don't free the string if ftp_response
5150         returned an error status because the line didn't get allocated in
5151         the first place.
5152
5153 2005-03-15  Hrvoje Niksic  <hniksic@xemacs.org>
5154
5155         * http.c (read_http_response_head): Limit the response size to 64k
5156         bytes.
5157
5158         * retr.c (fd_read_hunk): Accept a MAXSIZE argument that limits the
5159         number of bytes the function is allowed to allocate.
5160         (fd_read_line): Limit the line to 4096 bytes.
5161
5162 2005-03-12  Hrvoje Niksic  <hniksic@xemacs.org>
5163
5164         * wget.h: Include options.h after wgint has been defined.
5165
5166         * options.h (struct options): Declare options processed with
5167         cmd_bytes as wgint, not long.
5168
5169 2005-03-18  Hrvoje Niksic  <hniksic@xemacs.org>
5170
5171         * init.c (cmd_file): Use concat_strings.
5172
5173         * http.c (basic_authentication_encode): Use concat_strings.
5174
5175         * ftp-ls.c (ftp_index): Use concat_strings.
5176
5177         * ftp-basic.c (ftp_request): Use concat_strings.
5178
5179         * utils.c (concat_strings): New function.
5180
5181 2005-03-12  Hrvoje Niksic  <hniksic@xemacs.org>
5182
5183         * init.c (simple_atof): Handle negative numbers; skip whitespace
5184         before the number.
5185         (simple_atoi): Ditto.  Also, check for overflow and underflow.
5186         (cmd_number): Bail out on negative numbers.
5187         (parse_bytes_helper): Ditto.
5188
5189 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
5190
5191         * http.c (gethttp): Handle multiple Set-Cookie headers sent by
5192         remote server.
5193
5194 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
5195
5196         * init.c (defaults): Use passive FTP by default.
5197
5198 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
5199
5200         * mswindows.c: Provide wrappers to Winsock functions that set
5201         errno to WSAGetLastError() in case of failure.  Also provide a
5202         Windows-specific version of strerror.
5203
5204         * mswindows.h: Wrap calls to socket, bind, connect, recv, send,
5205         select, getsockname, getpeername, and setsockopt.
5206
5207 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
5208
5209         * url.c (url_parse): Reject port numbers larger than 65535.  We
5210         also check for overflow while parsing port numbers.
5211
5212 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
5213
5214         * utils.c (read_file): Don't use wgint for file size; LFS won't
5215         work since the file is mmap'ed as a whole.
5216
5217         * options.h: Don't include stdio.h.
5218
5219         * log.c: Ditto.
5220
5221         * init.c: Disambiguate assignment from non-zero test to avoid
5222         Borland C warning.
5223
5224         * http.c (response_new): Don't needlessly post-increment count.
5225
5226         * hash.c: Include stdio.h.
5227
5228         * gnu-md5.h: Don't include stdio.h.
5229
5230         * getopt.h (struct option): Always use const.
5231
5232         * ftp.c (getftp): Avoid unnecessary assignment to RES to avoid
5233         Borland C warning.
5234
5235         * ftp-ls.c: Disambiguate assignment from non-zero test to avoid
5236         Borland C warning.
5237
5238         * cmpt.c (strptime_internal): Don't initialize rp_backup when
5239         !_NL_CURRENT to avoid Borland C warning.
5240
5241 2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
5242
5243         * utils.c (fopen_excl): Fix parse error when O_BINARY is
5244         available.
5245
5246 2005-03-05  Hrvoje Niksic  <hniksic@xemacs.org>
5247
5248         * url.c (url_file_name): Don't allow hosts named ".." to be
5249         appended as path elements.
5250
5251 2005-03-03  Hrvoje Niksic  <hniksic@xemacs.org>
5252
5253         * retr.c (retrieve_url): Escape location header.
5254
5255         * http.c (print_server_response_1): Escape server response when
5256         printing it.
5257         (gethttp): Escape host name, status message, location header, and
5258         content type.
5259         (http_loop): Escape error message from server.
5260
5261         * host.c (lookup_host): Escape host name when printing it.
5262
5263         * ftp.c (getftp): Escape user name when printing it.
5264         (getftp): Escape remote file and directory for printing.
5265         (getftp): Escape server listing when printing it.
5266         (ftp_retrieve_list): Escape link name and file name.
5267         (ftp_retrieve_glob): Escape file name.
5268
5269         * ftp-basic.c (ftp_response): Escape server response when printing
5270         it.
5271
5272         * cookies.c (parse_set_cookies): Escape the cookie field when
5273         printing it.
5274         (parse_set_cookies): Escape contents of remote header.
5275         (cookie_handle_set_cookie): Escape host name and cookie domain.
5276
5277         * connect.c (connect_to_ip): Escape the host name.
5278
5279         * log.c (escnonprint): New function, used for printing strings
5280         coming from the server that possibly contain non-ASCII characters.
5281         (escnonprint_uri): Ditto.
5282
5283 2005-02-24  Hrvoje Niksic  <hniksic@xemacs.org>
5284
5285         * ftp.c (getftp): Ditto.
5286
5287         * http.c (gethttp): When we're not supposed to overwrite files,
5288         use fopen_excl to open the file and recompute the file name.
5289
5290         * log.c (redirect_output): Use unique_create to avoid a race
5291         condition.
5292
5293         * mswindows.c (fake_fork_child): Use unique_create.
5294
5295         * utils.c (fopen_excl): New function that opens a stdio stream
5296         with the O_EXCL flag (where available).
5297         (unique_create): New function, like unique_name, but also creating
5298         the file and returning a file pointer.
5299         (fork_to_background): Use unique_create to create the file
5300         immediately to avoid race condition with multiple instances of
5301         wget -b.
5302
5303 2005-02-24  Hrvoje Niksic  <hniksic@xemacs.org>
5304
5305         * host.c (lookup_host): Test for AI_ADDRCONFIG directly, instead
5306         of checking for HAVE_GETADDRINFO_AI_ADDRCONFIG.
5307
5308 2005-02-23  Hrvoje Niksic  <hniksic@xemacs.org>
5309
5310         * host.c (is_valid_ipv6_address): Move here from url.c.
5311         (lookup_host): If the address is numeric, don't print the
5312         "resolving..." line, don't set up DNS timeouts, and set the
5313         AI_NUMERICHOST hint, where available.
5314
5315 2005-02-26  Gisle Vanem  <giva@bgnett.no>
5316
5317         * utils.c: Use the nnnLL syntax under GCC.  Define struct_stat to
5318         struct _stati64 under __MINGW32__ as well as under MS VC.
5319
5320 2005-02-26  Hrvoje Niksic  <hniksic@xemacs.org>
5321
5322         * utils.c: Use the nnnI64 syntax for __int64 constants under all
5323         Windows compilers.
5324         (SPRINTF_WGINT): Use "%I64" under all Windows compilers.
5325
5326         * mswindows.h (WGINT_MAX): Use the nnnI64 syntax for
5327         __int64 constants under all Windows compilers.
5328         (struct_stat): Use `struct stati64' under Borland C.
5329         (fstat): Don't redefine to _fstati64 under Borland.
5330
5331         * mswindows.c: Define str_to_int64 under Borland C as well as
5332         under (older) Visual C.
5333
5334 2005-02-25  Hrvoje Niksic  <hniksic@xemacs.org>
5335
5336         * ftp.c (getftp): Initialize err to suppress compiler warning.
5337
5338 2005-02-24  Hrvoje Niksic  <hniksic@xemacs.org>
5339
5340         * ftp.c (ftp_expected_bytes): Fix bug that caused infloop because
5341         of not correctly skipping the '(' character.
5342
5343 2005-02-24  Hrvoje Niksic  <hniksic@xemacs.org>
5344
5345         * mswindows.c (wget_ftello): Removed.
5346
5347         * mswindows.h: Remove bogus definition of stat.
5348         (wget_ftello): Remove the leftover ftello replacement.
5349
5350 2005-02-20  Hrvoje Niksic  <hniksic@xemacs.org>
5351
5352         * mswindows.c (wget_ftello): Wget's replacement for ftello.
5353
5354         * utils.c (file_size): Use ftello where available.
5355
5356         * ftp-ls.c (ftp_parse_unix_ls): Use str_to_wgint to parse the file
5357         size.
5358         (ftp_parse_winnt_ls): Ditto.
5359
5360         * ftp-basic.c (ftp_size): Use str_to_wgint to convert number to
5361         wgint; pass 10 instead of 0 as the BASE argument.
5362
5363         * ftp.c (ftp_expected_bytes): Use str_to_wgint to parse the file
5364         size.
5365
5366         * sysdep.h (LARGE_INT_FMT): Use __int64 as LARGE_INT on
5367         MSVC/Windows; print it with "%I64".
5368
5369         * wget.h: Define a `wgint' type, normally aliased to (the possibly
5370         64-bit variant of) off_t.
5371
5372         * all: Use `wgint' instead of `long' for numeric variables that
5373         can hold file sizes.
5374
5375         * utils.c (number_to_string): Support printing of `wgint'
5376         argument.
5377         (number_to_static_string): New function.
5378
5379         * all: Replace printf("%ld", long_value) with printf("%s",
5380         number_to_static_string(wgint_value)).
5381
5382 2005-02-18  Mauro Tortonesi <mauro@ferrara.linux.it>
5383
5384         * main.c: Added the --ftp-passwd command line option.
5385
5386         * init.c: Renamed command passwd to ftppasswd.
5387
5388 2005-02-11  Mauro Tortonesi <mauro@ferrara.linux.it>
5389
5390         * string_t.c: Fixed a bug in do_escape and triggered escape of
5391         backslashes in string_escape to avoid ambiguities in the result
5392         string.
5393
5394 2005-02-10  Mauro Tortonesi <mauro@ferrara.linux.it>
5395
5396         * string.h: Renamed to string_t.h to fix a compilation conflict
5397         with the string.h header in the standard C library.
5398
5399         * string.c: Renamed to string_t.c for consistency with string.h.
5400
5401         * string_t.c: Ditto.
5402
5403         * string_t.h: Ditto.
5404
5405 2004-12-31  Mauro Tortonesi <mauro@ferrara.linux.it>
5406
5407         * string.c: New file.
5408
5409         * string.h: New file.
5410
5411         * Makefile.in: Added string.c to the list of modules to compile.
5412
5413         * main.c: Updated copyright.
5414
5415 2004-11-18  Ulf Harnhammar <ulf.harnhammar.9485@student.uu.se>
5416
5417         * ftp-ls.c: Fixed a problem in ftp_parse_winnt_ls that could allow a
5418         malicious remote FTP server to crash wget.
5419
5420 2004-11-18  Hans-Andreas Engel <engel@node.ch>
5421
5422         * http.c: Enable --convert-links (-k) when a single page is downloaded
5423         via --output-document (-O).
5424
5425 2004-11-18  Mauro Tortonesi <mauro@deepspace6.net>
5426
5427         * connect.c: Minor correction to the comment in front of fd_peek.
5428
5429 2004-11-18  Leonid Petrov <nouser@lpetrov.net>
5430
5431         * retr.c: Fix a timeout problem in fd_read_body when using http_proxy.
5432
5433 2004-11-15  YAMAZAKI Makoto <Yamazaki.Makoto@fujixerox.co.jp>
5434
5435         * netrc.c: Fix termination by assertion bug in netrc parsing.
5436
5437 2004-05-09  David Fritz  <zeroxdf@att.net>
5438
5439         * mswindows.c (fake_fork): Pass entire command line to the child
5440         process.
5441
5442 2004-03-31  Hrvoje Niksic  <hniksic@xemacs.org>
5443
5444         * http.c (gethttp): Fix typo: SCHEME_SSL -> SCHEME_HTTPS.
5445
5446 2004-03-30  Hrvoje Niksic  <hniksic@xemacs.org>
5447
5448         * http.c (gethttp): Send the Proxy-Authorization header over
5449         non-SSL connections too.
5450
5451 2004-03-25  David Fritz  <zeroxdf@att.net>
5452
5453         * mswindows.c (fake_fork_child): Ignore error code when
5454         OpenFileMapping() fails; assume it failed because the object does
5455         not exist.
5456
5457 2004-03-24  David Fritz  <zeroxdf@att.net>
5458
5459         * mswindows.c (fake_fork): New function.
5460
5461         * mswindows.c (fork_to_background): Use it.
5462
5463 2004-03-19  David Fritz  <zeroxdf@att.net>
5464
5465         * mswindows.c (ws_hangup): Incorporate old fork_to_background()
5466         code.  Add event name argument.
5467         (fork_to_backgorund): Now a simple wrapper around ws_hangup().
5468         (ws_handler): Correctly handle the case when neither CTRLC_BACKGND
5469         nor CTRLBREAK_BACKGND are defined.  Don't bother handling close,
5470         logoff, or shutdown events.  Call ws_hangup() with the correct
5471         event name; don't assume it was CTRL+Break.
5472
5473 2004-03-19  Hrvoje Niksic  <hniksic@xemacs.org>
5474
5475         * url.c (url_parse): Decode %HH sequences in host name.
5476
5477 2004-03-04  Hrvoje Niksic  <hniksic@xemacs.org>
5478
5479         * convert.c (local_quote_string): Quote "#" as "%23" and "%" as
5480         "%25" when creating links to local files.
5481
5482 2004-03-02  David Fritz  <zeroxdf@att.net>
5483
5484         * mswindows.c (ws_percenttitle): Guard against future changes by
5485         doing nothing if the proper variables have not been initialized.
5486         Clamp percentage value.
5487
5488 2004-03-04  Gisle Vanem  <giva@bgnett.no>
5489
5490         * retr.c (fd_read_body): Don't change console title if quiet.
5491
5492 2004-02-25  David Fritz  <zeroxdf@att.net>
5493
5494         * mswindows.c (set_sleep_mode): Remove argument and return value.
5495         Call GetModuleHandle() instead of LoadLibrary()/FreeLibrary() for
5496         kernel32.dll.  Use typedef for function-pointer.  Don't cast
5497         l-value.  Don't use dereference operator when calling through
5498         function-pointer.
5499         (ws_startup): Update call to set_sleep_mode().
5500         (ws_cleanup): Remove call to set_sleep_mode().
5501
5502 2004-02-23  David Fritz  <zeroxdf@att.net>
5503
5504         * http.c (http_loop): Ditto.
5505
5506         * ftp.c (ftp_loop_internal): Update call to ws_changetitle().
5507
5508         * main.c (main): Don't bother calling ws_changetitle().
5509
5510         * mswindows.h (ws_changetitle): Update prototype.
5511
5512         * mswindows.c (ws_changetitle): Remove second argument.  Use
5513         xfree_null().
5514         (ws_percenttitle): Only update title when percentage has changed.
5515
5516 2004-02-23  David Fritz  <zeroxdf@att.net>
5517
5518         * mswindows.h: Ditto.
5519
5520         * mswindows.c: Misc. formatting/comment tweaks throughout.
5521
5522 2004-02-20  David Fritz  <zeroxdf@att.net>
5523
5524         * main.c (print_help): Remove call to ws_help().
5525
5526         * mswindows.c (ws_help): Remove.
5527
5528         * mswindows.h (ws_help): Remove.
5529
5530 2004-02-16  David Fritz  <zeroxdf@att.net>
5531
5532         * init.c (home_dir): Use aprintf() instead of xmalloc()/sprintf().
5533         Under Windows, if $HOME is not defined, use the directory that
5534         contains the Wget binary instead of hard-coded `C:\'.
5535         (wgetrc_file_name): Under Windows, look for $HOME/.wgetrc then, if
5536         not found, look for wget.ini in the directory of the Wget binary.
5537
5538         * mswindows.c (ws_mypath): Employ slightly more robust methodology.
5539         Strip trailing path separator.
5540
5541 2004-02-06  Hrvoje Niksic  <hniksic@xemacs.org>
5542
5543         * http.c (gethttp): Respect --ignore-length.
5544         (gethttp): Inhibit keep-alive if --ignore-length is specified.
5545
5546 2004-02-06  Hrvoje Niksic  <hniksic@xemacs.org>
5547
5548         * connect.c (sockaddr_set_data): Zero out
5549         sockaddr_in/sockaddr_in6.  Apparently BSD-derived stacks need this
5550         when binding a socket to local address.
5551
5552 2004-02-04  Hrvoje Niksic  <hniksic@xemacs.org>
5553
5554         * hash.c: Make the file compilable outside Wget source tree when
5555         -DSTANDALONE is used.
5556
5557 2004-01-29  Hrvoje Niksic  <hniksic@xemacs.org>
5558
5559         * utils.c (determine_screen_width): Return 0 if not running on
5560         Windows or on a TIOCGWINSZ-capable system.
5561
5562 2004-01-28  David Fritz  <zeroxdf@att.net>
5563
5564         * utils.c (determine_screen_width): Correctly determine console
5565         width under Windows.
5566
5567 2004-01-28  Christian Biere  <christianbiere@gmx.de>
5568
5569         * progress.c (bar_set_params): Fixed syntax error when HAVE_ISATTY
5570         was undefined.
5571
5572         * ftp.c (ftp_loop_internal): Allocate a larger buffer in case
5573         "try" gets translated to something large.  Ditto in http_loop in
5574         http.c.
5575
5576         * http.c (response_header_copy): Don't write to buf[BUFSIZE].
5577
5578         * ftp-opie.c (skey_response): Eliminate unnecessary string
5579         concatenation; just call gen_md5_update twice.
5580
5581 2004-01-25  Hrvoje Niksic  <hniksic@xemacs.org>
5582
5583         * utils.c (xsleep): Don't call usleep with values larger than
5584         1,000,000.
5585
5586 2003-12-16  Hrvoje Niksic  <hniksic@xemacs.org>
5587
5588         * http.c (gethttp): Fix generation of `Content-Length'.
5589
5590 2003-12-15  Gisle Vanem  <giva@bgnett.no>
5591
5592         * url.c (url_skip_credentials): Fixed return value; 'url' if no
5593         credentials.
5594
5595 2003-12-14  Hrvoje Niksic  <hniksic@xemacs.org>
5596
5597         * url.c (url_skip_credentials): Return a pointer directly.
5598
5599 2003-12-14  Hrvoje Niksic  <hniksic@xemacs.org>
5600
5601         * url.c (url_file_name): Ditto.
5602         (parse_errors): Ditto.
5603
5604         * retr.c (retr_rate): Ditto.
5605
5606         * progress.c (create_image): Ditto.
5607
5608         * netrc.c (parse_netrc): Ditto.
5609
5610         * main.c (struct cmdline_option): Ditto.
5611         (redirect_output_signal): Ditto.
5612
5613         * init.c (commands): Ditto.
5614
5615         * ftp-ls.c (ftp_index): Ditto.
5616
5617         * cookies.c (check_domain_match): Declare the pointer to a literal
5618         string as `const'.
5619
5620 2003-12-12  Hrvoje Niksic  <hniksic@xemacs.org>
5621
5622         * retr.c (fd_read_body): Pass total size to progress_create, not
5623         the remaining amount.
5624
5625 2003-12-12  Hrvoje Niksic  <hniksic@xemacs.org>
5626
5627         * retr.c (fd_read_body): Don't fiddle with "interactive timeout"
5628         if read timeout is unset.
5629
5630 2003-12-12  Hrvoje Niksic  <hniksic@xemacs.org>
5631
5632         * connect.c (bind_local): Don't set the IPV6_V6ONLY option on the
5633         socket.
5634
5635 2003-12-06  Hrvoje Niksic  <hniksic@xemacs.org>
5636
5637         * url.c (url_file_name): Respect the setting of
5638         opt.protocol_directories.
5639
5640         * main.c (main): Only check for ret=='?' when longindex is unset.
5641         (option_data): New option --protocol-directories.
5642
5643 2003-12-06  Hrvoje Niksic  <hniksic@xemacs.org>
5644
5645         * ftp.c (getftp): Ditto.
5646
5647         * http.c (gethttp): Correctly calculate bandwidth as total data
5648         read divided with download time.
5649
5650         * retr.c (fd_read_body): Separate the return values for data
5651         written and read.
5652
5653 2003-12-05  Hrvoje Niksic  <hniksic@xemacs.org>
5654
5655         * http.c (H_REDIRECTED): Respect the HTTP/1.1 "303 See Other"
5656         response code.
5657         Suggested by Dan Razzell.
5658
5659 2003-11-30  Hrvoje Niksic  <hniksic@xemacs.org>
5660
5661         * retr.c (fd_read_body): Report the amount of data *written* as
5662         amount_read.  This is not entirely logical, but that's what the
5663         callers expect, and it's not easy to change.
5664
5665         * ftp.c (ftp_loop_internal): Ditto.
5666
5667         * http.c (http_loop): Be smarter about assigning restval; if we're
5668         in the nth pass of a download, simply use the information we have
5669         about how much data has been retrieved as restval.
5670
5671         * ftp.c (getftp): Ditto for FTP "REST" command.
5672
5673         * http.c (gethttp): When the server doesn't respect range, skip
5674         the first RESTVAL bytes of the read body.  Never truncate the
5675         output file.
5676
5677         * retr.c (fd_read_body): Support skipping initial STARTPOS octets.
5678
5679 2003-11-30  Hrvoje Niksic  <hniksic@xemacs.org>
5680
5681         * http.c (skip_short_body): Renamed skip_body to skip_short_body;
5682         don't bother calling fd_read_body.
5683
5684 2003-11-30  Hrvoje Niksic  <hniksic@xemacs.org>
5685
5686         * retr.c (fd_read_body): Sanitize arguments and document them
5687         better.  Make sure the timer is created and updated only if
5688         necessary.  Updated callers.
5689
5690 2003-11-30  Hrvoje Niksic  <hniksic@xemacs.org>
5691
5692         * http.c (skip_body): New function.
5693         (gethttp): Use it to skip the body of the responses we don't care
5694         to download.  That allows us to reuse the connection.
5695         (gethttp): Trust that the HEAD requests will not generate body
5696         data.
5697
5698         * retr.c (fd_read_body): Don't write to OUT if it's NULL.
5699
5700 2003-11-29  Hrvoje Niksic  <hniksic@xemacs.org>
5701
5702         * http.c (gethttp): Initialize SSL only the first time when SSL
5703         URL is downloaded.
5704
5705 2003-11-29  Hrvoje Niksic  <hniksic@xemacs.org>
5706
5707         * cookies.c (cookie_header): Only generate the contents of the
5708         header, not the leading "Cookie: " or the trailing "\r\n".
5709
5710         * http.c (gethttp): When adding headers specified with `--header',
5711         allow them to override the headers generated by Wget.
5712
5713         * init.c (cmd_spec_header): Made opt.user_headers a vector.
5714
5715         * http.c (request_new): New function.  Returns a request structure
5716         which can be modified in various ways, most notably by adding HTTP
5717         headers to the request.
5718         (request_set_header): New function for adding the header to the
5719         request.  If the header is already available, it gets replaced.
5720         (request_send): Construct and send the request.
5721         (gethttp): Use the request_* functions to generate the request.
5722
5723 2003-11-28  Hrvoje Niksic  <hniksic@xemacs.org>
5724
5725         * http.c (gethttp): Don't include the Proxy-Authorization header
5726         in the request tunneled through proxy.
5727
5728 2003-11-28  Hrvoje Niksic  <hniksic@xemacs.org>
5729
5730         * http.c (gethttp): Use the CONNECT handle to establish SSL
5731         passthrough through non-SSL proxies.
5732
5733 2003-11-28  Hrvoje Niksic  <hniksic@xemacs.org>
5734
5735         * init.c: Don't #include netinet/Winsock stuff.
5736
5737 2003-11-28  Hrvoje Niksic  <hniksic@xemacs.org>
5738
5739         * http.c: Deleted the old functions header_process,
5740         header_extract_number, header_exists, header_strdup,
5741         http_process_range, http_process_none, http_process_type, and
5742         http_process_connection.
5743
5744         * http.c (response_new): New function.
5745         (response_header_bounds): Ditto.
5746         (response_header_copy): Ditto.
5747         (response_header_strdup): Ditto.
5748         (response_status): Ditto.
5749         (gethttp): Use the new response_* functions to parse the response.
5750         Support HTTP/0.9 responses.
5751
5752 2003-11-27  Hrvoje Niksic  <hniksic@xemacs.org>
5753
5754         * progress.c (create_image): Don't calculate ETA if nothing has
5755         been downloaded yet, because it causes division by zero.
5756
5757 2003-11-27  Hrvoje Niksic  <hniksic@xemacs.org>
5758
5759         * connect.c (bind_local): Rename sa_len to addrlen because IRIX
5760         headers define sa_len as a macro.
5761
5762 2003-11-26  Hrvoje Niksic  <hniksic@xemacs.org>
5763
5764         * html-parse.c (convert_and_copy): Remove embedded newlines when
5765         AP_TRIM_BLANKS is specified.
5766
5767 2003-11-26  Hrvoje Niksic  <hniksic@xemacs.org>
5768
5769         * ftp.c: Set con->csock to -1 where rbuf_uninitialize was
5770         previously used.
5771
5772 2003-11-26  Hrvoje Niksic  <hniksic@xemacs.org>
5773
5774         * Makefile.in (http$o): Added the trailing backslash that was
5775         missing.
5776
5777 2003-11-21  Hrvoje Niksic  <hniksic@xemacs.org>
5778
5779         * headers.c: Removed.  The file is no longer relevant, now that no
5780         special handling of headers is done by the rbuf code.  Moved
5781         portions to http.c.
5782
5783 2003-11-21  Hrvoje Niksic  <hniksic@xemacs.org>
5784
5785         * rbuf.c: Removed.
5786
5787         * ftp-basic.c (ftp_response): Use fd_read_line.  No longer use
5788         struct rbuf.  Updated all callers.
5789
5790         * http.c (gethttp): Use fd_read_head to read all the headers in
5791         one go.
5792         (next_header): New function.
5793
5794         * retr.c (fd_read_line): New function: reads a line from FD,
5795         leaving the rest of the data unread.
5796         (fd_read_head): New function.
5797
5798         * connect.c (fd_peek): New function, implements peeking.
5799         (poll_internal): New function.
5800         (fd_read): Use it.
5801         (fd_write): Ditto.
5802         (fd_peek): Ditto.
5803         (fd_register_transport): Allow registering a "peeker" callback.
5804
5805 2003-11-20  Hrvoje Niksic  <hniksic@xemacs.org>
5806
5807         * connect.c: Renamed xread/xwrite/xclose to
5808         fd_read/fd_write/fd_close.  The "x" prefix is not appropriate
5809         because the semantics have diverged from read/write/close too
5810         significantly.  Updated all callers.
5811
5812 2003-11-20  Hrvoje Niksic  <hniksic@xemacs.org>
5813
5814         * connect.c (sock_write): It's not necessary to initialize RES.
5815
5816 2003-11-19  Hrvoje Niksic  <hniksic@xemacs.org>
5817
5818         * main.c (main): Don't reference opt.ipv4_only and opt.ipv6_only
5819         if IPv6 is disabled.
5820
5821 2003-11-19  Hrvoje Niksic  <hniksic@xemacs.org>
5822
5823         * connect.c (socket_has_inet6): Only compile it if IPv6 is enabled
5824         and AI_ADDRCONFIG is missing.
5825
5826 2003-11-18  Hrvoje Niksic  <hniksic@xemacs.org>
5827
5828         * gen_sslfunc.c (ssl_init_prng): Warn the user when using a weak
5829         random seed.
5830
5831 2003-11-18  Hrvoje Niksic  <hniksic@xemacs.org>
5832
5833         * host.c (address_list_contains): Renamed address_list_find to
5834         address_list_contains because its result is boolean.
5835
5836 2003-11-18  Hrvoje Niksic  <hniksic@xemacs.org>
5837
5838         * connect.c (select_fd): Return 1 if select is not available.
5839
5840 2003-11-17  Hrvoje Niksic  <hniksic@xemacs.org>
5841
5842         * connect.c (connect_to_host): Don't reference address list after
5843         releasing it.
5844
5845 2003-11-17  Hrvoje Niksic  <hniksic@xemacs.org>
5846
5847         * main.c (print_help): Fix alignment of FTP options output.
5848
5849 2003-11-17  Hrvoje Niksic  <hniksic@xemacs.org>
5850
5851         * host.c (lookup_host): Check for the ability to create IPv6
5852         sockets here.
5853
5854         * init.c (defaults): Don't auto-set --inet4-only on IPv6-less
5855         systems.
5856
5857 2003-11-16  Hrvoje Niksic  <hniksic@xemacs.org>
5858
5859         * main.c (print_help): Fix typo in `-O' help message.  Fix docs of
5860         -Y/--proxy.  Fix docs of `--cookies' and `--glob'.  Improve docs
5861         of --convert-links.  Fix docs of SSL options.
5862
5863 2003-11-16  Hrvoje Niksic  <hniksic@xemacs.org>
5864
5865         * ftp-basic.c: Don't include <arpa/inet.h> and others because
5866         they're no longer needed.
5867
5868 2003-11-16  Hrvoje Niksic  <hniksic@xemacs.org>
5869
5870         * main.c (main): Don't allow setting of both opt.ipv4_only and
5871         opt.ipv6_only.
5872
5873         * init.c (defaults): Mark opt.ipv4_only specially when set
5874         automatically.
5875
5876 2003-11-15  Hrvoje Niksic  <hniksic@xemacs.org>
5877
5878         * host.c (lookup_host): Use AI_ADDRCONFIG only if the family is
5879         unspecified.  This ensures that specifying `--no-inet4' on systems
5880         where IPv6 resolves, but doesn't work behaves the same regardless
5881         of the availability of AI_ADDRCONFIG.
5882
5883 2003-11-15  Hrvoje Niksic  <hniksic@xemacs.org>
5884
5885         * host.c: Don't refer to the now-removed function
5886         forget_host_lookup in the documentation of lookup_host.
5887
5888 2003-11-15  Hrvoje Niksic  <hniksic@xemacs.org>
5889
5890         * http.c (persistent_available_p): Correctly specify the endpoint
5891         argument to socket_ip_address.
5892         (gethttp): When printing the "reusing connection to..." message,
5893         specify the host name of the reused connection, not the current
5894         host name.  That makes more sense because it provides a useful
5895         piece of information -- we know to which host we're supposed to
5896         connect anyway!
5897
5898 2003-11-15  Hrvoje Niksic  <hniksic@xemacs.org>
5899
5900         * init.c: Make sure the options are in alphabetic order!
5901
5902         * host.c (lookup_host): Merge lookup_host_passive and lookup_host
5903         after all -- having both would result in some code duplication.
5904         (lookup_host): Set hints.ai_family to AF_INET if ipv4_only is
5905         requested.  Likewise, set it to AF_INET6 for ipv6_only.  Specify
5906         AI_ADDRCONFIG where available.
5907         (lookup_host): New flag LH_REFRESH that specifies that a cached
5908         entry for HOST should be refreshed.
5909         (cache_query): New function.
5910         (cache_store): Ditto.
5911         (cache_remove): Ditto.
5912         (forget_host_lookup): No longer necessary, replaced with static
5913         function cache_remove.
5914
5915 2003-11-14  Hrvoje Niksic  <hniksic@xemacs.org>
5916
5917         * main.c: Enable -4 and -6 only if IPv6 is enabled.
5918
5919 2003-11-14  Hrvoje Niksic  <hniksic@xemacs.org>
5920
5921         * connect.c (register_transport): Renamed from register_extended.
5922         Explain the intended usage.
5923
5924 2003-11-14  Hrvoje Niksic  <hniksic@xemacs.org>
5925
5926         * url.c (uri_merge): Merging "foo" and "bar" should result in
5927         "bar", not in "foo/bar".
5928         (path_simplify): Don't remove empty path elements; don't
5929         special-case leading slash.
5930         (path_simplify): Don't swallow ".."'s at the beginning of string.
5931         E.g. simplify "foo/../../bar" as "../bar", not as "bar".
5932         (append_uri_pathel): Defang ".." path element upon encountering
5933         it.
5934
5935 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
5936
5937         * http.c (persistent_available_p): Don't attempt to talk to two
5938         different SSL sites over the same secure connection.
5939
5940 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
5941
5942         * http.c (gethttp): Ditto.
5943
5944         * ftp.c (getftp): Use retryable_socket_connect_error instead of
5945         CONNECT_ERROR.
5946
5947         * wget.h (CONNECT_ERROR): Removed.
5948
5949         * connect.c (retryable_socket_connect_error): New function instead
5950         of unsupported_socket_family_error.
5951
5952 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
5953
5954         * wget.h (CONNECT_ERROR): Use it.
5955
5956         * connect.c (unsupported_socket_family_error): New function.
5957
5958 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
5959
5960         * connect.c (bind_local): Renamed bindport to bind_local; return
5961         the socket directly.  Updated callers.
5962         (accept_connection): Renamed acceptport to accept_connection;
5963         return the created socket directly.  Updated callers.
5964
5965 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
5966
5967         * init.c (defaults): Turn on opt.ipv4_only if we're compiling with
5968         IPv6, and AI_ADDRINFO is not available, and AF_INET6 sockets can't
5969         be created.
5970
5971 2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
5972
5973         * host.c (lookup_host): Document the fact that the addresses are
5974         returned in order.
5975
5976 2003-11-12  Hrvoje Niksic  <hniksic@xemacs.org>
5977
5978         * utils.c: Use limits.h only where available.
5979
5980         * hash.c: Use INVALID_PTR and INVALID_PTR_BYTE.  Include limits.h.
5981
5982 2003-11-11  Hrvoje Niksic  <hniksic@xemacs.org>
5983
5984         * main.c: Added options --inet4-only and --inet6-only.
5985
5986 2003-11-11  Hrvoje Niksic  <hniksic@xemacs.org>
5987
5988         * host.c (host_errstr): Use the more standard message "Unknown
5989         host".
5990
5991 2003-11-10  Hrvoje Niksic  <hniksic@xemacs.org>
5992
5993         * connect.c (connect_to_host): Use that flag to decide whether to
5994         re-resolve the host name.
5995
5996         * host.c (struct address_list): Added a flag that maintains
5997         whether the connection worked at some point.
5998
5999 2003-11-10  Hrvoje Niksic  <hniksic@xemacs.org>
6000
6001         * host.c (lookup_host): Special-case the numeric addresses only in
6002         the non-IPv6 case.
6003
6004 2003-11-10  Hrvoje Niksic  <hniksic@xemacs.org>
6005
6006         * connect.c (resolve_bind_address): Call lookup_host_passive.
6007         Make sure that opt.bind_address is resolved only once.
6008
6009         * host.c (lookup_host_passive): New function, handles "passive"
6010         lookups.
6011         (lookup_host): Remove the passive flags.  Remove the
6012         family-related flags -- use ip_default_family instead.
6013
6014 2003-11-09  Hrvoje Niksic  <hniksic@xemacs.org>
6015
6016         * html-url.c: Get URLs from <object data="...">.
6017
6018 2003-11-09  Hrvoje Niksic  <hniksic@xemacs.org>
6019
6020         * main.c (option_data): Specify the command to use for --mirror.
6021
6022 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
6023
6024         * cookies.c (cookie_handle_set_cookie): Specify exact match for
6025         unspecified domains.
6026
6027 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
6028
6029         * main.c (main): Removed one-letter options `-C', `-g', `-G', and
6030         `-s'.
6031
6032 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
6033
6034         * main.c (main): Add --dont-remove-listing for backward
6035         compatibility with previous versions.
6036         (print_help): Fix typo, spotted by Dennis Smit.
6037
6038 2003-11-08  Gisle Vanem  <giva@bgnett.no>
6039
6040         * ftp-basic.c: Support Windows-2000 ftp servers. Win-2000 *is*
6041         Win-NT 5.0 so calling it ST_WINNT is okay I guess.
6042
6043 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
6044
6045         * progress.c (update_speed_ring): Clear the speed ring when the
6046         download stalls.
6047
6048         * retr.c (get_contents): Specify 0.95s read timeout, so that the
6049         progress gauge can be updated even when data arrives very slowly
6050         or stalls.
6051
6052 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
6053
6054         * utils.c (wtimer_allocate): Bless the use of wtimer_read on a
6055         timer that has merely been allocated because get_contents() does
6056         that.
6057         (wtimer_update): Abort if the timer is not initialized.
6058
6059 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
6060
6061         * retr.c (get_contents): Pass the timer to limit_bandwidth().
6062
6063         * utils.c (wtimer_update): New function instead of wget_elapsed;
6064         just update the timer, but don't return anything.
6065         (wtimer_read): Read and return the last known value of the timer.
6066
6067 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
6068
6069         * http.c (persistent_available_p): Instead of matching all the
6070         addresses of HOST and last host, determine the peer's IP address
6071         with socket_ip_address and see if that address is one of those
6072         HOST resolves to.
6073
6074         * host.c (address_list_match_all): Removed.
6075         (address_list_find): New function, finds an IP address in the
6076         address list.
6077
6078         * ftp.c (ftp_do_pasv): Get the peer's address here, and pass it to
6079         ftp_epsv so it doesn't need to call getpeername.
6080
6081         * ftp-basic.c (ftp_port): Use socket_ip_address instead of
6082         getpeername.
6083         (ftp_lprt): Ditto.
6084
6085         * connect.c (socket_ip_address): Replaces conaddr, generalized to
6086         either get peer's or local address.
6087         (sockaddr_get_data): Made local to this file.
6088
6089 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
6090
6091         * hash.c (HASH_POSITION): Explicitly accept the hash function.
6092         (grow_hash_table): Extract ht->hash_function outside the loop.
6093         (hash_table_remove): Ditto.
6094         (hash_table_clear): Fill entries with 0xff to clear them.
6095         (hash_table_remove): Mark entries as deleted with the correct
6096         marker.
6097
6098 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
6099
6100         * http.c (persistent_available_p): No reason for the host lookup
6101         to be silent -- it's a lookup like any other.
6102
6103 2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
6104
6105         * connect.c (register_extended): Check that fd >= 0.
6106
6107 2003-11-07  Hrvoje Niksic  <hniksic@xemacs.org>
6108
6109         * connect.c (LAZY_RETRIEVE_INFO): Set LAST_INFO.
6110
6111 2003-11-07  Hrvoje Niksic  <hniksic@xemacs.org>
6112
6113         * hash.c (NON_EMPTY): Use the all-bit-set value as the marker that
6114         the field is empty.  This allows NULL pointer and 0 value to be
6115         used as keys, which is necessary for the connect.c code to work
6116         when fd==0.
6117         (hash_table_new): Fill mappings with 0xff.
6118         (grow_hash_table): Ditto.
6119
6120 2003-11-07  Hrvoje Niksic  <hniksic@xemacs.org>
6121
6122         * url.c (url_parse): Allow empty ports.
6123
6124 2003-11-07  Hrvoje Niksic  <hniksic@xemacs.org>
6125
6126         * main.c (print_help): Break the help string into multiple chunks.
6127         (cmdline_option): New option handler OPT_FUNCALL.  Generalized
6128         HANDLE_CMD to generic DATA.
6129         (option_data): Use the new OPT_FUNCALL feature.
6130
6131 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
6132
6133         * log.h: Declare log_init, log_close, and
6134         log_request_redirect_output here.
6135
6136 2003-11-05  Dennis Smit  <ds@nerds-incorporated.org>
6137
6138         * main.c: (main): added --preserve-permissions option.
6139
6140         * ftp.c (ftp_retrieve_list): added support for
6141         --preserve-permissions option.
6142
6143         * init.c: added support for --preserve-permission option.
6144
6145         * option.h: added support for --preserve-permission option.
6146
6147 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
6148
6149         * main.c (init_switches): New function.  Convert option_data to
6150         long_options and short_options, which can be fed to getopt_long.
6151         (main): Execute command-line options by consulting option_data.
6152
6153 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
6154
6155         * gen_sslfunc.c (ssl_read): Implement a more correct check for
6156         EINTR.
6157         (ssl_write): Ditto.
6158         (init_ssl): Use a global SSL context.
6159
6160 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
6161
6162         * connect.c (xclose): Free INFO even if it doesn't provide a
6163         closer.
6164
6165 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
6166
6167         * connect.c: Updated all callers of
6168         iread/ssl_iread/iwrite/ssl_iwrite to use xread and xwrite instead.
6169
6170         * rbuf.h (struct rbuf): Removed the SSL member because SSL is
6171         handled automatically by xread.
6172
6173         * hash.c (ptrhash): Made private.
6174         (ptrcmp): Ditto.
6175         (inthash): Removed.
6176
6177         * connect.c (select_fd): Don't set errno, leave it to the caller.
6178
6179         * gen_sslfunc.c (connect_ssl): Use register_extended to register
6180         SSL callbacks for communication with SSL-enabled endpoints.
6181         (ssl_read): New function.
6182         (ssl_write): Ditto.
6183         (ssl_poll): Ditto.
6184         (ssl_close): Ditto.
6185
6186         * connect.c (register_extended): New function -- register
6187         callbacks for basic socket operations.
6188         (xread): Ditto.
6189         (xwrite): Ditto.
6190         (xclose): Ditto.
6191         (sock_read): New function, default implementation for reading.
6192         (sock_write): Ditto for writing.
6193         (sock_poll): Ditto for polling.
6194         (sock_close): Ditto for closing.
6195
6196 2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
6197
6198         * connect.c (bindport): Fix compilation under pre-C99 compilers.
6199
6200 2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
6201
6202         * connect.c (connect_to_ip): More compact error checking.
6203         (bindport): Don't treat failed setsockopt as a fatal error.
6204
6205 2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
6206
6207         * connect.c (resolve_bind_address): Use a more accurate error
6208         message -- we're not binding to ANY, we're disabling bind
6209         altogether.
6210
6211 2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
6212
6213         * cookies.c (save_cookies_mapper): Respect the setting of
6214         keep-session-cookies.
6215         (cookie_jar_load): Import session cookies.
6216         Based on code submitted by Nicolas Schodet.
6217
6218         * utils.c (datetime_str): Use information in TM when it's
6219         non-NULL.
6220
6221         * main.c (main): New option `--keep-session-cookies'.
6222
6223 2003-11-04  Hrvoje Niksic  <hniksic@xemacs.org>
6224
6225         * Makefile.in (realclean): Delete config.h.in.
6226
6227 2003-11-04  Hrvoje Niksic  <hniksic@xemacs.org>
6228
6229         * config-post.h: New file, included from now autogenerated
6230         config.h.in.
6231
6232 2003-11-04  Hrvoje Niksic  <hniksic@xemacs.org>
6233
6234         * progress.c (progress_handle_sigwinch): Don't call
6235         determine_screen_width() from the signal handler.  Instead, just
6236         set a volatile variable.
6237         (bar_create): Check whether SIGWINCH was received.
6238         (bar_update): Ditto.
6239
6240         * sysdep.h: Define SYSTEM_FNMATCH only if HAVE_FNMATCH_H is true.
6241
6242 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
6243
6244         * utils.c (xsleep): New function.  Uses nanosleep where available,
6245         resuming sleeps interrupted by signals.  Updated callers of sleep
6246         and usleep to use xsleep.
6247
6248 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
6249
6250         * ftp-basic.c (ftp_login): Remove shadowing (and bogus)
6251         declaration of SEED.
6252
6253 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
6254
6255         * log.c (logvprintf): Documented better.  Renamed to
6256         log_vprintf_internal to avoid confusion with the public API
6257         functions logprintf and logputs.
6258
6259 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
6260
6261         * wget.h (N_): Don't parenthesize argument.
6262
6263 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
6264
6265         * host.h (ADDRESS_IPV4_DATA): Don't take the address of in.s_addr
6266         because that doesn't work on machines that define it as bitfield.
6267
6268 2003-11-03  Hrvoje Niksic  <hniksic@xemacs.org>
6269
6270         * connect.c (select_fd): Generalize the third argument into WAIT,
6271         so that the caller can request waiting for both read and write.
6272         Updated callers.
6273
6274 2003-11-02  Hrvoje Niksic  <hniksic@xemacs.org>
6275
6276         * html-url.c (cleanup_html_url): Destroy the hash tables, don't
6277         just call free on them.
6278         (init_interesting): Use hash_table_put instead of string_set_add
6279         because we don't need the strdup that the latter function
6280         performs.
6281
6282         * init.c (cleanup): Don't pass NULL to cookie_jar_delete.
6283
6284         * xmalloc.c (xfree_real): Abort when passed a NULL pointer.
6285         (xfree_debug): Print at the file and line of the offending call to
6286         free.
6287
6288 2003-11-02  Hrvoje Niksic  <hniksic@xemacs.org>
6289
6290         * wget.h: Retired the `boolean' type.  Moved the DEFAULT_LOGFILE
6291         define to log.h.  Moved the INFINITE_RECURSION define to recur.h.
6292
6293         * xmalloc.h: Renamed FREE_MAYBE to xfree_null and moved the
6294         definition from wget.h to xmalloc.h.
6295
6296 2003-11-02  Hrvoje Niksic  <hniksic@xemacs.org>
6297
6298         * html-parse.c (decode_entity): New function; split the decoding
6299         of entities here.
6300         (convert_and_copy): Use it to decode entities.
6301         (decode_entity): Handle the &apos entity.
6302         (decode_entity): Don't decode Latin 1 numeric entities.  Don't
6303         decode &#0.
6304
6305 2003-11-01  Hrvoje Niksic  <hniksic@xemacs.org>
6306
6307         * ftp-opie.c (calculate_skey_response): Use uint32_t instead of
6308         `unsigned long' for the cheksum array.  Document the function.
6309
6310 2003-11-01  Hrvoje Niksic  <hniksic@xemacs.org>
6311
6312         * connect.c (acceptport): Don't call select_fd when timeout is not
6313         requested.
6314
6315 2003-11-01  Hrvoje Niksic  <hniksic@xemacs.org>
6316
6317         * host.c: Removed the ip_default_family global variable.
6318
6319         * host.c (lookup_host): Document the function.  Fixed declaration
6320         of VEC.
6321
6322 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
6323
6324         * various: Use new macros xnew, xnew0, xnew_array, and xnew0_array
6325         in various places.
6326
6327 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
6328
6329         * wget.h: Move declarations of malloc and logging code to
6330         xmalloc.h and log.h respectively to unclutter this file.
6331         (STRDUP_ALLOCA): Made it side-effect free.
6332
6333         * xmalloc.h: New files.  Define macros xnew, xnew0, xnew_array,
6334         and xnew0_array.
6335
6336         * xmalloc.c: New file.  Move the xmalloc routines here.
6337
6338 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
6339
6340         * connect.c (sockaddr_set_data): Remove the broken code that
6341         checked for NULL address.
6342
6343 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
6344
6345         * host.c (address_list_from_single): Removed.
6346         (address_list_from_ipv4_addresses): Renamed from
6347         address_list_from_vector.
6348
6349 2003-10-31  Hrvoje Niksic  <hniksic@xemacs.org>
6350
6351         * sysdep.h (CLOSE): Don't call close on file descriptors less than
6352         0, i.e. on uncreated sockets.
6353
6354         * connect.c (resolve_bind_address): Work on struct sockaddr
6355         directly.
6356         (connect_to_host): Replacement for connect_to_many.  Resolve HOST
6357         and connect to any of its addresses.  If we can't connect and the
6358         host name lookup was cached, try to resolve it again.  This should
6359         fix problems with hosts behind dynamic DNS.  Updated all callers.
6360         (connect_to_ip): Replacement for connect_to_one.  Removed SILENT;
6361         added the argument PRINT instead.  Updated all callers.
6362         (set_connection_host_name): Removed.
6363
6364         * host.c (address_list_address_at): New function instead of
6365         address_list_copy_one. It returns a pointer to ip_address *, so
6366         it's not necessary to copy the data.
6367         (address_list_cached_p): New function.
6368         (forget_host_lookup): Ditto.
6369
6370         * connect.c: Got rid of the MSOCK global variable.  Made bindport
6371         return the local socket it creates.  Added a new argument to
6372         acceptport, the socket to call accept on.  Updated callers.
6373         (closeport): Removed.
6374
6375         * connect.c: Moved the sockaddr code from host.c to this file,
6376         because most of that stuff is used for connecting, and has nothing
6377         to do with host names anyway.
6378         (sockaddr_set_data, sockaddr_get_data): New functions, replace the
6379         old sockaddr_set_address, sockaddr_set_port, sockaddr_get_address,
6380         and sockaddr_get_port.
6381
6382 2003-10-30  Hrvoje Niksic  <hniksic@xemacs.org>
6383
6384         * sysdep.h: Use `S >= 8' rather than `S == 8' when looking for
6385         large integers.
6386
6387 2003-10-30  Hrvoje Niksic  <hniksic@xemacs.org>
6388
6389         * url.c (append_uri_pathel): New argument ESCAPED_P that says
6390         whether [B, E) is to be treated as URL-escaped or not.  If
6391         ESCAPED_P is false, don't unescape the region.
6392         (url_file_name): u->file is not URL-escaped.
6393
6394 2003-10-30  Hrvoje Niksic  <hniksic@xemacs.org>
6395
6396         * retr.c (retrieve_from_file): Use retrieve_tree for
6397         page-requisites.
6398
6399         * main.c (main): Don't define opt.recursive when -p is used.
6400         Instead, make sure that recursion is used for HTTP in that case.
6401
6402 2003-10-29  Hrvoje Niksic  <hniksic@xemacs.org>
6403
6404         * host.h: Defined accessors for elements of ip_address.  Updated
6405         all callers.
6406         (address_list_match_all): Use memcmp in the non-IPv6 case.
6407
6408         * wget.h (CONNECT_ERROR): Don't retry connecting if connect()
6409         returned EAFNOSUPPORT.
6410
6411 2003-10-27  Mauro Tortonesi <mauro@deepspace6.net>
6412
6413         * connect.h: changed bindport prototype and added the related
6414         BIND_ON_IPV4_ONLY and BIND_ON_IPV6_ONLY flags.
6415
6416         * connect.c: changed bindport and resolve_bind_address to allow
6417         protocol-version specific DNS resolution. modified conaddr,
6418         acceptport and connect_to_one to make use of struct
6419         sockaddr_storage and of the new ip_address structure.
6420
6421         * ftp-basic.c: added LPRT/LPSV (RFC1639) support, refactored
6422         PORT/PASV (RFC959) and EPRT/EPSV (RFC2428) support code.
6423
6424         * ftp.c: added the ftp_do_port and ftp_do_pasv functions to
6425         handle FTP over IPv6.
6426
6427         * ftp.h: changed prototype of ftp_epsv and added prototypes for
6428         ftp_lpsv, ftp_lprt and ftp_eprt.
6429
6430         * host.c: renamed the
6431         wget_sockaddr_set_address and wget_sockaddr_get_addr, and
6432         wget_sockaddr_{s,g}et_port couples to sockaddr_{s,g}et_address and
6433         sockaddr_{g,s}et_port respectively.  changed
6434         address_list_match_all, address_list_from_addrinfo sockaddr_len,
6435         pretty_print_address, lookup_host, sockaddr_{s,g}et_address and
6436         sockaddr_{g,s}et_port to make use of struct sockaddr_storage and
6437         of the new ip_address structure.  removed map_ipv4_to_ip and
6438         map_ip_to_ipv4.
6439
6440         * host.h: redefined structure ip_address and removed structure
6441         wget_sockaddr.
6442
6443 2003-10-26  Hrvoje Niksic  <hniksic@xemacs.org>
6444
6445         * sysdep.h: Include inttypes.h where available.
6446
6447         * host.c: Switch from u_int32_t to uint32_t.
6448
6449 2003-10-26  Hrvoje Niksic  <hniksic@xemacs.org>
6450
6451         * netrc.c (parse_netrc): Reset the QUOTE flag after the closing
6452         quote.
6453
6454 2003-10-25  Hrvoje Niksic  <hniksic@xemacs.org>
6455
6456         * url.c (is_valid_ipv6_address): Reformat to GNU coding style.
6457         Use enums for NS_IN* constants.  Use ISXDIGIT.
6458
6459         * convert.c (construct_relative): Document better how the function
6460         works.
6461
6462 2003-10-23  Hrvoje Niksic  <hniksic@xemacs.org>
6463
6464         * config.h.in: Deploy preprocessor magic to avoid Ultrix's
6465         <netdb.h> include <bitypes.h> which defines its own u_int32_t.
6466         Reported by Bernhard Simon.
6467
6468 2003-10-23  Hrvoje Niksic  <hniksic@xemacs.org>
6469
6470         * version.c: Bump version.
6471
6472 2003-10-23  Hrvoje Niksic  <hniksic@xemacs.org>
6473
6474         * url.c: Ditto.
6475
6476         * html-parse.c (advance_declaration): Don't use trailing comma in
6477         enum because older compilers don't support it.
6478
6479         * utils.c: Don't redefine HAVE_SIGSETJMP.
6480
6481 2003-10-16  Hrvoje Niksic  <hniksic@xemacs.org>
6482
6483         * convert.c (construct_relative): Don't handle absolute files
6484         specially -- for example, -P/tmp/foo shouldn't imply that
6485         converted files must refer to "/tmp/foo/..."!
6486
6487 2003-10-15  Hrvoje Niksic  <hniksic@xemacs.org>
6488
6489         * http.c: Consider status 307 a valid redirect.
6490
6491 2003-10-15  Philip Stadermann  <philip.stadermann@credativ.de>
6492
6493         * ftp.c (ftp_retrieve_glob): Correctly loop through the list whose
6494         elements might have been deleted.
6495
6496 2003-10-13  Hrvoje Niksic  <hniksic@xemacs.org>
6497
6498         * html-url.c (tag_handle_meta): Set the Refresh link to expect
6499         HTML.
6500         (append_one_url): Renamed to append_url.
6501
6502 2003-10-13  Hrvoje Niksic  <hniksic@xemacs.org>
6503
6504         * sysdep.h: Only define u_int32_t.
6505
6506 2003-10-11  Hrvoje Niksic  <hniksic@xemacs.org>
6507
6508         * utils.c (large_int_to_string): Use snprintf() to print the
6509         number.  This will work even on systems where libc doesn't
6510         understand %lld, but the compiler does, because it will use our
6511         snprintf replacement.
6512
6513         * init.c (parse_bytes_helper): New function.
6514         (cmd_bytes): Use it to parse bytes, but cast the result to long.
6515         (cmd_bytes_large): Ditto, but store the result to LARGE_INT.  Used
6516         for --quota so that --quota=10G works even on machines without
6517         long long.
6518
6519         * options.h (struct options): Declare quota as LARGE_INT.
6520
6521         * retr.c (downloaded_exceeds_quota): Removed.
6522         (downloaded_increase): Ditto.
6523         (total_downloaded_bytes): New variable, replaces opt.downloaded,
6524         which was the wrong place for it anyway.  Updated callers of
6525         downloaded_exceeds_quota and downloaded_increase to check this
6526         variable directly.
6527
6528         * sysdep.h: Get rid of VERY_LONG_TYPE.  Use LARGE_INT for the same
6529         purpose, defined as `long', `long long' or `double', depending on
6530         size of long and whether long long is available.
6531
6532 2003-10-11  Hrvoje Niksic  <hniksic@xemacs.org>
6533
6534         * sysdep.h: Also check size of short for int32_t.
6535
6536 2003-10-11  Hrvoje Niksic  <hniksic@xemacs.org>
6537
6538         * host.c (lookup_host): Use u_int32_t to store the result of
6539         inet_addr().  That removes the need for offset fiddling, caring
6540         about endian-ness, etc.
6541
6542         * sysdep.h: Define int32_t and u_int32_t if not available.
6543
6544 2003-10-11  Hrvoje Niksic  <hniksic@xemacs.org>
6545
6546         * ftp-basic.c (ftp_epsv): Use socklen_t * as the third argument to
6547         getpeername.
6548
6549         * config.h.in: Define socklen_t stub.
6550
6551         * host.c (sockaddr_len): Return socklen_t.
6552
6553         * connect.c (conaddr): Use socklen_t as the third argument to
6554         accept, getsockname, and connect.
6555
6556 2003-10-10  Hrvoje Niksic  <hniksic@xemacs.org>
6557
6558         * recur.c (retrieve_tree): Don't descend into documents that are
6559         not expected to contain HTML, regardless of their content-type.
6560
6561         * html-url.c (tag_url_attributes): Record which attributes are
6562         supposed to yield HTML links that can be followed.
6563         (tag_find_urls): Propagate that information to the caller through
6564         struct urlpos.
6565
6566 2003-10-10  Hrvoje Niksic  <hniksic@xemacs.org>
6567
6568         * hash.c (find_mapping): Return the next available mapping when
6569         the key is not found, not NULL.
6570         (hash_table_put): Use find_mapping to find the storage for the new
6571         data.
6572         (hash_table_put): Grow the table before exceeding maximum
6573         fullness, not afterwards.
6574
6575 2003-10-10  Hrvoje Niksic  <hniksic@xemacs.org>
6576
6577         * hash.c (hash_table_new): Slightly change the meaning of the
6578         first parameter.  Instead of being the minimum initial size, it is
6579         now the minimum number of items that the hash table can take
6580         without needing to resize.
6581
6582 2003-10-09  Hrvoje Niksic  <hniksic@xemacs.org>
6583
6584         * html-url.c (init_interesting): Initialize interesting_tags and
6585         interesting_attributes as hash tables.  This simplifies the code
6586         immensely because hash tables handle allocation and remove
6587         duplicates automatically.
6588         (find_tag): Removed.
6589         (collect_tags_mapper): Instead of calling find_tag, simply get the
6590         entry from interesting_tags hash table, which is both simpler and
6591         faster.
6592
6593 2003-10-09  Hrvoje Niksic  <hniksic@xemacs.org>
6594
6595         * hash.c (hash_table_get): Declare hash-table argument as const.
6596         (find_mapping): Ditto.
6597         (hash_table_get_pair): Ditto.
6598         (hash_table_contains): Ditto.
6599         (hash_table_count): Ditto.
6600
6601 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
6602
6603         * html-url.c (get_urls_html): Parse the appropriate flags to
6604         html-parse.c.
6605
6606         * html-parse.c (map_html_tags): Accept FLAGS from the caller
6607         instead of examining OPT.
6608
6609 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
6610
6611         * html-url.c (find_tag): Switch to binary search.
6612
6613 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
6614
6615         * main.c (print_help): Fix typo; stured -> stored.
6616
6617 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
6618
6619         * getopt.c: Add definitions of getopt_long and getopt_long_only.
6620
6621 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
6622
6623         * config.h.in: Renamed DEBUG to ENABLE_DEBUG.  ENABLE_DEBUG is, I
6624         think, a better name, because it implies that debugging output is
6625         merely possible, not "on by default", as might be construed from
6626         just DEBUG.
6627
6628 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
6629
6630         * ftp.c (has_insecure_name_p): Define it here.
6631
6632         * utils.c (has_wildcards_p): Define it here.
6633
6634         * sysdep.h: Declare fnmatch-related macros here, if not using
6635         system fnmatch().  Update .c files to not declare fnmatch.h
6636         directly.
6637
6638         * cmpt.c (fnmatch): Moved here.  Use it only under non-GNU libc.
6639
6640 2003-10-08  Hrvoje Niksic  <hniksic@xemacs.org>
6641
6642         * getopt.c: Newer version, imported from Free libit.
6643
6644 2003-10-07  Hrvoje Niksic  <hniksic@xemacs.org>
6645
6646         * cookies.c (struct cookie): Remove unused backpointer to cookie
6647         jar.
6648
6649 2003-10-07  Hrvoje Niksic  <hniksic@xemacs.org>
6650
6651         * cmpt.c (memmove): Comment out, since it's no longer used.
6652
6653         * cookies.c (cookie_jar_generate_cookie_header): Allocate room for
6654         chains in one pass.
6655         (find_chains_of_host): Assume that the caller has allocated DEST
6656         to be sufficiently large to take all the data.
6657         (eliminate_dups): Run through the array and eliminate dups on the
6658         fly instead of using memmove.
6659         (cookie_jar_process_set_cookie): Free cookie->domain before
6660         re-setting it.
6661
6662 2003-10-05  Gisle Vanem  <giva@bgnett.no>
6663
6664         * mswindows.c (set_sleep_mode): Fix type of
6665         _SetThreadExecutionState.
6666
6667 2003-10-05  Hrvoje Niksic  <hniksic@xemacs.org>
6668
6669         * utils.c (file_size): Return -1 if fopen() returns NULL.  Prior
6670         to this patch, wget --post-file=nosuchfile dumped core.
6671
6672 2003-10-04  Gisle Vanem  <giva@bgnett.no>
6673
6674         * mswindows.c (run_with_timeout): Use WaitForSingleObject to wait
6675         for thread termination.
6676
6677 2003-10-04  Hrvoje Niksic  <hniksic@xemacs.org>
6678
6679         * log.c: Use `...' in function definitions; ansi2knr will convert
6680         them to va_dcl.  This allowed removal of the ugly VA_START_1 and
6681         VA_START_2 macros.
6682
6683 2003-10-03  Gisle Vanem  <giva@bgnett.no>
6684
6685         * connect.c: And don't include them here.
6686
6687         * mswindows.h: Include winsock headers here.
6688
6689 2003-10-03  Hrvoje Niksic  <hniksic@xemacs.org>
6690
6691         * html-parse.c (convert_and_copy): Move variable declarations
6692         before statements.
6693
6694 2003-10-02  Gisle Vanem  <giva@bgnett.no>
6695
6696         * mswindows.c (run_with_timeout): For Windows: Run the 'fun' in a
6697         thread via a helper function. Continually query the thread's
6698         exit-code until finished or timed out.
6699
6700 2003-10-02  Hrvoje Niksic  <hniksic@xemacs.org>
6701
6702         * wget.h (XMALLOC_ARRAY): Removed.
6703         (ALLOCA_ARRAY): Ditto.
6704
6705         * html-parse.c: Renamed alloca_p to resized.
6706         (GROW_ARRAY): Renamed DO_REALLOC_FROM_ALLOCA to GROW_ARRAY and
6707         returned it to html-parse.c, since nothing else was using it.
6708
6709 2003-10-02  Hrvoje Niksic  <hniksic@xemacs.org>
6710
6711         * retr.c (retrieve_url): Initialize DUMMY storage for DT.  Caught
6712         by valgrind.
6713
6714 2003-10-02  Hrvoje Niksic  <hniksic@xemacs.org>
6715
6716         * html-parse.c (convert_and_copy): Handle numeric entities in
6717         hexadecimal, &#xHH.
6718         (convert_and_copy): Copy the contents directly to the pool without
6719         a stack-allocated intermediary.
6720
6721 2003-10-02  Hrvoje Niksic  <hniksic@xemacs.org>
6722
6723         * utils.c (alarm_set): New function; use either setitimer or alarm
6724         to set up the alarm.
6725         (alarm_cancel): New function; cancel the alarm set up by
6726         alarm_set.
6727         (run_with_timeout): Use them.
6728
6729 2003-10-01  Hrvoje Niksic  <hniksic@xemacs.org>
6730
6731         * url.c (url_parse): Don't leak memory when a reencoded URL turns
6732         out to be invalid.
6733
6734         * url.c (parse_errors): Mark error messages for translation.
6735         (url_error): Translate error messages returned to the caller.
6736
6737 2003-10-01  Hrvoje Niksic  <hniksic@xemacs.org>
6738
6739         * ftp.c (ftp_loop_internal): Initialize TMRATE to NULL to shut up
6740         the compiler.
6741
6742 2003-09-26  Gisle Vanem  <giva@bgnett.no>
6743
6744         * src/mswindows.c: Added ws_percenttitle() showing progress in the
6745         window titlebar. Called from retr.c. Secured ws_mypath().
6746
6747         * windows/config.h.ms: alloca() prototype not needed.  Removed
6748         "#undef ENABLE_NLS"; should be in Makefile IMHO. Moved
6749         WGET_USE_STDARG from mswindows.h to config.ms.h because of #ifdef
6750         in log.c. (MSVC's vararg.h and stdarg.h are incompatible).
6751
6752 2003-09-29  Aaron Hawley <Aaron.Hawley@uvm.edu>
6753
6754         * ftp.c (getftp): --spider option should now work with FTP
6755         downloads.
6756         (ftp_loop_internal): quiet reports and calculations of downloads
6757         when --spider option set, nor try deleting when --delete-after
6758         also set.
6759         (ftp_loop): --spider will skip HTML-ification of .listing file.
6760
6761 2003-09-26  Gisle Vanem  <giva@bgnett.no>
6762
6763         * mswindows.c (read_registry): Removed.
6764         (set_sleep_mode): New function.
6765         (windows_main_junk): Call it.
6766
6767 2003-09-26  Gisle Vanem  <giva@bgnett.no>
6768
6769         * mswindows.c (read_registry): Fix invocation of registry
6770         functions.
6771
6772         * mswindows.c (read_registry): Condition definitions of sleep and
6773         usleep with not HAVE_SLEEP and HAVE_USLEEP respectively.  Define
6774         HAVE_SLEEP and HAVE_USLEEP under __DMC__.
6775
6776 2003-09-24  Hrvoje Niksic  <hniksic@xemacs.org>
6777
6778         * url.c (url_escape_1): Revert unintentional change to lowercase
6779         xdigit escapes.
6780         (url_escape_dir): Document that this function depends on the
6781         output of url_escape_1.
6782
6783 2003-09-23  Hrvoje Niksic  <hniksic@xemacs.org>
6784
6785         * progress.c (create_image): Print the current ETA if we're done
6786         with the download.
6787         (create_image): Change '-' display char to '+' in the progress bar.
6788
6789         * Makefile.in (clean): Remove .libs.
6790
6791 2003-09-23  Hrvoje Niksic  <hniksic@xemacs.org>
6792
6793         * cookies.c (struct cookie): New flag domain_exact.
6794         (update_cookie_field): Skip leading dot in domain.
6795         (find_matching_chains): Match numeric addresses exactly; don't
6796         needlessly copy HOST to the stack.
6797         (matching_cookie): Added argument HOST.  If cookie->domain_exact
6798         is set, check that HOST is equal to cookie->domain.
6799         (cookie_jar_load): Only use TAB as delimiter.  Document the
6800         meaning of DOMAIN-FLAG.  Skip leading dot in domain.
6801         (cookie_jar_load): Don't ignore DOMAIN-FLAG -- instead, set
6802         domain_exact to true if DOMAIN-FLAG is false.
6803         (save_cookies_mapper): If domain_exact is false, prepend the
6804         domain with dot, like Mozilla does.
6805
6806 2003-09-22  Hrvoje Niksic  <hniksic@xemacs.org>
6807
6808         * progress.c (create_image): Print the initial part of the
6809         download with '-' characters, analogous to how dot progress prints
6810         the initial part with ','.
6811
6812         * hash.c (ptrhash): New function.
6813         (ptrcmp): Ditto.
6814         (hash_table_new): Default to identity hash table.
6815
6816 2003-09-22  Hrvoje Niksic  <hniksic@xemacs.org>
6817
6818         * safe-ctype.h (_sch_test): The cast of BIT to unsigned char was
6819         broken -- _sch_istable bitmasks are 16-bit, not 8-bit!  Cast BIT
6820         to unsigned short instead.
6821
6822 2003-09-22  Hrvoje Niksic  <hniksic@xemacs.org>
6823
6824         * url.c (path_simplify): Instead of calls to memmove, handle "./"
6825         and "../" by advancing pointers.
6826
6827 2003-09-22  Hrvoje Niksic  <hniksic@xemacs.org>
6828
6829         * retr.c (getproxy): Moved from url.c.
6830
6831         * convert.c: Split off link conversion from url.c into separate
6832         file.  Also included the book-keeping stuff from recur.c.
6833
6834 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
6835
6836         * init.c: Improved documentation of functions.
6837         (cmd_boolean): Attempt to make code that tries to avoid calling
6838         strcmp for "speed" a bit more readable.
6839
6840         * init.c (simple_atof): Report error on encountering non-digit,
6841         non-"." character.
6842         (simple_atoi): Replacement for myatoi(), calling interface
6843         compatible with simple_atof.  Updated myatoi's callers.
6844
6845 2003-09-21  Bertrand Demiddelaer  <bert@b3rt.org>
6846
6847         * url.c (path_simplify): Would read two bytes past the end of the
6848         string in the "./" case.
6849
6850 2003-09-21  Matthew J. Mellon  <mellon@tymenet.com>
6851
6852         * http.c (gethttp): Recognize content-type "application/xhtml+xml"
6853         as what Wget considers "text/html".
6854
6855 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
6856
6857         * connect.c (connect_with_timeout): Made timeout type double.
6858
6859         * options.h (struct options): New members read_timeout,
6860         dns_timeout, and connect_timeout.
6861         Use them.
6862
6863 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
6864
6865         * init.c (simple_atof): New function.
6866         (cmd_time): Use it.
6867         (cmd_bytes): Accept things like "1.5k" and such.  Use simple_atof
6868         to parse decimals.
6869
6870         * retr.c (limit_bandwidth): Adjust each sleep by the error of the
6871         previous one.
6872
6873 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
6874
6875         * main.c (main): Use setoptval() for setting the options.  Use
6876         run_command for `-e'.
6877
6878         * init.c (parse_line): Rewritten to return COMIND right away.
6879         Changed linkage to static.
6880         (run_wgetrc): Use the available comind when calling setval, so it
6881         doesn't have to be computed twice.
6882         (setval_internal): New function, runs the command's action without
6883         any error checking.
6884         (setoptval): New function, does what setval used to do, but exits
6885         in case of error.
6886         (run_command): New function.
6887
6888 2003-09-21  Hrvoje Niksic  <hniksic@xemacs.org>
6889
6890         * connect.c (select_fd): Change MAXTIME's type to double.  Handle
6891         its decimal part.
6892
6893         * retr.c (sleep_between_retrievals): In the random-wait case, use
6894         random_float() to wait between 0 and 2*opt.wait seconds.
6895
6896         * utils.c (run_with_timeout): Accept `double' timeouts.  Correctly
6897         handle timeout values in (0, 1) range.
6898         (random_float): New function.
6899
6900         * options.h (struct options): Change the types of wait, waitretry,
6901         and timeout to double.
6902
6903         * init.c (cmd_time): Accept floating point time.
6904
6905 2003-09-20  Hrvoje Niksic  <hniksic@xemacs.org>
6906
6907         * retr.c (get_contents): Cosmetic fixes.
6908
6909 2003-09-20  Hrvoje Niksic  <hniksic@xemacs.org>
6910
6911         * url.c (uri_merge): Get rid of uri_merge_1.
6912         (uri_merge): Merge "foo//", "bar" as "foo//bar", not "foo///bar",
6913         i.e. don't add an extra slash merely because BASE ends with two
6914         slashes.
6915         (parse_credentials): Renamed from parse_uname.  Rewrittern in
6916         standard [beg, end) calling style.
6917         (url_skip_credentials): Renamed from url_skip_uname.  Made static.
6918         (url_skip_credentials): Include # and ; as terminators.  Old code
6919         would mistakenly consider "http://foo.com#hniksic@iskon.hr" to
6920         contain a username.
6921         (url_skip_scheme): Removed because it was unused.
6922         (url_has_scheme): Require "scheme" to be at least one char long.
6923
6924 2003-09-19  Hrvoje Niksic  <hniksic@xemacs.org>
6925
6926         * url.c (url_file_name): Expect NULL dir_prefix.
6927
6928         * init.c (cmd_file): Use a macro to prevent multiple #ifdef
6929         WINDOWS.
6930         (defaults): Set dir_prefix to NULL by default.
6931
6932 2003-09-19  Hrvoje Niksic  <hniksic@xemacs.org>
6933
6934         * safe-ctype.h (_sch_test): Cast BIT to unsigned char, like latest
6935         gcc does.
6936
6937 2003-09-19  Hrvoje Niksic  <hniksic@xemacs.org>
6938
6939         * wget.h (BOUNDED_TO_ALLOCA): Evaluate PLACE only once.
6940         (ARRAY_SIZE): Renamed to countof.  All callers updated.
6941
6942 2003-09-19  Hrvoje Niksic  <hniksic@xemacs.org>
6943
6944         * main.c (main): New option --strict-comments.
6945
6946         * html-parse.c (find_comment_end): New function: simple BM search
6947         for "-->".
6948         (map_html_tags): Use it if looking at a comment and not in strict
6949         comments mode.
6950
6951 2003-09-17  Aurelien Marchand  <artaxerxes@users.sf.net>
6952
6953         * ftp.h: Added OS400 system in enum
6954         * ftp-basic.c: recognize OS400 systems
6955         * ftp.c: don't prepend the CWD if talking to OS400, since it
6956         breaks the change in library
6957
6958 2003-09-18  Hrvoje Niksic  <hniksic@xemacs.org>
6959
6960         * retr.c (get_contents): Pass the correct argument to ssl_iread.
6961
6962 2003-09-18  Hrvoje Niksic  <hniksic@xemacs.org>
6963
6964         * safe-ctype.h: Don't #define ctype.h macros to errors because
6965         that loses when someone #include's ctype.h after safe-ctype.h.
6966
6967 2003-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
6968
6969         * url.c: Undef U, W, C after use.
6970
6971 2003-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
6972
6973         * init.c (cmd_spec_restrict_file_names): Allow the OS setting to
6974         be augmented by ",nocontrol" which means don't escape the control
6975         characters, but otherwise keep OS settings.
6976
6977         * url.c (file_unsafe_char): Deleted.
6978         (append_uri_pathel): Query filechr_table directly.
6979         (filechr_table): Separated Unix, Windows, and control-unsafe
6980         characters.
6981
6982 2003-09-17  Hrvoje Niksic  <hniksic@xemacs.org>
6983
6984         * url.c (url_escape_1): New function.
6985         (url_escape): Use it.
6986         (sync_path): Handle pathological cases where u->file and u->dir
6987         contain really strange characters.
6988         (ENCODE): Deleted.
6989         (REENCODE): Deleted.
6990
6991 2003-09-16  Hrvoje Niksic  <hniksic@xemacs.org>
6992
6993         * url.c (url_file_name): Don't reallocate FNAME if the file
6994         doesn't exist, as is usually the case.
6995
6996         * utils.c (unique_name): New flag allow_passthrough.
6997
6998 2003-09-16  Hrvoje Niksic  <hniksic@xemacs.org>
6999
7000         * utils.c (wtimer_sys_diff): Convert the time difference to signed
7001         __int64, then to double.  This works around MS VC++ 6 which can't
7002         convert unsigned __int64 to double directly.
7003
7004 2003-09-16  Hrvoje Niksic  <hniksic@xemacs.org>
7005
7006         * Makefile.in (clean): Also remove the core.<number> files
7007         produced by recent Linux systems.
7008
7009 2003-09-16  Hrvoje Niksic  <hniksic@xemacs.org>
7010
7011         * http.c (post_file): Don't pad the file if it's not large
7012         enough.  Bail out instead.
7013
7014 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
7015
7016         * retr.c (get_contents): Reduce the buffer size to the amount of
7017         data that may pass through for one second.  This prevents long
7018         sleeps when limiting bandwidth.
7019
7020         * connect.c (connect_to_one): Reduce the socket's RCVBUF when
7021         bandwidth limitation to small values is requested.
7022
7023 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
7024
7025         * progress.c (update_speed_ring): Moved the speed ring update to a
7026         separate function and documented it better.
7027
7028         * progress.c: Use `double' for most timers to support granularity
7029         smaller than 1ms.
7030
7031 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
7032
7033         * wget.h (XDIGIT_TO_XCHAR): Implement as index into a literal
7034         string.
7035         (XDIGIT_TO_xchar): Ditto.
7036
7037 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
7038
7039         * utils.c: Change the type of timer-related functions from long to
7040         double, for better precision.  On machines supporting gettimeofday
7041         the timers now work with granularity of less than one millisecond.
7042
7043 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
7044
7045         * cookies.c (parse_set_cookies): Fixed the parser to handle more
7046         edge conditions.
7047         (test_cookies): New function, contains a test suite for
7048         parse_set_cookies.
7049
7050 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
7051
7052         * url.c (strpbrk_or_eos): Implement as a macro under Gcc.
7053
7054 2003-09-15  Hrvoje Niksic  <hniksic@xemacs.org>
7055
7056         * cookies.c (parse_set_cookies): Allow trailing space in
7057         set-cookies header.  Also, allow any amount of whitespace, not
7058         only one character.  Allow empty set-cookies header without
7059         spewing an error.
7060
7061 2003-09-14  Hrvoje Niksic  <hniksic@xemacs.org>
7062
7063         * url.c (append_uri_pathel): Use opt.restrict_file_names when
7064         calling file_unsafe_char.
7065
7066         * init.c: New command restrict_file_names.
7067
7068         * main.c (main): New option --restrict-file-names[=windows,unix].
7069
7070         * url.c (url_file_name): Renamed from url_filename.
7071         (url_file_name): Add directory and hostdir prefix here, not in
7072         mkstruct.
7073         (append_dir_structure): New function, does part of the work that
7074         used to be in mkstruct.  Iterates over path elements in u->path,
7075         calling append_uri_pathel on each one to append it to the file
7076         name.
7077         (append_uri_pathel): URL-unescape a path element and reencode it
7078         with a different set of rules, more appropriate for handling of
7079         files.
7080         (file_unsafe_char): New function, uses a lookup table to decide
7081         whether a character should be escaped for use in file name.
7082         (append_string): New utility function.
7083         (append_char): Ditto.
7084         (file_unsafe_char): New argument restrict_for_windows, decide
7085         whether Windows file names should be escaped in run-time.
7086
7087         * connect.c: Include <stdlib.h> to get prototype for abort().
7088
7089 2003-09-14  Hrvoje Niksic  <hniksic@xemacs.org>
7090
7091         * utils.c (wtimer_sys_set): Extracted the code that sets the
7092         current time here.
7093         (wtimer_reset): Call it.
7094         (wtimer_sys_diff): Extracted the code that calculates the
7095         difference between two system times here.
7096         (wtimer_elapsed): Call it.
7097         (wtimer_elapsed): Don't return a value smaller than the previous
7098         one, which could previously happen when system time is set back.
7099         Instead, reset start time to current time and note the elapsed
7100         offset for future calculations.  The returned times are now
7101         guaranteed to be monotonically nondecreasing.
7102
7103 2003-09-10  Hrvoje Niksic  <hniksic@xemacs.org>
7104
7105         * host.c (lookup_host): Print the result of the DNS lookup.
7106
7107 2003-09-10  Hrvoje Niksic  <hniksic@xemacs.org>
7108
7109         * init.c (cmd_boolean): Accept yes/no along with on/off.
7110         (cmd_lockable_boolean): Ditto.
7111
7112 2003-09-10  Hrvoje Niksic  <hniksic@xemacs.org>
7113
7114         * init.c: New command dns_cache.
7115
7116         * main.c (main): New option --dns-cache[=off].
7117
7118 2003-09-09  Hrvoje Niksic  <hniksic@xemacs.org>
7119
7120         * config.h.in: Initialize HAVE_GETADDRINFO and ENABLE_IPV6.
7121
7122         * all: Use #ifdef ENABLE_IPV6 instead of the older INET6.  Use
7123         HAVE_GETADDRINFO for getaddrinfo-related stuff.
7124
7125 2003-09-09  Hrvoje Niksic  <hniksic@xemacs.org>
7126
7127         * url.c (url_parse): Return an error if the URL contains a [...]
7128         IPv6 numeric address and we don't support IPv6.
7129
7130 2003-09-05  Hrvoje Niksic  <hniksic@xemacs.org>
7131
7132         * url.c (is_valid_ipv6_address): Modified to not require
7133         zero-terminated strings.
7134         (is_valid_ipv4_address): Ditto.
7135
7136 2003-09-05  Mauro Tortonesi <mauro@deepspace6.net>
7137
7138         src/url.c: added RFC 2732 compliance for URL parsing. The
7139         functions is_*_address valid are a modified version of
7140         glibc 2.3.2 inet_pton's code.
7141
7142 2003-09-03  Ahmon Dancy  <dancy@dancysoft.com>
7143
7144         * main.c init.c options.h: Added --retry-connrefused option so
7145         that Connection Refused failures are treated as non-fatal (when
7146         trying to retrieve from busy servers).
7147
7148         * wget.h: New CONNECT_ERROR macro for encapsulating this
7149         modification.
7150
7151         * ftp.c http.c : Use CONNECT_ERROR macro in places where
7152         ECONNREFUSED was checked.
7153
7154 2003-01-11  Ian Abbott  <abbotti@mev.co.uk>
7155
7156         * ftp.c (ftp_retrieve_glob): Reject insecure filenames as determined
7157         by calling new function has_insecure_name_p.  This is based on a
7158         patch by Red Hat.
7159
7160         * fnmatch.c (has_insecure_name_p): New function: returns non-zero
7161         if filename starts with `/' or contains `../' and is therefore
7162         considered insecure.
7163
7164         * fnmatch.h: Declare has_insecure_name_p().
7165
7166 2002-08-03  Hrvoje Niksic  <hniksic@xemacs.org>
7167
7168         * init.c (cmd_file): Allocate RESULT correctly.
7169
7170 2002-07-24  Hrvoje Niksic  <hniksic@xemacs.org>
7171
7172         * recur.c (retrieve_tree): Check whether downloaded_html_set is
7173         non-NULL before using it.
7174
7175 2002-05-27  Hrvoje Niksic  <hniksic@arsdigita.com>
7176
7177         * html-parse.c (NAME_CHAR_P): Allow almost any character here.
7178
7179 2002-05-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7180
7181         * progress.c (bar_set_params): Fall back to dot progress if the
7182         terminal type is "emacs".
7183
7184 2002-05-20  Hrvoje Niksic  <hniksic@arsdigita.com>
7185
7186         * log.c: Don't #undef WGET_USE_STDARG.
7187
7188 2002-05-16  Hrvoje Niksic  <hniksic@arsdigita.com>
7189
7190         * hash.c (prime_size): Store the offset of the prime number in the
7191         prime table.  When searching, start with the given offset.
7192         (hash_table_new): Pass the pointer to ht->prime_offset to
7193         prime_size.
7194         (grow_hash_table): Ditto.
7195         (prime_size): Make 13 the first prime to make empty hash tables
7196         slightly smaller.
7197
7198 2002-05-16  Ian Abbott  <abbotti@mev.co.uk>
7199
7200         * recur.c (download_child_p): Minor optimization to avoid an
7201         unnecessary additional call to schemes_are_similar_p function.
7202
7203 2002-05-16  Ian Abbott  <abbotti@mev.co.uk>
7204
7205         * url.c (schemes_are_similar_p): New function to test enumerated
7206         scheme codes for similarity.
7207
7208         * url.h: Declare it.
7209
7210         * recur.c (download_child_p): Use it to compare schemes.  This
7211         also fixes a bug that allows hosts to be spanned (without the
7212         -H option) when the parent scheme is https and the child's is
7213         http or vice versa.
7214
7215 2002-05-14  Bill Richardson  <bill@riverstonenet.com>
7216
7217         * ftp.c (getftp): Don't ftruncate stdout.
7218
7219         * http.c (gethttp): Don't ftruncate stdout.
7220
7221 2002-05-09  Ian Abbott  <abbotti@mev.co.uk>
7222
7223         * cmpt.c (strptime_internal): Synched with glibc-2.1.3.
7224         (get_number): Ditto.
7225         (get_alt_number): Ditto.
7226         (__isleap): New function-like macro used by strptime.
7227         (day_of_the_week): New function used by strptime.
7228         (day_of_the_year): Ditto.
7229         (__mon_yday): Now shared by mktime and strptime implementations.
7230
7231 2002-05-08  Hrvoje Niksic  <hniksic@arsdigita.com>
7232
7233         * cookies.c (check_domain_match): Use match_tail in case
7234         insensitive mode.
7235
7236         * utils.c (match_tail): Allow the caller to specify case
7237         insensitive mode.
7238
7239         * cookies.c (store_cookie): When expiry_time is 0, print it as
7240         undefined, not indefinite.
7241
7242 2002-05-07  Ian Abbott  <abbotti@mev.co.uk>
7243
7244         * cookies.c (cookie_jar_process_set_cookie): Do not store
7245         discarded cookie.
7246
7247 2002-04-21  Hrvoje Niksic  <hniksic@arsdigita.com>
7248
7249         * cookies.c (check_domain_match): Allow cookies to be set for
7250         subdomains of unknown top-level domains under some circumstances.
7251
7252 2002-04-21  Thomas Lussnig  <thomas.lussnig@bewegungsmelder.de>
7253
7254         * gen_ssl.c:
7255         - allow checking of server cert
7256         - allow defining client cert type
7257         - allow limit of ssl protocol
7258         - check more return values
7259         - added debug message on break
7260
7261 2002-04-21  Hrvoje Niksic  <hniksic@arsdigita.com>
7262
7263         * recur.c (download_child_p): Revert order of items in check
7264         number 6 for clarity.
7265
7266 2002-04-20  Hrvoje Niksic  <hniksic@arsdigita.com>
7267
7268         * init.c: Ditto.
7269
7270         * main.c: Ditto.
7271
7272         * http.c: Use the new interface.
7273
7274         * cookies.c: Provide an OO-style "cookie jar" interface to enable
7275         separate cookie jars.
7276
7277         * http.c (http_atotm): Declare argument as const.
7278
7279 2002-04-20  Hrvoje Niksic  <hniksic@arsdigita.com>
7280
7281         * cookies.c (cookie_new): Default to PORT_ANY.
7282         (find_cookie_chain_exact): Only search by DOMAIN.
7283         (find_matching_cookie): Also check that PORT matches.
7284         (store_cookie): Only match the domain.
7285         (set_cookie_header_cb): When a cookie "fakes" a domain, assume it
7286         is valid for that host rather than discarding it completely.
7287         (find_matching_chains): Don't search by PORT.
7288         (matching_cookie): Also match PORT.
7289         (load_cookies): Set the port if specified, otherwise leave it as
7290         ANY.
7291         (save_cookies_mapper): Save the port if specified, otherwise leave
7292         it empty.
7293
7294 2002-04-19  Thomas Lussnig  <thomas.lussnig@bewegungsmelder.de>
7295
7296         * init.c: The option `egdfile' was not in sort order.
7297
7298 2002-04-16  Hrvoje Niksic  <hniksic@arsdigita.com>
7299
7300         * ftp.c (getftp): Treat directories that begin with <letter>: as
7301         absolute.
7302         (getftp): Strip trailing slashes from con->id before merging it
7303         with TARGET.
7304
7305 2002-04-16  Hrvoje Niksic  <hniksic@arsdigita.com>
7306
7307         * http.c (gethttp): If Content-Type is not given, assume
7308         text/html.
7309
7310 2002-04-15  Hrvoje Niksic  <hniksic@arsdigita.com>
7311
7312         * recur.c (download_child_p): Don't ignore rejection of HTML
7313         documents that are themselves leaves of recursion.
7314
7315 2002-04-15  Ian Abbott  <abbotti@mev.co.uk>
7316
7317         Makefile.in: Updated several dependencies for object files to take
7318         account of nested include files.
7319
7320 2002-04-15  Ian Abbott  <abbotti@mev.co.uk>
7321
7322         Makefile.in: The target `connect$o' (connect.o) now depends on
7323         `utils.h'
7324
7325 2002-04-15  Ian Abbott  <abbotti@mev.co.uk>
7326
7327         * host.c (SET_H_ERRNO): New function-like macro to set `h_errno'.
7328         (gethostbyname_with_timeout): Use it.
7329
7330         * utils.c: Don't define `SETJMP()', `run_with_timeout_env' or
7331         `abort_run_with_timeout()' when `USE_SIGNAL_TIMEOUT' is undefined.
7332
7333 2002-04-15  Hrvoje Niksic  <hniksic@arsdigita.com>
7334
7335         * host.c (getaddrinfo_with_timeout): New function.
7336         (gethostbyname_with_timeout): Ditto.
7337         (lookup_host): Use them.
7338
7339 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7340
7341         * utils.c (number_to_string): Handle the case when n < -INT_MAX.
7342
7343 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7344
7345         * init.c (comind): Use a marginally faster implementation of
7346         binary search.  To quote Martin Buchholz, "a nanosecond saved is a
7347         nanosecond earned."
7348
7349 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7350
7351         * main.c (print_help): Document `--post-data' and `--post-file'.
7352
7353 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7354
7355         * http.c (gethttp): Ditto.
7356
7357         * retr.c (retrieve_url): Initialize variables to appease the
7358         compiler.
7359
7360         * gen_sslfunc.c (ssl_iread): Don't handle EINTR when calling
7361         select_fd.
7362         (ssl_iwrite): Ditto.
7363
7364         * connect.c (select_fd): Rewrite to handle EINTR.  Set errno to
7365         ETIMEDOUT in case of timeout.
7366         (iread): No need to handle EINTR when calling select_fd.
7367         (iwrite): Ditto.
7368
7369 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7370
7371         * retr.c (retrieve_url): Make sure that POST is not honored for
7372         redirections.
7373
7374         * http.c (gethttp): Send the POST data when requested.
7375         (post_file): New function.
7376         (gethttp): Use it.
7377
7378         * main.c (main): Ditto.
7379
7380         * init.c: Add new options.
7381
7382         * options.h (struct options): New options post_data and
7383         post_file_name.
7384
7385 2002-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7386
7387         * connect.c (connect_with_timeout): Firing SIGALRM can result in
7388         connect() exiting with EINTR.  Treat EINTR the same as ETIMEDOUT.
7389
7390 2002-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
7391
7392         * connect.c (connect_with_timeout): Use it.
7393
7394         * utils.c (run_with_timeout): New function.
7395
7396 2002-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
7397
7398         * url.c (getproxy): Accept a struct url argument.  This obviates
7399         the need for USE_PROXY_P.
7400
7401         * retr.c (retrieve_url): Allow proxy to be a non-FTP URL.
7402
7403         * ftp.c (getftp): Recognize FWTK-style proxy.
7404
7405 2002-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
7406
7407         * config.h.in: Only define _VA_LIST when compiled with gcc.
7408
7409 2002-04012  Ian Abbott  <abbotti@mev.co.uk>
7410
7411         * http.c (http_loop): Compensate for MS Windows two-second
7412         granularity of file modification time when comparing timestamps.
7413
7414         * ftp.c (ftp_retrieve_list): Ditto.
7415
7416 2002-04-12  Ian Abbott  <abbotti@mev.co.uk>
7417
7418         * utils.c (has_html_suffix_p): New function to test filename for
7419         common html extensions.
7420
7421         * utils.h: Declare it.
7422
7423         * http.c (http_loop): Use it instead of previous test.
7424
7425         * retr.c (retrieve_url): Ditto.
7426
7427         * recur.c (download_child_p): Ditto.
7428
7429 2002-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
7430
7431         * config.h.in: Define _VA_LIST on Solaris to prevent stdio.h from
7432         declaring va_list.
7433         From Kevin Rodgers <kevinr@ihs.com>.
7434
7435 2002-04-12  Ian Abbott  <abbotti@mev.co.uk>
7436
7437         * Makefile.in: Specify libtool mode explicitly when linking.
7438
7439 2002-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
7440
7441         * connect.c (connect_with_timeout): New function.
7442         (connect_to_one): Use it.
7443
7444         * config.h.in: Add stubs for HAVE_SIGSETJMP, HAVE_SIGBLOCK, and
7445         HAVE_SETJMP_H.
7446
7447 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
7448
7449         * log.c: Set WGET_USE_STDARG if __STDC__ is defined and stdarg.h
7450         is present.
7451
7452 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
7453
7454         * progress.c (bar_create): If INITIAL is larger than TOTAL, fix
7455         TOTAL.
7456         (bar_finish): Likewise.
7457
7458 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
7459
7460         * html-url.c (tag_handle_form): New function.  Pick up form
7461         actions and mark them for conversion only.
7462
7463 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
7464
7465         * progress.c (struct progress_implementation): Use PARAMS when
7466         declaring the parameters of *create, *update, *finish, and
7467         *set_params.
7468
7469         * netrc.c: Ditto.
7470
7471         * http.c: Reformat some function definitions so that ansi2knr can
7472         read them.
7473
7474         * hash.c (struct hash_table): Use the PARAMS macro around
7475         parameters in the declaration of hash_function and test_function.
7476         (prime_size): Spell 2580823717UL and 3355070839UL as (unsigned
7477         long)0x99d43ea5 and (unsigned long)0xc7fa5177 respectively, so
7478         that pre-ANSI compilers can read them.
7479         (find_mapping): Use PARAMS when declaring EQUALS.
7480         (hash_table_put): Ditto.
7481
7482         * ftp.h: Wrap the parameters of ftp_index declaration in PARAMS.
7483
7484         * cookies.c (cookie_new): Use (unsigned long)0 instead of 0UL,
7485         which was unsupported by pre-ANSI compilers.
7486
7487         From Nelson H. F. Beebe <beebe@math.utah.edu>, for the most part.
7488
7489 2002-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
7490
7491         * url.c (url_filename): Use compose_file_name regardless of
7492         whether opt.dirstruct is set.
7493         (mkstruct): Don't handle the query and the reencoding of DIR; that
7494         is done in compose_file_name.
7495
7496 2002-04-10  Hrvoje Niksic  <hniksic@arsdigita.com>
7497
7498         * wget.h: Ditto for extern char *exec_name.
7499
7500         * options.h: Don't guard against OPTIONS_DEFINED_HERE -- it is
7501         perfectly legal to follow an `extern' with a non-`extern' ones,
7502         provided the types match.
7503
7504         * main.c: Don't define OPTIONS_DEFINED_HERE.
7505
7506 2002-04-10  Hrvoje Niksic  <hniksic@arsdigita.com>
7507
7508         * progress.c (create_image): Revert to calculating ETA based on
7509         average download speed.
7510         (create_image): Don't print ETA until the download has been active
7511         for at least 3 seconds.
7512         (create_image): When ETA is not available, don't print anything.
7513         The previous version would print --:--.
7514
7515 2002-04-10  Hrvoje Niksic  <hniksic@arsdigita.com>
7516
7517         * progress.c (bar_update): Keep updating a subinterval until it
7518         reaches or exceeds a watermark.  That way the measurement will be
7519         guaranteed to span a configurable minimum of time.  The current
7520         default is 3s in 30 100ms intervals.
7521
7522 2002-04-09  Hrvoje Niksic  <hniksic@arsdigita.com>
7523
7524         * progress.c (bar_update): Maintain an array of the time it took
7525         to perform previous 30 network reads.
7526         (create_image): Calculate the download speed and ETA based on the
7527         last 30 reads, not the entire download.
7528         (create_image): Make sure that the ETA is not changed more than
7529         once per second.
7530
7531 2002-04-09  Ian Abbott  <abbotti@mev.co.uk>
7532
7533         * mswindows.c (borland_utime): New function conditionally defined
7534         when `HACK_BCC_UTIME_BUG' is defined.  A reimplementation of
7535         `utime()' as Borland's `utime()' function is broken on Windows 9x
7536         systems.  (Original patch by Chin-yuan Kuo <sr1111111@yahoo.com.tw>.)
7537
7538 2002-04-08  Hrvoje Niksic  <hniksic@arsdigita.com>
7539
7540         * ftp.c (ftp_loop): Propagate the result of ftp_retrieve_glob.
7541
7542 2002-03-26  Ian Abbott  <abbotti@mev.co.uk>
7543
7544         * Makefile.in: Updated several dependencies for object files.
7545
7546 2002-03-20  Ian Abbott  <abbotti@mev.co.uk>
7547
7548         * mswindows.c: Include "utils.h".
7549
7550 2002-03-18  Ian Abbott  <abbotti@mev.co.uk>
7551
7552         * host.h: Don't include netdb.h on windows.
7553
7554 2002-02-19  Hrvoje Niksic  <hniksic@arsdigita.com>
7555
7556         * recur.c (retrieve_tree): Handle the case when start_url doesn't
7557         parse.
7558
7559 2002-02-19  Andreas Damm  <andreas-sourceforge@radab.org>
7560
7561         * wget.h (DO_REALLOC_FROM_ALLOCA): Multiply with sizeof(type) when
7562         calling xmalloc and memcpy.
7563
7564 2002-02-19  Hrvoje Niksic  <hniksic@arsdigita.com>
7565
7566         * host.h: Include Unix-specific includes #ifndef WINDOWS.
7567         Patch originally provided by Christian Lackas.
7568
7569 2002-02-11  Christian Lackas  <delta@lackas.net>
7570
7571         * recur.c: recurive downloading for https fixed.
7572
7573 2002-02-19  Alan Eldridge  <alane@geeksrus.net>
7574
7575         * host.h: Also include <netinet/in.h> and <sys/socket.h>.
7576
7577         * ftp-basic.c: Also include <netinet/in.h>.
7578
7579 2002-02-05  Ian Abbott  <abbotti@mev.co.uk>
7580
7581         * http.c (gethttp): when -c used, mark already fully retrieved
7582         file as successfully retrieved.
7583
7584 2002-02-19  Hrvoje Niksic  <hniksic@arsdigita.com>
7585
7586         * url.c (url_parse): Don't treat '?' as query string separator
7587         when parsing FTP URLs.
7588
7589 2002-02-01  Hrvoje Niksic  <hniksic@arsdigita.com>
7590
7591         * html-url.c (tag_handle_meta): Don't crash on <meta
7592         http-equiv=refresh> where content is missing.
7593
7594 2002-01-31  Herold Heiko  <Heiko.Herold@previnet.it>
7595
7596         * ftp-basic.c, host.c: don't include sys/socket.h, arpa/inet.h,
7597         netdb.h on windows.
7598
7599 2002-01-30  Hrvoje Niksic  <hniksic@arsdigita.com>
7600
7601         * retr.c (retrieve_url): Remove redirection cycle detection.  This
7602         is because some sites legitimately redirect the user back to the
7603         same location, e.g. after an authorization check performed by
7604         another page.  MAX_REDIRECTIONS is still used to prevent infinite
7605         redirection loops.
7606
7607 2002-01-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7608
7609         * http.c (gethttp): Wrap host name in square brackets if it
7610         contains a colon.
7611
7612 2002-01-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7613
7614         * url.c (url_parse): Allow all hex digits, not only decimal ones,
7615         to form an IP address.
7616
7617 2002-01-26  Hrvoje Niksic  <hniksic@arsdigita.com>
7618
7619         * url.c (urlchr_table): Make square braces reserved, so we can
7620         parse http://[::1]/.
7621         (url_parse): Handle host in braces.
7622         (url_string): If url->host contains colons, wrap it in braces.
7623
7624 2002-01-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7625
7626         * connect.c (resolve_bind_address): New function.
7627         (connect_to_one): Use it.
7628         (bindport): Ditto.
7629
7630         * init.c: Don't resolve bind-address here.
7631
7632         * host.c (wget_sockaddr_set_address): Would bug out with ADDR == NULL.
7633
7634 2002-01-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7635
7636         * host.c (lookup_host): Use sizeof(ip4_address) to calculate the
7637         offset.
7638         (address_list_new): Use map_ipv4_to_ip.
7639         (wget_sockaddr_set_address): Convert ADDR to IPv4 before using it
7640         in IPv4 context.
7641
7642 2002-01-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7643
7644         * source: Integrated IPv6 support.
7645         Written by Thomas Lussnig <thomas.lussnig@bewegungsmelder.de>.
7646
7647 2002-01-15  Ian Abbott  <abbotti@mev.co.uk>
7648
7649         * init.c (cmd_file): Change `\' to `/' for Windows (yes, really!)
7650         (cmd_directory): New function. Like cmd_file(), but strips
7651         trailing directory separators.
7652         (commands): Change action for "dirprefix" from `cmd_file' to
7653         `cmd_directory'.
7654
7655         * utils.c (make_directory): Allow intermediate `mkdir' calls to
7656         fail, as not all path components that do not exist should be
7657         directory components, especially under Windows.
7658
7659 2002-01-17  Hrvoje Niksic  <hniksic@arsdigita.com>
7660
7661         * netrc.c (parse_netrc): Skip leading whitespace before testing
7662         whether the line is empty.  Empty lines still contain the line
7663         terminator.
7664
7665 2002-01-15  Hrvoje Niksic  <hniksic@arsdigita.com>
7666
7667         * gen_sslfunc.c (ssl_iread): Call select on the file descriptor
7668         only if no data is pending in SSL buffers.
7669         From tony@bluetail.com.
7670
7671 2002-01-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7672
7673         * headers.c (header_get): Strip trailing whitespace from the
7674         header.
7675
7676 2002-01-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7677
7678         * url.c (parse_uname): URL-decode *USER and *PASSWD.
7679
7680 2002-01-07  Ian Abbott <abbotti@mev.co.uk>
7681
7682         * url.c (uri_merge_1): Deal with "net path" relative URL (one that
7683         starts with "//").
7684
7685 2002-01-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7686
7687         * http.c (gethttp): Invalidate SOCK if get_contents encountered an
7688         error.
7689
7690 2001-12-24  Hrvoje Niksic  <hniksic@arsdigita.com>
7691
7692         * version.c: Wget 1.8.1 is released.
7693
7694 2001-12-19  Hrvoje Niksic  <hniksic@arsdigita.com>
7695
7696         * version.c: Wget 1.8.1-pre3 is released.
7697
7698 2001-12-19  Hrvoje Niksic  <hniksic@arsdigita.com>
7699
7700         * recur.c (retrieve_tree): Enqueue the canonical representation of
7701         start_url, so that the test against dl_url_file_map works.
7702
7703 2001-12-19  Hrvoje Niksic  <hniksic@arsdigita.com>
7704
7705         * log.c (logputs): Check for requested verbosity before printing
7706         anything.
7707
7708 2001-12-19  Hrvoje Niksic  <hniksic@arsdigita.com>
7709
7710         * html-url.c (tag_handle_link): Treat the "shortcut icon" link as
7711         inline.
7712
7713 2001-12-18  Hrvoje Niksic  <hniksic@arsdigita.com>
7714
7715         * recur.c (retrieve_tree): Make a copy of file obtained from
7716         dl_url_file_map because the code calls xfree(file) later.
7717
7718 2001-12-18  Hrvoje Niksic  <hniksic@arsdigita.com>
7719
7720         * recur.c (register_html): Maintain a hash table of HTML files
7721         along with the list.  Disallow duplicates.
7722         (retrieve_tree): Use downloaded_html_set to check whether the file
7723         found in dl_url_file_map is an HTML file, and descend into it if
7724         so.
7725         (convert_all_links): Don't guard against duplicates in
7726         downloaded_html_list, since they are no longer possible.
7727
7728 2001-12-18  Ian Abbott  <abbotti@mev.co.uk>
7729
7730         * recur.c (retrieve_tree): Pass on referring URL when retrieving
7731         recursed URL.
7732
7733 2001-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
7734
7735         * version.c: Wget 1.8.1-pre2 is released.
7736
7737 2001-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
7738
7739         * retr.c (sleep_between_retrievals): Simplify indentation.
7740
7741 2001-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
7742
7743         * gen_sslfunc.c (ssl_init_prng): Use random_number to get a byte
7744         of "randomness" at a time.
7745         (ssl_init_prng): Don't seed the PRNG; random_number will do that.
7746
7747         * retr.c (sleep_between_retrievals): Use it.  Make sure that the
7748         random amount averages in opt.wait.
7749         (sleep_between_retrievals): Don't seed the PRNG; random_number
7750         will do that.
7751
7752         * utils.c (random_number): New function.
7753
7754 2001-12-14  Hrvoje Niksic  <hniksic@arsdigita.com>
7755
7756         * url.c (path_simplify): Move here from utils.c, and make static.
7757
7758 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
7759
7760         * init.c (wgetrc_file_name): Print correct message when loading
7761         getenv("WGETRC") fails.
7762
7763 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
7764
7765         * recur.c (register_download): Don't abort when one URL references
7766         two different files.
7767
7768 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
7769
7770         * http.c (gethttp): Check for conn->scheme, not u->scheme, before
7771         calling ssl_iwrite.
7772
7773 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
7774
7775         * version.c: Wget 1.8.1-pre1 is released.
7776
7777 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
7778
7779         * res.c (matches): Fix broken URL in the docstring.
7780
7781 2001-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
7782
7783         * html-url.c (tag_url_attributes): Mark <embed href=...> as
7784         external.
7785
7786 2001-12-12  Hrvoje Niksic  <hniksic@arsdigita.com>
7787
7788         * url.c (get_urls_file): Cosmetic changes.
7789
7790 2001-12-12  Hrvoje Niksic  <hniksic@arsdigita.com>
7791
7792         * html-url.c (append_one_url): Resurrect warning when unable to
7793         resolve a relative link.
7794
7795 2001-12-12  Hrvoje Niksic  <hniksic@arsdigita.com>
7796
7797         * html-url.c (collect_tags_mapper): Break into several functions.
7798         (tag_url_attributes): Collect <embed href=...>.
7799
7800 2001-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
7801
7802         * host.c: New type ipv4_address.  Use it consistently instead of
7803         `unsigned char[4]' and `unsigned char *'.
7804         (pretty_print_address): Accept a `const void *', to require even
7805         less casting.
7806
7807 2001-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
7808
7809         * ftp-ls.c (ftp_parse_vms_ls): Fix obvious memory leaks.
7810
7811 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
7812
7813         * main.c (main): Initialize progress after fork_to_background, so
7814         that it knows when to use dots.
7815
7816         * mswindows.c (ws_hangup): Call log_request_redirect_output.
7817
7818         * utils.c (fork_to_background): Print the PID of the child
7819         process.
7820
7821         * log.c (log_request_redirect_output): Set a flag that output
7822         redirection has been requested.  Doing anything else in a signal
7823         handler is unsafe.
7824         (check_redirect_output): New function: check whether redirection
7825         has been requested and, if so, call redirect_output().
7826         (logputs): Call check_redirect_output.
7827         (logprintf): Ditto.
7828         (debug_logprintf): Ditto.
7829         (redirect_output): Print clearer messages.
7830
7831         * main.c (redirect_output_signal): Don't call
7832         redirect_output_signal directly.  Instead, call
7833         log_request_redirect_output.
7834
7835         * utils.c (memfatal): Ditto.
7836
7837         * progress.c (display_image): Use it.
7838
7839         * log.c (log_set_save_context): New function: allow the caller to
7840         turn off saving log context lines.
7841
7842 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
7843
7844         * host.c (address_list_set_faulty): Uncomment a sanity check.
7845
7846 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
7847
7848         * utils.c (long_to_string): Return a pointer after where the
7849         number ends.
7850         (long_to_string): Rename to number_to_string.
7851
7852 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
7853
7854         * utils.c (path_simplify): Correctly handle the unlikely case that
7855         b starts out as path + 1.
7856
7857 2001-12-10  Hrvoje Niksic  <hniksic@arsdigita.com>
7858
7859         * utils.c (path_simplify): Rewrite, with better comments, and
7860         without the use of strcpy to move overlapping blocks.
7861
7862 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
7863
7864         * init.c (cmd_spec_progress): Resurrect.  Check whether VAL is a
7865         valid progress type before setting it.
7866
7867 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
7868
7869         * main.c (main): Remove stray debugging message.
7870
7871 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
7872
7873         * progress.c (create_image): Fix ETA padding when hours are prined.
7874
7875 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
7876
7877         * version.c: Wget 1.8 is released.
7878
7879 2001-12-09  Hrvoje Niksic  <hniksic@arsdigita.com>
7880
7881         * url.c (reencode_string): Declare static.
7882
7883         * res.c (registered_specs): Declare static.
7884
7885         * progress.c (current_impl_locked): Declare static.
7886
7887         * log.c (flush_log_p): Declare static.
7888         (needs_flushing): Ditto.
7889
7890         * http.c (digest_authentication_encode): Declare static.
7891
7892         * html-url.c (init_interesting): Declare static.
7893
7894         * host.c (host_name_addresses_map): Declare static.
7895
7896         * cookies.c (find_matching_chains): Declare static.
7897
7898         * ftp-ls.c (ftp_parse_vms_ls): Warn about the memory leak
7899         indicated by lint.
7900
7901         * utils.c (path_simplify): Remove unused variable STUB_CHAR.
7902
7903         * host.c (address_list_set_faulty): Document that INDEX is
7904         currently unused.
7905
7906         * url.c (rewrite_shorthand_url): Remove unused variable PATH.
7907
7908 2001-12-08  Hrvoje Niksic  <hniksic@arsdigita.com>
7909
7910         * version.c: Wget 1.8-pre2 is released.
7911
7912 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7913
7914         * progress.c (progress_handle_sigwinch): Set up the signal again.
7915
7916         * utils.c: Include <sys/termios.h>, where Solaris defines
7917         TIOCGWINSZ.
7918
7919         * progress.c (bar_create): Don't use the last column on the screen.
7920         (create_image): Pad ETA to constant size.  Pad SIZE to nine digits
7921         only until it exceeded them.
7922
7923 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7924
7925         * version.c: Wget 1.8-pre1 is released.
7926
7927 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7928
7929         * progress.c (progress_create): Make sure that, when the output is
7930         redirected, the progress implementation gets changed to the
7931         fallback one.
7932         (bar_set_params): Set current_impl_locked to 1 when "force" is
7933         specified.
7934         (progress_create): Don't change the progress implementation if
7935         current_impl_locked is non-zero.
7936
7937         * main.c (redirect_output_signal): Call
7938         progress_schedule_redirect.
7939
7940         * progress.c (progress_schedule_redirect): New function.
7941
7942 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7943
7944         * log.c (logvprintf): Restructure to allow being called multiple
7945         times.
7946         (logprintf): Call logvprintf in a loop.
7947         (debug_logprintf): Ditto.
7948
7949 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7950
7951         * gen_sslfunc.c (ssl_init_prng): Allow the user to disable EGD by
7952         setting egd_file it to empty string.
7953
7954         * main.c (main): Change the option name from --sslegdsock to
7955         --egd-file.
7956
7957 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7958
7959         * gen_sslfunc.c (ssl_init_prng): Make the printed message
7960         translatable.
7961
7962 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7963
7964         * url.c (scheme_disable): New function.
7965
7966         * main.c (main): Call ssl_init_prng from here rather than from
7967         init_ssl, so that it has a chance to disable support for https
7968         before a URL has been resolved.
7969
7970         * gen_sslfunc.c (ssl_init_prng): Seed with rand() if all else
7971         failed.
7972         (ssl_init_prng): Disable support for https if seeding the PRNG
7973         fails.
7974
7975 2001-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
7976
7977         * utils.c (read_whole_line): Handle lines beginning with \0.
7978
7979 2001-12-05  Hrvoje Niksic  <hniksic@arsdigita.com>
7980
7981         * recur.c (convert_all_links): Guard against duplicates in
7982         downloaded_html_files.
7983         (register_download): Don't invalidate similar-looking URLs.
7984         (match_except_index): New function.
7985
7986 2001-12-05  Hrvoje Niksic  <hniksic@arsdigita.com>
7987
7988         * utils.c (path_simplify): Document with test cases.
7989
7990 2001-12-04  Hrvoje Niksic  <hniksic@arsdigita.com>
7991
7992         * gen_sslfunc.c: Ditto.
7993
7994         * rbuf.c: Include <string.h>.
7995
7996 2001-12-04  Hrvoje Niksic  <hniksic@arsdigita.com>
7997
7998         * recur.c (retrieve_tree): Check whether the URL was already
7999         downloaded before downloading it again.
8000         (descend_child_p): Renamed to download_child_p.
8001         (register_download): When one URL is downloaded to a file already
8002         "owned" by another URL, delete all references that map any URL to
8003         that file.
8004         (register_delete_file): New function.
8005         (retrieve_tree): Use it after deleting a file.
8006
8007         * url.c (url_parse): Re-canonicalize the URL also if the path is
8008         empty, so that e.g. "http://www.server.com" ->
8009         "http://www.server.com/".
8010         (lowercase_str): Use ISUPPER instead of !ISLOWER.
8011
8012         * retr.c (retrieve_url): Use the canonical URL form when calling
8013         register_download().
8014
8015 2001-12-04  Ian Abbott <abbotti@mev.co.uk>
8016
8017         * snprintf.c (dopr): Use `unsigned int' as the second argument to
8018         va_arg when casting to `unsigned short' is intended.
8019
8020 2001-12-04  Herold Heiko  <Heiko.Herold@previnet.it>
8021
8022         * gen_sslfunc.c: on windows provide ssl crypto random
8023           initialization through RAND_screen(); could possibly
8024           be not enough for strong ssl communication (see the
8025           relevant manual page from the openssl package).
8026
8027 2001-12-04  Hrvoje Niksic  <hniksic@arsdigita.com>
8028
8029         * url.c (local_quote_string): Reenable quoting of question marks,
8030         but only when `--html-extension' is used.
8031
8032 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
8033
8034         * version.c: Wget 1.8-beta3 is released.
8035
8036 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
8037
8038         * snprintf.c (dopr): Cast the result of va_arg to short int and
8039         short unsigned int where these types are expected to be used.
8040
8041 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
8042
8043         * snprintf.c (dopr): Replace `short int' and `unsigned short int'
8044         with `int' when using it as the second argument to `va_arg'.
8045
8046 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
8047
8048         * host.c (address_list_new_one): New function.
8049         (lookup_host): Use it.
8050
8051 2001-12-03  Andre Majorel  <amajorel@teaser.fr>
8052
8053         * host.c (lookup_host): Don't initialize TMPSTORE directly because
8054         it's not legal C.
8055
8056 2001-12-03  Hrvoje Niksic  <hniksic@arsdigita.com>
8057
8058         * ftp-basic.c (ftp_port): Don't return HOSTERR if we fail getting
8059         the socket data.
8060
8061         * ftp.c: Ditto.
8062
8063         * http.c: No need to declare h_errno.
8064
8065         * host.c: Declare h_errno.
8066
8067 2001-12-02  Hrvoje Niksic  <hniksic@arsdigita.com>
8068
8069         * utils.c (file_merge): If BASE doesn't contain a slash, just
8070         return a copy of FILE.
8071
8072 2001-12-02  Hrvoje Niksic  <hniksic@arsdigita.com>
8073
8074         * version.c: Wget 1.8-beta2 is released.
8075
8076 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8077
8078         * ftp.c (getftp): When PWD fails, assume "/".
8079
8080         * ftp-basic.c (ftp_syst): Fix indentation.
8081
8082 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8083
8084         * url.c (get_urls_file): If opt.base_href is specified, merge each
8085         URL with the base.
8086
8087 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8088
8089         * main.c (print_help): Don't document the removed `-nh'.
8090
8091 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8092
8093         * url.c (url_full_path): Document better.
8094
8095         * http.c (gethttp): Use the full path when creating digest
8096         authorization.
8097
8098 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8099
8100         * cookies.c (path_matches): Return 0 if PREFIX doesn't begin with
8101         '/'.
8102
8103 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8104
8105         * cookies.c (path_matches): FULL_PATH doesn't begin with '/', but
8106         PREFIX does.
8107
8108 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8109
8110         * cookies.c (check_domain_match): Reimplement to match Netscape's
8111         "preliminary specification" for cookies.
8112
8113 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8114
8115         * url.c (replace_attr_refresh_hack): New function.
8116         (convert_links): Call replace_attr_refresh_hack for Refresh
8117         links.  It will add the "TMOUT; URL=" junk before the link.
8118
8119         * html-url.c (collect_tags_mapper): Set ID to the ID of the
8120         "content" attribute, not "http-equiv".
8121         (collect_tags_mapper): Don't use OFFSET to hack the raw_* values;
8122         instead, store the information that this entry belongs to a
8123         "refresh" link.
8124
8125 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8126
8127         * version.c: Wget 1.8-beta1 is released.
8128
8129 2001-12-01  Hrvoje Niksic  <hniksic@arsdigita.com>
8130
8131         * recur.c (retrieve_tree): Allow -p retrievals to exceed maximum
8132         depth by more than one.
8133
8134 2001-11-30  Hrvoje Niksic  <hniksic@arsdigita.com>
8135
8136         * retr.c (retrieve_url): Don't allow more than 20 redirections.
8137
8138 2001-11-30  Hrvoje Niksic  <hniksic@arsdigita.com>
8139
8140         * recur.c (retrieve_tree): Skip the non-inline entries when
8141         enqueuing the children of a leaf HTML node in -p mode.
8142         (descend_url_p): Ignore opt.no_parent when in -p mode and UPOS is
8143         "inline".
8144
8145         * html-url.c (get_urls_html): Don't accept dash_p_leaf_HTML.
8146         (collect_tags_mapper): When an entry is "inline", mark it as such.
8147
8148         * recur.c (descend_url_p): Fix test when checking for
8149         acceptance/rejection rules.
8150
8151 2001-10-31 Daniel BODEA <dali@dali-designs.com>
8152
8153         * netrc.c (search_netrc): When slack_default is 0, still look for
8154         an account with matching password, just not the "default account".
8155         HTTP Authorization using .netrc should now work as expected.
8156
8157 2001-11-30  T. Bharath  <TBharath@responsenetworks.com>
8158
8159         * http.c (persistent_available_p): Call SHUTDOWN_SSL if
8160         test_socket_open fails.
8161
8162 2001-11-30  Hrvoje Niksic  <hniksic@arsdigita.com>
8163
8164         * progress.c (display_image): Just print one CR to reset the
8165         cursor position.
8166
8167 2001-11-30  Christian Fraenkel  <c.fraenkel@gmx.net>
8168
8169         * init.c: New command `ssl_egd_sock'.
8170
8171         * main.c (main): New option `--sslegdsock'.
8172
8173         * gen_sslfunc.c (ssl_init_prng): Seed the RNG using EGD.
8174
8175 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
8176
8177         * cmpt.c (memmove): Include a simple memmove implementation.
8178
8179 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
8180
8181         * headers: Guard against header files being included twice.
8182
8183 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
8184
8185         * gen-md5.c: Use unsigned char * as the buffer argument to
8186         gen_md5_update.
8187
8188 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
8189
8190         * connect.h: Declare select_fd.
8191
8192 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
8193
8194         * recur.c (descend_url_p): When resolving no_parent, compare with
8195         start_url, not parent url.  Otherwise link from /a/b/ to /a/c/
8196         wouldn't be followed, although the download started from /a/.
8197
8198 2001-01-23  Herold Heiko  <Heiko.Herold@previnet.it>
8199
8200         * config.h.ms, mswindows.h: defined HAVE_ISATTY, use _isatty for
8201         MS VC; somebody with Borland compiler please check and provide
8202         patch if possible;
8203
8204         * cmpt.c: provided a usleep emulation.
8205
8206 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
8207
8208         * host.c (address_list_new): Initialize al->faulty.
8209
8210 2001-11-29  Hrvoje Niksic  <hniksic@arsdigita.com>
8211
8212         * http.c (http_process_range): Accept the broken output of
8213         "JavaWebServer/1.1.1".
8214
8215 2001-11-28  Hrvoje Niksic  <hniksic@arsdigita.com>
8216
8217         * progress.c (dot_set_params): If PARAMS is unspecified, use
8218         dot_style, if available.
8219
8220         * init.c: Ditto.
8221
8222         * main.c (main): Resurect --dot-style.
8223
8224         * progress.c (dot_finish): Print the quantity if we're left at the
8225         beginning of a row.
8226
8227 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
8228
8229         * cmpt.c (random): Removed.
8230
8231         * retr.c (sleep_between_retrievals): Use the more portable rand()
8232         instead of random().
8233
8234 2001-11-27  Ian Abbott <abbotti@mev.co.uk>
8235
8236         * retr.c (retrieve_from_file): Initialize `new_file' to NULL to
8237         prevent seg fault.
8238
8239 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
8240
8241         * connect.c (connect_to_many): Use address_list_set_faulty to
8242         prevent the faulty address from being reused.
8243
8244         * host.c (address_list_set_faulty): New function.
8245         (address_list_get_bounds): New function, instead of
8246         address_list_count.
8247
8248 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
8249
8250         * url.c (convert_links): Don't translate %d-%d.
8251
8252         * main.c (print_help): Remove stray HAVE_RANDOM code.
8253
8254 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
8255
8256         * ftp.c (getftp): Improve output after sending PASV.  Don't
8257         attempt to "look up" the IP address we already know; call
8258         connect_to_one directly.
8259
8260 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
8261
8262         * progress.c: Change the default progress implementation to "bar".
8263
8264 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
8265
8266         * progress.c (bar_create): Print two newlines.
8267
8268 2001-11-27  Hrvoje Niksic  <hniksic@arsdigita.com>
8269
8270         * cmpt.c (random): New function, a simple-minded replacement for
8271         random() on systems that don't have it.
8272
8273 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
8274
8275         * config.h.in: Put a HAVE_USLEEP stub.
8276
8277         * cmpt.c (usleep): Replacement implementation of usleep using
8278         select.
8279
8280         * init.c: New option init_rate.
8281
8282         * main.c (main): New option --limit-rate.
8283
8284         * retr.c (limit_bandwidth): New function.
8285         (get_contents): Call it to limit the bandwidth used when
8286         downloading.
8287
8288         * progress.c (dot_update): Would print the wrong download speed on
8289         rows other than the first one when the download was continued.
8290         (dot_finish): Ditto.
8291
8292 2001-11-26  Ian Abbott <abbotti@mev.co.uk>
8293
8294         * http.c (gethttp): fix undeclared variable 'err' when compiled
8295         with HAVE_SSL.
8296
8297 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
8298
8299         * progress.c: Don't allocate new timers; use the timing data
8300         propagated from the caller.
8301
8302         * retr.c (get_contents): Allocate and use a timer.
8303
8304 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
8305
8306         * http.c (last_host_ip): Made into an address_list.
8307         (invalidate_persistent): Release pc_last_host_ip.
8308         (register_persistent): Use lookup_host.
8309         (persistent_available_p): Check for equality of hosts using
8310         address_list_match_all.  Call address_list_release.
8311         (http_cleanup): New function.
8312
8313         * ftp.c (getftp): Use lookup_host and connect_to_many.
8314
8315         * http.c (gethttp): Use lookup_host and connect_to_many.
8316
8317         * connect.c (make_connection): Removed.
8318         (connect_to_one): New function.
8319         (connect_to_many): Ditto.
8320         (set_connection_host_name): Ditto.
8321
8322         * host.c (lookup_host): New function; new return type.
8323         (address_list_new): New function.
8324         (address_list_count): Ditto.
8325         (address_list_copy_one): Ditto.
8326         (address_list_delete): Ditto.
8327         (address_list_release): Ditto.
8328         (pretty_print_address): Ditto.
8329
8330 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
8331
8332         * recur.c (retrieve_tree): In case of followed redirection,
8333         blacklist the pre-redirection URL.
8334
8335 2001-11-26  Hrvoje Niksic  <hniksic@arsdigita.com>
8336
8337         * recur.c (descend_redirect_p): New function.
8338         (retrieve_tree): Make sure redirections are not blindly followed.
8339
8340 2001-11-04  Alan Eldridge  <alane@geeksrus.net>
8341
8342         * config.h.in: added HAVE_RANDOM.
8343
8344         * options.h: added random_wait to struct options.
8345
8346         * main.c (print_help [HAVE_RANDOM], main): added arg parsing, help
8347         for --random-wait.
8348
8349         * retr.c (sleep_between_retrievals) [HAVE_RANDOM]: added
8350         implementation of random wait times.
8351
8352         * init.c (commands): added "randomwait" keyword.
8353
8354 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
8355
8356         * recur.c (descend_url_p): Be more conservative with blacklisting
8357         URLs.
8358         (convert_all_links): Print how many files have been converted, and
8359         how long it took.
8360
8361         * progress.c (create_image): Place the number of downloaded bytes
8362         right after the progress bar.
8363
8364         * utils.c (suffix): Return a pointer into the string.
8365
8366 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
8367
8368         * url.c (convert_links): Handle CO_NULLIFY_BASE.
8369
8370         * recur.c (retrieve_tree): Ignore download-ignorable children.
8371         (convert_all_links): Specify CO_NULLIFY_BASE when link_base_p.
8372
8373         * html-url.c (handle_link): Return the newly created urlpos.
8374         (collect_tags_mapper): When dealing with BASE, store the base
8375         reference and mark it as download-ignorable.
8376
8377 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
8378
8379         * url.c (convert_links): Attempt to quote '?' as "%3F" when
8380         linking to local files.  Given up on the attempt, as it breaks
8381         local browsing.
8382
8383 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
8384
8385         * main.c (private_initialize): Removed.
8386         (main): Don't call private_initialize.
8387
8388         * http.c: Call lookup_host.
8389
8390         * host.c (host_init): Removed.
8391         (add_host_to_cache): Initialize host_name_address_map here, on
8392         demand.
8393         (ngethostbyname): Commented out.
8394
8395         * connect.c (make_connection): Remove dead code; use lookup_host.
8396
8397         * host.c (store_hostaddress): Renamed to lookup_host and reversed
8398         the args.
8399         Removed host_address_name_map and host_slave_master_map.
8400
8401 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
8402
8403         * progress.c (dot_create): Align the "[ skipping ... ]" string
8404         with the dots.
8405
8406         * retr.c (rate): Split into two functions: calc_rate and
8407         retr_rate.
8408
8409         * progress.c (create_image): Draw a dummy progress bar even when
8410         total size is unknown.
8411         (display_image): Place the text cursor at the end of the "image".
8412
8413 2001-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
8414
8415         * url.c (reencode_string): Use unsigned char, not char --
8416         otherwise the hex digits come out wrong for 8-bit chars such as
8417         nbsp.
8418         (lowercase_str): New function.
8419         (url_parse): Canonicalize u->url if needed.
8420         (get_urls_file): Parse each URL, and return only the valid ones.
8421         (free_urlpos): Call url_free.
8422         (mkstruct): Add :port if the port is non-standard.
8423         (mkstruct): Append the query string to the file name, if any.
8424         (urlpath_length): Use strpbrk_or_eos.
8425         (uri_merge_1): Handle the cases where LINK is an empty string,
8426         where LINK consists only of query, and where LINK consists only of
8427         fragment.
8428         (convert_links): Count and report both kinds of conversion.
8429         (downloaded_file): Use a hash table, not a list.
8430         (downloaded_files_free): Free the hash table.
8431
8432         * retr.c (retrieve_from_file): Ditto.
8433
8434         * main.c (main): Call either retrieve_url or retrieve_tree
8435         for each URL, not both.
8436
8437         * retr.c (register_all_redirections): New function.
8438         (register_redirections_mapper): Ditto.
8439         (retrieve_url): Register the redirections.
8440         (retrieve_url): Make the string "Error parsing proxy ..."
8441         translatable.
8442
8443         * res.c (add_path): Strip leading slash from robots.txt paths so
8444         that the path representations are "compatible".
8445         (free_specs): Free each individual path, too.
8446         (res_cleanup): New function.
8447         (cleanup_hash_table_mapper): Ditto.
8448
8449         * recur.c (url_queue_new): New function.
8450         (url_queue_delete): Ditto.
8451         (url_enqueue): Ditto.
8452         (url_dequeue): Ditto.
8453         (retrieve_tree): New function, replacement for recursive_retrieve.
8454         (descend_url_p): New function.
8455         (register_redirection): New function.
8456
8457         * progress.c (create_image): Cosmetic changes.
8458
8459         * init.c (cleanup): Do all those complex cleanups only if
8460         DEBUG_MALLOC is defined.
8461
8462         * main.c: Removed --simple-check and the corresponding
8463         simple_host_check in init.c.
8464
8465         * html-url.c (handle_link): Parse the URL here, and propagate the
8466         parsed URL to the caller, who would otherwise have to parse it
8467         again.
8468
8469         * host.c (xstrdup_lower): Moved to utils.c.
8470         (realhost): Removed.
8471         (same_host): Ditto.
8472
8473 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
8474
8475         * utils.c (path_simplify): Preserver the (non-)existence of
8476         leading slash.  Return non-zero if changes were made.
8477
8478 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
8479
8480         * progress.c (bar_update): Don't modify bp->total_length if it is
8481         zero.
8482
8483 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
8484
8485         * retr.c (retrieve_url): When the redirection URL doesn't parse,
8486         print the correct error message rather than "UNKNOWN".
8487
8488 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
8489
8490         * progress.c (bar_finish): If the timer didn't record any time
8491         since the download beginning, fake 1ms.
8492
8493 2001-11-24  Hrvoje Niksic  <hniksic@arsdigita.com>
8494
8495         * recur.c (recursive_retrieve): Fix typo.
8496
8497 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
8498
8499         * progress.c (create_image): Don't translate "%ld ".
8500
8501 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
8502
8503         * progress.c (bar_set_params): Allow the user to force the use of
8504         the bar.
8505
8506 2001-11-23  Lemble Gregory  <gregory.lemble@st.com>
8507
8508         * gen_sslfunc.c (ssl_init_prng): New function; seed the SSL RNG.
8509
8510 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
8511
8512         * progress.c: Renamed dp_* functions to dot_* for greater clarity
8513         and consistency with bar_*.
8514         (print_download_speed): Get rid of the unneeded '@' character.
8515         (create_image): Fix download rate geometry.
8516
8517         * progress.c (print_elapsed): Remove spurious space.
8518         (print_elapsed): Renamed to print_download_speed, since that's
8519         what it does.
8520
8521 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
8522
8523         * progress.c (bar_update): If the downloaded amount becomes larger
8524         than the expected amount, adjust the expected amount accordingly.
8525
8526 2001-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
8527
8528         * utils.c (determine_screen_width): New function.
8529
8530         * main.c (main): New option `--progress=TYPE'.
8531         (main): Implement compatibility with the old option `--dot-style'.
8532
8533         * init.c: Removed cmd_spec_dotstyle -- that logic is now in
8534         dp_set_params.
8535         (cmd_spec_progress): New function.
8536
8537         * retr.c (get_contents): Use the progress_* functions instead of
8538         the old show_progress().
8539         (show_progress): Removed.
8540         (rate): Print "xxxx.xx K/s" instead of "KB/s".  Ditto for MB/s,
8541         etc.
8542
8543         * progress.c (set_progress_implementation): New function.
8544         (valid_progress_implementation_p): Ditto.
8545         (progress_create): Ditto.
8546         (progress_update): Ditto.
8547         (progress_finish): Ditto.
8548         (dp_create): Ditto.
8549         (dp_update): Ditto.
8550         (dp_finish): Ditto.
8551         (dp_set_params): Ditto.
8552         (print_elapsed): Ditto.
8553
8554 2001-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
8555
8556         * retr.c (show_progress): Use it.
8557
8558         * log.c (log_set_flush): New function.
8559
8560 2001-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
8561
8562         * utils.c (path_simplify): Don't remove trailing slashes.
8563
8564         * ftp.c (ftp_get_listing): Use it.
8565
8566         * utils.c (file_merge): New function.
8567
8568         * url.c (opt_url): Removed.
8569
8570         * recur.c (recursive_retrieve): Inline "opt_url" logic.
8571
8572         * main.c (main): Use xfree(), not free().
8573
8574         * url.c (rewrite_url_maybe): Renamed to rewrite_shorthand_url.
8575
8576         * ftp.c (ccon): Move `ccon' typedef here, since it's only used
8577         internally.
8578
8579         * config.h.in: Include a stub for HAVE_STRPBRK.
8580
8581         * cmpt.c (strpbrk): Include a replacement for systems without
8582         strpbrk().
8583
8584         * ftp.c: Use url_set_dir and url_set_file when modifying the URL.
8585
8586         * url.c (url_set_dir): New function.
8587         (url_set_file): Ditto.
8588
8589         * ftp-basic.c (ftp_process_type): Process FTP type here; the URL
8590         parser makes the URL "params" available, so we can do that in this
8591         function.
8592
8593         * retr.c: Ditto.
8594
8595         * ftp.c: Ditto; pass the local file information in `ccon'.
8596
8597         * http.c: Get rid of the ugly kludge that had URL being replaced
8598         with the proxy URL when proxy retrieval was requested.  Use a
8599         separate parameter to http_loop and gethttp for the proxy URL.
8600
8601         * http.c: Changed to reflect the fact that local file, proxy, and
8602         referer information are no longer stored in struct url.  The local
8603         file information is passed in `struct hstat' now.
8604
8605         * url.c: Reworked URL parsing to be more regular.  Reencode the
8606         URL using reencode_string.
8607         Removed non-URL-related information from struct url.  This
8608         includes fields `proxy', `local', and `referer'.
8609
8610 2001-11-22  Jochen Hein  <jochen@jochen.org>
8611
8612         * main.c (main): Split the copyright notice for easier
8613         translation.
8614
8615 2001-08-21  Dave Turner <dct25@hermes.cam.ac.uk>
8616
8617         * ftp-basic.c (ftp_size): New function to send non-standard SIZE
8618           command to server to request file size.
8619         * ftp.h (ftp_size): Export it.
8620         * ftp.c (getftp): Use new ftp_size function if restoring
8621           transfer of a file with unknown size.
8622
8623 2001-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
8624
8625         * url.c (parseurl): Don't depend on the now-obsolete TYPE.
8626
8627 2001-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
8628
8629         * url.c (getproxy): Handle URL shorthands.
8630
8631 2001-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
8632
8633         * main.c: Remove --wait / --waitretry backwards compatibility
8634         code.
8635
8636 2001-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
8637
8638         * main.c (main): Use it.
8639
8640         * url.c (rewrite_url_maybe): New function.
8641
8642 2001-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
8643
8644         * url.c: Clean up handling of URL schemes.
8645
8646 2001-05-13  Hrvoje Niksic  <hniksic@arsdigita.com>
8647
8648         * url.c: Get rid of `protostrings'.
8649         (skip_proto): Don't use protostrings.
8650         (has_proto): Ditto.
8651
8652 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
8653
8654         * Makefile.in: Conditionally compile getopt.o.
8655
8656 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
8657
8658         * md5.h: Renamed to gnu-md5.h.
8659
8660         * md5.c: Renamed to gnu-md5.c.
8661
8662         * http.c: Ditto.
8663
8664         * ftp-opie.c: Use the new macros.
8665
8666         * sysdep.h: Define md5-related macros.
8667
8668         * config.h.in: Define HAVE_SOLARIS_MD5 or HAVE_BUILTIN_MD5
8669         depending on which md5 implementation is used.
8670
8671 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
8672
8673         * res.c (res_register_specs): Initialize OLD and HP_OLD to appease
8674         the compiler.
8675
8676 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
8677
8678         * http.c (gethttp): Print the whole response line when printing
8679         headers is requested.
8680
8681 2001-05-12  Hrvoje Niksic  <hniksic@arsdigita.com>
8682
8683         * res.c: New file.  Implement all RES-related code here.
8684
8685 2001-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
8686
8687         * version.c: Wget 1.7.1 is released.
8688
8689 2001-11-16  Hrvoje Niksic  <hniksic@arsdigita.com>
8690
8691         * headers.c (header_extract_number): Ignore trailing whitespace.
8692
8693 2001-08-24  Ian Abbott  <abbotti@mev.co.uk>
8694
8695         * html-url.c (collect_tags_mapper): Fix bug converting links
8696         with -k option for tags with multiple link attributes by
8697         handling links in the order they appear.
8698
8699 2001-08-15  Ian Abbott  <abbotti@mev.co.uk>
8700
8701         * ftp.c (ftp_loop_internal): Avoid a potential buffer overflow in
8702           the call to the 'rate' function by moving it past the error
8703           checking for the 'getftp' function return value.
8704
8705 2001-11-16  Hrvoje Niksic  <hniksic@arsdigita.com>
8706
8707         * html-parse.c (advance_declaration): Use 0x22 instead of '"' or
8708         '\"'.  Different compilers' assert macros are broken in different
8709         ways.
8710
8711 2001-09-29  Christian Fraenkel  <c.fraenkel@gmx.net>
8712
8713         * http.c (gethttp): print debug output for errors occuring during
8714         the ssl handshake.
8715
8716 2001-11-16  Chris Seawood  <cls@seawood.org>
8717
8718         * init.c: Ditto.
8719
8720         * host.c: Ditto.
8721
8722         * connect.c: Ditto.
8723
8724         * sysdep.h: Support compilation under BEOS.
8725
8726 2001-06-08  Edward J. Sabol  <sabol@alderaan.gsfc.nasa.gov>
8727
8728         * url.c (url_equal): Fix a memory leak when parseurl returns an
8729         error on the second URL. Also, since url_equal is not used at the
8730         moment, do not compile it.
8731
8732         * url.h: Ditto for the prototype of url_equal.
8733
8734 2001-11-16  Hrvoje Niksic  <hniksic@arsdigita.com>
8735
8736         * html-parse.c (map_html_tags): Support XML-style empty tags.
8737
8738 2001-06-26  Hrvoje Niksic  <hniksic@arsdigita.com>
8739
8740         * wget.h (DO_REALLOC_FROM_ALLOCA): Check for do_realloc_newsize in
8741         loop condition because we're no longer setting SIZEVAR here.
8742
8743 2001-06-26  Hrvoje Niksic  <hniksic@arsdigita.com>
8744
8745         * wget.h (DO_REALLOC_FROM_ALLOCA): Set SIZEVAR after the memcpy()
8746         call because it needs the old value.
8747
8748 2001-06-18  Hrvoje Niksic  <hniksic@arsdigita.com>
8749
8750         * cookies.c (ATTR_NAME_CHAR): Allow almost any character to be in
8751         an attribute name.
8752
8753 2001-06-18  Hrvoje Niksic  <hniksic@arsdigita.com>
8754
8755         * url.c (url_filename): Make sure that slashes that sneak in to
8756         u->file via query string get protected.
8757         (file_name_protect_query_string): New function.
8758
8759 2001-06-14  Hrvoje Niksic  <hniksic@arsdigita.com>
8760
8761         * recur.c (recursive_retrieve): Also check undesirable_urls with
8762         canonicalized URL.
8763
8764 2001-06-14  Hrvoje Niksic  <hniksic@arsdigita.com>
8765
8766         * http.c (gethttp): Search `.netrc' with real host, not the proxy
8767         one.
8768
8769 2001-06-14  Hrvoje Niksic  <hniksic@arsdigita.com>
8770
8771         * sysdep.h (MAP_FAILED): Provide MAP_FAILED for systems that don't
8772         define it.
8773
8774 2001-06-09  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8775
8776         * ftp.h: Provide correct prototype for ftp_parse_ls().
8777
8778 2001-06-04  Hrvoje Niksic  <hniksic@arsdigita.com>
8779
8780         * version.c: Wget 1.7 is released.
8781
8782 2001-06-03  Karl Eichwalder  <ke@suse.de>
8783
8784         * ftp-ls.c (ftp_parse_ls): Fix typo.
8785
8786 2001-05-27  Hrvoje Niksic  <hniksic@arsdigita.com>
8787
8788         * all: Update copyright information.
8789
8790 2001-05-26  Hrvoje Niksic  <hniksic@arsdigita.com>
8791
8792         * http.c (gethttp): Indicate that the continued download failed
8793         for *this* file.
8794
8795 2001-05-26  Hrvoje Niksic  <hniksic@arsdigita.com>
8796
8797         * version.c: Wget 1.7-pre1 is released.
8798
8799 2001-05-26  Hrvoje Niksic  <hniksic@arsdigita.com>
8800
8801         * version.c: Updated version to 1.7-pre1.
8802
8803 2001-05-14  Hrvoje Niksic  <hniksic@arsdigita.com>
8804
8805         * gen_sslfunc.c: Don't include <sys/time.h> directly.
8806
8807 2001-05-14  Hrvoje Niksic  <hniksic@arsdigita.com>
8808
8809         * http.c (gethttp): Use real URL data for cookies, not the proxy
8810         stuff.
8811
8812 2001-05-12  Hrvoje Niksic  <hniksic@arsdigita.com>
8813
8814         * main.c (print_help): Document `--no-http-keep-alive'.
8815
8816         * utils.c (numdigit): Handle negative numbers *correctly*.
8817
8818         * hash.c (make_nocase_string_hash_table): Use term "nocase" rather
8819         than the confusing "unsigned".
8820
8821         * utils.c (string_set_contains): Renamed from string_set_exists.
8822
8823         * hash.c (hash_table_contains): Renamed from hash_table_exists.
8824
8825         * cookies.c: Move case-insensitive hash tables to hash.c.
8826
8827 2001-05-09  Hrvoje Niksic  <hniksic@arsdigita.com>
8828
8829         * http.c (gethttp): Before concluding that the file is already
8830         fully retrieved, make sure that the file existed and `Range' was
8831         actually requested.
8832
8833 2001-05-09  Hrvoje Niksic  <hniksic@arsdigita.com>
8834
8835         * cookies.c (eliminate_dups): New function.
8836         (build_cookies_request): Use it.
8837         (build_cookies_request): Set chain_store_size after reallocating
8838         all_chains.
8839         (check_domain_match): Annotated for easier future debugging.
8840         (store_cookie): In the debug message, print whether the cookie is
8841         permanent.
8842
8843 2001-05-08  Hrvoje Niksic  <hniksic@arsdigita.com>
8844
8845         * http.c (http_loop): Reset no_truncate before deciding whether to
8846         set it.
8847         (gethttp): Further clarify "-c conflicts with existing file" error
8848         message, based on input from Herold Heiko.
8849
8850 2001-05-07  Hrvoje Niksic  <hniksic@arsdigita.com>
8851
8852         * http.c (http_loop): If restval is set, set no_truncate to 1
8853         unconditionally.
8854
8855 2001-05-02  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
8856
8857         * ftp-ls.c (ftp_parse_winnt_ls): Assure months are being correctly
8858         converted. Pointed out by <Stefan.Weil@de.heidelberg.com>.
8859         (ftp_parse_vms_ls): Ditto.
8860
8861 2001-04-30  Hrvoje Niksic  <hniksic@arsdigita.com>
8862
8863         * init.c (cmd_address): Zero SIN before using it; apparently
8864         needed on *BSD.
8865
8866 2001-04-29  Hrvoje Niksic  <hniksic@arsdigita.com>
8867
8868         * ftp.c (ftp_loop_internal): Don't set NO_TRUNCATE if the file is
8869         empty.
8870
8871 2001-04-29  Hrvoje Niksic  <hniksic@arsdigita.com>
8872
8873         * main.c (main): Make `--cookies' respect its argument.
8874
8875 2001-04-28  Hrvoje Niksic  <hniksic@arsdigita.com>
8876
8877         * main.c (main): Removed undocumented option `--email-address'.
8878
8879         * netrc.c: Use the latest read_whole_line.
8880
8881         * init.c (defaults): Set opt.ftp_pass to "-wget@".
8882
8883         * mswindows.c (pwd_cuserid): Ditto.
8884
8885         * utils.c (pwd_cuserid): Removed.
8886
8887         * host.c (ftp_getaddress): Removed.
8888
8889 2001-04-28  Hrvoje Niksic  <hniksic@arsdigita.com>
8890
8891         (http_loop): Allocate space for filename_plus_orig_suffix with
8892         alloca; this is more efficient and removes the need to free it
8893         before each and every return.
8894
8895 2001-04-28  Hrvoje Niksic  <hniksic@arsdigita.com>
8896
8897         * http.c (gethttp): Return RETRUNNEEDED when the retrieval is
8898         unneeded because the file is already there and fully downloaded,
8899         and -c is specified.
8900         (http_loop): Handle RETRUNNEEDED.
8901
8902         * wget.h (uerr_t): New value RETRUNNEEDED.
8903
8904         * http.c (http_loop): Set no_truncate for files that both exist
8905         and are non-empty.
8906         (gethttp): Consider the download finished when restval >= contlen,
8907         not only when restval==contlen.
8908         (gethttp): Handle redirection before giving up due to -c.
8909         (gethttp): Clarify error message which explains that -c will not
8910         truncate the file.
8911         (gethttp): When returning CONTNOTSUPPORTED, don't forget to free
8912         the stuff that needs freeing and release the socket.
8913
8914 2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
8915
8916         * main.c (print_help): Wget booleans accept "off", not "no".
8917
8918 2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
8919
8920         * http.c (http_loop): If allow_cache is zero, always disable
8921         caching, not only when retrieving through proxy.
8922
8923         * init.c: Ditto.
8924
8925         * options.h (struct options): Rename proxy_cache to allow_cache.
8926
8927 2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
8928
8929         * http.c (mktime_from_utc): Improve documentation.
8930         (http_atotm): Put format strings into a separate array.
8931
8932 2001-04-27  Hrvoje Niksic  <hniksic@arsdigita.com>
8933
8934         * safe-ctype.h: Instead of throwing #error when isalpha is
8935         defined, redefine it to something that will throw a compile-time
8936         error if actually *used*.  Do the same for the rest of the
8937         standard C macros.
8938
8939 2001-04-26  Hrvoje Niksic  <hniksic@arsdigita.com>
8940
8941         * url.c (getproxy): Ignore empty proxy vars.
8942
8943 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
8944
8945         * http.c (http_loop): Would load cookies every time.
8946
8947         * cookies.c (load_cookies): Handle cookies whose values contain
8948         embedded spaces.
8949
8950 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
8951
8952         * utils.c: Define each DIGITS_* in one line.
8953
8954 2001-04-25  Roger L. Beeman  <beeman@cisco.com>
8955
8956         * http.c (http_atotm): Initialize t.tm_isdst to 0.
8957         (mktime_from_utc): Prevent mktime() from having discontinuities at
8958         DST transition points.
8959
8960 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
8961
8962         * html-url.c (get_urls_html): Fix documentation.
8963
8964 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
8965
8966         * url.c (UNSAFE_CHAR): Reimplement using a static table.
8967         (url_init): Removed.
8968         (init_unsafe_char_table): Removed.
8969
8970 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
8971
8972         * snprintf.c (dopr): Replace ISDIGIT with '0' <= ch && ch <= '9'.
8973
8974 2001-04-25  Hrvoje Niksic  <hniksic@arsdigita.com>
8975
8976         * utils.c: Document timer functions.
8977
8978         * retr.c (rate): Use it.
8979         (rate): Print in GB/s if transfer rate exceeds 1 GB/s.
8980
8981         * utils.c (wtimer_granularity): New function.
8982
8983 2001-04-24  Hrvoje Niksic  <hniksic@arsdigita.com>
8984
8985         * retr.c (show_progress): Ditto.
8986
8987         * ftp.c (getftp): Ditto.
8988
8989         * http.c (gethttp): Use new timer functions.
8990
8991         * utils.c (wtimer_allocate): New function.
8992         (wtimer_new): Ditto.
8993         (wtimer_delete): Ditto.
8994         (wtimer_reset): Ditto.
8995         (wtimer_elapsed): Ditto.
8996
8997 2001-04-24  Hrvoje Niksic  <hniksic@arsdigita.com>
8998
8999         * utils.c (long_to_string): New, faster version.  Favors smaller
9000         numbers; much of the calculation is now done at compile-time.
9001
9002 2001-04-24  Hrvoje Niksic  <hniksic@arsdigita.com>
9003
9004         * utils.c (numdigit): Handle negative numbers.
9005
9006 2001-04-23  Hrvoje Niksic  <hniksic@arsdigita.com>
9007
9008         * retr.c (show_progress): Print the download rate even when the
9009         percentages are not available.
9010
9011 2001-04-21  Hrvoje Niksic  <hniksic@arsdigita.com>
9012
9013         * ftp.c (getftp): Adjust expected_bytes if the length is
9014         authoritative.
9015
9016 2001-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
9017
9018         * url.c: Don't declare `construct'.
9019
9020         * hash.c (grow_hash_table): Speed up rehashing; inline storing of
9021         mappings to new locations.
9022         (hash_table_new): Make resize_threshold a field in the hash table,
9023         so we don't have to recalculate it in each hash_table_put.
9024         (grow_hash_table): Update resize_threshold.
9025         (MAX): Remove unused macro.
9026         (prime_size): Made static.
9027
9028 2001-04-14  Hrvoje Niksic  <hniksic@arsdigita.com>
9029
9030         * retr.c (retrieve_url): Call uri_merge, not url_concat.
9031
9032         * html-url.c (collect_tags_mapper): Call uri_merge, not
9033         url_concat.
9034
9035         * url.c (mkstruct): Use encode_string instead of xstrdup followed
9036         by URL_CLEANSE.
9037         (path_simplify_with_kludge): Deleted.
9038         (contains_unsafe): Deleted.
9039         (construct): Renamed to uri_merge_1.
9040         (url_concat): Renamed to uri_merge.
9041
9042 2001-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
9043
9044         * url.c (str_url): Use encode_string instead of the unnecessary
9045         CLEANDUP.
9046         (encode_string_maybe): New function, returns input string if no
9047         encoding is needed.
9048         (encode_string): Call encode_string_maybe to do the dirty work,
9049         xstrdup if no work needed.
9050
9051 2001-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
9052
9053         * wget.h (XDIGIT_TO_xchar): Define here.
9054
9055         * url.c (decode_string): Use new name.
9056         (encode_string): Ditto.
9057
9058         * http.c (XDIGIT_TO_xchar): Rename HEXD2asc to XDIGIT_TO_xchar.
9059         (dump_hash): Use new name.
9060
9061         * wget.h: Rename ASC2HEXD and HEXD2ASC to XCHAR_TO_XDIGIT and
9062         XDIGIT_TO_XCHAR respectively.
9063
9064 2001-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
9065
9066         * init.c: Include cookies.h.
9067
9068         * cookies.h: Declare cookies_cleanup.
9069
9070         * cookies.c (check_domain_match): Remove unused variable.
9071         (save_cookies): Remove extraneous argument from debug statement.
9072
9073         * host.c (same_host): Don't call skip_url.
9074
9075         * url.c (skip_url): Removed.  Removed its calls from various
9076         functions in url.c.
9077
9078 2001-04-13  Hrvoje Niksic  <hniksic@arsdigita.com>
9079
9080         * cookies.c (unsigned_string_hash): Use the new code in
9081         string_hash as reference.
9082
9083         * hash.c (hash_table_map): Allow deletion and change of the
9084         element processed by MAPFUN.
9085         (string_hash): Use the function from glib.
9086
9087 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
9088
9089         * config.h.in: Include #undef stub.
9090
9091         * hash.c (hash_table_remove): Rewrite to actually clear deleted
9092         entries instead of just marking them as deleted.
9093
9094 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
9095
9096         * hash.h: Declare hash_table_get_pair and hash_table_count.
9097
9098 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
9099
9100         * cookies.c: Declare http_atotm.
9101
9102 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
9103
9104         * ftp-ls.c (ftp_parse_unix_ls): Use octal constants for
9105         permissions.  A compiler that doesn't accept octal constants is
9106         seriously broken and shouldn't be used -- octal constants were
9107         present in K&R C!
9108
9109 2001-01-20  Karl Eichwalder  <ke@suse.de>
9110
9111         * Makefile.in: Provide and use DESTDIR according to the Coding
9112         Standards.
9113
9114 2001-04-12  Hrvoje Niksic  <hniksic@arsdigita.com>
9115
9116         * ftp-ls.c (ftp_parse_vms_ls): Make seconds optional in time
9117         specification.
9118
9119 2001-04-11  Hrvoje Niksic  <hniksic@arsdigita.com>
9120
9121         * url.c (parseurl): Don't strip trailing slash when u->dir is "/"
9122         because that strips the *leading* slash, thus forcing relative
9123         FTP retrieval.
9124
9125 2001-04-10  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
9126
9127         * ftp.c (getftp): Convert initial FTP directory from VMS to UNIX
9128         notation for VMS servers.
9129         (ftp_retrieve_dirs): Do not prepend '/' to f->name when
9130         odir is an empty string.
9131
9132 2001-04-10  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
9133
9134         * ftp-ls.c (ftp_parse_winnt_ls): Made the fix for AM/PM more
9135         effective. Suggested by Edward J. Sabol.
9136
9137 2001-04-10  Hrvoje Niksic  <hniksic@arsdigita.com>
9138
9139         * cookies.c (build_cookies_request): Use and sort cookies from all
9140         matching domains.
9141         (build_cookies_request): Check for duplicates before generating
9142         the `Cookies' header.
9143
9144         * main.c (main): Don't load cookies here.
9145         (main): Make loadcookies and savecookies call the correct command.
9146
9147         * http.c (http_loop): Load cookies on-demand.
9148
9149 2001-04-09  Hrvoje Niksic  <hniksic@arsdigita.com>
9150
9151         * http.c (gethttp): Fix indentation of SSL ifdef.
9152
9153 2001-04-09  Hrvoje Niksic  <hniksic@arsdigita.com>
9154
9155         * ftp.c (ftp_retrieve_dirs): Don't forcibly prepend "/" to u->dir;
9156         that hack is no longer necessary.
9157         (getftp): Prepend initial directory to *non*-absolute u->dir's.
9158
9159 2001-04-09  Hrvoje Niksic  <hniksic@arsdigita.com>
9160
9161         * init.c (cmd_file): New function.
9162         (enable_tilde_expansion): New variable.
9163         (run_wgetrc): Use it.
9164         (cmd_file): Use it.
9165
9166 2001-04-08  Hrvoje Niksic  <hniksic@arsdigita.com>
9167
9168         * init.c: Include cookie-related options.
9169
9170         * main.c (main): Include cookie-specific options.
9171         (main): Load cookies before download is finished.
9172         (main): Save cookies when done.
9173
9174         * http.c (gethttp): Process the `Set-Cookie' header.
9175         (gethttp): Include cookies in the response.
9176
9177         * cookies.c: New file.
9178
9179 2001-04-08  Hrvoje Niksic  <hniksic@arsdigita.com>
9180
9181         * utils.c (datetime_str): New function.
9182
9183 2001-04-08  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
9184
9185         * ftp-ls.c (ftp_parse_winnt_ls): The AM/PM change did assume
9186         12:01PM == 00:01, which was obviously wrong. Taken care of this
9187         anomaly.
9188
9189         * ChangeLog: Removed an excess conflict marker. Reformatted the
9190         entry by Philipp Thomas from 2001-03-09.
9191
9192         * ftp-ls.c (ftp_parse_winnt_ls): Ensure that adjusted PM hours lay
9193         between 0 and 23. Elminate unused variable `sec'.
9194
9195 2001-04-08  Hrvoje Niksic  <hniksic@arsdigita.com>
9196
9197         * hash.c (hash_table_count): New function.
9198
9199 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
9200
9201         * utils.c (read_file): Cast MAP_FAILED to char *.  Enforced by
9202         Digital Unix cc.
9203
9204 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
9205
9206         * config.h.in: Oops, do the namespace tweaks only on systems we
9207         know about.
9208
9209 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
9210
9211         * hash.c: Include <string.h>.
9212
9213 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
9214
9215         * config.h.in: Define "compilation environment" options that work
9216         under Linux and Solaris.  To be reviewed on other OS'es.
9217
9218 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
9219
9220         * http.c (gethttp): Prepend literal newline with `\n\'.
9221
9222 2001-04-06  Hrvoje Niksic  <hniksic@arsdigita.com>
9223
9224         * sysdep.h: Don't define VERY_LONG_FORMAT.
9225
9226         * utils.c (very_long_to_string): New function.
9227         (legible_very_long): Use it; don't use VERY_LONG_FORMAT.
9228
9229 2001-04-04  Christian Fraenkel  <christian.fraenkel@gmx.net>
9230
9231         * url.c (parse_uname): Would run past the end of the string if the
9232         username was present, but the URL did not contain a slash, e.g.
9233         http://foo:bar@myhost.
9234
9235 2001-04-03  KOJIMA Hajime  <kjm@rins.ryukoku.ac.jp>
9236
9237         * http.c (http_atotm): Use %A instead of %a to match full
9238         weekday.  (On most systems there is no difference.)
9239
9240 2001-04-03  Paul Bludov  <paul@ozero.net>
9241
9242         * mswindows.c (sleep): Use SleepEx() instead of Sleep().
9243         (ws_changetitle): Use alloca() instead of malloc() to avoid memory
9244         leak.
9245         (ws_mypath): Use GetModuleFileName instead of argv[0].
9246         (ws_startup): Use data.wVersion for comparison.
9247
9248 2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
9249
9250         * http.c (http_loop): Ditto.
9251
9252         * ftp.c (ftp_loop_internal): Made the check whether to continue
9253         retrieval `-O'-friendly.
9254
9255 2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
9256
9257         * netrc.c (parse_netrc): Don't trim the line endings explicitly;
9258         they will be handled as whitespace.
9259         (parse_netrc): Correctly handle lines that end with whitespace.
9260
9261 2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
9262
9263         * retr.c (retrieve_url): New variable global_download_count used
9264         to identify first retrieval.
9265
9266         * ftp.c (getftp): Ditto.
9267
9268         * http.c (gethttp): Rewind opt.dfp only on first retrieval.
9269
9270 2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
9271
9272         * init.c (cmd_address): Heap-allocate the address that gets stored
9273         to CLOSURE.  Old code would simply assign an address on the stack.
9274
9275 2001-04-01  Nicolas Lichtmaier <nick@debian.org>
9276
9277         * ftp.c (ftp_get_listing): Propagate error status.
9278         (ftp_retrieve_glob): Use it.
9279         (ftp_loop): Ditto.
9280
9281 2001-04-01  Nicolas Lichtmaier <nick@debian.org>
9282
9283         * main.c (main): Add -C to the string that is the third arg to
9284         getopt_long().
9285
9286 2001-04-01  Hrvoje Niksic  <hniksic@arsdigita.com>
9287
9288         * ftp.c (getftp): Don't start the download from scratch if `-c'
9289         was specified, but the file is already fully downloaded.
9290
9291         * http.c (gethttp): Don't truncate a pre-existing file if `-c' was
9292         specified and the server doesn't support continued download.
9293         (gethttp): Don't start the download from scratch if `-c' was
9294         specified, but the file is already fully downloaded.
9295
9296 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
9297
9298         (recursive_retrieve): Don't clear the hash tables at this point at
9299         all; it interferes with the normal operation of register_download.
9300
9301 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
9302
9303         * recur.c (recursive_retrieve): Clear the hash tables only when
9304         they are defined.
9305
9306 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
9307
9308         * http.c (gethttp): Make sure the socket is closed with
9309         CLOSE_INVALIDATE before we have drained the body.
9310
9311 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
9312
9313         * retr.c (retrieve_url): Call register_download() for downloaded
9314         files and register_html() for downloaded HTML files.
9315
9316         * recur.c (register_download): New function; register here that a
9317         file has been downloaded, rather than in recursive_retrieve().
9318         (register_html): New function; enqueue the location of HTML files
9319         here rather than in recursive_retrieve().
9320
9321 2001-03-31  Hrvoje Niksic  <hniksic@arsdigita.com>
9322
9323         * main.c (print_help): Use multiple fputs instead of a single ugly
9324         printf().
9325         (main): Consistently assign numbers >128 to options without a
9326         corresponding character.
9327
9328 2001-03-09  Philipp Thomas  <pthomas@suse.de>
9329
9330         * safe-ctype.h: New file. Locale independent ctype.h replacement
9331         taken from libiberty.
9332
9333         * safe-ctype.c: New file. Tables for above.
9334
9335         * Makefile.in: Add safe-ctype$o to OBJS.  Add dependencies for
9336         safe-ctype$o.
9337
9338         * cmpt.c: Remove include of ctype.h. Use ISSPACE instead of
9339         isspace.
9340
9341         * ftp-basic.c: Don't include ctype.h.
9342
9343         * ftp-ls.c: Likewise.
9344
9345         * ftp.c: Likewise.
9346
9347         * headers.c: Likewise.
9348
9349         * host.c: Likewise.
9350
9351         * html-parse.c: Likewise.
9352
9353         * html-url.c: Likewise.
9354
9355         * http.c: Likewise.
9356
9357         * init.c: Likewise.
9358
9359         * main.c: Likewise. Set LC_CTYPE along with LC_MESSAGES.
9360
9361         * netrc.c: Likewise.
9362
9363         * recur.c: Likewise.
9364
9365         * retr.c: Likewise.
9366
9367         * snprintf.c: Replace ctype.h with safe-ctype.h. Use ISDIGIT
9368         instead of isdigit.
9369
9370         * sysdep.h: Remove defines of ctype macros as they aren't needed
9371         for safe-ctype-h.
9372
9373         * url.c: Don't include ctype.h.
9374
9375         * utils.c: Likewise.
9376
9377         * wget.h: Include safe-ctype.h.
9378
9379 2001-03-27  Dan Harkless  <wget@harkless.org>
9380
9381         * Makefile.in: Moved top_builddir out of "User configuration
9382         section" of top Makefile and analogous spot in this one.
9383
9384 2001-03-17  Dan Harkless  <wget@harkless.org>
9385
9386         * Makefile.in: Include @SSL_INCLUDES@ substition in INCLUDES.
9387         Define top_builddir.  Link wget with libtool so the user doesn't
9388         have to supply a bunch of custom environment variables to
9389         correctly link with the OpenSSL shared libraries.
9390
9391 2001-03-06  Hack Kampbjorn  <hack@hackdata.com>
9392
9393         * http.c (gethttp): skip :port in host header if it is the
9394         DEFAULT_HTTPS_PORT when using SSL.
9395
9396         * url.c: move the #define of DEFAULT_HTTP_PORT, DEFAULT_FTP_PORT
9397         and DEFAULT_HTTPS_PORT to the header file so it can be use in the
9398         rest of the code.
9399         * url.h: Ditto
9400
9401 2001-03-01  Jonas Jensen  <bones@huleboer.dk>
9402
9403         * retr.c (show_progress): Correctly calculate the number of bytes
9404         in the first line of the download that have been actually
9405         downloaded in this run.
9406
9407 2001-02-23  Dan Harkless  <wget@harkless.org>
9408
9409         * main.c (print_help): --help documentation for -N said it would
9410         re-download files if they had the _same_ timestamp on server.
9411         (print_help): -nr belongs in "FTP options" section of --help
9412         output, not "Recursive retrieval" section.  Alphabetized FTP
9413         options by long option name.
9414
9415 2001-02-16  Dan Harkless  <wget@harkless.org>
9416
9417         * init.c (commands): Hack Kampbjørn <hack@hackdata.com> discovered
9418         that "httpsproxy" had been inserted into commands[] out of
9419         alphabetical order, causing "BUG: unknown command `httpuser'".
9420
9421 2001-02-13  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
9422
9423         * ftp-ls.c (ftp_parse_ls): Added support of ST_MACOS (Unix-like
9424         listing without correct permissons).
9425
9426         * ftp.h (stype): Added ST_MACOS to identify the NetPresenz MacOS
9427         FTP server.
9428
9429         * ftp.c (ftp_retrieve_list): New mirroring logic: A remote file
9430         shall be donwloaded only when it's newer than the local copy or
9431         when it has the same timeestamp but its size is different. ST_VMS
9432         and ST_MACOS as special cases that lie about file size.
9433
9434         * ftp-ls.c (ftp_parse_ls): Support for ST_MACOS.
9435
9436         * Makefile.in: Removed dependency on ftpparse library due to unclear
9437         copyright issues and absence of any feedback to our queries.
9438
9439         * ftp-ls.c: Removed dependency on ftpparse library due to unclear
9440         copyright issues and absence of any feedback to our queries.
9441         (ftp_parse_ls): Added a warning message when remote server system
9442         does not seem to be suported by wget.
9443         (ftp_parse_vms_ls): New function for parsing VMS ftp
9444         server listing output.
9445         (clean_line): New function responsible for removing
9446         end-of-line characters from FTP listing texts.
9447
9448         * ftp.c (getftp): Global variables pwd and host_type are now
9449         member of the ccon structure under names ccon.id and ccon.rs.
9450
9451         * ftp.h (struct ccon): Added formed global variables from ftp.c,
9452         enum stype rs (remote system identification) and char *id (initial
9453         working directory), as suggested by Hrvoje.
9454
9455         * url.c (parse_uname): Added support for passwords containing '@'
9456         characters.
9457         (skip_uname): Ditto.
9458
9459 2001-02-11  Hrvoje Niksic  <hniksic@arsdigita.com>
9460
9461         * ftp.c (ftp_loop): Reset con.
9462
9463 2001-01-06  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
9464
9465         * url.c (parse_uname): Added support for passwords containing '@'
9466         characters.
9467         (skip_uname): Ditto.
9468
9469 2001-02-11  Hack Kampbjørn  <hack@hackdata.com>
9470
9471         * url.c (parseurl): Debug-print u->ftp_type.
9472
9473 2001-02-11  Hrvoje Niksic  <hniksic@arsdigita.com>
9474
9475         * ftp.c (ftp_loop_internal): Disable padding.
9476         (getftp): Ditto.
9477
9478         * http.c (http_loop): Disable padding.
9479
9480         * retr.c (show_progress): Use it to enable padding.
9481
9482         * retr.c (rate): Optional parameter PAD for padding the rate.
9483
9484 2001-02-10  Hrvoje Niksic  <hniksic@arsdigita.com>
9485
9486         * retr.c (show_progress): Make sure that the last output line
9487         includes progress.
9488
9489 2001-02-10  Jonas Jensen  <bones@huleboer.dk>
9490
9491         * retr.c (show_progress): Print the download rate along with the
9492         percentages.
9493         Along with Anders Thorsby <anders@thorsby.dk>.
9494
9495 2001-02-10  Tim Mooney  <mooney@dogbert.cc.ndsu.NoDak.edu>
9496
9497         * ftp.h: Rename enums `command' to `wget_ftp_command' and
9498         `fstatus' to `wget_ftp_status' because old names clash with Tru64
9499         net/if.h.
9500
9501 2001-02-08  Christian Fraenkel <christian.fraenkel@gmx.net>
9502
9503         * gen_sslfunc.c: verify_callback is now static
9504
9505         * gen_sslfunc.c (init_ssl): load certificate if specified
9506
9507         * gen_sslfunc.c (ssl_printerr): new function
9508
9509         * init.c: added new --sslcertfile and --sslcertkey switches
9510
9511         * main.c: ditto
9512
9513         * options.h: ditto
9514
9515         * http.c (gethttp): abort when init_ssl fails
9516
9517 2001-01-23  Herold Heiko  <Heiko.Herold@previnet.it>
9518
9519         * mswindows.h: Include <malloc.h>; it's needed for alloca().
9520
9521 2001-01-10  Dan Harkless  <wget@harkless.org>
9522
9523         * url.c (str_url): Clarified this function's comment header after
9524         Hrvoje answered my question on the list as to when hide != 1.
9525         Also Hrvoje pointed out I need to use xstrdup() on the string literal.
9526
9527 2001-01-06  Hrvoje Niksic  <hniksic@arsdigita.com>
9528
9529         * connect.c (bindport): Declare addrlen as int.  Diagnosed by
9530         Drazen Kacar <dave@arsdigita.com>.
9531         (conaddr): Ditto.
9532
9533 2001-01-09  Dan Harkless  <wget@harkless.org>
9534
9535         * html-url.c: A bunch of fixup of `--page-requisites'-related
9536         comments to reflect Hrvoje's changes to my code when transplanting
9537         it into this new file, to fix spelling mistakes, to clarify, etc.
9538
9539         * url.c (write_backup_file): Clarified a comment.
9540         (str_url): Henrik van Ginhoven pointed out on the list that we
9541         shouldn't give away the number of characters in the password by
9542         replacing each character with a 'x'.  Use "<password>" instead.
9543
9544         * ftp.c (ftp_retrieve_dirs): The bug where recursion into FTP
9545         directories didn't work if logging in put you in a directory other
9546         than "/" is fixed now.  Removed the comment here warning of the bug.
9547
9548         * main.c (print_help): --continue's description was misleading.
9549         We don't "restart", we "resume".  Also, better to say
9550         "partially-downloaded file" rather than just "existing file".
9551
9552 2001-01-06  Dan Harkless  <wget@harkless.org>
9553
9554         * ChangeLog: The '[Not in 1.6 branch.]'s were decided not to be
9555         the best way to go about my aim.  Removed them in favor of:
9556
9557         * ChangeLog-branches/1.6_branch.ChangeLog: New file.
9558
9559 2001-01-04  Hrvoje Niksic  <hniksic@arsdigita.com>
9560
9561         * url.c (replace_attr): New function, to be used by both
9562         TO_COMPLETE and TO_RELATIVE case in convert_links.
9563         (find_fragment): New function for finding URL fragments.
9564         (replace_attr): Better handle the case where the original string
9565         is not quoted.  Use find_fragment.
9566         (convert_links): Use replace_attr().
9567
9568 2000-12-31  Dan Harkless  <wget@harkless.org>
9569
9570         * ChangeLog: Since this flat file doesn't have multiple branches,
9571         looking at the dates would make you think that things went into
9572         1.6 that actually just went into the 1.7-dev branch.  Added "[Not
9573         in 1.6 branch.]" where appropriate to clarify.
9574
9575 2000-12-30  Dan Harkless  <wget@harkless.org>
9576
9577         * ftp.c, http.c:  Applied Hack Kampbjørn <hack@hackdata.com>'s
9578         patch to deal with h_errno not being defined in netdb.h under Cygwin.
9579
9580 2000-12-18  Csaba Raduly  <csaba.raduly@sophos.com>
9581
9582         * sysdep.h: Include <malloc.h> and <io.h> under Watcom.
9583
9584 2000-12-17  Igor Khristophorov  <igor@atdot.org>
9585
9586         * http.c (check_end): Fix test for '+' or '-'.
9587
9588 2000-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
9589
9590         * url.c (parseurl): Rename inner loop var from i to ind to avoid
9591         clash with the function top-level-declared variable i.
9592         (str_url): Likewise, rename inner-loop i to j.
9593
9594         * recur.c (parse_robots): Don't declare LEN at top of function.
9595         (robots_match): Renamed parameter FORBIDDEN to avoid hiding of
9596         global variable.
9597
9598         * main.c (main): Change erroneous use of bitwise and to logical.
9599
9600         * init.c (cmd_address): Don't heap-allocate `sin'; it can be on
9601         the stack because it will be copied to closure.
9602
9603         Thanks to Csaba Raduly's run of PC-LINT over the sources.
9604
9605 2000-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
9606
9607         * http.c (basic_authentication_encode): Use xmalloc(), not
9608         malloc().  Thanks to Csaba Raduly's run of PC-LINT over the
9609         sources.
9610
9611 2000-12-17  Csaba Raduly  <csaba.raduly@sophos.com>
9612
9613         * sysdep.h: Test for __EMX__ rather than for EMXOS2 for OS/2
9614         compilation.
9615
9616 2000-12-17  Hrvoje Niksic  <hniksic@arsdigita.com>
9617
9618         * mswindows.c: Include <errno.h>.
9619
9620         * gen_sslfunc.c: Include <errno.h>.
9621
9622         * ftp-basic.c: Don't attempt to declare errno or h_errno because
9623         they're not used.
9624
9625         * main.c: Include <errno.h> because errno is used.
9626
9627         * ftp.c: Ditto.
9628
9629         * http.c: Include <netdb.h> for h_errno.
9630
9631 2000-12-13  Hrvoje Niksic  <hniksic@arsdigita.com>
9632
9633         * html-parse.c (advance_declaration): MSVC assert() chokes on
9634         '\"'.  Use '"' instead.
9635
9636 2000-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
9637
9638         * utils.c (xfree_real): Removed.
9639         (xfree_debug): Just call free().
9640
9641         * wget.h (xfree): Make it an alias for free.
9642
9643 2000-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
9644
9645         * http.c (http_loop): Furthermore, touch output_document only if
9646         it is known to be an existing regular file.
9647
9648 2000-12-11  Hrvoje Niksic  <hniksic@arsdigita.com>
9649
9650         * ftp.c (ftp_retrieve_list): Ditto.
9651
9652         * http.c (http_loop): Touch output_document if that is used for
9653         output.
9654
9655 2000-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
9656
9657         * http.c: Include gen_sslfunc.h after including Wget's headers.
9658         (persistent_available_p): Needed coma before `int ssl'.
9659
9660 2000-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
9661
9662         * ftp.c (ftp_loop_internal): Ditto.
9663
9664         * http.c (http_loop): Use it.
9665
9666         * retr.c (sleep_between_retrievals): New function that handles the
9667         logic of opt.wait and opt.waitretry.
9668
9669 2000-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
9670
9671         * rbuf.h: Implement only a single version of RBUF_READCHAR, using
9672         rbuf_read_bufferful when the buffer is depleted.
9673
9674         * rbuf.c (rbuf_read_bufferful): New function.
9675
9676 2000-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
9677
9678         * gen_sslfunc.h: Use ansi2knr style function declarations.
9679
9680         * gen_sslfunc.c: Reformat according to the GNU coding standards.
9681         More should be done.
9682
9683         * http.c (persistent_available_p): Place the cheap SSL test nearer
9684         the top of the function.
9685         (CLOSE_FINISH, CLOSE_INVALIDATE): Define only one version of each.
9686
9687 2000-12-05  Hrvoje Niksic  <hniksic@arsdigita.com>
9688
9689         * url.c (init_unsafe_char_table): Reinstate space as an unsafe
9690         char.
9691
9692 2000-12-03  Christian Fraenkel <christian.fraenkel@gmx.net>
9693
9694         * Makefile.in: added gen_sslfunc object
9695         * config.h.in: added HAVE_SSL define
9696         * connect.c: changed select_fd from static int to int
9697         * connect.h: ditto
9698         * gen_sslfunc.h: New file
9699         * gen_sslfunc.c: ditto
9700         * http.c: added HTTPS fuctionality
9701         * retrc.c: ditto
9702         * url.c: ditto
9703         * init.c: added opt.httpsproxy
9704         * options.h: ditto
9705         * rbuf.h: added alternate rbuf struct
9706         * wget.h: added CONSSLERR
9707         * rbuf.c: ditto
9708
9709         * http.c: Added HTTPS fuctionality.
9710
9711         * retrc.c: Ditto.
9712
9713         * url.c: Ditto.
9714
9715         * init.c: Added opt.httpsproxy.
9716
9717         * options.h: Ditto.
9718
9719         * rbuf.h: Added alternate rbuf struct.
9720
9721         * wget.h: Added CONSSLERR.
9722
9723         * rbuf.c: Ditto.
9724
9725 2000-11-30  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
9726
9727         * ftp-ls.c (ftp_parse_unix_ls): Added second parameter
9728         "ignore_perms" to ignore file and directory permissions for
9729         Windows NT FTP server listings.
9730         (ftp_parse_winnt_ls): New function.
9731         (ftp_parse_ls): Parses UNIX and Windows NT listings
9732         separately. Simple heuristics for distinguishing between UNIX and
9733         MS-DOS-like FTP listing provided by Windows NT FTP service.
9734
9735 2000-11-18  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
9736
9737         * ftpparse.c, ftpparse.h: New files.
9738
9739         * ftp-ls.c (ftp_parse_ls): Use ftp_parse_unix_ls for UNIX servers
9740         only. Use ftp_parse_nonunix_ls otherwise.
9741         (ftp_parse_nonunix_ls): Stub to the ftpparse library handling all
9742         exotic FTP servers.
9743
9744         * ftp.h (stype): New enum, distinguishes UNIX, VMS, and "other"
9745         FTP servers.
9746
9747         * ftp.c: New static wariables host_type, pwd, and pwd_len.
9748         (getftp): Support for VMS. Support for FTP servers that do not
9749         place you in the root directory after login.
9750         (ftp_retrieve_list): VMS is silent about the real file size, issue
9751         a more appropriate message.
9752         (ftp_get_listing): Pass host_type to ftp_parse_ls.
9753
9754         * ftp-basic.c (ftp_pwd, ftp_syst): New functions.
9755
9756 2000-11-30  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
9757
9758         * ftp-ls.c (ftp_parse_unix_ls): Added second parameter
9759         "ignore_perms" to ignore file and directory permissions for
9760         Windows NT FTP server listings.
9761         (ftp_parse_winnt_ls): New function.
9762         (ftp_parse_ls): Parses UNIX and Windows NT listings
9763         separately. Simple heuristics for distinguishing between UNIX
9764         and MS-DOS-like FTP listing provided by Windows NT FTP service.
9765
9766 2000-11-29  John Summerfield  <summer@OS2.ami.com.au>
9767
9768         * netrc.c (parse_netrc): Get rid of line ending.
9769
9770 2000-11-25  Hrvoje Niksic  <hniksic@arsdigita.com>
9771
9772         * ftp.c (ftp_retrieve_list): Undo typo "fix" until resolution by
9773         Dan.
9774
9775 2000-11-24  Karl Eichwalder  <ke@suse.de>
9776
9777         * main.c (print_help): Untabify.
9778
9779 2000-11-23  Hrvoje Niksic  <hniksic@arsdigita.com>
9780
9781         * utils.c (xrealloc_debug): Do the unregister/register thing only
9782         if the pointer has actually changed.
9783         (xmalloc_real): Declare `static' in DEBUG_MALLOC builds.
9784         (xfree_real): Ditto.
9785         (xrealloc_real): Ditto.
9786         (xstrdup_real): Ditto.
9787
9788 2000-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
9789
9790         * ftp.c (getftp): ftp_getaddress() returns a malloc'ed copy of the
9791         string; no need to strdup() it.
9792         (getftp): Make pwd_len a local variable.
9793         (ftp_loop): Free PWD before returning.
9794
9795         * init.c (cleanup): Free opt.ftp_pass only if it's non-NULL.
9796
9797 2000-11-22  Hrvoje Niksic  <hniksic@arsdigita.com>
9798
9799         * all: Use xfree() instead of free.
9800
9801         * utils.c (xfree): New function.
9802
9803 2000-11-21  Hrvoje Niksic  <hniksic@arsdigita.com>
9804
9805         * url.c (convert_links): HTML-quote the converted string.
9806
9807         * utils.c (html_quote_string): Move here from ftp-ls.c
9808         (html_quote_string): Make non-static; declare in utils.h.
9809         (html_quote_string): Convert SP to &#32;.
9810
9811 2000-11-21  Hrvoje Niksic  <hniksic@arsdigita.com>
9812
9813         * ftp.c (getftp): Reformat Jan's code according to GNU coding
9814         standards; remove (debugging?) printf's; use '\0' for the ASCII
9815         zero character.  Use alloca() instead of malloc() for
9816         inter-function temporary allocations.
9817
9818 2000-11-18  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
9819
9820         * ftpparse.c, ftpparse.h: New files.
9821
9822         * ftp-ls.c (ftp_parse_ls): Use ftp_parse_unix_ls for UNIX servers
9823         only. Use ftp_parse_nonunix_ls otherwise.
9824         (ftp_parse_nonunix_ls): Stub to the ftpparse library handling all
9825         exotic FTP servers.
9826
9827         * ftp.h (stype): New enum, distinguishes UNIX, VMS, and "other"
9828         FTP servers.
9829
9830         * ftp.c: New static wariables host_type, pwd, and pwd_len.
9831         (getftp): Support for VMS. Support for FTP servers that do not
9832         place you in the root directory after login.
9833         (ftp_retrieve_list): VMS is silent about the real file size, issue
9834         a more appropriate message.
9835         (ftp_get_listing): Pass host_type to ftp_parse_ls.
9836
9837         * ftp-basic.c (ftp_pwd, ftp_syst): New functions.
9838
9839 2000-11-21  Hrvoje Niksic  <hniksic@arsdigita.com>
9840
9841         * hash.c (hash_table_put): Don't overwrite deleted mappings.
9842
9843 2000-11-21  Hrvoje Niksic  <hniksic@arsdigita.com>
9844
9845         * hash.c (find_mapping): New function.
9846         (hash_table_get): Use it.
9847         (hash_table_get_pair): Ditto.
9848         (hash_table_exists): Ditto.
9849         (hash_table_remove): Ditto.
9850         (hash_table_remove): Really delete the entry if the mapping
9851         following LOCATION is empty.
9852
9853         * utils.c (string_set_add): Check whether the element has existed
9854         before.
9855
9856         * hash.c (hash_table_get_pair): New function.
9857
9858 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
9859
9860         * http.c (http_process_type): Ignore trailing whitespace; use
9861         strdupdelim().
9862
9863         * recur.c (recursive_retrieve): Use the new `convert' field.
9864         (convert_all_links): Ditto.
9865         (convert_all_links): Don't respect meta_disallow_follow.
9866
9867         * html-url.c (handle_link): Fill out link_relative_p and
9868         link_complete_p.
9869
9870         * url.h (struct _urlpos): Make elements more readable.
9871
9872         * recur.c (recursive_retrieve): Call slist_prepend instead of
9873         slist_append.
9874         (convert_all_links): Call slist_nreverse before iterating through
9875         urls_html.
9876
9877         * utils.c (slist_prepend): New function.
9878         (slist_nreverse): Ditto.
9879
9880 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
9881
9882         * http.c (check_end): Constify.
9883
9884 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
9885
9886         * http.c (http_loop): If username and password are known, try the
9887         `Basic' authentication scheme by default.
9888
9889         * connect.h: Declare test_socket_open.
9890
9891 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
9892
9893         * version.c: Bump version from 1.5.3+dev to 1.7-dev.
9894
9895 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
9896
9897         * http.c (gethttp): Don't use the return value of sprintf().
9898         (gethttp): Inhibit keep-alive if opt.http_keep_alive is 0.
9899
9900 2000-11-20  Hrvoje Niksic  <hniksic@arsdigita.com>
9901
9902         * recur.c (recursive_retrieve): Print the "so we don't load"
9903         debugging message only if we really don't load.
9904
9905         * http.c (gethttp): Inhibit keep-alive if proxy is being used.
9906         (gethttp): Don't request keep-alive if keep-alive is inhibited.
9907
9908 2000-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
9909
9910         * http.c (gethttp): Make the HTTP persistent connections more
9911         robust.
9912
9913 2000-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
9914
9915         * retr.c (get_contents): If use_expected, make sure that the
9916         appropriate amount of data is being read.
9917
9918         * http.c (gethttp): Check for both `Keep-Alive: ...' and
9919         `Connection: Keep-Alive'.
9920
9921         * wget.h (DEBUGP): Call debug_logprintf only if opt.debug is
9922         turned on.
9923
9924 2000-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
9925
9926         * http.c (connection_available_p): Use it.
9927
9928         * connect.c (test_socket_open): New function.
9929
9930         * http.c (gethttp): Support persistent connections.  Based on the
9931         ideas, and partly on code, by Sam Horrocks <sam@daemoninc.com>.
9932         (register_persistent): New function.
9933         (connection_available_p): Ditto.
9934         (invalidate_connection): Ditto.
9935
9936 2000-11-19  Hrvoje Niksic  <hniksic@arsdigita.com>
9937
9938         * url.c (convert_links): Handle UREL2ABS case.
9939
9940         * recur.c (recursive_retrieve): Instead of the list
9941         urls_downloaded, use hash tables dl_file_url_map and
9942         dl_url_file_map.
9943         (convert_all_links): Use them to retrieve data.
9944
9945         * host.c (clean_hosts): Free the hash tables.
9946
9947         * main.c (private_initialize): Call host_init().
9948
9949         * host.c (store_hostaddress): Use a saner, hash table-based data
9950         model.
9951         (realhost): Ditto.
9952         (host_init): Initialize the hash tables.
9953
9954 2000-11-18  Hrvoje Niksic  <hniksic@arsdigita.com>
9955
9956         * utils.c (slist_append): Eviscerate NOSORT.  Hash tables are now
9957         used for what the sorted slists used to be used for.
9958         (slist_contains): Don't rely on the list being sorted.
9959         (slist_append): Simplify the code.
9960
9961         * recur.c (recursive_cleanup): Use free_string_set.
9962
9963         * utils.c (string_set_add, string_set_exists, string_set_free):
9964         New functions for easier freeing of hash tables whose keys are
9965         strdup'ed strings.
9966
9967         * recur.c (recursive_retrieve): Use the hash table functions for
9968         storing undesirable URLs.
9969
9970         * hash.c: New file.
9971
9972 2000-11-17  Hrvoje Niksic  <hniksic@arsdigita.com>
9973
9974         * main.c (private_initialize): Call url_init.
9975         (main): Call private_initialize.
9976
9977         * url.c (unsafe_char_table): New table.
9978         (UNSAFE_CHAR): Use it.
9979         (init_unsafe_char_table): New function.
9980         (url_init): New function; call init_unsafe_char_table.
9981
9982 2000-11-16  Hrvoje Niksic  <hniksic@arsdigita.com>
9983
9984         * mswindows.h: Define snprintf and vsnprintf to _snprintf and
9985         _vsnprintf respectively.
9986
9987 2000-11-15  Hrvoje Niksic  <hniksic@arsdigita.com>
9988
9989         * config.h.in: Do the _XOPEN_SOURCE and _SVID_SOURCE things only
9990         on Linux.
9991
9992 2000-11-15  Hrvoje Niksic  <hniksic@arsdigita.com>
9993
9994         * html-url.c (handle_link): Handle HTML fragment identifiers.
9995
9996         * recur.c (recursive_retrieve): If norobot info is respected and
9997         the file is specified not to be followed by robots, respect that.
9998
9999         * html-url.c (collect_tags_mapper): Handle <meta name=robots
10000         content=X>.  For us the important cases are where X is NONE or
10001         where X contains NOFOLLOW.
10002         (get_urls_html): Propagate that information to the caller.
10003
10004 2000-11-13  Hrvoje Niksic  <hniksic@arsdigita.com>
10005
10006         * url.c (convert_links): Unlink the file we might be reading from
10007         before writing to it.
10008         (convert_links): Use alloca instead of malloc for
10009         filename_plus_orig_suffix.
10010
10011 2000-11-12  Hrvoje Niksic  <hniksic@arsdigita.com>
10012
10013         * host.c (realhost): Add HOST to the list with quality==0 only if
10014         it wasn't already there.
10015         Based on analysis by Lu Guohan <feng@public.bjnet.edu.cn>.
10016
10017 2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
10018
10019         * url.c (get_urls_file): Ditto.
10020         (convert_links): Ditto.
10021
10022         * html-url.c (get_urls_html): Use read_file() instead of
10023         load_file().
10024
10025         * utils.c (read_file): New function, instead of the old
10026         load_file().
10027         (read_file_free): Ditto.
10028
10029         * url.c (findurl): Search only for the supported protocols.
10030         (convert_links): Use fwrite() when writing out a region of
10031         characters.
10032
10033 2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
10034
10035         * ftp-ls.c: Move html_quote_string and ftp_index here.
10036
10037         * url.c: Remove get_urls_html, since that's now in html-url.c.
10038
10039         * html-url.c: New file.
10040
10041         * html-parse.c: New file.
10042
10043 2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
10044
10045         * init.c (run_wgetrc): Don't bother killing off '\r' since
10046         pars_line() skips whitespace at end of line anyway.
10047         (parse_line): Oops, it didn't.  Now it does.
10048
10049         * recur.c (parse_robots): Ditto here.
10050
10051         * ftp-ls.c (ftp_parse_unix_ls): Kill off the newline character
10052         manually because read_whole_line no longer does.
10053
10054         * utils.c (read_whole_line): Rewrite to: a) use less memory
10055         (reallocates to needed size after work), b) work faster -->
10056         fgets() instead of getc, c) be more correct --> doesn't kill the
10057         newline character at the end of line.
10058
10059 2000-11-10  Hrvoje Niksic  <hniksic@arsdigita.com>
10060
10061         * init.c (comind): Initialize MAX to array size - 1.
10062
10063 2000-11-08  Hrvoje Niksic  <hniksic@arsdigita.com>
10064
10065         * url.c (construct): Changed last_slash[-1] to *(last_slash - 1).
10066         Suggested by Edward J. Sabol.
10067
10068 2000-11-08  Hrvoje Niksic  <hniksic@arsdigita.com>
10069
10070         * url.c (construct): Handle the case where host name is not
10071         followed by a slash.
10072
10073 2000-11-06  Hrvoje Niksic  <hniksic@arsdigita.com>
10074
10075         * init.c: commands[] need to be sorted!  ("base" wasn't.)
10076
10077 2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
10078
10079         * wget.h (DO_REALLOC_FROM_ALLOCA): Use braces to disambiguate
10080         `if'.
10081
10082 2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
10083
10084         * url.c (construct): Insert unneeded initialization for the
10085         compiler to shut up.
10086
10087         * config.h.in: Define _XOPEN_SOURCE to 500 to get the prototype
10088         for strptime() (*duh*).  Define _SVID_SOURCE to get S_IFLNK which
10089         otherwise gets lost when you define _XOPEN_SOURCE.
10090
10091         * utils.c (touch): Include the file name in the error message.
10092         From Debian.
10093
10094 2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
10095
10096         * log.c (logvprintf): Use vsnprintf() in all cases.  If necessary,
10097         resize the buffer to fit the formated message.  That way, messages
10098         of arbitrary size may be printed.
10099         (logvprintf): Use saved_append() to optionally log the last
10100         several lines of output.
10101         (logputs): Ditto.
10102         (log_close): Adapt to new data structures.
10103         (log_dump): Ditto.
10104         (redirect_output): Print messages to stderr, not to stdout.
10105
10106         * log.c (saved_append_1): New function.  Replaces the old logging
10107         system ("log all output until 10M characters") with a new, much
10108         more reasonable one ("log last screenful of text").
10109         (saved_append): New function; call saved_append_1.
10110         (free_log_line): New function.
10111
10112 2000-11-05  Hrvoje Niksic  <hniksic@arsdigita.com>
10113
10114         * url.c (construct): Fix comment.
10115         (find_last_char): Document.
10116
10117 2000-11-04  Hrvoje Niksic  <hniksic@arsdigita.com>
10118
10119         * snprintf.c: New file.
10120
10121 2000-11-03  Hrvoje Niksic  <hniksic@arsdigita.com>
10122
10123         * wget.h: If HAVE_STDARG_H is not defined, don't declare argument
10124         types to logprintf() and debug_logprintf().
10125
10126 2000-11-02  Hrvoje Niksic  <hniksic@arsdigita.com>
10127
10128         * ftp.c (ftp_loop_internal): Hide the password from the URL when
10129         printing non-verbose.  Problem spotted by Dariusz Mlynarczyk
10130         <darekm@bydg.lomac.com.pl>.
10131
10132 2000-11-02  Junio Hamano  <junio@twinsun.com>
10133
10134         * ftp-basic.c (ftp_login): Make comparison case-insensitive.
10135
10136 2000-11-02  Tyler Riddle  <triddle@liquidmarket.com>
10137
10138         * http.c (known_authentication_scheme_p): Recognize NTML
10139         authentication.
10140         (create_authorization_line): Treat NTML the same as `Basic'.
10141
10142 2000-11-02  Hrvoje Niksic  <hniksic@arsdigita.com>
10143
10144         * retr.c (retrieve_url): Free url before returning.
10145         (retrieve_url): Free mynewloc before returning.
10146         Spotted by Mark A. Mankins <Mankins_Mark@prc.com>.
10147
10148 2000-11-02  Hrvoje Niksic  <hniksic@arsdigita.com>
10149
10150         * url.c (parseurl): Remove possible reading past the end of
10151         sup_protos[].  Spotted by Mark A. Mankins <Mankins_Mark@prc.com>.
10152
10153 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
10154
10155         * main.c (main): In case of opt.downloaded overflowing, print
10156         <overflow> instead of a totally bogus random value.
10157
10158         * retr.c (retrieve_from_file): Ditto.
10159
10160         * recur.c (recursive_retrieve): Ditto.
10161
10162         * main.c (main): Ditto.
10163
10164         * http.c (http_loop): Ditto.
10165
10166         * ftp.c (ftp_loop_internal): Use downloaded_increase() instead of
10167         `+=', and downloaded_exceeds_quota() instead of the simple-minded
10168         check.
10169         (ftp_retrieve_list): Ditto.
10170         (ftp_retrieve_dirs): Ditto.
10171         (ftp_retrieve_glob): Ditto.
10172
10173         * retr.c (downloaded_increase): New function.  Notice overflows of
10174         opt.downloaded.
10175         (downloaded_exceeds_quota): Make sure that opt.downloaded is not
10176         used if it overflowed.
10177
10178         * options.h (struct options): New member downloaded_overflow.
10179
10180 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
10181
10182         * wget.h (enum): Remove extra space after last enumeration.
10183
10184 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
10185
10186         * main.c (main): Use legible_very_long() for printing
10187         opt.downloaded.
10188
10189         * utils.c (legible_1): New function that operates on strings and
10190         does the brunt of legible()'s work.
10191         (legible): Use legible_1().
10192         (legible_very_long): New function; dump the argument with
10193         sprintf(), and call legible_1().
10194
10195         * options.h (struct options): Use VERY_LONG_TYPE for
10196         opt.downloaded.
10197
10198         * sysdep.h (VERY_LONG_TYPE): Define it to have a 64-bit or greater
10199         type.
10200
10201         * config.h.in: Make sure that SIZEOF_LONG and SIZEOF_LONG_LONG get
10202         defined.  Define HAVE_LONG_LONG if long long is available.
10203
10204 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
10205
10206         * utils.c (long_to_string): Update with a later, better version.
10207
10208 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
10209
10210         * url.c (path_simplify_with_kludge): New function.
10211         (path_simplify_with_kludge): Disable it.  Instead...
10212         (parse_dir): ...make sure that at this point the right thing is
10213         done, i.e. that "query" part of the URL (?...) is always assigned
10214         to the file, never to the directory portion of the path.
10215
10216 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
10217
10218         * retr.c (retrieve_url): Detect redirection cycles.
10219
10220 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
10221
10222         * url.c (get_urls_html): Decode HTML entities using
10223         html_decode_entities.
10224
10225         * html.c (htmlfindurl): Don't count the `#' in numeric entities
10226         (&#NNN;) as an HTML fragemnt.
10227         (html_decode_entities): New function.
10228
10229 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
10230
10231         * html.c (htmlfindurl): Fix recognition of # HTML fragments.
10232
10233 2000-11-01  Hrvoje Niksic  <hniksic@arsdigita.com>
10234
10235         * url.c (construct): Rewritten for clarity.  Avoids the
10236         unnecessary copying and stack-allocation the old version
10237         performed.
10238
10239 2000-10-31  Hrvoje Niksic  <hniksic@arsdigita.com>
10240
10241         * ftp.c (getftp): Ditto.
10242
10243         * http.c (gethttp): Rewind the stream when retrying from scratch.
10244
10245 2000-10-31  Hrvoje Niksic  <hniksic@arsdigita.com>
10246
10247         * retr.c (retrieve_url): Use url_concat() to handle relative
10248         redirections instead of /ad hoc/ code.
10249
10250         * url.c (url_concat): New function encapsulating weird
10251         construct().
10252         (urllen_http_hack): New function.
10253         (construct): When constructing new URLs, recognize that `?' does
10254         not form part of the file name in HTTP.
10255
10256 2000-10-13  Adrian Aichner  <adrian@xemacs.org>
10257
10258         * retr.c: Add msec timing support for WINDOWS.
10259         * retr.c (reset_timer): GetSystemTime() on WINDOWS.
10260         * retr.c (elapsed_time): Calculate delta time to msec on WINDOWS.
10261
10262 2000-10-27  Dan Harkless  <wget@harkless.org>
10263
10264         * retr.c (retrieve_url): Manually applied T. Bharath
10265         <TBharath@responsenetworks.com>'s patch to get wget to grok
10266         illegal relative URL redirects.  Reformatted and re-commented it.
10267
10268 2000-10-23  Dan Harkless  <wget@harkless.org>
10269
10270         * connect.c (make_connection and bindport): Manually applied Rob
10271         Mayoff <mayoff@dqd.com>'s 1.5.3 patch to add --bind-address,
10272         changing coding style to GNU's.
10273
10274         * ftp.c (ftp_loop_internal): --delete-after wasn't implemented for
10275         files downloaded via FTP.  Per a comment, .listing files were not
10276         counted towards number of bytes and files downloaded because they're
10277         deleted anyway.  Well, they aren't under -nr, so count them then.
10278
10279         * init.c: Manually applied Rob Mayoff's 1.5.3 patch to add
10280         --bind-address, alphabetizing, changing coding style to GNU's,
10281         commenting, and renaming cmd_ip_address() to cmd_address() to
10282         imply hostnames also okay.
10283
10284         * main.c (main): --delete-after didn't delete the root of the
10285         tree.  Ignore --convert-links if --delete-after was specified.
10286         Manually applied Rob Mayoff's 1.5.3 patch to add --bind-address,
10287         fixing duplicate use of added-since-1.5.3 case value.
10288         (print_help): Clarified that --delete-after deletes local files.
10289         Rob forgot to add a line for his new --bind-address option.
10290
10291         * options.h (struct options): Manually applied Rob Mayoff's patch
10292         to add --bind-address (bind_address structure member).
10293
10294         * recur.c (recursive_retrieve): Improved comment; added DEBUGP().
10295         Ignore --convert-links if --delete-after was specified.
10296
10297         * retr.c (retrieve_from_file): Just added a DEBUGP().
10298
10299 2000-10-19  Dan Harkless  <wget@harkless.org>
10300
10301         * ftp.c (ftp_loop_internal): downloaded_file() enumerators changed.
10302         (getftp): Applied Piotr Sulecki <Piotr.Sulecki@ios.krakow.pl>'s
10303         patch to work around FTP servers that incorrectly respond to the
10304         "REST" command with the remaining size rather than the total file size.
10305
10306         * http.c (gethttp): Improved a comment and added code to tack on
10307         ".html" to text/html files without that extension when -E specified.
10308         (http_loop): Use new downloaded_file() enumerators and deal with
10309         the case of gethttp() called xrealloc() on u->local.
10310
10311         * init.c (commands): Added new "htmlextension" command.
10312         Also renamed John Daily's cmd_quad() to the more descriptive
10313         cmd_lockable_boolean(), alpha-sorted the CMD_DECLARE()s and
10314         removed duplicate cmd_boolean() declaration.
10315
10316         * main.c (print_help): Added my new -E / --html-extension option.
10317         (main): Undocumented --email-address option previously used -E synonym.
10318         Stole it away for the much more deserving --html-extension's use.
10319
10320         * options.h (struct options): Added html_extension field.
10321
10322         * url.c (convert_links): URL X that we saved as X.html locally due
10323         to -E needs to be backed up as X.orig, not X.html.orig.  Added comments.
10324         (downloaded_file): Now remembers if we added .html extension to a file.
10325
10326         * url.h (downloaded_file_t): Added extra enumerators to support above.
10327         (downloaded_file): Now takes and returns a downloaded_file_t.
10328
10329         * wget.h (unnamed "dt" enum): Added ADDED_HTML_EXTENSION enumerator.
10330
10331 2000-10-09  Dan Harkless  <wget@harkless.org>
10332
10333         * html.c (htmlfindurl): Added unneeded initialization to quiet warning.
10334
10335         * main.c (print_help): Clarified what --retr-symlinks does.
10336
10337 2000-09-15  John Daily  <jdaily@cyberdude.com>
10338
10339         * init.c: Add support for "always" and "never" values to allow
10340         .wgetrc to override commandline (useful e.g. with .pm files
10341         calling `wget --passive-ftp' when your firewall doesn't allow that).
10342
10343         * ftp.c (getftp): passive_ftp is first option to support always/never.
10344
10345 2000-08-30  Dan Harkless  <wget@harkless.org>
10346
10347         * ftp.c (ftp_retrieve_list): Use new INFINITE_RECURSION #define.
10348
10349         * html.c: htmlfindurl() now takes final `dash_p_leaf_HTML' parameter.
10350         Wrapped some > 80-column lines.  When -p is specified and we're at a
10351         leaf node, do not traverse <A>, <AREA>, or <LINK> tags other than
10352         <LINK REL="stylesheet">.
10353
10354         * html.h (htmlfindurl): Now takes final `dash_p_leaf_HTML' parameter.
10355
10356         * init.c: Added new -p / --page-requisites / page_requisites option.
10357
10358         * main.c (print_help): Clarified that -l inf and -l 0 both allow
10359         infinite recursion.  Changed the unhelpful --mirrior description
10360         to simply give the options it's equivalent to.  Added new -p option.
10361         (main): Added some comments; handle new -p / --page-requisites.
10362
10363         * options.h (struct options): Added new page_requisites field.
10364
10365         * recur.c: Changed "URL-s" to "URLs" and "HTML-s" to "HTMLs".
10366         Calculate and pass down new `dash_p_leaf_HTML' parameter to
10367         get_urls_html().  Use new INFINITE_RECURSION #define.
10368
10369         * retr.c: Changed "URL-s" to "URLs".  get_urls_html() now takes
10370         final `dash_p_leaf_HTML' parameter.
10371
10372         * url.c: get_urls_html() and htmlfindurl() now take final
10373         `dash_p_leaf_HTML' parameter.
10374
10375         * url.h (get_urls_html): Now takes final `dash_p_leaf_HTML' parameter.
10376
10377         * wget.h: Added some comments and new INFINITE_RECURSION #define.
10378
10379 2000-08-23  Dan Harkless  <wget@harkless.org>
10380
10381         * main.c (print_help): -B / --base was not mentioned.
10382
10383 2000-08-22  Dan Harkless  <wget@harkless.org>
10384
10385         * main.c (print_help): Modified -nc description to mention that it
10386         also prevents the creation of multiple versions of the same file
10387         with ".<number>" suffixes.
10388
10389 2000-07-14  Jan Prikryl  <prikryl@cg.tuwien.ac.at>
10390
10391         * retr.c (retrieve_url): Consistently strdup opt.referer when
10392         setting u->referer.
10393
10394 2000-06-09  Dan Harkless  <wget@harkless.org>
10395
10396         * main.c (print_help): --help output for --waitretry was over 80 cols.
10397
10398 2000-06-09  Hrvoje Niksic  <hniksic@iskon.hr>
10399
10400         * url.c (encode_string): Fix comment.
10401         Suggested by Herold Heiko <Heiko.Herold@previnet.it>.
10402
10403 2000-06-01  Const Kaplinsky  <const@ce.cctpu.edu.ru>
10404
10405         * ftp.c (ftp_retrieve_list): Change permissions only on plain
10406         files.
10407
10408 2000-06-01  Hrvoje Niksic  <hniksic@iskon.hr>
10409
10410         * url.c (str_url): Print the port number only if it's different
10411         from the default port number for that protocol.
10412
10413 2000-05-22  Dan Harkless  <wget@harkless.org>
10414
10415         * main.c (print_help): Added --help line for Damir Dzeko
10416         <ddzeko@zesoi.fer.hr>'s until-now-undocumented --referer option.
10417         Removed comments that --referer and --waitretry were undocumented.
10418         Changed "`.wgetrc' command" to "`.wgetrc'-style command" on --help
10419         line for --execute.
10420
10421 2000-05-18  Hrvoje Niksic  <hniksic@iskon.hr>
10422
10423         * ftp.c (getftp): Ditto.
10424
10425         * http.c (gethttp): Check for return value of fclose/fflush.
10426
10427 2000-04-12  Hrvoje Niksic  <hniksic@iskon.hr>
10428
10429         * host.c (store_hostaddress): Instead of shifting ADDR, start
10430         copying from the correct address.
10431
10432 2000-04-12  Hrvoje Niksic  <hniksic@iskon.hr>
10433
10434         * http.c (gethttp): Don't free REQUEST -- it was allocated with
10435         alloca().
10436         Pointed out by Gisle Vanem <gvanem@eunet.no>.
10437
10438 2000-04-04  Dan Harkless  <wget@harkless.org>
10439
10440         * host.c (store_hostaddress): R. K. Owen's patch introduces a
10441         "left shift count >= width of type" warning on 32-bit
10442         architectures.  Got rid of it by tricking the compiler w/ a variable.
10443
10444         * url.c (UNSAFE_CHAR): The macro didn't include all the illegal
10445         characters per RFC1738, namely everything above '~'.  It also
10446         generated a warning on OSes where char =~ unsigned char.  Fixed.
10447
10448 1998-10-17  Hrvoje Niksic  <hniksic@srce.hr>
10449
10450         * http.c (http_process_type): Removed needless strdup(), a memory
10451         leak.
10452
10453 1998-09-25  Hrvoje Niksic  <hniksic@srce.hr>
10454
10455         * html.c (htmlfindurl): Set PH to the first occurrence of `#'.
10456
10457 1998-09-25  Simon Munton  <simonm@m4data.co.uk>
10458
10459         * init.c (wgetrc_file_name): Don't free HOME under Windows.
10460
10461 1998-12-01  "R. K. Owen"  <rkowen@Nersc.GOV>
10462
10463         * host.c (store_hostaddress): Fix for big endian 64-bit machines.
10464
10465 1998-12-01  Hrvoje Niksic  <hniksic@srce.hr>
10466
10467         * url.c (UNSAFE_CHAR): New macro.
10468         (contains_unsafe): Use it.
10469         (encode_string): Ditto.
10470
10471 1998-12-01  Hrvoje Niksic  <hniksic@srce.hr>
10472
10473         * main.c (i18n_initialize): Use LC_MESSAGES only if available.
10474
10475 2000-03-31  Hrvoje Niksic  <hniksic@srce.hr>
10476
10477         * Use TOUPPER/TOLOWER.
10478
10479 1998-12-22  Alexander V. Lukyanov  <lav@yars.free.net>
10480
10481         * ftp-opie.c (btoe): Zero-terminate OSTORE.
10482
10483 2000-03-21  Hrvoje Niksic  <hniksic@iskon.hr>
10484
10485         * wget.h (DO_REALLOC_FROM_ALLOCA): Ditto.
10486
10487         * sysdep.h (ISALNUM): New macro.
10488         (TOLOWER): Ditto.
10489         (TOUPPER): Ditto.
10490
10491 2000-03-10  Dan Harkless  <wget@harkless.org>
10492
10493         * html.c (idmatch): Implemented checking of my new --follow-tags
10494         and --ignore-tags options.
10495
10496         * init.c (commands): Added comment reminding people adding new
10497         entries doing allocation to add corresponding freeing in cleanup().
10498         (commands): Added new followtags and ignoretags commands.
10499         (cleanup): Free storage for new followtags and ignoretags.
10500
10501         * main.c: Use of "comma-separated list" was random -- normalized
10502         it.  Did some alphabetization.  Added comments pointing out
10503         "Options without arguments" and "Options accepting an argument"
10504         sections of long_options[].  Added new options --follow-tags and
10505         -G / --ignore-tags.  Added comment that Damir's --referer is
10506         currently undocumented.  Added comment that Heiko's --waitretry is
10507         partially undocumented (mentioned in --help but not in
10508         wget.texi).  Moved improperly sorted 24, 129, and 'G' cases.
10509
10510         * options.h (struct options): Added new fields follow_tags and
10511         ignore_tags.
10512
10513         * wget.h: Added "#define EQ 0" so we can say "strcmp(a, b) == EQ".
10514
10515 2000-03-02  Dan Harkless  <wget@harkless.org>
10516
10517         * ftp.c (ftp_loop_internal): Heiko introduced "suggest explicit
10518         braces to avoid ambiguous `else'" warnings.  Eliminated them.
10519
10520         * http.c (gethttp): Dan Berger's query string patch is totally
10521         bogus.  If you have two different URLs, gen_page.cgi?page1 and
10522         get_page.cgi?page2, they'll both be saved as get_page.cgi and the
10523         second will overwrite the first.  Also, parameters to implicit
10524         CGIs, like "http://www.host.com/db/?2000-03-02" cause the URLs to
10525         be printed with trailing garbage characters, and could seg fault.
10526         Backing out the patch, which Dan B. informed me by email was just
10527         a kludge to download StarOffice from Sun made necessary due to
10528         wget's unconditional escaping of certain characters (room for an
10529         option there?).
10530         (http_loop): Heiko introduced "suggest explicit braces to avoid
10531         ambiguous `else'" warnings.  Eliminated them.
10532
10533         * main.c: Heiko's --wait / --waitretry backwards compatibility
10534         code looks to have been totally untested -- automatic variable
10535         'wr' was used without being initialized, and a long int was passed
10536         into setval()'s char* val parameter.
10537
10538         * recur.c (parse_robots): Applied Edward J. Sabol
10539         <sabol@alderaan.gsfc.nasa.gov>'s patch for Guan Yang's reported
10540         problem with "User-agent:<space>*<space>" lines in robots.txt.
10541
10542         * url.c (parseurl, str_url): Removing Dan Berger's code (see
10543         http.c above for explanation).
10544
10545 1999-08-25  Heiko Herold  <Heiko.Herold@previnet.it>
10546
10547         * ftp.c: Respect new option waitretry.
10548
10549 2000-01-30  Damir Dzeko  <ddzeko@zesoi.fer.hr>
10550
10551         * http.c (gethttp): Send custom Referer, if required.
10552
10553 1999-09-24  Charles G Waldman  <cgw@fnal.gov>
10554
10555         * netrc.c (parse_netrc): Allow passwords to contain spaces.
10556
10557         * netrc.c (parse_netrc): New function.
10558
10559 1999-09-17  Dan Berger  <dberger@ix.netcom.com>
10560
10561         * http.c (gethttp): Send it.
10562
10563         * url.c (parseurl): Detect query string in HTTP URL-s.
10564         (str_url): Print it.
10565
10566 2000-03-02  HIROSE Masaaki  <hirose31@t3.rim.or.jp>
10567
10568         * html.c (html_allow): Add <link href=...> and <script src=...>.
10569
10570 1999-05-02  andrew deryabin  <djsf@softhome.net>
10571
10572         * http.c (gethttp): Specify port in `Host' header only if it's
10573         different from 80.
10574
10575 1998-11-03  Edward J. Sabol  <sabol@alderaan.gsfc.nasa.gov>
10576
10577         * recur.c (recursive_retrieve): If a finite maximum depth is
10578         specified, and we're are already at that depth, don't download the
10579         HTML file for parsing.
10580
10581 2000-03-01  Dan Harkless  <wget@harkless.org>
10582
10583         * ftp.c (ftp_loop_internal): Call new downloaded_file() function,
10584         even though we don't do conversion on HTML files retrieved via
10585         FTP, so _current_ usage of downloaded_file() makes this call unneeded.
10586         (ftp_retrieve_list): Added a comment saying where we need to
10587         stat() a .orig file if FTP'd HTML file conversion is ever implemented.
10588         (ftp_retrieve_list): "Local file '%s' is more recent," is sometimes
10589         a lie -- reworded as "Server file no newer than local file '%s' --".
10590
10591         * http.c (http_loop): Fixed a typo and clarified a comment.
10592         (http_loop): When -K and -N are specified together, compare size
10593         and timestamp of server file X against local file X.orig (if
10594         extant) rather than converted local file X.
10595         (http_loop): "Local file '%s' is more recent," is sometimes a lie
10596         -- reworded as "Server file no newer than local file '%s' --".
10597         (http_loop): Call new downloaded_file() function to prevent
10598         wrongful overwriting of .orig file when -N is specified.
10599
10600         * url.c (convert_links): When -K specified, only rename X to
10601         X.orig if downloaded_file() returns TRUE.  Otherwise when we skip
10602         file X due to -N, we clobber an X.orig from a previous invocation.
10603         (convert_links): Call the failsafe xstrdup(), not the real strdup().
10604         (convert_links): Added a note asking anyone who understands how
10605         multiple URLs can correspond to a single file to comment it.
10606         (downloaded_file): Added this new function.
10607
10608         * url.h (downloaded_file): Added prototype for this new function
10609         as well as its downloaded_file_t enum type.
10610
10611         * wget.h (boolean): Added this new typedef and TRUE and FALSE #defines.
10612
10613 2000-02-29  Dan Harkless  <wget@harkless.org>
10614
10615         * version.c: Upped version to developer-only "1.5.3+dev".
10616
10617 2000-02-18  Dan Harkless  <wget@harkless.org>
10618
10619         * init.c (backup_converted): Added this new option.
10620
10621         * main.c (-K / --backup-converted): Added this new option.
10622
10623         * options.h (backup_converted): Added this new option.
10624
10625         * url.c (convert_links): When backup_converted is specified, save
10626         file X as X.orig before converting.
10627
10628         * url.h (urlpos): Fixed typo -- said "Rekative" instead of "Relative".
10629
10630 1998-09-21  Hrvoje Niksic  <hniksic@srce.hr>
10631
10632         * version.c: Wget 1.5.3 is released.
10633
10634 1998-09-21  Hrvoje Niksic  <hniksic@srce.hr>
10635
10636         * host.c (ftp_getaddress): Don't warn when reverse-lookup of local
10637         address doesn't yield FQDN.
10638
10639 1998-09-21  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
10640
10641         * cmpt.c (strerror): Fix declaration of sys_errlist.
10642
10643 1998-09-11  Hrvoje Niksic  <hniksic@srce.hr>
10644
10645         * main.c (main): Don't use an array subscript as the first
10646         argument to STRDUP_ALLOCA.
10647         From Kaveh R. Ghazi.
10648
10649 1998-09-11  Szakacsits Szabolcs  <szaka@sienet.hu>
10650
10651         * html.c (htmlfindurl): Download table background.
10652
10653 1998-09-11  Hans Grobler  <grobh@conde.ee.sun.ac.za>
10654
10655         * init.c (parse_line): Would free *com before allocating it.
10656         (parse_line): Would free com instead of *com.
10657
10658 1998-09-10  Howard Gayle  <howard@fjst.com>
10659
10660         * url.c (get_urls_html): Would drop the last character of the
10661         link.
10662
10663 1998-09-10  Hrvoje Niksic  <hniksic@srce.hr>
10664
10665         * http.c (http_loop): Don't print status code if quiet.
10666
10667 1998-09-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10668
10669         * log.c: Use <stdarg.h> only when __STDC__.
10670
10671 1998-09-10  Adam D. Moss  <adam@foxbox.org>
10672
10673         * html.c (htmlfindurl): Download <layer src=...>.
10674
10675 1998-09-10  Howard Gayle  <howard@fjst.com>
10676
10677         * ftp.c (ftp_retrieve_list): Don't update the time stamp of a file
10678         not retrieved.
10679
10680 1998-06-27  Hrvoje Niksic  <hniksic@srce.hr>
10681
10682         * utils.c: Include <libc.h> on NeXT.
10683
10684 1998-06-26  Heinz Salzmann  <heinz.salzmann@intermetall.de>
10685
10686         * url.c (get_urls_html): Fix calculation of URL position.
10687
10688 1998-06-23  Hrvoje Niksic  <hniksic@srce.hr>
10689
10690         * version.c: Wget 1.5.2 is released.
10691
10692 1998-06-23  Dave Love  <d.love@dl.ac.uk>
10693
10694         * ftp.c, init.c, netrc.c: Include errno.h.
10695
10696         * http.c: Include errno.h and time header.
10697
10698         * Makefile.in (exext): Define.
10699         (install.bin, uninstall.bin): Use it.
10700
10701 1998-06-21  Hrvoje Niksic  <hniksic@srce.hr>
10702
10703         * http.c (http_loop): Don't attempt to compare local and remote
10704         sizes if the remote size is unknown.
10705
10706 1998-06-16  Hrvoje Niksic  <hniksic@srce.hr>
10707
10708         * url.c (get_urls_html): Use malloc() instead of alloca in the
10709         loop.
10710
10711 1998-06-13  Hrvoje Niksic  <hniksic@srce.hr>
10712
10713         * version.c: Wget 1.5.2-b4 is released.
10714
10715 1998-06-13  Hrvoje Niksic  <hniksic@srce.hr>
10716
10717         * url.c (get_urls_html): Ignore spaces before and after the URI.
10718
10719 1998-06-08  Wanderlei Antonio Cavassin  <cavassin@conectiva.com.br>
10720
10721         * ftp.c (getftp): Translate `done'.
10722
10723 1998-06-06  Hrvoje Niksic  <hniksic@srce.hr>
10724
10725         * version.c: Wget 1.5.2-b3 is released.
10726
10727 1998-06-06  Alexander Kourakos  <awk@bnt.com>
10728
10729         * init.c (cleanup): Close dfp, don't free it.
10730
10731 1998-06-06  Hrvoje Niksic  <hniksic@srce.hr>
10732
10733         * utils.c (make_directory): Twiddle.
10734
10735         * config.h.in: Added template for access().
10736
10737 1998-06-05  Mathieu Guillaume  <mat@cythere.com>
10738
10739         * html.c (htmlfindurl): Download <input src=...>
10740
10741 1998-06-03  Hrvoje Niksic  <hniksic@srce.hr>
10742
10743         * utils.c (file_exists_p): Use access() with two arguments.
10744
10745 1998-05-27  Martin Kraemer  <Martin.Kraemer@mch.sni.de>
10746
10747         * netrc.c (parse_netrc): Correct logic.
10748
10749 1998-05-27  Hrvoje Niksic  <hniksic@srce.hr>
10750
10751         * ftp.c (getftp): Added `break'; suggested by Lin Zhe Min
10752         <ljm@ljm.wownet.net>.
10753
10754 1998-05-24  Hrvoje Niksic  <hniksic@srce.hr>
10755
10756         * version.c: Wget 1.5.2-b2 is released.
10757
10758 1998-05-18  Juan Jose Rodriguez  <jcnsoft@jal1.telmex.net.mx>
10759
10760         * mswindows.h: Don't translate mkdir to _mkdir under Borland.
10761
10762 1998-05-17  Hrvoje Niksic  <hniksic@srce.hr>
10763
10764         * retr.c (elapsed_time): Return correct value when
10765         HAVE_GETTIMEOFDAY is undefined.
10766
10767 1998-05-13  Hrvoje Niksic  <hniksic@srce.hr>
10768
10769         * version.c: Wget 1.5.2-b1 is released.
10770
10771 1998-05-08  Hrvoje Niksic  <hniksic@srce.hr>
10772
10773         * getopt.c (_getopt_internal): Use exec_name instead of argv[0].
10774         (_getopt_internal): Don't translate `#if 0'-ed strings.
10775
10776 1998-05-06  Douglas E. Wegscheid  <wegscd@whirlpool.com>
10777
10778         * mswindows.c (ws_handler): Use fork_to_background().
10779
10780 1998-05-05  Hrvoje Niksic  <hniksic@srce.hr>
10781
10782         * version.c: Wget 1.5.1 is released.
10783
10784 1998-05-05  Hrvoje Niksic  <hniksic@srce.hr>
10785
10786         * http.c (parse_http_status_line): Avoid `minor' and `major'
10787         names.
10788
10789 1998-05-02  Hrvoje Niksic  <hniksic@srce.hr>
10790
10791         * utils.c (mkdirhier): Renamed to make_directory.
10792
10793 1998-05-01  Hrvoje Niksic  <hniksic@srce.hr>
10794
10795         * mswindows.c (fork_to_background): Define under Windows.
10796
10797         * utils.c (fork_to_background): New function.
10798
10799         * html.c (htmlfindurl): Removed rerdundant casts.
10800
10801 1998-05-01  Douglas E. Wegscheid  <wegscd@whirlpool.com>
10802
10803         * mswindows.c (ws_mypath): Cache the path.
10804
10805 1998-04-30  Douglas E. Wegscheid  <wegscd@whirlpool.com>
10806
10807         * ftp.h: Prefix enum ftype members with FT_.
10808
10809         * ftp-ls.c, ftp.c, html.h: Adjust accordingly.
10810
10811         * mswindows.h: Use stat under Borland, _stat under MSVC.
10812
10813 1998-04-28  Hrvoje Niksic  <hniksic@srce.hr>
10814
10815         * http.c (known_authentication_scheme_p): New function.
10816         (gethttp): Handle authorization more correctly.
10817
10818         * ftp-basic.h: Removed.
10819
10820         * cmpt.h: Removed.
10821
10822         * utils.c: Include <unistd.h> before <pwd.h>; needed under SunOS
10823         with gcc 2.8.
10824         (numdigit): Use `while' loop.
10825
10826         * http.c (create_authorization_line): Detect authentication
10827         schemes case-insensitively.
10828
10829         * http.c (extract_header_attr): Use strdupdelim().
10830         (digest_authentication_encode): Move declaration of local
10831         variables to smaller scope.
10832         (digest_authentication_encode): Reset REALM, OPAQUE and NONCE.
10833         (create_authorization_line): Detect authentication schemes
10834         case-insensitively.
10835
10836         * utils.c (touch): Constify.
10837
10838         * http.c (gethttp): Report a nicer error when no data is received.
10839
10840         * rbuf.h (RBUF_READCHAR): Ditto.
10841
10842         * ftp-basic.c (ftp_response): Use sizeof.
10843
10844 1998-04-27  Hrvoje Niksic  <hniksic@srce.hr>
10845
10846         * retr.c (print_percentage): EXPECTED is long, not int.
10847         (print_percentage): Use floating-point arithmetic to avoid
10848         overflow with large files' sizes multiplied with 100.
10849
10850 1998-04-27  Gregor Hoffleit  <flight@mathi.uni-heidelberg.de>
10851
10852         * config.h.in: Added pid_t stub.
10853
10854         * sysdep.h (S_ISREG): Moved here from mswindows.h (NeXT doesn't
10855         define it).
10856
10857 1998-04-20  Hrvoje Niksic  <hniksic@srce.hr>
10858
10859         * version.c: Wget 1.5.0 is released.
10860
10861 1998-04-18  Hrvoje Niksic  <hniksic@srce.hr>
10862
10863         * url.c (str_url): Ditto.
10864
10865         * ftp-basic.c (ftp_rest): Use new name.
10866
10867         * utils.c (long_to_string): Renamed from prnum().
10868
10869 1998-04-16  Hrvoje Niksic  <hniksic@srce.hr>
10870
10871         * version.c: Wget 1.5-b17 is released.
10872
10873 1998-04-08  Hrvoje Niksic  <hniksic@srce.hr>
10874
10875         * headers.c (header_get): New argument FLAGS.
10876
10877         * http.c (gethttp): If request is malformed, bail out of the
10878         header loop.
10879         (gethttp): Check for empty header *after* the status line checks.
10880         (gethttp): Disallow continuations for status line.
10881
10882 1998-04-08  Hrvoje Niksic  <hniksic@srce.hr>
10883
10884         * version.c: Wget 1.5-b16 is released.
10885
10886 1998-04-08  Hrvoje Niksic  <hniksic@srce.hr>
10887
10888         * init.c (commands): Renamed `always_rest' to `continue'.
10889
10890 1998-04-05  Hrvoje Niksic  <hniksic@srce.hr>
10891
10892         * all: Use it.
10893
10894         * log.c (logputs): New argument.
10895         (logvprintf): Ditto.
10896         (logprintf): Ditto.
10897
10898 1998-04-04  Hrvoje Niksic  <hniksic@srce.hr>
10899
10900         * http.c (http_atotm): Update comment.
10901
10902         * main.c (i18n_initialize): Set LC_MESSAGES, not LC_ALL.
10903
10904         * wget.h: Renamed ENABLED_NLS to HAVE_NLS.
10905
10906         * main.c (i18n_initialize): New function.
10907         (main): Use it.
10908
10909         * log.c: Include <unistd.h>.
10910
10911         * retr.c (show_progress): Cast alloca to char *.
10912
10913 1998-04-04  Hrvoje Niksic  <hniksic@srce.hr>
10914
10915         * version.c: Wget 1.5-b15 is released.
10916
10917 1998-04-04  Hrvoje Niksic  <hniksic@srce.hr>
10918
10919         * utils.h: Declare file_non_directory_p().
10920
10921 1998-04-03  Hrvoje Niksic  <hniksic@srce.hr>
10922
10923         * main.c (main): It's `tries', not `numtries' now.
10924
10925 1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
10926
10927         * init.c (getperms): Removed.
10928
10929 1998-04-01  Tim Charron  <tcharron@interlog.com>
10930
10931         * log.c (logvprintf): Don't use ARGS twice.
10932
10933 1998-04-01  John  <john@futuresguide.com>
10934
10935         * mswindows.c: Cleaned up.
10936
10937 1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
10938
10939         * version.c: Wget 1.5-b14 is released.
10940
10941 1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
10942
10943         * ftp-opie.c (STRLEN4): New macro.
10944         (btoe): Use it.
10945
10946 1998-04-01  Junio Hamano  <junio@twinsun.com>
10947
10948         * http.c: Document all the Digest functions.
10949
10950 1998-04-01  Hrvoje Niksic  <hniksic@srce.hr>
10951
10952         * utils.c (file_non_directory_p): Renamed from isfile().
10953
10954         * mswindows.h (S_ISREG): New macro, suggested by Tim Adam.
10955
10956 1998-03-31  Hrvoje Niksic  <hniksic@srce.hr>
10957
10958         * utils.c (mkdirhier): Use 0777 instead of opt.dirmode.
10959
10960         * init.c (cmd_spec_dotstyle): Use 48 dots per line for binary
10961         style.
10962         (cmd_permissions): Removed.
10963
10964         * config.h.in: Add template for WORDS_BIGENDIAN.
10965
10966 1998-03-31  Junio Hamano  <junio@twinsun.com>
10967
10968         * http.c (HEXD2asc): New macro.
10969         (dump_hash): Use it.
10970
10971 1998-03-31  Hrvoje Niksic  <hniksic@srce.hr>
10972
10973         * version.c: Wget 1.5-b13 is released.
10974
10975 1998-03-31  Hrvoje Niksic  <hniksic@srce.hr>
10976
10977         * main.c (main): Don't try to use `com'.
10978
10979 1998-03-30  Hrvoje Niksic  <hniksic@srce.hr>
10980
10981         * init.c (cmd_permissions): New function.
10982
10983 1998-03-30  Hrvoje Niksic  <hniksic@srce.hr>
10984
10985         * version.c: Wget 1.5-b12 is released.
10986
10987 1998-03-30  Hrvoje Niksic  <hniksic@srce.hr>
10988
10989         * init.c (commands): Renamed `numtries' to `tries'.
10990         (cmd_spec_debug): Removed.
10991         (home_dir): Under Windows, return `C:\' if HOME is undefined.
10992
10993 1998-03-29  Hrvoje Niksic  <hniksic@srce.hr>
10994
10995         * config.h.in: Define _XOPEN_SOURCE.
10996
10997         * init.c (check_user_specified_header): New function.
10998         (cmd_spec_header): Use it.
10999         (cmd_spec_useragent): New function.
11000
11001 1998-03-29  Hrvoje Niksic  <hniksic@srce.hr>
11002
11003         * version.c: Wget 1.5-b11 is released.
11004
11005 1998-03-28  Hrvoje Niksic  <hniksic@srce.hr>
11006
11007         * wget.h: Include <libintl.h> only if NLS is enabled.
11008
11009 1998-03-26  Hrvoje Niksic  <hniksic@srce.hr>
11010
11011         * options.h (struct options): Made `wait' a long.
11012         (struct options): Ditto for `timeout'.
11013
11014 1998-03-19  Hrvoje Niksic  <hniksic@srce.hr>
11015
11016         * utils.c (exists): Renamed to file_exists_p.
11017         (file_exists_p): Use access() if available.
11018
11019 1998-03-17  Hrvoje Niksic  <hniksic@srce.hr>
11020
11021         * utils.c (memfatal): Set save_log_p to 0 to avoid potential
11022         infloop.
11023
11024         * log.c: do_logging -> save_log_p.
11025
11026         * config.h.in: Added template for HAVE_VSNPRINTF.
11027
11028 1998-03-16  Hrvoje Niksic  <hniksic@srce.hr>
11029
11030         * init.c: Ditto.
11031
11032         * http.c: Protect declaration against non-ANSI compiler.
11033
11034         * log.c (logvprintf): Use vsnprintf() if available.
11035
11036         * getopt.c (main): Don't translate test stuff.
11037
11038 1998-03-16  Hrvoje Niksic  <hniksic@srce.hr>
11039
11040         * version.c: Wget 1.5-b10 is released.
11041
11042 1998-03-11  Hrvoje Niksic  <hniksic@srce.hr>
11043
11044         * ftp.c (getftp): Don't translate "CWD %s".
11045
11046         * wget.h (GCC_FORMAT_ATTR): Renamed from FORMAT_ATTR.
11047
11048 1998-03-07  Hrvoje Niksic  <hniksic@srce.hr>
11049
11050         * ftp-opie.c (btoe): Use memcpy() instead of strncat().
11051
11052         * log.c (logputs): New function.
11053         (logvprintf): Renamed from vlogmsg; use logputs().
11054
11055         * retr.c (show_progress): Print `[100%]' when the retrieval is
11056         finished.
11057
11058         * init.c (run_wgetrc): Use FILE, not PATH.
11059         (wgetrc_file_name): Ditto.
11060
11061 1998-03-07  Tim Adam  <tma@osa.com.au>
11062
11063         * recur.c (parse_robots): Correctly reset `entries' on empty
11064         disallow.
11065
11066 1998-03-07  Hrvoje Niksic  <hniksic@srce.hr>
11067
11068         * init.c (cmd_spec_debug): Use cmd_boolean().
11069
11070 1998-02-23  Hrvoje Niksic  <hniksic@srce.hr>
11071
11072         * http.c (gethttp): Create proxy-authorization correctly.
11073
11074 1998-02-22  Hrvoje Niksic  <hniksic@srce.hr>
11075
11076         * md5.c: Ditto.
11077
11078         * getopt.c: Use ANSI function definitions.
11079
11080         * ftp-opie.c: New file.
11081
11082         * options.h: Don't redefine EXTERN.
11083
11084         * init.c: Sort it correctly.
11085
11086 1998-02-22  Hrvoje Niksic  <hniksic@srce.hr>
11087
11088         * version.c: Wget 1.5-b9 is released.
11089
11090 1998-02-22  Hrvoje Niksic  <hniksic@srce.hr>
11091
11092         * recur.c (recursive_retrieve): Reset `first_time'.
11093
11094         * ftp.c (getftp): Added `default' clause to switches of uerr_t.
11095
11096         * rbuf.c (rbuf_peek): Simplified.
11097         (rbuf_flush): Use MINVAL.
11098
11099         * wget.h (MINVAL): Moved from url.h.
11100
11101         * rbuf.h (RBUF_FD): New macro.
11102
11103         * url.c (add_url): Add to the head of the list.
11104
11105         * ftp.c (ftp_retrieve_list): Set the permissions to downloaded
11106         file.
11107         (getftp): Set the default permissions to 0600.
11108
11109 1998-02-21  Hrvoje Niksic  <hniksic@srce.hr>
11110
11111         * url.c (get_urls_html): Ditto.
11112         (convert_links): Ditto.
11113
11114         * recur.c (parse_robots): Ditto.
11115
11116         * html.c (ftp_index): Ditto.
11117
11118         * ftp-ls.c (ftp_parse_unix_ls): Open file as binary.
11119
11120         * init.c (defaults): Initialize `opt' to zero via memset.
11121
11122         * http.c (digest_authentication_encode): goto considered harmful.
11123
11124 1998-02-19  Hrvoje Niksic  <hniksic@srce.hr>
11125
11126         * ftp.c (delelement): Simplify and fix leak.
11127
11128 1998-02-18  Hrvoje Niksic  <hniksic@srce.hr>
11129
11130         * http.c (dump_hash): Use HEXD2ASC instead of home-grown stuff.
11131
11132         * url.h (HEXD2ASC): Removed warning.
11133
11134         * init.c (comind): Use binary search.
11135         (commands): Reorganized.
11136         (setval): Ditto.
11137         (cmd_boolean): New function.
11138         (cmd_number): Ditto.
11139         (cmd_number_inf): Ditto.
11140         (cmd_string): Ditto.
11141         (cmd_vector): Ditto.
11142         (cmd_directory_vector): Ditto.
11143         (cmd_bytes): Ditto.
11144         (cmd_time): Ditto.
11145         (cmd_spec_debug): Ditto.
11146         (cmd_spec_dirmode): Ditto.
11147         (cmd_spec_dirstruct): Ditto.
11148         (cmd_spec_dotstyle): Ditto.
11149         (cmd_spec_header): Ditto.
11150         (cmd_spec_htmlify): Ditto.
11151         (cmd_spec_mirror): Ditto.
11152         (cmd_spec_outputdocument): Ditto.
11153         (cmd_spec_recursive): Ditto.
11154         (settime): Merged with cmd_time().
11155         (setbytes): Merged with cmd_bytes().
11156         (setonoff): Merged with cmd_boolean().
11157         (onoff): Ditto.
11158
11159 1998-02-17  Hrvoje Niksic  <hniksic@srce.hr>
11160
11161         * Makefile.in (distclean): Remove `config.h'.
11162
11163 1998-02-17  Hrvoje Niksic  <hniksic@srce.hr>
11164
11165         * version.c: Wget 1.5-b8 is released.
11166
11167 1998-02-17  Hrvoje Niksic  <hniksic@srce.hr>
11168
11169         * http.c (digest_authentication_encode): New function.
11170         (create_authorization_line): Use it.
11171         (dump_hash): New function.
11172         (digest_authentication_encode): Use it.
11173
11174         * fnmatch.c: Renamed from `mtch.c'.
11175
11176 1998-02-15  Karl Eichwalder  <ke@suse.de>
11177
11178         * main.c (main): Tag "Written by..." string as translatable.
11179
11180 1998-02-15  Hrvoje Niksic  <hniksic@srce.hr>
11181
11182         * wget.h (FREE_MAYBE): New macro.
11183
11184         * http.c (create_authorization_line): Don't use ANSI C string
11185         concatenation feature.
11186         (basic_authentication_encode): Use alloca() for temporary
11187         variables.
11188
11189         * recur.h: Ditto.
11190
11191         * http.c: Ditto.
11192
11193         * headers.h: Ditto.
11194
11195         * ftp-basic.c: Protect declaration against non-ANSI compiler.
11196
11197         * http.c (create_authorization_line): Cast `unsigned char *' to
11198         `char *' for sprintf, to shut up the noisy Digital Unix cc.
11199
11200 1998-02-15  Hrvoje Niksic  <hniksic@srce.hr>
11201
11202         * version.c: Wget 1.5-b7 is released.
11203
11204 1998-02-15  Hrvoje Niksic  <hniksic@srce.hr>
11205
11206         * cmpt.c (strstr): Synched with glibc-2.0.6.
11207
11208         * ftp-basic.c (calculate_skey_response): Ditto.
11209         (calculate_skey_response): Use alloca().
11210
11211         * http.c (create_authorization_line): Work with FSF's version of
11212         md5.c.
11213
11214         * md5.c: New file, from GNU libc.
11215
11216 1998-02-14  Hrvoje Niksic  <hniksic@srce.hr>
11217
11218         * url.h (URL_CLEANSE): Name the temporary variable more carefully.
11219
11220 1998-02-13  Hrvoje Niksic  <hniksic@srce.hr>
11221
11222         * http.c (basic_authentication_encode): New function, instead of
11223         the macro.
11224
11225 1998-02-13  Junio Hamano  <junio@twinsun.com>
11226
11227         * http.c: Add HTTP-DA support.
11228         * ftp-basic.c: Add Opie/S-key support.
11229         * config.h.in, Makefile.in: Add HTTP-DA and Opie/S-key support.
11230         * md5.c, md5.h: New files.
11231
11232 1998-02-13  Hrvoje Niksic  <hniksic@srce.hr>
11233
11234         * http.c (http_process_range): Renamed from hprocrange().
11235         (http_process_range): Parse the whole header.
11236
11237         * headers.c: New file.
11238         (header_process): New function.
11239         (header_get): Renamed from fetch_next_header.
11240
11241         * all: Include utils.h only where necessary.
11242
11243         * wget.h: Declare xmalloc(), xrealloc() and xstrdup() here.
11244
11245         * wget.h: Add provisions for dmalloc.
11246
11247 1998-02-12  Hrvoje Niksic  <hniksic@srce.hr>
11248
11249         * version.c: Wget 1.5-b6 is released.
11250
11251 1998-02-12  Hrvoje Niksic  <hniksic@srce.hr>
11252
11253         * ftp.c (ftp_loop): Determine `filename' more precisely.
11254
11255         * init.c (setval): Don't set `opt.quiet' if output-document is
11256         `-'.
11257
11258         * log.c (log_init): Print to STDERR instead of STDOUT.
11259         (vlogmsg): Use STDERR by default.
11260         (logflush): Ditto.
11261
11262 1998-02-11  Simon Josefsson  <jas@pdc.kth.se>
11263
11264         * host.c: Use addr_in again.
11265
11266 1998-02-08  Karl Eichwalder  <karl@suse.de>
11267
11268         * http.c (gethttp): Fixed typo.
11269
11270 1998-02-08  Hrvoje Niksic  <hniksic@srce.hr>
11271
11272         * version.c: Wget 1.5-b5 is released.
11273
11274 1998-02-08  Hrvoje Niksic  <hniksic@srce.hr>
11275
11276         * retr.c (show_progress): Use it.
11277
11278         * log.c (logflush): New function.
11279
11280         * wget.h: Utilize __attribute__ if on gcc.
11281
11282 1998-02-07  Hrvoje Niksic  <hniksic@srce.hr>
11283
11284         * http.c (base64_encode_line): New argument LENGTH.
11285         (BASIC_AUTHENTICATION_ENCODE): Use it.
11286         (BASIC_AUTHENTICATION_ENCODE): Take length of HEADER into account.
11287
11288         * main.c (main): Fixed fprintf() format mismatch.
11289
11290 1998-02-06  Hrvoje Niksic  <hniksic@srce.hr>
11291
11292         * version.c: Wget 1.5-b4 is released.
11293
11294 1998-02-03  Simon Josefsson  <jas@pdc.kth.se>
11295
11296         * host.c: use sockaddr_in instead of addr_in.
11297
11298 1998-02-04  Hrvoje Niksic  <hniksic@srce.hr>
11299
11300         * init.c (cleanup): Use it.
11301
11302         * recur.c (recursive_cleanup): New function.
11303
11304         * retr.c (retrieve_from_file): Ditto.
11305
11306         * main.c (main): Use it.
11307
11308         * recur.c (recursive_reset): New function.
11309
11310         * retr.c (retrieve_from_file): Ditto.
11311
11312         * main.c (main): Simplify call to recursive_retrieve().
11313
11314         * recur.c (recursive_retrieve): Removed FLAGS argument.
11315
11316         * http.c (gethttp): Changed call to iwrite().
11317
11318 1998-02-03  Hrvoje Niksic  <hniksic@srce.hr>
11319
11320         * url.c (get_urls_html): Ditto.
11321         (free_urlpos): Ditto.
11322         (mkstruct): Ditto.
11323         (construct): Ditto.
11324
11325         * retr.c (retrieve_url): Move declaration of local variables to
11326         smaller scope.
11327
11328         * url.c (urlproto): Use it.
11329         (parseurl): Ditto.
11330         (str_url): Ditto.
11331         (get_urls_html): Ditto.
11332
11333         * utils.h (ARRAY_SIZE): New macro.
11334
11335         * url.c (proto): Moved from url.h.
11336
11337         * url.h (URL_CLEANSE): Reformatted.
11338         (USE_PROXY_P): Renamed from USE_PROXY.
11339
11340         * ftp-basic.c: Adjust to the new interface of iwrite().
11341
11342         * ftp-basic.c (ftp_port): Use alloca().
11343
11344 1998-02-03  Hrvoje Niksic  <hniksic@srce.hr>
11345
11346         * version.c: Wget 1.5-b3 is released.
11347
11348         * host.c (ftp_getaddress): Don't print to stderr directly.
11349
11350         * init.c (setbytes): Support `g' for gigabytes.
11351         (cmdtype): New specification CTIME.
11352         (setval): Use it with settime().
11353         (commands): Use it for WAIT and TIMEOUT.
11354
11355 1998-02-02  Hrvoje Niksic  <hniksic@srce.hr>
11356
11357         * http.c (BASIC_AUTHENTICATION_ENCODE): New macro.
11358         (gethttp): Use it.
11359
11360         * utils.c (unique_name_1): Moved from url.c.
11361         (unique_name): Ditto.
11362
11363         * url.c (url_filename): Ditto.
11364
11365         * log.c (redirect_output): Changed call to unique_name().
11366
11367         * url.c (unique_name_1): Renamed from unique_name().
11368         (unique_name): Changed interface.
11369
11370         * init.c (enum cmdid): Moved from init.h.
11371         (cmdtype): Ditto.
11372         (struct cmd): Ditto.
11373
11374         * main.c (main): Use it.
11375         (main): Moved `--backups' to not have a short option.
11376
11377         * options.h (struct options): New member BACKGROUND.
11378
11379         * main.c (print_help): Rearranged.
11380         (main): New long options for -n* short options: --no-directories,
11381         --no-host-directories, --non-verbose, --no-host-lookup and
11382         --dont-remove-listing.
11383
11384 1998-02-01  Hrvoje Niksic  <hniksic@srce.hr>
11385
11386         * main.c (main): Use log_close().
11387
11388         * log.c: New variable LOGFP.
11389         (vlogmsg): Use it.
11390         (redirect_output): Don't open /dev/null; set LOGFP to stdin
11391         instead.
11392         (log_close): New function.
11393
11394         * options.h (struct options): Removed LFILE.
11395
11396         * log.c (log_enable): Removed.
11397
11398         * main.c (main): Use it.
11399
11400         * log.c (log_init): New function.
11401
11402         * url.c (get_urls_html): Removed needless assignment to BASE.
11403
11404         * host.c (add_hlist): Don't set CMP needlessly.
11405
11406         * utils.c (match_backwards): Ditto.
11407         (in_acclist): Ditto.
11408
11409         * url.c (findurl): Ditto.
11410
11411         * netrc.c (parse_netrc): Ditto.
11412
11413         * log.c (log_dump): Ditto.
11414
11415         * html.c (html_quote_string): Ditto.
11416
11417         * ftp-basic.c (ftp_request): Made static.
11418
11419         * connect.c: Made global variables static.
11420
11421         * url.c (construct): Ditto.
11422
11423         * init.c (init_path): Avoid assignment inside `if'-condition.
11424
11425         * ftp.c: Don't include in.h or winsock.h.
11426
11427         * ftp.c (ftp_loop): Use SZ.
11428
11429         * connect.c (bindport): Cast &addrlen to int *.
11430         (conaddr): Ditto.
11431
11432         * init.c (initialize): Don't use SYSTEM_WGETRC unconditionally.
11433
11434 1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
11435
11436         * ftp.c (getftp): Initialize opt.ftp_pass here.
11437         (ftp_retrieve_dirs): Use alloca().
11438
11439         * init.c (defaults): Don't initialize opt.ftp_pass.
11440
11441         * sysdep.h (S_ISLNK): Declare for OS/2; ditto for lstat.
11442         From Ivan F. Martinez <ivanfm@ecodigit.com.br>.
11443
11444 1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
11445
11446         * recur.c (parse_robots): Check for comments more correctly.
11447
11448         * host.c (ftp_getaddress): Use STRDUP_ALLOCA.
11449         (ftp_getaddress): Add diagnostics when reverse-lookup yields only
11450         hostname.
11451
11452 1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
11453
11454         * version.c: Wget 1.5-b2 is released.
11455
11456         * netrc.c (NETRC_FILE_NAME): Moved from netrc.h.
11457
11458         * utils.c (proclist): Pass FNM_PATHNAME to fnmatch().
11459
11460         * ftp-basic.c (ftp_pasv): Avoid unnecessary casting to unsigned
11461         char.
11462
11463         * log.c: Don't attempt to hide arguments from ansi2knr.
11464
11465         * cmpt.c: Synched strptime() and mktime() with glibc-2.0.6.
11466
11467         * ansi2knr.c: Use a later version, from fileutils-3.16l alpha.
11468
11469         * ftp.c (getftp): Ditto.
11470
11471         * http.c (gethttp): Use it.
11472
11473         * retr.c (get_contents): New argument EXPECTED; pass it to
11474         show_progress().
11475         (show_progress): New argument EXPECTED; use it to display
11476         percentages.
11477
11478         * init.c (setval): Ditto.
11479
11480         * http.c (gethttp): Ditto.
11481         (http_loop): Ditto.
11482
11483         * ftp.c (getftp): Ditto.
11484         (ftp_loop_internal): Ditto.
11485
11486         * ftp-ls.c (ftp_parse_unix_ls): Use abort() instead of assert(0).
11487
11488         * sysdep.h (CLOSE): Simplify; use DEBUGP.
11489
11490         * netrc.c (search_netrc): Use alloca().
11491
11492         * init.c (defaults): Initialize no_flush.
11493
11494         * log.c (vlogmsg): Don't flush if no_flush.
11495
11496         * options.h (struct options): New variable no_flush.
11497
11498         * main.c (main): Don't play games with buffering.
11499
11500         * log.c (vlogmsg): Flush the output after every message.
11501
11502 1998-01-31  Hrvoje Niksic  <hniksic@srce.hr>
11503
11504         * init.c (parse_line): Ditto.
11505
11506         * url.c (get_urls_html): Ditto.
11507
11508         * main.c (main): Don't cast to unsigned char.
11509
11510         * init.c (run_wgetrc): Don't cast to unsigned char.
11511         (parse_line): Accept char instead of unsigned char.
11512
11513         * html.c (htmlfindurl): Use char instead of unsigned char.
11514
11515         * all: Use them.
11516
11517         * sysdep.h: Add wrappers to ctype macros to make them
11518         eight-bit-clean:
11519
11520 1998-01-30  Hrvoje Niksic  <hniksic@srce.hr>
11521
11522         * html.c (htmlfindurl): Download <img lowsrc=...>
11523
11524         * main.c (main): Ignore SIGPIPE.
11525
11526         * connect.c (select_fd): New argument WRITEP.
11527         (iwrite): Call select_fd().
11528
11529 1997-02-27  Fila Kolodny <fila@ibi.com>
11530
11531         * ftp.c (ftp_retrieve_list): If retrieving symlink and the proper
11532         one already exists, just skip it.
11533
11534 1998-01-30  Hrvoje Niksic  <hniksic@srce.hr>
11535
11536         * http.c (gethttp): Cosmetic changes.
11537
11538         * http.c (check_end): Allow `+D...' instead of `GMT'.
11539         From Fabrizio Pollastri <pollastri@cstv.to.cnr.it>.
11540
11541         * url.c (process_ftp_type): New function.
11542         (parseurl): Use it.
11543
11544         * connect.c (iwrite): Allow writing in a few chunks.
11545         (bindport): Made SRV static, so addr can point to it.
11546         (select_fd): Removed HPUX kludge.
11547
11548         * host.c (free_hlist): Incorporated into clean_hosts().
11549
11550 1998-01-29  Hrvoje Niksic  <hniksic@srce.hr>
11551
11552         * host.c (hlist): Made static.
11553         (search_address): Cosmetic change.
11554
11555 1998-01-29  Hrvoje Niksic  <hniksic@srce.hr>
11556
11557         * version.c: Wget v1.5-b1 is released.
11558
11559         * http.c (hgetlen): Use sizeof() to get the header length.
11560         (hgetrange): Ditto.
11561         (hgettype): Ditto.
11562         (hgetlocation): Ditto.
11563         (hgetmodified): Ditto.
11564         (haccepts_none): Ditto.
11565
11566         * main.c (main): Updated `--version' and `--help' output, as per
11567         Francois Pinard's suggestions.
11568
11569         * main.c: Include locale.h; call setlocale(), bindtextdomain() and
11570         textdomain().
11571
11572         * config.h.in: Define stubs for I18N3.
11573
11574         * wget.h: Include libintl.h.
11575
11576 1998-01-28  Hrvoje Niksic  <hniksic@srce.hr>
11577
11578         * url.c (mkstruct): Check for opt.cut_dirs.
11579         (mkstruct): alloca()-te more, xmalloc() less.
11580
11581         * utils.c (load_file): Check for ferror().
11582
11583         * url.c (get_urls_file): Close only the files we opened.
11584         (get_urls_html): Ditto.
11585         (count_slashes): New function.
11586
11587         * http.h: Removed.
11588
11589         * http.c (gethttp): Respect username and password provided by
11590         proxy URL.
11591         (base64_encode_line): Write into an existing buffer instead of
11592         malloc-ing a new one.
11593         (struct http_stat): Moved from http.h
11594
11595         * retr.c (retrieve_url): Free SUF.
11596
11597         * all: Removed lots of unnecessary .h dependencies.
11598
11599         * html.c (global_state): Made static.
11600
11601         * utils.h (ALLOCA_ARRAY): New macro.
11602
11603         * main.c (main): New option `--cut-dirs'.
11604
11605         * url.c (construct): Use alloca() for T.
11606
11607         * utils.c (mkdirhier): Use STRDUP_ALLOCA.
11608
11609         * host.c (_host_t): Moved from host.h.
11610         (struct host): Renamed from _host_t.
11611         (store_hostaddress): Use STRDUP_ALLOCA for INET_S.
11612         (realhost): Ditto.
11613
11614         * host.h: Don't include url.h.
11615
11616         * ftp.c (LIST_FILENAME): Moved from ftp.h.
11617
11618         * init.c (DEFAULT_FTP_ACCT): Moved from ftp.h.
11619
11620         * main.c (main): Enable log if the output goes to a TTY.
11621
11622         * connect.h: Removed unused constant `BACKLOG'.
11623
11624         * config.h.in: Check for isatty().
11625
11626         * Makefile.in (LINK): Use CFLAGS when linking.
11627
11628 1998-01-27  Hrvoje Niksic  <hniksic@srce.hr>
11629
11630         * mswindows.c (ws_hangup): Use redirect_output().
11631
11632         * main.c (redirect_output_signal): New function; use
11633         redirect_output().
11634
11635         * log.c (redirect_output): New function, based on hangup(), which
11636         is deleted.
11637
11638         * log.c (vlogmsg): New function.
11639
11640         * wget.h (DEBUGP): Use debug_logmsg().
11641
11642         * main.c (hangup): Use it.
11643
11644         * log.c (log_dump): New function.
11645
11646         * utils.h (DO_REALLOC): Use `long' for various sizes.
11647
11648         * http.c (hskip_lws): Use `while', for clarity.
11649         (HTTP_DYNAMIC_LINE_BUFFER): New constant.
11650         (fetch_next_header): Use it instead of DYNAMIC_LINE_BUFFER.
11651
11652         * ftp-basic.c (FTP_DYNAMIC_LINE_BUFFER): New constant.
11653         (ftp_response): Use it instead of DYNAMIC_LINE_BUFFER.
11654
11655         * utils.c (DYNAMIC_LINE_BUFFER): Moved from utils.c.
11656         (LEGIBLE_SEPARATOR): Ditto.
11657         (FILE_BUFFER_SIZE): Ditto.
11658
11659         * retr.c (BUFFER_SIZE): Moved from retr.h.
11660
11661         * log.c: New file.
11662         (logmsg): Moved from utils.c.
11663         (debug_logmsg): New function.
11664
11665         * mswindows.h: Include it here.
11666
11667         * init.c: Ditto.
11668
11669         * utils.c: Don't include <windows.h>.
11670
11671 1998-01-25  Hrvoje Niksic  <hniksic@srce.hr>
11672
11673         * host.c (ftp_getaddress): Ditto.
11674
11675         * main.c (main): Use it.
11676
11677         * utils.h (STRDUP_ALLOCA): New macro.
11678
11679         * init.c: Prepend `wget: ' to error messages printed on stderr.
11680
11681         * utils.c (mkdirhier): Renamed from mymkdir.
11682         (touch): Renamed from my_touch.
11683         (pwd_cuserid): Renamed from my_cuserid().
11684
11685 1998-01-24  Andy Eskilsson  <andy.eskilsson@telelogic.se>
11686
11687         * utils.c (accdir): Process wildcards.
11688         (proclist): New function.
11689         (accdir): Use it to avoid code repetition.
11690
11691 1998-01-24  Hrvoje Niksic  <hniksic@srce.hr>
11692
11693         * recur.c (parse_robots): Respect opt.useragent; use alloca().
11694
11695         * http.c (gethttp): Construct useragent accordingly.
11696
11697         * version.c: Changed version string to numbers-only.
11698
11699         * main.c (print_help): List all the options.
11700
11701         * mswindows.c (windows_main_junk): Initialize argv0 here.
11702
11703 1998-01-24  Karl Heuer  <kwzh@gnu.org>
11704
11705         * netrc.c (search_netrc): Initialize `l' only after processing
11706         netrc.
11707
11708         * main.c (main): Don't trap SIGHUP if it's being ignored.
11709
11710 1998-01-24  Hrvoje Niksic  <hniksic@srce.hr>
11711
11712         * all: Use logmsg().
11713
11714         * utils.c (time_str): Moved from retr.c.
11715         (logmsg): New function.
11716         (logmsg_noflush): Ditto.
11717
11718         * rbuf.c: New file, moved buf_* functions here.
11719
11720         * ftp.c (ftp_expected_bytes): Moved from ftp-basic.c.
11721
11722         * ftp-basic.c (ftp_rest): Use prnum().
11723
11724         * ftp-basic.c: Ditto.
11725
11726         * ftp.c: Use the new reading functions and macros.
11727
11728         * retr.c (buf_initialize): New function.
11729         (buf_initialized_p): Ditto.
11730         (buf_uninitialize): Ditto.
11731         (buf_fd): Ditto.
11732
11733         * http.c (fetch_next_header): Use the BUF_READCHAR macro for
11734         efficiency.
11735         (gethttp): Use alloca() where appropriate.
11736
11737         * retr.c (buf_readchar): Use it.
11738         (buf_peek): Use rstreams.
11739
11740         * retr.h (BUF_READCHAR): New macro.
11741
11742         * init.c (home_dir): Rewritten for clarity.
11743         (init_path): Ditto.
11744
11745         * mswindows.c (ws_backgnd): Made static.
11746         (read_registry): Ditto.
11747         (ws_cleanup): Ditto.
11748         (ws_handler): Ditto.
11749
11750 1998-01-23  Hrvoje Niksic  <hniksic@srce.hr>
11751
11752         * alloca.c: New file.
11753
11754         * Makefile.in (ALLOCA): Define.
11755
11756         * mswindows.c (ws_help): Constify.
11757         (ws_help): Use alloca.
11758
11759         * mswindows.c: Reformat.
11760
11761         * all: Added _(...) annotations for I18N snarfing and translation.
11762
11763         * host.c (ftp_getaddress): Nuke SYSINFO.
11764         (ftp_getaddress): Don't use getdomainname().
11765         (ftp_getaddress): Use uname(), where available.
11766
11767         * http.c (gethttp): Protect a stray fprintf().
11768
11769         * init.c (settime): New function.
11770         (setval): Treat WAIT specially, allowing suffixes like `m' for
11771         minutes, etc.
11772
11773 1998-01-21  Hrvoje Niksic  <hniksic@srce.hr>
11774
11775         * url.c (get_urls_html): Use alloca() for TEMP.
11776
11777 1998-01-21  Jordan Mendelson  <jordy@wserv.com>
11778
11779         * url.c (rotate_backups): New function.
11780
11781         * http.c (gethttp): Ditto.
11782
11783         * ftp.c (getftp): Rotate backups.
11784
11785 1997-12-18  Hrvoje Niksic  <hniksic@srce.hr>
11786
11787         * all: Renamed nmalloc(), nrealloc() and nstrdup() to xmalloc(),
11788         xrealloc() and xstrdup().  Use the new functions.
11789
11790         * url.c (decode_string): Made static.
11791         (has_proto): Ditto.
11792         (parse_dir): Ditto.
11793         (parse_uname): Ditto.
11794         (mkstruct): Ditto.
11795         (construct): Ditto.
11796         (construct_relative): Ditto.
11797
11798         * retr.c (show_progress): Made static.
11799
11800         * recur.c (robots_url): Made static.
11801         (retrieve_robots): Ditto.
11802         (parse_robots): Ditto.
11803         (robots_match): Ditto.
11804
11805         * main.h: Removed.
11806
11807         * main.c (printhelp): Made static.
11808         (hangup): Ditto.
11809
11810         * init.c (comind): Made static.
11811         (defaults): Ditto.
11812         (init_path): Ditto.
11813         (run_wgetrc): Ditto.
11814         (onoff): Ditto.
11815         (setonoff): Ditto.
11816         (setnum): Ditto.
11817         (myatoi): Ditto.
11818         (getperms): Ditto.
11819         (setbytes): Ditto.
11820
11821         * http.c (fetch_next_header): Made static.
11822         (hparsestatline): Ditto.
11823         (hskip_lws): Ditto.
11824         (hgetlen): Ditto.
11825         (hgetrange): Ditto.
11826         (hgettype): Ditto.
11827         (hgetlocation): Ditto.
11828         (hgetmodified): Ditto.
11829         (haccepts_none): Ditto.
11830         (gethttp): Ditto.
11831         (base64_encode_line): Ditto.
11832         (mktime_from_utc): Ditto.
11833         (http_atotm): Ditto.
11834
11835         * html.c (idmatch): Made static.
11836
11837         * host.c (search_host): Made static.
11838         (search_address): Ditto.
11839         (free_hlist): Ditto.
11840
11841         * ftp.c (getftp): Made static.
11842         (ftp_loop_internal): Ditto.
11843         (ftp_get_listing): Ditto.
11844         (ftp_retrieve_list): Ditto.
11845         (ftp_retrieve_dirs): Ditto.
11846         (ftp_retrieve_glob): Ditto.
11847         (freefileinfo): Ditto.
11848         (delelement): Ditto.
11849
11850         * ftp-ls.c (symperms): Made static.
11851         (ftp_parse_unix_ls): Ditto.
11852
11853         * connect.c (select_fd): Made static.
11854
11855         * utils.c (xmalloc): Renamed from nmalloc.
11856         (xrealloc): Renamed from nrealloc.
11857         (xstrdup): Renamed from nstrdup.
11858
11859         * getopt.c (exchange): Use alloca.
11860
11861         * mswindows.c (mycuserid): Use strncpy.
11862
11863         * New files mswindows.c, mswindows.h, sysdep.h.  winjunk.c,
11864         systhings.h, windecl.h and winjunk.h removed.
11865
11866         * mswindows.c (sleep): New function.
11867
11868         * utils.c: Include <windows.h> under Windows.
11869
11870 1997-06-12  Darko Budor  <dbudor@zesoi.fer.hr>
11871
11872         * url.h (URL_UNSAFE): Change default under Windows.
11873
11874         * retr.c (retrieve_from_file): Respect opt.delete_after.
11875
11876         * main.c (main): Call ws_help on Windows.
11877
11878         * winjunk.c (windows_main_junk): New function.
11879
11880         * main.c (main): Junk-process argv[0].
11881
11882         * http.c (mktime_from_utc): Return -1 if mktime failed.
11883
11884         * http.c (http_loop): Ditto.
11885
11886         * ftp.c (ftp_loop_internal): Change title on Windows when using a
11887         new URL.
11888
11889         * winjunk.c (getdomainname): Lots of functions.
11890
11891 1997-06-12  Hrvoje Niksic  <hniksic@srce.hr>
11892
11893         * cmpt.c (strptime_internal): Handle years more correctly for
11894         `%y'.
11895
11896 1997-06-09  Mike Thomas <mthomas@reality.ctron.com>
11897
11898         * http.c (gethttp): Allocate enough space for
11899         `Proxy-Authorization' header.
11900
11901 1997-05-10  Hrvoje Niksic  <hniksic@srce.hr>
11902
11903         * version.c: Wget/1.4.5 is released.
11904
11905 1997-05-10  Hrvoje Niksic  <hniksic@srce.hr>
11906
11907         * retr.c (get_contents): Check return value of fwrite more
11908         carefully.
11909
11910 1997-03-30  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
11911
11912         * cmpt.c (strptime_internal) [case 'Y']: Always subtract 1900 from
11913         year, regardless of century.
11914
11915 1997-03-30  Hrvoje Niksic  <hniksic@srce.hr>
11916
11917         * utils.c (isfile): Use `lstat' instead of `stat'.
11918
11919 1997-03-29  Hrvoje Niksic  <hniksic@srce.hr>
11920
11921         * utils.c (numdigit): Use explicit test.
11922
11923 1997-03-21  Hrvoje Niksic  <hniksic@srce.hr>
11924
11925         * http.c (http_loop): Always use `url_filename' to get u->local.
11926
11927 1997-03-20  Hrvoje Niksic  <hniksic@srce.hr>
11928
11929         * url.c: Recognize https.
11930
11931 1997-03-13  Hrvoje Niksic  <hniksic@srce.hr>
11932
11933         * recur.c (recursive_retrieve): Lowercase just the host name.
11934
11935 1997-03-09  Hrvoje Niksic  <hniksic@srce.hr>
11936
11937         * url.c (get_urls_file): Use the correct test.
11938         (get_urls_html): Ditto.
11939
11940 1997-03-07  Hrvoje Niksic  <hniksic@srce.hr>
11941
11942         * connect.c: Reverted addrlen to int.
11943
11944         * init.c (parse_line): Check for -1 instead of NONE.
11945
11946         * version.c: Changed version to 1.4.5.
11947
11948 1997-02-17  Hrvoje Niksic  <hniksic@srce.hr>
11949
11950         * init.c: New option netrc.
11951         (initialize): Don't parse .netrc.
11952
11953         * cmpt.c (recursive): Return rp.
11954         (strptime_internal): Match the long strings first, the abbreviated
11955         second.
11956
11957 1997-02-16  Hrvoje Niksic  <hniksic@srce.hr>
11958
11959         * http.c (check_end): New function.
11960         (http_atotm): Use it.
11961
11962 1997-02-13  gilles Cedoc  <gilles@cedocar.fr>
11963
11964         * http.c (gethttp): Use them.
11965
11966         * init.c: New options proxy_user and proxy_passwd.
11967
11968 1997-02-14  Hrvoje Niksic  <hniksic@srce.hr>
11969
11970         * ftp.c (ftp_retrieve_list): Create links even if not relative.
11971
11972 1997-02-10  Hrvoje Niksic  <hniksic@srce.hr>
11973
11974         * recur.c (recursive_retrieve): Lowercase the host name, if the
11975         URL is not "optimized".
11976
11977         * host.c (realhost): Return l->hostname, even if it matches with
11978         host.
11979
11980 1997-02-10  Marin Purgar  <pmc@asgard.hr>
11981
11982         * connect.c: Make addrlen size_t instead of int.
11983         (conaddr): Ditto.
11984
11985 1997-02-09  Gregor Hoffleit  <flight@mathi.uni-heidelberg.DE>
11986
11987         * systhings.h: Define S_ISLNK on NeXT too.
11988
11989 1997-02-09  Hrvoje Niksic  <hniksic@srce.hr>
11990
11991         * version.c: Released 1.4.3.
11992
11993         * url.c: Futher update to list of protostrings.
11994         (skip_proto): Skip `//' correctly for FTP and HTTP.
11995
11996         * url.c (get_urls_html): Handle bogus `http:' things a little
11997         different.
11998
11999         * main.c (main): Removed `follow-ftp' from `f'.
12000         (main): Dumped the `prefix-files' and `file-prefix' options and
12001         features; old and bogus.
12002         (main): Exit on failed setval() in `-e'.
12003
12004         * http.c (fetch_next_header): Use it to detect header continuation
12005         correctly.
12006
12007         * retr.c (buf_peek): New function.
12008
12009 1997-02-08  Hrvoje Niksic  <hniksic@srce.hr>
12010
12011         * wget.h: Include time.h and stuff.
12012
12013 1997-02-08  Roger Beeman  <beeman@cisco.com>
12014
12015         * ftp.c: Include <time.h>
12016
12017 1997-02-07  Hrvoje Niksic  <hniksic@srce.hr>
12018
12019         * url.c (findurl): Would read over buffer limits.
12020
12021 1997-02-06  Hrvoje Niksic  <hniksic@srce.hr>
12022
12023         * ftp-ls.c (ftp_parse_unix_ls): Allow spaces in file names.
12024
12025 1997-02-05  Hrvoje Niksic  <hniksic@srce.hr>
12026
12027         * http.c (http_atotm): Initialize tm.is_dst.
12028
12029 1997-02-02  Hrvoje Niksic  <hniksic@srce.hr>
12030
12031         * http.c (gethttp): Don't print the number of retrieved headers.
12032
12033         * main.c (main): New option `--no-clobber', alias for `-nc'.
12034
12035         * url.c: Recognize `https://'.
12036
12037 1997-02-01  Hrvoje Niksic  <hniksic@srce.hr>
12038
12039         * host.c (herrmsg): Don't use h_errno.
12040
12041 1997-01-30  Hrvoje Niksic  <hniksic@srce.hr>
12042
12043         * host.c (accept_domain): Use it.
12044
12045         * main.c (main): New option `--exclude-domains'.
12046
12047         * retr.c (retrieve_url): Use it.
12048         (retrieve_url): Bail out when an URL is redirecting to itself.
12049
12050         * url.c (url_equal): New function.
12051
12052 1997-01-29  Hrvoje Niksic  <hniksic@srce.hr>
12053
12054         * connect.c: Include arpa/inet.h instead of arpa/nameser.h.
12055
12056         * http.c (mk_utc_time): New function.
12057         (http_atotm): Use it; handle time zones correctly.
12058
12059 1997-01-28  Hrvoje Niksic  <hniksic@srce.hr>
12060
12061         * http.c: Ditto.
12062
12063         * ftp-basic.c: Use it instead of WRITE.
12064
12065         * connect.c (iwrite): New function.
12066
12067 1997-01-27  Hrvoje Niksic  <hniksic@srce.hr>
12068
12069         * cmpt.c (mktime): New function.
12070
12071         * netrc.c: Include <sys/types.h>.
12072
12073         * main.c (main): Wouldn't recognize --spider.
12074
12075         * retr.c (rate): Use `B', `KB' and `MB'.
12076         (reset_timer,elapsed_time): Moved from utils.c.
12077
12078         * ftp.c (ftp_retrieve_list): Ditto.
12079
12080         * http.c (http_loop): Don't touch the file if opt.dfp.
12081
12082 1997-01-24  Hrvoje Niksic  <hniksic@srce.hr>
12083
12084         * cmpt.c: New file.
12085
12086         * ftp.c (ftp_retrieve_glob): New argument semantics.
12087         (ftp_retrieve_dirs): Use it.
12088         (ftp_loop): Ditto.
12089
12090         * html.c (htmlfindurl): Recognize `'' as the quote char.
12091
12092 1997-01-23  Hrvoje Niksic  <hniksic@srce.hr>
12093
12094         * ftp.c (ftp_loop_internal): Use it.
12095
12096         * utils.c (remove_link): New function.
12097
12098 1997-01-22  Hrvoje Niksic  <hniksic@srce.hr>
12099
12100         * retr.c (retrieve_url): Require STRICT redirection URL.
12101
12102         * url.c (parseurl): New argument STRICT.
12103
12104         * http.c (hparsestatline): Be a little-bit less strict about
12105         status line format.
12106
12107 1997-01-21  Hrvoje Niksic  <hniksic@srce.hr>
12108
12109         * http.c (gethttp): Use it.
12110
12111         * main.c (main): Don't use '<digit>' as options.
12112
12113         * init.c: New option ignore_length.
12114
12115         * http.c (gethttp): Ditto.
12116         (http_loop): Check for redirection without Location:.
12117         (gethttp): Don't print Length unless RETROKF.
12118
12119         * ftp.c (getftp): Use it.
12120
12121         * url.c (mkalldirs): New function.
12122
12123         * utils.c (mymkdir): Don't check for existing non-directory.
12124
12125         * url.c (mkstruct): Don't create the directory.
12126
12127 1997-01-20  Hrvoje Niksic  <hniksic@srce.hr>
12128
12129         * init.c (setval): Removed NO_RECURSION checks.
12130
12131 1997-01-19  Hrvoje Niksic  <hniksic@srce.hr>
12132
12133         * version.c: "Released" 1.4.3-pre2.
12134
12135         * recur.c (recursive_retrieve): Bypass host checking only if URL
12136         is ftp AND parent URL is not ftp.
12137
12138         * ftp-basic.c (ftp_request): Print out Turtle Power.
12139
12140         * ftp.c (ftp_loop): Call ftp_retrieve_glob with 0 if there's no
12141         wildcard.
12142         (ftp_retrieve_glob): Call ftp_loop_internal even on empty list, if
12143         not glob.
12144
12145         * http.c (gethttp): Be a little bit smarter about status codes.
12146
12147         * recur.c (recursive_retrieve): Always reset opt.recursive when
12148         dealing with FTP.
12149
12150 1997-01-18  Hrvoje Niksic  <hniksic@srce.hr>
12151
12152         * retr.c (retrieve_url): New variable location_changed; use it for
12153         tests instead of mynewloc.
12154         (retrieve_url): Allow heuristic adding of html.
12155
12156         * url.c (url_filename): Don't use the `%' in Windows file names.
12157
12158         * http.c (http_loop): Always time-stamp the local file.
12159
12160         * http.c (http_loop): Ditto.
12161
12162         * ftp.c (ftp_retrieve_list): Use it.
12163
12164         * utils.c (my_touch): New function.
12165
12166         * ftp.c (ftp_retrieve_list): Use #ifdef HAVE_STRUCT_UTIMBUF
12167         instead of #ifndef NeXT.
12168
12169         * utils.c (strptime): New version, by Ulrich Drepper.
12170
12171 1997-01-17  Hrvoje Niksic  <hniksic@srce.hr>
12172
12173         * http.c (haccepts_none): Renamed from `haccepts_bytes'.
12174         (gethttp): If haccepts_none(), disable ACCEPTRANGES.
12175         (http_loop): Would remove ACCEPTRANGES.
12176
12177         * ftp.c (getftp): Call ftp_list with NULL.
12178
12179 1997-01-15  Hrvoje Niksic  <hniksic@srce.hr>
12180
12181         * html.c (ftp_index): Don't print minutes and seconds if we don't
12182         know them; beautify the output.
12183
12184         * ftp.c (getftp): Don't close the socket on FTPNSFOD.
12185
12186 1997-01-14  Hrvoje Niksic  <hniksic@srce.hr>
12187
12188         * utils.c (strptime): New function.
12189         (strptime): Don't use get_alt_number.
12190         (strptime): Don't use locale.
12191         (match_string): Made it a function.
12192
12193 1997-01-12  Hrvoje Niksic  <hniksic@srce.hr>
12194
12195         * http.c (http_atotm): New function.
12196         (http_loop): Use it.
12197
12198         * atotm.c: Removed from the distribution.
12199
12200         * http.c (base64_encode_line): Rewrite.
12201
12202 1997-01-09  Hrvoje Niksic  <hniksic@srce.hr>
12203
12204         * ftp.c (getftp): Use ftp_expected_bytes; print size.
12205
12206         * ftp-basic.c (ftp_response): Use ftp_last_respline.
12207         (ftp_expected_bytes): New function.
12208
12209         * ftp.c (getftp): Print the unauthoritative file length.
12210
12211         * ftp-ls.c: Renamed from ftp-unix.c.
12212         (ftp_parse_ls): Moved from ftp.c.
12213         (ftp_parse_unix_ls): Recognize seconds in time spec.
12214         (ftp_parse_unix_ls): Recognize year-less dates of the previous
12215         year.
12216
12217 1997-01-08  Hrvoje Niksic  <hniksic@srce.hr>
12218
12219         * ftp-basic.c: Don't declare errno if #defined.
12220
12221         * host.c (ftp_getaddress): Check for sysinfo legally.
12222
12223 1997-01-08  Darko Budor  <dbudor@diana.zems.fer.hr>
12224
12225         * connect.c (iread): Use READ.
12226
12227 1996-12-23  Hrvoje Niksic  <hniksic@srce.hr>
12228
12229         * url.c: Recognize finger, rlogin, tn3270, mid and cid as valid
12230         schemes.
12231
12232 1996-12-22  Hrvoje Niksic  <hniksic@srce.hr>
12233
12234         * host.c (ftp_getaddress): Allow `.' in hostname.
12235
12236 1996-12-26  Darko Budor <dbudor@zems.fer.hr>
12237
12238         * wget.h: READ and WRITE macros for use instead of read and write
12239         on sockets, grep READ *.c, grep WRITE *.c
12240
12241         * wsstartup.c: new file - startup for winsock
12242
12243         * wsstartup.h: new file
12244
12245         * win32decl.h: new file - fixup for <errno.h> and winsock trouble
12246
12247         * configure.bat: Configure utility for MSVC
12248
12249         * src/Makefile.ms,config.h.ms: new files for use with MSVC 4.x
12250
12251 1996-12-22  Hrvoje Niksic  <hniksic@srce.hr>
12252
12253         * version.c: Released 1.4.3-pre.
12254
12255         * utils.c (prnum): Accept long.
12256         (legible): Use prnum().
12257
12258         * connect.c (make_connection): Accept port as short.
12259         (bindport): Ditto.
12260
12261         * http.c (gethttp): Use search_netrc.
12262
12263 1996-12-21  Hrvoje Niksic  <hniksic@srce.hr>
12264
12265         * ftp.c (getftp): Use search_netrc.
12266
12267         * netrc.c (free_netrc): New function.
12268
12269         * init.c (home_dir): New function.
12270
12271         * url.c (convert_links): Allow REL2ABS changes.
12272
12273 1996-12-21  Gordon Matzigkeit  <gord@gnu.ai.mit.edu>
12274
12275         * netrc.c: New file.
12276         (parse_netrc, maybe_add_to_list): New functions.
12277
12278 1996-12-17  Hrvoje Niksic  <hniksic@srce.hr>
12279
12280         * retr.c (retrieve_url): Reset opt.recursion before calling
12281         ftp_loop if it is reached through newloc.
12282
12283         * init.c (run_wgetrc): Print the wgetrc path too, when reporting
12284         error; don't use "Syntax error", since we don't know if it is
12285         really a syntax error.
12286
12287 1996-12-16  Hrvoje Niksic  <hniksic@srce.hr>
12288
12289         * utils.c (acceptable): Extract the filename part of the path.
12290
12291         * recur.c (recursive_retrieve): Call acceptable() with the right
12292         argument; would bug out on wildcards.
12293
12294         * init.c (parse_line): Likewise.
12295
12296         * html.c (htmlfindurl): Cast to char * when calling stuff.
12297
12298 1996-12-15  Hrvoje Niksic  <hniksic@srce.hr>
12299
12300         * ftp.c (getftp): Use ftp_pasv.
12301
12302         * ftp-basic.c (ftp_request): Accept NULL value.
12303         (ftp_pasv): New function.
12304
12305         * options.h (struct options): Add passive FTP option.
12306
12307 1996-12-15  Hrvoje Niksic  <hniksic@srce.hr>
12308
12309         * url.c (parseurl): Debug output.
12310
12311         * utils.c (path_simplify): New one, adapted from bash's
12312         canonicalize_pathname().
12313
12314 1996-12-14  Hrvoje Niksic  <hniksic@srce.hr>
12315
12316         * ftp.c (getftp): Don't discard the buffer.
12317
12318         * retr.c (get_contents): New parameter nobuf.
12319
12320 1996-12-13  Shawn McHorse  <riffraff@txdirect.net>
12321
12322         * html.c (htmlfindurl): Recognize <meta contents="d; URL=...".
12323
12324         * init.c (setval): Strip the trailing slashes on CVECDIR.
12325
12326 1996-12-13  Hrvoje Niksic  <hniksic@srce.hr>
12327
12328         * init.c: Make excludes and includes under CVECDIR instead of
12329         CVEC.
12330
12331 1996-12-13  Shawn McHorse  <riffraff@txdirect.net>
12332
12333         * url.c (get_urls_html): Skip "http:".
12334
12335 1996-12-13  Hrvoje Niksic  <hniksic@srce.hr>
12336
12337         * utils.c (strcasecmp): From glibc.
12338         (strncasecmp): Also.
12339         (strstr): Also.
12340
12341         * url.c: Added javascript: to the list of URLs prefixes.
12342
12343 1996-12-12  Shawn McHorse  <riffraff@txdirect.net>
12344
12345         * recur.c (retrieve_robots): Print the warning message only if
12346         verbose.
12347
12348 1996-12-12  Gregor Hoffleit  <flight@mathi.uni-heidelberg.DE>
12349
12350         * ftp.c (ftp_retrieve_list): Use NeXT old utime interface.
12351
12352 1996-12-12  Hrvoje Niksic  <hniksic@srce.hr>
12353
12354         * systhings.h: New file.
12355
12356         * ../configure.in: Check for utime.h
12357
12358         * ftp.c: Check whether we have unistd.h.
12359
12360 1996-11-27  Hrvoje Niksic  <hniksic@srce.hr>
12361
12362         * recur.c (recursive_retrieve): Send the canonical URL as referer.
12363         (recursive_retrieve): Call get_urls_html with the canonical URL.
12364
12365 1996-12-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12366
12367         * (configure.in, config.h.in, src/Makefile.in, src/*.[ch]): Add
12368         ansi2knr support for compilers which don't support ANSI style
12369         function prototypes and signatures.
12370
12371         * (aclocal.m4, src/ansi2knr.c, src/ansi2knr.1): New files.
12372
12373 1996-11-26  Hrvoje Niksic  <hniksic@srce.hr>
12374
12375         * url.c: Use it; Recognize paths ending with "." and ".." as
12376         directories.
12377         (url_filename): Append .n whenever file exists and could be a
12378         directory.
12379
12380         * url.h (ISDDOT): New macro.
12381
12382         * init.c (parse_line): Use unsigned char.
12383
12384         * url.c (get_urls_html): Cast to unsigned char * when calling
12385         htmlfindurl.
12386
12387         * html.c (htmlfindurl): Use unsigned char.
12388
12389         * version.c: Changed version to 1.4.3.
12390
12391 1996-11-25  Hrvoje Niksic  <hniksic@srce.hr>
12392
12393         * version.c: Released 1.4.2.
12394
12395         * ftp.c (getftp): Simplified assertion.
12396         (ftp_loop_internal): Remove symlink before downloading.
12397         (ftp_retrieve_list): Unlink the symlink name before attempting to
12398         create a symlink!
12399
12400         * options.h (struct options): Renamed print_server_response to
12401         server_response.
12402
12403         * ftp.c (rel_constr): Removed.
12404         (ftp_retrieve_list): Don't use it.
12405         (ftp_retrieve_list): Use opt.retr_symlinks.
12406
12407 1996-11-24  Hrvoje Niksic  <hniksic@srce.hr>
12408
12409         * main.c (main): New option retr_symlinks.
12410
12411         * url.c (convert_links): Print verbose message.
12412
12413 1996-11-24  Hrvoje Niksic  <hniksic@srce.hr>
12414
12415         * http.c (http_loop): Reset newloc in the beginning of function;
12416         would cause FMR in retrieve_url.
12417
12418 1996-11-23  Hrvoje Niksic  <hniksic@srce.hr>
12419
12420         * recur.c (convert_all_links): Find the URL of each HTML document,
12421         and feed it to get_urls_html; would bug out.
12422         (convert_all_links): Check for l2 instead of dl; removed dl.
12423
12424         * url.c (convert_links): Don't refer to freed newname.
12425
12426         * recur.c (recursive_retrieve): Add this_url to urls_downloaded.
12427
12428         * main.c (main): Print the OS_TYPE in the debug output, too.
12429
12430         * recur.c (recursive_retrieve): Check for opt.delete_after.
12431
12432         * main.c (main): New option delete-after.
12433
12434         * init.c (setval): Cleaned up.
12435
12436 1996-11-21  Hrvoje Niksic  <hniksic@srce.hr>
12437
12438         * Makefile.in (wget): Make `wget' the default target.
12439
12440         * ftp.c (ftp_loop_internal): Move noclobber checking out of the
12441         loop.
12442         (ftp_retrieve_list): Warn about non-matching sizes.
12443
12444         * http.c (http_loop): Made -nc non-dependent on opt.recursive.
12445
12446         * init.c (setnum): Renamed from setnuminf; New argument flags.
12447         (setval): Use it.
12448
12449         * main.c (main): Sorted the options.
12450         (main): New option --wait.
12451
12452 1996-11-21  Shawn McHorse  <riffraff@txdirect.net>
12453
12454         * html.c (htmlfindurl): Reset s->in_quote after getting out of
12455         quotes.
12456
12457 1996-11-20  Hrvoje Niksic  <hniksic@srce.hr>
12458
12459         * version.c: Changed version to 1.4.2.
12460
12461 1996-11-20  Hrvoje Niksic  <hniksic@srce.hr>
12462
12463         * version.c: Released 1.4.1.
12464
12465         * html.c (html_quote_string): New function.
12466         (ftp_index): Use it.
12467         (htmlfindurl): A more gentle ending debug message.
12468
12469         * ftp.c (ftp_loop): Check for opt.htmlify.
12470
12471         * init.c: New command htmlify.
12472
12473         * ftp.c (getftp): Nicer error messages, with `'-encapsulated
12474         strings.
12475         (ftp_loop): Print size of index.html.
12476
12477         * init.c (setval): Implement "styles".
12478
12479         * main.c (main): New option dotstyle.
12480
12481 1996-11-19  Hrvoje Niksic  <hniksic@srce.hr>
12482
12483         * ftp.c (getftp): Close the master socket in case of errors, after
12484         bindport().
12485
12486         * connect.c (bindport): Initialize msock to -1.
12487
12488         * ftp.c (getftp): Initialize dtsock to -1.
12489
12490         * connect.c (closeport): Don't close sock if sock == -1.
12491
12492 1996-11-18  Hrvoje Niksic  <hniksic@srce.hr>
12493
12494         * init.c (setnuminf): Nuked default value -- just leave unchanged.
12495         (setval): Don't send default values.
12496         (defaults): Use DEFAULT_TIMEOUT -- aaargh.
12497
12498         * options.h (struct options): Use long for dot_bytes.
12499
12500         * init.c (setquota): Renamed to setbytes.
12501         (setval): Use setbytes on DOTBYTES.
12502
12503 1996-11-17  Hrvoje Niksic  <hniksic@srce.hr>
12504
12505         * ftp.c (getftp): Initialize con->dltime.
12506
12507         * recur.c (recursive_retrieve): Use same_host instead of
12508         try_robots; simply load robots_txt whenever the host is changed.
12509         (recursive_retrieve): Free forbidden before calling parse_robots.
12510
12511 1996-11-16  Hrvoje Niksic  <hniksic@srce.hr>
12512
12513         * retr.c (show_progress): Use them.
12514
12515         * options.h (struct options): New options dot_bytes, dots_on_line
12516         and dot_spacing.
12517
12518 1996-11-16  Mark Boyns  <boyns@sdsu.edu>
12519
12520         * recur.c (recursive_retrieve): Retrieve directories regardless of
12521         acc/rej rules; check for empty u->file.
12522
12523 1996-11-14  Hrvoje Niksic  <hniksic@srce.hr>
12524
12525         * init.c (setval): Use it.
12526
12527         * utils.c (merge_vecs): New function.
12528
12529         * init.c (setval): Reset the list-type functions when encountering
12530         "".
12531
12532 1996-11-14  Shawn McHorse  <riffraff@txdirect.net>
12533
12534         * recur.c (recursive_retrieve): Use base_url instead of this_url
12535         for no_parent.
12536
12537 1996-11-14  Shawn McHorse  <riffraff@txdirect.net>
12538
12539         * html.c (htmlfindurl): Reset s->in_quote after exiting the quote.
12540
12541 1996-11-13  Hrvoje Niksic  <hniksic@srce.hr>
12542
12543         * utils.c (sepstring): Rewrote; don't use strtok.
12544
12545         * recur.c (recursive_retrieve): Enter assorted this_url to slist
12546         when running the first time.
12547         (retrieve_robots): Warn to ignore errors when robots are loaded.
12548
12549         * utils.c (load_file): Moved from url.c.
12550
12551         * http.c: Made static variables const too in h* functions.
12552
12553         * main.c (main): Renamed --continue-ftp to --continue.
12554
12555         * recur.c (recursive_retrieve): Use it.
12556
12557         * utils.c (frontcmp): New function.
12558
12559         * url.c (accdir): New function.
12560
12561         * html.c (htmlfindurl): Recognize <area href=...>.
12562
12563         * ftp.c (ftp_retrieve_dirs): Implemented opt.includes.
12564
12565         * init.c (setval): Free the existing opt.excludes and
12566         opt.includes, if available.
12567
12568         * main.c (main): New option -I.
12569
12570 1996-11-12  Hrvoje Niksic  <hniksic@srce.hr>
12571
12572         * ftp.c (ftp_retrieve_glob): Do not weed out directories.
12573
12574         * version.c: Changed version to 1.4.1.
12575
12576 1996-11-11  Hrvoje Niksic  <hniksic@srce.hr>
12577
12578         * version.c: Released 1.4.0.
12579
12580 1996-11-10  Hrvoje Niksic  <hniksic@srce.hr>
12581
12582         * main.c (main): Free com and val after parse_line.
12583         (printhelp): Reorder the listing.
12584
12585         * http.c: More robust header parsing.
12586
12587         * http.c: Allow any number of spaces, or no spaces, precede ':'.
12588         (hskip_lws): New function.
12589         (haccepts_bytes): New function.
12590         (gethttp): Use it.
12591
12592         * init.c (setval): Check header sanity.
12593         (setval): Allow resetting of headers.
12594
12595 1996-11-10  Hrvoje Niksic  <hniksic@srce.hr>
12596
12597         * http.c (http_loop): Don't use has_wildcards.
12598
12599         * http.c (gethttp): Free all_headers -- would leak.
12600
12601         * recur.c (recursive_retrieve): Initialize depth to 1 instead of
12602         0 -- this fixes a long-standing bug in -rl.
12603
12604 1996-11-09  Hrvoje Niksic  <hniksic@srce.hr>
12605
12606         * ftp.c: Use -1 as "impossible" value for con->fd.
12607
12608         * url.h (URL_SEPARATOR): Don't treat `*' and `+' as separators.
12609
12610         * init.c (parse_line): Use isalpha.
12611
12612         * ftp-unix.c: Use HAVE_UNISTD_H.
12613
12614         * mtch.c (has_wildcards): Don't match \.
12615
12616         * http.c (http_loop): Warn on HTTP wildcard usage.
12617
12618 1996-11-08  Hrvoje Niksic  <hniksic@srce.hr>
12619
12620         * url.c (url_filename): Do not create numbered suffixes if
12621         opt.noclobber -- would bug out on -nc.
12622
12623 1996-11-07  Hrvoje Niksic  <hniksic@srce.hr>
12624
12625         * recur.c (parse_robots): Don't chuck out the commands without
12626         arguments (`Disallow:<empty>' didn't work).
12627         (parse_robots): Compare versions lowercase.
12628         (parse_robots): Match on base_version, not version_string!
12629         (parse_robots): Handle comments properly.
12630         (parse_robots): Match versions in a sane way.
12631
12632         * init.c: Print nicer error messages.
12633
12634         * version.c: Changed version to 1.4.0.
12635
12636 1996-11-06  Hrvoje Niksic  <hniksic@srce.hr>
12637
12638         * version.c: Released 1.4.0-test2.
12639
12640         * init.c (run_wgetrc): Close fp.
12641
12642         * ftp.c (ftp_retrieve_dirs): Allocate the correct length for
12643         u->dir.
12644
12645 1996-11-06  Hrvoje Niksic  <hniksic@srce.hr>
12646
12647         * init.c (setquota): Allow inf as quota specification.
12648
12649 1996-11-05  Hrvoje Niksic  <hniksic@srce.hr>
12650
12651         * ftp.c (ftp_retrieve_dirs): Return QUOTEXC if quota exceeded.
12652         (ftp_retrieve_glob): Return QUOTEXC on quota exceeded.
12653
12654         * main.c (main): Check for quota by comparison with downloaded
12655         stuff, not from status.
12656
12657         * connect.c (select_fd): Should compile on HPUX without warnings now.
12658
12659         * ftp.c (ftp_get_listing): Check whether ftp_loop_internal
12660         returned RETROK.
12661
12662 1996-11-04  Hrvoje Niksic  <hniksic@srce.hr>
12663
12664         * ftp.c (ftp_retrieve_glob): Print the pattern nicely.
12665         (getftp): Return FTPRETRINT on control connection error.
12666
12667         * html.c (htmlfindurl): Recognize <embed src=...> and
12668         <bgsound src=...>.
12669         (ftp_index): Handle username and password correctly.
12670
12671         * main.c (main): Made `-np' a synonim for --no-parent.
12672
12673 1996-11-02  Hrvoje Niksic  <hniksic@srce.hr>
12674
12675         * ftp.c (ftp_loop): Check for opt.ftp_glob too before calling
12676         ftp_retrieve_glob.
12677
12678         * version.c: Changed version to 1.4.0-test2.
12679
12680 1996-11-02  Hrvoje Niksic  <hniksic@srce.hr>
12681
12682         * version.c: Released 1.4.0-test1.
12683
12684         * url.c (str_url): Don't use sprintf when creating %2F-prefixed
12685         directory.
12686         (convert_links): Removed definition of make_backup.
12687
12688         * http.h: Removed definition of MAX_ERROR_LENGTH.
12689
12690         * host.c (ftp_getaddress): Check for "(none)" domains.
12691
12692         * ftp.c (ftp_retrieve_dirs): Docfix.
12693
12694         * http.c (gethttp): Use ou->referer instead of u->referer.
12695
12696         * retr.c (retrieve_url): Reset u to avoid freeing pointers twice;
12697         this was known to cause coredumps on Linux.
12698
12699         * html.c (ftp_index): Cast the argument to local_time to time_t *.
12700
12701 1996-11-01  Hrvoje Niksic  <hniksic@srce.hr>
12702
12703         * connect.c (select_fd): Use exceptfds -- once and for all.
12704
12705         * retr.c (retrieve_from_file): Free filename after
12706         recursive_retrieve.
12707         (retrieve_from_file): Send RFIRST_TIME to recursive_retrieve on
12708         first-time retrieval.
12709         (retrieve_from_file): Return uerr_t; new argument, count.
12710         (retrieve_from_file): Break on QUOTEXC.
12711
12712         * init.c (setquota): Fixed a bug that caused rejection of
12713         non-postfixed values..
12714
12715 1996-10-30  Hrvoje Niksic  <hniksic@srce.hr>
12716
12717         * version.c: Changed name to wget.
12718
12719         * connect.c (iread): Smarter use of select.
12720         (select_fd): Set errno on timeout.  If not timeout, return 1
12721         instead of 0.
12722
12723 1996-10-29  Hrvoje Niksic  <hniksic@srce.hr>
12724
12725         * ftp.c (ftp_loop_internal): Don't use con->cmd before
12726         establishing it.
12727
12728 1996-10-26  Hrvoje Niksic  <hniksic@srce.hr>
12729
12730         * http.c (gethttp): Send correct referer when using proxy.
12731         (gethttp): Use struct urlinfo ou to access the relevant data; send
12732         correct authorization in all cases.
12733
12734         * host.c (same_host): Use skip_uname to skip username and
12735         password.
12736
12737         * url.c (skip_uname): New function.
12738         (parseurl): Use it.
12739
12740         * host.c (same_host): Do not assume HTTP -- same_host should now
12741         be totally foolproof.
12742
12743         * url.c (skip_proto): New function.
12744         (parse_uname): Use it.
12745
12746         * http.c (gethttp): Create local user and passwd from what is
12747         given.
12748
12749         * url.c (parseurl): Check for HTTP username and password too.
12750
12751 1996-10-25  Hrvoje Niksic  <hniksic@srce.hr>
12752
12753         * config.h.in: Removed #define gethostbyname R...
12754
12755 1996-10-22  Hrvoje Niksic  <hniksic@srce.hr>
12756
12757         * version.c: Changed version to 1.4.0-test1.
12758
12759 1996-10-21  Hrvoje Niksic  <hniksic@srce.hr>
12760
12761         * version.c: "Released" 1.4b29.
12762
12763         * recur.c (recursive_retrieve): Check for no_parent.
12764
12765         * init.c (setval): Option update.
12766
12767         * main.c (main): New option no-parent.
12768
12769         * options.h (struct options): New variable no_parent.
12770
12771         * recur.c (recursive_retrieve): Only files are checked for
12772         opt.accepts and opt.rejects.
12773         (recursive_retrieve): Check directories for opt.excludes.
12774         (recursive_retrieve): Make the dir absolute when checking
12775         opt.excludes.
12776
12777         * html.c (htmlfindurl): Recognize <applet code=...> and <script
12778         src=...>
12779
12780 1996-10-18  Hrvoje Niksic  <hniksic@srce.hr>
12781
12782         * ftp.c (getftp): Do not line-break assert entries at all.
12783         (ftp_retrieve_dirs): docfix.
12784
12785         * connect.c (select_fd): Use fd + 1 as nfds.
12786
12787         * version.c: Changed version to 1.4b29.
12788
12789 1996-10-18  Hrvoje Niksic  <hniksic@srce.hr>
12790
12791         * version.c: "Released" 1.4b28.
12792
12793         * ftp.c (ftp_loop_internal): Check whether f->size == len and
12794         don't continue the loop if it is.
12795         (ftp_get_listing): Remove list_filename on unsuccesful loop.
12796
12797 1996-10-17  Hrvoje Niksic  <hniksic@srce.hr>
12798
12799         * ftp.c (ftp_loop_internal): Use strcpy to initialize tmp.
12800         (getftp): Do not use multiline assert.
12801
12802         * http.c (hparsestatline): Use mjr and mnr instead of major and
12803         minor, which don't compile on Ultrix.
12804         (http_loop): Use strcpy() to initialize tmp.
12805
12806         * all: Geturl -> Fetch
12807
12808 1996-10-17  Hrvoje Niksic  <hniksic@srce.hr>
12809
12810         * recur.c (parse_robots): Fixed an off-by-one bug when looking for
12811         ':'.
12812
12813         * html.c (htmlfindurl): Fixed several possible off-by-one bugs by
12814         moving `bufsize &&' to the beginning of each check in for-loops.
12815
12816         * recur.c (parse_robots): Close fp on exit.
12817
12818         * url.c (mymkdir): Check for each directory before creating.
12819
12820 1996-10-16  Hrvoje Niksic  <hniksic@srce.hr>
12821
12822         * version.c: Changed version to 1.4b28.
12823
12824 1996-10-16  Hrvoje Niksic  <hniksic@srce.hr>
12825
12826         * version.c: "Released" 1.4b27.
12827
12828         * init.c (parse_line): Use isspace.
12829         (parse_line): Free *com on all errors.
12830
12831         * ftp.c (ftp_loop): Change FTPOK to RETROK before exiting.
12832         (delelement): Use next instead of f->next and prev instead of
12833         f->prev.
12834         (delelement): Free the members of the deleted element.
12835
12836         * http.c (http_loop): Do not return RETROK on code != 20x.
12837
12838         * init.c (cleanup): Free opt.user_header.
12839         (cleanup): Free opt.domains.
12840
12841         * url.c (freelists): Moved to cleanup().
12842
12843         * http.c (hparsestatline): Docfix.
12844
12845         * main.c (main): Return with error status on unsuccesful
12846         retrieval.
12847
12848         * init.c (setval): Do not remove listing when mirroring.
12849
12850         * url.c (url_filename): Use opt.fileprefix.
12851
12852         * ftp.c (ftp_get_listing): Use url_filename to get filename for
12853         .listing.
12854
12855         * main.c (main): New option: -rn.
12856
12857 1996-10-15  Hrvoje Niksic  <hniksic@srce.hr>
12858
12859         * Makefile.in (RM): Added RM = rm -f.
12860
12861         * host.c (clean_hosts): New function.
12862         (free_hlist): Just free the list, no reset.
12863
12864         * version.c: Changed version to 1.4b27.
12865
12866 1996-10-13  Hrvoje Niksic  <hniksic@srce.hr>
12867
12868         * version.c: "Released" 1.4b26.
12869
12870         * retr.c (retrieve_from_file): If call get_urls_html with
12871         opt.spider to make it silent in spider mode.
12872
12873         * url.c (str_url): Use CLEANDUP instead of URL_CLEANSE.
12874
12875         * url.h (CLEANDUP): New macro.
12876
12877         * http.c (gethttp): Fixed a bug that freed location only when it
12878         was NULL.
12879
12880         * retr.c (retrieve_url): Free url if it will not be stored,
12881         i.e. newloc is NULL.
12882
12883         * html.c (htmlfindurl): Handle exiting from quotes correctly; the
12884         old version would bug out on <a href="x#a"href="y">.
12885
12886         * html.h (state_t): New member in_quote.
12887
12888         * html.c (htmlfindurl): Free s->attr at the beginning of
12889         attr-loop.
12890
12891         * recur.c (recursive_retrieve): Recognize RCLEANUP.
12892         (tried_robots): Make hosts a global variable.
12893         (recursive_retrieve): Free constr after URL host optimization.
12894         (tried_robots): Free urlinfo before exiting.
12895
12896         * utils.c (free_slist): New function.
12897
12898         * recur.c (recursive_retrieve): Use flags to add cleanup
12899         possibility.
12900
12901         * main.c (main): Free filename after recursive_retrieve.
12902
12903         * http.c (gethttp): Store successful responses too.
12904
12905 1996-10-12  Hrvoje Niksic  <hniksic@srce.hr>
12906
12907         * all: Constified the whole source.  This required some minor
12908         changes in many functions in url.c, possibly introducing bugs -- I
12909         hope not.
12910
12911         * ftp-basic.c: Removed last_respline.
12912
12913         * http.c (gethttp): Free type.
12914
12915         * host.c (same_host): Free real1 and real2.
12916
12917         * main.c (main): New option --spider.
12918
12919         * retr.c (get_contents): Don't reset errno.
12920
12921         * main.c (main): Sorted the options.
12922
12923         * connect.c (iread): Set errno to ETIMEDOUT only if it was left
12924         uninitialized by select().
12925
12926         * http.c (http_loop): Print the time when the connection is
12927         closed.
12928         (gethttp): Debug-print the HTTP request.
12929
12930 1996-10-11  Hrvoje Niksic  <hniksic@srce.hr>
12931
12932         * connect.c (iread): Do not try reading after timeout.
12933
12934         * main.c (main): Would bug out on -T.
12935
12936         * connect.c (select_fd): Do not use exceptfds.
12937         (iread): Set ETIMEDOUT on select_fd <= 0.
12938
12939         * version.c: Changed version to 1.4b26.
12940
12941 1996-10-10  Hrvoje Niksic  <hniksic@srce.hr>
12942
12943         * version.c: "Released" 1.4b25.
12944
12945         * ftp-unix.c (ftp_parse_unix_ls): Ignore lines without file name
12946         or link name.
12947
12948         * http.c (gethttp): Add errcode to struct hstat.
12949         (http_loop): Use it.
12950
12951         * url.c (no_proxy_match): Simplify using char** for no_proxy.
12952
12953         * options.h (struct options): Make opt.no_proxy a vector.
12954
12955         * utils.c (sepstring): Use !*s instead of !strlen(s).
12956
12957         * init.c (setval): Set opt.maxreclevel to 0 on --mirror.
12958         (getperms): Use ISODIGIT instead of isdigit.
12959
12960         * ftp.c (getftp): Print time.
12961
12962         * main.c (main): Use legible output of downloaded quantity.
12963
12964         * ftp.c (getftp): Use elapsed_time().
12965         (ftp_loop_internal): Use rate().
12966
12967         * http.c (http_loop): Add download ratio output; Use rate().
12968
12969         * utils.c (rate): New function.
12970
12971 1996-10-09  Hrvoje Niksic  <hniksic@srce.hr>
12972
12973         * http.c (http_loop): Use timer.
12974
12975         * ftp.c: Split to ftp-basic.c and ftp.c
12976
12977         * utils.c (reset_timer): New function.
12978         (elapsed_time): New function.
12979
12980         * retr.c (show_progress): Make bytes_in_line and offs long; should
12981         work on 16-bit machines.
12982
12983 1996-10-08  Hrvoje Niksic  <hniksic@srce.hr>
12984
12985         * url.c (in_acclist): New argument backward.
12986
12987         * ftp.c (ftp_retrieve_glob): Use acceptable() to determine whether
12988         a file should be retrieved according to suffix.
12989         (ftp_get_listing): Check the return value of unlink; Do not call
12990         ftp_retrieve_dirs if depth reached maxreclevel.
12991         (ftp_retrieve_dirs): Check whether the directory is in
12992         exclude-list.
12993
12994         * main.c (main): Print the version number at the beginning of
12995         DEBUG output.
12996         (main): Use strrchr when creating exec_name.
12997
12998         * ftp.c (ftp_retrieve_glob): Do not close control connection.
12999
13000         * version.c: Changed version to 1.4b25.
13001
13002 1996-10-07  Hrvoje Niksic  <hniksic@srce.hr>
13003
13004         * version.c: "Released" 1.4b24.
13005
13006         * Makefile.in: Rewrite.
13007
13008         * ftp.c (ftp_loop_internal): Likewise.
13009
13010         * retr.c (time_str): Check for failed time().
13011
13012         * html.c (htmlfindurl): Recognize <fig src> and <overlay src> from
13013         HTML3.0.
13014
13015         * retr.c (time_str): Return time_t *.
13016
13017         * connect.c (bindport): Close msock on unsuccesful bind.
13018         (bindport): The same for getsockname and listen.
13019
13020         * retr.c (retrieve_url): Allow any number of retries on
13021         proxy.
13022
13023         * http.c (gethttp): Do not treat errno == 0 as timeout.
13024         (http_loop): Likewise.
13025         (http_loop): Cosmetic changes.
13026
13027         * connect.c (iread): Set errno to ETIMEDOUT in case of timeout.
13028
13029         * retr.c (get_contents): Reset errno.
13030
13031         * ftp.c (getftp): Minor fixes.
13032
13033 1996-10-06  Hrvoje Niksic  <hniksic@srce.hr>
13034
13035         * http.c: Do not use backups.
13036
13037         * geturl.1 (WARNING): Warn that man-page could be obsolete.
13038
13039         * getopt.c (getopt_long): Moved to getopt.c
13040
13041         * geturl.texi: Enhanced.
13042
13043         * main.c (main): Use it.
13044
13045         * recur.c (convert_all_links): New function.
13046
13047         * utils.c (add_slist): New argument flags.
13048
13049         * recur.c (recursive_retrieve): Update a list of downloaded URLs.
13050         (parse_robots): Do not chuck out empty value fields.
13051         (parse_robots): Make yourself welcome on empty Disallow.
13052
13053         * version.c: Changed version to 1.4b24.
13054
13055 1996-10-06  Hrvoje Niksic  <hniksic@srce.hr>
13056
13057         * version.c: "Released" 1.4b23.
13058
13059         * ftp.c (ftp_loop_internal): Get the time after getftp.
13060
13061         * Makefile.in (install.info): New target.
13062         (install): Use it.
13063
13064         * http.c (http_loop): Fix output when doing -O.
13065
13066 1996-10-05  Hrvoje Niksic  <hniksic@srce.hr>
13067
13068         * geturl.texi: New file.
13069
13070         * main.c (main): Do not print the warnings and download summary if
13071         opt.quiet is set.
13072
13073         * version.c: Changed version to 1.4b23.
13074
13075 1996-10-05  Hrvoje Niksic  <hniksic@srce.hr>
13076
13077         * "Released" 1.4b22.
13078
13079         * atotm.c (atotm): Use True and False instead of TRUE and FALSE,
13080         to avoid redefinition warnings.
13081
13082         * host.c (store_hostaddress): Use memcpy() to copy the address
13083         returned by inet_addr.
13084
13085         * version.c: Changed version to 1.4b22.
13086
13087 1996-10-04  Hrvoje Niksic  <hniksic@srce.hr>
13088
13089         * version.c: "Released" 1.4b21.
13090
13091         * ftp-unix.c (ftp_parse_ls): Renamed to ftp_parse_unix_ls.
13092
13093         * ftp.c (ftp_port): Use conaddr.
13094         (getftp): Print the file length.
13095         (ftp_retrieve_list): Check the stamps of plain files only.
13096
13097         * connect.c (closeport): Do not call shutdown().
13098         (conaddr): New function.
13099
13100         * html.c (ftp_index): Made it dfp-aware.
13101
13102         * init.c (cleanup): New name of freemem. Close opt.dfp.
13103
13104         * ftp.c (getftp): Use opt.dfp if it is set.
13105
13106         * ftp-unix.c (ftp_parse_ls): Recognize time in h:mm format.
13107
13108         * ftp.c (ftp_retrieve_dirs): Fixed a bug that caused incorrect
13109         CWDs to be sent with recursive FTP retrievals.
13110
13111 1996-10-03  Hrvoje Niksic  <hniksic@srce.hr>
13112
13113         * recur.c (parse_robots): Made it more compliant with "official"
13114         specifications.
13115
13116         * http.c: New function.
13117
13118         * ftp-unix.c (ftp_parse_ls): Added better debug output.
13119
13120         * ftp.c (getftp): Print out the LIST in case of
13121         opt.print_server_response.
13122
13123         * version.c: Changed version to 1.4b21.
13124
13125 1996-10-01  Hrvoje Niksic  <hniksic@srce.hr>
13126
13127         * version.c: "Released" 1.4b20.
13128
13129         * README: Update.
13130
13131         * http.c (gethttp): Preset lengths of various headers instead of
13132         calculating them dynamically.
13133         (gethttp): Check for 206 partial contents.
13134
13135 1996-09-30  Hrvoje Niksic  <hniksic@srce.hr>
13136
13137         * configure.in: Set SYSTEM_GETURLRC to $libdir/geturlrc
13138
13139         * http.c (gethttp): Send the port number in the Host: header.
13140
13141 1996-09-29  Hrvoje Niksic  <hniksic@srce.hr>
13142
13143         * http.c (gethttp): Send host: header.
13144         (gethttp): Add the possibility of user-defined headers.
13145         (gethttp): Move decision about pragma: no-cache to http_loop,
13146         where it belongs.
13147         (gethttp): Pass a struct instead of enormous argument list.
13148         (http_loop): Use a new, fancier display format.
13149         (ftp_loop): Likewise.
13150
13151         * main.c: (hangup): Turn off buffering of the new log file.
13152
13153         * install-sh: Likewise.
13154
13155         * config.sub: Replace with the one in autoconf-2.10
13156
13157         * geturl.1: Update.
13158
13159         * init.c: New options httpuser and httppasswd.
13160
13161         * http.c: (base64_encode_line): New function.
13162         (gethttp): Send authentication.
13163
13164         * connect.c (make_connection): Use store_hostaddress.
13165
13166 1996-09-28  Hrvoje Niksic  <hniksic@srce.hr>
13167
13168         * host.c (store_hostaddress): New function.
13169
13170         * NEWS: Update.
13171
13172         * http.c (hgetrange): New function.
13173         (gethttp): Use ranges.
13174
13175         * utils.c (numdigit): Accept long instead of int.
13176
13177         * http.c (http_loop): Add restart capabilities.
13178
13179         * ftp.c (ftp_retrieve_glob): Fixed a bug that could cause matchres
13180         being used uninitialized.
13181         (ftp_retrieve_list): Similar fix.
13182
13183         * host.c (add_hlist): Fixed a bug that could cause cmp being used
13184         uninitialized.
13185
13186         * url.c (construct_relative): New function.
13187
13188         * recur.c (recursive_retrieve): Use it.
13189
13190         * retr.c (convert_links): New function.
13191
13192 1996-09-27  Hrvoje Niksic  <hniksic@srce.hr>
13193
13194         * url.c (free_urlpos): New function.
13195
13196         * recur.c (recursive_retrieve): Adapt.
13197
13198         * url.c (get_urls_html): Return a linked list instead of a vector.
13199
13200         * url.c (get_urls_file): Return a linked list instead of a vector.
13201
13202         * geturl.1: Update.
13203
13204         * http.c (gethttp): Implement it.
13205
13206         * init.c (setval): New option: SAVEHEADERS
13207
13208         * ftp.c (ftp_loop_internal): Do not set restval if listing is to
13209         be retrieved. Lack of this test caused bugs when the connection
13210         was lost during listing.
13211
13212         * retr.c (retrieve_url): Fixed a bug that caused
13213         coredumps. *newloc is now reset by default.
13214         (retrieve_url): Lift the twenty-tries limit on proxies.
13215
13216         * version.c: Changed version to 1.4b20.
13217
13218 1996-09-20  Hrvoje Niksic  <hniksic@srce.hr>
13219
13220         * version.c: "Released" 1.4b19.
13221
13222 1996-09-19  Hrvoje Niksic  <hniksic@srce.hr>
13223
13224         * ftp.c (ftp_loop_internal): Renamed from ftp_1fl_loop.
13225         (getftp): Changed prototype to accept ccon *.
13226
13227 1996-09-17  Hrvoje Niksic  <hniksic@srce.hr>
13228
13229         * ftp.c (ftp_retrieve_list): Fixed a bug that caused setting
13230         incorrect values to files pointed to by symbolic links.
13231         (ftp_1fl_loop): Do not count listings among the downloaded URL-s.
13232
13233 1996-09-16  Hrvoje Niksic  <hniksic@srce.hr>
13234
13235         * url.c (mkstruct): Do not prepend "./" in front of a pathname.
13236
13237         * main.c (main): New option: --user-agent.
13238
13239         * geturl.1: Ditto.
13240
13241         * init.h: Ditto.
13242
13243         * init.c (setval): Ditto.
13244
13245         * main.c (main): Rename "server-headers" to "server-response".
13246
13247         * ftp-unix.c (ftp_parse_ls): Check for asterisks at the end of
13248         executables in 'ls -F' listings.
13249
13250 1996-09-15  Hrvoje Niksic  <hniksic@srce.hr>
13251
13252         * url.c (parseurl): Remove realloc() and sprintf().
13253         (str_url): Get rid of sprintf().
13254
13255         * recur.c (recursive_retrieve): Enable FTP recursion through proxy
13256         servers.
13257
13258         * url.h (URL_CLEANSE): Made it else-resistant.
13259         (USE_PROXY): New macro.
13260
13261 1996-09-14  Hrvoje Niksic  <hniksic@srce.hr>
13262
13263         * NEWS: Update.
13264
13265         * version.c: Changed version to 1.4b19.
13266
13267 1996-09-14  Hrvoje Niksic  <hniksic@srce.hr>
13268
13269         * version.c: "Released" 1.4b18.
13270
13271         * url.c: Made it reallocate space exponentially.
13272
13273 1996-09-14  Drazen Kacar  <dave@fly.cc.fer.hr>
13274
13275         * html.c (htmlfindurl): Added <frame src> and <iframe src> among
13276         the list of stuff to fetch.
13277
13278 1996-09-13  Hrvoje Niksic  <hniksic@srce.hr>
13279
13280         * url.c (get_urls_html): Fixed a bug that caused SIGSEGV's with
13281         -Fi.
13282
13283         * html.c (htmlfindurl): Rewrite.
13284
13285         * http.c (gethttp): Use opt.proxy_cache.
13286
13287         * main.c (main): Added --cache option.
13288
13289         * ftp.c (ftp_response): Print server response if opt.print_server
13290         response is set.
13291         (getftp): Print newlines after each request if the server response
13292         is to be printed.
13293         (ftp_response): Copy the last response line to last_respline.
13294
13295         * http.c (gethttp): Add Pragma: nocache for retried
13296         proxy-retrievals.
13297
13298         * ftp.c (getftp): Use it.
13299
13300         * retr.c (buf_discard): New function.
13301
13302         * ftp.c (ftp_response): Use buf_readchar().
13303         (getftp): Flush the control connection buffer before calling
13304         get_contents().
13305
13306         * retr.c (buf_readchar): New function.
13307         (buf_flush): New function.
13308         (get_contents): Use buf_readchar() instead of read(x, x, 1).
13309         (get_contents): Use buf_flush.
13310
13311 1996-09-12  Hrvoje Niksic  <hniksic@srce.hr>
13312
13313         * ftp.c: Incorporate changes to ftp_response.
13314
13315         * ftp.c (ftp_response): Allocate the server response dynamically,
13316         as in read_whole_line and fetch_next_header.
13317
13318         * utils.c (read_whole_line): Fixed a bug that prevented reading
13319         the last line if it is not \n-terminated. Also fixed a possible
13320         memory overflow.
13321
13322         * http.c (fetch_next_header): Return malloc-ed string as large as
13323         needed.
13324         (gethttp): Use new fetch_next_header.
13325
13326 1996-09-12  Hrvoje Niksic  <hniksic@srce.hr>
13327
13328         * http.c (hgetlen): Compute the header length the first time only.
13329         (hgettype): Ditto.
13330         (hgetlocation): Ditto.
13331         (hgetmodified): Ditto.
13332
13333 1996-09-11  Hrvoje Niksic  <hniksic@srce.hr>
13334
13335         * sample.geturlrc: Update.
13336
13337 1996-09-10  Hrvoje Niksic  <hniksic@srce.hr>
13338
13339         * http.c (http_loop): Ditto.
13340
13341         * ftp.c (getftp): Open the output file as binary.
13342
13343         * version.c: Changed version to 1.4b18.
13344
13345 1996-09-10  Hrvoje Niksic  <hniksic@srce.hr>
13346
13347         * version.c: "Released" 1.4b17.
13348
13349         * ftp-unix.c (ftp_parse_ls): If unable to open file, return NULL
13350         instead of failed assertion.
13351
13352 1996-09-09  Hrvoje Niksic  <hniksic@srce.hr>
13353
13354         * ftp.c (ftp_get_listing): Add a numbered suffix to LIST_FILENAME
13355         if a file of that name already exists.
13356
13357 1996-09-05  Hrvoje Niksic  <hniksic@srce.hr>
13358
13359         * ftp.c (ftp_1fl_loop): Handler FTPPORTERR and FOPENERR correctly.
13360
13361         * config.h.in: Define gethostbyname as Rgethostbyname when using
13362         Socks.
13363
13364         * configure.in: Check for -lresolv if using Socks.
13365
13366         * version.c: Changed version to 1.4b17.
13367
13368 1996-07-15  Hrvoje Niksic  <hniksic@srce.hr>
13369
13370         * version.c: "Released" 1.4b16.
13371
13372         * http.c (gethttp): More intelligent check for first line of HTTP
13373         response.
13374         (gethttp): Would bug out on time-stamping.
13375
13376         * version.c: Changed version to 1.4b16.
13377
13378 1996-07-11  Hrvoje Niksic  <hniksic@srce.hr>
13379
13380         * version.c: Released 1.4b15.
13381
13382         * http.c (http_loop): Print \n after the loop entry, not before.
13383
13384         * url.c (url_filename): Use ISDOT.
13385
13386         * url.h (ISDOT): New macro.
13387
13388         * recur.c (recursive_retrieve): Change only opt.recursive for
13389         following FTP.
13390
13391 1996-07-11  Antonio Rosella <antonio.rosella@agip.it>
13392
13393         * socks/geturl.cgi: Fixed version No.
13394
13395         * socks/download-netscape.html: Ditto.
13396
13397         * socks/download.html: Changed socks.html to download.html.
13398
13399 1996-07-11  Hrvoje Niksic  <hniksic@srce.hr>
13400
13401         * url.c (url_filename): Check for opt.dirstruct instead for
13402         opt.recursive && opt.dirstruct.
13403
13404         * init.c (defaults): Ditto.
13405         (defaults): Reset dirstruct by default.
13406         (setval): Set opt.dirstruct whenever setting recursive.
13407
13408         * init.h: Removed FORCEDIRHIER.
13409
13410         * INSTALL: Added -L to socks-description.
13411
13412         * version.c: Changed version to 1.4b15.
13413
13414 1996-07-10  Hrvoje Niksic  <hniksic@srce.hr>
13415
13416         * version.c: "Released" 1.4b14.
13417
13418         * geturl.1: Update AUTHOR to include Rosella as contributor.
13419
13420         * NEWS: Update.
13421
13422         * socks/geturl.cgi: Simplified command creation, nuked <blink>.
13423
13424         * socks/geturl.cgi: Wrap nutscape extensions within if $netscape.
13425         (cal_time): Fix == to eq.
13426
13427         * socks/geturl.cgi: GPL-ized with permission of A. Rosella.
13428
13429         * geturl.1 (hostname): Moved URL CONVENTIONS to the beginning.
13430
13431         * Makefile.in: Use @VERSION@.
13432
13433         * configure.in: Check version from version.c.
13434
13435         * socks/geturl.cgi: Changed /pub/bin/perl to /usr/bin/perl.
13436
13437         * socks/download.html: Created from download-netscape.html, made
13438         HTML-2.0 compliant.
13439
13440         * recur.c (recursive_retrieve): Set opt.force_dir_hier when
13441         following FTP links from recursions.
13442
13443 1996-07-09  Hrvoje Niksic  <hniksic@srce.hr>
13444
13445         * url.c (mymkdir): Fixed a bug that prevented mymkdir() to create
13446         absolute directories correctly.
13447
13448         * version.c: Changed version to 1.4b14.
13449
13450 1996-07-09  Hrvoje Niksic  <hniksic@srce.hr>
13451
13452         * version.c: "Released" 1.4b13.
13453
13454         * url.c (make_backup): New function.
13455
13456         * http.c (http_loop): Make a backup copy of the local file (using
13457         rename(2)) before opening it.
13458
13459         * main.c (main): Added --backups.
13460
13461         * host.c (ftp_getaddress): Bail out on failed mycuserid().
13462         (ftp_getaddress): Check for leading dot on MY_DOMAIN.
13463         (ftp_getaddress): Check for empty, null or (null) domain.
13464
13465         * url.c (get_urls_html): If this_url is NULL, the base must have a
13466         protocol.
13467         (parseurl): Use has_proto.
13468
13469         * retr.c (retrieve_url): Warn when proxy is used with more than 20
13470         retries.
13471
13472         * url.c (mkstruct): Create the directory (calling mymkdir()) only
13473         if it is not already there.
13474         (has_proto): New function.
13475         (get_urls_html): Eliminate the remaining call to findurl -- use
13476         has_proto.
13477
13478         * geturl.1: Ditto.
13479
13480         * main.c: Change -X to -x.
13481
13482         * url.c (url_filename): Simplify creation of filename if
13483         prefix_files is set.
13484         (url_filename): Simplify everything. And I do mean *everything*.
13485         (mkstruct): Add dir_prefix before hostname.
13486         (path_simplify): Fixed a bug that caused writing outside the path
13487         string in case of "." and ".." path strings.
13488
13489 1996-07-06  Hrvoje Niksic  <hniksic@srce.hr>
13490
13491         * init.c: Added --mirror.
13492
13493         * main.c (main): Added -X to force saving of directory hierarchy.
13494
13495         * ftp.c (ftp_retrieve_list): Added recursion depth counter.
13496         (ftp_retrieve_list): Check whether quota is exceeded.
13497
13498         * url.c (get_urls_html): Skip leading blanks for absolute URIs.
13499
13500         * http.c (gethttp): Use referer if present.
13501
13502         * recur.c (recursive_retrieve): Set u->referer before calling
13503         retrieve_url.
13504
13505         * url.c (newurl): Use memset to nullify the struct members.
13506         (freeurl): Free the referer field too.
13507
13508         * url.h: Added referer to urlinfo.
13509
13510         * geturl.1: Updated the manual to document some of the new features.
13511
13512         * utils.c (numdigit): Moved from url.c.
13513
13514         * README: Rewritten.
13515
13516         * config.h.in: Add the support for socks.
13517
13518         * configure.in: Add the support for socks.
13519
13520         * url.c (url_filename): If the dir_prefix is ".", work with just
13521         the file name.
13522         (url_filename): Do not look for .n extensions if timestamping if
13523         turned on.
13524
13525         * retr.c (show_progress): Skip the over-abundant restval data, and
13526         print the rest of it with ',' instead of '.'.
13527
13528 1996-07-05  Hrvoje Niksic  <hniksic@srce.hr>
13529
13530         * retr.c (show_progress): Changed second arg. to long (as it
13531         should be).
13532         (show_progress): Moved to retr.c.
13533         (get_contents): Moved to retr.c.
13534
13535         * version.c: Change version to 1.4b13.
13536
13537 1996-07-05  Hrvoje Lacko <hlacko@fly.cc.fer.hr>
13538
13539         * url.c (in_acclist): Would return after the first suffix.
13540
13541 1996-07-04  Hrvoje Niksic  <hniksic@srce.hr>
13542
13543         * version.c: "Released" 1.4b12.
13544
13545         * url.c (path_simplify): More kludgifications.
13546         (get_urls_html): Use new parameters for htmlfindurl.
13547
13548         * html.c: Removed memorizing "parser states", since the new
13549         organization does not require them.
13550
13551         * init.c (run_geturlrc): Use read_whole_line.
13552
13553         * ftp-unix.c (ftp_parse_ls): Use read_whole_line.
13554
13555         * recur.c (parse_robots): Use read_whole_line.
13556
13557         * utils.c (read_whole_line): New function.
13558
13559         * recur.c (tried_robots): Use add_slist/in_slist, *much* cleaner.
13560
13561         * host.c (ngethostbyname): Call inet_addr just once. Yet to be
13562         tested on OSF and Ultrix.
13563         (add_hlist): New function.
13564         (free_hlist): New function.
13565         (search_host): New function.
13566         (search_address): New function.
13567         (realhost): Use search_host, search_address and add_hlist.
13568         (same_host): Replaced realloc() with strdupdelim(), made
13569         case-insensitive, fixed a memory leak.
13570
13571         * html.c (ftp_index): Fixed tm_min and tm_sec to be tm_hour and
13572         tm_min, like intended.
13573
13574         * version.c: Change user agent information to
13575         Geturl/version.
13576
13577 1996-07-03  Hrvoje Niksic  <hniksic@srce.hr>
13578
13579         * utils.c: Renamed nmalloc.c to utils.c, .h likewise.
13580
13581         * url.c (acceptable): Always accept directories.
13582
13583         * ftp-unix.c (ftp_parse_ls): Support brain-damaged "ls -F"-loving
13584         servers by stripping trailing @ from symlinks and trailing / from
13585         directories.
13586
13587         * ftp.c (ftp_loop): Debugged the "enhanced" heuristics. :-)
13588
13589         * url.c (skip_url): Use toupper instead of UCASE.
13590
13591         * host.c (sufmatch): Made it case-insensitive.
13592
13593         * url.c (match_backwards_or_pattern): Fixed i == -1 to j == -1.
13594         (match_backwards): New function, instead of
13595         match_backwards_or_pattern.
13596
13597         * recur.c (recursive_retrieve): Increased performance by
13598         introducing inl, which reduces number of calls to in_slist to only
13599         one.
13600
13601         * ftp.c (ftp_loop): Enhanced the heuristics that decides which
13602         routine to use.
13603
13604         * main.c (printhelp): Removed the warranty stuff.
13605
13606 1996-07-02  Hrvoje Niksic  <hniksic@srce.hr>
13607
13608         * url.c (add_slist): Simplify.
13609         (match_backwards_or_pattern): New function.
13610         (in_acclist): Use match_backwards_or_pattern.
13611         (matches): Remove.
13612
13613 1996-06-30  Hrvoje Niksic  <hniksic@srce.hr>
13614
13615         * ftp.c (ftp_loop): Call ftp_index on empty file names, if not
13616         recursive.
13617
13618         * html.c (ftp_index): Fixed to work. Beautified the output.
13619
13620         * ftp.c (ftp_retrieve_glob): Another argument to control whether
13621         globbing is to be used.
13622         (ftp_retrieve_list): Compare the time-stamps of local and remote
13623         files to determine whether to download.
13624
13625 1996-06-29  Hrvoje Niksic  <hniksic@srce.hr>
13626
13627         * ftp.c (rel_constr): New function.
13628
13629         * retr.c (retrieve_from_file): Check for text/html before
13630         retrieving recursively.
13631
13632         * main.c (main): Check whether the file is HTML before going into
13633         recursive HTML retrieving.
13634
13635         * ftp.c (ftp_retrieve_list): Manage directories.
13636         (ftp_retrieve_glob): Pass all the file-types to ftp_retrieve_list.
13637         (ftp_1fl_loop): Fixed a bug that caused con->com to be incorrectly
13638         initialized, causing bugchecks in getftp to fail.
13639
13640         * configure.in: Check for symlink.
13641
13642         * ftp.c (ftp_retrieve_list): Added support for symlinks.
13643
13644         * version.c: "Released" 1.4b10.
13645
13646         * atotm.c (atotm): Redeclared as time_t.
13647
13648         * init.c: New variable "timestamping".
13649
13650         * main.c (main): New option 'N'.
13651
13652         * http.c (hgetlocation): Case-insensitive match.
13653         (hgetmodified): New function.
13654         (http_loop): Implement time-stamping.
13655
13656 1996-06-28  Hrvoje Niksic  <hniksic@srce.hr>
13657
13658         * version.c: Changed version to 1.4b10
13659
13660         * atotm.c: New file, from phttpd.
13661
13662         * options.h (struct options): New parameter timestamping.
13663
13664         * version.c: 1.4b9 "released".
13665
13666         * recur.c (recursive_retrieve): Used linked list (ulist) for
13667         faster storing of URLs.
13668
13669         * url.c (get_urls_html): Removed the old kludge with comparing the
13670         outputs of htmlfindurl and findurl.
13671         (get_urls_html): Added better protocol support here.
13672         (create_hash): Removed, as well as add_hash and in_hash.
13673         (addslist): New function.
13674         (in_slist): ditto
13675
13676         * version.c: Released 1.4b8, changed version to b9.
13677
13678 1996-06-27  Hrvoje Niksic  <hniksic@srce.hr>
13679
13680         * ftp.c (freefileinfo): New function.
13681         (delelement): New function.
13682
13683         * everywhere: GPL!
13684
13685         * ftp.c (ftp_loop): Use ccon.
13686         (ftp_retrieve_glob): Likewise.
13687
13688         * ftp.h: Define ccon, to define status of control connection.
13689
13690         * ftp.c (ftp_get_listing): New function.
13691         (ftp_retrieve_more): New function.
13692         (ftp_retrieve_glob): New function.
13693
13694 1996-06-25  Hrvoje Niksic  <hniksic@srce.hr>
13695
13696         * configure.in: Removed the search for cuserid().
13697
13698         * init.c (getmode): Renamed to getperms.
13699
13700 1996-06-24  Hrvoje Niksic  <hniksic@srce.hr>
13701
13702         * version.c: New version.
13703
13704         * main.c (hangup): New function, that handles hangup. Hangup
13705         signal now causes geturl to stop writing on stdout, and to write
13706         to a log file.
13707
13708         * ftp.c (getftp): "Released" 1.4b7.
13709
13710         * html.c (htmlfindurl): Ignore everything inside <head>...</head>.
13711         (ftp_index): Use fileinfo/urlinfo.
13712
13713         * ftp-unix.c (ftp_parse_ls): New function.
13714         (symperms): New function.
13715
13716         * ftp.c (ftp_1fl_loop): New function, to handle 1-file loops.
13717
13718         * retr.c (retrieve_url): Added FTP support.
13719
13720 1996-06-23  Hrvoje Niksic  <hniksic@srce.hr>
13721
13722         * geturl.h: Removed NOTFTP2HTML enum.
13723         Added DO_LOGIN, DO_CWD and DO_LIST. LIST_ONLY is obsolete.
13724
13725         * ftp.c (getftp): Resynched with urlinfo.
13726         (getftp): Removed HMTL-ization of index.html from getftp.
13727
13728         * version.c: 1.4b6 "released".
13729
13730         * options.h (options): New struct, to keep options in.
13731
13732         * http.c (http_loop,gethttp): Synched with proxy.
13733
13734         * retr.c (retrieve_url): Implemented proxy retrieval.
13735
13736         * main.c (main): Use retrieve_from_file.
13737
13738 1996-06-22  Hrvoje Niksic  <hniksic@srce.hr>
13739
13740         * retr.c (retrieve_from_file): New function.
13741
13742         * url.c (parseurl): Modified to return URLOK if all OK. Protocol
13743         can be found in u->proto.
13744
13745         * ftp.c (ftp_response): Fixed to accept multi-line responses as
13746         per RFC 959.
13747
13748         * recr.c (recursive_retrieve): Take newloc from retrieve_url.
13749
13750         * url.c (mymkdir): Removed the file of the same name, if one
13751         exists.
13752         (isfile): New function.
13753         (mkstruct): Fixed the '/' glitches.
13754         (path_simplify): Hacked to treat something/.. correctly.
13755
13756 1996-06-21  Hrvoje Niksic  <hniksic@srce.hr>
13757
13758         * http.c (gethttp): Close the socket after error in headers.
13759         (http_loop): HEOF no longer a fatal header.
13760
13761         * loop.c (retrieve_url): When dt is NULL, do not modify it. This
13762         simplifies the syntax of calling retrieve_url.
13763
13764         * recr.c (recursive_retrieve): Modified to use get_urls_html.
13765
13766         * url.c (get_urls_file): New function.
13767         (get_urls_html): New function.
13768
13769         * recr.c (recursive_retrieve): Patched up to conform to the
13770         standards.
13771
13772         * http.c (gethttp): Synched with the rest...
13773         (gethttp): Treat only CONREFUSED specially, with connection
13774         errors.
13775
13776         * init.c,geturl.1,http.c (http_loop): Removed kill_error.
13777
13778 1996-06-20  Hrvoje Niksic  <hniksic@srce.hr>
13779
13780         * http.c (http_loop): New function.
13781
13782         * loop.c: Removed *lots* of stuff from retrieve_url.
13783
13784         * url.c (parseurl): Changed to work with urlinfo. Integrated
13785         username finding and path parsing.
13786         (newurl): New function.
13787         (freeurl): New function.
13788         (mkstruct): Removed the old bogosities, made it urlinfo-compliant.
13789         (url_filename): Likewise.
13790         (path_simplify): Accept relative paths too.
13791         (opt_url): Made urlinfo-compliant, removed bogosities.
13792         (path_simplify): Expanded to accept relative paths.
13793         (str_url): A replacement for hide_url
13794         (decode_string): Fixed a bug that caused malfunctioning when
13795         encountering an illegal %.. combination.
13796         (opt_url): Removed the argument. Dot-optimizations are now default.
13797
13798         * nmalloc.c (strdupdelim): New function.
13799
13800         * url.h: Added the urlinfo structure
13801
13802 1996-06-19  Hrvoje Niksic  <hniksic@srce.hr>
13803
13804         * url.c (hide_url): Thrown out the protocol assertion. Do not
13805         change the URL if the protocol if not recognized.
13806         (findurl): Put continue instead of break.
13807
13808 1996-06-18  Hrvoje Niksic  <hniksic@srce.hr>
13809
13810         * sample.geturlrc: Changed the defaults to be commented out and
13811         harmless (previous defaults caused pains if copied to
13812         ~/.geturlrc).
13813
13814         * http.c (gethttp): Print the HTTP request in debug mode.
13815
13816         * connect.c (iread): Added EINTR check loop to select-ing
13817         too. EINTR is now correctly handled with select().
13818
13819         * TODO: new file
13820
13821 1996-05-07  Hrvoje Niksic  <hniksic@srce.hr>
13822
13823         * host.c (same_host): Made the function a little bit more
13824         intelligent regarding diversified URL syntaxes.
13825
13826         * url.c (skip_url): Spaces are now skipped after URL:
13827
13828         * Released 1.3.1 with the patch to prevent crashing when sending
13829         NULL to robot* functions and the patch to compile "out of the box"
13830         on AIX.
13831
13832         * recr.c (recursive_retrieve): Added checking whether this_url is
13833         NULL when calling the robot functions.
13834
13835         * ChangeLog: New file.