12009-09-22 Micah Cowan <micah@cowan.name> 2 3 * openssl.c (ssl_check_certificate): Avoid reusing the same buffer 4 space for successive quoted arguments. Thanks to Steven Schweda 5 for pointing out the problem. 6 72009-09-21 Micah Cowan <micah@cowan.name> 8 9 * progress.c (update_speed_ring): "the the" -> "the". 10 11 * css-url.c, iri.c, mswindows.c: Removed assert.h inclusion (not 12 using it). 13 142009-09-11 Steven Schweda <sms@antinode.info> 15 16 * utils.c, utils.h (fopen_excl): Make second argument an int, 17 rather than a bool (so it can handle the appropriate VMS version 18 of the flag). 19 20 * main.c (print_version): Don't print LOCALEDIR unless NLS is 21 enabled. 22 23 * http.c (gethttp): Pass FOPEN_BIN_FLAG, instead of true. 24 25 * ftp.c (ftp_retrieve_glob): Cast strcmp to assign to cmp, for a 26 silly HP build environment. 27 282009-09-08 Steven Schubiger <stsc@member.fsf.org> 29 30 * main.c, init.c: Mark the --preserve-permissions and 31 --html-extension option as deprecated. 32 332009-09-06 Micah Cowan <micah@cowan.name> 34 35 * ftp.c (getftp, ftp_loop_internal): Separate "len" input/output 36 parameter (with different meanings for input and output), into two 37 separate parameters, one input (passed_expected_bytes) and one 38 output (qtyread). Fixes bug #26870. 39 402009-09-05 Steven Schubiger <stsc@member.fsf.org> 41 42 * retr.h: Declare set_local_file() to avoid build warnings. 43 442009-09-05 Gisle Vanem <gvanem@broadpark.no> 45 46 * connect.c, init.c, main.c, openssl.c, options.h: Replace 47 "ifdef MSDOS" with "ifdef USE_WATT32" since DOS-targets in fact 48 use the Watt-32 tcp/ip stack. 49 502009-09-04 Micah Cowan <micah@cowan.name> 51 52 * Makefile.am: Move build_info.c to wget_SOURCES from 53 nodist_wget_SOURCES, reduce dependencies, and invoke build_info.pl 54 in its new home, $(top_srcdir)/build-aux. 55 562009-09-03 Micah Cowan <micah@cowan.name> 57 58 * ftp-ls.c (ftp_parse_vms_ls): Replace use of localtime_r with 59 localtime, as not all platforms have localtime_r. 60 61 * Makefile.am (wget_SOURCES): Rearranged some of the file order, 62 so .c files and .h files are apart. Added gettext.h, so that it 63 shows up in the dist. 64 652009-09-02 Micah Cowan <micah@cowan.name> 66 67 * gettext.h: Refreshed from gettext 0.17. 68 69 * test.c: Added definition of program_name variable, required by 70 lib/error.c (libgnu.a). Doesn't cause problems until you try to 71 build on a non-GNU system... 72 73 * build_info.c.in: Removed useless "+gettext" feature ad. 74 752009-08-29 Steven Schubiger <stsc@member.fsf.org> 76 77 * convert.c (local_quote_string): Percent-encode semicolons 78 in local file strings. 79 802009-08-27 Micah Cowan <micah@cowan.name> 81 82 * wget.h (uerr_t): added new VERIFCERTERR code for SSL certificate 83 problems. Marked exit codes that are defined but never used (at 84 least, the ones I could find). 85 86 * retr.c, retr.h (retrieve_url): Added a new boolean argument to 87 determine whether an exit status should be recorded. 88 (retrieve_from_file): Adjust to new retrieve_url signature. 89 90 * res.c (res_retrieve_file): Don't have retrieve_url record an 91 exit status for robots.txt. 92 93 * recur.c (retrieve_tree): Adjust to new retrieve_url signature. 94 95 * main.c (main): Use the exit status stored by retrieve_url. 96 97 * http.c (gethttp): Distinguish certificate verification problems 98 from SSL connection issues. 99 (http_loop): Handle newly-created VERIFCERTERR error code. 100 101 * exits.c, exits.h: Newly added. 102 103 * Makefile.am (wget_SOURCES): Add exits.c and exits.h. 104 1052009-08-27 Micah Cowan <micah@cowan.name> 106 107 * http.c (gethttp): Make sure Wget heeds cookies when they 108 are sent with a 401 response; or any other sort of response for 109 that matter (#26775). 110 1112009-08-19 Micah Cowan <micah@cowan.name> 112 113 * openssl.c (ssl_check_certificate): Only warn about an attack if 114 the hostname would otherwise have matched. Also some formatting 115 cleanup. 116 1172009-08-19 Joao Ferreira <joao@joaoff.com> 118 119 * openssl.c (ssl_check_certificate): Detect embedded NUL 120 characters in the SSL certificate common name. 121 1222009-08-17 Tony Lewis <tlewis@exelana.com> 123 124 * http.c (gethttp): Ensure that we parse Content-Length before we 125 attempt to refer to its value. Without this fix, NTLM support was 126 completely buggered. #27192 127 1282009-08-09 Michael Baeuerle <michael.baeuerle@gmx.net> 129 130 * ftp.c: #include <strings.h> for strcasecmp. 131 1322009-07-28 Micah Cowan <micah@cowan.name> 133 134 * main.c (option_data): Rename --html-extension to 135 --adjust-extension. 136 (print_help): Ditto. 137 138 * options.h (struct option): Rename html_extension to 139 adjust_extension. 140 * http.c (gethttp): Ditto. 141 * convert.c (local_quote_string): Ditto. 142 143 * init.c (commands): Add "adjustextension", and reflect rename 144 change for opt.adjust_extension, for both "adjustextension" and 145 "htmlextension". 146 1472009-07-27 Micah Cowan <micah@cowan.name> 148 149 * options.h (struct options): Added restrict_files_nonascii 150 boolean field. 151 152 * url.c (FILE_CHAR_TEST): Add check for chars outside the ASCII 153 range. 154 155 * init.c (defaults): Add restrict_files_nonascii to initialization. 156 (cmd_spec_restrict_file_names): Allow parsing of "ascii" keyword. 157 1582009-07-27 Marcel Telka <marcel@telka.sk> 159 160 * iri.c (do_conversion): Typo: invalide -> invalid 161 1622009-07-27 Petr Pisar <petr.pisar@atlas.cz> 163 164 * main.c (print_help): Fixed a couple typos. 165 1662009-07-26 Micah Cowan <micah@cowan.name> 167 168 * main.c (option_data): Rename --locale option to --local-encoding 169 (print_help): Document --no-iri, --local-encoding, and 170 --remote-encoding, within usage message. Remove defunct 171 --preserve-permissions. 172 1732009-07-23 Micah Cowan <micah@cowan.name> 174 175 * progress.c (get_eta): Change "Translation note" in comment to 176 "TRANSLATORS", so it actually appears in wget.pot. 177 1782009-07-06 Micah Cowan <micah@cowan.name> 179 180 * main.c (print_help): Improve documentation of --base. 181 1822009-07-05 Micah Cowan <micah@cowan.name> 183 184 * html-url.c (tag_handle_meta): Handle meta name="robots" 185 properly: deal with whitespace, commas after... 186 187 * netrc.c (parse_netrc): Rename local-scope variable "quote" to 188 "qmark", to avoid conflict with the function name. 189 1902009-07-05 Petr Pisar <petr.pisar@atlas.cz> 191 192 * main.c (print_version): Mark initial line for translation, along 193 with (env), (user), and (system). Change copyright year to 2009. 194 195 * http.c (http_loop): Space after colon. 196 197 * gnutls.c (ssl_check_certificate): Use quote function, rather 198 than explicit quotes. 199 2002009-07-05 Micah Cowan <micah@cowan.name> 201 202 * Makefile.am (version.c): Add dependency on configure.ac. 203 204 * iri.c: Mark some strings for translation. 205 2062009-07-04 Steven Schweda <sms@antinode.info> 207 208 * wget.h (ORIG_SFX): Macro added, to supply an alternative "_orig" 209 suffix on VMS. 210 211 * connect.c, host.c, host.h, main.c: Include "vms_ip.h" rather 212 than <netdb.h> on VMS systems. 213 214 * convert.c (write_backup_file): Use "_orig" rather than ".orig" 215 on VMS. 216 217 * ftp-basic.c (ftp_list): Don't use LIST -a on VMS servers. 218 219 * ftp.c [__VMS]: Include "vms.h" 220 * ftp.c (getftp): Disable some unhelpful "for VMS" code. Pass the 221 OS type to ftp_list. 222 (getftp) [__VMS]: Alter the filename as required, and invoke fopen 223 with extra optional arguments. 224 (ftp_retrieve_list): Set permissions before setting the times. 225 226 * ftp-ls.c [__VMS]: Various improvements. 227 228 * http.c (SET_USER_AGENT): Added. Include operating-system info in 229 the User-Agent header. 230 (gethttp): Use ORIG_SFX macro. 231 (gethttp) [__VMS]: invoke fopen with extra arguments to 232 communicate file type. 233 (http_loop): Add cast to time_t. 234 235 * init.c (wgetrc_user_file_name) [__VMS]: Adjustments for where to 236 find the .wgetrc. 237 238 * log.c: Adjustments to improve handling of log files on VMS. 239 240 * main.c [__VMS]: Added --ftp-stmlf option (and associated 241 documentation). Adjust description of backup-suffixes, as they now 242 differ for VMS. 243 (print_help, print_version): Include OS type in version 244 information. 245 (main) [__VMS]: Invoke fopen with extra options, to specify file 246 type information. 247 248 * netrc.c (search_netrc) [__VMS]: Fix .netrc-finding. 249 250 * openssl.c, openssl.h (ssl_connect_wget): Renamed from ssl_connect. 251 252 * options.h (struct options): Add ftp_stmlf field. 253 254 * retr.c (write_data) [__VMS]: Avoid fflush. 255 256 * url.c [__VMS]: Include vms.h. 257 * url.c (url_file_name) [__VMS]: Handle naming as required for VMS. 258 259 * utils.c [__VMS]: Include vms.h. Various added facilities for VMS 260 needs. 261 2622009-07-04 Micah Cowan <micah@cowan.name> 263 264 * main.c (print_version): Allow localization of the version-info 265 labels, eschew attempts at alignment (which is complicated when 266 handling translated strings), and avoid using printf() with 267 variable-stored format strings that lack conversion 268 specifications. 269 (format_and_print_line): For similar reasons, don't calculate 270 line-continuation tabulation based on the number of bytes in a 271 string. 272 2732009-07-04 Steven Schubiger <stsc@member.fsf.org> 274 275 * url.c (url_parse): If an URL scheme is invalid, distinguish 276 between an unsupported or missing scheme. 277 278 * url.c: Add a "missing scheme" entry to parse_errors. 279 2802009-07-03 Micah Cowan <micah@cowan.name> 281 282 * iri.h (iri_dup): Provide macro definition for when IRIs are 283 disabled. 284 285 * Makefile.am (LIBS): Added @LIBICONV@. 286 (wget_SOURCES): Added iri.h. 287 (EXTRA_wget_SOURCES): Added iri.c, so it gets packaged even if IRI 288 support was disabled. 289 2902009-07-02 Micah Cowan <micah@cowan.name> 291 292 * recur.c (url_enqueue): Quote enqueue/dequeue debug messages. 293 294 * html-url.c (append_url): Change "merge()" quoting style from 295 locale_quoting_style to escape_quoting_style. 296 2972009-07-01 Micah Cowan <micah@cowan.name> 298 299 * retr.c (retrieve_url): Use the existing "redirect" label, 300 instead of superfluous "second_try". Removed no-longer-accurate 301 debug statement. Use the "newloc" parameter to store the fallback 302 URL, when IRI version was rejected. 303 304 * recur.c (retrieve_tree): Always use the parsed URL for tracking 305 the Referer, since that's the one we actually requested (if 306 there's a difference in terms of percent-encodings and such). 307 3082009-07-01 Steven Schubiger <stsc@member.fsf.org> 309 310 * Makefile.am: Add a rule to generate build_info.c and list 311 the build_info.c.in file in EXTRA_DIST. Adjust elsewhere 312 where needed. 313 314 * build_info.c: Remove this static source file. 315 316 * build_info.c.in: Data for generation of build_info.c. 317 3182009-06-29 Micah Cowan <micah@cowan.name> 319 320 * html-url.c (append_url): Quote some more arguments that might 321 contain characters that are inappropriate to display for the 322 current locale. 323 324 * retr.c (retrieve_from_file): Be sure to pass iri information 325 when parsing an input-fle url, and be sure to hand a clean iri 326 struct, off to retrieve_tree and retrieve_url. 327 328 * iri.c, iri.h (iri_dup): Added. 329 330 * retr.c (retrieve_url): Re-parse for IRI fallback. 331 332 * main.c (main): Set up iri before the url_parse invocation (so we 333 can use it). 334 3352009-06-20 Jay Krell <jay.krell@cornell.edu> 336 337 * sysdep.h (_ALL_SOURCE): (small change) Define the _ALL_SOURCE 338 macro on INTERIX systems. (I switched the location from ftp.c to 339 sysdep.h --mjc) 340 3412009-06-15 Micah Cowan <micah@cowan.name> 342 343 * ftp.c (getftp): If we can't accept the connection, return 344 CONERROR, not whatever the contents of err happens to be. Fixes 345 bug #25015. 346 347 * retr.c (fd_read_body): Make both args to progress_create 348 consistent, resulting in an accurate progress display. Fixes bug 349 #24948. 350 3512009-06-14 Micah Cowan <micah@cowan.name> 352 353 * Makefile.am (wget_SOURCES): css-tokens.h needs to ship with 354 dist, too. 355 3562009-06-13 Micah Cowan <micah@cowan.name> 357 358 * init.c: Rename setval_internal_wrapper to setval_internal_tilde, 359 ensure we don't "replace" the tilde unless it's actually 360 present. Clean up some minor GNU style issues. 361 3622009-06-13 Julien Pichon <julienpichon7@gmail.com> 363 364 * init.c: Handle tilde-expansion in wgetrc commands, without 365 resorting to setting/unsetting globals to change behavior in one 366 call location. 367 3682009-06-12 Micah Cowan <micah@cowan.name> 369 370 * host.c: Include <sys/types.h> before <sys/socket.h>. Not 371 required by POSIX any more, but some older systems (such as 372 FreeBSD 4.1) still need it, and it doesn't seem like it could 373 hurt... 374 375 * build_info.c (library): Handle "https" as a feature in its own 376 right, apart from "gnutls" and "openssl". 377 378 * host.c: Declare h_errno if no declaration is provided. Idea 379 thanks to Maciej W. Rozycki. 380 3812009-06-11 Xin Zou <zouxin2008@gmail.com> 382 383 * http.c (gethttp): Fix some memory leaks. 384 3852009-06-11 Micah Cowan <micah@cowan.name> 386 387 * http.c (http_atotm): Handle potential for setlocale's return 388 value to be static storage. Thanks to Benjamin Wolsey 389 <bwy@benjaminwolsey.de>. 390 391 * sysdep.h: Need NAMESPACE_TWEAKS on non-Linux glibc-based 392 systems, too. Thanks to Robert Millan. 393 3942009-05-28 Steven Schubiger <stsc@member.fsf.org> 395 396 * ftp.c (ftp_get_listing): Update the "listing file" 397 string after calling ftp_loop_internal(). 398 3992009-05-27 Steven Schubiger <stsc@member.fsf.org> 400 401 * ftp.c (ftp_get_listing): Duplicate the "listing file" 402 string to avoid memory corruption when FOPEN_EXCL_ERR is 403 encountered. 404 4052009-05-17 Steven Schubiger <stsc@member.fsf.org> 406 407 * progress.c (eta_to_human_short): Fix the remaining hours 408 to be displayed. Spotted by Tadeu Martins (#26411). 409 4102009-04-24 Micah Cowan <micah@cowan.name> 411 412 * hash.c: Change stdint.h inclusion to use HAVE_STDINT_H, not C99 413 check. 414 415 * connect.c: stdint.h inclusion added. 416 417 Thanks to Markus Duft <mduft@gentoo.org> for a similar patch. 418 4192009-04-20 Micah Cowan <micah@cowan.name> 420 421 * Makefile.am (version.c): Fix unportable use of "echo -n". 422 4232009-04-13 Steven Schubiger <stsc@member.fsf.org> 424 425 * ftp.c (ftp_retrieve_list): Move the duplicated code that 426 determines the local file to a function. 427 428 * http.c (http_loop): Likewise. 429 430 * retr.c (set_local_file): New function. 431 4322009-04-11 Steven Schubiger <stsc@member.fsf.org> 433 434 * init.c (initialize): Run a custom SYSTEM_WGETRC when 435 provided as an environment variable. 436 4372009-02-27 Gisle Vanem <gvanem@broadpark.no> 438 439 * main.c (main): "freopen (NULL,.." causes an assertion in MSVC 440 debug-mode. I.e. NULL isn't legal. But the "CONOUT$" device works 441 fine. 442 4432009-02-27 Steven Schubiger <stsc@member.fsf.org> 444 445 * ftp.c (ftp_loop_internal): Don't claim for FTP retrievals 446 when writing to standard output either that the document 447 has been saved. Addresses bug #20520 again. 448 4492009-02-21 Steven Schubiger <stsc@member.fsf.org> 450 451 * http.c (http_loop): When a document is written to 452 standard output, don't claim it has been saved to a file. 453 Addresses bug #20520. 454 4552009-02-18 Steven Schubiger <stsc@members.fsf.org> 456 457 * recur.h: Remove the dangling declaration for recursive_cleanup(). 458 4592009-02-01 Gerardo E. Gidoni <gerel@gnu.org> 460 461 * main.c, recur.c, recur.h, res.c, retr.c, retr.h: restructured code to 462 avoid multiple 'url_parse' calls. 463 4642008-11-13 Micah Cowan <micah@cowan.name> 465 466 * http.c (gethttp): Don't do anything when content-length >= our 467 requested range. 468 4692008-11-27 Saint Xavier <wget@sxav.eu> 470 471 * http.c (gethttp): Move authentication code before filename 472 allocation avoiding fallbacking on default filename because 473 "Content-Disposition" header wasn't present before authentcation 474 has been completed. Fixes bug #24862. 475 4762008-11-16 Steven Schubiger <stsc@members.fsf.org> 477 478 * main.c: Declare and initialize the numurls counter. 479 480 * ftp.c, http.c: Make the counter visible here and use it. 481 482 * options.h: Remove old declaration from options struct. 483 4842008-11-15 Steven Schubiger <stsc@members.fsf.org> 485 486 * init.c (defaults): Set default waitretry value. 487 4882008-11-14 Steven Schubiger <stsc@members.fsf.org> 489 490 * main.c (format_and_print_line): Use a custom format 491 string for printing leading spaces. 492 4932008-11-12 Micah Cowan <micah@cowan.name> 494 495 * ftp-ls.c (ftp_index): HTML-escape dir name in title, h1, a:href. 496 4972008-11-12 Alexander Belopolsky <alexander.belopolsky@gmail.com> 498 499 * url.c, url.h (url_escape_unsafe_and_reserved): Added. 500 501 * ftp-ls.c (ftp_index): URL-escape, rather than HTML-escape, the 502 filename appearing in the link. 503 5042008-11-12 Steven Schubiger <stsc@members.fsf.org> 505 506 * main.c (print_version): Hand the relevant 507 xstrdup/xfree calls back to format_and_print_line(). 508 5092008-11-11 Steven Schubiger <stsc@members.fsf.org> 510 511 * main.c (format_and_print_line): Move both the memory 512 allocating and freeing bits upwards to print_version(). 513 5142008-11-10 Saint Xavier <wget@sxav.eu> 515 516 * http.c: Make --auth-no-challenge works with user:pass@ in URLs. 517 5182008-11-05 Micah Cowan <micah@cowan.name> 519 520 * ftp.c (print_length): Should print humanized "size remaining" 521 only when it's at least 1k. 522 5232008-10-31 Micah Cowan <micah@cowan.name> 524 525 * main.c (print_version): Add information about the mailing list. 526 5272008-10-31 Alexander Drozdov <dzal_mail@mtu-net.ru> 528 529 * retr.c (fd_read_hunk): Make assert deal with maxsize == 0. 530 531 * ftp-ls.c (clean_line): Prevent underflow on empty lines. 532 5332008-10-26 Gisle Vanem <gvanem@broadpark.no> 534 535 * main.c (format_and_print_line): Put variables on top of 536 blocks (not all compilers are C99). Add an extra '\n' if 537 SYSTEM_WGETRC isn't defined and printed. 538 5392008-09-09 Gisle Vanem <gvanem@broadpark.no> 540 541 * url.c (url_error): Use aprintf, not asprintf. 542 5432008-09-09 Micah Cowan <micah@cowan.name> 544 545 * init.c (home_dir): Save the calculated value for home, 546 to avoid duplicated work on repeated calls. 547 (wgetrc_file_name) [WINDOWS]: Define and initialize home var. 548 549 * build_info.c, main.c: Remove unnecessary extern vars 550 system_wgetrc and locale_dir. 551 552 * main.c: Define program_name for lib/error.c. 553 5542008-09-02 Gisle Vanem <gvanem@broadpark.no> 555 556 * mswindows.h: Must ensure <stdio.h> is included before 557 we redefine ?vsnprintf(). 558 5592008-08-08 Steven Schubiger <stsc@members.fsf.org> 560 561 * main.c, utils.h: Removed some dead conditional DEBUG_MALLOC code. 562 5632008-08-03 Micah Cowan <micah@cowan.name> 564 565 * main.c (print_help): Added --default-page. 566 5672008-08-01 Joao Ferreira <joao@joaoff.com> 568 569 * init.c, main.c, options.h, url.c: Added option --default-page 570 to support alternative default names for index.html 571 5722008-08-03 Micah Cowan <micah@cowan.name> 573 574 * build_info.c, css-url.c: #include wget.h, not config.h. 575 5762008-08-03 Steven Schubiger <stsc@members.fsf.org> 577 578 * url.c, url.h (url_error): Better messages for unsupported 579 schemes, especially https. 580 581 * html-url.c, recur.c, retr.c: Adjust to new url_error 582 invocation, and free result. 583 5842008-07-17 Steven Schubiger <stsc@members.fsf.org> 585 586 * retr.c (retrieve_from_file): When given an URL as input file, 587 use it as baseref if none was specified and treat the input file 588 as HTML if its content type is text/html. 589 590 * init.c (cleanup): Free the memory associated with the base 591 option (when DEBUG_MALLOC is defined). 592 5932008-07-02 Xavier Saint <wget@sxav.eu> 594 595 * iri.c, iri.h : New function idn_decode() to decode ASCII 596 encoded hostname to the locale. 597 598 * host.c : Show hostname to be resolved both in locale and 599 ASCII encoded. 600 6012008-06-28 Steven Schubiger <stsc@members.fsf.org> 602 603 * retr.c (retrieve_from_file): Allow for reading the links from 604 an external file (HTTP/FTP). 605 6062008-06-26 Xavier Saint <wget@sxav.eu> 607 608 * iri.c, iri.h : New functions locale_to_utf8() and 609 idn_encode() adding basic capabilities of IRI/IDN. 610 611 * url.c : Convert URLs from locale to UTF-8 allowing a basic 612 support of IRI/IDN 613 6142008-06-25 Steven Schubiger <stsc@members.fsf.org> 615 616 * ftp.c (getftp): When spidering a FTP URL, emit a diagnostic 617 message if the remote file exists. 618 6192008-06-24 Steven Schubiger <stsc@members.fsf.org> 620 621 * http.c (http_loop): Replace escnonprint() occurence with 622 a quotearg_style() call. 623 6242008-06-24 Micah Cowan <micah@cowan.name> 625 626 * ftp-ls.c (ftp_index): Don't assume time_t* is compatible with 627 long*. Fixes crash on Windows, and probably other systems. 628 6292008-06-22 Steven Schubiger <stsc@members.fsf.org> 630 631 * http.c: Explicitly initialize and deallocate the message 632 string used by the -nv --spider functionality. 633 6342008-06-22 Steven Schubiger <schubiger@gmail.com> 635 636 * http.c: Make -nv --spider include the file's name when it 637 exists. 638 6392008-06-22 Micah Cowan <micah@cowan.name> 640 641 * Makefile.am (version.c): Fixed version string invocation so it 642 once again can't result in unterminated strings, made all the 643 string vars pointers-to-const, and moved line lengths 644 below 80 (in Makefile.am, not in version.c). 645 6462008-06-19 Xavier Saint <wget@sxav.eu> 647 648 * iri.c, iri.h : New function check_encoding_name() as 649 a preliminary encoding name check. 650 651 * main.c, iri.c : Make use of check_encoding_name(). 652 6532008-06-19 Xavier Saint <wget@sxav.eu> 654 655 * iri.c : Include missing stringprep.h file and add a 656 cast. 657 658 * init.c : set a default initial value for opt.enable_iri, 659 opt.locale and opt.encoding_remote. 660 6612008-06-19 Xavier Saint <wget@sxav.eu> 662 663 * iri.c, iri.h : Add a new function find_locale() to find 664 out the local system encoding. 665 666 * main.c : Make use of find_locale(). 667 6682008-06-19 Xavier Saint <wget@sxav.eu> 669 670 * html-url.c : Add "content-type" meta tag parsing for 671 retrieving page encoding. 672 673 * iri.h : Make no-op version of parse_charset() return 674 NULL. 675 6762008-06-16 Micah Cowan <micah@cowan.name> 677 678 * http.c (http_loop): When hstat.len is higher than the 679 successfully completed content's length, but it's because we 680 _set_ it that way, don't abort. 681 6822008-06-14 Xavier Saint <wget@sxav.eu> 683 684 * iri.c, iri.h : New files. 685 686 * Makefile.am : Add files iri.h and conditional iri.c. 687 688 * build_info.c : Add compiled feature "iri". 689 690 * http.c : include iri.h and parse charset from Content-Type 691 header. 692 693 * init.c, main.c, options.h : if an options isn't supported 694 at compiled time, don't get rid off it and show a dummy 695 message instead if they are used. 696 6972008-06-13 Micah Cowan <micah@cowan.name> 698 699 * build_info.c: ENABLE_NTLM, not HAVE_NTLM; distinguish OpenSSL 700 from "ssl". 701 7022008-06-13 Madhusudan Hosaagrahara <com.gmail.hrmadhu> 703 704 * Makefile.am, main.c, init.c, init.h, build_info.c: Adds build 705 information to the --version command line option. Fixes bug 706 #20636. 707 7082008-06-01 Micah Cowan <micah@cowan.name> 709 710 * main.c [WINDOWS]: Reopen stdout in binary mode, when -O - is 711 given. 712 7132008-05-31 Micah Cowan <micah@cowan.name> 714 715 * html-url.c, http.c: Avoid casts in a couple spots. 716 7172008-05-30 Henri H�kkinen <henux@users.sourceforge.net> 718 719 * cookies.c, ftp-basic.c, hash.c, html-url.c, http-ntlm.c, http.c, 720 init.c, log.c, main.c, progress.c, ptimer.c, spider.c, url.c, 721 utils.c: Minor changes to silence warnings when using -Wall. 722 7232008-05-26 Steven Schubiger <schubiger@gmail.com> 724 725 * ftp.c (getftp): Replace last remaining invocation of escnonprint 726 with gnulib quote. 727 7282008-05-19 Micah Cowan <micah@cowan.name> 729 730 * main.c (main): Password prompt should be done only once (not 731 once per argument), and should be done prior to the background 732 fork. 733 7342008-05-17 Steven Schubiger <schubiger@gmail.com> 735 736 * init.c (defaults): Set the preferred IP family to `none' by 737 default. 738 7392008-05-17 Kenny Parnell <k.parnell@gmail.com> 740 741 (cmd_spec_prefer_family): Initialize prefer_family to prefer_none. 742 7432008-05-17 Micah Cowan <micah@cowan.name> 744 745 * main.c (main): Handle Ctrl-D on command-line. 746 7472008-05-15 Steven Schubiger <schubiger@gmail.com> 748 749 * ftp.c (getftp): Verify that the file actually exists in FTP, by 750 checking it against the listing. 751 7522008-05-15 Micah Cowan <micah@cowan.name> 753 754 * main.c (prompt_for_password): Use the quote module. 755 7562008-05-14 Micah Cowan <micah@cowan.name> 757 758 * ftp.c (ftp_retrieve_list): Symlinks and other filenames 759 should be fully quoted. 760 7612008-05-12 Micah Cowan <micah@cowan.name> 762 763 * main.c (main): Downgrade "-N with -O" to a warning, and switch 764 it off to avoid confusing messages. 765 7662008-04-30 Micah Cowan <micah@cowan.name> 767 768 * progress.c (create_image): Fix glitch where too many spaces are 769 printed on lines that don't display the ETA, in multibyte 770 locales. 771 7722008-04-30 Steven Schubiger <stsc@members.fsf.org> 773 774 * main.c (main): New code that handles prompting for passwords 775 when specified explicitly via command-line option (using gnulib's 776 getpass-gnu module). 777 (main): Include the getpass header. 778 779 * init.c: Add "ask-password" to the list of recognized commands. 780 781 * options.h: Add an according boolean member to the options 782 struct. 783 784 * sysdep.h: Comment the defines __EXTENSIONS__ and _GNU_SOURCE 785 out, because they're now defined independently by config.h. 786 7872008-04-27 Rabin Vincent <rabin@rab.in> 788 789 * http.c (http_loop): Fix return for the case where we don't 790 download a file because of -nc. 791 7922008-04-27 Micah Cowan <micah@cowan.name> 793 794 * url.c (path_simplify): Go back to allowing leading ".." in 795 paths, but only for FTP URLs. 796 (test_path_simplify): Add scheme-specificness to tests, adapt for 797 mu_run_test. 798 799 * test.c (all_tests): Add test_path_simplify. 800 801 * main.c (main): Downgrade -r, -p with -O to a warning rather than 802 an error; elaborate just a bit more for other -O combination 803 cases. 804 8052008-04-26 Micah Cowan <micah@cowan.name> 806 807 * http.c (gethttp): Move proxy CONNECT handling to below the 808 retry_with_auth label, to deal with properly reconnecting to 809 proxies when we need to authenticate. 810 8112008-04-25 Micah Cowan <micah@cowan.name> 812 813 * Makefile.am: -I foo -> -Ifoo. 814 8152008-04-24 Micah Cowan <micah@cowan.name> 816 817 * main.c: Revised usage description of --convert-links to apply 818 to CSS as well as to HTML. 819 8202008-04-23 Micah Cowan <micah@cowan.name> 821 822 * utils.c (test_dir_matches_p): Added a test for the case 823 described in issue #20518. 824 8252008-04-22 Micah Cowan <micah@cowan.name> 826 827 * Makefile.am, css.lex, css.l: Renamed css.lex to css.l. 828 * recur.c (retrieve_tree): Fix typo to allow text/css files to 829 be parsed. 830 8312008-04-22 Ted Mielczarek <ted.mielczarek@gmail.com> 832 833 * css.lex, css-url.c, css-url.h: Added to implement support for 834 parsing CSS in Wget. 835 * convert.c: Convert links in CSS files, too. 836 * convert.h (convert_options): Added for options link_css_p, 837 link_expect_css. 838 * convert.h: Added prototype for new register_css function. 839 * html-parse.c: Added support for parsing element content, in 840 addition to tag starts and ends. 841 * html-parse.h (taginfo): Added delimiter fields for element 842 content. 843 * html-url.h: Added. 844 * html-url.c (append_url): No longer internal-linkage only. Now 845 takes position and size as explicit parameters. 846 * html-url.c: Use new html-url.h header, add support for 847 handling of "style" HTML attributes. Mark URIs obtained from 848 link tags with rel="stylesheet" with link_expect_css. Adapt 849 uses of append_url to supply the newly-added parameters for 850 position and size. 851 * http.c: Add detection for when the content-type is text/css; 852 and ensure that such files have the ".css" filename extension, 853 when --convert-links is active. 854 * recur.h: Remove declarations for functions found in 855 html-url.c (moved to html-url.h). 856 * recur.c: Add support for culling links from CSS files, too, 857 and tracking for when we're expecting the file to be CSS (even 858 when its content type isn't text/css). 859 * retr.c (retrieve_url): Add registration of CSS files. 860 * wget.h: Added TEXTCSS to dt flags enum. 861 * Makefile.am: Added css.lex, css-url.c, css-url.h, html-url.h 862 to wget_SOURCES. 863 8642008-04-22 Jim Paris <jim@jtan.com> 865 866 * openssl.c (ssl_init): Enable combined certificate/key in 867 single file (apparent regression from ~1.9). Resolves issue 868 #22767. 869 8702008-04-22 Steven Schubiger <schubiger@gmail.com> 871 872 * http.c (print_response_line): Changed to make responses always 873 be logged, even in --quiet mode, if --server-response was 874 specified. This is to bring http.c's handling of the situation 875 in line with ftp.c's. 876 8772008-04-22 Pranab Shenoy <pranab.loosinit.shenoy@gmail.com> 878 879 * init.c: Added test_commands_sorted unit test to check is 880 commands are sorted. Fixes bug #21245. 881 882 * test.c: Added test_commands_sorted to the test suite. 883 8842008-04-22 Rabin Vincent <rabin@rab.in> 885 886 * ftp.c (ftp_get_listing): Only remove .listing if it has been 887 created. 888 8892008-04-22 Alain Guibert <alguibert+bts@free.fr> 890 891 * test.h (mu_run_test): Move declaration before statements, for 892 C90 conformance. Fixes bug #22789. 893 8942008-04-22 Mike Frysinger <vapier@gentoo.org> 895 896 * Makefile.am: Move @LIBS@ after other libraries, for better 897 static-linking support. Fixes bug #22143. 898 8992008-04-16 Steven Schubiger <schubiger@gmail.com> 900 901 * ftp.c: Use Gnulib's quote function for printing filenames and 902 such. 903 * connect.c: Likewise. 904 * convert.c: Likewise. 905 * cookies.c: Likewise. 906 * ftp-opie.c: Likewise. 907 * gnutls.c: Likewise. 908 * init.c: Likewise. 909 * log.c: Likewise. 910 * mswindows.c: Likewise. 911 * openssl.c: Likewise. 912 * progress.c: Likewise. 913 * recur.c: Likewise. 914 * res.c: Likewise. 915 * utils.c: Likewise. 916 9172008-04-16 Steven Schubiger <schubiger@gmail.com> 918 919 * sysdep.h: Comment the defines __EXTENSIONS__ and _GNU_SOURCE 920 out, because they're now defined independently by config.h. 921 9222008-04-14 Steven Schubiger <schubiger@gmail.com> 923 924 * http.c: Use Gnulib's quote function for printing filenames and 925 such. 926 * wget.h: #include "quote.h". 927 9282008-04-12 Rabin Vincent <rabin@rab.in> 929 930 * mswindows.c (fake_fork_child): Don't create a logfile for 931 --background when --quiet is used, but not --server-response. 932 Fixes bug #20917. 933 934 * utils.c (fork_to_background): Likewise. 935 9362008-04-12 Micah Cowan <micah@cowan.name> 937 938 * utils.c (aprintf): Minor formatting changes to Alex's code (80- 939 column limit, concatenated string literals, avoiding nesting 940 levels), and removed invocation of free (since we're aborting 941 anyway). 942 9432008-04-11 Alexander Dergachev <cy6erbr4in@gmail.com> 944 945 * utils.c (aprintf): Now we are setting limits (1 Mb) for text 946 buffer when we use non-C99 vsnprintf. 947 9482008-04-11 Micah Cowan <micah@cowan.name> 949 950 * ftp.c (getftp, ftp_loop_internal): Don't append to an existing 951 .listing when --continue is used. Fixes bug #22825. Thanks to 952 Rabin Vincent <rabin@rab.in> for pointing the way with a 953 suggested fix! 954 9552008-04-10 Alexander Dergachev <cy6erbr4in@gmail.com> 956 957 * xmalloc.c, xmalloc.h (memfatal): Now exported; accepts an 958 "unknown" value for the attempted allocation size. 959 * utils.c (aprintf): Now calls memfatal, instead of aborting. 960 9612008-03-19 Micah Cowan <micah@cowan.name> 962 963 * utils.c (test_dir_matches_p): More tests related for 964 dir_matches_p. 965 9662008-03-17 Micah Cowan <micah@cowan.name> 967 968 * connect.c: Include sys/time.h to support use of the select 969 function on older systems. 970 9712008-02-11 Benno Schulenberg <bensberg@justemail.net> 972 973 * http.c: More accurate and descriptive messages for when a file 974 won't be retrieved during spider-mode. 975 9762008-02-10 Micah Cowan <micah@cowan.name> 977 978 * http.c: Added existence_checked member to the http_stat 979 struct. 980 (gethttp): Mark hs->existence_checked when we've checked whether 981 a file-to-download exists; so we don't check it again if the 982 connection gets lost (and potentially pick a new "unique" name). 983 This fixes bug 22251. 984 * progress.c (create_image): Add space for an extra column in 985 the "eta" portion of the progress bar image; to deal with 986 too-long Czech translation. 987 * main.c, http.c, init.c: Added --auth-no-challenge option, to 988 bring back 1.10.2 unsafe auth behavior when needed. This fixes 989 bug #22242. 990 9912008-02-07 Micah Cowan <micah@cowan.name> 992 993 * progress.c (create_image): Remove assertion on exceeding 994 screen width, which given the less-than-robust code there, can 995 be broken by a number of factors (such as large file downloads). 996 9972008-02-06 Micah Cowan <micah@cowan.name> 998 999 * progress.c (countcols): Use strlen() when mbtowc or wcwidth 1000 not available (or not using NLS). 1001 * utils.c: Ensure we use single-byte separators when not doing 1002 NLS progress-bars. 1003 * wget.h: Determine whether to use NLS for progress-bars, based 1004 on whether wcwidth and mbtowc are available. 1005 10062008-02-03 Micah Cowan <micah@cowan.name> 1007 1008 * progress.c (create_image): Use number of characters/columns 1009 consumed, rather than number of bytes, to determine how much of 1010 a line we've used. Fixes assertion errors and field alignment 1011 bugs (#22161, #20481) 1012 (get_eta, count_cols): Added to support the changes for 1013 create_image. 1014 * http.c (http_loop): Put no-clobber logic back into http_loop, 1015 before starting to fetch, for when we're not doing 1016 content-disposition. 1017 10182008-01-31 Micah Cowan <micah@cowan.name> 1019 1020 * http.c (gethttp): Don't derive hs->contlen from possibly 1021 invalid/missing Content-Length; instead, get the appropriate 1022 value from the Content-Range header values. 1023 (parse_content_range): Handle '*' instance-length field. 1024 10252008-01-25 Micah Cowan <micah@cowan.name> 1026 1027 * main.c: Added notes to translators regarding (C), diacritics 1028 in names. 1029 * Makefile.am, cmpt.c, connect.c, connect.h, convert.c, 1030 cookies.c, cookies.h, ftp-basic.c, ftp-ls.c, ftp-opie.c, ftp.c, 1031 ftp.h, gen-md5.c, gen-md5.h, gnutls.c, hash.c, hash.h, host.c, 1032 host.h, html-parse.c, html-parse.h, html-url.c, http-ntlm.c, 1033 http-ntlm.h, http.c, http.h, init.c, init.h, log.c, log.h, 1034 main.c, mswindows.c, mswindows.h, netrc.c, netrc.h, openssl.c, 1035 options.h, progress.c, progress.h, ptimer.c, ptimer.h, recur.c, 1036 recur.h, res.c, res.h, retr.c, retr.h, spider.c, spider.h, 1037 ssl.h, sysdep.h, test.c, test.h, url.c, url.h, utils.c, 1038 utils.h, wget.h, xmalloc.c, xmalloc.h: Updated copyright year. 1039 10402007-12-10 Micah Cowan <micah@cowan.name> 1041 1042 * main.c: The option is --content-disposition, not 1043 --no-content-disposition (at the moment). 1044 10452007-12-08 Hrvoje Niksic <hniksic@xemacs.org> 1046 1047 * ftp.c (ftp_retrieve_glob): Print both arguments of fnmatch in 1048 fnmatch error message. 1049 (ftp_retrieve_glob): Don't match with fnmatch if we're only 1050 supposed to get one file. 1051 10522007-12-07 Micah Cowan <micah@cowan.name> 1053 1054 * Makefile.am: Plug in vars to include stuff from 1055 $(top_srcdir)/md5 when appropriate. 1056 10572007-12-05 Micah Cowan <micah@cowan.name> 1058 1059 * utils.c (subdir_p): Handle the case where d1 is "". 1060 * convert.c (convert_all_links): Don't return without 1061 deallocating timer. 1062 10632007-11-28 Micah Cowan <micah@cowan.name> 1064 1065 * Makefile.am, cmpt.c, connect.c, connect.h, convert.c, 1066 convert.h, cookies.c, cookies.h, ftp-basic.c, ftp-ls.c, 1067 ftp-opie.c, ftp.c, ftp.h, gen-md5.c, gen-md5.h, gnutls.c, 1068 hash.c, hash.h, host.c, host.h, html-parse.c, html-parse.h, 1069 html-url.c, http-ntlm.c, http-ntlm.h, http.c, http.h, init.c, 1070 init.h, log.c, log.h, main.c, mswindows.c, mswindows.h, 1071 netrc.c, netrc.h, openssl.c, options.h, progress.c, progress.h, 1072 ptimer.c, ptimer.h, recur.c, recur.h, res.c, res.h, retr.c, 1073 retr.h, safe-ctype.c, safe-ctype.h, spider.c, spider.h, ssl.h, 1074 sysdep.h, test.c, test.h, url.c, url.h, utils.c, utils.h, 1075 wget.h, xmalloc.c, xmalloc.h: Updated license exception for 1076 OpenSSL, per the SFLC. 1077 10782007-10-30 Micah Cowan <micah@cowan.name> 1079 1080 * main.c (main): Declare argv parameter as char **argv, rather 1081 than char *const *argv. This fixes usage of getopt_long, 1082 regardless of whether getopt_long has a constified argv or not. 1083 10842007-10-22 Gisle Vanem <gvanem@broadpark.no> 1085 1086 * mswindows.c: Move INHIBIT_WRAP macro definition up with wget.h 1087 inclusion. 1088 10892007-10-18 Steven Schweda <sms@antinode.org> 1090 1091 * sysdep.h: #include <stdint.h> as well as <inttypes.h>, to work 1092 around a glitch on Tru64 systems. 1093 10942007-10-18 Micah Cowan <micah@cowan.name> 1095 1096 * Makefile.am: version.c should not be distributed. Removed 1097 config-post.h. Add version.c dependency and gnulib include path 1098 for libunittest.a. 1099 * sysdep.h: Got contents of config-post.h 1100 * config-post.h: Removed. 1101 * wget.h: #include "config.h". 1102 * alloca.c, cmpt.c, connect.c, convert.c, cookies.c, 1103 ftp-basic.c, ftp-ls.c, ftp-opie.c, ftp.c, gen-md5.c, gnutls.c, 1104 hash.c, host.c, html-parse.c, html-url.c, http-ntlm.c, http.c, 1105 init.c, log.c, main.c, mswindows.c, netrc.c, openssl.c, 1106 progress.c, ptimer.c, recur.c, res.c, retr.c, spider.c, url.c, 1107 utils.c, xmalloc.c: Use wget.h at very top, and instead of 1108 config.h. 1109 11102007-10-15 Micah Cowan <micah@cowan.name> 1111 1112 * Makefile.am: Remove intermediary hg-id file generation, make 1113 version.c-generation more portable. 1114 11152007-10-14 Micah Cowan <micah@cowan.name> 1116 1117 * cmpt.c, cookies.c, ftp-basic.c, ftp-ls.c, ftp.c, hash.c, 1118 host.c, html-parse.c, html-url.c, http-ntlm.c, http.c, init.c, 1119 log.c, main.c, netrc.c, openssl.c, res.c, url.c, utils.c, 1120 wget.h: Replace uses of ISSPACE, etc with c_isspace, etc. 1121 * gnu-md5.c, gnu-md5.h: Removed, in deference to gnulib. 1122 * Makefile.am: Removed gnu-md5.h from wget_SOURCES. 1123 * gen-md5.c: Changed #inclusion of gnu-md5.h to md5.h (gnulib's). 1124 * recur.c (download_child_p): Print error if unlink of 1125 robots.txt fails. 1126 * main.c (main): --spider or --delete-after now implies 1127 --no-directories (thanks, Josh Williams). 1128 11292007-10-14 Joshua David Williams <yurimxpxman@gmail.com> 1130 1131 * recur.c (download_child_p): Remove robots.txt if 1132 --delete-after or --spider is on. 1133 11342007-10-13 Micah Cowan <micah@cowan.name> 1135 1136 * Makefile.am: Make version.c depend on Wget dependencies (source 1137 files, plus such things as LIBOBJS so we get things like 1138 http-ntlm.c). Removed getopt.[ch], as we're now using gnulib for 1139 these. 1140 11412007-10-10 Micah Cowan <micah@cowan.name> 1142 1143 * http-ntlm.c: Include openssl/opensslv.h explicitly, instead of 1144 hoping it'll be included by accident in openssl/des.h. 1145 11462007-10-09 Gisle Vanem <gvanem@broadpark.no> 1147 1148 * mswindows.c: 'argc' and 'argv' in 'windows_main()' are no longer 1149 needed. Hence simply the prototype. Free 'exec_name' at exit. 1150 11512007-10-09 Micah Cowan <micah@cowan.name> 1152 1153 * gettext.h: Imported from /usr/share/gettext, fuller handling 1154 of --disable-nls. 1155 * wget.h: Remove logic for handling lack of NLS (now in 1156 gettext.h). 1157 * main.c: Use gettext's ENABLE_NLS rather than HAVE_NLS. 1158 * Makefile.am: added @LIBINTL@ to LIBS (though it probably 1159 belongs in LDADD, along with everything else currently assigned 1160 to LIBS). 1161 11622007-10-08 Micah Cowan <micah@cowan.name> 1163 1164 * http.c (http_loop): Add send_head_first conditional back 1165 around code that needs it, but not around the last-modified 1166 header-parsing stuff this time. Removed no-longer-useful (was it 1167 ever?) restart_loop boolean, continuing unconditionally at end 1168 of send_head_first conditional block (if we haven't jumped out). 1169 11702007-10-04 Micah Cowan <micah@cowan.name> 1171 1172 * http.c (http_loop): We've got_name if content_disposition 1173 support isn't on; make sure we continue properly in that case, 1174 even though we're not sending HEAD. 1175 * Makefile.in: Removed, replaced by Makefile.am. 1176 * Makefile.am: Converted from Makefile.in. 1177 11782007-10-02 Gisle Vanem <gvanem@broadpark.no> 1179 1180 * ftp.c: Use "_listing" for MSDOS (".listing" is illegal). 1181 1182 * url.c: Update comment for 'filechr_not_windows'. 1183 1184 * utils.c: Include <process.h> for 'getpid()' on Watcom. 1185 11862007-10-02 Micah Cowan <micah@cowan.name> 1187 1188 * ftp.c (getftp, ftp_loop_internal), http.c (http_loop), main 1189 (main): Use datetime_str instead of time_str, for those who have 1190 potentially long-running sessions. Based on suggestions by Saso 1191 Tomat <miskox@hotmail.com> and Steven M. Schweda 1192 <sms@antinode.org>. 1193 * http.c (gethttp): Warn about host lookup failures. Adjusted 1194 from Stephen Gildea's patch. 1195 11962007-10-02 Stephen Gildea <stepheng+wget@gildea.com> 1197 1198 * connect.c (connect_to_host): Warn about host lookup failures. 1199 12002007-09-25 Micah Cowan <micah@cowan.name> 1201 1202 * Makefile.in: Use EXEEXT instead of exeext. 1203 12042007-09-24 Gisle Vanem <giva@bgnett.no> 1205 1206 * connect.c, init.c, main.c, openssl.c, options.h, sysdep.h, 1207 url.c, utils.c: Added support for building on MS-DOS. 1208 12092007-09-24 Jochen Roderburg <roderburg@uni-koeln.de> 1210 1211 * http.c (http_zero): Remove no-longer-used local_size variable. 1212 Fixes bug #21057. 1213 12142007-09-12 Micah Cowan <micah@cowan.name> 1215 1216 * http.c (http_loop): Remove send_head_first from condition for 1217 parsing timestamp. 1218 12192007-08-29 Micah Cowan <micah@cowan.name> 1220 1221 * openssl.c (ssl_init): Re un-const-ified the meth local 1222 variable, to match current versions of openssl. 1223 * spider.c: Removed visited_url function, as it may be very 1224 inefficient. 1225 (print_broken_links): Removed traversal of referrers, until such 1226 time as a more efficient implementation can be written. 1227 * spider.h: Replaced declaration of visited_url with an 1228 empty-bodied, function-like macro. 1229 12302007-08-27 Gisle Vanem <giva@bgnett.no> 1231 1232 * mswindows.c (run_with_timeout): Ensure that the correct 1233 conversion specification is used for the return result of 1234 the GetLastError function. 1235 * getopt.c: Fix missing (but, accidentally, legal) comment 1236 delimiter after licensing text. 1237 * recur.c (retrieve_tree): Inserted missing cast for strip_auth. 1238 Includes adjustment by Ralf Wildenhues. 1239 * openssl.c (ssl_init): const-ified the meth local variable. 1240 * main.c: Include all the static function definitions in the 1241 "#ifndef TESTING" clause, leaving just the definitions for 1242 exec_name (not set), and opt. 1243 * utils.c (run_with_timeout): Now returns bool, to align with 1244 declaration in utils.h. 1245 12462007-08-27 Micah Cowan <micah@cowan.name> 1247 1248 * wget.h: Added macro replacement for ngettext, for environs 1249 that lack NLS. 1250 12512007-08-26 Micah Cowan <micah@cowan.name> 1252 1253 * spider.c (print_broken_links): Fixed incorrect plurals msgid 1254 usage, switched to use ngettext function. 1255 12562007-08-24 Micah Cowan <micah@cowan.name> 1257 1258 * http.c (http_loop): Introduced time_came_from_head boolean 1259 flag, to help avoid parsing the same Last-Modified header twice. 1260 Replaced spidering returns of RETRUNNEEDED for some situations, 1261 to RETROK, as otherwise it will be interpreted as an error. 1262 RETRUNNEEDED appears never to be referenced outside of 1263 http.c (and wget.h), and, when returned by gethttp, is 1264 translated by http_loop to RETROK. 1265 * url.c (are_urls_equal): Don't call getchar_from_escaped_string 1266 if u2 is shorter than u1. 1267 (getchar_from_escaped_string): Don't decode reserved characters. 1268 Handle illegally appearing '%'s as literal '%'s. Ensure hex 1269 digits before attempting to decode. 1270 (test_are_urls_equal): Added tests to handle u2 shorter than u1, 1271 and %2f not treated the same as /. 1272 * spider.c (in_url_list_p): Don't call are_urls_equal if one of 1273 them is NULL. 1274 12752007-08-23 Joshua David Williams <yurimxpxman@gmail.com> 1276 1277 * spider.c (in_url_list_p): Removed the bool verbose argument 1278 12792007-08-22 Mauro Tortonesi <mauro@ferrara.linux.it> 1280 1281 * http.c (http_loop): Fall back to GET if HEAD fails with a 500 or 501 1282 error code. 1283 12842007-08-21 Mauro Tortonesi <mauro@ferrara.linux.it> 1285 1286 * http.c (http_loop): Send preliminary HEAD request if -N is given and 1287 the destination file exists already. 1288 12892007-08-10 Mauro Tortonesi <mauro@ferrara.linux.it> 1290 1291 * http.c (http_loop): Fixed HTTP HEAD requests logic when --spider is 1292 given. 1293 12942007-08-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 1295 1296 * url.c (append_uri_pathel): Do not assume dest string to be 1297 zero-terminated. 1298 (test_append_uri_pathel): Terminate string to fix test failure. 1299 13002007-08-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 1301 1302 * url.c (url_string): Use comparison, not assignment, in 1303 check for auth_mode == URL_AUTH_HIDE_PASSWD. 1304 13052007-08-09 Micah Cowan <micah@cowan.name> 1306 1307 * http.c (http_loop): If we got a HEAD and then a GET, and the 1308 GET had a timestamp, use that one, not any we may have gotten 1309 from the HEAD. 1310 13112007-08-08 Micah Cowan <micah@cowan.name> 1312 1313 * init.c (defaults): Content disposition will not be default, 1314 since it currently results in extra round-trips. 1315 13162007-07-31 Micah Cowan <micah@cowan.name> 1317 1318 * http.c (gethttp): Set contlen = -1 when we encounter a 1319 negative-valued Content-Length header, so we don't consider it 1320 an internal error later on and call abort(). 1321 13222007-07-29 Micah Cowan <micah@cowan.name> 1323 1324 * url.h, url.c (url_string): Replaced bool arg of the url_string 1325 function with enum url_auth_mode, with added option to 1326 completely remove user/pass auth information. 1327 * http.c, ftp.c, url.c, recur.c: Adapted call to url_string 1328 function to fit new usage. 1329 * recur.c (retrieve_tree): Remove auth info from Referer header. 1330 13312007-07-28 Micah Cowan <micah@cowan.name> 1332 1333 * options.h, init.c, retr.c, main.c: renamed opt maxredirect 1334 field to max_redirect, for improved consistency. 1335 * init.c: changed max_redirect parser from cmd_number_inf to 1336 cmd_number, as infinite redirects may not be appropriate. 1337 Alternatively, if cmd_number_inf should be used, then 1338 opt.max_redirect's value should be checked a bit differently in 1339 retr.c, to allow for the "infinite" meaning of zero. 1340 13412007-07-25 Micah Cowan <micah@cowan.name> 1342 1343 * http.c (create_authorization_line) 1344 (basic_authentication_encode, known_authentication_scheme_p) 1345 (load_cookies): Moved declarations up. 1346 (basic_authed_hosts): Added. Tracks what hosts have issued Basic 1347 challenge and been given the global username, password. 1348 (maybe_send_basic_creds): Added. Sends Basic creds for hosts that 1349 have issued Basic challenges. 1350 (register_basic_auth_host): Added. Instantiates 1351 basic_authed_hosts if necessary, then registers the host that 1352 has issued a challenge. 1353 (gethttp) <auth>: Only send authentication credentials after 1354 we've received a challenge from that host. This is a stop-gap 1355 fix until a proper fix can be implemented; still isn't quite 1356 right, as we should only be sending credentials automatically 1357 for authenticated paths and below, and not for the entire host. 1358 13592007-07-16 Joshua David Williams <yurimxpxman@gmail.com> 1360 1361 * options.h: added maxredirect to options struct 1362 * init.c: added maxredirect to list of variables 1363 * retr.c (retrieve_url): replaced MAX_REDIRECTIONS with opt.maxredirect 1364 * main.c: added option --max-redirect 1365 13662007-07-16 Joshua David Williams <yurimxpxman@gmail.com> 1367 1368 * test.h: tests made more verbose; now displays the name 1369 of each test run. 1370 13712007-07-10 Mauro Tortonesi <mauro@ferrara.linux.it> 1372 1373 * http.c (http_loop): Fixed the HTTP requests logic. Now it skips the 1374 preliminary HEAD request if either -O or --no-content-disposition are 1375 given, and neither --spider and -N are given. 1376 13772007-07-05 Micah Cowan <micah@cowan.name> 1378 1379 * cmpt.c, connect.c, connect.h, convert.c, convert.h: 1380 * cookies.c, cookies.h, ftp-basic.c, ftp.c, ftp.h, ftp-ls.c: 1381 * ftp-opie.c, gen-md5.c, gen-md5.h, getopt.c, getopt.h, gnu-md5.c: 1382 * gnu-md5.h, gnutls.c, hash.c, hash.h, host.c, host.h: 1383 * html-parse.c, html-parse.h, html-url.c, http.c, http.h: 1384 * http-ntlm.c, http-ntlm.h, init.c, init.h, log.c, log.h, main.c: 1385 * Makefile.in, mswindows.c, mswindows.h, netrc.c, netrc.h: 1386 * openssl.c, options.h, progress.c, progress.h, ptimer.c: 1387 * ptimer.h, recur.c, recur.h, res.c, res.h, retr.c, retr.h: 1388 * safe-ctype.c, safe-ctype.h, spider.c, spider.h, ssl.h, sysdep.h: 1389 * test.c, test.h, url.c, url.h, utils.c, utils.h, wget.h: 1390 * xmalloc.c, xmalloc.h: 1391 Updated GPL reference to version 3 or later, removed FSF 1392 address. 1393 13942007-07-04 Mauro Tortonesi <mauro@ferrara.linux.it> 1395 1396 * http.c (http_loop): Skip HEAD request and start immediately with GET 1397 if -O is given. 1398 13992007-02-02 Hrvoje Niksic <hniksic@xemacs.org> 1400 1401 * http.c (print_server_response): Escape non-printable characters 1402 in server respone. 1403 14042007-02-02 Hrvoje Niksic <hniksic@xemacs.org> 1405 1406 * netrc.c: Don't make netrc_list static, as it prevents 1407 compilation with DEBUG_MALLOC. 1408 1409 * utils.c (aprintf): Don't use vasprintf when DEBUG_MALLOC is 1410 requested because, in that case, we want the calls to malloc to be 1411 coming from us. 1412 14132007-01-23 Hrvoje Niksic <hniksic@xemacs.org> 1414 1415 * cookies.c (parse_set_cookie): Would erroneously discard cookies 1416 with unparsable expiry time. 1417 14182007-01-23 Hrvoje Niksic <hniksic@xemacs.org> 1419 1420 * progress.c (create_image): Check for ETA overflow. 1421 (print_row_stats): Ditto. 1422 14232007-01-09 Mauro Tortonesi <mauro@ferrara.linux.it> 1424 1425 * init.c (cmd_spec_prefer_family): Small fix to get rid of a gcc 1426 warning about strict-aliasing violation. 1427 14282007-01-09 Steven M. Schweda <sms@antinode.org> 1429 1430 * ftp-basic.c (ftp_syst): Fixed segfault if response text is missing. 1431 14322006-12-29 Gisle Vanem <giva@bgnett.no> 1433 1434 * mswindows.c: Avoid a warning if 'ws_hangup()' is unused. 1435 14362006-12-27 Mauro Tortonesi <mauro@ferrara.linux.it> 1437 1438 * http.c (parse_content_disposition): Consider directory prefix, if 1439 specified. 1440 14412006-11-21 Hrvoje Niksic <hniksic@xemacs.org> 1442 1443 * retr.c (retrieve_from_file): Ditto. 1444 (url_uses_proxy): New function. 1445 1446 * main.c (main): Don't check for opt.use_proxy when deciding 1447 whether to call retrieve_url or retrieve_tree; check whether the 1448 proxy would be used for *this* URL. 1449 14502006-10-17 Mike Grant <mggr@pml.ac.uk> 1451 1452 * ftp.c (ftp_loop_internal): Would incorrectly skip changing 1453 working directory when retrying after a failed FTP attempt. 1454 Originally reported by Nate Eldredge. 1455 14562006-10-12 Mauro Tortonesi <mauro@ferrara.linux.it> 1457 1458 * convert.c (downloaded_file): Fixed bug which used to break -E -k -K 1459 mode. 1460 14612006-08-28 Mauro Tortonesi <mauro@ferrara.linux.it> 1462 1463 * http.c: #include'd spider.h to get rid of compiler warnings. 1464 1465 * main.c: Ditto. 1466 1467 * recur.c: Ditto. 1468 14692006-08-24 Mauro Tortonesi <mauro@ferrara.linux.it> 1470 1471 * Makefile.in: Added spider.c to the list of files to compile and 1472 spider.h to the list of header files. Updated copyright information. 1473 1474 * http.c: Major changes to recursive spider mode. Now for every 1475 resource we are supposed to check, we send a HEAD request to find out 1476 if it exists. If the resource is a HTML file, we retrieve it and parse 1477 it to discover links to other resources. 1478 1479 * recur.c: Ditto. 1480 1481 * res.c (res_retrieve_file): Disable opt.timestamping and opt.spider 1482 when retrieving robots.txt. Updated copyright information. 1483 1484 * convert.c: Moved code tracking broken links to spider.c. 1485 1486 * convert.h: Ditto. 1487 1488 * spider.c: Created new file to keep track of visited URLs in spider 1489 mode. 1490 1491 * spider.h: Ditto. 1492 14932006-08-21 Mauro Tortonesi <mauro@ferrara.linux.it> 1494 1495 * http.c: Fixed timestamping-related bug. 1496 14972006-08-16 Mauro Tortonesi <mauro@ferrara.linux.it> 1498 1499 * http.c: Fixed bug which broke --continue feature. Now if -c is 1500 given, http_loop sends a HEAD request to find out the destination 1501 filename before resuming download. 1502 15032006-08-08 Hrvoje Niksic <hniksic@xemacs.org> 1504 1505 * utils.c (datetime_str): Avoid code repetition with time_str. 1506 15072006-07-21 Hrvoje Niksic <hniksic@xemacs.org> 1508 1509 * init.c (commands): Correctly place "contentdisposition". 1510 15112006-07-14 Mauro Tortonesi <mauro@ferrara.linux.it> 1512 1513 * sysdep.h: If intptr_t isn't defined, simply typedef it to long. 1514 1515 * http.c: Added explicit cast to int in logprintf call to remove 1516 compiler warnings on 64-bit platforms. 1517 1518 * connect.c: Added a few casts to intptr_t to remove compiler warnings 1519 on 64-bit platforms. 1520 1521 * main.c: Disable -r, -p and -N when -O is used. Disable -k when -O is 1522 used and multiple URLs are given. Update maintainer information. 1523 1524 * all: Update copyright information. 1525 15262006-07-10 KJKHyperion <hackbunny@reactos.com> 1527 1528 * url.c (filechr_table): Mark DEL (0x7f) as a control character 1529 and | as a character Windows can't handle. 1530 15312006-06-28 Mauro Tortonesi <mauro@ferrara.linux.it> 1532 1533 * res.c: Implemented is_robots_txt_url function for detection of 1534 robots.txt URLs and related test routine. 1535 1536 * res.h: Ditto. 1537 1538 * url.c: Implemented are_urls_equal function for URL comparison and 1539 related testing routine. 1540 1541 * url.h: Ditto. 1542 1543 * convert.c: Fixes for recursive spider mode: don't consider 1544 non-existing robots.txt as a broken link, and use are_urls_equal 1545 instead of strcasecmp for referrer URLs comparison. 1546 1547 * test.c: Call tests routines for are_urls_equal and 1548 is_robots_txt_url. 1549 15502006-06-26 Hrvoje Niksic <hniksic@xemacs.org> 1551 1552 * wget.h (wgint): Typedef to any 64-bit (or larger) type we can 1553 find, not necessarily off_t or long. 1554 15552006-06-26 Hrvoje Niksic <hniksic@xemacs.org> 1556 1557 * cmpt.c (strtoll): Check for overflow and underflow without 1558 relying on (technically) undefined behavior. Don't assume that 1559 strtoll_type is 64 bits wide. 1560 15612006-06-21 Hrvoje Niksic <hniksic@xemacs.org> 1562 1563 * utils.c (base64_encode): Cast void pointer to char * before 1564 doing arithmetic. 1565 15662006-06-20 Hrvoje Niksic <hniksic@xemacs.org> 1567 1568 * utils.c (base64_encode): Made TBL const. 1569 (base64_decode): Made the base64_char_to_value table const. 1570 15712006-06-19 Hrvoje Niksic <hniksic@xemacs.org> 1572 1573 * utils.c (base64_encode): Made the DATA pointer void * so the 1574 callers can pass it any kind of pointer (including both signed and 1575 unsigned char pointers). 1576 (base64_decode): Ditto for DEST. 1577 15782006-06-19 Hrvoje Niksic <hniksic@xemacs.org> 1579 1580 * utils.c (base64_encode): Would read past end of STR. 1581 Reported by rick@eckle.org. 1582 15832006-06-13 Mauro Tortonesi <mauro@ferrara.linux.it> 1584 1585 * options.h (struct options): Introduced member restrict_files_case to 1586 keep track of preferences on character case restrictions for 1587 filenames. 1588 1589 * init.c: Modified defaults and cmd_spec_restrict_file_names to 1590 support character case restrictions for filenames. Added 1591 test_cmd_spec_restrict_file_names unit test. 1592 1593 * url.c: Modified append_uri_pathel to support character case 1594 restrictions for filenames. Added test_append_uri_pathel unit test. 1595 1596 * test.c: Added test_cmd_spec_restrict_file_names and 1597 test_append_uri_pathel to the list of unit tests to run. 1598 15992006-06-12 Mauro Tortonesi <mauro@ferrara.linux.it> 1600 1601 * retr.c (retrieve_from_file): Use retrieve_tree and automatically 1602 turn on opt.follow_ftp in case of recursive FTP retrieval through HTTP 1603 proxy. 1604 1605 * main.c: Automatically turn on opt.follow_ftp in case of recursive 1606 FTP retrieval through HTTP proxy. 1607 16082006-06-12 Tony Lewis <tlewis@exelana.com> 1609 1610 * main.c: Improved CHEN Peng's patch by proposing a simpler logic. 1611 16122006-06-12 CHEN Peng <chenpeng@alumni.nus.edu.sg> 1613 1614 * main.c: Use retrieve_tree in case of recursive FTP retrieval through 1615 HTTP proxy. 1616 16172006-05-25 Mauro Tortonesi <mauro@ferrara.linux.it> 1618 1619 * convert.c: Added mechanisms to keep track broken links. 1620 1621 * convert.h: Ditto. 1622 1623 * wget.h: Reordered and enumerated uerr_t constants. 1624 1625 * recur.c: Fixes to support recursive spider mode. 1626 1627 * http.c: Ditto. 1628 1629 * main.c: Print broken links in case of recursive spider mode. 1630 1631 * retr.c: Changed interface of retrieve_url. 1632 1633 * retr.h: Ditto. 1634 1635 * ftp.c: Changed interface of ftp_loop. 1636 1637 * ftp.h: Ditto. 1638 1639 * res.c: Minor change to reflect changes in interface of retrieve_url. 1640 16412006-05-18 Lawrence Jones <lawrence.jones@ugs.com> 1642 1643 * ftp-ls.c (ftp_parse_unix_ls): Correct size parsing, add size 1644 and filename debugging output. 1645 16462006-04-28 Mauro Tortonesi <mauro@ferrara.linux.it> 1647 1648 * http.c: If Content-Disposition header is present, allow unique 1649 filename generation unless -nc is given. Permit to disable parsing of 1650 Content-Disposition header. 1651 1652 * options.h: Added option --no-content-disposition to disable parsing 1653 of HTTP Content-Disposition header. 1654 1655 * init.c: Ditto. 1656 1657 * main.c: Ditto. 1658 16592006-04-11 Hrvoje Niksic <hniksic@xemacs.org> 1660 1661 * hash.c (TOLOWER): Wrap macro arg in parentheses. 1662 16632006-04-08 Hrvoje Niksic <hniksic@xemacs.org> 1664 1665 * http.c (parse_content_disposition): Doc fix. 1666 16672006-03-15 Mauro Tortonesi <mauro@ferrara.linux.it> 1668 1669 * utils.c: Restricted operational semantics of frontcmp and proclist 1670 from generic strings to directory names and them to subdir_p and 1671 dir_matches_p respectively. Applied George Ogata's one line patch to 1672 restrict algorithm of subdir_p to full directory name matching. Added 1673 testcases for subdir_p and dir_matches_p. 1674 1675 * utils.h: Changed all frontcmp occurrences to subdir_p. 1676 1677 * recur.c: Ditto. 1678 1679 * test.c: Changed type returned by test functions from char * to const 1680 char *. Added test_subdir_p and test_dir_matches_p to the list of 1681 tests to run. 1682 1683 * http.c (test_parse_content_disposition): Changed return type from 1684 char * to const char *. 1685 16862006-03-14 Mauro Tortonesi <mauro@ferrara.linux.it> 1687 1688 * recur.c (struct queue_element): Changed type of html_allowed member 1689 to bool. 1690 16912006-03-09 Mauro Tortonesi <mauro@ferrara.linux.it> 1692 1693 * ftp.c (ftp_list): Try `LIST -a' command first and revert to `LIST' 1694 in case of failure. 1695 16962006-03-06 Hrvoje Niksic <hniksic@xemacs.org> 1697 1698 * hash.c (TOLOWER): Fix definition when STANDALONE. 1699 Reported by Beni Serfaty. 1700 17012006-03-02 Mauro Tortonesi <mauro@ferrara.linux.it> 1702 1703 * http.c (http_loop): Fixed recursive HTTP retrieval. 1704 17052006-02-28 Hrvoje Niksic <hniksic@xemacs.org> 1706 1707 * http.c (extract_param): Declare extern so it can be used from 1708 other files. 1709 (extract_param): Return error for empty name. 1710 17112006-02-28 Hrvoje Niksic <hniksic@xemacs.org> 1712 1713 * url.c (find_last_char): Define in terms of memrchr. 1714 1715 * cmpt.c (memrchr): Define it on systems that don't have it. 1716 1717 * http.c (extract_param): New function for parsing header values 1718 with parameters. 1719 (parse_content_disposition): Use it. Don't allow slashes and 1720 backslashes in the file name. 1721 17222006-02-27 Hrvoje Niksic <hniksic@xemacs.org> 1723 1724 * url.c (path_simplify): Don't preserve ".." at beginning of path. 1725 Suggested by Frank McCown. 1726 17272006-02-25 Hrvoje Niksic <hniksic@xemacs.org> 1728 1729 * http.c (gethttp): Only use FILE.N.html if FILE.html exists. 1730 17312006-02-09 Hrvoje Niksic <hniksic@xemacs.org> 1732 1733 * mswindows.c (run_with_timeout): Made thread_hnd non-static. 1734 17352006-02-05 Hrvoje Niksic <hniksic@xemacs.org> 1736 1737 * retr.c (sleep_between_retrievals): Sleep at a minimum of 1/2 of 1738 the specified wait period. 1739 17402006-02-03 Hrvoje Niksic <hniksic@xemacs.org> 1741 1742 * utils.c (number_to_string): Don't use sprintf for printing 1743 WGINT_MIN; simply divide n by 10 and defer printing the last 1744 digit. 1745 (number_to_string): Removed the SPRINTF_WGINT macro. 1746 17472006-02-03 Mauro Tortonesi <mauro@ferrara.linux.it> 1748 1749 * http.c: Fixed support for Content-Disposition header. 1750 1751 * test.c: Added test_parse_content_disposition to the list of unit 1752 tests to run. 1753 17542006-02-02 Hrvoje Niksic <hniksic@xemacs.org> 1755 1756 * hash.c: Don't define countof if it's already defined. 1757 1758 * hash.c: Obtain the definition of uintptr_t when standalone. 1759 17602006-01-30 Mauro Tortonesi <mauro@ferrara.linux.it> 1761 1762 * http.c: Changed output format. Removed excessively verbose debugging 1763 output. 1764 17652005-12-07 Mauro Tortonesi <mauro@ferrara.linux.it> 1766 1767 * http.c: Fixed pre-download verbose output which was broken by 1768 HTTP code refactoring. 1769 17702005-11-23 Mauro Tortonesi <mauro@ferrara.linux.it> 1771 1772 * http.c: Refactored HTTP code. If -O is not used, the new code 1773 delays the choice of the file name where the downloaded resource 1774 will be saved until the HTTP headers have been retrieved. 1775 Added support for Content-Disposition header. 1776 17772005-11-19 Hrvoje Niksic <hniksic@xemacs.org> 1778 1779 * hash.c (INVALID_PTR): Use uintptr_t instead of unsigned long. 1780 (hash_pointer): Don't assume a pointer fits in `unsigned long'. 1781 17822005-11-02 Mauro Tortonesi <mauro@ferrara.linux.it> 1783 1784 * Makefile.in: Removed support for unit testing (now it is in 1785 tests/Makefile.in). 1786 17872005-10-27 Mauro Tortonesi <mauro@ferrara.linux.it> 1788 1789 * Makefile.in: Added basic support for unit testing. 1790 1791 * test.c: Ditto. 1792 1793 * test.h: Ditto. 1794 17952005-10-13 Daniel Stenberg <daniel@haxx.se> 1796 1797 * http-ntlm.c (ntlm_output): Fixed buffer overflow vulnerability. 1798 17992005-10-09 Russ Allbery <rra@stanford.edu> 1800 1801 * snprintf.c: Remove round to round_int and pow10 to pow10_int, to 1802 avoid warnings from GCC 4.0. 1803 18042005-10-05 Mauro Tortonesi <mauro@ferrara.linux.it> 1805 1806 * retr.c: Changed semantics of no_proxy_match. 1807 18082005-09-17 Hrvoje Niksic <hniksic@xemacs.org> 1809 1810 * main.c (main): Don't print the summary if nothing has been downloaded. 1811 18122005-09-17 Hrvoje Niksic <hniksic@xemacs.org> 1813 1814 * retr.c (retr_rate): Rename parameter from MSECS to SECS since it 1815 no longer holds milliseconds. 1816 18172005-09-01 Hrvoje Niksic <hniksic@xemacs.org> 1818 1819 * progress.c: Introduce symbolic constants for "magic" values of 1820 0.2 and 0.9, REFRESH_INTERVAL and ETA_REFRESH_INTERVAL. 1821 18222005-08-27 Hrvoje Niksic <hniksic@xemacs.org> 1823 1824 * cmpt.c (strtoll): Correctly handle strtoll("0x", ptr, 0) and 1825 strtoll("0x<nonhexchar>", ptr, 0) -- in both cases *ptr must be 1826 set to the position of 'x', not after it. 1827 18282005-08-27 Hrvoje Niksic <hniksic@xemacs.org> 1829 1830 * hash.c (hash_table_map): Rename to hash_table_for_each and 1831 update callers. 1832 Document the meaning of the callback's return value. 1833 (hash_table_iterate): New function. 1834 (hash_table_iter_next): Likewise. 1835 Update most places that used hash_table_for_each to use the 1836 iteration, which doesn't require a temporary function with 1837 explicit state management. 1838 18392005-08-26 Albert Chin <wget@mlists.thewrittenword.com> 1840 1841 * Makefile.in: Use @datadir@. Define localedir as $(datadir)/locale. 1842 18432005-08-26 Jeremy Shapiro <jnshapiro@gmail.com> 1844 1845 * openssl.c (ssl_init): Set SSL_MODE_AUTO_RETRY. 1846 18472005-08-23 Hrvoje Niksic <hniksic@xemacs.org> 1848 1849 * host.c (address_list_from_ipv4_addresses): Use IP_INADDR_DATA. 1850 18512005-08-12 Hrvoje Niksic <hniksic@xemacs.org> 1852 1853 * wget.h: Renamed strtoll_return to strtoll_type. 1854 18552005-08-11 Hrvoje Niksic <hniksic@xemacs.org> 1856 1857 * progress.c (eta_to_human_short): Switch to days when printing 1858 more than 48h rather than 100h. (It's not immediately apparent 1859 how many days there are in 83h.) 1860 18612005-08-11 Hrvoje Niksic <hniksic@xemacs.org> 1862 1863 * cmpt.c (strtoll): Define it if missing on the system and if Wget 1864 needs it. 1865 1866 * mswindows.c (str_to_int64): Move to cmpt.c and rename to strtoll. 1867 18682005-08-10 Hrvoje Niksic <hniksic@xemacs.org> 1869 1870 * host.c (print_address): Always use inet_ntop when IPv6 is 1871 enabled. 1872 1873 * host.h (ip_address): Simplify the data union. 1874 18752005-08-09 Hrvoje Niksic <hniksic@xemacs.org> 1876 1877 * mswindows.c (inet_ntop): Also handle IPv4 addresses for 1878 completeness. 1879 18802005-08-09 Hrvoje Niksic <hniksic@xemacs.org> 1881 1882 * http.c (gethttp): Don't read more than the amount of data 1883 specified by the content-length header. 1884 18852005-08-09 Vasil Dimov <vd@datamax.bg> 1886 1887 * ftp.c (getftp): Don't free RESPLINE if ftp_response returns a 1888 status other than FTPOK. 1889 18902005-08-04 Giuseppe Bonacci <g.bonacci@libero.it> 1891 1892 * ftp-ls.c (ftp_parse_unix_ls): Remember the position of the 1893 previous token instead of backtracking back to it. 1894 18952005-07-08 Gisle Vanem <giva@bgnett.no> 1896 1897 * mswindows.h: Include process.h to get getpid() declaration. 1898 18992005-07-08 Hrvoje Niksic <hniksic@xemacs.org> 1900 1901 * utils.c (aprintf): Use vasprintf where available. 1902 19032005-07-08 Hrvoje Niksic <hniksic@xemacs.org> 1904 1905 * url.c (rewrite_shorthand_url): Simplify code using aprintf and 1906 strspn. 1907 19082005-07-07 Hrvoje Niksic <hniksic@xemacs.org> 1909 1910 * gnutls.c (ssl_check_certificate): Check for the validity of the 1911 presented X509 certificate. 1912 19132005-07-07 Hrvoje Niksic <hniksic@xemacs.org> 1914 1915 * openssl.c (ssl_check_certificate): Print custom error messages 1916 for frequent X509 certificate problems. 1917 19182005-07-07 Hrvoje Niksic <hniksic@xemacs.org> 1919 1920 * mswindows.h: Define an alias for stat and fstat, as requested by 1921 config-compiler.h. 1922 (gai_strerror): Define to windows_strerror if NEED_GAI_STRERROR is 1923 defined. 1924 19252005-07-06 Hrvoje Niksic <hniksic@xemacs.org> 1926 1927 * mswindows.h: Use strtoll where available. 1928 19292005-07-06 Hrvoje Niksic <hniksic@xemacs.org> 1930 1931 * sysdep.h: Add a full declaration of fnmatch.h. 1932 19332005-07-06 Hrvoje Niksic <hniksic@xemacs.org> 1934 1935 * utils.c: Unconditionally include <setjmp.h>. 1936 19372005-07-06 Hrvoje Niksic <hniksic@xemacs.org> 1938 1939 * utils.c (fnmatch_nocase): New function. 1940 (proclist): Use it instead of fnmatch when opt.ignore_case is 1941 requested. 1942 (in_acclist): Respect opt.ignore_case. 1943 (frontcmp): Respect opt.ignore_case. 1944 1945 * options.h (struct options): New flag opt.ignore_case. 1946 19472005-07-06 Hrvoje Niksic <hniksic@xemacs.org> 1948 1949 * ptimer.c: Measure time in seconds rather than milliseconds. 1950 Adjusted all callers. 1951 19522005-07-06 Hrvoje Niksic <hniksic@xemacs.org> 1953 1954 * http.c (gethttp): When freeing MESSAGE, take into account that 1955 it can be NULL. 1956 19572005-07-05 Hrvoje Niksic <hniksic@xemacs.org> 1958 1959 * cmpt.c (timegm): Handle years after 2099. 1960 19612005-07-05 Hrvoje Niksic <hniksic@xemacs.org> 1962 1963 * cmpt.c (timegm): Remove unused variable. 1964 19652005-07-05 Hrvoje Niksic <hniksic@xemacs.org> 1966 1967 * cmpt.c (timegm): Don't call mktime; simply count the seconds 1968 between 1970-01-01 and the specified date. 1969 19702005-07-05 Hrvoje Niksic <hniksic@xemacs.org> 1971 1972 * wget.h (or): Define HAVE_SSL when either HAVE_OPENSSL or 1973 HAVE_GNUTLS are defined. 1974 1975 * gnutls.c: New file. 1976 19772005-07-05 Hrvoje Niksic <hniksic@xemacs.org> 1978 1979 * http.c (gethttp): Don't print the request write error message 1980 twice. 1981 19822005-07-04 Hrvoje Niksic <hniksic@xemacs.org> 1983 1984 * openssl.c (openssl_errstr): Instead of always using a large 1985 static buffer, only allocate the error string when there is an 1986 actual error. 1987 19882005-07-04 Hrvoje Niksic <hniksic@xemacs.org> 1989 1990 * xmalloc.c (debugging_free): Prefix hex pointer value with "0x" 1991 when printing. 1992 19932005-07-04 Hrvoje Niksic <hniksic@xemacs.org> 1994 1995 * utils.c (NEXT_BASE64_CHAR): Rename to NEXT_CHAR and simplify to 1996 get the next non-whitespace character. 1997 19982005-07-04 Hrvoje Niksic <hniksic@xemacs.org> 1999 2000 * utils.c (base64_decode): Don't silently tolerate non-base64 2001 non-white-space characters in the base64 stream. 2002 20032005-07-04 Hrvoje Niksic <hniksic@xemacs.org> 2004 2005 * connect.c (LAZY_RETRIEVE_INFO): Make last_tick unsigned to match 2006 transport_map_modified_tick. 2007 20082005-07-04 Hrvoje Niksic <hniksic@xemacs.org> 2009 2010 * config-post.h (alloca): Updated declaration to not enumerate all 2011 Windows compilers. 2012 20132005-07-04 Hrvoje Niksic <hniksic@xemacs.org> 2014 2015 * openssl.c (openssl_errstr): Separate error messages with "; ". 2016 20172005-07-03 Hrvoje Niksic <hniksic@xemacs.org> 2018 2019 * ftp.c (getftp): Ditto. 2020 2021 * http.c (gethttp): Use fd_errstr. 2022 2023 * connect.c (fd_register_transport): Restructure parameters to 2024 include only a single structure that describes transport 2025 implementation. 2026 2027 * openssl.c (openssl_errstr): New function: dump SSL error strings 2028 into a static buffer and return a pointer to the buffer. 2029 2030 * connect.c (fd_errstr): New function; returns transport-specific 2031 error message, or strerror(errno) if transport doesn't supply one. 2032 20332005-07-03 Hrvoje Niksic <hniksic@xemacs.org> 2034 2035 * mswindows.h: Also wrap accept() and listen(). 2036 20372005-07-03 Hrvoje Niksic <hniksic@xemacs.org> 2038 2039 * url.c (path_end): Skip separators appropriate for the scheme. 2040 (strpbrk_or_eos): Remove gcc-specific version, as the optimization 2041 it tried to perform no longer applies. 2042 20432005-07-02 Hrvoje Niksic <hniksic@xemacs.org> 2044 2045 * host.c: Don't include "connect.h" now that we no longer have 2046 socket_has_inet6. 2047 20482005-07-02 Hrvoje Niksic <hniksic@xemacs.org> 2049 2050 * host.c: Remove extraneous definition of netdb.h. 2051 20522005-07-02 Hrvoje Niksic <hniksic@xemacs.org> 2053 2054 * http.c (gethttp): Skip error message body in the keep-alive 2055 case. 2056 20572005-07-02 Hrvoje Niksic <hniksic@xemacs.org> 2058 2059 * url.c (url_parse): Would crash when parsing fragments. Support 2060 fragments for FTP URLs too. 2061 20622005-07-02 Hrvoje Niksic <hniksic@xemacs.org> 2063 2064 * version.c: Don't use "cvs" in version name, since we're not 2065 using CVS anymore. 2066 20672005-07-02 Hrvoje Niksic <hniksic@xemacs.org> 2068 2069 * progress.c (create_image): Ditto. 2070 2071 * retr.c (retr_rate): Display smaller rate numbers with greater 2072 precision. 2073 20742005-07-02 Hrvoje Niksic <hniksic@xemacs.org> 2075 2076 * http.c (response_head_terminator): Minor optimization. 2077 2078 * retr.c (fd_read_hunk): Call terminator with pointer to the start 2079 of the data and the pointer to the current data. Changed all 2080 callers. 2081 20822005-07-01 Hrvoje Niksic <hniksic@xemacs.org> 2083 2084 * url.c (url_parse): Make sure u->params is not initialized for 2085 http/https URLs. 2086 (url_parse): Don't crash on garbage following []-delimited IPv6 2087 addresses. 2088 20892005-07-01 Hrvoje Niksic <hniksic@xemacs.org> 2090 2091 * main.c (print_help): Don't refer to the non-existent -nr in 2092 description of --mirror. 2093 20942005-06-30 Hrvoje Niksic <hniksic@xemacs.org> 2095 2096 * host.c (pretty_print_address): Renamed to just print_address. 2097 Clarify documentation. 2098 20992005-06-30 Hrvoje Niksic <hniksic@xemacs.org> 2100 2101 * http.c (gethttp): Explicitly document the different cases when 2102 generating the Host header. 2103 21042005-06-30 Hrvoje Niksic <hniksic@xemacs.org> 2105 2106 * host.c (pretty_print_address): Handle error result from 2107 inet_ntop. 2108 21092005-06-30 Gisle Vanem <giva@bgnett.no> 2110 2111 * mswindows.c (inet_ntop): New function. Print IPv6 addresses 2112 using WSAAddressToString. 2113 21142005-06-27 Hrvoje Niksic <hniksic@xemacs.org> 2115 2116 * progress.c (dot_update): Remove unused variable row_qty. 2117 21182005-06-29 Hrvoje Niksic <hniksic@xemacs.org> 2119 2120 * main.c: Check for both SIGHUP and SIGUSR1 before using them. 2121 21222005-06-29 Hrvoje Niksic <hniksic@xemacs.org> 2123 2124 * utils.c: Unconditionally include locale.h. 2125 21262005-06-29 Hrvoje Niksic <hniksic@xemacs.org> 2127 2128 * ptimer.c: Include sys/time.h to get struct timeval. 2129 21302005-06-29 Hrvoje Niksic <hniksic@xemacs.org> 2131 2132 * wget.h: Remove obsolete definition of with_thousand_seps_sum. 2133 21342005-06-29 Hrvoje Niksic <hniksic@xemacs.org> 2135 2136 * gnu-md5.h: Unconditionally include limits.h. 2137 21382005-06-29 Hrvoje Niksic <hniksic@xemacs.org> 2139 2140 * utils.c (random_number): Use lrand48 if available. 2141 (random_float): Use drand48 if available. 2142 21432005-06-29 Hrvoje Niksic <hniksic@xemacs.org> 2144 2145 * main.c (secs_to_human_time): Use print_decimal when printing 2146 total download time in seconds. 2147 2148 * progress.c (print_row_stats): Use it to print total download 2149 time at the end of the download. 2150 (create_image): Ditto. 2151 2152 * utils.c (print_decimal): New function; print small decimal 2153 numbers with more precision than large ones. 2154 2155 * progress.c (print_row_stats): New function. Print ETA after the 2156 download rate at the end of each row. 2157 21582005-06-28 Hrvoje Niksic <hniksic@xemacs.org> 2159 2160 * init.c (parse_line): Check for alphanumerics. 2161 21622005-06-28 Hrvoje Niksic <hniksic@xemacs.org> 2163 2164 * (dot_create): Remove unnecessary casts. 2165 21662005-06-28 Hrvoje Niksic <hniksic@xemacs.org> 2167 2168 * ftp.c (getftp): Delete trailing newlines from LIST output so 2169 lines don't come out with trailing \015\012 with -S. 2170 21712005-06-27 Hrvoje Niksic <hniksic@xemacs.org> 2172 2173 * mswindows.h: Remove superfluous includes. 2174 21752005-06-27 Hrvoje Niksic <hniksic@xemacs.org> 2176 2177 * config-post.h (alloca): Amend alloca declaration to take care of 2178 all Win32 compilers, not just MSVC and MinGW. 2179 21802005-06-27 Hrvoje Niksic <hniksic@xemacs.org> 2181 2182 * utils.c (get_grouping_data): Force separator to "." rather than 2183 " " when "," is taken. 2184 21852005-06-27 Hrvoje Niksic <hniksic@xemacs.org> 2186 2187 * wget.h (PTR_FORMAT): Cast the result of sizeof to int before 2188 passing it to printf's %*. 2189 2190 * retr.h: Declare output_stream and output_stream_regular. 2191 2192 * ftp.h: Declare ftp_last_respline. 2193 2194 * convert.h: Declare dl_url_file_map. 2195 2196 * http.h: New file. 2197 21982005-06-27 Hrvoje Niksic <hniksic@xemacs.org> 2199 2200 * cookies.c: Make cookies_now static. 2201 22022005-06-27 Hrvoje Niksic <hniksic@xemacs.org> 2203 2204 * utils.c (human_readable): Remove intermediary cast to long; MSVC 2205 has problems casting *unsigned* __int64 to double. 2206 22072005-06-27 Hrvoje Niksic <hniksic@xemacs.org> 2208 2209 * sysdep.h: Use the system-provided fnmatch by default. 2210 22112005-06-27 Hrvoje Niksic <hniksic@xemacs.org> 2212 2213 * http.c (mktime_from_utc): Renamed to timegm and moved to cmpt.c. 2214 Don't compile it if GNU timegm is available. 2215 (http_atotm): Use timegm. 2216 22172005-06-27 Hrvoje Niksic <hniksic@xemacs.org> 2218 2219 * http.c (http_atotm): Correctly query the old locale value. 2220 22212005-06-27 Hrvoje Niksic <hniksic@xemacs.org> 2222 2223 * config-post.h (alloca): Don't #define alloca under MinGW32, 2224 which defines it in malloc.h, included from mswindows.h. 2225 22262005-06-27 Hrvoje Niksic <hniksic@xemacs.org> 2227 2228 * utils.c (get_grouping_data): Force the use of separators in C 2229 locale. 2230 22312005-06-27 Hrvoje Niksic <hniksic@xemacs.org> 2232 2233 * main.c (i18n_initialize): Set all locale categories. 2234 2235 * http.c (http_atotm): Temporarily set locale to "C". 2236 22372005-06-27 Hrvoje Niksic <hniksic@xemacs.org> 2238 2239 * http.c (gethttp): Improve "POST data file missing" error 2240 message. 2241 22422005-06-27 Hrvoje Niksic <hniksic@xemacs.org> 2243 2244 * progress.c (set_progress_implementation): Type COLON as const 2245 char *. 2246 22472005-06-27 Hrvoje Niksic <hniksic@xemacs.org> 2248 2249 * utils.c (with_thousand_seps): Handle negative numbers. 2250 22512005-06-26 Hrvoje Niksic <hniksic@xemacs.org> 2252 2253 * progress.c (create_image): Mark the "eta" string for translation. 2254 22552005-06-26 Hrvoje Niksic <hniksic@xemacs.org> 2256 2257 * html-url.c (get_urls_file): Don't explicitly set entry->next to 2258 NULL since entry is already zeroed out. 2259 22602005-06-26 Gisle Vanem <giva@bgnett.no> 2261 2262 * mswindows.h: Define gai_strerror under MinGW. 2263 22642005-06-26 Hrvoje Niksic <hniksic@xemacs.org> 2265 2266 * utils.c (with_thousand_seps): Correctly implement thousand seps 2267 consisting of more than one character. 2268 22692005-06-26 Hrvoje Niksic <hniksic@xemacs.org> 2270 2271 * main.c (secs_to_human_time): Ditto. 2272 2273 * progress.c (create_image): Print more exact duration of very 2274 short downloads. 2275 2276 * main.c (secs_to_human_time): Don't translate time suffixes "h", 2277 "m", and "s", which are not strictly SI, but are "accepted for use 2278 with SI". 2279 (secs_to_human_time): Print really small intervals as 0s, not 2280 0.00s. 2281 22822005-06-26 Hrvoje Niksic <hniksic@xemacs.org> 2283 2284 * config-post.h: Replace the alloca declaration with the one from 2285 the latest Autoconf manual. This should remove a warning with GCC 2286 on AIX. 2287 22882005-06-26 Hrvoje Niksic <hniksic@xemacs.org> 2289 2290 * ftp.c (getftp): Always invoke SIZE, not only when continuing a 2291 download. 2292 2293 * main.c (main): Ditto here. 2294 2295 * progress.c (create_image): When the download is finished, print 2296 how long it took. 2297 22982005-06-26 Hrvoje Niksic <hniksic@xemacs.org> 2299 2300 * main.c (main): Print the downloaded and quota amounts with the 2301 "human_readable" function. 2302 2303 * ftp.c (print_length): Ditto. 2304 2305 * http.c (gethttp): Don't display thousand separators. 2306 2307 * utils.c (with_thousand_seps): Rewritten to respect locale 2308 settings and to be type size agnostic. 2309 23102005-06-25 Hrvoje Niksic <hniksic@xemacs.org> 2311 2312 * utils.c (human_readable): Divide with 1024 instead of shifting 2313 so the operation can work with non-integer N. 2314 23152005-06-25 Hrvoje Niksic <hniksic@xemacs.org> 2316 2317 * progress.c (eta_to_human): New logic for more human-readable 2318 ETA. 2319 23202005-06-25 Hrvoje Niksic <hniksic@xemacs.org> 2321 2322 * utils.c (with_thousand_seps_sum): Decrease buffer size so it 2323 cannot overrun add_thousand_seps's buffer. 2324 23252005-06-25 Hrvoje Niksic <hniksic@xemacs.org> 2326 2327 * utils.c (SPRINTF_WGINT): The correct format is %I64d, not just 2328 %I64. 2329 23302005-06-25 Hrvoje Niksic <hniksic@xemacs.org> 2331 2332 * http.c (http_loop): Don't warn about wildcards in HTTP URLs if 2333 globbing isn't requested in the first place. 2334 2335 * retr.c (retrieve_url): Temporarily turn off globbing when 2336 processing HTTP->FTP redirects. 2337 23382005-06-25 Hrvoje Niksic <hniksic@xemacs.org> 2339 2340 * utils.c (with_thousand_seps_sum): Now defined only if 2341 SUM_SIZE_INT is double. 2342 2343 * wget.h (SUM_SIZE_INT): Instead of bothering with long, long 2344 long, __int64, and friends, simply either use wgint or double, end 2345 of story. Since we know how to print either, we no longer need 2346 LARGE_INT_FMT. 2347 2348 * sysdeps.h (LARGE_INT): Renamed to SUM_SIZE_INT to better reflect 2349 its intent, and moved to wget.h. 2350 23512005-06-25 Hrvoje Niksic <hniksic@xemacs.org> 2352 2353 * Makefile.in: No need to clean .libs. 2354 23552005-06-25 Hrvoje Niksic <hniksic@xemacs.org> 2356 2357 * cookies.c (parse_set_cookies): Cast pointer subtraction to int 2358 before using it with %d; AIX compiler warns on this. 2359 Reported by Jens Schleusener. 2360 23612005-06-24 Hrvoje Niksic <hniksic@xemacs.org> 2362 2363 * http.c (gethttp): Don't prepend / here. 2364 2365 * cookies.c (cookie_handle_set_cookie): Prepend / to PATH. 2366 (cookie_header): Ditto. 2367 23682005-06-24 Hrvoje Niksic <hniksic@xemacs.org> 2369 2370 * init.c: opt.verbose must be declared as int. 2371 23722005-06-23 Hrvoje Niksic <hniksic@xemacs.org> 2373 2374 * cmpt.c (strpbrk): Removed. 2375 (mktime): Removed. 2376 Include <time.h>. 2377 23782005-06-23 Hrvoje Niksic <hniksic@xemacs.org> 2379 2380 * utils.c (read_file): Ditto. 2381 2382 * main.c (main): Use struct_fstat. 2383 2384 * mswindows.h (struct_fstat): Define a struct_fstat to deal with 2385 the fact that Borland 5.5 has 64-bit stat, but not 64-bit fstat! 2386 23872005-06-23 Hrvoje Niksic <hniksic@xemacs.org> 2388 2389 * sysdep.h: Remove code that deals with Watcom. 2390 23912005-06-22 Hrvoje Niksic <hniksic@xemacs.org> 2392 2393 * all: Use bool instead of int and false/true instead of 0/non-0 2394 for boolean variables and values. 2395 23962005-06-22 Hrvoje Niksic <hniksic@xemacs.org> 2397 2398 * sysdep.h: Include the stdbool.h/_Bool/bool blurb from Autoconf. 2399 24002005-06-22 Hrvoje Niksic <hniksic@xemacs.org> 2401 2402 * init.c (cmd_lockable_boolean): Removed. 2403 24042005-06-22 Hrvoje Niksic <hniksic@xemacs.org> 2405 2406 * cookies.c (struct cookie): Use 1-bit bitfields for booleans 2407 which makes the structure takes less space at no cost in 2408 complexity. 2409 24102005-06-22 Hrvoje Niksic <hniksic@xemacs.org> 2411 2412 * Makefile.in ($(OBJ)): Add the config.h dependency. 2413 24142005-06-22 Hrvoje Niksic <hniksic@xemacs.org> 2415 2416 * openssl.c, connect.c, host.c: Replace instances of #ifdef 2417 ENABLE_DEBUG if (opt.debug) {...} #endif with IF_DEBUG {...}. 2418 2419 * main.c: Rename the IF_DEBUG defined here to WHEN_DEBUG. 2420 2421 * wget.h (IF_DEBUG): New macro. 2422 (DEBUGP): Define in terms of IF_DEBUG. 2423 24242005-06-22 Hrvoje Niksic <hniksic@xemacs.org> 2425 2426 * http.c (gethttp): Only handle --set-cookies (and assert that 2427 cookie jar exists) if opt.cookies is true. Failure to do so 2428 triggered the assert when --no-cookies was used and the server 2429 sent a Set-Cookie header. Ouch! 2430 24312005-06-22 Hrvoje Niksic <hniksic@xemacs.org> 2432 2433 * connect.c (select_fd): Expect select() to exist. 2434 2435 * utils.c (xsleep): Always use select() as sleep fallback on 2436 non-Windows platforms. 2437 2438 * ptimer.c: Delete the implementation of PTIMER_TIME. 2439 2440 * main.c: Assume existence of signal(), test for different signal 2441 names instead. 2442 2443 * cmpt.c: Better document reasons why certain functions are 2444 included. 2445 24462005-06-22 Hrvoje Niksic <hniksic@xemacs.org> 2447 2448 * Makefile.in: Remove the manually maintained dependency list; 2449 make all object files depend on every header. 2450 24512005-06-20 Hrvoje Niksic <hniksic@xemacs.org> 2452 2453 * hash.c: Rename "mapping" to "cell" to avoid confusion with the 2454 term "mapping" (or "map") sometimes being used for the entire hash 2455 table. Also rename "non-empty" to "occupied" for easier reading 2456 of if (!NON_EMPTY (...)) ... . 2457 24582005-06-20 Hrvoje Niksic <hniksic@xemacs.org> 2459 2460 * main.c, ptimer.c, sysdep.h, utils.c: Use #elif to simplify reading of 2461 chained if-else-else-else-... statements. 2462 24632005-06-20 Hrvoje Niksic <hniksic@xemacs.org> 2464 2465 * all: Return type of signal handlers is `void'. Include signal.h 2466 unconditionally. 2467 2468 * all: Don't explicitly cast values returned by malloc. We no 2469 longer support ancient compilers that don't declare malloc, and we 2470 never supported C++ builds. 2471 24722005-06-19 Hrvoje Niksic <hniksic@xemacs.org> 2473 2474 * all: Don't declare errno. Include both time.h and sys/time.h, 2475 as long as sys/time.h exists. Don't dereference function pointers 2476 when invoking the functions they point to. 2477 2478 * cmpt.c (memmove): Remove function mandated by C89. 2479 (strerror): Ditto. 2480 (strstr): Ditto. 2481 2482 * all: Undo the K&R-ization changes from 2005-05-03. 2483 2484 * all: Remove support for K&R compilers: use C89 function 2485 declarations, remove definition of PARAMS, remove support for 2486 varargs, and remove ansi2knr. Assume the presence of time.h, 2487 string.h, and other headers mandated by C89. 2488 24892005-06-19 Hrvoje Niksic <hniksic@xemacs.org> 2490 2491 * init.c (cmd_lockable_boolean): Don't recognize literal "2" and 2492 "-1" values; unlike 0 and 1, those should never be exposed to the 2493 user. Update the error message to be more self-consistent, as 2494 proposed by Benno Schulenberg. 2495 24962005-06-18 Hrvoje Niksic <hniksic@xemacs.org> 2497 2498 * http.c (gethttp): Don't free "head" before using it to save 2499 headers. 2500 25012005-06-18 Hrvoje Niksic <hniksic@xemacs.org> 2502 2503 * http.c (gethttp): When -E is in use, check for file existence 2504 after appending ".html" to the name and modify the file name if 2505 necessary. 2506 25072005-06-17 Hrvoje Niksic <hniksic@xemacs.org> 2508 2509 * connect.c (socket_has_inet6): Removed. 2510 2511 * host.c (lookup_host): Don't use the AI_ADDRCONFIG getaddrinfo 2512 hint. 2513 25142005-06-16 Hrvoje Niksic <hniksic@xemacs.org> 2515 2516 * init.c (cmd_lockable_boolean): Improve the error message so it 2517 lists the more useful values first. 2518 25192005-06-15 Hrvoje Niksic <hniksic@xemacs.org> 2520 2521 * http.c (gethttp): Also report the system error when the POST 2522 data file is missing. 2523 25242005-06-15 Benno Schulenberg <benno@nietvergeten.nl> 2525 2526 * ftp.c, http.c, connect.c, cookies.c, html-url.c, init.c, res.c: 2527 Gettext-ize messages that were previously missed. 2528 25292005-06-15 Hrvoje Niksic <hniksic@xemacs.org> 2530 2531 * host.h (ip_address): Remove the trailing comma from the type 2532 enum in the no-IPv6 case. 2533 2534 * main.c (struct cmdline_option): Remove the trailing comma from 2535 the enum. 2536 2537 Reported by Jens Schleusener. 2538 25392005-05-30 Hrvoje Niksic <hniksic@xemacs.org> 2540 2541 * url.c (strpbrk_or_eos): Check for a recent GCC version before 2542 using the statement-as-expression extension. 2543 25442005-05-30 Hrvoje Niksic <hniksic@xemacs.org> 2545 2546 * http.c (gethttp): Don't attempt to "skip short body" if we're 2547 issuing a HEAD request (in which case the response head is not 2548 followed by a body). 2549 25502005-05-30 Hrvoje Niksic <hniksic@xemacs.org> 2551 2552 * init.c (cmd_spec_header): Don't split the string along the 2553 commas using cmd_vector; just append the new value using 2554 vec_append instead. 2555 2556 * utils.c (vec_append): New function. 2557 25582005-05-27 Andreas Beckmann <debian@abeckmann.de> 2559 2560 * html-url.c (tag_handle_link): Mark the content from the <link 2561 src="..."> tag as expecting HTML. 2562 25632005-05-24 Hrvoje Niksic <hniksic@xemacs.org> 2564 2565 * http.c (http_atotm): Document the origin of the "cookie date" 2566 format. 2567 25682005-05-21 Hrvoje Niksic <hniksic@xemacs.org> 2569 2570 * init.c (setval_internal): Report exact command name alongside 2571 the "display name". 2572 25732005-05-18 Hrvoje Niksic <hniksic@xemacs.org> 2574 2575 * cookies.c (update_cookie_field): Explicitly cast -1 to time_t to 2576 cope with systems where time_t is unsigned. 2577 2578 * cookies.c: Remove unnecessary casts to time_t from values 2579 already of that type. 2580 25812005-05-17 Hrvoje Niksic <hniksic@xemacs.org> 2582 2583 * ftp.c (ftp_loop_internal): Same here. 2584 2585 * http.c (http_loop): Don't clobber the file when -c is specified 2586 and the first attempt to retrieve the file fails. 2587 25882005-05-16 Hrvoje Niksic <hniksic@xemacs.org> 2589 2590 * openssl.c (ssl_check_certificate): Print all issues with a 2591 certificate. 2592 25932005-05-16 Hrvoje Niksic <hniksic@xemacs.org> 2594 2595 * ftp-basic.c: Don't xfree() the line returned by ftp_response if 2596 the returned code is not FTPOK. 2597 25982005-05-16 Hrvoje Niksic <hniksic@xemacs.org> 2599 2600 * init.c (cleanup): Don't free the non-existent opt.ftp_acc. Free 2601 the SSL-related stuff. 2602 26032005-05-16 Hrvoje Niksic <hniksic@xemacs.org> 2604 2605 * ftp.c (print_length): Consistently print \n at end of the 2606 "Length" line. 2607 26082005-05-14 Hrvoje Niksic <hniksic@xemacs.org> 2609 2610 * openssl.c (ssl_connect): Announce the beginning and the end of 2611 the SSL handshake when in debug mode. 2612 2613 * wget.h (PTR_FORMAT): New macro for easier printing of pointer 2614 values. Use %0*lx along with PTR_FORMAT instead of %p. 2615 26162005-05-14 Hrvoje Niksic <hniksic@xemacs.org> 2617 2618 * http.c (gethttp): Would forget to close the connection when 2619 keep_alive was not used. 2620 26212005-05-13 Hrvoje Niksic <hniksic@xemacs.org> 2622 2623 * openssl.c (pattern_match): Document the code that decides 2624 whether "*" matches ".". 2625 26262005-05-12 Hrvoje Niksic <hniksic@xemacs.org> 2627 2628 * ftp-ls.c (ftp_index): Use %d to print the port number, which is 2629 now int. 2630 From Steven M. Schweda's VMS patches. 2631 26322005-05-12 Hrvoje Niksic <hniksic@xemacs.org> 2633 2634 * url.c (rewrite_shorthand_url): Don't rewrite "https://host" to 2635 "ftp://https//host" when SSL is not used. 2636 26372005-05-11 Hrvoje Niksic <hniksic@xemacs.org> 2638 2639 * openssl.c (ssl_check_server_identity): Renamed to 2640 ssl_check_certificate because it does more than just checking the 2641 server's identity. 2642 (ssl_check_certificate): Tell the user about 2643 --no-check-certificate. 2644 26452005-05-11 Hrvoje Niksic <hniksic@xemacs.org> 2646 2647 * openssl.c (ssl_init): Always use SSL_VERIFY_NONE, so that the 2648 handshake finishes even if the certificate is invalid. That way 2649 ssl_check_server_identity can provide better diagnostics on why 2650 the verification failed. 2651 26522005-05-11 Hrvoje Niksic <hniksic@xemacs.org> 2653 2654 * openssl.c (pattern_match): New function. 2655 (ssl_check_server_identity): Treat peer certificate common name as 2656 wildcard. 2657 26582005-05-10 Hrvoje Niksic <hniksic@xemacs.org> 2659 2660 * openssl.c (ssl_check_server_identity): Print certificate subject 2661 and issuer. 2662 26632005-05-10 Hrvoje Niksic <hniksic@xemacs.org> 2664 2665 * res.c (res_register_specs): Correctly pass pointers to 2666 hash_table_get_pair. 2667 26682005-05-10 Hrvoje Niksic <hniksic@xemacs.org> 2669 2670 * http.c (gethttp): Call ssl_check_server_identity. 2671 2672 * openssl.c (ssl_check_server_identity): New function, verifies 2673 that the host name in the certificate matches the actual host 2674 name. 2675 (verify_cert_callback): Removed, since it didn't do anything 2676 except returning the preverify_ok argument. 2677 2678 * connect.c (fd_transport_context): Allow retrieval of the context 2679 pointer registered with fd_register_transport. 2680 26812005-05-09 Hrvoje Niksic <hniksic@xemacs.org> 2682 2683 * openssl.c (verify_cert_callback): Renamed from verify_callback. 2684 Always return the received "ok" value. Print the X509 name in 2685 debug mode. 2686 (ssl_init): Enable partial writes in SSL context. 2687 26882005-05-08 Hrvoje Niksic <hniksic@xemacs.org> 2689 2690 * http.c (http_loop): Check for wildcards in the URL path 2691 component, not in the whole URL. 2692 2693 * ftp.c (ftp_loop): Check for wildcards in URL path before 2694 unescaping, so the users can escape globbing metacharacters with % 2695 escapes. 2696 26972005-05-08 Hrvoje Niksic <hniksic@xemacs.org> 2698 2699 * init.c (run_command): Correctly interpret the return value of 2700 parse_line. 2701 (commands): Re-alphabetize. 2702 27032005-05-08 Hrvoje Niksic <hniksic@xemacs.org> 2704 2705 * netrc.c (parse_netrc): Explicitly check for assignment != NULL 2706 to silence warning from Borland C. 2707 2708 * url.c (sync_path): Don't unnecessarily increment p. 2709 (url_parse): Don't unnecessarily set url_encode to NULL just 2710 prior to return from the function. 2711 27122005-05-08 Hrvoje Niksic <hniksic@xemacs.org> 2713 2714 * log.c (escnonprint_internal): Place variable declarations 2715 before other statements. 2716 27172005-05-08 Hrvoje Niksic <hniksic@xemacs.org> 2718 2719 * html-url.c: Include recur.h. 2720 2721 * http.c (request_new): Define as accepting no args. 2722 27232005-05-07 Hrvoje Niksic <hniksic@xemacs.org> 2724 2725 * url.c (strpbrk_or_eos): Made inline. Use strchr(s, '\0') for 2726 finding the NUL char position. 2727 27282005-05-07 Hrvoje Niksic <hniksic@xemacs.org> 2729 2730 * url.c (decide_copy_method): Renamed to char_needs_escaping. 2731 Since it now returns only two possible values, change it to return 2732 boolean (int). 2733 27342005-05-07 Hrvoje Niksic <hniksic@xemacs.org> 2735 2736 * ftp-basic.c (ftp_request): Prevent newlines in VALUE causing 2737 inadvertent sending of multiple FTP commands. 2738 27392005-05-07 Hrvoje Niksic <hniksic@xemacs.org> 2740 2741 * url.c (decide_copy_method): Never cause reencode_escapes to 2742 decode % escapes; it is too intrusive and breaks some servers. 2743 27442005-05-07 Hrvoje Niksic <hniksic@xemacs.org> 2745 2746 * http.c (gethttp): When tunnelling SSL traffic over proxy with 2747 CONNECT, we're really talking to the remote server directly. 2748 Because of this, the request-line argument must be the URL path 2749 rather than the whole URL, as it would be when using regular 2750 proxies. 2751 Reported by Charles Lane. 2752 27532005-05-06 Hrvoje Niksic <hniksic@xemacs.org> 2754 2755 * init.c (cmd_spec_useragent): Allow empty User-Agent. 2756 2757 * http.c (gethttp): Don't print "unknown authentication scheme" 2758 for failed Basic authentication. 2759 (SET_USER_AGENT): Don't set user-agent if opt.useragent is empty. 2760 (gethttp): Use alloca for allocation of www_authenticate. 2761 27622005-05-06 Hrvoje Niksic <hniksic@xemacs.org> 2763 2764 * main.c (print_help): Fix wording of --secure-protocol help text. 2765 27662005-05-06 Hrvoje Niksic <hniksic@xemacs.org> 2767 2768 * cmpt.c (strstr): Updated from glibc 2.3.5. 2769 27702005-05-05 Hrvoje Niksic <hniksic@xemacs.org> 2771 2772 * http.c (http_atotm): Zero out the whole struct tm being passed 2773 to strptime. 2774 27752005-05-05 Hrvoje Niksic <hniksic@xemacs.org> 2776 2777 * main.c (main): Propagate option name to setoptval. 2778 2779 * init.c (setoptval): Accept another argument, OPTNAME. Propagate 2780 that argument as the option name independently of the actual 2781 command, determined by command_by_name(com). 2782 27832005-05-05 Hrvoje Niksic <hniksic@xemacs.org> 2784 2785 * init.c (parse_line): Make the return value indicate whether 2786 there was a syntax error or a setter failed. 2787 (run_wgetrc): Return an indication on whether an error has been 2788 encountered. 2789 (initialize): Abort if there have been errors running either 2790 .wgetrc file. 2791 27922005-05-05 Hrvoje Niksic <hniksic@xemacs.org> 2793 2794 * log.c (copy_and_escape): Slightly reduce code repetition between 2795 the two loops. 2796 27972005-05-05 Charles C.Fu <ccwf@bacchus.com> 2798 2799 * utils.c (proclist): Strip leading slash when calling fnmatch 2800 too, otherwise wildcard comparisons always fail. 2801 28022005-05-05 Hrvoje Niksic <hniksic@xemacs.org> 2803 2804 * utils.c (touch): Set access time to current time. 2805 28062005-05-05 Hrvoje Niksic <hniksic@xemacs.org> 2807 2808 * url.c (url_unescape): Don't unescape %00, it effectively 2809 truncates the string. 2810 28112005-05-05 Hrvoje Niksic <hniksic@xemacs.org> 2812 2813 * log.c (copy_and_escape): Replace the FOR_URI argument with a 2814 slightly more general mechanism for specifying different kinds of 2815 escape. 2816 28172005-05-05 Hrvoje Niksic <hniksic@xemacs.org> 2818 2819 * ftp-basic.c (ftp_response): Fix printing FTP server response. 2820 28212005-05-05 Hrvoje Niksic <hniksic@xemacs.org> 2822 2823 * retr.c (limit_bandwidth_reset): Reset sleep_adjust. 2824 (limit_bandwidth): Don't allow huge "adjustment" values that 2825 result from being suspended for a while. 2826 28272005-05-04 Hrvoje Niksic <hniksic@xemacs.org> 2828 2829 * wget.h: If gettext was found but libtintl.h wasn't, declare 2830 gettext's return type to avoid type mismatches. 2831 28322005-05-03 Hrvoje Niksic <hniksic@xemacs.org> 2833 2834 * url.c (url_parse): Rename label `error' to avoid conflict with 2835 identifier. 2836 2837 * retr.c (fd_read_body): Rename label `out' to avoid conflict with 2838 identifier. 2839 (fd_read_hunk): Use explicit double constant. 2840 (retrieve_from_file): Don't use string concatenation. 2841 (sleep_between_retrievals): Make sure xsleep is called with a 2842 `double' argument. 2843 (no_proxy_match): Define as static, like it is declared. 2844 2845 * progress.c (bar_create): Use 0.0 instead of 0 because K&R 2846 compilers can't automatically promote it. 2847 2848 * http-ntlm.c (ntlm_output): Replace \xHH sequences with \OOO for 2849 the sake of old compilers. 2850 2851 * ftp.c (ftp_loop_internal): Don't use string concatenation. 2852 2853 * http.c (request_send): Use explicit double constants when 2854 calling fd_read and fd_write. 2855 (post_file): Ditto. 2856 (gethttp): Ditto. 2857 (skip_short_body): Ditto. 2858 2859 * ftp-basic.c: When calling fd_write, specify the last argument as 2860 a `double' constant for the sake of K&R compilers which don't see 2861 the prototype and therefore can't promote it to double 2862 automatically. 2863 2864 * cookies.c (cookie_jar_load): Rename abort label to abort_cookie 2865 to avoid name conflict in K&R compilers. 2866 28672005-04-29 Hrvoje Niksic <hniksic@xemacs.org> 2868 2869 * ptimer.c (posix_init): Since we allow _POSIX_MONOTONIC_CLOCK==0, 2870 it is not enough to check for _POSIX_MONOTONIC_CLOCK-0, we must 2871 also check for defined(_POSIX_MONOTONIC_CLOCK). 2872 28732005-04-28 Hrvoje Niksic <hniksic@xemacs.org> 2874 2875 * ftp.c, hash.c, connect.c, host.c, http.c: Remove unreached code, 2876 such as "break" following return or abort. 2877 28782005-04-28 Hrvoje Niksic <hniksic@xemacs.org> 2879 2880 * init.c (commands): Wrap the use of opt.random_file in #ifdef 2881 HAVE_SSL. 2882 28832005-04-28 Hrvoje Niksic <hniksic@xemacs.org> 2884 2885 * http.c (gethttp): Correctly set the user agent. 2886 28872005-04-27 Hrvoje Niksic <hniksic@xemacs.org> 2888 2889 * init.c (cmd_spec_useragent): Free the old value of 2890 opt.useragent before setting the new one. 2891 28922005-04-27 Mauro Tortonesi <mauro@ferrara.linux.it> 2893 2894 * main.c: Map --ftp-password, --http-password and --proxy-password to 2895 the new ftppassword, httppassword and proxypassword commands 2896 respectively. Document the --user and --password options in the help 2897 string. 2898 28992005-04-27 Mauro Tortonesi <mauro@ferrara.linux.it> 2900 2901 * ftp.c: Add support for --user and --password. 2902 2903 * http.c: Add support for --user and --password. 2904 2905 * init.c: Deprecated ftppasswd, httppasswd, login, passwd and 2906 proxypasswd commands. Added ftppassword, ftpuser, httppassword, 2907 password, proxypassword and user commands. 2908 2909 * main.c: Renamed --ftp-passwd to --ftp-password. Added --ftp-user, 2910 --http-password, --password, --proxy-password and --user. Deprecated 2911 --http-passwd and --proxy-passwd. Added documentation for new options 2912 and removed documentation for deprecated options in the help string. 2913 2914 * options.h (struct options): Added user and passwd members to handle 2915 --user and --password respectively. Renamed ftp_acc and ftp_pass 2916 members to ftp_user and ftp_passwd for consistency. 2917 29182005-04-27 Hrvoje Niksic <hniksic@xemacs.org> 2919 2920 * main.c (print_help): Advertise "DER", not "ASN1". 2921 29222005-04-27 Hrvoje Niksic <hniksic@xemacs.org> 2923 2924 * openssl.c (init_prng): Disable the weak random seed by default. 2925 2926 * http.c (gethttp): Simplify SSL initialization; disable SSL when 2927 anything goes wrong with the initialization. 2928 2929 * options.h (struct options): New option opt.random_file. 2930 29312005-04-27 Hrvoje Niksic <hniksic@xemacs.org> 2932 2933 * init.c: Wrap private key commands in IF_SSL. 2934 29352005-04-27 Hrvoje Niksic <hniksic@xemacs.org> 2936 2937 * openssl.c (ssl_init): Ditto. 2938 2939 * options.h (struct options): Allow separate specification of key 2940 type and certificate type. 2941 2942 * init.c (cmd_spec_cert_type): Provide a "der" synonym for "asn1" 2943 certificate encoding. 2944 29452005-04-26 Hrvoje Niksic <hniksic@xemacs.org> 2946 2947 * openssl.c: Renamed "gen_sslfunc.c" to "openssl.c" and 2948 "gen_sslfunc.h" to "openssl.h". This reflects the intent of 2949 openssl.c encapsulating the OpenSSL-specific code. 2950 29512005-04-26 Hrvoje Niksic <hniksic@xemacs.org> 2952 2953 * init.c: Renamed "closure" (a synonym for context in some 2954 cultures) to "place", which more accurately reflects the usage. 2955 29562005-04-26 Hrvoje Niksic <hniksic@xemacs.org> 2957 2958 * gen_sslfunc.c (ssl_init): Use default locations for loading the 2959 certificate bundles. 2960 (ssl_init_prng): Disable the cryptographically weak PRNG 2961 initialization fallback. 2962 2963 * init.c: Renamed SSL command-line arguments and wgetrc commands. 2964 (defaults): Check the server certificate by default. 2965 29662005-04-26 Hrvoje Niksic <hniksic@xemacs.org> 2967 2968 * cookies.c (cookie_handle_set_cookie): Delete the part of the 2969 path after the trailing slash. 2970 2971 * http.c (gethttp): Call cookie_handle_set_cookie with path that 2972 begins with '/'. 2973 29742005-04-26 Hrvoje Niksic <hniksic@xemacs.org> 2975 2976 * http.c (gethttp): Call skip_short_body only if keep_alive is in 2977 use. 2978 (gethttp): Send the User-Agent header with the CONNECT request as 2979 well. 2980 29812005-04-25 Hrvoje Niksic <hniksic@xemacs.org> 2982 2983 * main.c (option_data): Removed support for the undocumented flag 2984 --use-proxy. 2985 29862005-04-25 Hrvoje Niksic <hniksic@xemacs.org> 2987 2988 * main.c (option_data): Don't treat -Y as a boolean switch; treat 2989 it as a value switch instead, so "-Y off" continues to work. 2990 29912005-04-24 Hrvoje Niksic <hniksic@xemacs.org> 2992 2993 * utils.c (aprintf): Delete unreachable statement. 2994 29952005-04-24 Hrvoje Niksic <hniksic@xemacs.org> 2996 2997 * host.c (cmp_prefer_ipv4): New function. 2998 (cmp_prefer_ipv6): New function. 2999 (lookup_host): Use the appropriate comparator according to 3000 opt.prefer_family. 3001 3002 * init.c: New option prefer_family. 3003 3004 * host.c (is_valid_ipv6_address): Spell NS_* constants in lower 3005 case to avoid clash with system headers. 3006 (lookup_host): Reorder the addresses so that IPv4 ones come first. 3007 3008 * utils.c (stable_sort): New function. 3009 30102005-04-24 Hrvoje Niksic <hniksic@xemacs.org> 3011 3012 * connect.c (retryable_socket_connect_error): Return 0 for 3013 ENETUNREACH and EHOSTUNREACH. 3014 30152005-04-23 Hrvoje Niksic <hniksic@xemacs.org> 3016 3017 * cmpt.c: Reenable the memmove implementation for systems that 3018 lack it. 3019 3020 * http.c (gethttp): Store the "authorized" state of the persistent 3021 connection. 3022 (request_remove_header): New function. 3023 (gethttp): Don't send the "Basic" authentication if the connection 3024 is already authorized. 3025 30262005-04-23 Hrvoje Niksic <hniksic@xemacs.org> 3027 3028 * utils.c (base64_encode): Treat input as unsigned chars. 3029 Required for correct encoding of binary stuff. 3030 30312005-04-23 Hrvoje Niksic <hniksic@xemacs.org> 3032 3033 * http-ntlm.c: Format the function definitions in an 3034 ansi2knr-friendly fashion. 3035 30362005-04-22 Hrvoje Niksic <hniksic@xemacs.org> 3037 3038 * http.c (gethttp): Handle multiple WWW-Authentication headers, 3039 only one of which is recognized. Those are sent by IIS with NTLM 3040 authorization. 3041 (create_authorization_line): Propagate information whether 3042 authorization is finished. 3043 (gethttp): Only stop authorization when it's really finished, not 3044 after fixed two steps. 3045 30462005-04-21 Hrvoje Niksic <hniksic@xemacs.org> 3047 3048 * gen_sslfunc.c (ssl_init): Fix warning message text; mark the 3049 message as translatable. 3050 30512005-04-21 Hrvoje Niksic <hniksic@xemacs.org> 3052 3053 * main.c (print_help): Print the EGD option outside the cluster of 3054 SSL options. 3055 30562005-04-21 Hrvoje Niksic <hniksic@xemacs.org> 3057 3058 * http-ntlm.c (ntlm_output): Fix setting the domain. 3059 Suggested by Sami Krank. 3060 30612005-04-20 Mauro Tortonesi <mauro@ferrara.linux.it> 3062 3063 * connect.c: Set IPV6_V6ONLY socket option when -6 switch is used. 3064 30652005-04-20 FUJISHIMA Satsuki <sf@FreeBSD.org> 3066 3067 * http.c (request_set_header): Fix the check whether a new header 3068 needs to be allocated. 3069 30702005-04-18 Hrvoje Niksic <hniksic@xemacs.org> 3071 3072 * utils.c (base64_encode): Use the parameter order that makes more 3073 sense. Return the length of the base64 written. Updated all 3074 callers. 3075 30762005-04-17 Hrvoje Niksic <hniksic@xemacs.org> 3077 3078 * http.c (request_set_header): Free NAME when VALUE is NULL and 3079 freeing the header name is requested. 3080 30812005-04-17 Hrvoje Niksic <hniksic@xemacs.org> 3082 3083 * snprintf.c (fmtstr): Declare VALUE as const char *. 3084 Based on patch by Russ Allbery. 3085 30862005-04-17 Hrvoje Niksic <hniksic@xemacs.org> 3087 3088 * snprintf.c (fmtfp): More correct handling of significant digit 3089 count with %g -- 0.002 has one significant digit, not three. 3090 30912005-04-16 Hrvoje Niksic <hniksic@xemacs.org> 3092 3093 * retr.c (fd_read_body): Respect read timeout with non-interactive 3094 or no progress gauge -- treat ETIMEDOUT specially only when 3095 progress_interactive. 3096 Reported by FUJISHIMA Satsuki. 3097 30982005-04-16 FUJISHIMA Satsuki <sf@FreeBSD.org> 3099 3100 * http.c (gethttp): Don't use HTTP/1.0 persistent connections over 3101 proxy. 3102 31032005-04-16 Hrvoje Niksic <hniksic@xemacs.org> 3104 3105 * snprintf.c: Use the PARAMS macro to handle prototypes. Write 3106 function definitions in the ansi2knr-friendly way. 3107 (fmtstr): If string precision is specified, don't read VALUE past 3108 it. 3109 (dopr): Actually print %g and %e formats. 3110 (fmtfp): Fix a bug that caused 0.01 to be printed as 0.1. 3111 (fmtfp): Use LLONG in floating point conversions to be able to 3112 convert more digits. 3113 (fmtfp): Interpret precision as number of significant digits with 3114 %g. 3115 (fmtfp): Omit trailing decimal zeros with %g. 3116 3117 * snprintf.c: Don't include <ctype.h> because none of it is used. 3118 Include strings.h/string.h, as per Autoconf. 3119 31202005-04-15 Hrvoje Niksic <hniksic@xemacs.org> 3121 3122 * ptimer.c: Use _POSIX_TIMERS - 0 > 0, which handles the case when 3123 _POSIX_TIMERS is defined but empty, as well as the case when it is 3124 undefined. Do the same with the check for _POSIX_MONOTONIC_CLOCK. 3125 Suggested by Larry Jones. 3126 31272005-04-15 Hrvoje Niksic <hniksic@xemacs.org> 3128 3129 * ptimer.c: Check that _POSIX_TIMERS is defined as well as > 0. 3130 Problem reported by Steven M. Schweda. 3131 31322005-04-14 Hrvoje Niksic <hniksic@xemacs.org> 3133 3134 * http.c (skip_short_body): Print the skipped body data in debug 3135 mode. 3136 (skip_short_body): Don't skip more than 4k of body data. 3137 (skip_short_body): Return whether the skipping was successful. 3138 (gethttp): If skip_short_body failed, invalidate the connection. 3139 31402005-04-12 Gisle Vanem <giva@bgnett.no> 3141 3142 * ftp.c (getftp): Ditto. 3143 3144 * http.c (gethttp): Open the output file in binary mode. 3145 31462005-04-11 Hrvoje Niksic <hniksic@xemacs.org> 3147 3148 * hash.c: Conditionalize including config.h on HAVE_CONFIG_H 3149 instead of on STANDALONE. 3150 31512005-04-11 Hrvoje Niksic <hniksic@xemacs.org> 3152 3153 * gen_sslfunc.c (ssl_print_errors): Made static. 3154 (ssl_print_errors): Eliminate potentially dangerous fixed-size 3155 error buffer. Passing NULL to ERR_error_string causes it to use 3156 its own static buffer, which is fine for our purposes. 3157 3158 * gen_sslfunc.c: Include gen_sslfunc.h. Make the declarations of 3159 ssl_init and ssl_conect match the actual definitions. 3160 (ssl_connect): Simply return a boolean, the SSL context is no 3161 longer useful as a return value. 3162 3163 * retr.c: Don't include SSL headers; we don't need them. 3164 31652005-04-11 Hrvoje Niksic <hniksic@xemacs.org> 3166 3167 * config-post.h: Don't define _VA_LIST under Solaris; it breaks 3168 compilation with GCC 3.4 under Solaris 10. (It was defined to 3169 avoid a warning with previous versions of GCC.) 3170 31712005-04-11 Hrvoje Niksic <hniksic@xemacs.org> 3172 3173 * xmalloc.c (register_ptr): Warn the user to increase SZ prior to 3174 aborting. 3175 31762005-04-11 Hrvoje Niksic <hniksic@xemacs.org> 3177 3178 * convert.c (convert_cleanup): Free converted_files. 3179 31802005-04-10 Hrvoje Niksic <hniksic@xemacs.org> 3181 3182 * wget.h (DEBUGP): Use __builtin_expect to give a hint to GCC that 3183 opt.debug is false in the vast majority of cases. 3184 31852005-04-10 Hrvoje Niksic <hniksic@xemacs.org> 3186 3187 * config-post.h: Declare alloca as void *, not char *. 3188 31892005-04-09 Hrvoje Niksic <hniksic@xemacs.org> 3190 3191 * recur.c (download_child_p): When -p is used, (temporarily) 3192 ignore accept/reject rules for HTMLs, even when they are at the 3193 maximum recursion depth. That is because with -p we are, if 3194 necessary, overstepping the max. depth to get the requisites. 3195 31962004-06-12 Larry Jones <lawrence.jones@ugsplm.com> 3197 3198 * recur.c (download_child_p): Correct the logic in check number 6: 3199 test opt.reclevel (not DEPTH) against INFINITE_RECURSION. 3200 32012005-04-09 Hrvoje Niksic <hniksic@xemacs.org> 3202 3203 * url.c: Use "static const" in preference to "const static". 3204 Sun's cc warns that "storage class after type is obsolescent". 3205 3206 * url.c (urlchr_table): Don't mark ~ as unsafe, too many broken 3207 web sites are confused when ~ is changed to %7E. Their servers 3208 redirect /%7Efoo/ to /~foo/, which Wget again accesses using %7E, 3209 causing further redirections, therefore looping infinitely. See 3210 Debian bug #301624 for an example. 3211 32122005-04-09 Hrvoje Niksic <hniksic@xemacs.org> 3213 3214 * alloca.c: Include wget.h to be able to use xmalloc. In addition 3215 to defining malloc to xmalloc, also define free to xfree. 3216 32172005-04-09 Hrvoje Niksic <hniksic@xemacs.org> 3218 3219 * http-ntlm.c (ntlm_output): Use "char", not "unsigned char" for 3220 ntlmbuf. Our base64 functions accept char anyway. 3221 (ntlm_output): Join up the format string, since we nominally 3222 support K&R compilers. 3223 (ntlm_output): Ditto. 3224 32252005-04-08 Hrvoje Niksic <hniksic@xemacs.org> 3226 3227 * ptimer.c: Use Windows timers under Cygwin, whose POSIX timer 3228 implementation is incomplete. 3229 32302005-04-08 Hrvoje Niksic <hniksic@xemacs.org> 3231 3232 * ptimer.c (struct ptimer): Remove the unused initialized field. 3233 3234 * ptimer.c: Renamed function parameters from WT (which used to 3235 stand for wget_timer or wtimer) to PT. 3236 32372005-04-08 Hrvoje Niksic <hniksic@xemacs.org> 3238 3239 * ptimer.c (posix_init): Be smarter about choosing clocks. In 3240 decreasing order of preference, use CLOCK_MONOTONIC, 3241 CLOCK_HIGHRES, and CLOCK_REALTIME. 3242 (ptimer_allocate): Removed. 3243 3244 * ptimer.c: Refactor the code by cleanly separating the 3245 architecture-dependent code from the architecture-independent 3246 code. 3247 32482005-04-08 Hrvoje Niksic <hniksic@xemacs.org> 3249 3250 * ptimer.c (ptimer_init): Explicitly check that 3251 _POSIX_MONOTONIC_CLOCK is *both* defined and >=0. (Undefined 3252 symbols are >=0.) 3253 32542005-04-08 Hrvoje Niksic <hniksic@xemacs.org> 3255 3256 * ptimer.c (ptimer_diff): Fix typo affecting Windows build. 3257 32582005-04-08 Hrvoje Niksic <hniksic@xemacs.org> 3259 3260 * ptimer.c (ptimer_init): In fact, _POSIX_MONOTONIC_CLOCK needs to 3261 be >= 0. 3262 3263 * ptimer.c (ptimer_init): Check whether _POSIX_MONOTONIC_CLOCK is 3264 defined instead of whether it's greater than 0. glibc defines it 3265 to 0, but still makes it available via sysconf. 3266 32672005-04-08 Hrvoje Niksic <hniksic@xemacs.org> 3268 3269 * mswindows.c (str_to_int64): Rename OVERFLOW and UNDERFLOW to 3270 INT64_OVERFLOW and INT64_UNDERFLOW, since those names are used. 3271 32722005-04-07 Hrvoje Niksic <hniksic@xemacs.org> 3273 3274 * ptimer.c: New file. Move the "wtimer" functions from utils.c to 3275 this file and rename them to ptimer_. 3276 32772005-04-07 Hrvoje Niksic <hniksic@xemacs.org> 3278 3279 * host.c (NO_ADDRESS): Define NO_ADDRESS only after the system 3280 headers have been included. 3281 32822005-04-06 Hrvoje Niksic <hniksic@xemacs.org> 3283 3284 * http.c (pconn): Include NTLM data, which is per-connection. 3285 (known_authentication_scheme_p): Recognize NTLM authorization. 3286 (create_authorization_line): Call ntlm_input and ntlm_output. 3287 3288 * http-ntlm.c: New file, donated by Daniel Stenberg and originally 3289 written for curl, heavily modified for Wget. 3290 3291 * utils.c (base64_encode): Relocated from http.c, since it is now 3292 used by http-ntlm.c, and will possibly be used elsewhere. 3293 (base64_decode): New function, originally based on code from GNU 3294 recode. 3295 32962005-04-02 Hrvoje Niksic <hniksic@xemacs.org> 3297 3298 * ftp.c (ftp_loop): Ditto. 3299 3300 * ftp-basic.c (ftp_pasv): Use the xzero shorthand for memset(0). 3301 (ftp_lpsv): Ditto. 3302 33032005-04-05 Mauro Tortonesi <mauro@ferrara.linux.it> 3304 3305 * Makefile.in: removed string_t.c from list of source files. 3306 33072005-04-04 Mauro Tortonesi <mauro@ferrara.linux.it> 3308 3309 * string_t.c: Removed. 3310 3311 * string_t.h: Removed. 3312 33132005-04-02 Hrvoje Niksic <hniksic@xemacs.org> 3314 3315 * url.c (rewrite_shorthand_url): Only accept recognized schemes. 3316 That way "foo:80" will correctly be rewritten to "http://foo:80" 3317 instead of left unchanged and ultimately rejected because of 3318 "unsupported scheme foo". 3319 33202005-03-31 Hrvoje Niksic <hniksic@xemacs.org> 3321 3322 * utils.c (number_to_string): Avoid explicit 64-bit constants; 3323 construct them by multiplication at compile-time. 3324 3325 * utils.c, elsewhere: Don't append "L" to 32-bit integer 3326 constants; we aren't really compilable on 16-bit systems anyway. 3327 3328 * hash.c (prime_size): Remove primes larger than 2^31, but include 3329 2^31-1, which is prime. 3330 33312005-03-30 Hrvoje Niksic <hniksic@xemacs.org> 3332 3333 * utils.c (string_set_to_array): New function. 3334 3335 * convert.c: Replace the use of "slists" with sets/hash-tables, 3336 which in fact suit the intended purpose much better. 3337 downloaded_html_list is removed altogether. 3338 33392005-03-29 Hrvoje Niksic <hniksic@xemacs.org> 3340 3341 * ftp.h (enum): Rename GLOBALL, GETALL, and GETONE to 3342 GLOB_GLOBALL, GLOB_GETALL, and GLOB_GETONE to avoid conflict with 3343 Linux headers. 3344 33452005-03-29 Hrvoje Niksic <hniksic@xemacs.org> 3346 3347 * utils.c (numdigit): More correct handling of negative numbers. 3348 33492005-03-21 Hrvoje Niksic <hniksic@xemacs.org> 3350 3351 * http.c (gethttp): Print the human-readable size. 3352 3353 * ftp.c (getftp): Print the human-readable size of the file to be 3354 downloaded. 3355 3356 * utils.c (human_readable): New function. 3357 3358 * utils.c: Renamed "legible" to "with_thousand_seps", 3359 "legible_large_int" to "with_thousand_seps_large", and "legible_1" 3360 to "add_thousand_seps". 3361 33622005-03-21 Hrvoje Niksic <hniksic@xemacs.org> 3363 3364 * http.c (gethttp): Inhibit persistent connections when talking to 3365 proxies, as mandated by RFC 2068. 3366 33672005-03-20 Hrvoje Niksic <hniksic@xemacs.org> 3368 3369 * url.c (unescape_single_char): New function. 3370 (url_escape_dir): Use it to unescape slashes in directory 3371 components. 3372 (url_string): Escape unsafe chars in host name, except for the ':' 3373 charaters, which can appear in IPv6 addresses. 3374 3375 * main.c (main): Don't access the cookie jar directly. 3376 3377 * log.c (escnonprint_internal): Correctly calculate the needed 3378 string size. Don't forget the buffer's new size after having 3379 reallocated it. 3380 (log_cleanup): New function. Free the escnonprint ring data. 3381 3382 * init.c (cleanup): Don't free the cookie jar explicitly, it is 3383 now done by http_cleanup. 3384 (cleanup): opt.user_headers is now a vector, free it with 3385 free_vec. 3386 3387 * http.c (gethttp): Make sure to free the request data, the status 3388 message, and the response data before returning from the function. 3389 (save_cookies): New function. 3390 (http_cleanup): Free the cookie jar here. 3391 3392 * hash.c: Renamed string_hash to hash_string and ptrhash to 3393 hash_pointer. Exported hash_pointer. 3394 3395 * xmalloc.c: Organized malloc_table (previously malloc_debug) as a 3396 simple EQ hash table. register_ptr and unregister_ptr are now of 3397 O(1) complexity. 3398 3399 * xmalloc.c: Renamed "*_debug" to debugging_* and "*_real" to 3400 checking_*. 3401 34022005-03-12 Hrvoje Niksic <hniksic@xemacs.org> 3403 3404 * utils.c (debug_test_md5): Moved to gen-md5.c. 3405 3406 * mswindows.h: Don't declare inet_ntop, since we don't use it. 3407 3408 * mswindows.h: For consistency, also wrap closesocket, it being 3409 a Winsock call. 3410 3411 * mswindows.h: Don't declare sleep and usleep; we're defining 3412 xsleep now. 3413 3414 * mswindows.h (mkdir): Don't special-case Borland C, _mkdir 3415 works there as well. 3416 3417 * host.c: Don't include winsock header files; the correct ones 3418 are already included by mswindows.h. 3419 3420 * mswindows.c (xsleep): Round toward the nearest millisecond 3421 in an attempt to avoid average short sleeps. 3422 3423 * utils.c (wtimer_granularity): Report correct values for 3424 Windows timers and for high-resolution timers. 3425 3426 * utils.c (wtimer_initialize_once): New function, called to 3427 initialize the timer frequency. 3428 3429 * utils.c: Replace the use of GetSystemTime with high-resolution 3430 counters under Windows. When high-resolution counters are 3431 unavailable, use GetTickCount(). 3432 34332005-03-15 Hrvoje Niksic <hniksic@xemacs.org> 3434 3435 * retr.c (fd_read_body): Undo the 2004-11-18 change. Instead, 3436 always be "exact". 3437 34382005-03-17 Hrvoje Niksic <hniksic@xemacs.org> 3439 3440 * ftp-basic.c (ftp_login): Don't free the string if ftp_response 3441 returned an error status because the line didn't get allocated in 3442 the first place. 3443 34442005-03-15 Hrvoje Niksic <hniksic@xemacs.org> 3445 3446 * http.c (read_http_response_head): Limit the response size to 64k 3447 bytes. 3448 3449 * retr.c (fd_read_hunk): Accept a MAXSIZE argument that limits the 3450 number of bytes the function is allowed to allocate. 3451 (fd_read_line): Limit the line to 4096 bytes. 3452 34532005-03-12 Hrvoje Niksic <hniksic@xemacs.org> 3454 3455 * wget.h: Include options.h after wgint has been defined. 3456 3457 * options.h (struct options): Declare options processed with 3458 cmd_bytes as wgint, not long. 3459 34602005-03-18 Hrvoje Niksic <hniksic@xemacs.org> 3461 3462 * init.c (cmd_file): Use concat_strings. 3463 3464 * http.c (basic_authentication_encode): Use concat_strings. 3465 3466 * ftp-ls.c (ftp_index): Use concat_strings. 3467 3468 * ftp-basic.c (ftp_request): Use concat_strings. 3469 3470 * utils.c (concat_strings): New function. 3471 34722005-03-12 Hrvoje Niksic <hniksic@xemacs.org> 3473 3474 * init.c (simple_atof): Handle negative numbers; skip whitespace 3475 before the number. 3476 (simple_atoi): Ditto. Also, check for overflow and underflow. 3477 (cmd_number): Bail out on negative numbers. 3478 (parse_bytes_helper): Ditto. 3479 34802005-03-06 Hrvoje Niksic <hniksic@xemacs.org> 3481 3482 * http.c (gethttp): Handle multiple Set-Cookie headers sent by 3483 remote server. 3484 34852005-03-06 Hrvoje Niksic <hniksic@xemacs.org> 3486 3487 * init.c (defaults): Use passive FTP by default. 3488 34892005-03-06 Hrvoje Niksic <hniksic@xemacs.org> 3490 3491 * mswindows.c: Provide wrappers to Winsock functions that set 3492 errno to WSAGetLastError() in case of failure. Also provide a 3493 Windows-specific version of strerror. 3494 3495 * mswindows.h: Wrap calls to socket, bind, connect, recv, send, 3496 select, getsockname, getpeername, and setsockopt. 3497 34982005-03-06 Hrvoje Niksic <hniksic@xemacs.org> 3499 3500 * url.c (url_parse): Reject port numbers larger than 65535. We 3501 also check for overflow while parsing port numbers. 3502 35032005-03-06 Hrvoje Niksic <hniksic@xemacs.org> 3504 3505 * utils.c (read_file): Don't use wgint for file size; LFS won't 3506 work since the file is mmap'ed as a whole. 3507 3508 * options.h: Don't include stdio.h. 3509 3510 * log.c: Ditto. 3511 3512 * init.c: Disambiguate assignment from non-zero test to avoid 3513 Borland C warning. 3514 3515 * http.c (response_new): Don't needlessly post-increment count. 3516 3517 * hash.c: Include stdio.h. 3518 3519 * gnu-md5.h: Don't include stdio.h. 3520 3521 * getopt.h (struct option): Always use const. 3522 3523 * ftp.c (getftp): Avoid unnecessary assignment to RES to avoid 3524 Borland C warning. 3525 3526 * ftp-ls.c: Disambiguate assignment from non-zero test to avoid 3527 Borland C warning. 3528 3529 * cmpt.c (strptime_internal): Don't initialize rp_backup when 3530 !_NL_CURRENT to avoid Borland C warning. 3531 35322005-03-06 Hrvoje Niksic <hniksic@xemacs.org> 3533 3534 * utils.c (fopen_excl): Fix parse error when O_BINARY is 3535 available. 3536 35372005-03-05 Hrvoje Niksic <hniksic@xemacs.org> 3538 3539 * url.c (url_file_name): Don't allow hosts named ".." to be 3540 appended as path elements. 3541 35422005-03-03 Hrvoje Niksic <hniksic@xemacs.org> 3543 3544 * retr.c (retrieve_url): Escape location header. 3545 3546 * http.c (print_server_response_1): Escape server response when 3547 printing it. 3548 (gethttp): Escape host name, status message, location header, and 3549 content type. 3550 (http_loop): Escape error message from server. 3551 3552 * host.c (lookup_host): Escape host name when printing it. 3553 3554 * ftp.c (getftp): Escape user name when printing it. 3555 (getftp): Escape remote file and directory for printing. 3556 (getftp): Escape server listing when printing it. 3557 (ftp_retrieve_list): Escape link name and file name. 3558 (ftp_retrieve_glob): Escape file name. 3559 3560 * ftp-basic.c (ftp_response): Escape server response when printing 3561 it. 3562 3563 * cookies.c (parse_set_cookies): Escape the cookie field when 3564 printing it. 3565 (parse_set_cookies): Escape contents of remote header. 3566 (cookie_handle_set_cookie): Escape host name and cookie domain. 3567 3568 * connect.c (connect_to_ip): Escape the host name. 3569 3570 * log.c (escnonprint): New function, used for printing strings 3571 coming from the server that possibly contain non-ASCII characters. 3572 (escnonprint_uri): Ditto. 3573 35742005-02-24 Hrvoje Niksic <hniksic@xemacs.org> 3575 3576 * ftp.c (getftp): Ditto. 3577 3578 * http.c (gethttp): When we're not supposed to overwrite files, 3579 use fopen_excl to open the file and recompute the file name. 3580 3581 * log.c (redirect_output): Use unique_create to avoid a race 3582 condition. 3583 3584 * mswindows.c (fake_fork_child): Use unique_create. 3585 3586 * utils.c (fopen_excl): New function that opens a stdio stream 3587 with the O_EXCL flag (where available). 3588 (unique_create): New function, like unique_name, but also creating 3589 the file and returning a file pointer. 3590 (fork_to_background): Use unique_create to create the file 3591 immediately to avoid race condition with multiple instances of 3592 wget -b. 3593 35942005-02-24 Hrvoje Niksic <hniksic@xemacs.org> 3595 3596 * host.c (lookup_host): Test for AI_ADDRCONFIG directly, instead 3597 of checking for HAVE_GETADDRINFO_AI_ADDRCONFIG. 3598 35992005-02-23 Hrvoje Niksic <hniksic@xemacs.org> 3600 3601 * host.c (is_valid_ipv6_address): Move here from url.c. 3602 (lookup_host): If the address is numeric, don't print the 3603 "resolving..." line, don't set up DNS timeouts, and set the 3604 AI_NUMERICHOST hint, where available. 3605 36062005-02-26 Gisle Vanem <giva@bgnett.no> 3607 3608 * utils.c: Use the nnnLL syntax under GCC. Define struct_stat to 3609 struct _stati64 under __MINGW32__ as well as under MS VC. 3610 36112005-02-26 Hrvoje Niksic <hniksic@xemacs.org> 3612 3613 * utils.c: Use the nnnI64 syntax for __int64 constants under all 3614 Windows compilers. 3615 (SPRINTF_WGINT): Use "%I64" under all Windows compilers. 3616 3617 * mswindows.h (WGINT_MAX): Use the nnnI64 syntax for 3618 __int64 constants under all Windows compilers. 3619 (struct_stat): Use `struct stati64' under Borland C. 3620 (fstat): Don't redefine to _fstati64 under Borland. 3621 3622 * mswindows.c: Define str_to_int64 under Borland C as well as 3623 under (older) Visual C. 3624 36252005-02-25 Hrvoje Niksic <hniksic@xemacs.org> 3626 3627 * ftp.c (getftp): Initialize err to suppress compiler warning. 3628 36292005-02-24 Hrvoje Niksic <hniksic@xemacs.org> 3630 3631 * ftp.c (ftp_expected_bytes): Fix bug that caused infloop because 3632 of not correctly skipping the '(' character. 3633 36342005-02-24 Hrvoje Niksic <hniksic@xemacs.org> 3635 3636 * mswindows.c (wget_ftello): Removed. 3637 3638 * mswindows.h: Remove bogus definition of stat. 3639 (wget_ftello): Remove the leftover ftello replacement. 3640 36412005-02-20 Hrvoje Niksic <hniksic@xemacs.org> 3642 3643 * mswindows.c (wget_ftello): Wget's replacement for ftello. 3644 3645 * utils.c (file_size): Use ftello where available. 3646 3647 * ftp-ls.c (ftp_parse_unix_ls): Use str_to_wgint to parse the file 3648 size. 3649 (ftp_parse_winnt_ls): Ditto. 3650 3651 * ftp-basic.c (ftp_size): Use str_to_wgint to convert number to 3652 wgint; pass 10 instead of 0 as the BASE argument. 3653 3654 * ftp.c (ftp_expected_bytes): Use str_to_wgint to parse the file 3655 size. 3656 3657 * sysdep.h (LARGE_INT_FMT): Use __int64 as LARGE_INT on 3658 MSVC/Windows; print it with "%I64". 3659 3660 * wget.h: Define a `wgint' type, normally aliased to (the possibly 3661 64-bit variant of) off_t. 3662 3663 * all: Use `wgint' instead of `long' for numeric variables that 3664 can hold file sizes. 3665 3666 * utils.c (number_to_string): Support printing of `wgint' 3667 argument. 3668 (number_to_static_string): New function. 3669 3670 * all: Replace printf("%ld", long_value) with printf("%s", 3671 number_to_static_string(wgint_value)). 3672 36732005-02-18 Mauro Tortonesi <mauro@ferrara.linux.it> 3674 3675 * main.c: Added the --ftp-passwd command line option. 3676 3677 * init.c: Renamed command passwd to ftppasswd. 3678 36792005-02-11 Mauro Tortonesi <mauro@ferrara.linux.it> 3680 3681 * string_t.c: Fixed a bug in do_escape and triggered escape of 3682 backslashes in string_escape to avoid ambiguities in the result 3683 string. 3684 36852005-02-10 Mauro Tortonesi <mauro@ferrara.linux.it> 3686 3687 * string.h: Renamed to string_t.h to fix a compilation conflict 3688 with the string.h header in the standard C library. 3689 3690 * string.c: Renamed to string_t.c for consistency with string.h. 3691 3692 * string_t.c: Ditto. 3693 3694 * string_t.h: Ditto. 3695 36962004-12-31 Mauro Tortonesi <mauro@ferrara.linux.it> 3697 3698 * string.c: New file. 3699 3700 * string.h: New file. 3701 3702 * Makefile.in: Added string.c to the list of modules to compile. 3703 3704 * main.c: Updated copyright. 3705 37062004-11-18 Ulf Harnhammar <ulf.harnhammar.9485@student.uu.se> 3707 3708 * ftp-ls.c: Fixed a problem in ftp_parse_winnt_ls that could allow a 3709 malicious remote FTP server to crash wget. 3710 37112004-11-18 Hans-Andreas Engel <engel@node.ch> 3712 3713 * http.c: Enable --convert-links (-k) when a single page is downloaded 3714 via --output-document (-O). 3715 37162004-11-18 Mauro Tortonesi <mauro@deepspace6.net> 3717 3718 * connect.c: Minor correction to the comment in front of fd_peek. 3719 37202004-11-18 Leonid Petrov <nouser@lpetrov.net> 3721 3722 * retr.c: Fix a timeout problem in fd_read_body when using http_proxy. 3723 37242004-11-15 YAMAZAKI Makoto <Yamazaki.Makoto@fujixerox.co.jp> 3725 3726 * netrc.c: Fix termination by assertion bug in netrc parsing. 3727 37282004-05-09 David Fritz <zeroxdf@att.net> 3729 3730 * mswindows.c (fake_fork): Pass entire command line to the child 3731 process. 3732 37332004-03-31 Hrvoje Niksic <hniksic@xemacs.org> 3734 3735 * http.c (gethttp): Fix typo: SCHEME_SSL -> SCHEME_HTTPS. 3736 37372004-03-30 Hrvoje Niksic <hniksic@xemacs.org> 3738 3739 * http.c (gethttp): Send the Proxy-Authorization header over 3740 non-SSL connections too. 3741 37422004-03-25 David Fritz <zeroxdf@att.net> 3743 3744 * mswindows.c (fake_fork_child): Ignore error code when 3745 OpenFileMapping() fails; assume it failed because the object does 3746 not exist. 3747 37482004-03-24 David Fritz <zeroxdf@att.net> 3749 3750 * mswindows.c (fake_fork): New function. 3751 3752 * mswindows.c (fork_to_background): Use it. 3753 37542004-03-19 David Fritz <zeroxdf@att.net> 3755 3756 * mswindows.c (ws_hangup): Incorporate old fork_to_background() 3757 code. Add event name argument. 3758 (fork_to_backgorund): Now a simple wrapper around ws_hangup(). 3759 (ws_handler): Correctly handle the case when neither CTRLC_BACKGND 3760 nor CTRLBREAK_BACKGND are defined. Don't bother handling close, 3761 logoff, or shutdown events. Call ws_hangup() with the correct 3762 event name; don't assume it was CTRL+Break. 3763 37642004-03-19 Hrvoje Niksic <hniksic@xemacs.org> 3765 3766 * url.c (url_parse): Decode %HH sequences in host name. 3767 37682004-03-04 Hrvoje Niksic <hniksic@xemacs.org> 3769 3770 * convert.c (local_quote_string): Quote "#" as "%23" and "%" as 3771 "%25" when creating links to local files. 3772 37732004-03-02 David Fritz <zeroxdf@att.net> 3774 3775 * mswindows.c (ws_percenttitle): Guard against future changes by 3776 doing nothing if the proper variables have not been initialized. 3777 Clamp percentage value. 3778 37792004-03-04 Gisle Vanem <giva@bgnett.no> 3780 3781 * retr.c (fd_read_body): Don't change console title if quiet. 3782 37832004-02-25 David Fritz <zeroxdf@att.net> 3784 3785 * mswindows.c (set_sleep_mode): Remove argument and return value. 3786 Call GetModuleHandle() instead of LoadLibrary()/FreeLibrary() for 3787 kernel32.dll. Use typedef for function-pointer. Don't cast 3788 l-value. Don't use dereference operator when calling through 3789 function-pointer. 3790 (ws_startup): Update call to set_sleep_mode(). 3791 (ws_cleanup): Remove call to set_sleep_mode(). 3792 37932004-02-23 David Fritz <zeroxdf@att.net> 3794 3795 * http.c (http_loop): Ditto. 3796 3797 * ftp.c (ftp_loop_internal): Update call to ws_changetitle(). 3798 3799 * main.c (main): Don't bother calling ws_changetitle(). 3800 3801 * mswindows.h (ws_changetitle): Update prototype. 3802 3803 * mswindows.c (ws_changetitle): Remove second argument. Use 3804 xfree_null(). 3805 (ws_percenttitle): Only update title when percentage has changed. 3806 38072004-02-23 David Fritz <zeroxdf@att.net> 3808 3809 * mswindows.h: Ditto. 3810 3811 * mswindows.c: Misc. formatting/comment tweaks throughout. 3812 38132004-02-20 David Fritz <zeroxdf@att.net> 3814 3815 * main.c (print_help): Remove call to ws_help(). 3816 3817 * mswindows.c (ws_help): Remove. 3818 3819 * mswindows.h (ws_help): Remove. 3820 38212004-02-16 David Fritz <zeroxdf@att.net> 3822 3823 * init.c (home_dir): Use aprintf() instead of xmalloc()/sprintf(). 3824 Under Windows, if $HOME is not defined, use the directory that 3825 contains the Wget binary instead of hard-coded `C:\'. 3826 (wgetrc_file_name): Under Windows, look for $HOME/.wgetrc then, if 3827 not found, look for wget.ini in the directory of the Wget binary. 3828 3829 * mswindows.c (ws_mypath): Employ slightly more robust methodology. 3830 Strip trailing path separator. 3831 38322004-02-06 Hrvoje Niksic <hniksic@xemacs.org> 3833 3834 * http.c (gethttp): Respect --ignore-length. 3835 (gethttp): Inhibit keep-alive if --ignore-length is specified. 3836 38372004-02-06 Hrvoje Niksic <hniksic@xemacs.org> 3838 3839 * connect.c (sockaddr_set_data): Zero out 3840 sockaddr_in/sockaddr_in6. Apparently BSD-derived stacks need this 3841 when binding a socket to local address. 3842 38432004-02-04 Hrvoje Niksic <hniksic@xemacs.org> 3844 3845 * hash.c: Make the file compilable outside Wget source tree when 3846 -DSTANDALONE is used. 3847 38482004-01-29 Hrvoje Niksic <hniksic@xemacs.org> 3849 3850 * utils.c (determine_screen_width): Return 0 if not running on 3851 Windows or on a TIOCGWINSZ-capable system. 3852 38532004-01-28 David Fritz <zeroxdf@att.net> 3854 3855 * utils.c (determine_screen_width): Correctly determine console 3856 width under Windows. 3857 38582004-01-28 Christian Biere <christianbiere@gmx.de> 3859 3860 * progress.c (bar_set_params): Fixed syntax error when HAVE_ISATTY 3861 was undefined. 3862 3863 * ftp.c (ftp_loop_internal): Allocate a larger buffer in case 3864 "try" gets translated to something large. Ditto in http_loop in 3865 http.c. 3866 3867 * http.c (response_header_copy): Don't write to buf[BUFSIZE]. 3868 3869 * ftp-opie.c (skey_response): Eliminate unnecessary string 3870 concatenation; just call gen_md5_update twice. 3871 38722004-01-25 Hrvoje Niksic <hniksic@xemacs.org> 3873 3874 * utils.c (xsleep): Don't call usleep with values larger than 3875 1,000,000. 3876 38772003-12-16 Hrvoje Niksic <hniksic@xemacs.org> 3878 3879 * http.c (gethttp): Fix generation of `Content-Length'. 3880 38812003-12-15 Gisle Vanem <giva@bgnett.no> 3882 3883 * url.c (url_skip_credentials): Fixed return value; 'url' if no 3884 credentials. 3885 38862003-12-14 Hrvoje Niksic <hniksic@xemacs.org> 3887 3888 * url.c (url_skip_credentials): Return a pointer directly. 3889 38902003-12-14 Hrvoje Niksic <hniksic@xemacs.org> 3891 3892 * url.c (url_file_name): Ditto. 3893 (parse_errors): Ditto. 3894 3895 * retr.c (retr_rate): Ditto. 3896 3897 * progress.c (create_image): Ditto. 3898 3899 * netrc.c (parse_netrc): Ditto. 3900 3901 * main.c (struct cmdline_option): Ditto. 3902 (redirect_output_signal): Ditto. 3903 3904 * init.c (commands): Ditto. 3905 3906 * ftp-ls.c (ftp_index): Ditto. 3907 3908 * cookies.c (check_domain_match): Declare the pointer to a literal 3909 string as `const'. 3910 39112003-12-12 Hrvoje Niksic <hniksic@xemacs.org> 3912 3913 * retr.c (fd_read_body): Pass total size to progress_create, not 3914 the remaining amount. 3915 39162003-12-12 Hrvoje Niksic <hniksic@xemacs.org> 3917 3918 * retr.c (fd_read_body): Don't fiddle with "interactive timeout" 3919 if read timeout is unset. 3920 39212003-12-12 Hrvoje Niksic <hniksic@xemacs.org> 3922 3923 * connect.c (bind_local): Don't set the IPV6_V6ONLY option on the 3924 socket. 3925 39262003-12-06 Hrvoje Niksic <hniksic@xemacs.org> 3927 3928 * url.c (url_file_name): Respect the setting of 3929 opt.protocol_directories. 3930 3931 * main.c (main): Only check for ret=='?' when longindex is unset. 3932 (option_data): New option --protocol-directories. 3933 39342003-12-06 Hrvoje Niksic <hniksic@xemacs.org> 3935 3936 * ftp.c (getftp): Ditto. 3937 3938 * http.c (gethttp): Correctly calculate bandwidth as total data 3939 read divided with download time. 3940 3941 * retr.c (fd_read_body): Separate the return values for data 3942 written and read. 3943 39442003-12-05 Hrvoje Niksic <hniksic@xemacs.org> 3945 3946 * http.c (H_REDIRECTED): Respect the HTTP/1.1 "303 See Other" 3947 response code. 3948 Suggested by Dan Razzell. 3949 39502003-11-30 Hrvoje Niksic <hniksic@xemacs.org> 3951 3952 * retr.c (fd_read_body): Report the amount of data *written* as 3953 amount_read. This is not entirely logical, but that's what the 3954 callers expect, and it's not easy to change. 3955 3956 * ftp.c (ftp_loop_internal): Ditto. 3957 3958 * http.c (http_loop): Be smarter about assigning restval; if we're 3959 in the nth pass of a download, simply use the information we have 3960 about how much data has been retrieved as restval. 3961 3962 * ftp.c (getftp): Ditto for FTP "REST" command. 3963 3964 * http.c (gethttp): When the server doesn't respect range, skip 3965 the first RESTVAL bytes of the read body. Never truncate the 3966 output file. 3967 3968 * retr.c (fd_read_body): Support skipping initial STARTPOS octets. 3969 39702003-11-30 Hrvoje Niksic <hniksic@xemacs.org> 3971 3972 * http.c (skip_short_body): Renamed skip_body to skip_short_body; 3973 don't bother calling fd_read_body. 3974 39752003-11-30 Hrvoje Niksic <hniksic@xemacs.org> 3976 3977 * retr.c (fd_read_body): Sanitize arguments and document them 3978 better. Make sure the timer is created and updated only if 3979 necessary. Updated callers. 3980 39812003-11-30 Hrvoje Niksic <hniksic@xemacs.org> 3982 3983 * http.c (skip_body): New function. 3984 (gethttp): Use it to skip the body of the responses we don't care 3985 to download. That allows us to reuse the connection. 3986 (gethttp): Trust that the HEAD requests will not generate body 3987 data. 3988 3989 * retr.c (fd_read_body): Don't write to OUT if it's NULL. 3990 39912003-11-29 Hrvoje Niksic <hniksic@xemacs.org> 3992 3993 * http.c (gethttp): Initialize SSL only the first time when SSL 3994 URL is downloaded. 3995 39962003-11-29 Hrvoje Niksic <hniksic@xemacs.org> 3997 3998 * cookies.c (cookie_header): Only generate the contents of the 3999 header, not the leading "Cookie: " or the trailing "\r\n". 4000 4001 * http.c (gethttp): When adding headers specified with `--header', 4002 allow them to override the headers generated by Wget. 4003 4004 * init.c (cmd_spec_header): Made opt.user_headers a vector. 4005 4006 * http.c (request_new): New function. Returns a request structure 4007 which can be modified in various ways, most notably by adding HTTP 4008 headers to the request. 4009 (request_set_header): New function for adding the header to the 4010 request. If the header is already available, it gets replaced. 4011 (request_send): Construct and send the request. 4012 (gethttp): Use the request_* functions to generate the request. 4013 40142003-11-28 Hrvoje Niksic <hniksic@xemacs.org> 4015 4016 * http.c (gethttp): Don't include the Proxy-Authorization header 4017 in the request tunneled through proxy. 4018 40192003-11-28 Hrvoje Niksic <hniksic@xemacs.org> 4020 4021 * http.c (gethttp): Use the CONNECT handle to establish SSL 4022 passthrough through non-SSL proxies. 4023 40242003-11-28 Hrvoje Niksic <hniksic@xemacs.org> 4025 4026 * init.c: Don't #include netinet/Winsock stuff. 4027 40282003-11-28 Hrvoje Niksic <hniksic@xemacs.org> 4029 4030 * http.c: Deleted the old functions header_process, 4031 header_extract_number, header_exists, header_strdup, 4032 http_process_range, http_process_none, http_process_type, and 4033 http_process_connection. 4034 4035 * http.c (response_new): New function. 4036 (response_header_bounds): Ditto. 4037 (response_header_copy): Ditto. 4038 (response_header_strdup): Ditto. 4039 (response_status): Ditto. 4040 (gethttp): Use the new response_* functions to parse the response. 4041 Support HTTP/0.9 responses. 4042 40432003-11-27 Hrvoje Niksic <hniksic@xemacs.org> 4044 4045 * progress.c (create_image): Don't calculate ETA if nothing has 4046 been downloaded yet, because it causes division by zero. 4047 40482003-11-27 Hrvoje Niksic <hniksic@xemacs.org> 4049 4050 * connect.c (bind_local): Rename sa_len to addrlen because IRIX 4051 headers define sa_len as a macro. 4052 40532003-11-26 Hrvoje Niksic <hniksic@xemacs.org> 4054 4055 * html-parse.c (convert_and_copy): Remove embedded newlines when 4056 AP_TRIM_BLANKS is specified. 4057 40582003-11-26 Hrvoje Niksic <hniksic@xemacs.org> 4059 4060 * ftp.c: Set con->csock to -1 where rbuf_uninitialize was 4061 previously used. 4062 40632003-11-26 Hrvoje Niksic <hniksic@xemacs.org> 4064 4065 * Makefile.in (http$o): Added the trailing backslash that was 4066 missing. 4067 40682003-11-21 Hrvoje Niksic <hniksic@xemacs.org> 4069 4070 * headers.c: Removed. The file is no longer relevant, now that no 4071 special handling of headers is done by the rbuf code. Moved 4072 portions to http.c. 4073 40742003-11-21 Hrvoje Niksic <hniksic@xemacs.org> 4075 4076 * rbuf.c: Removed. 4077 4078 * ftp-basic.c (ftp_response): Use fd_read_line. No longer use 4079 struct rbuf. Updated all callers. 4080 4081 * http.c (gethttp): Use fd_read_head to read all the headers in 4082 one go. 4083 (next_header): New function. 4084 4085 * retr.c (fd_read_line): New function: reads a line from FD, 4086 leaving the rest of the data unread. 4087 (fd_read_head): New function. 4088 4089 * connect.c (fd_peek): New function, implements peeking. 4090 (poll_internal): New function. 4091 (fd_read): Use it. 4092 (fd_write): Ditto. 4093 (fd_peek): Ditto. 4094 (fd_register_transport): Allow registering a "peeker" callback. 4095 40962003-11-20 Hrvoje Niksic <hniksic@xemacs.org> 4097 4098 * connect.c: Renamed xread/xwrite/xclose to 4099 fd_read/fd_write/fd_close. The "x" prefix is not appropriate 4100 because the semantics have diverged from read/write/close too 4101 significantly. Updated all callers. 4102 41032003-11-20 Hrvoje Niksic <hniksic@xemacs.org> 4104 4105 * connect.c (sock_write): It's not necessary to initialize RES. 4106 41072003-11-19 Hrvoje Niksic <hniksic@xemacs.org> 4108 4109 * main.c (main): Don't reference opt.ipv4_only and opt.ipv6_only 4110 if IPv6 is disabled. 4111 41122003-11-19 Hrvoje Niksic <hniksic@xemacs.org> 4113 4114 * connect.c (socket_has_inet6): Only compile it if IPv6 is enabled 4115 and AI_ADDRCONFIG is missing. 4116 41172003-11-18 Hrvoje Niksic <hniksic@xemacs.org> 4118 4119 * gen_sslfunc.c (ssl_init_prng): Warn the user when using a weak 4120 random seed. 4121 41222003-11-18 Hrvoje Niksic <hniksic@xemacs.org> 4123 4124 * host.c (address_list_contains): Renamed address_list_find to 4125 address_list_contains because its result is boolean. 4126 41272003-11-18 Hrvoje Niksic <hniksic@xemacs.org> 4128 4129 * connect.c (select_fd): Return 1 if select is not available. 4130 41312003-11-17 Hrvoje Niksic <hniksic@xemacs.org> 4132 4133 * connect.c (connect_to_host): Don't reference address list after 4134 releasing it. 4135 41362003-11-17 Hrvoje Niksic <hniksic@xemacs.org> 4137 4138 * main.c (print_help): Fix alignment of FTP options output. 4139 41402003-11-17 Hrvoje Niksic <hniksic@xemacs.org> 4141 4142 * host.c (lookup_host): Check for the ability to create IPv6 4143 sockets here. 4144 4145 * init.c (defaults): Don't auto-set --inet4-only on IPv6-less 4146 systems. 4147 41482003-11-16 Hrvoje Niksic <hniksic@xemacs.org> 4149 4150 * main.c (print_help): Fix typo in `-O' help message. Fix docs of 4151 -Y/--proxy. Fix docs of `--cookies' and `--glob'. Improve docs 4152 of --convert-links. Fix docs of SSL options. 4153 41542003-11-16 Hrvoje Niksic <hniksic@xemacs.org> 4155 4156 * ftp-basic.c: Don't include <arpa/inet.h> and others because 4157 they're no longer needed. 4158 41592003-11-16 Hrvoje Niksic <hniksic@xemacs.org> 4160 4161 * main.c (main): Don't allow setting of both opt.ipv4_only and 4162 opt.ipv6_only. 4163 4164 * init.c (defaults): Mark opt.ipv4_only specially when set 4165 automatically. 4166 41672003-11-15 Hrvoje Niksic <hniksic@xemacs.org> 4168 4169 * host.c (lookup_host): Use AI_ADDRCONFIG only if the family is 4170 unspecified. This ensures that specifying `--no-inet4' on systems 4171 where IPv6 resolves, but doesn't work behaves the same regardless 4172 of the availability of AI_ADDRCONFIG. 4173 41742003-11-15 Hrvoje Niksic <hniksic@xemacs.org> 4175 4176 * host.c: Don't refer to the now-removed function 4177 forget_host_lookup in the documentation of lookup_host. 4178 41792003-11-15 Hrvoje Niksic <hniksic@xemacs.org> 4180 4181 * http.c (persistent_available_p): Correctly specify the endpoint 4182 argument to socket_ip_address. 4183 (gethttp): When printing the "reusing connection to..." message, 4184 specify the host name of the reused connection, not the current 4185 host name. That makes more sense because it provides a useful 4186 piece of information -- we know to which host we're supposed to 4187 connect anyway! 4188 41892003-11-15 Hrvoje Niksic <hniksic@xemacs.org> 4190 4191 * init.c: Make sure the options are in alphabetic order! 4192 4193 * host.c (lookup_host): Merge lookup_host_passive and lookup_host 4194 after all -- having both would result in some code duplication. 4195 (lookup_host): Set hints.ai_family to AF_INET if ipv4_only is 4196 requested. Likewise, set it to AF_INET6 for ipv6_only. Specify 4197 AI_ADDRCONFIG where available. 4198 (lookup_host): New flag LH_REFRESH that specifies that a cached 4199 entry for HOST should be refreshed. 4200 (cache_query): New function. 4201 (cache_store): Ditto. 4202 (cache_remove): Ditto. 4203 (forget_host_lookup): No longer necessary, replaced with static 4204 function cache_remove. 4205 42062003-11-14 Hrvoje Niksic <hniksic@xemacs.org> 4207 4208 * main.c: Enable -4 and -6 only if IPv6 is enabled. 4209 42102003-11-14 Hrvoje Niksic <hniksic@xemacs.org> 4211 4212 * connect.c (register_transport): Renamed from register_extended. 4213 Explain the intended usage. 4214 42152003-11-14 Hrvoje Niksic <hniksic@xemacs.org> 4216 4217 * url.c (uri_merge): Merging "foo" and "bar" should result in 4218 "bar", not in "foo/bar". 4219 (path_simplify): Don't remove empty path elements; don't 4220 special-case leading slash. 4221 (path_simplify): Don't swallow ".."'s at the beginning of string. 4222 E.g. simplify "foo/../../bar" as "../bar", not as "bar". 4223 (append_uri_pathel): Defang ".." path element upon encountering 4224 it. 4225 42262003-11-13 Hrvoje Niksic <hniksic@xemacs.org> 4227 4228 * http.c (persistent_available_p): Don't attempt to talk to two 4229 different SSL sites over the same secure connection. 4230 42312003-11-13 Hrvoje Niksic <hniksic@xemacs.org> 4232 4233 * http.c (gethttp): Ditto. 4234 4235 * ftp.c (getftp): Use retryable_socket_connect_error instead of 4236 CONNECT_ERROR. 4237 4238 * wget.h (CONNECT_ERROR): Removed. 4239 4240 * connect.c (retryable_socket_connect_error): New function instead 4241 of unsupported_socket_family_error. 4242 42432003-11-13 Hrvoje Niksic <hniksic@xemacs.org> 4244 4245 * wget.h (CONNECT_ERROR): Use it. 4246 4247 * connect.c (unsupported_socket_family_error): New function. 4248 42492003-11-13 Hrvoje Niksic <hniksic@xemacs.org> 4250 4251 * connect.c (bind_local): Renamed bindport to bind_local; return 4252 the socket directly. Updated callers. 4253 (accept_connection): Renamed acceptport to accept_connection; 4254 return the created socket directly. Updated callers. 4255 42562003-11-13 Hrvoje Niksic <hniksic@xemacs.org> 4257 4258 * init.c (defaults): Turn on opt.ipv4_only if we're compiling with 4259 IPv6, and AI_ADDRINFO is not available, and AF_INET6 sockets can't 4260 be created. 4261 42622003-11-13 Hrvoje Niksic <hniksic@xemacs.org> 4263 4264 * host.c (lookup_host): Document the fact that the addresses are 4265 returned in order. 4266 42672003-11-12 Hrvoje Niksic <hniksic@xemacs.org> 4268 4269 * utils.c: Use limits.h only where available. 4270 4271 * hash.c: Use INVALID_PTR and INVALID_PTR_BYTE. Include limits.h. 4272 42732003-11-11 Hrvoje Niksic <hniksic@xemacs.org> 4274 4275 * main.c: Added options --inet4-only and --inet6-only. 4276 42772003-11-11 Hrvoje Niksic <hniksic@xemacs.org> 4278 4279 * host.c (host_errstr): Use the more standard message "Unknown 4280 host". 4281 42822003-11-10 Hrvoje Niksic <hniksic@xemacs.org> 4283 4284 * connect.c (connect_to_host): Use that flag to decide whether to 4285 re-resolve the host name. 4286 4287 * host.c (struct address_list): Added a flag that maintains 4288 whether the connection worked at some point. 4289 42902003-11-10 Hrvoje Niksic <hniksic@xemacs.org> 4291 4292 * host.c (lookup_host): Special-case the numeric addresses only in 4293 the non-IPv6 case. 4294 42952003-11-10 Hrvoje Niksic <hniksic@xemacs.org> 4296 4297 * connect.c (resolve_bind_address): Call lookup_host_passive. 4298 Make sure that opt.bind_address is resolved only once. 4299 4300 * host.c (lookup_host_passive): New function, handles "passive" 4301 lookups. 4302 (lookup_host): Remove the passive flags. Remove the 4303 family-related flags -- use ip_default_family instead. 4304 43052003-11-09 Hrvoje Niksic <hniksic@xemacs.org> 4306 4307 * html-url.c: Get URLs from <object data="...">. 4308 43092003-11-09 Hrvoje Niksic <hniksic@xemacs.org> 4310 4311 * main.c (option_data): Specify the command to use for --mirror. 4312 43132003-11-08 Hrvoje Niksic <hniksic@xemacs.org> 4314 4315 * cookies.c (cookie_handle_set_cookie): Specify exact match for 4316 unspecified domains. 4317 43182003-11-08 Hrvoje Niksic <hniksic@xemacs.org> 4319 4320 * main.c (main): Removed one-letter options `-C', `-g', `-G', and 4321 `-s'. 4322 43232003-11-08 Hrvoje Niksic <hniksic@xemacs.org> 4324 4325 * main.c (main): Add --dont-remove-listing for backward 4326 compatibility with previous versions. 4327 (print_help): Fix typo, spotted by Dennis Smit. 4328 43292003-11-08 Gisle Vanem <giva@bgnett.no> 4330 4331 * ftp-basic.c: Support Windows-2000 ftp servers. Win-2000 *is* 4332 Win-NT 5.0 so calling it ST_WINNT is okay I guess. 4333 43342003-11-08 Hrvoje Niksic <hniksic@xemacs.org> 4335 4336 * progress.c (update_speed_ring): Clear the speed ring when the 4337 download stalls. 4338 4339 * retr.c (get_contents): Specify 0.95s read timeout, so that the 4340 progress gauge can be updated even when data arrives very slowly 4341 or stalls. 4342 43432003-11-08 Hrvoje Niksic <hniksic@xemacs.org> 4344 4345 * utils.c (wtimer_allocate): Bless the use of wtimer_read on a 4346 timer that has merely been allocated because get_contents() does 4347 that. 4348 (wtimer_update): Abort if the timer is not initialized. 4349 43502003-11-08 Hrvoje Niksic <hniksic@xemacs.org> 4351 4352 * retr.c (get_contents): Pass the timer to limit_bandwidth(). 4353 4354 * utils.c (wtimer_update): New function instead of wget_elapsed; 4355 just update the timer, but don't return anything. 4356 (wtimer_read): Read and return the last known value of the timer. 4357 43582003-11-08 Hrvoje Niksic <hniksic@xemacs.org> 4359 4360 * http.c (persistent_available_p): Instead of matching all the 4361 addresses of HOST and last host, determine the peer's IP address 4362 with socket_ip_address and see if that address is one of those 4363 HOST resolves to. 4364 4365 * host.c (address_list_match_all): Removed. 4366 (address_list_find): New function, finds an IP address in the 4367 address list. 4368 4369 * ftp.c (ftp_do_pasv): Get the peer's address here, and pass it to 4370 ftp_epsv so it doesn't need to call getpeername. 4371 4372 * ftp-basic.c (ftp_port): Use socket_ip_address instead of 4373 getpeername. 4374 (ftp_lprt): Ditto. 4375 4376 * connect.c (socket_ip_address): Replaces conaddr, generalized to 4377 either get peer's or local address. 4378 (sockaddr_get_data): Made local to this file. 4379 43802003-11-08 Hrvoje Niksic <hniksic@xemacs.org> 4381 4382 * hash.c (HASH_POSITION): Explicitly accept the hash function. 4383 (grow_hash_table): Extract ht->hash_function outside the loop. 4384 (hash_table_remove): Ditto. 4385 (hash_table_clear): Fill entries with 0xff to clear them. 4386 (hash_table_remove): Mark entries as deleted with the correct 4387 marker. 4388 43892003-11-08 Hrvoje Niksic <hniksic@xemacs.org> 4390 4391 * http.c (persistent_available_p): No reason for the host lookup 4392 to be silent -- it's a lookup like any other. 4393 43942003-11-08 Hrvoje Niksic <hniksic@xemacs.org> 4395 4396 * connect.c (register_extended): Check that fd >= 0. 4397 43982003-11-07 Hrvoje Niksic <hniksic@xemacs.org> 4399 4400 * connect.c (LAZY_RETRIEVE_INFO): Set LAST_INFO. 4401 44022003-11-07 Hrvoje Niksic <hniksic@xemacs.org> 4403 4404 * hash.c (NON_EMPTY): Use the all-bit-set value as the marker that 4405 the field is empty. This allows NULL pointer and 0 value to be 4406 used as keys, which is necessary for the connect.c code to work 4407 when fd==0. 4408 (hash_table_new): Fill mappings with 0xff. 4409 (grow_hash_table): Ditto. 4410 44112003-11-07 Hrvoje Niksic <hniksic@xemacs.org> 4412 4413 * url.c (url_parse): Allow empty ports. 4414 44152003-11-07 Hrvoje Niksic <hniksic@xemacs.org> 4416 4417 * main.c (print_help): Break the help string into multiple chunks. 4418 (cmdline_option): New option handler OPT_FUNCALL. Generalized 4419 HANDLE_CMD to generic DATA. 4420 (option_data): Use the new OPT_FUNCALL feature. 4421 44222003-11-06 Hrvoje Niksic <hniksic@xemacs.org> 4423 4424 * log.h: Declare log_init, log_close, and 4425 log_request_redirect_output here. 4426 44272003-11-05 Dennis Smit <ds@nerds-incorporated.org> 4428 4429 * main.c: (main): added --preserve-permissions option. 4430 4431 * ftp.c (ftp_retrieve_list): added support for 4432 --preserve-permissions option. 4433 4434 * init.c: added support for --preserve-permission option. 4435 4436 * option.h: added support for --preserve-permission option. 4437 44382003-11-06 Hrvoje Niksic <hniksic@xemacs.org> 4439 4440 * main.c (init_switches): New function. Convert option_data to 4441 long_options and short_options, which can be fed to getopt_long. 4442 (main): Execute command-line options by consulting option_data. 4443 44442003-11-06 Hrvoje Niksic <hniksic@xemacs.org> 4445 4446 * gen_sslfunc.c (ssl_read): Implement a more correct check for 4447 EINTR. 4448 (ssl_write): Ditto. 4449 (init_ssl): Use a global SSL context. 4450 44512003-11-06 Hrvoje Niksic <hniksic@xemacs.org> 4452 4453 * connect.c (xclose): Free INFO even if it doesn't provide a 4454 closer. 4455 44562003-11-06 Hrvoje Niksic <hniksic@xemacs.org> 4457 4458 * connect.c: Updated all callers of 4459 iread/ssl_iread/iwrite/ssl_iwrite to use xread and xwrite instead. 4460 4461 * rbuf.h (struct rbuf): Removed the SSL member because SSL is 4462 handled automatically by xread. 4463 4464 * hash.c (ptrhash): Made private. 4465 (ptrcmp): Ditto. 4466 (inthash): Removed. 4467 4468 * connect.c (select_fd): Don't set errno, leave it to the caller. 4469 4470 * gen_sslfunc.c (connect_ssl): Use register_extended to register 4471 SSL callbacks for communication with SSL-enabled endpoints. 4472 (ssl_read): New function. 4473 (ssl_write): Ditto. 4474 (ssl_poll): Ditto. 4475 (ssl_close): Ditto. 4476 4477 * connect.c (register_extended): New function -- register 4478 callbacks for basic socket operations. 4479 (xread): Ditto. 4480 (xwrite): Ditto. 4481 (xclose): Ditto. 4482 (sock_read): New function, default implementation for reading. 4483 (sock_write): Ditto for writing. 4484 (sock_poll): Ditto for polling. 4485 (sock_close): Ditto for closing. 4486 44872003-11-05 Hrvoje Niksic <hniksic@xemacs.org> 4488 4489 * connect.c (bindport): Fix compilation under pre-C99 compilers. 4490 44912003-11-05 Hrvoje Niksic <hniksic@xemacs.org> 4492 4493 * connect.c (connect_to_ip): More compact error checking. 4494 (bindport): Don't treat failed setsockopt as a fatal error. 4495 44962003-11-05 Hrvoje Niksic <hniksic@xemacs.org> 4497 4498 * connect.c (resolve_bind_address): Use a more accurate error 4499 message -- we're not binding to ANY, we're disabling bind 4500 altogether. 4501 45022003-11-05 Hrvoje Niksic <hniksic@xemacs.org> 4503 4504 * cookies.c (save_cookies_mapper): Respect the setting of 4505 keep-session-cookies. 4506 (cookie_jar_load): Import session cookies. 4507 Based on code submitted by Nicolas Schodet. 4508 4509 * utils.c (datetime_str): Use information in TM when it's 4510 non-NULL. 4511 4512 * main.c (main): New option `--keep-session-cookies'. 4513 45142003-11-04 Hrvoje Niksic <hniksic@xemacs.org> 4515 4516 * Makefile.in (realclean): Delete config.h.in. 4517 45182003-11-04 Hrvoje Niksic <hniksic@xemacs.org> 4519 4520 * config-post.h: New file, included from now autogenerated 4521 config.h.in. 4522 45232003-11-04 Hrvoje Niksic <hniksic@xemacs.org> 4524 4525 * progress.c (progress_handle_sigwinch): Don't call 4526 determine_screen_width() from the signal handler. Instead, just 4527 set a volatile variable. 4528 (bar_create): Check whether SIGWINCH was received. 4529 (bar_update): Ditto. 4530 4531 * sysdep.h: Define SYSTEM_FNMATCH only if HAVE_FNMATCH_H is true. 4532 45332003-11-03 Hrvoje Niksic <hniksic@xemacs.org> 4534 4535 * utils.c (xsleep): New function. Uses nanosleep where available, 4536 resuming sleeps interrupted by signals. Updated callers of sleep 4537 and usleep to use xsleep. 4538 45392003-11-03 Hrvoje Niksic <hniksic@xemacs.org> 4540 4541 * ftp-basic.c (ftp_login): Remove shadowing (and bogus) 4542 declaration of SEED. 4543 45442003-11-03 Hrvoje Niksic <hniksic@xemacs.org> 4545 4546 * log.c (logvprintf): Documented better. Renamed to 4547 log_vprintf_internal to avoid confusion with the public API 4548 functions logprintf and logputs. 4549 45502003-11-03 Hrvoje Niksic <hniksic@xemacs.org> 4551 4552 * wget.h (N_): Don't parenthesize argument. 4553 45542003-11-03 Hrvoje Niksic <hniksic@xemacs.org> 4555 4556 * host.h (ADDRESS_IPV4_DATA): Don't take the address of in.s_addr 4557 because that doesn't work on machines that define it as bitfield. 4558 45592003-11-03 Hrvoje Niksic <hniksic@xemacs.org> 4560 4561 * connect.c (select_fd): Generalize the third argument into WAIT, 4562 so that the caller can request waiting for both read and write. 4563 Updated callers. 4564 45652003-11-02 Hrvoje Niksic <hniksic@xemacs.org> 4566 4567 * html-url.c (cleanup_html_url): Destroy the hash tables, don't 4568 just call free on them. 4569 (init_interesting): Use hash_table_put instead of string_set_add 4570 because we don't need the strdup that the latter function 4571 performs. 4572 4573 * init.c (cleanup): Don't pass NULL to cookie_jar_delete. 4574 4575 * xmalloc.c (xfree_real): Abort when passed a NULL pointer. 4576 (xfree_debug): Print at the file and line of the offending call to 4577 free. 4578 45792003-11-02 Hrvoje Niksic <hniksic@xemacs.org> 4580 4581 * wget.h: Retired the `boolean' type. Moved the DEFAULT_LOGFILE 4582 define to log.h. Moved the INFINITE_RECURSION define to recur.h. 4583 4584 * xmalloc.h: Renamed FREE_MAYBE to xfree_null and moved the 4585 definition from wget.h to xmalloc.h. 4586 45872003-11-02 Hrvoje Niksic <hniksic@xemacs.org> 4588 4589 * html-parse.c (decode_entity): New function; split the decoding 4590 of entities here. 4591 (convert_and_copy): Use it to decode entities. 4592 (decode_entity): Handle the &apos entity. 4593 (decode_entity): Don't decode Latin 1 numeric entities. Don't 4594 decode �. 4595 45962003-11-01 Hrvoje Niksic <hniksic@xemacs.org> 4597 4598 * ftp-opie.c (calculate_skey_response): Use uint32_t instead of 4599 `unsigned long' for the cheksum array. Document the function. 4600 46012003-11-01 Hrvoje Niksic <hniksic@xemacs.org> 4602 4603 * connect.c (acceptport): Don't call select_fd when timeout is not 4604 requested. 4605 46062003-11-01 Hrvoje Niksic <hniksic@xemacs.org> 4607 4608 * host.c: Removed the ip_default_family global variable. 4609 4610 * host.c (lookup_host): Document the function. Fixed declaration 4611 of VEC. 4612 46132003-10-31 Hrvoje Niksic <hniksic@xemacs.org> 4614 4615 * various: Use new macros xnew, xnew0, xnew_array, and xnew0_array 4616 in various places. 4617 46182003-10-31 Hrvoje Niksic <hniksic@xemacs.org> 4619 4620 * wget.h: Move declarations of malloc and logging code to 4621 xmalloc.h and log.h respectively to unclutter this file. 4622 (STRDUP_ALLOCA): Made it side-effect free. 4623 4624 * xmalloc.h: New files. Define macros xnew, xnew0, xnew_array, 4625 and xnew0_array. 4626 4627 * xmalloc.c: New file. Move the xmalloc routines here. 4628 46292003-10-31 Hrvoje Niksic <hniksic@xemacs.org> 4630 4631 * connect.c (sockaddr_set_data): Remove the broken code that 4632 checked for NULL address. 4633 46342003-10-31 Hrvoje Niksic <hniksic@xemacs.org> 4635 4636 * host.c (address_list_from_single): Removed. 4637 (address_list_from_ipv4_addresses): Renamed from 4638 address_list_from_vector. 4639 46402003-10-31 Hrvoje Niksic <hniksic@xemacs.org> 4641 4642 * sysdep.h (CLOSE): Don't call close on file descriptors less than 4643 0, i.e. on uncreated sockets. 4644 4645 * connect.c (resolve_bind_address): Work on struct sockaddr 4646 directly. 4647 (connect_to_host): Replacement for connect_to_many. Resolve HOST 4648 and connect to any of its addresses. If we can't connect and the 4649 host name lookup was cached, try to resolve it again. This should 4650 fix problems with hosts behind dynamic DNS. Updated all callers. 4651 (connect_to_ip): Replacement for connect_to_one. Removed SILENT; 4652 added the argument PRINT instead. Updated all callers. 4653 (set_connection_host_name): Removed. 4654 4655 * host.c (address_list_address_at): New function instead of 4656 address_list_copy_one. It returns a pointer to ip_address *, so 4657 it's not necessary to copy the data. 4658 (address_list_cached_p): New function. 4659 (forget_host_lookup): Ditto. 4660 4661 * connect.c: Got rid of the MSOCK global variable. Made bindport 4662 return the local socket it creates. Added a new argument to 4663 acceptport, the socket to call accept on. Updated callers. 4664 (closeport): Removed. 4665 4666 * connect.c: Moved the sockaddr code from host.c to this file, 4667 because most of that stuff is used for connecting, and has nothing 4668 to do with host names anyway. 4669 (sockaddr_set_data, sockaddr_get_data): New functions, replace the 4670 old sockaddr_set_address, sockaddr_set_port, sockaddr_get_address, 4671 and sockaddr_get_port. 4672 46732003-10-30 Hrvoje Niksic <hniksic@xemacs.org> 4674 4675 * sysdep.h: Use `S >= 8' rather than `S == 8' when looking for 4676 large integers. 4677 46782003-10-30 Hrvoje Niksic <hniksic@xemacs.org> 4679 4680 * url.c (append_uri_pathel): New argument ESCAPED_P that says 4681 whether [B, E) is to be treated as URL-escaped or not. If 4682 ESCAPED_P is false, don't unescape the region. 4683 (url_file_name): u->file is not URL-escaped. 4684 46852003-10-30 Hrvoje Niksic <hniksic@xemacs.org> 4686 4687 * retr.c (retrieve_from_file): Use retrieve_tree for 4688 page-requisites. 4689 4690 * main.c (main): Don't define opt.recursive when -p is used. 4691 Instead, make sure that recursion is used for HTTP in that case. 4692 46932003-10-29 Hrvoje Niksic <hniksic@xemacs.org> 4694 4695 * host.h: Defined accessors for elements of ip_address. Updated 4696 all callers. 4697 (address_list_match_all): Use memcmp in the non-IPv6 case. 4698 4699 * wget.h (CONNECT_ERROR): Don't retry connecting if connect() 4700 returned EAFNOSUPPORT. 4701 47022003-10-27 Mauro Tortonesi <mauro@deepspace6.net> 4703 4704 * connect.h: changed bindport prototype and added the related 4705 BIND_ON_IPV4_ONLY and BIND_ON_IPV6_ONLY flags. 4706 4707 * connect.c: changed bindport and resolve_bind_address to allow 4708 protocol-version specific DNS resolution. modified conaddr, 4709 acceptport and connect_to_one to make use of struct 4710 sockaddr_storage and of the new ip_address structure. 4711 4712 * ftp-basic.c: added LPRT/LPSV (RFC1639) support, refactored 4713 PORT/PASV (RFC959) and EPRT/EPSV (RFC2428) support code. 4714 4715 * ftp.c: added the ftp_do_port and ftp_do_pasv functions to 4716 handle FTP over IPv6. 4717 4718 * ftp.h: changed prototype of ftp_epsv and added prototypes for 4719 ftp_lpsv, ftp_lprt and ftp_eprt. 4720 4721 * host.c: renamed the 4722 wget_sockaddr_set_address and wget_sockaddr_get_addr, and 4723 wget_sockaddr_{s,g}et_port couples to sockaddr_{s,g}et_address and 4724 sockaddr_{g,s}et_port respectively. changed 4725 address_list_match_all, address_list_from_addrinfo sockaddr_len, 4726 pretty_print_address, lookup_host, sockaddr_{s,g}et_address and 4727 sockaddr_{g,s}et_port to make use of struct sockaddr_storage and 4728 of the new ip_address structure. removed map_ipv4_to_ip and 4729 map_ip_to_ipv4. 4730 4731 * host.h: redefined structure ip_address and removed structure 4732 wget_sockaddr. 4733 47342003-10-26 Hrvoje Niksic <hniksic@xemacs.org> 4735 4736 * sysdep.h: Include inttypes.h where available. 4737 4738 * host.c: Switch from u_int32_t to uint32_t. 4739 47402003-10-26 Hrvoje Niksic <hniksic@xemacs.org> 4741 4742 * netrc.c (parse_netrc): Reset the QUOTE flag after the closing 4743 quote. 4744 47452003-10-25 Hrvoje Niksic <hniksic@xemacs.org> 4746 4747 * url.c (is_valid_ipv6_address): Reformat to GNU coding style. 4748 Use enums for NS_IN* constants. Use ISXDIGIT. 4749 4750 * convert.c (construct_relative): Document better how the function 4751 works. 4752 47532003-10-23 Hrvoje Niksic <hniksic@xemacs.org> 4754 4755 * config.h.in: Deploy preprocessor magic to avoid Ultrix's 4756 <netdb.h> include <bitypes.h> which defines its own u_int32_t. 4757 Reported by Bernhard Simon. 4758 47592003-10-23 Hrvoje Niksic <hniksic@xemacs.org> 4760 4761 * version.c: Bump version. 4762 47632003-10-23 Hrvoje Niksic <hniksic@xemacs.org> 4764 4765 * url.c: Ditto. 4766 4767 * html-parse.c (advance_declaration): Don't use trailing comma in 4768 enum because older compilers don't support it. 4769 4770 * utils.c: Don't redefine HAVE_SIGSETJMP. 4771 47722003-10-16 Hrvoje Niksic <hniksic@xemacs.org> 4773 4774 * convert.c (construct_relative): Don't handle absolute files 4775 specially -- for example, -P/tmp/foo shouldn't imply that 4776 converted files must refer to "/tmp/foo/..."! 4777 47782003-10-15 Hrvoje Niksic <hniksic@xemacs.org> 4779 4780 * http.c: Consider status 307 a valid redirect. 4781 47822003-10-15 Philip Stadermann <philip.stadermann@credativ.de> 4783 4784 * ftp.c (ftp_retrieve_glob): Correctly loop through the list whose 4785 elements might have been deleted. 4786 47872003-10-13 Hrvoje Niksic <hniksic@xemacs.org> 4788 4789 * html-url.c (tag_handle_meta): Set the Refresh link to expect 4790 HTML. 4791 (append_one_url): Renamed to append_url. 4792 47932003-10-13 Hrvoje Niksic <hniksic@xemacs.org> 4794 4795 * sysdep.h: Only define u_int32_t. 4796 47972003-10-11 Hrvoje Niksic <hniksic@xemacs.org> 4798 4799 * utils.c (large_int_to_string): Use snprintf() to print the 4800 number. This will work even on systems where libc doesn't 4801 understand %lld, but the compiler does, because it will use our 4802 snprintf replacement. 4803 4804 * init.c (parse_bytes_helper): New function. 4805 (cmd_bytes): Use it to parse bytes, but cast the result to long. 4806 (cmd_bytes_large): Ditto, but store the result to LARGE_INT. Used 4807 for --quota so that --quota=10G works even on machines without 4808 long long. 4809 4810 * options.h (struct options): Declare quota as LARGE_INT. 4811 4812 * retr.c (downloaded_exceeds_quota): Removed. 4813 (downloaded_increase): Ditto. 4814 (total_downloaded_bytes): New variable, replaces opt.downloaded, 4815 which was the wrong place for it anyway. Updated callers of 4816 downloaded_exceeds_quota and downloaded_increase to check this 4817 variable directly. 4818 4819 * sysdep.h: Get rid of VERY_LONG_TYPE. Use LARGE_INT for the same 4820 purpose, defined as `long', `long long' or `double', depending on 4821 size of long and whether long long is available. 4822 48232003-10-11 Hrvoje Niksic <hniksic@xemacs.org> 4824 4825 * sysdep.h: Also check size of short for int32_t. 4826 48272003-10-11 Hrvoje Niksic <hniksic@xemacs.org> 4828 4829 * host.c (lookup_host): Use u_int32_t to store the result of 4830 inet_addr(). That removes the need for offset fiddling, caring 4831 about endian-ness, etc. 4832 4833 * sysdep.h: Define int32_t and u_int32_t if not available. 4834 48352003-10-11 Hrvoje Niksic <hniksic@xemacs.org> 4836 4837 * ftp-basic.c (ftp_epsv): Use socklen_t * as the third argument to 4838 getpeername. 4839 4840 * config.h.in: Define socklen_t stub. 4841 4842 * host.c (sockaddr_len): Return socklen_t. 4843 4844 * connect.c (conaddr): Use socklen_t as the third argument to 4845 accept, getsockname, and connect. 4846 48472003-10-10 Hrvoje Niksic <hniksic@xemacs.org> 4848 4849 * recur.c (retrieve_tree): Don't descend into documents that are 4850 not expected to contain HTML, regardless of their content-type. 4851 4852 * html-url.c (tag_url_attributes): Record which attributes are 4853 supposed to yield HTML links that can be followed. 4854 (tag_find_urls): Propagate that information to the caller through 4855 struct urlpos. 4856 48572003-10-10 Hrvoje Niksic <hniksic@xemacs.org> 4858 4859 * hash.c (find_mapping): Return the next available mapping when 4860 the key is not found, not NULL. 4861 (hash_table_put): Use find_mapping to find the storage for the new 4862 data. 4863 (hash_table_put): Grow the table before exceeding maximum 4864 fullness, not afterwards. 4865 48662003-10-10 Hrvoje Niksic <hniksic@xemacs.org> 4867 4868 * hash.c (hash_table_new): Slightly change the meaning of the 4869 first parameter. Instead of being the minimum initial size, it is 4870 now the minimum number of items that the hash table can take 4871 without needing to resize. 4872 48732003-10-09 Hrvoje Niksic <hniksic@xemacs.org> 4874 4875 * html-url.c (init_interesting): Initialize interesting_tags and 4876 interesting_attributes as hash tables. This simplifies the code 4877 immensely because hash tables handle allocation and remove 4878 duplicates automatically. 4879 (find_tag): Removed. 4880 (collect_tags_mapper): Instead of calling find_tag, simply get the 4881 entry from interesting_tags hash table, which is both simpler and 4882 faster. 4883 48842003-10-09 Hrvoje Niksic <hniksic@xemacs.org> 4885 4886 * hash.c (hash_table_get): Declare hash-table argument as const. 4887 (find_mapping): Ditto. 4888 (hash_table_get_pair): Ditto. 4889 (hash_table_contains): Ditto. 4890 (hash_table_count): Ditto. 4891 48922003-10-08 Hrvoje Niksic <hniksic@xemacs.org> 4893 4894 * html-url.c (get_urls_html): Parse the appropriate flags to 4895 html-parse.c. 4896 4897 * html-parse.c (map_html_tags): Accept FLAGS from the caller 4898 instead of examining OPT. 4899 49002003-10-08 Hrvoje Niksic <hniksic@xemacs.org> 4901 4902 * html-url.c (find_tag): Switch to binary search. 4903 49042003-10-08 Hrvoje Niksic <hniksic@xemacs.org> 4905 4906 * main.c (print_help): Fix typo; stured -> stored. 4907 49082003-10-08 Hrvoje Niksic <hniksic@xemacs.org> 4909 4910 * getopt.c: Add definitions of getopt_long and getopt_long_only. 4911 49122003-10-08 Hrvoje Niksic <hniksic@xemacs.org> 4913 4914 * config.h.in: Renamed DEBUG to ENABLE_DEBUG. ENABLE_DEBUG is, I 4915 think, a better name, because it implies that debugging output is 4916 merely possible, not "on by default", as might be construed from 4917 just DEBUG. 4918 49192003-10-08 Hrvoje Niksic <hniksic@xemacs.org> 4920 4921 * ftp.c (has_insecure_name_p): Define it here. 4922 4923 * utils.c (has_wildcards_p): Define it here. 4924 4925 * sysdep.h: Declare fnmatch-related macros here, if not using 4926 system fnmatch(). Update .c files to not declare fnmatch.h 4927 directly. 4928 4929 * cmpt.c (fnmatch): Moved here. Use it only under non-GNU libc. 4930 49312003-10-08 Hrvoje Niksic <hniksic@xemacs.org> 4932 4933 * getopt.c: Newer version, imported from Free libit. 4934 49352003-10-07 Hrvoje Niksic <hniksic@xemacs.org> 4936 4937 * cookies.c (struct cookie): Remove unused backpointer to cookie 4938 jar. 4939 49402003-10-07 Hrvoje Niksic <hniksic@xemacs.org> 4941 4942 * cmpt.c (memmove): Comment out, since it's no longer used. 4943 4944 * cookies.c (cookie_jar_generate_cookie_header): Allocate room for 4945 chains in one pass. 4946 (find_chains_of_host): Assume that the caller has allocated DEST 4947 to be sufficiently large to take all the data. 4948 (eliminate_dups): Run through the array and eliminate dups on the 4949 fly instead of using memmove. 4950 (cookie_jar_process_set_cookie): Free cookie->domain before 4951 re-setting it. 4952 49532003-10-05 Gisle Vanem <giva@bgnett.no> 4954 4955 * mswindows.c (set_sleep_mode): Fix type of 4956 _SetThreadExecutionState. 4957 49582003-10-05 Hrvoje Niksic <hniksic@xemacs.org> 4959 4960 * utils.c (file_size): Return -1 if fopen() returns NULL. Prior 4961 to this patch, wget --post-file=nosuchfile dumped core. 4962 49632003-10-04 Gisle Vanem <giva@bgnett.no> 4964 4965 * mswindows.c (run_with_timeout): Use WaitForSingleObject to wait 4966 for thread termination. 4967 49682003-10-04 Hrvoje Niksic <hniksic@xemacs.org> 4969 4970 * log.c: Use `...' in function definitions; ansi2knr will convert 4971 them to va_dcl. This allowed removal of the ugly VA_START_1 and 4972 VA_START_2 macros. 4973 49742003-10-03 Gisle Vanem <giva@bgnett.no> 4975 4976 * connect.c: And don't include them here. 4977 4978 * mswindows.h: Include winsock headers here. 4979 49802003-10-03 Hrvoje Niksic <hniksic@xemacs.org> 4981 4982 * html-parse.c (convert_and_copy): Move variable declarations 4983 before statements. 4984 49852003-10-02 Gisle Vanem <giva@bgnett.no> 4986 4987 * mswindows.c (run_with_timeout): For Windows: Run the 'fun' in a 4988 thread via a helper function. Continually query the thread's 4989 exit-code until finished or timed out. 4990 49912003-10-02 Hrvoje Niksic <hniksic@xemacs.org> 4992 4993 * wget.h (XMALLOC_ARRAY): Removed. 4994 (ALLOCA_ARRAY): Ditto. 4995 4996 * html-parse.c: Renamed alloca_p to resized. 4997 (GROW_ARRAY): Renamed DO_REALLOC_FROM_ALLOCA to GROW_ARRAY and 4998 returned it to html-parse.c, since nothing else was using it. 4999 50002003-10-02 Hrvoje Niksic <hniksic@xemacs.org> 5001 5002 * retr.c (retrieve_url): Initialize DUMMY storage for DT. Caught 5003 by valgrind. 5004 50052003-10-02 Hrvoje Niksic <hniksic@xemacs.org> 5006 5007 * html-parse.c (convert_and_copy): Handle numeric entities in 5008 hexadecimal, &#xHH. 5009 (convert_and_copy): Copy the contents directly to the pool without 5010 a stack-allocated intermediary. 5011 50122003-10-02 Hrvoje Niksic <hniksic@xemacs.org> 5013 5014 * utils.c (alarm_set): New function; use either setitimer or alarm 5015 to set up the alarm. 5016 (alarm_cancel): New function; cancel the alarm set up by 5017 alarm_set. 5018 (run_with_timeout): Use them. 5019 50202003-10-01 Hrvoje Niksic <hniksic@xemacs.org> 5021 5022 * url.c (url_parse): Don't leak memory when a reencoded URL turns 5023 out to be invalid. 5024 5025 * url.c (parse_errors): Mark error messages for translation. 5026 (url_error): Translate error messages returned to the caller. 5027 50282003-10-01 Hrvoje Niksic <hniksic@xemacs.org> 5029 5030 * ftp.c (ftp_loop_internal): Initialize TMRATE to NULL to shut up 5031 the compiler. 5032 50332003-09-26 Gisle Vanem <giva@bgnett.no> 5034 5035 * src/mswindows.c: Added ws_percenttitle() showing progress in the 5036 window titlebar. Called from retr.c. Secured ws_mypath(). 5037 5038 * windows/config.h.ms: alloca() prototype not needed. Removed 5039 "#undef ENABLE_NLS"; should be in Makefile IMHO. Moved 5040 WGET_USE_STDARG from mswindows.h to config.ms.h because of #ifdef 5041 in log.c. (MSVC's vararg.h and stdarg.h are incompatible). 5042 50432003-09-29 Aaron Hawley <Aaron.Hawley@uvm.edu> 5044 5045 * ftp.c (getftp): --spider option should now work with FTP 5046 downloads. 5047 (ftp_loop_internal): quiet reports and calculations of downloads 5048 when --spider option set, nor try deleting when --delete-after 5049 also set. 5050 (ftp_loop): --spider will skip HTML-ification of .listing file. 5051 50522003-09-26 Gisle Vanem <giva@bgnett.no> 5053 5054 * mswindows.c (read_registry): Removed. 5055 (set_sleep_mode): New function. 5056 (windows_main_junk): Call it. 5057 50582003-09-26 Gisle Vanem <giva@bgnett.no> 5059 5060 * mswindows.c (read_registry): Fix invocation of registry 5061 functions. 5062 5063 * mswindows.c (read_registry): Condition definitions of sleep and 5064 usleep with not HAVE_SLEEP and HAVE_USLEEP respectively. Define 5065 HAVE_SLEEP and HAVE_USLEEP under __DMC__. 5066 50672003-09-24 Hrvoje Niksic <hniksic@xemacs.org> 5068 5069 * url.c (url_escape_1): Revert unintentional change to lowercase 5070 xdigit escapes. 5071 (url_escape_dir): Document that this function depends on the 5072 output of url_escape_1. 5073 50742003-09-23 Hrvoje Niksic <hniksic@xemacs.org> 5075 5076 * progress.c (create_image): Print the current ETA if we're done 5077 with the download. 5078 (create_image): Change '-' display char to '+' in the progress bar. 5079 5080 * Makefile.in (clean): Remove .libs. 5081 50822003-09-23 Hrvoje Niksic <hniksic@xemacs.org> 5083 5084 * cookies.c (struct cookie): New flag domain_exact. 5085 (update_cookie_field): Skip leading dot in domain. 5086 (find_matching_chains): Match numeric addresses exactly; don't 5087 needlessly copy HOST to the stack. 5088 (matching_cookie): Added argument HOST. If cookie->domain_exact 5089 is set, check that HOST is equal to cookie->domain. 5090 (cookie_jar_load): Only use TAB as delimiter. Document the 5091 meaning of DOMAIN-FLAG. Skip leading dot in domain. 5092 (cookie_jar_load): Don't ignore DOMAIN-FLAG -- instead, set 5093 domain_exact to true if DOMAIN-FLAG is false. 5094 (save_cookies_mapper): If domain_exact is false, prepend the 5095 domain with dot, like Mozilla does. 5096 50972003-09-22 Hrvoje Niksic <hniksic@xemacs.org> 5098 5099 * progress.c (create_image): Print the initial part of the 5100 download with '-' characters, analogous to how dot progress prints 5101 the initial part with ','. 5102 5103 * hash.c (ptrhash): New function. 5104 (ptrcmp): Ditto. 5105 (hash_table_new): Default to identity hash table. 5106 51072003-09-22 Hrvoje Niksic <hniksic@xemacs.org> 5108 5109 * safe-ctype.h (_sch_test): The cast of BIT to unsigned char was 5110 broken -- _sch_istable bitmasks are 16-bit, not 8-bit! Cast BIT 5111 to unsigned short instead. 5112 51132003-09-22 Hrvoje Niksic <hniksic@xemacs.org> 5114 5115 * url.c (path_simplify): Instead of calls to memmove, handle "./" 5116 and "../" by advancing pointers. 5117 51182003-09-22 Hrvoje Niksic <hniksic@xemacs.org> 5119 5120 * retr.c (getproxy): Moved from url.c. 5121 5122 * convert.c: Split off link conversion from url.c into separate 5123 file. Also included the book-keeping stuff from recur.c. 5124 51252003-09-21 Hrvoje Niksic <hniksic@xemacs.org> 5126 5127 * init.c: Improved documentation of functions. 5128 (cmd_boolean): Attempt to make code that tries to avoid calling 5129 strcmp for "speed" a bit more readable. 5130 5131 * init.c (simple_atof): Report error on encountering non-digit, 5132 non-"." character. 5133 (simple_atoi): Replacement for myatoi(), calling interface 5134 compatible with simple_atof. Updated myatoi's callers. 5135 51362003-09-21 Bertrand Demiddelaer <bert@b3rt.org> 5137 5138 * url.c (path_simplify): Would read two bytes past the end of the 5139 string in the "./" case. 5140 51412003-09-21 Matthew J. Mellon <mellon@tymenet.com> 5142 5143 * http.c (gethttp): Recognize content-type "application/xhtml+xml" 5144 as what Wget considers "text/html". 5145 51462003-09-21 Hrvoje Niksic <hniksic@xemacs.org> 5147 5148 * connect.c (connect_with_timeout): Made timeout type double. 5149 5150 * options.h (struct options): New members read_timeout, 5151 dns_timeout, and connect_timeout. 5152 Use them. 5153 51542003-09-21 Hrvoje Niksic <hniksic@xemacs.org> 5155 5156 * init.c (simple_atof): New function. 5157 (cmd_time): Use it. 5158 (cmd_bytes): Accept things like "1.5k" and such. Use simple_atof 5159 to parse decimals. 5160 5161 * retr.c (limit_bandwidth): Adjust each sleep by the error of the 5162 previous one. 5163 51642003-09-21 Hrvoje Niksic <hniksic@xemacs.org> 5165 5166 * main.c (main): Use setoptval() for setting the options. Use 5167 run_command for `-e'. 5168 5169 * init.c (parse_line): Rewritten to return COMIND right away. 5170 Changed linkage to static. 5171 (run_wgetrc): Use the available comind when calling setval, so it 5172 doesn't have to be computed twice. 5173 (setval_internal): New function, runs the command's action without 5174 any error checking. 5175 (setoptval): New function, does what setval used to do, but exits 5176 in case of error. 5177 (run_command): New function. 5178 51792003-09-21 Hrvoje Niksic <hniksic@xemacs.org> 5180 5181 * connect.c (select_fd): Change MAXTIME's type to double. Handle 5182 its decimal part. 5183 5184 * retr.c (sleep_between_retrievals): In the random-wait case, use 5185 random_float() to wait between 0 and 2*opt.wait seconds. 5186 5187 * utils.c (run_with_timeout): Accept `double' timeouts. Correctly 5188 handle timeout values in (0, 1) range. 5189 (random_float): New function. 5190 5191 * options.h (struct options): Change the types of wait, waitretry, 5192 and timeout to double. 5193 5194 * init.c (cmd_time): Accept floating point time. 5195 51962003-09-20 Hrvoje Niksic <hniksic@xemacs.org> 5197 5198 * retr.c (get_contents): Cosmetic fixes. 5199 52002003-09-20 Hrvoje Niksic <hniksic@xemacs.org> 5201 5202 * url.c (uri_merge): Get rid of uri_merge_1. 5203 (uri_merge): Merge "foo//", "bar" as "foo//bar", not "foo///bar", 5204 i.e. don't add an extra slash merely because BASE ends with two 5205 slashes. 5206 (parse_credentials): Renamed from parse_uname. Rewrittern in 5207 standard [beg, end) calling style. 5208 (url_skip_credentials): Renamed from url_skip_uname. Made static. 5209 (url_skip_credentials): Include # and ; as terminators. Old code 5210 would mistakenly consider "http://foo.com#hniksic@iskon.hr" to 5211 contain a username. 5212 (url_skip_scheme): Removed because it was unused. 5213 (url_has_scheme): Require "scheme" to be at least one char long. 5214 52152003-09-19 Hrvoje Niksic <hniksic@xemacs.org> 5216 5217 * url.c (url_file_name): Expect NULL dir_prefix. 5218 5219 * init.c (cmd_file): Use a macro to prevent multiple #ifdef 5220 WINDOWS. 5221 (defaults): Set dir_prefix to NULL by default. 5222 52232003-09-19 Hrvoje Niksic <hniksic@xemacs.org> 5224 5225 * safe-ctype.h (_sch_test): Cast BIT to unsigned char, like latest 5226 gcc does. 5227 52282003-09-19 Hrvoje Niksic <hniksic@xemacs.org> 5229 5230 * wget.h (BOUNDED_TO_ALLOCA): Evaluate PLACE only once. 5231 (ARRAY_SIZE): Renamed to countof. All callers updated. 5232 52332003-09-19 Hrvoje Niksic <hniksic@xemacs.org> 5234 5235 * main.c (main): New option --strict-comments. 5236 5237 * html-parse.c (find_comment_end): New function: simple BM search 5238 for "-->". 5239 (map_html_tags): Use it if looking at a comment and not in strict 5240 comments mode. 5241 52422003-09-17 Aurelien Marchand <artaxerxes@users.sf.net> 5243 5244 * ftp.h: Added OS400 system in enum 5245 * ftp-basic.c: recognize OS400 systems 5246 * ftp.c: don't prepend the CWD if talking to OS400, since it 5247 breaks the change in library 5248 52492003-09-18 Hrvoje Niksic <hniksic@xemacs.org> 5250 5251 * retr.c (get_contents): Pass the correct argument to ssl_iread. 5252 52532003-09-18 Hrvoje Niksic <hniksic@xemacs.org> 5254 5255 * safe-ctype.h: Don't #define ctype.h macros to errors because 5256 that loses when someone #include's ctype.h after safe-ctype.h. 5257 52582003-09-17 Hrvoje Niksic <hniksic@xemacs.org> 5259 5260 * url.c: Undef U, W, C after use. 5261 52622003-09-17 Hrvoje Niksic <hniksic@xemacs.org> 5263 5264 * init.c (cmd_spec_restrict_file_names): Allow the OS setting to 5265 be augmented by ",nocontrol" which means don't escape the control 5266 characters, but otherwise keep OS settings. 5267 5268 * url.c (file_unsafe_char): Deleted. 5269 (append_uri_pathel): Query filechr_table directly. 5270 (filechr_table): Separated Unix, Windows, and control-unsafe 5271 characters. 5272 52732003-09-17 Hrvoje Niksic <hniksic@xemacs.org> 5274 5275 * url.c (url_escape_1): New function. 5276 (url_escape): Use it. 5277 (sync_path): Handle pathological cases where u->file and u->dir 5278 contain really strange characters. 5279 (ENCODE): Deleted. 5280 (REENCODE): Deleted. 5281 52822003-09-16 Hrvoje Niksic <hniksic@xemacs.org> 5283 5284 * url.c (url_file_name): Don't reallocate FNAME if the file 5285 doesn't exist, as is usually the case. 5286 5287 * utils.c (unique_name): New flag allow_passthrough. 5288 52892003-09-16 Hrvoje Niksic <hniksic@xemacs.org> 5290 5291 * utils.c (wtimer_sys_diff): Convert the time difference to signed 5292 __int64, then to double. This works around MS VC++ 6 which can't 5293 convert unsigned __int64 to double directly. 5294 52952003-09-16 Hrvoje Niksic <hniksic@xemacs.org> 5296 5297 * Makefile.in (clean): Also remove the core.<number> files 5298 produced by recent Linux systems. 5299 53002003-09-16 Hrvoje Niksic <hniksic@xemacs.org> 5301 5302 * http.c (post_file): Don't pad the file if it's not large 5303 enough. Bail out instead. 5304 53052003-09-15 Hrvoje Niksic <hniksic@xemacs.org> 5306 5307 * retr.c (get_contents): Reduce the buffer size to the amount of 5308 data that may pass through for one second. This prevents long 5309 sleeps when limiting bandwidth. 5310 5311 * connect.c (connect_to_one): Reduce the socket's RCVBUF when 5312 bandwidth limitation to small values is requested. 5313 53142003-09-15 Hrvoje Niksic <hniksic@xemacs.org> 5315 5316 * progress.c (update_speed_ring): Moved the speed ring update to a 5317 separate function and documented it better. 5318 5319 * progress.c: Use `double' for most timers to support granularity 5320 smaller than 1ms. 5321 53222003-09-15 Hrvoje Niksic <hniksic@xemacs.org> 5323 5324 * wget.h (XDIGIT_TO_XCHAR): Implement as index into a literal 5325 string. 5326 (XDIGIT_TO_xchar): Ditto. 5327 53282003-09-15 Hrvoje Niksic <hniksic@xemacs.org> 5329 5330 * utils.c: Change the type of timer-related functions from long to 5331 double, for better precision. On machines supporting gettimeofday 5332 the timers now work with granularity of less than one millisecond. 5333 53342003-09-15 Hrvoje Niksic <hniksic@xemacs.org> 5335 5336 * cookies.c (parse_set_cookies): Fixed the parser to handle more 5337 edge conditions. 5338 (test_cookies): New function, contains a test suite for 5339 parse_set_cookies. 5340 53412003-09-15 Hrvoje Niksic <hniksic@xemacs.org> 5342 5343 * url.c (strpbrk_or_eos): Implement as a macro under Gcc. 5344 53452003-09-15 Hrvoje Niksic <hniksic@xemacs.org> 5346 5347 * cookies.c (parse_set_cookies): Allow trailing space in 5348 set-cookies header. Also, allow any amount of whitespace, not 5349 only one character. Allow empty set-cookies header without 5350 spewing an error. 5351 53522003-09-14 Hrvoje Niksic <hniksic@xemacs.org> 5353 5354 * url.c (append_uri_pathel): Use opt.restrict_file_names when 5355 calling file_unsafe_char. 5356 5357 * init.c: New command restrict_file_names. 5358 5359 * main.c (main): New option --restrict-file-names[=windows,unix]. 5360 5361 * url.c (url_file_name): Renamed from url_filename. 5362 (url_file_name): Add directory and hostdir prefix here, not in 5363 mkstruct. 5364 (append_dir_structure): New function, does part of the work that 5365 used to be in mkstruct. Iterates over path elements in u->path, 5366 calling append_uri_pathel on each one to append it to the file 5367 name. 5368 (append_uri_pathel): URL-unescape a path element and reencode it 5369 with a different set of rules, more appropriate for handling of 5370 files. 5371 (file_unsafe_char): New function, uses a lookup table to decide 5372 whether a character should be escaped for use in file name. 5373 (append_string): New utility function. 5374 (append_char): Ditto. 5375 (file_unsafe_char): New argument restrict_for_windows, decide 5376 whether Windows file names should be escaped in run-time. 5377 5378 * connect.c: Include <stdlib.h> to get prototype for abort(). 5379 53802003-09-14 Hrvoje Niksic <hniksic@xemacs.org> 5381 5382 * utils.c (wtimer_sys_set): Extracted the code that sets the 5383 current time here. 5384 (wtimer_reset): Call it. 5385 (wtimer_sys_diff): Extracted the code that calculates the 5386 difference between two system times here. 5387 (wtimer_elapsed): Call it. 5388 (wtimer_elapsed): Don't return a value smaller than the previous 5389 one, which could previously happen when system time is set back. 5390 Instead, reset start time to current time and note the elapsed 5391 offset for future calculations. The returned times are now 5392 guaranteed to be monotonically nondecreasing. 5393 53942003-09-10 Hrvoje Niksic <hniksic@xemacs.org> 5395 5396 * host.c (lookup_host): Print the result of the DNS lookup. 5397 53982003-09-10 Hrvoje Niksic <hniksic@xemacs.org> 5399 5400 * init.c (cmd_boolean): Accept yes/no along with on/off. 5401 (cmd_lockable_boolean): Ditto. 5402 54032003-09-10 Hrvoje Niksic <hniksic@xemacs.org> 5404 5405 * init.c: New command dns_cache. 5406 5407 * main.c (main): New option --dns-cache[=off]. 5408 54092003-09-09 Hrvoje Niksic <hniksic@xemacs.org> 5410 5411 * config.h.in: Initialize HAVE_GETADDRINFO and ENABLE_IPV6. 5412 5413 * all: Use #ifdef ENABLE_IPV6 instead of the older INET6. Use 5414 HAVE_GETADDRINFO for getaddrinfo-related stuff. 5415 54162003-09-09 Hrvoje Niksic <hniksic@xemacs.org> 5417 5418 * url.c (url_parse): Return an error if the URL contains a [...] 5419 IPv6 numeric address and we don't support IPv6. 5420 54212003-09-05 Hrvoje Niksic <hniksic@xemacs.org> 5422 5423 * url.c (is_valid_ipv6_address): Modified to not require 5424 zero-terminated strings. 5425 (is_valid_ipv4_address): Ditto. 5426 54272003-09-05 Mauro Tortonesi <mauro@deepspace6.net> 5428 5429 src/url.c: added RFC 2732 compliance for URL parsing. The 5430 functions is_*_address valid are a modified version of 5431 glibc 2.3.2 inet_pton's code. 5432 54332003-09-03 Ahmon Dancy <dancy@dancysoft.com> 5434 5435 * main.c init.c options.h: Added --retry-connrefused option so 5436 that Connection Refused failures are treated as non-fatal (when 5437 trying to retrieve from busy servers). 5438 5439 * wget.h: New CONNECT_ERROR macro for encapsulating this 5440 modification. 5441 5442 * ftp.c http.c : Use CONNECT_ERROR macro in places where 5443 ECONNREFUSED was checked. 5444 54452003-01-11 Ian Abbott <abbotti@mev.co.uk> 5446 5447 * ftp.c (ftp_retrieve_glob): Reject insecure filenames as determined 5448 by calling new function has_insecure_name_p. This is based on a 5449 patch by Red Hat. 5450 5451 * fnmatch.c (has_insecure_name_p): New function: returns non-zero 5452 if filename starts with `/' or contains `../' and is therefore 5453 considered insecure. 5454 5455 * fnmatch.h: Declare has_insecure_name_p(). 5456 54572002-08-03 Hrvoje Niksic <hniksic@xemacs.org> 5458 5459 * init.c (cmd_file): Allocate RESULT correctly. 5460 54612002-07-24 Hrvoje Niksic <hniksic@xemacs.org> 5462 5463 * recur.c (retrieve_tree): Check whether downloaded_html_set is 5464 non-NULL before using it. 5465 54662002-05-27 Hrvoje Niksic <hniksic@arsdigita.com> 5467 5468 * html-parse.c (NAME_CHAR_P): Allow almost any character here. 5469 54702002-05-24 Hrvoje Niksic <hniksic@arsdigita.com> 5471 5472 * progress.c (bar_set_params): Fall back to dot progress if the 5473 terminal type is "emacs". 5474 54752002-05-20 Hrvoje Niksic <hniksic@arsdigita.com> 5476 5477 * log.c: Don't #undef WGET_USE_STDARG. 5478 54792002-05-16 Hrvoje Niksic <hniksic@arsdigita.com> 5480 5481 * hash.c (prime_size): Store the offset of the prime number in the 5482 prime table. When searching, start with the given offset. 5483 (hash_table_new): Pass the pointer to ht->prime_offset to 5484 prime_size. 5485 (grow_hash_table): Ditto. 5486 (prime_size): Make 13 the first prime to make empty hash tables 5487 slightly smaller. 5488 54892002-05-16 Ian Abbott <abbotti@mev.co.uk> 5490 5491 * recur.c (download_child_p): Minor optimization to avoid an 5492 unnecessary additional call to schemes_are_similar_p function. 5493 54942002-05-16 Ian Abbott <abbotti@mev.co.uk> 5495 5496 * url.c (schemes_are_similar_p): New function to test enumerated 5497 scheme codes for similarity. 5498 5499 * url.h: Declare it. 5500 5501 * recur.c (download_child_p): Use it to compare schemes. This 5502 also fixes a bug that allows hosts to be spanned (without the 5503 -H option) when the parent scheme is https and the child's is 5504 http or vice versa. 5505 55062002-05-14 Bill Richardson <bill@riverstonenet.com> 5507 5508 * ftp.c (getftp): Don't ftruncate stdout. 5509 5510 * http.c (gethttp): Don't ftruncate stdout. 5511 55122002-05-09 Ian Abbott <abbotti@mev.co.uk> 5513 5514 * cmpt.c (strptime_internal): Synched with glibc-2.1.3. 5515 (get_number): Ditto. 5516 (get_alt_number): Ditto. 5517 (__isleap): New function-like macro used by strptime. 5518 (day_of_the_week): New function used by strptime. 5519 (day_of_the_year): Ditto. 5520 (__mon_yday): Now shared by mktime and strptime implementations. 5521 55222002-05-08 Hrvoje Niksic <hniksic@arsdigita.com> 5523 5524 * cookies.c (check_domain_match): Use match_tail in case 5525 insensitive mode. 5526 5527 * utils.c (match_tail): Allow the caller to specify case 5528 insensitive mode. 5529 5530 * cookies.c (store_cookie): When expiry_time is 0, print it as 5531 undefined, not indefinite. 5532 55332002-05-07 Ian Abbott <abbotti@mev.co.uk> 5534 5535 * cookies.c (cookie_jar_process_set_cookie): Do not store 5536 discarded cookie. 5537 55382002-04-21 Hrvoje Niksic <hniksic@arsdigita.com> 5539 5540 * cookies.c (check_domain_match): Allow cookies to be set for 5541 subdomains of unknown top-level domains under some circumstances. 5542 55432002-04-21 Thomas Lussnig <thomas.lussnig@bewegungsmelder.de> 5544 5545 * gen_ssl.c: 5546 - allow checking of server cert 5547 - allow defining client cert type 5548 - allow limit of ssl protocol 5549 - check more return values 5550 - added debug message on break 5551 55522002-04-21 Hrvoje Niksic <hniksic@arsdigita.com> 5553 5554 * recur.c (download_child_p): Revert order of items in check 5555 number 6 for clarity. 5556 55572002-04-20 Hrvoje Niksic <hniksic@arsdigita.com> 5558 5559 * init.c: Ditto. 5560 5561 * main.c: Ditto. 5562 5563 * http.c: Use the new interface. 5564 5565 * cookies.c: Provide an OO-style "cookie jar" interface to enable 5566 separate cookie jars. 5567 5568 * http.c (http_atotm): Declare argument as const. 5569 55702002-04-20 Hrvoje Niksic <hniksic@arsdigita.com> 5571 5572 * cookies.c (cookie_new): Default to PORT_ANY. 5573 (find_cookie_chain_exact): Only search by DOMAIN. 5574 (find_matching_cookie): Also check that PORT matches. 5575 (store_cookie): Only match the domain. 5576 (set_cookie_header_cb): When a cookie "fakes" a domain, assume it 5577 is valid for that host rather than discarding it completely. 5578 (find_matching_chains): Don't search by PORT. 5579 (matching_cookie): Also match PORT. 5580 (load_cookies): Set the port if specified, otherwise leave it as 5581 ANY. 5582 (save_cookies_mapper): Save the port if specified, otherwise leave 5583 it empty. 5584 55852002-04-19 Thomas Lussnig <thomas.lussnig@bewegungsmelder.de> 5586 5587 * init.c: The option `egdfile' was not in sort order. 5588 55892002-04-16 Hrvoje Niksic <hniksic@arsdigita.com> 5590 5591 * ftp.c (getftp): Treat directories that begin with <letter>: as 5592 absolute. 5593 (getftp): Strip trailing slashes from con->id before merging it 5594 with TARGET. 5595 55962002-04-16 Hrvoje Niksic <hniksic@arsdigita.com> 5597 5598 * http.c (gethttp): If Content-Type is not given, assume 5599 text/html. 5600 56012002-04-15 Hrvoje Niksic <hniksic@arsdigita.com> 5602 5603 * recur.c (download_child_p): Don't ignore rejection of HTML 5604 documents that are themselves leaves of recursion. 5605 56062002-04-15 Ian Abbott <abbotti@mev.co.uk> 5607 5608 Makefile.in: Updated several dependencies for object files to take 5609 account of nested include files. 5610 56112002-04-15 Ian Abbott <abbotti@mev.co.uk> 5612 5613 Makefile.in: The target `connect$o' (connect.o) now depends on 5614 `utils.h' 5615 56162002-04-15 Ian Abbott <abbotti@mev.co.uk> 5617 5618 * host.c (SET_H_ERRNO): New function-like macro to set `h_errno'. 5619 (gethostbyname_with_timeout): Use it. 5620 5621 * utils.c: Don't define `SETJMP()', `run_with_timeout_env' or 5622 `abort_run_with_timeout()' when `USE_SIGNAL_TIMEOUT' is undefined. 5623 56242002-04-15 Hrvoje Niksic <hniksic@arsdigita.com> 5625 5626 * host.c (getaddrinfo_with_timeout): New function. 5627 (gethostbyname_with_timeout): Ditto. 5628 (lookup_host): Use them. 5629 56302002-04-14 Hrvoje Niksic <hniksic@arsdigita.com> 5631 5632 * utils.c (number_to_string): Handle the case when n < -INT_MAX. 5633 56342002-04-14 Hrvoje Niksic <hniksic@arsdigita.com> 5635 5636 * init.c (comind): Use a marginally faster implementation of 5637 binary search. To quote Martin Buchholz, "a nanosecond saved is a 5638 nanosecond earned." 5639 56402002-04-14 Hrvoje Niksic <hniksic@arsdigita.com> 5641 5642 * main.c (print_help): Document `--post-data' and `--post-file'. 5643 56442002-04-14 Hrvoje Niksic <hniksic@arsdigita.com> 5645 5646 * http.c (gethttp): Ditto. 5647 5648 * retr.c (retrieve_url): Initialize variables to appease the 5649 compiler. 5650 5651 * gen_sslfunc.c (ssl_iread): Don't handle EINTR when calling 5652 select_fd. 5653 (ssl_iwrite): Ditto. 5654 5655 * connect.c (select_fd): Rewrite to handle EINTR. Set errno to 5656 ETIMEDOUT in case of timeout. 5657 (iread): No need to handle EINTR when calling select_fd. 5658 (iwrite): Ditto. 5659 56602002-04-14 Hrvoje Niksic <hniksic@arsdigita.com> 5661 5662 * retr.c (retrieve_url): Make sure that POST is not honored for 5663 redirections. 5664 5665 * http.c (gethttp): Send the POST data when requested. 5666 (post_file): New function. 5667 (gethttp): Use it. 5668 5669 * main.c (main): Ditto. 5670 5671 * init.c: Add new options. 5672 5673 * options.h (struct options): New options post_data and 5674 post_file_name. 5675 56762002-04-14 Hrvoje Niksic <hniksic@arsdigita.com> 5677 5678 * connect.c (connect_with_timeout): Firing SIGALRM can result in 5679 connect() exiting with EINTR. Treat EINTR the same as ETIMEDOUT. 5680 56812002-04-13 Hrvoje Niksic <hniksic@arsdigita.com> 5682 5683 * connect.c (connect_with_timeout): Use it. 5684 5685 * utils.c (run_with_timeout): New function. 5686 56872002-04-13 Hrvoje Niksic <hniksic@arsdigita.com> 5688 5689 * url.c (getproxy): Accept a struct url argument. This obviates 5690 the need for USE_PROXY_P. 5691 5692 * retr.c (retrieve_url): Allow proxy to be a non-FTP URL. 5693 5694 * ftp.c (getftp): Recognize FWTK-style proxy. 5695 56962002-04-12 Hrvoje Niksic <hniksic@arsdigita.com> 5697 5698 * config.h.in: Only define _VA_LIST when compiled with gcc. 5699 57002002-04012 Ian Abbott <abbotti@mev.co.uk> 5701 5702 * http.c (http_loop): Compensate for MS Windows two-second 5703 granularity of file modification time when comparing timestamps. 5704 5705 * ftp.c (ftp_retrieve_list): Ditto. 5706 57072002-04-12 Ian Abbott <abbotti@mev.co.uk> 5708 5709 * utils.c (has_html_suffix_p): New function to test filename for 5710 common html extensions. 5711 5712 * utils.h: Declare it. 5713 5714 * http.c (http_loop): Use it instead of previous test. 5715 5716 * retr.c (retrieve_url): Ditto. 5717 5718 * recur.c (download_child_p): Ditto. 5719 57202002-04-12 Hrvoje Niksic <hniksic@arsdigita.com> 5721 5722 * config.h.in: Define _VA_LIST on Solaris to prevent stdio.h from 5723 declaring va_list. 5724 From Kevin Rodgers <kevinr@ihs.com>. 5725 57262002-04-12 Ian Abbott <abbotti@mev.co.uk> 5727 5728 * Makefile.in: Specify libtool mode explicitly when linking. 5729 57302002-04-12 Hrvoje Niksic <hniksic@arsdigita.com> 5731 5732 * connect.c (connect_with_timeout): New function. 5733 (connect_to_one): Use it. 5734 5735 * config.h.in: Add stubs for HAVE_SIGSETJMP, HAVE_SIGBLOCK, and 5736 HAVE_SETJMP_H. 5737 57382002-04-11 Hrvoje Niksic <hniksic@arsdigita.com> 5739 5740 * log.c: Set WGET_USE_STDARG if __STDC__ is defined and stdarg.h 5741 is present. 5742 57432002-04-11 Hrvoje Niksic <hniksic@arsdigita.com> 5744 5745 * progress.c (bar_create): If INITIAL is larger than TOTAL, fix 5746 TOTAL. 5747 (bar_finish): Likewise. 5748 57492002-04-11 Hrvoje Niksic <hniksic@arsdigita.com> 5750 5751 * html-url.c (tag_handle_form): New function. Pick up form 5752 actions and mark them for conversion only. 5753 57542002-04-11 Hrvoje Niksic <hniksic@arsdigita.com> 5755 5756 * progress.c (struct progress_implementation): Use PARAMS when 5757 declaring the parameters of *create, *update, *finish, and 5758 *set_params. 5759 5760 * netrc.c: Ditto. 5761 5762 * http.c: Reformat some function definitions so that ansi2knr can 5763 read them. 5764 5765 * hash.c (struct hash_table): Use the PARAMS macro around 5766 parameters in the declaration of hash_function and test_function. 5767 (prime_size): Spell 2580823717UL and 3355070839UL as (unsigned 5768 long)0x99d43ea5 and (unsigned long)0xc7fa5177 respectively, so 5769 that pre-ANSI compilers can read them. 5770 (find_mapping): Use PARAMS when declaring EQUALS. 5771 (hash_table_put): Ditto. 5772 5773 * ftp.h: Wrap the parameters of ftp_index declaration in PARAMS. 5774 5775 * cookies.c (cookie_new): Use (unsigned long)0 instead of 0UL, 5776 which was unsupported by pre-ANSI compilers. 5777 5778 From Nelson H. F. Beebe <beebe@math.utah.edu>, for the most part. 5779 57802002-04-11 Hrvoje Niksic <hniksic@arsdigita.com> 5781 5782 * url.c (url_filename): Use compose_file_name regardless of 5783 whether opt.dirstruct is set. 5784 (mkstruct): Don't handle the query and the reencoding of DIR; that 5785 is done in compose_file_name. 5786 57872002-04-10 Hrvoje Niksic <hniksic@arsdigita.com> 5788 5789 * wget.h: Ditto for extern char *exec_name. 5790 5791 * options.h: Don't guard against OPTIONS_DEFINED_HERE -- it is 5792 perfectly legal to follow an `extern' with a non-`extern' ones, 5793 provided the types match. 5794 5795 * main.c: Don't define OPTIONS_DEFINED_HERE. 5796 57972002-04-10 Hrvoje Niksic <hniksic@arsdigita.com> 5798 5799 * progress.c (create_image): Revert to calculating ETA based on 5800 average download speed. 5801 (create_image): Don't print ETA until the download has been active 5802 for at least 3 seconds. 5803 (create_image): When ETA is not available, don't print anything. 5804 The previous version would print --:--. 5805 58062002-04-10 Hrvoje Niksic <hniksic@arsdigita.com> 5807 5808 * progress.c (bar_update): Keep updating a subinterval until it 5809 reaches or exceeds a watermark. That way the measurement will be 5810 guaranteed to span a configurable minimum of time. The current 5811 default is 3s in 30 100ms intervals. 5812 58132002-04-09 Hrvoje Niksic <hniksic@arsdigita.com> 5814 5815 * progress.c (bar_update): Maintain an array of the time it took 5816 to perform previous 30 network reads. 5817 (create_image): Calculate the download speed and ETA based on the 5818 last 30 reads, not the entire download. 5819 (create_image): Make sure that the ETA is not changed more than 5820 once per second. 5821 58222002-04-09 Ian Abbott <abbotti@mev.co.uk> 5823 5824 * mswindows.c (borland_utime): New function conditionally defined 5825 when `HACK_BCC_UTIME_BUG' is defined. A reimplementation of 5826 `utime()' as Borland's `utime()' function is broken on Windows 9x 5827 systems. (Original patch by Chin-yuan Kuo <sr1111111@yahoo.com.tw>.) 5828 58292002-04-08 Hrvoje Niksic <hniksic@arsdigita.com> 5830 5831 * ftp.c (ftp_loop): Propagate the result of ftp_retrieve_glob. 5832 58332002-03-26 Ian Abbott <abbotti@mev.co.uk> 5834 5835 * Makefile.in: Updated several dependencies for object files. 5836 58372002-03-20 Ian Abbott <abbotti@mev.co.uk> 5838 5839 * mswindows.c: Include "utils.h". 5840 58412002-03-18 Ian Abbott <abbotti@mev.co.uk> 5842 5843 * host.h: Don't include netdb.h on windows. 5844 58452002-02-19 Hrvoje Niksic <hniksic@arsdigita.com> 5846 5847 * recur.c (retrieve_tree): Handle the case when start_url doesn't 5848 parse. 5849 58502002-02-19 Andreas Damm <andreas-sourceforge@radab.org> 5851 5852 * wget.h (DO_REALLOC_FROM_ALLOCA): Multiply with sizeof(type) when 5853 calling xmalloc and memcpy. 5854 58552002-02-19 Hrvoje Niksic <hniksic@arsdigita.com> 5856 5857 * host.h: Include Unix-specific includes #ifndef WINDOWS. 5858 Patch originally provided by Christian Lackas. 5859 58602002-02-11 Christian Lackas <delta@lackas.net> 5861 5862 * recur.c: recurive downloading for https fixed. 5863 58642002-02-19 Alan Eldridge <alane@geeksrus.net> 5865 5866 * host.h: Also include <netinet/in.h> and <sys/socket.h>. 5867 5868 * ftp-basic.c: Also include <netinet/in.h>. 5869 58702002-02-05 Ian Abbott <abbotti@mev.co.uk> 5871 5872 * http.c (gethttp): when -c used, mark already fully retrieved 5873 file as successfully retrieved. 5874 58752002-02-19 Hrvoje Niksic <hniksic@arsdigita.com> 5876 5877 * url.c (url_parse): Don't treat '?' as query string separator 5878 when parsing FTP URLs. 5879 58802002-02-01 Hrvoje Niksic <hniksic@arsdigita.com> 5881 5882 * html-url.c (tag_handle_meta): Don't crash on <meta 5883 http-equiv=refresh> where content is missing. 5884 58852002-01-31 Herold Heiko <Heiko.Herold@previnet.it> 5886 5887 * ftp-basic.c, host.c: don't include sys/socket.h, arpa/inet.h, 5888 netdb.h on windows. 5889 58902002-01-30 Hrvoje Niksic <hniksic@arsdigita.com> 5891 5892 * retr.c (retrieve_url): Remove redirection cycle detection. This 5893 is because some sites legitimately redirect the user back to the 5894 same location, e.g. after an authorization check performed by 5895 another page. MAX_REDIRECTIONS is still used to prevent infinite 5896 redirection loops. 5897 58982002-01-26 Hrvoje Niksic <hniksic@arsdigita.com> 5899 5900 * http.c (gethttp): Wrap host name in square brackets if it 5901 contains a colon. 5902 59032002-01-26 Hrvoje Niksic <hniksic@arsdigita.com> 5904 5905 * url.c (url_parse): Allow all hex digits, not only decimal ones, 5906 to form an IP address. 5907 59082002-01-26 Hrvoje Niksic <hniksic@arsdigita.com> 5909 5910 * url.c (urlchr_table): Make square braces reserved, so we can 5911 parse http://[::1]/. 5912 (url_parse): Handle host in braces. 5913 (url_string): If url->host contains colons, wrap it in braces. 5914 59152002-01-24 Hrvoje Niksic <hniksic@arsdigita.com> 5916 5917 * connect.c (resolve_bind_address): New function. 5918 (connect_to_one): Use it. 5919 (bindport): Ditto. 5920 5921 * init.c: Don't resolve bind-address here. 5922 5923 * host.c (wget_sockaddr_set_address): Would bug out with ADDR == NULL. 5924 59252002-01-24 Hrvoje Niksic <hniksic@arsdigita.com> 5926 5927 * host.c (lookup_host): Use sizeof(ip4_address) to calculate the 5928 offset. 5929 (address_list_new): Use map_ipv4_to_ip. 5930 (wget_sockaddr_set_address): Convert ADDR to IPv4 before using it 5931 in IPv4 context. 5932 59332002-01-24 Hrvoje Niksic <hniksic@arsdigita.com> 5934 5935 * source: Integrated IPv6 support. 5936 Written by Thomas Lussnig <thomas.lussnig@bewegungsmelder.de>. 5937 59382002-01-15 Ian Abbott <abbotti@mev.co.uk> 5939 5940 * init.c (cmd_file): Change `\' to `/' for Windows (yes, really!) 5941 (cmd_directory): New function. Like cmd_file(), but strips 5942 trailing directory separators. 5943 (commands): Change action for "dirprefix" from `cmd_file' to 5944 `cmd_directory'. 5945 5946 * utils.c (make_directory): Allow intermediate `mkdir' calls to 5947 fail, as not all path components that do not exist should be 5948 directory components, especially under Windows. 5949 59502002-01-17 Hrvoje Niksic <hniksic@arsdigita.com> 5951 5952 * netrc.c (parse_netrc): Skip leading whitespace before testing 5953 whether the line is empty. Empty lines still contain the line 5954 terminator. 5955 59562002-01-15 Hrvoje Niksic <hniksic@arsdigita.com> 5957 5958 * gen_sslfunc.c (ssl_iread): Call select on the file descriptor 5959 only if no data is pending in SSL buffers. 5960 From tony@bluetail.com. 5961 59622002-01-14 Hrvoje Niksic <hniksic@arsdigita.com> 5963 5964 * headers.c (header_get): Strip trailing whitespace from the 5965 header. 5966 59672002-01-14 Hrvoje Niksic <hniksic@arsdigita.com> 5968 5969 * url.c (parse_uname): URL-decode *USER and *PASSWD. 5970 59712002-01-07 Ian Abbott <abbotti@mev.co.uk> 5972 5973 * url.c (uri_merge_1): Deal with "net path" relative URL (one that 5974 starts with "//"). 5975 59762002-01-14 Hrvoje Niksic <hniksic@arsdigita.com> 5977 5978 * http.c (gethttp): Invalidate SOCK if get_contents encountered an 5979 error. 5980 59812001-12-24 Hrvoje Niksic <hniksic@arsdigita.com> 5982 5983 * version.c: Wget 1.8.1 is released. 5984 59852001-12-19 Hrvoje Niksic <hniksic@arsdigita.com> 5986 5987 * version.c: Wget 1.8.1-pre3 is released. 5988 59892001-12-19 Hrvoje Niksic <hniksic@arsdigita.com> 5990 5991 * recur.c (retrieve_tree): Enqueue the canonical representation of 5992 start_url, so that the test against dl_url_file_map works. 5993 59942001-12-19 Hrvoje Niksic <hniksic@arsdigita.com> 5995 5996 * log.c (logputs): Check for requested verbosity before printing 5997 anything. 5998 59992001-12-19 Hrvoje Niksic <hniksic@arsdigita.com> 6000 6001 * html-url.c (tag_handle_link): Treat the "shortcut icon" link as 6002 inline. 6003 60042001-12-18 Hrvoje Niksic <hniksic@arsdigita.com> 6005 6006 * recur.c (retrieve_tree): Make a copy of file obtained from 6007 dl_url_file_map because the code calls xfree(file) later. 6008 60092001-12-18 Hrvoje Niksic <hniksic@arsdigita.com> 6010 6011 * recur.c (register_html): Maintain a hash table of HTML files 6012 along with the list. Disallow duplicates. 6013 (retrieve_tree): Use downloaded_html_set to check whether the file 6014 found in dl_url_file_map is an HTML file, and descend into it if 6015 so. 6016 (convert_all_links): Don't guard against duplicates in 6017 downloaded_html_list, since they are no longer possible. 6018 60192001-12-18 Ian Abbott <abbotti@mev.co.uk> 6020 6021 * recur.c (retrieve_tree): Pass on referring URL when retrieving 6022 recursed URL. 6023 60242001-12-17 Hrvoje Niksic <hniksic@arsdigita.com> 6025 6026 * version.c: Wget 1.8.1-pre2 is released. 6027 60282001-12-17 Hrvoje Niksic <hniksic@arsdigita.com> 6029 6030 * retr.c (sleep_between_retrievals): Simplify indentation. 6031 60322001-12-17 Hrvoje Niksic <hniksic@arsdigita.com> 6033 6034 * gen_sslfunc.c (ssl_init_prng): Use random_number to get a byte 6035 of "randomness" at a time. 6036 (ssl_init_prng): Don't seed the PRNG; random_number will do that. 6037 6038 * retr.c (sleep_between_retrievals): Use it. Make sure that the 6039 random amount averages in opt.wait. 6040 (sleep_between_retrievals): Don't seed the PRNG; random_number 6041 will do that. 6042 6043 * utils.c (random_number): New function. 6044 60452001-12-14 Hrvoje Niksic <hniksic@arsdigita.com> 6046 6047 * url.c (path_simplify): Move here from utils.c, and make static. 6048 60492001-12-13 Hrvoje Niksic <hniksic@arsdigita.com> 6050 6051 * init.c (wgetrc_file_name): Print correct message when loading 6052 getenv("WGETRC") fails. 6053 60542001-12-13 Hrvoje Niksic <hniksic@arsdigita.com> 6055 6056 * recur.c (register_download): Don't abort when one URL references 6057 two different files. 6058 60592001-12-13 Hrvoje Niksic <hniksic@arsdigita.com> 6060 6061 * http.c (gethttp): Check for conn->scheme, not u->scheme, before 6062 calling ssl_iwrite. 6063 60642001-12-13 Hrvoje Niksic <hniksic@arsdigita.com> 6065 6066 * version.c: Wget 1.8.1-pre1 is released. 6067 60682001-12-13 Hrvoje Niksic <hniksic@arsdigita.com> 6069 6070 * res.c (matches): Fix broken URL in the docstring. 6071 60722001-12-13 Hrvoje Niksic <hniksic@arsdigita.com> 6073 6074 * html-url.c (tag_url_attributes): Mark <embed href=...> as 6075 external. 6076 60772001-12-12 Hrvoje Niksic <hniksic@arsdigita.com> 6078 6079 * url.c (get_urls_file): Cosmetic changes. 6080 60812001-12-12 Hrvoje Niksic <hniksic@arsdigita.com> 6082 6083 * html-url.c (append_one_url): Resurrect warning when unable to 6084 resolve a relative link. 6085 60862001-12-12 Hrvoje Niksic <hniksic@arsdigita.com> 6087 6088 * html-url.c (collect_tags_mapper): Break into several functions. 6089 (tag_url_attributes): Collect <embed href=...>. 6090 60912001-12-11 Hrvoje Niksic <hniksic@arsdigita.com> 6092 6093 * host.c: New type ipv4_address. Use it consistently instead of 6094 `unsigned char[4]' and `unsigned char *'. 6095 (pretty_print_address): Accept a `const void *', to require even 6096 less casting. 6097 60982001-12-11 Hrvoje Niksic <hniksic@arsdigita.com> 6099 6100 * ftp-ls.c (ftp_parse_vms_ls): Fix obvious memory leaks. 6101 61022001-12-10 Hrvoje Niksic <hniksic@arsdigita.com> 6103 6104 * main.c (main): Initialize progress after fork_to_background, so 6105 that it knows when to use dots. 6106 6107 * mswindows.c (ws_hangup): Call log_request_redirect_output. 6108 6109 * utils.c (fork_to_background): Print the PID of the child 6110 process. 6111 6112 * log.c (log_request_redirect_output): Set a flag that output 6113 redirection has been requested. Doing anything else in a signal 6114 handler is unsafe. 6115 (check_redirect_output): New function: check whether redirection 6116 has been requested and, if so, call redirect_output(). 6117 (logputs): Call check_redirect_output. 6118 (logprintf): Ditto. 6119 (debug_logprintf): Ditto. 6120 (redirect_output): Print clearer messages. 6121 6122 * main.c (redirect_output_signal): Don't call 6123 redirect_output_signal directly. Instead, call 6124 log_request_redirect_output. 6125 6126 * utils.c (memfatal): Ditto. 6127 6128 * progress.c (display_image): Use it. 6129 6130 * log.c (log_set_save_context): New function: allow the caller to 6131 turn off saving log context lines. 6132 61332001-12-10 Hrvoje Niksic <hniksic@arsdigita.com> 6134 6135 * host.c (address_list_set_faulty): Uncomment a sanity check. 6136 61372001-12-10 Hrvoje Niksic <hniksic@arsdigita.com> 6138 6139 * utils.c (long_to_string): Return a pointer after where the 6140 number ends. 6141 (long_to_string): Rename to number_to_string. 6142 61432001-12-10 Hrvoje Niksic <hniksic@arsdigita.com> 6144 6145 * utils.c (path_simplify): Correctly handle the unlikely case that 6146 b starts out as path + 1. 6147 61482001-12-10 Hrvoje Niksic <hniksic@arsdigita.com> 6149 6150 * utils.c (path_simplify): Rewrite, with better comments, and 6151 without the use of strcpy to move overlapping blocks. 6152 61532001-12-09 Hrvoje Niksic <hniksic@arsdigita.com> 6154 6155 * init.c (cmd_spec_progress): Resurrect. Check whether VAL is a 6156 valid progress type before setting it. 6157 61582001-12-09 Hrvoje Niksic <hniksic@arsdigita.com> 6159 6160 * main.c (main): Remove stray debugging message. 6161 61622001-12-09 Hrvoje Niksic <hniksic@arsdigita.com> 6163 6164 * progress.c (create_image): Fix ETA padding when hours are prined. 6165 61662001-12-09 Hrvoje Niksic <hniksic@arsdigita.com> 6167 6168 * version.c: Wget 1.8 is released. 6169 61702001-12-09 Hrvoje Niksic <hniksic@arsdigita.com> 6171 6172 * url.c (reencode_string): Declare static. 6173 6174 * res.c (registered_specs): Declare static. 6175 6176 * progress.c (current_impl_locked): Declare static. 6177 6178 * log.c (flush_log_p): Declare static. 6179 (needs_flushing): Ditto. 6180 6181 * http.c (digest_authentication_encode): Declare static. 6182 6183 * html-url.c (init_interesting): Declare static. 6184 6185 * host.c (host_name_addresses_map): Declare static. 6186 6187 * cookies.c (find_matching_chains): Declare static. 6188 6189 * ftp-ls.c (ftp_parse_vms_ls): Warn about the memory leak 6190 indicated by lint. 6191 6192 * utils.c (path_simplify): Remove unused variable STUB_CHAR. 6193 6194 * host.c (address_list_set_faulty): Document that INDEX is 6195 currently unused. 6196 6197 * url.c (rewrite_shorthand_url): Remove unused variable PATH. 6198 61992001-12-08 Hrvoje Niksic <hniksic@arsdigita.com> 6200 6201 * version.c: Wget 1.8-pre2 is released. 6202 62032001-12-06 Hrvoje Niksic <hniksic@arsdigita.com> 6204 6205 * progress.c (progress_handle_sigwinch): Set up the signal again. 6206 6207 * utils.c: Include <sys/termios.h>, where Solaris defines 6208 TIOCGWINSZ. 6209 6210 * progress.c (bar_create): Don't use the last column on the screen. 6211 (create_image): Pad ETA to constant size. Pad SIZE to nine digits 6212 only until it exceeded them. 6213 62142001-12-06 Hrvoje Niksic <hniksic@arsdigita.com> 6215 6216 * version.c: Wget 1.8-pre1 is released. 6217 62182001-12-06 Hrvoje Niksic <hniksic@arsdigita.com> 6219 6220 * progress.c (progress_create): Make sure that, when the output is 6221 redirected, the progress implementation gets changed to the 6222 fallback one. 6223 (bar_set_params): Set current_impl_locked to 1 when "force" is 6224 specified. 6225 (progress_create): Don't change the progress implementation if 6226 current_impl_locked is non-zero. 6227 6228 * main.c (redirect_output_signal): Call 6229 progress_schedule_redirect. 6230 6231 * progress.c (progress_schedule_redirect): New function. 6232 62332001-12-06 Hrvoje Niksic <hniksic@arsdigita.com> 6234 6235 * log.c (logvprintf): Restructure to allow being called multiple 6236 times. 6237 (logprintf): Call logvprintf in a loop. 6238 (debug_logprintf): Ditto. 6239 62402001-12-06 Hrvoje Niksic <hniksic@arsdigita.com> 6241 6242 * gen_sslfunc.c (ssl_init_prng): Allow the user to disable EGD by 6243 setting egd_file it to empty string. 6244 6245 * main.c (main): Change the option name from --sslegdsock to 6246 --egd-file. 6247 62482001-12-06 Hrvoje Niksic <hniksic@arsdigita.com> 6249 6250 * gen_sslfunc.c (ssl_init_prng): Make the printed message 6251 translatable. 6252 62532001-12-06 Hrvoje Niksic <hniksic@arsdigita.com> 6254 6255 * url.c (scheme_disable): New function. 6256 6257 * main.c (main): Call ssl_init_prng from here rather than from 6258 init_ssl, so that it has a chance to disable support for https 6259 before a URL has been resolved. 6260 6261 * gen_sslfunc.c (ssl_init_prng): Seed with rand() if all else 6262 failed. 6263 (ssl_init_prng): Disable support for https if seeding the PRNG 6264 fails. 6265 62662001-12-06 Hrvoje Niksic <hniksic@arsdigita.com> 6267 6268 * utils.c (read_whole_line): Handle lines beginning with \0. 6269 62702001-12-05 Hrvoje Niksic <hniksic@arsdigita.com> 6271 6272 * recur.c (convert_all_links): Guard against duplicates in 6273 downloaded_html_files. 6274 (register_download): Don't invalidate similar-looking URLs. 6275 (match_except_index): New function. 6276 62772001-12-05 Hrvoje Niksic <hniksic@arsdigita.com> 6278 6279 * utils.c (path_simplify): Document with test cases. 6280 62812001-12-04 Hrvoje Niksic <hniksic@arsdigita.com> 6282 6283 * gen_sslfunc.c: Ditto. 6284 6285 * rbuf.c: Include <string.h>. 6286 62872001-12-04 Hrvoje Niksic <hniksic@arsdigita.com> 6288 6289 * recur.c (retrieve_tree): Check whether the URL was already 6290 downloaded before downloading it again. 6291 (descend_child_p): Renamed to download_child_p. 6292 (register_download): When one URL is downloaded to a file already 6293 "owned" by another URL, delete all references that map any URL to 6294 that file. 6295 (register_delete_file): New function. 6296 (retrieve_tree): Use it after deleting a file. 6297 6298 * url.c (url_parse): Re-canonicalize the URL also if the path is 6299 empty, so that e.g. "http://www.server.com" -> 6300 "http://www.server.com/". 6301 (lowercase_str): Use ISUPPER instead of !ISLOWER. 6302 6303 * retr.c (retrieve_url): Use the canonical URL form when calling 6304 register_download(). 6305 63062001-12-04 Ian Abbott <abbotti@mev.co.uk> 6307 6308 * snprintf.c (dopr): Use `unsigned int' as the second argument to 6309 va_arg when casting to `unsigned short' is intended. 6310 63112001-12-04 Herold Heiko <Heiko.Herold@previnet.it> 6312 6313 * gen_sslfunc.c: on windows provide ssl crypto random 6314 initialization through RAND_screen(); could possibly 6315 be not enough for strong ssl communication (see the 6316 relevant manual page from the openssl package). 6317 63182001-12-04 Hrvoje Niksic <hniksic@arsdigita.com> 6319 6320 * url.c (local_quote_string): Reenable quoting of question marks, 6321 but only when `--html-extension' is used. 6322 63232001-12-03 Hrvoje Niksic <hniksic@arsdigita.com> 6324 6325 * version.c: Wget 1.8-beta3 is released. 6326 63272001-12-03 Hrvoje Niksic <hniksic@arsdigita.com> 6328 6329 * snprintf.c (dopr): Cast the result of va_arg to short int and 6330 short unsigned int where these types are expected to be used. 6331 63322001-12-03 Hrvoje Niksic <hniksic@arsdigita.com> 6333 6334 * snprintf.c (dopr): Replace `short int' and `unsigned short int' 6335 with `int' when using it as the second argument to `va_arg'. 6336 63372001-12-03 Hrvoje Niksic <hniksic@arsdigita.com> 6338 6339 * host.c (address_list_new_one): New function. 6340 (lookup_host): Use it. 6341 63422001-12-03 Andre Majorel <amajorel@teaser.fr> 6343 6344 * host.c (lookup_host): Don't initialize TMPSTORE directly because 6345 it's not legal C. 6346 63472001-12-03 Hrvoje Niksic <hniksic@arsdigita.com> 6348 6349 * ftp-basic.c (ftp_port): Don't return HOSTERR if we fail getting 6350 the socket data. 6351 6352 * ftp.c: Ditto. 6353 6354 * http.c: No need to declare h_errno. 6355 6356 * host.c: Declare h_errno. 6357 63582001-12-02 Hrvoje Niksic <hniksic@arsdigita.com> 6359 6360 * utils.c (file_merge): If BASE doesn't contain a slash, just 6361 return a copy of FILE. 6362 63632001-12-02 Hrvoje Niksic <hniksic@arsdigita.com> 6364 6365 * version.c: Wget 1.8-beta2 is released. 6366 63672001-12-01 Hrvoje Niksic <hniksic@arsdigita.com> 6368 6369 * ftp.c (getftp): When PWD fails, assume "/". 6370 6371 * ftp-basic.c (ftp_syst): Fix indentation. 6372 63732001-12-01 Hrvoje Niksic <hniksic@arsdigita.com> 6374 6375 * url.c (get_urls_file): If opt.base_href is specified, merge each 6376 URL with the base. 6377 63782001-12-01 Hrvoje Niksic <hniksic@arsdigita.com> 6379 6380 * main.c (print_help): Don't document the removed `-nh'. 6381 63822001-12-01 Hrvoje Niksic <hniksic@arsdigita.com> 6383 6384 * url.c (url_full_path): Document better. 6385 6386 * http.c (gethttp): Use the full path when creating digest 6387 authorization. 6388 63892001-12-01 Hrvoje Niksic <hniksic@arsdigita.com> 6390 6391 * cookies.c (path_matches): Return 0 if PREFIX doesn't begin with 6392 '/'. 6393 63942001-12-01 Hrvoje Niksic <hniksic@arsdigita.com> 6395 6396 * cookies.c (path_matches): FULL_PATH doesn't begin with '/', but 6397 PREFIX does. 6398 63992001-12-01 Hrvoje Niksic <hniksic@arsdigita.com> 6400 6401 * cookies.c (check_domain_match): Reimplement to match Netscape's 6402 "preliminary specification" for cookies. 6403 64042001-12-01 Hrvoje Niksic <hniksic@arsdigita.com> 6405 6406 * url.c (replace_attr_refresh_hack): New function. 6407 (convert_links): Call replace_attr_refresh_hack for Refresh 6408 links. It will add the "TMOUT; URL=" junk before the link. 6409 6410 * html-url.c (collect_tags_mapper): Set ID to the ID of the 6411 "content" attribute, not "http-equiv". 6412 (collect_tags_mapper): Don't use OFFSET to hack the raw_* values; 6413 instead, store the information that this entry belongs to a 6414 "refresh" link. 6415 64162001-12-01 Hrvoje Niksic <hniksic@arsdigita.com> 6417 6418 * version.c: Wget 1.8-beta1 is released. 6419 64202001-12-01 Hrvoje Niksic <hniksic@arsdigita.com> 6421 6422 * recur.c (retrieve_tree): Allow -p retrievals to exceed maximum 6423 depth by more than one. 6424 64252001-11-30 Hrvoje Niksic <hniksic@arsdigita.com> 6426 6427 * retr.c (retrieve_url): Don't allow more than 20 redirections. 6428 64292001-11-30 Hrvoje Niksic <hniksic@arsdigita.com> 6430 6431 * recur.c (retrieve_tree): Skip the non-inline entries when 6432 enqueuing the children of a leaf HTML node in -p mode. 6433 (descend_url_p): Ignore opt.no_parent when in -p mode and UPOS is 6434 "inline". 6435 6436 * html-url.c (get_urls_html): Don't accept dash_p_leaf_HTML. 6437 (collect_tags_mapper): When an entry is "inline", mark it as such. 6438 6439 * recur.c (descend_url_p): Fix test when checking for 6440 acceptance/rejection rules. 6441 64422001-10-31 Daniel BODEA <dali@dali-designs.com> 6443 6444 * netrc.c (search_netrc): When slack_default is 0, still look for 6445 an account with matching password, just not the "default account". 6446 HTTP Authorization using .netrc should now work as expected. 6447 64482001-11-30 T. Bharath <TBharath@responsenetworks.com> 6449 6450 * http.c (persistent_available_p): Call SHUTDOWN_SSL if 6451 test_socket_open fails. 6452 64532001-11-30 Hrvoje Niksic <hniksic@arsdigita.com> 6454 6455 * progress.c (display_image): Just print one CR to reset the 6456 cursor position. 6457 64582001-11-30 Christian Fraenkel <c.fraenkel@gmx.net> 6459 6460 * init.c: New command `ssl_egd_sock'. 6461 6462 * main.c (main): New option `--sslegdsock'. 6463 6464 * gen_sslfunc.c (ssl_init_prng): Seed the RNG using EGD. 6465 64662001-11-29 Hrvoje Niksic <hniksic@arsdigita.com> 6467 6468 * cmpt.c (memmove): Include a simple memmove implementation. 6469 64702001-11-29 Hrvoje Niksic <hniksic@arsdigita.com> 6471 6472 * headers: Guard against header files being included twice. 6473 64742001-11-29 Hrvoje Niksic <hniksic@arsdigita.com> 6475 6476 * gen-md5.c: Use unsigned char * as the buffer argument to 6477 gen_md5_update. 6478 64792001-11-29 Hrvoje Niksic <hniksic@arsdigita.com> 6480 6481 * connect.h: Declare select_fd. 6482 64832001-11-29 Hrvoje Niksic <hniksic@arsdigita.com> 6484 6485 * recur.c (descend_url_p): When resolving no_parent, compare with 6486 start_url, not parent url. Otherwise link from /a/b/ to /a/c/ 6487 wouldn't be followed, although the download started from /a/. 6488 64892001-01-23 Herold Heiko <Heiko.Herold@previnet.it> 6490 6491 * config.h.ms, mswindows.h: defined HAVE_ISATTY, use _isatty for 6492 MS VC; somebody with Borland compiler please check and provide 6493 patch if possible; 6494 6495 * cmpt.c: provided a usleep emulation. 6496 64972001-11-29 Hrvoje Niksic <hniksic@arsdigita.com> 6498 6499 * host.c (address_list_new): Initialize al->faulty. 6500 65012001-11-29 Hrvoje Niksic <hniksic@arsdigita.com> 6502 6503 * http.c (http_process_range): Accept the broken output of 6504 "JavaWebServer/1.1.1". 6505 65062001-11-28 Hrvoje Niksic <hniksic@arsdigita.com> 6507 6508 * progress.c (dot_set_params): If PARAMS is unspecified, use 6509 dot_style, if available. 6510 6511 * init.c: Ditto. 6512 6513 * main.c (main): Resurect --dot-style. 6514 6515 * progress.c (dot_finish): Print the quantity if we're left at the 6516 beginning of a row. 6517 65182001-11-27 Hrvoje Niksic <hniksic@arsdigita.com> 6519 6520 * cmpt.c (random): Removed. 6521 6522 * retr.c (sleep_between_retrievals): Use the more portable rand() 6523 instead of random(). 6524 65252001-11-27 Ian Abbott <abbotti@mev.co.uk> 6526 6527 * retr.c (retrieve_from_file): Initialize `new_file' to NULL to 6528 prevent seg fault. 6529 65302001-11-27 Hrvoje Niksic <hniksic@arsdigita.com> 6531 6532 * connect.c (connect_to_many): Use address_list_set_faulty to 6533 prevent the faulty address from being reused. 6534 6535 * host.c (address_list_set_faulty): New function. 6536 (address_list_get_bounds): New function, instead of 6537 address_list_count. 6538 65392001-11-27 Hrvoje Niksic <hniksic@arsdigita.com> 6540 6541 * url.c (convert_links): Don't translate %d-%d. 6542 6543 * main.c (print_help): Remove stray HAVE_RANDOM code. 6544 65452001-11-27 Hrvoje Niksic <hniksic@arsdigita.com> 6546 6547 * ftp.c (getftp): Improve output after sending PASV. Don't 6548 attempt to "look up" the IP address we already know; call 6549 connect_to_one directly. 6550 65512001-11-27 Hrvoje Niksic <hniksic@arsdigita.com> 6552 6553 * progress.c: Change the default progress implementation to "bar". 6554 65552001-11-27 Hrvoje Niksic <hniksic@arsdigita.com> 6556 6557 * progress.c (bar_create): Print two newlines. 6558 65592001-11-27 Hrvoje Niksic <hniksic@arsdigita.com> 6560 6561 * cmpt.c (random): New function, a simple-minded replacement for 6562 random() on systems that don't have it. 6563 65642001-11-26 Hrvoje Niksic <hniksic@arsdigita.com> 6565 6566 * config.h.in: Put a HAVE_USLEEP stub. 6567 6568 * cmpt.c (usleep): Replacement implementation of usleep using 6569 select. 6570 6571 * init.c: New option init_rate. 6572 6573 * main.c (main): New option --limit-rate. 6574 6575 * retr.c (limit_bandwidth): New function. 6576 (get_contents): Call it to limit the bandwidth used when 6577 downloading. 6578 6579 * progress.c (dot_update): Would print the wrong download speed on 6580 rows other than the first one when the download was continued. 6581 (dot_finish): Ditto. 6582 65832001-11-26 Ian Abbott <abbotti@mev.co.uk> 6584 6585 * http.c (gethttp): fix undeclared variable 'err' when compiled 6586 with HAVE_SSL. 6587 65882001-11-26 Hrvoje Niksic <hniksic@arsdigita.com> 6589 6590 * progress.c: Don't allocate new timers; use the timing data 6591 propagated from the caller. 6592 6593 * retr.c (get_contents): Allocate and use a timer. 6594 65952001-11-26 Hrvoje Niksic <hniksic@arsdigita.com> 6596 6597 * http.c (last_host_ip): Made into an address_list. 6598 (invalidate_persistent): Release pc_last_host_ip. 6599 (register_persistent): Use lookup_host. 6600 (persistent_available_p): Check for equality of hosts using 6601 address_list_match_all. Call address_list_release. 6602 (http_cleanup): New function. 6603 6604 * ftp.c (getftp): Use lookup_host and connect_to_many. 6605 6606 * http.c (gethttp): Use lookup_host and connect_to_many. 6607 6608 * connect.c (make_connection): Removed. 6609 (connect_to_one): New function. 6610 (connect_to_many): Ditto. 6611 (set_connection_host_name): Ditto. 6612 6613 * host.c (lookup_host): New function; new return type. 6614 (address_list_new): New function. 6615 (address_list_count): Ditto. 6616 (address_list_copy_one): Ditto. 6617 (address_list_delete): Ditto. 6618 (address_list_release): Ditto. 6619 (pretty_print_address): Ditto. 6620 66212001-11-26 Hrvoje Niksic <hniksic@arsdigita.com> 6622 6623 * recur.c (retrieve_tree): In case of followed redirection, 6624 blacklist the pre-redirection URL. 6625 66262001-11-26 Hrvoje Niksic <hniksic@arsdigita.com> 6627 6628 * recur.c (descend_redirect_p): New function. 6629 (retrieve_tree): Make sure redirections are not blindly followed. 6630 66312001-11-04 Alan Eldridge <alane@geeksrus.net> 6632 6633 * config.h.in: added HAVE_RANDOM. 6634 6635 * options.h: added random_wait to struct options. 6636 6637 * main.c (print_help [HAVE_RANDOM], main): added arg parsing, help 6638 for --random-wait. 6639 6640 * retr.c (sleep_between_retrievals) [HAVE_RANDOM]: added 6641 implementation of random wait times. 6642 6643 * init.c (commands): added "randomwait" keyword. 6644 66452001-11-25 Hrvoje Niksic <hniksic@arsdigita.com> 6646 6647 * recur.c (descend_url_p): Be more conservative with blacklisting 6648 URLs. 6649 (convert_all_links): Print how many files have been converted, and 6650 how long it took. 6651 6652 * progress.c (create_image): Place the number of downloaded bytes 6653 right after the progress bar. 6654 6655 * utils.c (suffix): Return a pointer into the string. 6656 66572001-11-25 Hrvoje Niksic <hniksic@arsdigita.com> 6658 6659 * url.c (convert_links): Handle CO_NULLIFY_BASE. 6660 6661 * recur.c (retrieve_tree): Ignore download-ignorable children. 6662 (convert_all_links): Specify CO_NULLIFY_BASE when link_base_p. 6663 6664 * html-url.c (handle_link): Return the newly created urlpos. 6665 (collect_tags_mapper): When dealing with BASE, store the base 6666 reference and mark it as download-ignorable. 6667 66682001-11-25 Hrvoje Niksic <hniksic@arsdigita.com> 6669 6670 * url.c (convert_links): Attempt to quote '?' as "%3F" when 6671 linking to local files. Given up on the attempt, as it breaks 6672 local browsing. 6673 66742001-11-25 Hrvoje Niksic <hniksic@arsdigita.com> 6675 6676 * main.c (private_initialize): Removed. 6677 (main): Don't call private_initialize. 6678 6679 * http.c: Call lookup_host. 6680 6681 * host.c (host_init): Removed. 6682 (add_host_to_cache): Initialize host_name_address_map here, on 6683 demand. 6684 (ngethostbyname): Commented out. 6685 6686 * connect.c (make_connection): Remove dead code; use lookup_host. 6687 6688 * host.c (store_hostaddress): Renamed to lookup_host and reversed 6689 the args. 6690 Removed host_address_name_map and host_slave_master_map. 6691 66922001-11-25 Hrvoje Niksic <hniksic@arsdigita.com> 6693 6694 * progress.c (dot_create): Align the "[ skipping ... ]" string 6695 with the dots. 6696 6697 * retr.c (rate): Split into two functions: calc_rate and 6698 retr_rate. 6699 6700 * progress.c (create_image): Draw a dummy progress bar even when 6701 total size is unknown. 6702 (display_image): Place the text cursor at the end of the "image". 6703 67042001-11-25 Hrvoje Niksic <hniksic@arsdigita.com> 6705 6706 * url.c (reencode_string): Use unsigned char, not char -- 6707 otherwise the hex digits come out wrong for 8-bit chars such as 6708 nbsp. 6709 (lowercase_str): New function. 6710 (url_parse): Canonicalize u->url if needed. 6711 (get_urls_file): Parse each URL, and return only the valid ones. 6712 (free_urlpos): Call url_free. 6713 (mkstruct): Add :port if the port is non-standard. 6714 (mkstruct): Append the query string to the file name, if any. 6715 (urlpath_length): Use strpbrk_or_eos. 6716 (uri_merge_1): Handle the cases where LINK is an empty string, 6717 where LINK consists only of query, and where LINK consists only of 6718 fragment. 6719 (convert_links): Count and report both kinds of conversion. 6720 (downloaded_file): Use a hash table, not a list. 6721 (downloaded_files_free): Free the hash table. 6722 6723 * retr.c (retrieve_from_file): Ditto. 6724 6725 * main.c (main): Call either retrieve_url or retrieve_tree 6726 for each URL, not both. 6727 6728 * retr.c (register_all_redirections): New function. 6729 (register_redirections_mapper): Ditto. 6730 (retrieve_url): Register the redirections. 6731 (retrieve_url): Make the string "Error parsing proxy ..." 6732 translatable. 6733 6734 * res.c (add_path): Strip leading slash from robots.txt paths so 6735 that the path representations are "compatible". 6736 (free_specs): Free each individual path, too. 6737 (res_cleanup): New function. 6738 (cleanup_hash_table_mapper): Ditto. 6739 6740 * recur.c (url_queue_new): New function. 6741 (url_queue_delete): Ditto. 6742 (url_enqueue): Ditto. 6743 (url_dequeue): Ditto. 6744 (retrieve_tree): New function, replacement for recursive_retrieve. 6745 (descend_url_p): New function. 6746 (register_redirection): New function. 6747 6748 * progress.c (create_image): Cosmetic changes. 6749 6750 * init.c (cleanup): Do all those complex cleanups only if 6751 DEBUG_MALLOC is defined. 6752 6753 * main.c: Removed --simple-check and the corresponding 6754 simple_host_check in init.c. 6755 6756 * html-url.c (handle_link): Parse the URL here, and propagate the 6757 parsed URL to the caller, who would otherwise have to parse it 6758 again. 6759 6760 * host.c (xstrdup_lower): Moved to utils.c. 6761 (realhost): Removed. 6762 (same_host): Ditto. 6763 67642001-11-24 Hrvoje Niksic <hniksic@arsdigita.com> 6765 6766 * utils.c (path_simplify): Preserver the (non-)existence of 6767 leading slash. Return non-zero if changes were made. 6768 67692001-11-24 Hrvoje Niksic <hniksic@arsdigita.com> 6770 6771 * progress.c (bar_update): Don't modify bp->total_length if it is 6772 zero. 6773 67742001-11-24 Hrvoje Niksic <hniksic@arsdigita.com> 6775 6776 * retr.c (retrieve_url): When the redirection URL doesn't parse, 6777 print the correct error message rather than "UNKNOWN". 6778 67792001-11-24 Hrvoje Niksic <hniksic@arsdigita.com> 6780 6781 * progress.c (bar_finish): If the timer didn't record any time 6782 since the download beginning, fake 1ms. 6783 67842001-11-24 Hrvoje Niksic <hniksic@arsdigita.com> 6785 6786 * recur.c (recursive_retrieve): Fix typo. 6787 67882001-11-23 Hrvoje Niksic <hniksic@arsdigita.com> 6789 6790 * progress.c (create_image): Don't translate "%ld ". 6791 67922001-11-23 Hrvoje Niksic <hniksic@arsdigita.com> 6793 6794 * progress.c (bar_set_params): Allow the user to force the use of 6795 the bar. 6796 67972001-11-23 Lemble Gregory <gregory.lemble@st.com> 6798 6799 * gen_sslfunc.c (ssl_init_prng): New function; seed the SSL RNG. 6800 68012001-11-23 Hrvoje Niksic <hniksic@arsdigita.com> 6802 6803 * progress.c: Renamed dp_* functions to dot_* for greater clarity 6804 and consistency with bar_*. 6805 (print_download_speed): Get rid of the unneeded '@' character. 6806 (create_image): Fix download rate geometry. 6807 6808 * progress.c (print_elapsed): Remove spurious space. 6809 (print_elapsed): Renamed to print_download_speed, since that's 6810 what it does. 6811 68122001-11-23 Hrvoje Niksic <hniksic@arsdigita.com> 6813 6814 * progress.c (bar_update): If the downloaded amount becomes larger 6815 than the expected amount, adjust the expected amount accordingly. 6816 68172001-11-23 Hrvoje Niksic <hniksic@arsdigita.com> 6818 6819 * utils.c (determine_screen_width): New function. 6820 6821 * main.c (main): New option `--progress=TYPE'. 6822 (main): Implement compatibility with the old option `--dot-style'. 6823 6824 * init.c: Removed cmd_spec_dotstyle -- that logic is now in 6825 dp_set_params. 6826 (cmd_spec_progress): New function. 6827 6828 * retr.c (get_contents): Use the progress_* functions instead of 6829 the old show_progress(). 6830 (show_progress): Removed. 6831 (rate): Print "xxxx.xx K/s" instead of "KB/s". Ditto for MB/s, 6832 etc. 6833 6834 * progress.c (set_progress_implementation): New function. 6835 (valid_progress_implementation_p): Ditto. 6836 (progress_create): Ditto. 6837 (progress_update): Ditto. 6838 (progress_finish): Ditto. 6839 (dp_create): Ditto. 6840 (dp_update): Ditto. 6841 (dp_finish): Ditto. 6842 (dp_set_params): Ditto. 6843 (print_elapsed): Ditto. 6844 68452001-11-22 Hrvoje Niksic <hniksic@arsdigita.com> 6846 6847 * retr.c (show_progress): Use it. 6848 6849 * log.c (log_set_flush): New function. 6850 68512001-11-22 Hrvoje Niksic <hniksic@arsdigita.com> 6852 6853 * utils.c (path_simplify): Don't remove trailing slashes. 6854 6855 * ftp.c (ftp_get_listing): Use it. 6856 6857 * utils.c (file_merge): New function. 6858 6859 * url.c (opt_url): Removed. 6860 6861 * recur.c (recursive_retrieve): Inline "opt_url" logic. 6862 6863 * main.c (main): Use xfree(), not free(). 6864 6865 * url.c (rewrite_url_maybe): Renamed to rewrite_shorthand_url. 6866 6867 * ftp.c (ccon): Move `ccon' typedef here, since it's only used 6868 internally. 6869 6870 * config.h.in: Include a stub for HAVE_STRPBRK. 6871 6872 * cmpt.c (strpbrk): Include a replacement for systems without 6873 strpbrk(). 6874 6875 * ftp.c: Use url_set_dir and url_set_file when modifying the URL. 6876 6877 * url.c (url_set_dir): New function. 6878 (url_set_file): Ditto. 6879 6880 * ftp-basic.c (ftp_process_type): Process FTP type here; the URL 6881 parser makes the URL "params" available, so we can do that in this 6882 function. 6883 6884 * retr.c: Ditto. 6885 6886 * ftp.c: Ditto; pass the local file information in `ccon'. 6887 6888 * http.c: Get rid of the ugly kludge that had URL being replaced 6889 with the proxy URL when proxy retrieval was requested. Use a 6890 separate parameter to http_loop and gethttp for the proxy URL. 6891 6892 * http.c: Changed to reflect the fact that local file, proxy, and 6893 referer information are no longer stored in struct url. The local 6894 file information is passed in `struct hstat' now. 6895 6896 * url.c: Reworked URL parsing to be more regular. Reencode the 6897 URL using reencode_string. 6898 Removed non-URL-related information from struct url. This 6899 includes fields `proxy', `local', and `referer'. 6900 69012001-11-22 Jochen Hein <jochen@jochen.org> 6902 6903 * main.c (main): Split the copyright notice for easier 6904 translation. 6905 69062001-08-21 Dave Turner <dct25@hermes.cam.ac.uk> 6907 6908 * ftp-basic.c (ftp_size): New function to send non-standard SIZE 6909 command to server to request file size. 6910 * ftp.h (ftp_size): Export it. 6911 * ftp.c (getftp): Use new ftp_size function if restoring 6912 transfer of a file with unknown size. 6913 69142001-11-20 Hrvoje Niksic <hniksic@arsdigita.com> 6915 6916 * url.c (parseurl): Don't depend on the now-obsolete TYPE. 6917 69182001-11-19 Hrvoje Niksic <hniksic@arsdigita.com> 6919 6920 * url.c (getproxy): Handle URL shorthands. 6921 69222001-11-19 Hrvoje Niksic <hniksic@arsdigita.com> 6923 6924 * main.c: Remove --wait / --waitretry backwards compatibility 6925 code. 6926 69272001-11-19 Hrvoje Niksic <hniksic@arsdigita.com> 6928 6929 * main.c (main): Use it. 6930 6931 * url.c (rewrite_url_maybe): New function. 6932 69332001-11-19 Hrvoje Niksic <hniksic@arsdigita.com> 6934 6935 * url.c: Clean up handling of URL schemes. 6936 69372001-05-13 Hrvoje Niksic <hniksic@arsdigita.com> 6938 6939 * url.c: Get rid of `protostrings'. 6940 (skip_proto): Don't use protostrings. 6941 (has_proto): Ditto. 6942 69432001-11-18 Hrvoje Niksic <hniksic@arsdigita.com> 6944 6945 * Makefile.in: Conditionally compile getopt.o. 6946 69472001-11-18 Hrvoje Niksic <hniksic@arsdigita.com> 6948 6949 * md5.h: Renamed to gnu-md5.h. 6950 6951 * md5.c: Renamed to gnu-md5.c. 6952 6953 * http.c: Ditto. 6954 6955 * ftp-opie.c: Use the new macros. 6956 6957 * sysdep.h: Define md5-related macros. 6958 6959 * config.h.in: Define HAVE_SOLARIS_MD5 or HAVE_BUILTIN_MD5 6960 depending on which md5 implementation is used. 6961 69622001-11-18 Hrvoje Niksic <hniksic@arsdigita.com> 6963 6964 * res.c (res_register_specs): Initialize OLD and HP_OLD to appease 6965 the compiler. 6966 69672001-11-18 Hrvoje Niksic <hniksic@arsdigita.com> 6968 6969 * http.c (gethttp): Print the whole response line when printing 6970 headers is requested. 6971 69722001-05-12 Hrvoje Niksic <hniksic@arsdigita.com> 6973 6974 * res.c: New file. Implement all RES-related code here. 6975 69762001-11-18 Hrvoje Niksic <hniksic@arsdigita.com> 6977 6978 * version.c: Wget 1.7.1 is released. 6979 69802001-11-16 Hrvoje Niksic <hniksic@arsdigita.com> 6981 6982 * headers.c (header_extract_number): Ignore trailing whitespace. 6983 69842001-08-24 Ian Abbott <abbotti@mev.co.uk> 6985 6986 * html-url.c (collect_tags_mapper): Fix bug converting links 6987 with -k option for tags with multiple link attributes by 6988 handling links in the order they appear. 6989 69902001-08-15 Ian Abbott <abbotti@mev.co.uk> 6991 6992 * ftp.c (ftp_loop_internal): Avoid a potential buffer overflow in 6993 the call to the 'rate' function by moving it past the error 6994 checking for the 'getftp' function return value. 6995 69962001-11-16 Hrvoje Niksic <hniksic@arsdigita.com> 6997 6998 * html-parse.c (advance_declaration): Use 0x22 instead of '"' or 6999 '\"'. Different compilers' assert macros are broken in different 7000 ways. 7001 70022001-09-29 Christian Fraenkel <c.fraenkel@gmx.net> 7003 7004 * http.c (gethttp): print debug output for errors occuring during 7005 the ssl handshake. 7006 70072001-11-16 Chris Seawood <cls@seawood.org> 7008 7009 * init.c: Ditto. 7010 7011 * host.c: Ditto. 7012 7013 * connect.c: Ditto. 7014 7015 * sysdep.h: Support compilation under BEOS. 7016 70172001-06-08 Edward J. Sabol <sabol@alderaan.gsfc.nasa.gov> 7018 7019 * url.c (url_equal): Fix a memory leak when parseurl returns an 7020 error on the second URL. Also, since url_equal is not used at the 7021 moment, do not compile it. 7022 7023 * url.h: Ditto for the prototype of url_equal. 7024 70252001-11-16 Hrvoje Niksic <hniksic@arsdigita.com> 7026 7027 * html-parse.c (map_html_tags): Support XML-style empty tags. 7028 70292001-06-26 Hrvoje Niksic <hniksic@arsdigita.com> 7030 7031 * wget.h (DO_REALLOC_FROM_ALLOCA): Check for do_realloc_newsize in 7032 loop condition because we're no longer setting SIZEVAR here. 7033 70342001-06-26 Hrvoje Niksic <hniksic@arsdigita.com> 7035 7036 * wget.h (DO_REALLOC_FROM_ALLOCA): Set SIZEVAR after the memcpy() 7037 call because it needs the old value. 7038 70392001-06-18 Hrvoje Niksic <hniksic@arsdigita.com> 7040 7041 * cookies.c (ATTR_NAME_CHAR): Allow almost any character to be in 7042 an attribute name. 7043 70442001-06-18 Hrvoje Niksic <hniksic@arsdigita.com> 7045 7046 * url.c (url_filename): Make sure that slashes that sneak in to 7047 u->file via query string get protected. 7048 (file_name_protect_query_string): New function. 7049 70502001-06-14 Hrvoje Niksic <hniksic@arsdigita.com> 7051 7052 * recur.c (recursive_retrieve): Also check undesirable_urls with 7053 canonicalized URL. 7054 70552001-06-14 Hrvoje Niksic <hniksic@arsdigita.com> 7056 7057 * http.c (gethttp): Search `.netrc' with real host, not the proxy 7058 one. 7059 70602001-06-14 Hrvoje Niksic <hniksic@arsdigita.com> 7061 7062 * sysdep.h (MAP_FAILED): Provide MAP_FAILED for systems that don't 7063 define it. 7064 70652001-06-09 Jan Prikryl <prikryl@cg.tuwien.ac.at> 7066 7067 * ftp.h: Provide correct prototype for ftp_parse_ls(). 7068 70692001-06-04 Hrvoje Niksic <hniksic@arsdigita.com> 7070 7071 * version.c: Wget 1.7 is released. 7072 70732001-06-03 Karl Eichwalder <ke@suse.de> 7074 7075 * ftp-ls.c (ftp_parse_ls): Fix typo. 7076 70772001-05-27 Hrvoje Niksic <hniksic@arsdigita.com> 7078 7079 * all: Update copyright information. 7080 70812001-05-26 Hrvoje Niksic <hniksic@arsdigita.com> 7082 7083 * http.c (gethttp): Indicate that the continued download failed 7084 for *this* file. 7085 70862001-05-26 Hrvoje Niksic <hniksic@arsdigita.com> 7087 7088 * version.c: Wget 1.7-pre1 is released. 7089 70902001-05-26 Hrvoje Niksic <hniksic@arsdigita.com> 7091 7092 * version.c: Updated version to 1.7-pre1. 7093 70942001-05-14 Hrvoje Niksic <hniksic@arsdigita.com> 7095 7096 * gen_sslfunc.c: Don't include <sys/time.h> directly. 7097 70982001-05-14 Hrvoje Niksic <hniksic@arsdigita.com> 7099 7100 * http.c (gethttp): Use real URL data for cookies, not the proxy 7101 stuff. 7102 71032001-05-12 Hrvoje Niksic <hniksic@arsdigita.com> 7104 7105 * main.c (print_help): Document `--no-http-keep-alive'. 7106 7107 * utils.c (numdigit): Handle negative numbers *correctly*. 7108 7109 * hash.c (make_nocase_string_hash_table): Use term "nocase" rather 7110 than the confusing "unsigned". 7111 7112 * utils.c (string_set_contains): Renamed from string_set_exists. 7113 7114 * hash.c (hash_table_contains): Renamed from hash_table_exists. 7115 7116 * cookies.c: Move case-insensitive hash tables to hash.c. 7117 71182001-05-09 Hrvoje Niksic <hniksic@arsdigita.com> 7119 7120 * http.c (gethttp): Before concluding that the file is already 7121 fully retrieved, make sure that the file existed and `Range' was 7122 actually requested. 7123 71242001-05-09 Hrvoje Niksic <hniksic@arsdigita.com> 7125 7126 * cookies.c (eliminate_dups): New function. 7127 (build_cookies_request): Use it. 7128 (build_cookies_request): Set chain_store_size after reallocating 7129 all_chains. 7130 (check_domain_match): Annotated for easier future debugging. 7131 (store_cookie): In the debug message, print whether the cookie is 7132 permanent. 7133 71342001-05-08 Hrvoje Niksic <hniksic@arsdigita.com> 7135 7136 * http.c (http_loop): Reset no_truncate before deciding whether to 7137 set it. 7138 (gethttp): Further clarify "-c conflicts with existing file" error 7139 message, based on input from Herold Heiko. 7140 71412001-05-07 Hrvoje Niksic <hniksic@arsdigita.com> 7142 7143 * http.c (http_loop): If restval is set, set no_truncate to 1 7144 unconditionally. 7145 71462001-05-02 Jan Prikryl <prikryl@cg.tuwien.ac.at> 7147 7148 * ftp-ls.c (ftp_parse_winnt_ls): Assure months are being correctly 7149 converted. Pointed out by <Stefan.Weil@de.heidelberg.com>. 7150 (ftp_parse_vms_ls): Ditto. 7151 71522001-04-30 Hrvoje Niksic <hniksic@arsdigita.com> 7153 7154 * init.c (cmd_address): Zero SIN before using it; apparently 7155 needed on *BSD. 7156 71572001-04-29 Hrvoje Niksic <hniksic@arsdigita.com> 7158 7159 * ftp.c (ftp_loop_internal): Don't set NO_TRUNCATE if the file is 7160 empty. 7161 71622001-04-29 Hrvoje Niksic <hniksic@arsdigita.com> 7163 7164 * main.c (main): Make `--cookies' respect its argument. 7165 71662001-04-28 Hrvoje Niksic <hniksic@arsdigita.com> 7167 7168 * main.c (main): Removed undocumented option `--email-address'. 7169 7170 * netrc.c: Use the latest read_whole_line. 7171 7172 * init.c (defaults): Set opt.ftp_pass to "-wget@". 7173 7174 * mswindows.c (pwd_cuserid): Ditto. 7175 7176 * utils.c (pwd_cuserid): Removed. 7177 7178 * host.c (ftp_getaddress): Removed. 7179 71802001-04-28 Hrvoje Niksic <hniksic@arsdigita.com> 7181 7182 (http_loop): Allocate space for filename_plus_orig_suffix with 7183 alloca; this is more efficient and removes the need to free it 7184 before each and every return. 7185 71862001-04-28 Hrvoje Niksic <hniksic@arsdigita.com> 7187 7188 * http.c (gethttp): Return RETRUNNEEDED when the retrieval is 7189 unneeded because the file is already there and fully downloaded, 7190 and -c is specified. 7191 (http_loop): Handle RETRUNNEEDED. 7192 7193 * wget.h (uerr_t): New value RETRUNNEEDED. 7194 7195 * http.c (http_loop): Set no_truncate for files that both exist 7196 and are non-empty. 7197 (gethttp): Consider the download finished when restval >= contlen, 7198 not only when restval==contlen. 7199 (gethttp): Handle redirection before giving up due to -c. 7200 (gethttp): Clarify error message which explains that -c will not 7201 truncate the file. 7202 (gethttp): When returning CONTNOTSUPPORTED, don't forget to free 7203 the stuff that needs freeing and release the socket. 7204 72052001-04-27 Hrvoje Niksic <hniksic@arsdigita.com> 7206 7207 * main.c (print_help): Wget booleans accept "off", not "no". 7208 72092001-04-27 Hrvoje Niksic <hniksic@arsdigita.com> 7210 7211 * http.c (http_loop): If allow_cache is zero, always disable 7212 caching, not only when retrieving through proxy. 7213 7214 * init.c: Ditto. 7215 7216 * options.h (struct options): Rename proxy_cache to allow_cache. 7217 72182001-04-27 Hrvoje Niksic <hniksic@arsdigita.com> 7219 7220 * http.c (mktime_from_utc): Improve documentation. 7221 (http_atotm): Put format strings into a separate array. 7222 72232001-04-27 Hrvoje Niksic <hniksic@arsdigita.com> 7224 7225 * safe-ctype.h: Instead of throwing #error when isalpha is 7226 defined, redefine it to something that will throw a compile-time 7227 error if actually *used*. Do the same for the rest of the 7228 standard C macros. 7229 72302001-04-26 Hrvoje Niksic <hniksic@arsdigita.com> 7231 7232 * url.c (getproxy): Ignore empty proxy vars. 7233 72342001-04-25 Hrvoje Niksic <hniksic@arsdigita.com> 7235 7236 * http.c (http_loop): Would load cookies every time. 7237 7238 * cookies.c (load_cookies): Handle cookies whose values contain 7239 embedded spaces. 7240 72412001-04-25 Hrvoje Niksic <hniksic@arsdigita.com> 7242 7243 * utils.c: Define each DIGITS_* in one line. 7244 72452001-04-25 Roger L. Beeman <beeman@cisco.com> 7246 7247 * http.c (http_atotm): Initialize t.tm_isdst to 0. 7248 (mktime_from_utc): Prevent mktime() from having discontinuities at 7249 DST transition points. 7250 72512001-04-25 Hrvoje Niksic <hniksic@arsdigita.com> 7252 7253 * html-url.c (get_urls_html): Fix documentation. 7254 72552001-04-25 Hrvoje Niksic <hniksic@arsdigita.com> 7256 7257 * url.c (UNSAFE_CHAR): Reimplement using a static table. 7258 (url_init): Removed. 7259 (init_unsafe_char_table): Removed. 7260 72612001-04-25 Hrvoje Niksic <hniksic@arsdigita.com> 7262 7263 * snprintf.c (dopr): Replace ISDIGIT with '0' <= ch && ch <= '9'. 7264 72652001-04-25 Hrvoje Niksic <hniksic@arsdigita.com> 7266 7267 * utils.c: Document timer functions. 7268 7269 * retr.c (rate): Use it. 7270 (rate): Print in GB/s if transfer rate exceeds 1 GB/s. 7271 7272 * utils.c (wtimer_granularity): New function. 7273 72742001-04-24 Hrvoje Niksic <hniksic@arsdigita.com> 7275 7276 * retr.c (show_progress): Ditto. 7277 7278 * ftp.c (getftp): Ditto. 7279 7280 * http.c (gethttp): Use new timer functions. 7281 7282 * utils.c (wtimer_allocate): New function. 7283 (wtimer_new): Ditto. 7284 (wtimer_delete): Ditto. 7285 (wtimer_reset): Ditto. 7286 (wtimer_elapsed): Ditto. 7287 72882001-04-24 Hrvoje Niksic <hniksic@arsdigita.com> 7289 7290 * utils.c (long_to_string): New, faster version. Favors smaller 7291 numbers; much of the calculation is now done at compile-time. 7292 72932001-04-24 Hrvoje Niksic <hniksic@arsdigita.com> 7294 7295 * utils.c (numdigit): Handle negative numbers. 7296 72972001-04-23 Hrvoje Niksic <hniksic@arsdigita.com> 7298 7299 * retr.c (show_progress): Print the download rate even when the 7300 percentages are not available. 7301 73022001-04-21 Hrvoje Niksic <hniksic@arsdigita.com> 7303 7304 * ftp.c (getftp): Adjust expected_bytes if the length is 7305 authoritative. 7306 73072001-04-14 Hrvoje Niksic <hniksic@arsdigita.com> 7308 7309 * url.c: Don't declare `construct'. 7310 7311 * hash.c (grow_hash_table): Speed up rehashing; inline storing of 7312 mappings to new locations. 7313 (hash_table_new): Make resize_threshold a field in the hash table, 7314 so we don't have to recalculate it in each hash_table_put. 7315 (grow_hash_table): Update resize_threshold. 7316 (MAX): Remove unused macro. 7317 (prime_size): Made static. 7318 73192001-04-14 Hrvoje Niksic <hniksic@arsdigita.com> 7320 7321 * retr.c (retrieve_url): Call uri_merge, not url_concat. 7322 7323 * html-url.c (collect_tags_mapper): Call uri_merge, not 7324 url_concat. 7325 7326 * url.c (mkstruct): Use encode_string instead of xstrdup followed 7327 by URL_CLEANSE. 7328 (path_simplify_with_kludge): Deleted. 7329 (contains_unsafe): Deleted. 7330 (construct): Renamed to uri_merge_1. 7331 (url_concat): Renamed to uri_merge. 7332 73332001-04-13 Hrvoje Niksic <hniksic@arsdigita.com> 7334 7335 * url.c (str_url): Use encode_string instead of the unnecessary 7336 CLEANDUP. 7337 (encode_string_maybe): New function, returns input string if no 7338 encoding is needed. 7339 (encode_string): Call encode_string_maybe to do the dirty work, 7340 xstrdup if no work needed. 7341 73422001-04-13 Hrvoje Niksic <hniksic@arsdigita.com> 7343 7344 * wget.h (XDIGIT_TO_xchar): Define here. 7345 7346 * url.c (decode_string): Use new name. 7347 (encode_string): Ditto. 7348 7349 * http.c (XDIGIT_TO_xchar): Rename HEXD2asc to XDIGIT_TO_xchar. 7350 (dump_hash): Use new name. 7351 7352 * wget.h: Rename ASC2HEXD and HEXD2ASC to XCHAR_TO_XDIGIT and 7353 XDIGIT_TO_XCHAR respectively. 7354 73552001-04-13 Hrvoje Niksic <hniksic@arsdigita.com> 7356 7357 * init.c: Include cookies.h. 7358 7359 * cookies.h: Declare cookies_cleanup. 7360 7361 * cookies.c (check_domain_match): Remove unused variable. 7362 (save_cookies): Remove extraneous argument from debug statement. 7363 7364 * host.c (same_host): Don't call skip_url. 7365 7366 * url.c (skip_url): Removed. Removed its calls from various 7367 functions in url.c. 7368 73692001-04-13 Hrvoje Niksic <hniksic@arsdigita.com> 7370 7371 * cookies.c (unsigned_string_hash): Use the new code in 7372 string_hash as reference. 7373 7374 * hash.c (hash_table_map): Allow deletion and change of the 7375 element processed by MAPFUN. 7376 (string_hash): Use the function from glib. 7377 73782001-04-12 Hrvoje Niksic <hniksic@arsdigita.com> 7379 7380 * config.h.in: Include #undef stub. 7381 7382 * hash.c (hash_table_remove): Rewrite to actually clear deleted 7383 entries instead of just marking them as deleted. 7384 73852001-04-12 Hrvoje Niksic <hniksic@arsdigita.com> 7386 7387 * hash.h: Declare hash_table_get_pair and hash_table_count. 7388 73892001-04-12 Hrvoje Niksic <hniksic@arsdigita.com> 7390 7391 * cookies.c: Declare http_atotm. 7392 73932001-04-12 Hrvoje Niksic <hniksic@arsdigita.com> 7394 7395 * ftp-ls.c (ftp_parse_unix_ls): Use octal constants for 7396 permissions. A compiler that doesn't accept octal constants is 7397 seriously broken and shouldn't be used -- octal constants were 7398 present in K&R C! 7399 74002001-01-20 Karl Eichwalder <ke@suse.de> 7401 7402 * Makefile.in: Provide and use DESTDIR according to the Coding 7403 Standards. 7404 74052001-04-12 Hrvoje Niksic <hniksic@arsdigita.com> 7406 7407 * ftp-ls.c (ftp_parse_vms_ls): Make seconds optional in time 7408 specification. 7409 74102001-04-11 Hrvoje Niksic <hniksic@arsdigita.com> 7411 7412 * url.c (parseurl): Don't strip trailing slash when u->dir is "/" 7413 because that strips the *leading* slash, thus forcing relative 7414 FTP retrieval. 7415 74162001-04-10 Jan Prikryl <prikryl@cg.tuwien.ac.at> 7417 7418 * ftp.c (getftp): Convert initial FTP directory from VMS to UNIX 7419 notation for VMS servers. 7420 (ftp_retrieve_dirs): Do not prepend '/' to f->name when 7421 odir is an empty string. 7422 74232001-04-10 Jan Prikryl <prikryl@cg.tuwien.ac.at> 7424 7425 * ftp-ls.c (ftp_parse_winnt_ls): Made the fix for AM/PM more 7426 effective. Suggested by Edward J. Sabol. 7427 74282001-04-10 Hrvoje Niksic <hniksic@arsdigita.com> 7429 7430 * cookies.c (build_cookies_request): Use and sort cookies from all 7431 matching domains. 7432 (build_cookies_request): Check for duplicates before generating 7433 the `Cookies' header. 7434 7435 * main.c (main): Don't load cookies here. 7436 (main): Make loadcookies and savecookies call the correct command. 7437 7438 * http.c (http_loop): Load cookies on-demand. 7439 74402001-04-09 Hrvoje Niksic <hniksic@arsdigita.com> 7441 7442 * http.c (gethttp): Fix indentation of SSL ifdef. 7443 74442001-04-09 Hrvoje Niksic <hniksic@arsdigita.com> 7445 7446 * ftp.c (ftp_retrieve_dirs): Don't forcibly prepend "/" to u->dir; 7447 that hack is no longer necessary. 7448 (getftp): Prepend initial directory to *non*-absolute u->dir's. 7449 74502001-04-09 Hrvoje Niksic <hniksic@arsdigita.com> 7451 7452 * init.c (cmd_file): New function. 7453 (enable_tilde_expansion): New variable. 7454 (run_wgetrc): Use it. 7455 (cmd_file): Use it. 7456 74572001-04-08 Hrvoje Niksic <hniksic@arsdigita.com> 7458 7459 * init.c: Include cookie-related options. 7460 7461 * main.c (main): Include cookie-specific options. 7462 (main): Load cookies before download is finished. 7463 (main): Save cookies when done. 7464 7465 * http.c (gethttp): Process the `Set-Cookie' header. 7466 (gethttp): Include cookies in the response. 7467 7468 * cookies.c: New file. 7469 74702001-04-08 Hrvoje Niksic <hniksic@arsdigita.com> 7471 7472 * utils.c (datetime_str): New function. 7473 74742001-04-08 Jan Prikryl <prikryl@cg.tuwien.ac.at> 7475 7476 * ftp-ls.c (ftp_parse_winnt_ls): The AM/PM change did assume 7477 12:01PM == 00:01, which was obviously wrong. Taken care of this 7478 anomaly. 7479 7480 * ChangeLog: Removed an excess conflict marker. Reformatted the 7481 entry by Philipp Thomas from 2001-03-09. 7482 7483 * ftp-ls.c (ftp_parse_winnt_ls): Ensure that adjusted PM hours lay 7484 between 0 and 23. Elminate unused variable `sec'. 7485 74862001-04-08 Hrvoje Niksic <hniksic@arsdigita.com> 7487 7488 * hash.c (hash_table_count): New function. 7489 74902001-04-06 Hrvoje Niksic <hniksic@arsdigita.com> 7491 7492 * utils.c (read_file): Cast MAP_FAILED to char *. Enforced by 7493 Digital Unix cc. 7494 74952001-04-06 Hrvoje Niksic <hniksic@arsdigita.com> 7496 7497 * config.h.in: Oops, do the namespace tweaks only on systems we 7498 know about. 7499 75002001-04-06 Hrvoje Niksic <hniksic@arsdigita.com> 7501 7502 * hash.c: Include <string.h>. 7503 75042001-04-06 Hrvoje Niksic <hniksic@arsdigita.com> 7505 7506 * config.h.in: Define "compilation environment" options that work 7507 under Linux and Solaris. To be reviewed on other OS'es. 7508 75092001-04-06 Hrvoje Niksic <hniksic@arsdigita.com> 7510 7511 * http.c (gethttp): Prepend literal newline with `\n\'. 7512 75132001-04-06 Hrvoje Niksic <hniksic@arsdigita.com> 7514 7515 * sysdep.h: Don't define VERY_LONG_FORMAT. 7516 7517 * utils.c (very_long_to_string): New function. 7518 (legible_very_long): Use it; don't use VERY_LONG_FORMAT. 7519 75202001-04-04 Christian Fraenkel <christian.fraenkel@gmx.net> 7521 7522 * url.c (parse_uname): Would run past the end of the string if the 7523 username was present, but the URL did not contain a slash, e.g. 7524 http://foo:bar@myhost. 7525 75262001-04-03 KOJIMA Hajime <kjm@rins.ryukoku.ac.jp> 7527 7528 * http.c (http_atotm): Use %A instead of %a to match full 7529 weekday. (On most systems there is no difference.) 7530 75312001-04-03 Paul Bludov <paul@ozero.net> 7532 7533 * mswindows.c (sleep): Use SleepEx() instead of Sleep(). 7534 (ws_changetitle): Use alloca() instead of malloc() to avoid memory 7535 leak. 7536 (ws_mypath): Use GetModuleFileName instead of argv[0]. 7537 (ws_startup): Use data.wVersion for comparison. 7538 75392001-04-02 Hrvoje Niksic <hniksic@arsdigita.com> 7540 7541 * http.c (http_loop): Ditto. 7542 7543 * ftp.c (ftp_loop_internal): Made the check whether to continue 7544 retrieval `-O'-friendly. 7545 75462001-04-02 Hrvoje Niksic <hniksic@arsdigita.com> 7547 7548 * netrc.c (parse_netrc): Don't trim the line endings explicitly; 7549 they will be handled as whitespace. 7550 (parse_netrc): Correctly handle lines that end with whitespace. 7551 75522001-04-02 Hrvoje Niksic <hniksic@arsdigita.com> 7553 7554 * retr.c (retrieve_url): New variable global_download_count used 7555 to identify first retrieval. 7556 7557 * ftp.c (getftp): Ditto. 7558 7559 * http.c (gethttp): Rewind opt.dfp only on first retrieval. 7560 75612001-04-02 Hrvoje Niksic <hniksic@arsdigita.com> 7562 7563 * init.c (cmd_address): Heap-allocate the address that gets stored 7564 to CLOSURE. Old code would simply assign an address on the stack. 7565 75662001-04-01 Nicolas Lichtmaier <nick@debian.org> 7567 7568 * ftp.c (ftp_get_listing): Propagate error status. 7569 (ftp_retrieve_glob): Use it. 7570 (ftp_loop): Ditto. 7571 75722001-04-01 Nicolas Lichtmaier <nick@debian.org> 7573 7574 * main.c (main): Add -C to the string that is the third arg to 7575 getopt_long(). 7576 75772001-04-01 Hrvoje Niksic <hniksic@arsdigita.com> 7578 7579 * ftp.c (getftp): Don't start the download from scratch if `-c' 7580 was specified, but the file is already fully downloaded. 7581 7582 * http.c (gethttp): Don't truncate a pre-existing file if `-c' was 7583 specified and the server doesn't support continued download. 7584 (gethttp): Don't start the download from scratch if `-c' was 7585 specified, but the file is already fully downloaded. 7586 75872001-03-31 Hrvoje Niksic <hniksic@arsdigita.com> 7588 7589 (recursive_retrieve): Don't clear the hash tables at this point at 7590 all; it interferes with the normal operation of register_download. 7591 75922001-03-31 Hrvoje Niksic <hniksic@arsdigita.com> 7593 7594 * recur.c (recursive_retrieve): Clear the hash tables only when 7595 they are defined. 7596 75972001-03-31 Hrvoje Niksic <hniksic@arsdigita.com> 7598 7599 * http.c (gethttp): Make sure the socket is closed with 7600 CLOSE_INVALIDATE before we have drained the body. 7601 76022001-03-31 Hrvoje Niksic <hniksic@arsdigita.com> 7603 7604 * retr.c (retrieve_url): Call register_download() for downloaded 7605 files and register_html() for downloaded HTML files. 7606 7607 * recur.c (register_download): New function; register here that a 7608 file has been downloaded, rather than in recursive_retrieve(). 7609 (register_html): New function; enqueue the location of HTML files 7610 here rather than in recursive_retrieve(). 7611 76122001-03-31 Hrvoje Niksic <hniksic@arsdigita.com> 7613 7614 * main.c (print_help): Use multiple fputs instead of a single ugly 7615 printf(). 7616 (main): Consistently assign numbers >128 to options without a 7617 corresponding character. 7618 76192001-03-09 Philipp Thomas <pthomas@suse.de> 7620 7621 * safe-ctype.h: New file. Locale independent ctype.h replacement 7622 taken from libiberty. 7623 7624 * safe-ctype.c: New file. Tables for above. 7625 7626 * Makefile.in: Add safe-ctype$o to OBJS. Add dependencies for 7627 safe-ctype$o. 7628 7629 * cmpt.c: Remove include of ctype.h. Use ISSPACE instead of 7630 isspace. 7631 7632 * ftp-basic.c: Don't include ctype.h. 7633 7634 * ftp-ls.c: Likewise. 7635 7636 * ftp.c: Likewise. 7637 7638 * headers.c: Likewise. 7639 7640 * host.c: Likewise. 7641 7642 * html-parse.c: Likewise. 7643 7644 * html-url.c: Likewise. 7645 7646 * http.c: Likewise. 7647 7648 * init.c: Likewise. 7649 7650 * main.c: Likewise. Set LC_CTYPE along with LC_MESSAGES. 7651 7652 * netrc.c: Likewise. 7653 7654 * recur.c: Likewise. 7655 7656 * retr.c: Likewise. 7657 7658 * snprintf.c: Replace ctype.h with safe-ctype.h. Use ISDIGIT 7659 instead of isdigit. 7660 7661 * sysdep.h: Remove defines of ctype macros as they aren't needed 7662 for safe-ctype-h. 7663 7664 * url.c: Don't include ctype.h. 7665 7666 * utils.c: Likewise. 7667 7668 * wget.h: Include safe-ctype.h. 7669 76702001-03-27 Dan Harkless <wget@harkless.org> 7671 7672 * Makefile.in: Moved top_builddir out of "User configuration 7673 section" of top Makefile and analogous spot in this one. 7674 76752001-03-17 Dan Harkless <wget@harkless.org> 7676 7677 * Makefile.in: Include @SSL_INCLUDES@ substition in INCLUDES. 7678 Define top_builddir. Link wget with libtool so the user doesn't 7679 have to supply a bunch of custom environment variables to 7680 correctly link with the OpenSSL shared libraries. 7681 76822001-03-06 Hack Kampbjorn <hack@hackdata.com> 7683 7684 * http.c (gethttp): skip :port in host header if it is the 7685 DEFAULT_HTTPS_PORT when using SSL. 7686 7687 * url.c: move the #define of DEFAULT_HTTP_PORT, DEFAULT_FTP_PORT 7688 and DEFAULT_HTTPS_PORT to the header file so it can be use in the 7689 rest of the code. 7690 * url.h: Ditto 7691 76922001-03-01 Jonas Jensen <bones@huleboer.dk> 7693 7694 * retr.c (show_progress): Correctly calculate the number of bytes 7695 in the first line of the download that have been actually 7696 downloaded in this run. 7697 76982001-02-23 Dan Harkless <wget@harkless.org> 7699 7700 * main.c (print_help): --help documentation for -N said it would 7701 re-download files if they had the _same_ timestamp on server. 7702 (print_help): -nr belongs in "FTP options" section of --help 7703 output, not "Recursive retrieval" section. Alphabetized FTP 7704 options by long option name. 7705 77062001-02-16 Dan Harkless <wget@harkless.org> 7707 7708 * init.c (commands): Hack Kampbj�rn <hack@hackdata.com> discovered 7709 that "httpsproxy" had been inserted into commands[] out of 7710 alphabetical order, causing "BUG: unknown command `httpuser'". 7711 77122001-02-13 Jan Prikryl <prikryl@cg.tuwien.ac.at> 7713 7714 * ftp-ls.c (ftp_parse_ls): Added support of ST_MACOS (Unix-like 7715 listing without correct permissons). 7716 7717 * ftp.h (stype): Added ST_MACOS to identify the NetPresenz MacOS 7718 FTP server. 7719 7720 * ftp.c (ftp_retrieve_list): New mirroring logic: A remote file 7721 shall be donwloaded only when it's newer than the local copy or 7722 when it has the same timeestamp but its size is different. ST_VMS 7723 and ST_MACOS as special cases that lie about file size. 7724 7725 * ftp-ls.c (ftp_parse_ls): Support for ST_MACOS. 7726 7727 * Makefile.in: Removed dependency on ftpparse library due to unclear 7728 copyright issues and absence of any feedback to our queries. 7729 7730 * ftp-ls.c: Removed dependency on ftpparse library due to unclear 7731 copyright issues and absence of any feedback to our queries. 7732 (ftp_parse_ls): Added a warning message when remote server system 7733 does not seem to be suported by wget. 7734 (ftp_parse_vms_ls): New function for parsing VMS ftp 7735 server listing output. 7736 (clean_line): New function responsible for removing 7737 end-of-line characters from FTP listing texts. 7738 7739 * ftp.c (getftp): Global variables pwd and host_type are now 7740 member of the ccon structure under names ccon.id and ccon.rs. 7741 7742 * ftp.h (struct ccon): Added formed global variables from ftp.c, 7743 enum stype rs (remote system identification) and char *id (initial 7744 working directory), as suggested by Hrvoje. 7745 7746 * url.c (parse_uname): Added support for passwords containing '@' 7747 characters. 7748 (skip_uname): Ditto. 7749 77502001-02-11 Hrvoje Niksic <hniksic@arsdigita.com> 7751 7752 * ftp.c (ftp_loop): Reset con. 7753 77542001-01-06 Jan Prikryl <prikryl@cg.tuwien.ac.at> 7755 7756 * url.c (parse_uname): Added support for passwords containing '@' 7757 characters. 7758 (skip_uname): Ditto. 7759 77602001-02-11 Hack Kampbj�rn <hack@hackdata.com> 7761 7762 * url.c (parseurl): Debug-print u->ftp_type. 7763 77642001-02-11 Hrvoje Niksic <hniksic@arsdigita.com> 7765 7766 * ftp.c (ftp_loop_internal): Disable padding. 7767 (getftp): Ditto. 7768 7769 * http.c (http_loop): Disable padding. 7770 7771 * retr.c (show_progress): Use it to enable padding. 7772 7773 * retr.c (rate): Optional parameter PAD for padding the rate. 7774 77752001-02-10 Hrvoje Niksic <hniksic@arsdigita.com> 7776 7777 * retr.c (show_progress): Make sure that the last output line 7778 includes progress. 7779 77802001-02-10 Jonas Jensen <bones@huleboer.dk> 7781 7782 * retr.c (show_progress): Print the download rate along with the 7783 percentages. 7784 Along with Anders Thorsby <anders@thorsby.dk>. 7785 77862001-02-10 Tim Mooney <mooney@dogbert.cc.ndsu.NoDak.edu> 7787 7788 * ftp.h: Rename enums `command' to `wget_ftp_command' and 7789 `fstatus' to `wget_ftp_status' because old names clash with Tru64 7790 net/if.h. 7791 77922001-02-08 Christian Fraenkel <christian.fraenkel@gmx.net> 7793 7794 * gen_sslfunc.c: verify_callback is now static 7795 7796 * gen_sslfunc.c (init_ssl): load certificate if specified 7797 7798 * gen_sslfunc.c (ssl_printerr): new function 7799 7800 * init.c: added new --sslcertfile and --sslcertkey switches 7801 7802 * main.c: ditto 7803 7804 * options.h: ditto 7805 7806 * http.c (gethttp): abort when init_ssl fails 7807 78082001-01-23 Herold Heiko <Heiko.Herold@previnet.it> 7809 7810 * mswindows.h: Include <malloc.h>; it's needed for alloca(). 7811 78122001-01-10 Dan Harkless <wget@harkless.org> 7813 7814 * url.c (str_url): Clarified this function's comment header after 7815 Hrvoje answered my question on the list as to when hide != 1. 7816 Also Hrvoje pointed out I need to use xstrdup() on the string literal. 7817 78182001-01-06 Hrvoje Niksic <hniksic@arsdigita.com> 7819 7820 * connect.c (bindport): Declare addrlen as int. Diagnosed by 7821 Drazen Kacar <dave@arsdigita.com>. 7822 (conaddr): Ditto. 7823 78242001-01-09 Dan Harkless <wget@harkless.org> 7825 7826 * html-url.c: A bunch of fixup of `--page-requisites'-related 7827 comments to reflect Hrvoje's changes to my code when transplanting 7828 it into this new file, to fix spelling mistakes, to clarify, etc. 7829 7830 * url.c (write_backup_file): Clarified a comment. 7831 (str_url): Henrik van Ginhoven pointed out on the list that we 7832 shouldn't give away the number of characters in the password by 7833 replacing each character with a 'x'. Use "<password>" instead. 7834 7835 * ftp.c (ftp_retrieve_dirs): The bug where recursion into FTP 7836 directories didn't work if logging in put you in a directory other 7837 than "/" is fixed now. Removed the comment here warning of the bug. 7838 7839 * main.c (print_help): --continue's description was misleading. 7840 We don't "restart", we "resume". Also, better to say 7841 "partially-downloaded file" rather than just "existing file". 7842 78432001-01-06 Dan Harkless <wget@harkless.org> 7844 7845 * ChangeLog: The '[Not in 1.6 branch.]'s were decided not to be 7846 the best way to go about my aim. Removed them in favor of: 7847 7848 * ChangeLog-branches/1.6_branch.ChangeLog: New file. 7849 78502001-01-04 Hrvoje Niksic <hniksic@arsdigita.com> 7851 7852 * url.c (replace_attr): New function, to be used by both 7853 TO_COMPLETE and TO_RELATIVE case in convert_links. 7854 (find_fragment): New function for finding URL fragments. 7855 (replace_attr): Better handle the case where the original string 7856 is not quoted. Use find_fragment. 7857 (convert_links): Use replace_attr(). 7858 78592000-12-31 Dan Harkless <wget@harkless.org> 7860 7861 * ChangeLog: Since this flat file doesn't have multiple branches, 7862 looking at the dates would make you think that things went into 7863 1.6 that actually just went into the 1.7-dev branch. Added "[Not 7864 in 1.6 branch.]" where appropriate to clarify. 7865 78662000-12-30 Dan Harkless <wget@harkless.org> 7867 7868 * ftp.c, http.c: Applied Hack Kampbj�rn <hack@hackdata.com>'s 7869 patch to deal with h_errno not being defined in netdb.h under Cygwin. 7870 78712000-12-18 Csaba Raduly <csaba.raduly@sophos.com> 7872 7873 * sysdep.h: Include <malloc.h> and <io.h> under Watcom. 7874 78752000-12-17 Igor Khristophorov <igor@atdot.org> 7876 7877 * http.c (check_end): Fix test for '+' or '-'. 7878 78792000-12-17 Hrvoje Niksic <hniksic@arsdigita.com> 7880 7881 * url.c (parseurl): Rename inner loop var from i to ind to avoid 7882 clash with the function top-level-declared variable i. 7883 (str_url): Likewise, rename inner-loop i to j. 7884 7885 * recur.c (parse_robots): Don't declare LEN at top of function. 7886 (robots_match): Renamed parameter FORBIDDEN to avoid hiding of 7887 global variable. 7888 7889 * main.c (main): Change erroneous use of bitwise and to logical. 7890 7891 * init.c (cmd_address): Don't heap-allocate `sin'; it can be on 7892 the stack because it will be copied to closure. 7893 7894 Thanks to Csaba Raduly's run of PC-LINT over the sources. 7895 78962000-12-17 Hrvoje Niksic <hniksic@arsdigita.com> 7897 7898 * http.c (basic_authentication_encode): Use xmalloc(), not 7899 malloc(). Thanks to Csaba Raduly's run of PC-LINT over the 7900 sources. 7901 79022000-12-17 Csaba Raduly <csaba.raduly@sophos.com> 7903 7904 * sysdep.h: Test for __EMX__ rather than for EMXOS2 for OS/2 7905 compilation. 7906 79072000-12-17 Hrvoje Niksic <hniksic@arsdigita.com> 7908 7909 * mswindows.c: Include <errno.h>. 7910 7911 * gen_sslfunc.c: Include <errno.h>. 7912 7913 * ftp-basic.c: Don't attempt to declare errno or h_errno because 7914 they're not used. 7915 7916 * main.c: Include <errno.h> because errno is used. 7917 7918 * ftp.c: Ditto. 7919 7920 * http.c: Include <netdb.h> for h_errno. 7921 79222000-12-13 Hrvoje Niksic <hniksic@arsdigita.com> 7923 7924 * html-parse.c (advance_declaration): MSVC assert() chokes on 7925 '\"'. Use '"' instead. 7926 79272000-12-11 Hrvoje Niksic <hniksic@arsdigita.com> 7928 7929 * utils.c (xfree_real): Removed. 7930 (xfree_debug): Just call free(). 7931 7932 * wget.h (xfree): Make it an alias for free. 7933 79342000-12-11 Hrvoje Niksic <hniksic@arsdigita.com> 7935 7936 * http.c (http_loop): Furthermore, touch output_document only if 7937 it is known to be an existing regular file. 7938 79392000-12-11 Hrvoje Niksic <hniksic@arsdigita.com> 7940 7941 * ftp.c (ftp_retrieve_list): Ditto. 7942 7943 * http.c (http_loop): Touch output_document if that is used for 7944 output. 7945 79462000-12-06 Hrvoje Niksic <hniksic@arsdigita.com> 7947 7948 * http.c: Include gen_sslfunc.h after including Wget's headers. 7949 (persistent_available_p): Needed coma before `int ssl'. 7950 79512000-12-06 Hrvoje Niksic <hniksic@arsdigita.com> 7952 7953 * ftp.c (ftp_loop_internal): Ditto. 7954 7955 * http.c (http_loop): Use it. 7956 7957 * retr.c (sleep_between_retrievals): New function that handles the 7958 logic of opt.wait and opt.waitretry. 7959 79602000-12-06 Hrvoje Niksic <hniksic@arsdigita.com> 7961 7962 * rbuf.h: Implement only a single version of RBUF_READCHAR, using 7963 rbuf_read_bufferful when the buffer is depleted. 7964 7965 * rbuf.c (rbuf_read_bufferful): New function. 7966 79672000-12-06 Hrvoje Niksic <hniksic@arsdigita.com> 7968 7969 * gen_sslfunc.h: Use ansi2knr style function declarations. 7970 7971 * gen_sslfunc.c: Reformat according to the GNU coding standards. 7972 More should be done. 7973 7974 * http.c (persistent_available_p): Place the cheap SSL test nearer 7975 the top of the function. 7976 (CLOSE_FINISH, CLOSE_INVALIDATE): Define only one version of each. 7977 79782000-12-05 Hrvoje Niksic <hniksic@arsdigita.com> 7979 7980 * url.c (init_unsafe_char_table): Reinstate space as an unsafe 7981 char. 7982 79832000-12-03 Christian Fraenkel <christian.fraenkel@gmx.net> 7984 7985 * Makefile.in: added gen_sslfunc object 7986 * config.h.in: added HAVE_SSL define 7987 * connect.c: changed select_fd from static int to int 7988 * connect.h: ditto 7989 * gen_sslfunc.h: New file 7990 * gen_sslfunc.c: ditto 7991 * http.c: added HTTPS fuctionality 7992 * retrc.c: ditto 7993 * url.c: ditto 7994 * init.c: added opt.httpsproxy 7995 * options.h: ditto 7996 * rbuf.h: added alternate rbuf struct 7997 * wget.h: added CONSSLERR 7998 * rbuf.c: ditto 7999 8000 * http.c: Added HTTPS fuctionality. 8001 8002 * retrc.c: Ditto. 8003 8004 * url.c: Ditto. 8005 8006 * init.c: Added opt.httpsproxy. 8007 8008 * options.h: Ditto. 8009 8010 * rbuf.h: Added alternate rbuf struct. 8011 8012 * wget.h: Added CONSSLERR. 8013 8014 * rbuf.c: Ditto. 8015 80162000-11-30 Jan Prikryl <prikryl@cg.tuwien.ac.at> 8017 8018 * ftp-ls.c (ftp_parse_unix_ls): Added second parameter 8019 "ignore_perms" to ignore file and directory permissions for 8020 Windows NT FTP server listings. 8021 (ftp_parse_winnt_ls): New function. 8022 (ftp_parse_ls): Parses UNIX and Windows NT listings 8023 separately. Simple heuristics for distinguishing between UNIX and 8024 MS-DOS-like FTP listing provided by Windows NT FTP service. 8025 80262000-11-18 Jan Prikryl <prikryl@cg.tuwien.ac.at> 8027 8028 * ftpparse.c, ftpparse.h: New files. 8029 8030 * ftp-ls.c (ftp_parse_ls): Use ftp_parse_unix_ls for UNIX servers 8031 only. Use ftp_parse_nonunix_ls otherwise. 8032 (ftp_parse_nonunix_ls): Stub to the ftpparse library handling all 8033 exotic FTP servers. 8034 8035 * ftp.h (stype): New enum, distinguishes UNIX, VMS, and "other" 8036 FTP servers. 8037 8038 * ftp.c: New static wariables host_type, pwd, and pwd_len. 8039 (getftp): Support for VMS. Support for FTP servers that do not 8040 place you in the root directory after login. 8041 (ftp_retrieve_list): VMS is silent about the real file size, issue 8042 a more appropriate message. 8043 (ftp_get_listing): Pass host_type to ftp_parse_ls. 8044 8045 * ftp-basic.c (ftp_pwd, ftp_syst): New functions. 8046 80472000-11-30 Jan Prikryl <prikryl@cg.tuwien.ac.at> 8048 8049 * ftp-ls.c (ftp_parse_unix_ls): Added second parameter 8050 "ignore_perms" to ignore file and directory permissions for 8051 Windows NT FTP server listings. 8052 (ftp_parse_winnt_ls): New function. 8053 (ftp_parse_ls): Parses UNIX and Windows NT listings 8054 separately. Simple heuristics for distinguishing between UNIX 8055 and MS-DOS-like FTP listing provided by Windows NT FTP service. 8056 80572000-11-29 John Summerfield <summer@OS2.ami.com.au> 8058 8059 * netrc.c (parse_netrc): Get rid of line ending. 8060 80612000-11-25 Hrvoje Niksic <hniksic@arsdigita.com> 8062 8063 * ftp.c (ftp_retrieve_list): Undo typo "fix" until resolution by 8064 Dan. 8065 80662000-11-24 Karl Eichwalder <ke@suse.de> 8067 8068 * main.c (print_help): Untabify. 8069 80702000-11-23 Hrvoje Niksic <hniksic@arsdigita.com> 8071 8072 * utils.c (xrealloc_debug): Do the unregister/register thing only 8073 if the pointer has actually changed. 8074 (xmalloc_real): Declare `static' in DEBUG_MALLOC builds. 8075 (xfree_real): Ditto. 8076 (xrealloc_real): Ditto. 8077 (xstrdup_real): Ditto. 8078 80792000-11-22 Hrvoje Niksic <hniksic@arsdigita.com> 8080 8081 * ftp.c (getftp): ftp_getaddress() returns a malloc'ed copy of the 8082 string; no need to strdup() it. 8083 (getftp): Make pwd_len a local variable. 8084 (ftp_loop): Free PWD before returning. 8085 8086 * init.c (cleanup): Free opt.ftp_pass only if it's non-NULL. 8087 80882000-11-22 Hrvoje Niksic <hniksic@arsdigita.com> 8089 8090 * all: Use xfree() instead of free. 8091 8092 * utils.c (xfree): New function. 8093 80942000-11-21 Hrvoje Niksic <hniksic@arsdigita.com> 8095 8096 * url.c (convert_links): HTML-quote the converted string. 8097 8098 * utils.c (html_quote_string): Move here from ftp-ls.c 8099 (html_quote_string): Make non-static; declare in utils.h. 8100 (html_quote_string): Convert SP to  . 8101 81022000-11-21 Hrvoje Niksic <hniksic@arsdigita.com> 8103 8104 * ftp.c (getftp): Reformat Jan's code according to GNU coding 8105 standards; remove (debugging?) printf's; use '\0' for the ASCII 8106 zero character. Use alloca() instead of malloc() for 8107 inter-function temporary allocations. 8108 81092000-11-18 Jan Prikryl <prikryl@cg.tuwien.ac.at> 8110 8111 * ftpparse.c, ftpparse.h: New files. 8112 8113 * ftp-ls.c (ftp_parse_ls): Use ftp_parse_unix_ls for UNIX servers 8114 only. Use ftp_parse_nonunix_ls otherwise. 8115 (ftp_parse_nonunix_ls): Stub to the ftpparse library handling all 8116 exotic FTP servers. 8117 8118 * ftp.h (stype): New enum, distinguishes UNIX, VMS, and "other" 8119 FTP servers. 8120 8121 * ftp.c: New static wariables host_type, pwd, and pwd_len. 8122 (getftp): Support for VMS. Support for FTP servers that do not 8123 place you in the root directory after login. 8124 (ftp_retrieve_list): VMS is silent about the real file size, issue 8125 a more appropriate message. 8126 (ftp_get_listing): Pass host_type to ftp_parse_ls. 8127 8128 * ftp-basic.c (ftp_pwd, ftp_syst): New functions. 8129 81302000-11-21 Hrvoje Niksic <hniksic@arsdigita.com> 8131 8132 * hash.c (hash_table_put): Don't overwrite deleted mappings. 8133 81342000-11-21 Hrvoje Niksic <hniksic@arsdigita.com> 8135 8136 * hash.c (find_mapping): New function. 8137 (hash_table_get): Use it. 8138 (hash_table_get_pair): Ditto. 8139 (hash_table_exists): Ditto. 8140 (hash_table_remove): Ditto. 8141 (hash_table_remove): Really delete the entry if the mapping 8142 following LOCATION is empty. 8143 8144 * utils.c (string_set_add): Check whether the element has existed 8145 before. 8146 8147 * hash.c (hash_table_get_pair): New function. 8148 81492000-11-20 Hrvoje Niksic <hniksic@arsdigita.com> 8150 8151 * http.c (http_process_type): Ignore trailing whitespace; use 8152 strdupdelim(). 8153 8154 * recur.c (recursive_retrieve): Use the new `convert' field. 8155 (convert_all_links): Ditto. 8156 (convert_all_links): Don't respect meta_disallow_follow. 8157 8158 * html-url.c (handle_link): Fill out link_relative_p and 8159 link_complete_p. 8160 8161 * url.h (struct _urlpos): Make elements more readable. 8162 8163 * recur.c (recursive_retrieve): Call slist_prepend instead of 8164 slist_append. 8165 (convert_all_links): Call slist_nreverse before iterating through 8166 urls_html. 8167 8168 * utils.c (slist_prepend): New function. 8169 (slist_nreverse): Ditto. 8170 81712000-11-20 Hrvoje Niksic <hniksic@arsdigita.com> 8172 8173 * http.c (check_end): Constify. 8174 81752000-11-20 Hrvoje Niksic <hniksic@arsdigita.com> 8176 8177 * http.c (http_loop): If username and password are known, try the 8178 `Basic' authentication scheme by default. 8179 8180 * connect.h: Declare test_socket_open. 8181 81822000-11-20 Hrvoje Niksic <hniksic@arsdigita.com> 8183 8184 * version.c: Bump version from 1.5.3+dev to 1.7-dev. 8185 81862000-11-20 Hrvoje Niksic <hniksic@arsdigita.com> 8187 8188 * http.c (gethttp): Don't use the return value of sprintf(). 8189 (gethttp): Inhibit keep-alive if opt.http_keep_alive is 0. 8190 81912000-11-20 Hrvoje Niksic <hniksic@arsdigita.com> 8192 8193 * recur.c (recursive_retrieve): Print the "so we don't load" 8194 debugging message only if we really don't load. 8195 8196 * http.c (gethttp): Inhibit keep-alive if proxy is being used. 8197 (gethttp): Don't request keep-alive if keep-alive is inhibited. 8198 81992000-11-19 Hrvoje Niksic <hniksic@arsdigita.com> 8200 8201 * http.c (gethttp): Make the HTTP persistent connections more 8202 robust. 8203 82042000-11-19 Hrvoje Niksic <hniksic@arsdigita.com> 8205 8206 * retr.c (get_contents): If use_expected, make sure that the 8207 appropriate amount of data is being read. 8208 8209 * http.c (gethttp): Check for both `Keep-Alive: ...' and 8210 `Connection: Keep-Alive'. 8211 8212 * wget.h (DEBUGP): Call debug_logprintf only if opt.debug is 8213 turned on. 8214 82152000-11-19 Hrvoje Niksic <hniksic@arsdigita.com> 8216 8217 * http.c (connection_available_p): Use it. 8218 8219 * connect.c (test_socket_open): New function. 8220 8221 * http.c (gethttp): Support persistent connections. Based on the 8222 ideas, and partly on code, by Sam Horrocks <sam@daemoninc.com>. 8223 (register_persistent): New function. 8224 (connection_available_p): Ditto. 8225 (invalidate_connection): Ditto. 8226 82272000-11-19 Hrvoje Niksic <hniksic@arsdigita.com> 8228 8229 * url.c (convert_links): Handle UREL2ABS case. 8230 8231 * recur.c (recursive_retrieve): Instead of the list 8232 urls_downloaded, use hash tables dl_file_url_map and 8233 dl_url_file_map. 8234 (convert_all_links): Use them to retrieve data. 8235 8236 * host.c (clean_hosts): Free the hash tables. 8237 8238 * main.c (private_initialize): Call host_init(). 8239 8240 * host.c (store_hostaddress): Use a saner, hash table-based data 8241 model. 8242 (realhost): Ditto. 8243 (host_init): Initialize the hash tables. 8244 82452000-11-18 Hrvoje Niksic <hniksic@arsdigita.com> 8246 8247 * utils.c (slist_append): Eviscerate NOSORT. Hash tables are now 8248 used for what the sorted slists used to be used for. 8249 (slist_contains): Don't rely on the list being sorted. 8250 (slist_append): Simplify the code. 8251 8252 * recur.c (recursive_cleanup): Use free_string_set. 8253 8254 * utils.c (string_set_add, string_set_exists, string_set_free): 8255 New functions for easier freeing of hash tables whose keys are 8256 strdup'ed strings. 8257 8258 * recur.c (recursive_retrieve): Use the hash table functions for 8259 storing undesirable URLs. 8260 8261 * hash.c: New file. 8262 82632000-11-17 Hrvoje Niksic <hniksic@arsdigita.com> 8264 8265 * main.c (private_initialize): Call url_init. 8266 (main): Call private_initialize. 8267 8268 * url.c (unsafe_char_table): New table. 8269 (UNSAFE_CHAR): Use it. 8270 (init_unsafe_char_table): New function. 8271 (url_init): New function; call init_unsafe_char_table. 8272 82732000-11-16 Hrvoje Niksic <hniksic@arsdigita.com> 8274 8275 * mswindows.h: Define snprintf and vsnprintf to _snprintf and 8276 _vsnprintf respectively. 8277 82782000-11-15 Hrvoje Niksic <hniksic@arsdigita.com> 8279 8280 * config.h.in: Do the _XOPEN_SOURCE and _SVID_SOURCE things only 8281 on Linux. 8282 82832000-11-15 Hrvoje Niksic <hniksic@arsdigita.com> 8284 8285 * html-url.c (handle_link): Handle HTML fragment identifiers. 8286 8287 * recur.c (recursive_retrieve): If norobot info is respected and 8288 the file is specified not to be followed by robots, respect that. 8289 8290 * html-url.c (collect_tags_mapper): Handle <meta name=robots 8291 content=X>. For us the important cases are where X is NONE or 8292 where X contains NOFOLLOW. 8293 (get_urls_html): Propagate that information to the caller. 8294 82952000-11-13 Hrvoje Niksic <hniksic@arsdigita.com> 8296 8297 * url.c (convert_links): Unlink the file we might be reading from 8298 before writing to it. 8299 (convert_links): Use alloca instead of malloc for 8300 filename_plus_orig_suffix. 8301 83022000-11-12 Hrvoje Niksic <hniksic@arsdigita.com> 8303 8304 * host.c (realhost): Add HOST to the list with quality==0 only if 8305 it wasn't already there. 8306 Based on analysis by Lu Guohan <feng@public.bjnet.edu.cn>. 8307 83082000-11-10 Hrvoje Niksic <hniksic@arsdigita.com> 8309 8310 * url.c (get_urls_file): Ditto. 8311 (convert_links): Ditto. 8312 8313 * html-url.c (get_urls_html): Use read_file() instead of 8314 load_file(). 8315 8316 * utils.c (read_file): New function, instead of the old 8317 load_file(). 8318 (read_file_free): Ditto. 8319 8320 * url.c (findurl): Search only for the supported protocols. 8321 (convert_links): Use fwrite() when writing out a region of 8322 characters. 8323 83242000-11-10 Hrvoje Niksic <hniksic@arsdigita.com> 8325 8326 * ftp-ls.c: Move html_quote_string and ftp_index here. 8327 8328 * url.c: Remove get_urls_html, since that's now in html-url.c. 8329 8330 * html-url.c: New file. 8331 8332 * html-parse.c: New file. 8333 83342000-11-10 Hrvoje Niksic <hniksic@arsdigita.com> 8335 8336 * init.c (run_wgetrc): Don't bother killing off '\r' since 8337 pars_line() skips whitespace at end of line anyway. 8338 (parse_line): Oops, it didn't. Now it does. 8339 8340 * recur.c (parse_robots): Ditto here. 8341 8342 * ftp-ls.c (ftp_parse_unix_ls): Kill off the newline character 8343 manually because read_whole_line no longer does. 8344 8345 * utils.c (read_whole_line): Rewrite to: a) use less memory 8346 (reallocates to needed size after work), b) work faster --> 8347 fgets() instead of getc, c) be more correct --> doesn't kill the 8348 newline character at the end of line. 8349 83502000-11-10 Hrvoje Niksic <hniksic@arsdigita.com> 8351 8352 * init.c (comind): Initialize MAX to array size - 1. 8353 83542000-11-08 Hrvoje Niksic <hniksic@arsdigita.com> 8355 8356 * url.c (construct): Changed last_slash[-1] to *(last_slash - 1). 8357 Suggested by Edward J. Sabol. 8358 83592000-11-08 Hrvoje Niksic <hniksic@arsdigita.com> 8360 8361 * url.c (construct): Handle the case where host name is not 8362 followed by a slash. 8363 83642000-11-06 Hrvoje Niksic <hniksic@arsdigita.com> 8365 8366 * init.c: commands[] need to be sorted! ("base" wasn't.) 8367 83682000-11-05 Hrvoje Niksic <hniksic@arsdigita.com> 8369 8370 * wget.h (DO_REALLOC_FROM_ALLOCA): Use braces to disambiguate 8371 `if'. 8372 83732000-11-05 Hrvoje Niksic <hniksic@arsdigita.com> 8374 8375 * url.c (construct): Insert unneeded initialization for the 8376 compiler to shut up. 8377 8378 * config.h.in: Define _XOPEN_SOURCE to 500 to get the prototype 8379 for strptime() (*duh*). Define _SVID_SOURCE to get S_IFLNK which 8380 otherwise gets lost when you define _XOPEN_SOURCE. 8381 8382 * utils.c (touch): Include the file name in the error message. 8383 From Debian. 8384 83852000-11-05 Hrvoje Niksic <hniksic@arsdigita.com> 8386 8387 * log.c (logvprintf): Use vsnprintf() in all cases. If necessary, 8388 resize the buffer to fit the formated message. That way, messages 8389 of arbitrary size may be printed. 8390 (logvprintf): Use saved_append() to optionally log the last 8391 several lines of output. 8392 (logputs): Ditto. 8393 (log_close): Adapt to new data structures. 8394 (log_dump): Ditto. 8395 (redirect_output): Print messages to stderr, not to stdout. 8396 8397 * log.c (saved_append_1): New function. Replaces the old logging 8398 system ("log all output until 10M characters") with a new, much 8399 more reasonable one ("log last screenful of text"). 8400 (saved_append): New function; call saved_append_1. 8401 (free_log_line): New function. 8402 84032000-11-05 Hrvoje Niksic <hniksic@arsdigita.com> 8404 8405 * url.c (construct): Fix comment. 8406 (find_last_char): Document. 8407 84082000-11-04 Hrvoje Niksic <hniksic@arsdigita.com> 8409 8410 * snprintf.c: New file. 8411 84122000-11-03 Hrvoje Niksic <hniksic@arsdigita.com> 8413 8414 * wget.h: If HAVE_STDARG_H is not defined, don't declare argument 8415 types to logprintf() and debug_logprintf(). 8416 84172000-11-02 Hrvoje Niksic <hniksic@arsdigita.com> 8418 8419 * ftp.c (ftp_loop_internal): Hide the password from the URL when 8420 printing non-verbose. Problem spotted by Dariusz Mlynarczyk 8421 <darekm@bydg.lomac.com.pl>. 8422 84232000-11-02 Junio Hamano <junio@twinsun.com> 8424 8425 * ftp-basic.c (ftp_login): Make comparison case-insensitive. 8426 84272000-11-02 Tyler Riddle <triddle@liquidmarket.com> 8428 8429 * http.c (known_authentication_scheme_p): Recognize NTML 8430 authentication. 8431 (create_authorization_line): Treat NTML the same as `Basic'. 8432 84332000-11-02 Hrvoje Niksic <hniksic@arsdigita.com> 8434 8435 * retr.c (retrieve_url): Free url before returning. 8436 (retrieve_url): Free mynewloc before returning. 8437 Spotted by Mark A. Mankins <Mankins_Mark@prc.com>. 8438 84392000-11-02 Hrvoje Niksic <hniksic@arsdigita.com> 8440 8441 * url.c (parseurl): Remove possible reading past the end of 8442 sup_protos[]. Spotted by Mark A. Mankins <Mankins_Mark@prc.com>. 8443 84442000-11-01 Hrvoje Niksic <hniksic@arsdigita.com> 8445 8446 * main.c (main): In case of opt.downloaded overflowing, print 8447 <overflow> instead of a totally bogus random value. 8448 8449 * retr.c (retrieve_from_file): Ditto. 8450 8451 * recur.c (recursive_retrieve): Ditto. 8452 8453 * main.c (main): Ditto. 8454 8455 * http.c (http_loop): Ditto. 8456 8457 * ftp.c (ftp_loop_internal): Use downloaded_increase() instead of 8458 `+=', and downloaded_exceeds_quota() instead of the simple-minded 8459 check. 8460 (ftp_retrieve_list): Ditto. 8461 (ftp_retrieve_dirs): Ditto. 8462 (ftp_retrieve_glob): Ditto. 8463 8464 * retr.c (downloaded_increase): New function. Notice overflows of 8465 opt.downloaded. 8466 (downloaded_exceeds_quota): Make sure that opt.downloaded is not 8467 used if it overflowed. 8468 8469 * options.h (struct options): New member downloaded_overflow. 8470 84712000-11-01 Hrvoje Niksic <hniksic@arsdigita.com> 8472 8473 * wget.h (enum): Remove extra space after last enumeration. 8474 84752000-11-01 Hrvoje Niksic <hniksic@arsdigita.com> 8476 8477 * main.c (main): Use legible_very_long() for printing 8478 opt.downloaded. 8479 8480 * utils.c (legible_1): New function that operates on strings and 8481 does the brunt of legible()'s work. 8482 (legible): Use legible_1(). 8483 (legible_very_long): New function; dump the argument with 8484 sprintf(), and call legible_1(). 8485 8486 * options.h (struct options): Use VERY_LONG_TYPE for 8487 opt.downloaded. 8488 8489 * sysdep.h (VERY_LONG_TYPE): Define it to have a 64-bit or greater 8490 type. 8491 8492 * config.h.in: Make sure that SIZEOF_LONG and SIZEOF_LONG_LONG get 8493 defined. Define HAVE_LONG_LONG if long long is available. 8494 84952000-11-01 Hrvoje Niksic <hniksic@arsdigita.com> 8496 8497 * utils.c (long_to_string): Update with a later, better version. 8498 84992000-11-01 Hrvoje Niksic <hniksic@arsdigita.com> 8500 8501 * url.c (path_simplify_with_kludge): New function. 8502 (path_simplify_with_kludge): Disable it. Instead... 8503 (parse_dir): ...make sure that at this point the right thing is 8504 done, i.e. that "query" part of the URL (?...) is always assigned 8505 to the file, never to the directory portion of the path. 8506 85072000-11-01 Hrvoje Niksic <hniksic@arsdigita.com> 8508 8509 * retr.c (retrieve_url): Detect redirection cycles. 8510 85112000-11-01 Hrvoje Niksic <hniksic@arsdigita.com> 8512 8513 * url.c (get_urls_html): Decode HTML entities using 8514 html_decode_entities. 8515 8516 * html.c (htmlfindurl): Don't count the `#' in numeric entities 8517 (&#NNN;) as an HTML fragemnt. 8518 (html_decode_entities): New function. 8519 85202000-11-01 Hrvoje Niksic <hniksic@arsdigita.com> 8521 8522 * html.c (htmlfindurl): Fix recognition of # HTML fragments. 8523 85242000-11-01 Hrvoje Niksic <hniksic@arsdigita.com> 8525 8526 * url.c (construct): Rewritten for clarity. Avoids the 8527 unnecessary copying and stack-allocation the old version 8528 performed. 8529 85302000-10-31 Hrvoje Niksic <hniksic@arsdigita.com> 8531 8532 * ftp.c (getftp): Ditto. 8533 8534 * http.c (gethttp): Rewind the stream when retrying from scratch. 8535 85362000-10-31 Hrvoje Niksic <hniksic@arsdigita.com> 8537 8538 * retr.c (retrieve_url): Use url_concat() to handle relative 8539 redirections instead of /ad hoc/ code. 8540 8541 * url.c (url_concat): New function encapsulating weird 8542 construct(). 8543 (urllen_http_hack): New function. 8544 (construct): When constructing new URLs, recognize that `?' does 8545 not form part of the file name in HTTP. 8546 85472000-10-13 Adrian Aichner <adrian@xemacs.org> 8548 8549 * retr.c: Add msec timing support for WINDOWS. 8550 * retr.c (reset_timer): GetSystemTime() on WINDOWS. 8551 * retr.c (elapsed_time): Calculate delta time to msec on WINDOWS. 8552 85532000-10-27 Dan Harkless <wget@harkless.org> 8554 8555 * retr.c (retrieve_url): Manually applied T. Bharath 8556 <TBharath@responsenetworks.com>'s patch to get wget to grok 8557 illegal relative URL redirects. Reformatted and re-commented it. 8558 85592000-10-23 Dan Harkless <wget@harkless.org> 8560 8561 * connect.c (make_connection and bindport): Manually applied Rob 8562 Mayoff <mayoff@dqd.com>'s 1.5.3 patch to add --bind-address, 8563 changing coding style to GNU's. 8564 8565 * ftp.c (ftp_loop_internal): --delete-after wasn't implemented for 8566 files downloaded via FTP. Per a comment, .listing files were not 8567 counted towards number of bytes and files downloaded because they're 8568 deleted anyway. Well, they aren't under -nr, so count them then. 8569 8570 * init.c: Manually applied Rob Mayoff's 1.5.3 patch to add 8571 --bind-address, alphabetizing, changing coding style to GNU's, 8572 commenting, and renaming cmd_ip_address() to cmd_address() to 8573 imply hostnames also okay. 8574 8575 * main.c (main): --delete-after didn't delete the root of the 8576 tree. Ignore --convert-links if --delete-after was specified. 8577 Manually applied Rob Mayoff's 1.5.3 patch to add --bind-address, 8578 fixing duplicate use of added-since-1.5.3 case value. 8579 (print_help): Clarified that --delete-after deletes local files. 8580 Rob forgot to add a line for his new --bind-address option. 8581 8582 * options.h (struct options): Manually applied Rob Mayoff's patch 8583 to add --bind-address (bind_address structure member). 8584 8585 * recur.c (recursive_retrieve): Improved comment; added DEBUGP(). 8586 Ignore --convert-links if --delete-after was specified. 8587 8588 * retr.c (retrieve_from_file): Just added a DEBUGP(). 8589 85902000-10-19 Dan Harkless <wget@harkless.org> 8591 8592 * ftp.c (ftp_loop_internal): downloaded_file() enumerators changed. 8593 (getftp): Applied Piotr Sulecki <Piotr.Sulecki@ios.krakow.pl>'s 8594 patch to work around FTP servers that incorrectly respond to the 8595 "REST" command with the remaining size rather than the total file size. 8596 8597 * http.c (gethttp): Improved a comment and added code to tack on 8598 ".html" to text/html files without that extension when -E specified. 8599 (http_loop): Use new downloaded_file() enumerators and deal with 8600 the case of gethttp() called xrealloc() on u->local. 8601 8602 * init.c (commands): Added new "htmlextension" command. 8603 Also renamed John Daily's cmd_quad() to the more descriptive 8604 cmd_lockable_boolean(), alpha-sorted the CMD_DECLARE()s and 8605 removed duplicate cmd_boolean() declaration. 8606 8607 * main.c (print_help): Added my new -E / --html-extension option. 8608 (main): Undocumented --email-address option previously used -E synonym. 8609 Stole it away for the much more deserving --html-extension's use. 8610 8611 * options.h (struct options): Added html_extension field. 8612 8613 * url.c (convert_links): URL X that we saved as X.html locally due 8614 to -E needs to be backed up as X.orig, not X.html.orig. Added comments. 8615 (downloaded_file): Now remembers if we added .html extension to a file. 8616 8617 * url.h (downloaded_file_t): Added extra enumerators to support above. 8618 (downloaded_file): Now takes and returns a downloaded_file_t. 8619 8620 * wget.h (unnamed "dt" enum): Added ADDED_HTML_EXTENSION enumerator. 8621 86222000-10-09 Dan Harkless <wget@harkless.org> 8623 8624 * html.c (htmlfindurl): Added unneeded initialization to quiet warning. 8625 8626 * main.c (print_help): Clarified what --retr-symlinks does. 8627 86282000-09-15 John Daily <jdaily@cyberdude.com> 8629 8630 * init.c: Add support for "always" and "never" values to allow 8631 .wgetrc to override commandline (useful e.g. with .pm files 8632 calling `wget --passive-ftp' when your firewall doesn't allow that). 8633 8634 * ftp.c (getftp): passive_ftp is first option to support always/never. 8635 86362000-08-30 Dan Harkless <wget@harkless.org> 8637 8638 * ftp.c (ftp_retrieve_list): Use new INFINITE_RECURSION #define. 8639 8640 * html.c: htmlfindurl() now takes final `dash_p_leaf_HTML' parameter. 8641 Wrapped some > 80-column lines. When -p is specified and we're at a 8642 leaf node, do not traverse <A>, <AREA>, or <LINK> tags other than 8643 <LINK REL="stylesheet">. 8644 8645 * html.h (htmlfindurl): Now takes final `dash_p_leaf_HTML' parameter. 8646 8647 * init.c: Added new -p / --page-requisites / page_requisites option. 8648 8649 * main.c (print_help): Clarified that -l inf and -l 0 both allow 8650 infinite recursion. Changed the unhelpful --mirrior description 8651 to simply give the options it's equivalent to. Added new -p option. 8652 (main): Added some comments; handle new -p / --page-requisites. 8653 8654 * options.h (struct options): Added new page_requisites field. 8655 8656 * recur.c: Changed "URL-s" to "URLs" and "HTML-s" to "HTMLs". 8657 Calculate and pass down new `dash_p_leaf_HTML' parameter to 8658 get_urls_html(). Use new INFINITE_RECURSION #define. 8659 8660 * retr.c: Changed "URL-s" to "URLs". get_urls_html() now takes 8661 final `dash_p_leaf_HTML' parameter. 8662 8663 * url.c: get_urls_html() and htmlfindurl() now take final 8664 `dash_p_leaf_HTML' parameter. 8665 8666 * url.h (get_urls_html): Now takes final `dash_p_leaf_HTML' parameter. 8667 8668 * wget.h: Added some comments and new INFINITE_RECURSION #define. 8669 86702000-08-23 Dan Harkless <wget@harkless.org> 8671 8672 * main.c (print_help): -B / --base was not mentioned. 8673 86742000-08-22 Dan Harkless <wget@harkless.org> 8675 8676 * main.c (print_help): Modified -nc description to mention that it 8677 also prevents the creation of multiple versions of the same file 8678 with ".<number>" suffixes. 8679 86802000-07-14 Jan Prikryl <prikryl@cg.tuwien.ac.at> 8681 8682 * retr.c (retrieve_url): Consistently strdup opt.referer when 8683 setting u->referer. 8684 86852000-06-09 Dan Harkless <wget@harkless.org> 8686 8687 * main.c (print_help): --help output for --waitretry was over 80 cols. 8688 86892000-06-09 Hrvoje Niksic <hniksic@iskon.hr> 8690 8691 * url.c (encode_string): Fix comment. 8692 Suggested by Herold Heiko <Heiko.Herold@previnet.it>. 8693 86942000-06-01 Const Kaplinsky <const@ce.cctpu.edu.ru> 8695 8696 * ftp.c (ftp_retrieve_list): Change permissions only on plain 8697 files. 8698 86992000-06-01 Hrvoje Niksic <hniksic@iskon.hr> 8700 8701 * url.c (str_url): Print the port number only if it's different 8702 from the default port number for that protocol. 8703 87042000-05-22 Dan Harkless <wget@harkless.org> 8705 8706 * main.c (print_help): Added --help line for Damir Dzeko 8707 <ddzeko@zesoi.fer.hr>'s until-now-undocumented --referer option. 8708 Removed comments that --referer and --waitretry were undocumented. 8709 Changed "`.wgetrc' command" to "`.wgetrc'-style command" on --help 8710 line for --execute. 8711 87122000-05-18 Hrvoje Niksic <hniksic@iskon.hr> 8713 8714 * ftp.c (getftp): Ditto. 8715 8716 * http.c (gethttp): Check for return value of fclose/fflush. 8717 87182000-04-12 Hrvoje Niksic <hniksic@iskon.hr> 8719 8720 * host.c (store_hostaddress): Instead of shifting ADDR, start 8721 copying from the correct address. 8722 87232000-04-12 Hrvoje Niksic <hniksic@iskon.hr> 8724 8725 * http.c (gethttp): Don't free REQUEST -- it was allocated with 8726 alloca(). 8727 Pointed out by Gisle Vanem <gvanem@eunet.no>. 8728 87292000-04-04 Dan Harkless <wget@harkless.org> 8730 8731 * host.c (store_hostaddress): R. K. Owen's patch introduces a 8732 "left shift count >= width of type" warning on 32-bit 8733 architectures. Got rid of it by tricking the compiler w/ a variable. 8734 8735 * url.c (UNSAFE_CHAR): The macro didn't include all the illegal 8736 characters per RFC1738, namely everything above '~'. It also 8737 generated a warning on OSes where char =~ unsigned char. Fixed. 8738 87391998-10-17 Hrvoje Niksic <hniksic@srce.hr> 8740 8741 * http.c (http_process_type): Removed needless strdup(), a memory 8742 leak. 8743 87441998-09-25 Hrvoje Niksic <hniksic@srce.hr> 8745 8746 * html.c (htmlfindurl): Set PH to the first occurrence of `#'. 8747 87481998-09-25 Simon Munton <simonm@m4data.co.uk> 8749 8750 * init.c (wgetrc_file_name): Don't free HOME under Windows. 8751 87521998-12-01 "R. K. Owen" <rkowen@Nersc.GOV> 8753 8754 * host.c (store_hostaddress): Fix for big endian 64-bit machines. 8755 87561998-12-01 Hrvoje Niksic <hniksic@srce.hr> 8757 8758 * url.c (UNSAFE_CHAR): New macro. 8759 (contains_unsafe): Use it. 8760 (encode_string): Ditto. 8761 87621998-12-01 Hrvoje Niksic <hniksic@srce.hr> 8763 8764 * main.c (i18n_initialize): Use LC_MESSAGES only if available. 8765 87662000-03-31 Hrvoje Niksic <hniksic@srce.hr> 8767 8768 * Use TOUPPER/TOLOWER. 8769 87701998-12-22 Alexander V. Lukyanov <lav@yars.free.net> 8771 8772 * ftp-opie.c (btoe): Zero-terminate OSTORE. 8773 87742000-03-21 Hrvoje Niksic <hniksic@iskon.hr> 8775 8776 * wget.h (DO_REALLOC_FROM_ALLOCA): Ditto. 8777 8778 * sysdep.h (ISALNUM): New macro. 8779 (TOLOWER): Ditto. 8780 (TOUPPER): Ditto. 8781 87822000-03-10 Dan Harkless <wget@harkless.org> 8783 8784 * html.c (idmatch): Implemented checking of my new --follow-tags 8785 and --ignore-tags options. 8786 8787 * init.c (commands): Added comment reminding people adding new 8788 entries doing allocation to add corresponding freeing in cleanup(). 8789 (commands): Added new followtags and ignoretags commands. 8790 (cleanup): Free storage for new followtags and ignoretags. 8791 8792 * main.c: Use of "comma-separated list" was random -- normalized 8793 it. Did some alphabetization. Added comments pointing out 8794 "Options without arguments" and "Options accepting an argument" 8795 sections of long_options[]. Added new options --follow-tags and 8796 -G / --ignore-tags. Added comment that Damir's --referer is 8797 currently undocumented. Added comment that Heiko's --waitretry is 8798 partially undocumented (mentioned in --help but not in 8799 wget.texi). Moved improperly sorted 24, 129, and 'G' cases. 8800 8801 * options.h (struct options): Added new fields follow_tags and 8802 ignore_tags. 8803 8804 * wget.h: Added "#define EQ 0" so we can say "strcmp(a, b) == EQ". 8805 88062000-03-02 Dan Harkless <wget@harkless.org> 8807 8808 * ftp.c (ftp_loop_internal): Heiko introduced "suggest explicit 8809 braces to avoid ambiguous `else'" warnings. Eliminated them. 8810 8811 * http.c (gethttp): Dan Berger's query string patch is totally 8812 bogus. If you have two different URLs, gen_page.cgi?page1 and 8813 get_page.cgi?page2, they'll both be saved as get_page.cgi and the 8814 second will overwrite the first. Also, parameters to implicit 8815 CGIs, like "http://www.host.com/db/?2000-03-02" cause the URLs to 8816 be printed with trailing garbage characters, and could seg fault. 8817 Backing out the patch, which Dan B. informed me by email was just 8818 a kludge to download StarOffice from Sun made necessary due to 8819 wget's unconditional escaping of certain characters (room for an 8820 option there?). 8821 (http_loop): Heiko introduced "suggest explicit braces to avoid 8822 ambiguous `else'" warnings. Eliminated them. 8823 8824 * main.c: Heiko's --wait / --waitretry backwards compatibility 8825 code looks to have been totally untested -- automatic variable 8826 'wr' was used without being initialized, and a long int was passed 8827 into setval()'s char* val parameter. 8828 8829 * recur.c (parse_robots): Applied Edward J. Sabol 8830 <sabol@alderaan.gsfc.nasa.gov>'s patch for Guan Yang's reported 8831 problem with "User-agent:<space>*<space>" lines in robots.txt. 8832 8833 * url.c (parseurl, str_url): Removing Dan Berger's code (see 8834 http.c above for explanation). 8835 88361999-08-25 Heiko Herold <Heiko.Herold@previnet.it> 8837 8838 * ftp.c: Respect new option waitretry. 8839 88402000-01-30 Damir Dzeko <ddzeko@zesoi.fer.hr> 8841 8842 * http.c (gethttp): Send custom Referer, if required. 8843 88441999-09-24 Charles G Waldman <cgw@fnal.gov> 8845 8846 * netrc.c (parse_netrc): Allow passwords to contain spaces. 8847 8848 * netrc.c (parse_netrc): New function. 8849 88501999-09-17 Dan Berger <dberger@ix.netcom.com> 8851 8852 * http.c (gethttp): Send it. 8853 8854 * url.c (parseurl): Detect query string in HTTP URL-s. 8855 (str_url): Print it. 8856 88572000-03-02 HIROSE Masaaki <hirose31@t3.rim.or.jp> 8858 8859 * html.c (html_allow): Add <link href=...> and <script src=...>. 8860 88611999-05-02 andrew deryabin <djsf@softhome.net> 8862 8863 * http.c (gethttp): Specify port in `Host' header only if it's 8864 different from 80. 8865 88661998-11-03 Edward J. Sabol <sabol@alderaan.gsfc.nasa.gov> 8867 8868 * recur.c (recursive_retrieve): If a finite maximum depth is 8869 specified, and we're are already at that depth, don't download the 8870 HTML file for parsing. 8871 88722000-03-01 Dan Harkless <wget@harkless.org> 8873 8874 * ftp.c (ftp_loop_internal): Call new downloaded_file() function, 8875 even though we don't do conversion on HTML files retrieved via 8876 FTP, so _current_ usage of downloaded_file() makes this call unneeded. 8877 (ftp_retrieve_list): Added a comment saying where we need to 8878 stat() a .orig file if FTP'd HTML file conversion is ever implemented. 8879 (ftp_retrieve_list): "Local file '%s' is more recent," is sometimes 8880 a lie -- reworded as "Server file no newer than local file '%s' --". 8881 8882 * http.c (http_loop): Fixed a typo and clarified a comment. 8883 (http_loop): When -K and -N are specified together, compare size 8884 and timestamp of server file X against local file X.orig (if 8885 extant) rather than converted local file X. 8886 (http_loop): "Local file '%s' is more recent," is sometimes a lie 8887 -- reworded as "Server file no newer than local file '%s' --". 8888 (http_loop): Call new downloaded_file() function to prevent 8889 wrongful overwriting of .orig file when -N is specified. 8890 8891 * url.c (convert_links): When -K specified, only rename X to 8892 X.orig if downloaded_file() returns TRUE. Otherwise when we skip 8893 file X due to -N, we clobber an X.orig from a previous invocation. 8894 (convert_links): Call the failsafe xstrdup(), not the real strdup(). 8895 (convert_links): Added a note asking anyone who understands how 8896 multiple URLs can correspond to a single file to comment it. 8897 (downloaded_file): Added this new function. 8898 8899 * url.h (downloaded_file): Added prototype for this new function 8900 as well as its downloaded_file_t enum type. 8901 8902 * wget.h (boolean): Added this new typedef and TRUE and FALSE #defines. 8903 89042000-02-29 Dan Harkless <wget@harkless.org> 8905 8906 * version.c: Upped version to developer-only "1.5.3+dev". 8907 89082000-02-18 Dan Harkless <wget@harkless.org> 8909 8910 * init.c (backup_converted): Added this new option. 8911 8912 * main.c (-K / --backup-converted): Added this new option. 8913 8914 * options.h (backup_converted): Added this new option. 8915 8916 * url.c (convert_links): When backup_converted is specified, save 8917 file X as X.orig before converting. 8918 8919 * url.h (urlpos): Fixed typo -- said "Rekative" instead of "Relative". 8920 89211998-09-21 Hrvoje Niksic <hniksic@srce.hr> 8922 8923 * version.c: Wget 1.5.3 is released. 8924 89251998-09-21 Hrvoje Niksic <hniksic@srce.hr> 8926 8927 * host.c (ftp_getaddress): Don't warn when reverse-lookup of local 8928 address doesn't yield FQDN. 8929 89301998-09-21 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> 8931 8932 * cmpt.c (strerror): Fix declaration of sys_errlist. 8933 89341998-09-11 Hrvoje Niksic <hniksic@srce.hr> 8935 8936 * main.c (main): Don't use an array subscript as the first 8937 argument to STRDUP_ALLOCA. 8938 From Kaveh R. Ghazi. 8939 89401998-09-11 Szakacsits Szabolcs <szaka@sienet.hu> 8941 8942 * html.c (htmlfindurl): Download table background. 8943 89441998-09-11 Hans Grobler <grobh@conde.ee.sun.ac.za> 8945 8946 * init.c (parse_line): Would free *com before allocating it. 8947 (parse_line): Would free com instead of *com. 8948 89491998-09-10 Howard Gayle <howard@fjst.com> 8950 8951 * url.c (get_urls_html): Would drop the last character of the 8952 link. 8953 89541998-09-10 Hrvoje Niksic <hniksic@srce.hr> 8955 8956 * http.c (http_loop): Don't print status code if quiet. 8957 89581998-09-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 8959 8960 * log.c: Use <stdarg.h> only when __STDC__. 8961 89621998-09-10 Adam D. Moss <adam@foxbox.org> 8963 8964 * html.c (htmlfindurl): Download <layer src=...>. 8965 89661998-09-10 Howard Gayle <howard@fjst.com> 8967 8968 * ftp.c (ftp_retrieve_list): Don't update the time stamp of a file 8969 not retrieved. 8970 89711998-06-27 Hrvoje Niksic <hniksic@srce.hr> 8972 8973 * utils.c: Include <libc.h> on NeXT. 8974 89751998-06-26 Heinz Salzmann <heinz.salzmann@intermetall.de> 8976 8977 * url.c (get_urls_html): Fix calculation of URL position. 8978 89791998-06-23 Hrvoje Niksic <hniksic@srce.hr> 8980 8981 * version.c: Wget 1.5.2 is released. 8982 89831998-06-23 Dave Love <d.love@dl.ac.uk> 8984 8985 * ftp.c, init.c, netrc.c: Include errno.h. 8986 8987 * http.c: Include errno.h and time header. 8988 8989 * Makefile.in (exext): Define. 8990 (install.bin, uninstall.bin): Use it. 8991 89921998-06-21 Hrvoje Niksic <hniksic@srce.hr> 8993 8994 * http.c (http_loop): Don't attempt to compare local and remote 8995 sizes if the remote size is unknown. 8996 89971998-06-16 Hrvoje Niksic <hniksic@srce.hr> 8998 8999 * url.c (get_urls_html): Use malloc() instead of alloca in the 9000 loop. 9001 90021998-06-13 Hrvoje Niksic <hniksic@srce.hr> 9003 9004 * version.c: Wget 1.5.2-b4 is released. 9005 90061998-06-13 Hrvoje Niksic <hniksic@srce.hr> 9007 9008 * url.c (get_urls_html): Ignore spaces before and after the URI. 9009 90101998-06-08 Wanderlei Antonio Cavassin <cavassin@conectiva.com.br> 9011 9012 * ftp.c (getftp): Translate `done'. 9013 90141998-06-06 Hrvoje Niksic <hniksic@srce.hr> 9015 9016 * version.c: Wget 1.5.2-b3 is released. 9017 90181998-06-06 Alexander Kourakos <awk@bnt.com> 9019 9020 * init.c (cleanup): Close dfp, don't free it. 9021 90221998-06-06 Hrvoje Niksic <hniksic@srce.hr> 9023 9024 * utils.c (make_directory): Twiddle. 9025 9026 * config.h.in: Added template for access(). 9027 90281998-06-05 Mathieu Guillaume <mat@cythere.com> 9029 9030 * html.c (htmlfindurl): Download <input src=...> 9031 90321998-06-03 Hrvoje Niksic <hniksic@srce.hr> 9033 9034 * utils.c (file_exists_p): Use access() with two arguments. 9035 90361998-05-27 Martin Kraemer <Martin.Kraemer@mch.sni.de> 9037 9038 * netrc.c (parse_netrc): Correct logic. 9039 90401998-05-27 Hrvoje Niksic <hniksic@srce.hr> 9041 9042 * ftp.c (getftp): Added `break'; suggested by Lin Zhe Min 9043 <ljm@ljm.wownet.net>. 9044 90451998-05-24 Hrvoje Niksic <hniksic@srce.hr> 9046 9047 * version.c: Wget 1.5.2-b2 is released. 9048 90491998-05-18 Juan Jose Rodriguez <jcnsoft@jal1.telmex.net.mx> 9050 9051 * mswindows.h: Don't translate mkdir to _mkdir under Borland. 9052 90531998-05-17 Hrvoje Niksic <hniksic@srce.hr> 9054 9055 * retr.c (elapsed_time): Return correct value when 9056 HAVE_GETTIMEOFDAY is undefined. 9057 90581998-05-13 Hrvoje Niksic <hniksic@srce.hr> 9059 9060 * version.c: Wget 1.5.2-b1 is released. 9061 90621998-05-08 Hrvoje Niksic <hniksic@srce.hr> 9063 9064 * getopt.c (_getopt_internal): Use exec_name instead of argv[0]. 9065 (_getopt_internal): Don't translate `#if 0'-ed strings. 9066 90671998-05-06 Douglas E. Wegscheid <wegscd@whirlpool.com> 9068 9069 * mswindows.c (ws_handler): Use fork_to_background(). 9070 90711998-05-05 Hrvoje Niksic <hniksic@srce.hr> 9072 9073 * version.c: Wget 1.5.1 is released. 9074 90751998-05-05 Hrvoje Niksic <hniksic@srce.hr> 9076 9077 * http.c (parse_http_status_line): Avoid `minor' and `major' 9078 names. 9079 90801998-05-02 Hrvoje Niksic <hniksic@srce.hr> 9081 9082 * utils.c (mkdirhier): Renamed to make_directory. 9083 90841998-05-01 Hrvoje Niksic <hniksic@srce.hr> 9085 9086 * mswindows.c (fork_to_background): Define under Windows. 9087 9088 * utils.c (fork_to_background): New function. 9089 9090 * html.c (htmlfindurl): Removed rerdundant casts. 9091 90921998-05-01 Douglas E. Wegscheid <wegscd@whirlpool.com> 9093 9094 * mswindows.c (ws_mypath): Cache the path. 9095 90961998-04-30 Douglas E. Wegscheid <wegscd@whirlpool.com> 9097 9098 * ftp.h: Prefix enum ftype members with FT_. 9099 9100 * ftp-ls.c, ftp.c, html.h: Adjust accordingly. 9101 9102 * mswindows.h: Use stat under Borland, _stat under MSVC. 9103 91041998-04-28 Hrvoje Niksic <hniksic@srce.hr> 9105 9106 * http.c (known_authentication_scheme_p): New function. 9107 (gethttp): Handle authorization more correctly. 9108 9109 * ftp-basic.h: Removed. 9110 9111 * cmpt.h: Removed. 9112 9113 * utils.c: Include <unistd.h> before <pwd.h>; needed under SunOS 9114 with gcc 2.8. 9115 (numdigit): Use `while' loop. 9116 9117 * http.c (create_authorization_line): Detect authentication 9118 schemes case-insensitively. 9119 9120 * http.c (extract_header_attr): Use strdupdelim(). 9121 (digest_authentication_encode): Move declaration of local 9122 variables to smaller scope. 9123 (digest_authentication_encode): Reset REALM, OPAQUE and NONCE. 9124 (create_authorization_line): Detect authentication schemes 9125 case-insensitively. 9126 9127 * utils.c (touch): Constify. 9128 9129 * http.c (gethttp): Report a nicer error when no data is received. 9130 9131 * rbuf.h (RBUF_READCHAR): Ditto. 9132 9133 * ftp-basic.c (ftp_response): Use sizeof. 9134 91351998-04-27 Hrvoje Niksic <hniksic@srce.hr> 9136 9137 * retr.c (print_percentage): EXPECTED is long, not int. 9138 (print_percentage): Use floating-point arithmetic to avoid 9139 overflow with large files' sizes multiplied with 100. 9140 91411998-04-27 Gregor Hoffleit <flight@mathi.uni-heidelberg.de> 9142 9143 * config.h.in: Added pid_t stub. 9144 9145 * sysdep.h (S_ISREG): Moved here from mswindows.h (NeXT doesn't 9146 define it). 9147 91481998-04-20 Hrvoje Niksic <hniksic@srce.hr> 9149 9150 * version.c: Wget 1.5.0 is released. 9151 91521998-04-18 Hrvoje Niksic <hniksic@srce.hr> 9153 9154 * url.c (str_url): Ditto. 9155 9156 * ftp-basic.c (ftp_rest): Use new name. 9157 9158 * utils.c (long_to_string): Renamed from prnum(). 9159 91601998-04-16 Hrvoje Niksic <hniksic@srce.hr> 9161 9162 * version.c: Wget 1.5-b17 is released. 9163 91641998-04-08 Hrvoje Niksic <hniksic@srce.hr> 9165 9166 * headers.c (header_get): New argument FLAGS. 9167 9168 * http.c (gethttp): If request is malformed, bail out of the 9169 header loop. 9170 (gethttp): Check for empty header *after* the status line checks. 9171 (gethttp): Disallow continuations for status line. 9172 91731998-04-08 Hrvoje Niksic <hniksic@srce.hr> 9174 9175 * version.c: Wget 1.5-b16 is released. 9176 91771998-04-08 Hrvoje Niksic <hniksic@srce.hr> 9178 9179 * init.c (commands): Renamed `always_rest' to `continue'. 9180 91811998-04-05 Hrvoje Niksic <hniksic@srce.hr> 9182 9183 * all: Use it. 9184 9185 * log.c (logputs): New argument. 9186 (logvprintf): Ditto. 9187 (logprintf): Ditto. 9188 91891998-04-04 Hrvoje Niksic <hniksic@srce.hr> 9190 9191 * http.c (http_atotm): Update comment. 9192 9193 * main.c (i18n_initialize): Set LC_MESSAGES, not LC_ALL. 9194 9195 * wget.h: Renamed ENABLED_NLS to HAVE_NLS. 9196 9197 * main.c (i18n_initialize): New function. 9198 (main): Use it. 9199 9200 * log.c: Include <unistd.h>. 9201 9202 * retr.c (show_progress): Cast alloca to char *. 9203 92041998-04-04 Hrvoje Niksic <hniksic@srce.hr> 9205 9206 * version.c: Wget 1.5-b15 is released. 9207 92081998-04-04 Hrvoje Niksic <hniksic@srce.hr> 9209 9210 * utils.h: Declare file_non_directory_p(). 9211 92121998-04-03 Hrvoje Niksic <hniksic@srce.hr> 9213 9214 * main.c (main): It's `tries', not `numtries' now. 9215 92161998-04-01 Hrvoje Niksic <hniksic@srce.hr> 9217 9218 * init.c (getperms): Removed. 9219 92201998-04-01 Tim Charron <tcharron@interlog.com> 9221 9222 * log.c (logvprintf): Don't use ARGS twice. 9223 92241998-04-01 John <john@futuresguide.com> 9225 9226 * mswindows.c: Cleaned up. 9227 92281998-04-01 Hrvoje Niksic <hniksic@srce.hr> 9229 9230 * version.c: Wget 1.5-b14 is released. 9231 92321998-04-01 Hrvoje Niksic <hniksic@srce.hr> 9233 9234 * ftp-opie.c (STRLEN4): New macro. 9235 (btoe): Use it. 9236 92371998-04-01 Junio Hamano <junio@twinsun.com> 9238 9239 * http.c: Document all the Digest functions. 9240 92411998-04-01 Hrvoje Niksic <hniksic@srce.hr> 9242 9243 * utils.c (file_non_directory_p): Renamed from isfile(). 9244 9245 * mswindows.h (S_ISREG): New macro, suggested by Tim Adam. 9246 92471998-03-31 Hrvoje Niksic <hniksic@srce.hr> 9248 9249 * utils.c (mkdirhier): Use 0777 instead of opt.dirmode. 9250 9251 * init.c (cmd_spec_dotstyle): Use 48 dots per line for binary 9252 style. 9253 (cmd_permissions): Removed. 9254 9255 * config.h.in: Add template for WORDS_BIGENDIAN. 9256 92571998-03-31 Junio Hamano <junio@twinsun.com> 9258 9259 * http.c (HEXD2asc): New macro. 9260 (dump_hash): Use it. 9261 92621998-03-31 Hrvoje Niksic <hniksic@srce.hr> 9263 9264 * version.c: Wget 1.5-b13 is released. 9265 92661998-03-31 Hrvoje Niksic <hniksic@srce.hr> 9267 9268 * main.c (main): Don't try to use `com'. 9269 92701998-03-30 Hrvoje Niksic <hniksic@srce.hr> 9271 9272 * init.c (cmd_permissions): New function. 9273 92741998-03-30 Hrvoje Niksic <hniksic@srce.hr> 9275 9276 * version.c: Wget 1.5-b12 is released. 9277 92781998-03-30 Hrvoje Niksic <hniksic@srce.hr> 9279 9280 * init.c (commands): Renamed `numtries' to `tries'. 9281 (cmd_spec_debug): Removed. 9282 (home_dir): Under Windows, return `C:\' if HOME is undefined. 9283 92841998-03-29 Hrvoje Niksic <hniksic@srce.hr> 9285 9286 * config.h.in: Define _XOPEN_SOURCE. 9287 9288 * init.c (check_user_specified_header): New function. 9289 (cmd_spec_header): Use it. 9290 (cmd_spec_useragent): New function. 9291 92921998-03-29 Hrvoje Niksic <hniksic@srce.hr> 9293 9294 * version.c: Wget 1.5-b11 is released. 9295 92961998-03-28 Hrvoje Niksic <hniksic@srce.hr> 9297 9298 * wget.h: Include <libintl.h> only if NLS is enabled. 9299 93001998-03-26 Hrvoje Niksic <hniksic@srce.hr> 9301 9302 * options.h (struct options): Made `wait' a long. 9303 (struct options): Ditto for `timeout'. 9304 93051998-03-19 Hrvoje Niksic <hniksic@srce.hr> 9306 9307 * utils.c (exists): Renamed to file_exists_p. 9308 (file_exists_p): Use access() if available. 9309 93101998-03-17 Hrvoje Niksic <hniksic@srce.hr> 9311 9312 * utils.c (memfatal): Set save_log_p to 0 to avoid potential 9313 infloop. 9314 9315 * log.c: do_logging -> save_log_p. 9316 9317 * config.h.in: Added template for HAVE_VSNPRINTF. 9318 93191998-03-16 Hrvoje Niksic <hniksic@srce.hr> 9320 9321 * init.c: Ditto. 9322 9323 * http.c: Protect declaration against non-ANSI compiler. 9324 9325 * log.c (logvprintf): Use vsnprintf() if available. 9326 9327 * getopt.c (main): Don't translate test stuff. 9328 93291998-03-16 Hrvoje Niksic <hniksic@srce.hr> 9330 9331 * version.c: Wget 1.5-b10 is released. 9332 93331998-03-11 Hrvoje Niksic <hniksic@srce.hr> 9334 9335 * ftp.c (getftp): Don't translate "CWD %s". 9336 9337 * wget.h (GCC_FORMAT_ATTR): Renamed from FORMAT_ATTR. 9338 93391998-03-07 Hrvoje Niksic <hniksic@srce.hr> 9340 9341 * ftp-opie.c (btoe): Use memcpy() instead of strncat(). 9342 9343 * log.c (logputs): New function. 9344 (logvprintf): Renamed from vlogmsg; use logputs(). 9345 9346 * retr.c (show_progress): Print `[100%]' when the retrieval is 9347 finished. 9348 9349 * init.c (run_wgetrc): Use FILE, not PATH. 9350 (wgetrc_file_name): Ditto. 9351 93521998-03-07 Tim Adam <tma@osa.com.au> 9353 9354 * recur.c (parse_robots): Correctly reset `entries' on empty 9355 disallow. 9356 93571998-03-07 Hrvoje Niksic <hniksic@srce.hr> 9358 9359 * init.c (cmd_spec_debug): Use cmd_boolean(). 9360 93611998-02-23 Hrvoje Niksic <hniksic@srce.hr> 9362 9363 * http.c (gethttp): Create proxy-authorization correctly. 9364 93651998-02-22 Hrvoje Niksic <hniksic@srce.hr> 9366 9367 * md5.c: Ditto. 9368 9369 * getopt.c: Use ANSI function definitions. 9370 9371 * ftp-opie.c: New file. 9372 9373 * options.h: Don't redefine EXTERN. 9374 9375 * init.c: Sort it correctly. 9376 93771998-02-22 Hrvoje Niksic <hniksic@srce.hr> 9378 9379 * version.c: Wget 1.5-b9 is released. 9380 93811998-02-22 Hrvoje Niksic <hniksic@srce.hr> 9382 9383 * recur.c (recursive_retrieve): Reset `first_time'. 9384 9385 * ftp.c (getftp): Added `default' clause to switches of uerr_t. 9386 9387 * rbuf.c (rbuf_peek): Simplified. 9388 (rbuf_flush): Use MINVAL. 9389 9390 * wget.h (MINVAL): Moved from url.h. 9391 9392 * rbuf.h (RBUF_FD): New macro. 9393 9394 * url.c (add_url): Add to the head of the list. 9395 9396 * ftp.c (ftp_retrieve_list): Set the permissions to downloaded 9397 file. 9398 (getftp): Set the default permissions to 0600. 9399 94001998-02-21 Hrvoje Niksic <hniksic@srce.hr> 9401 9402 * url.c (get_urls_html): Ditto. 9403 (convert_links): Ditto. 9404 9405 * recur.c (parse_robots): Ditto. 9406 9407 * html.c (ftp_index): Ditto. 9408 9409 * ftp-ls.c (ftp_parse_unix_ls): Open file as binary. 9410 9411 * init.c (defaults): Initialize `opt' to zero via memset. 9412 9413 * http.c (digest_authentication_encode): goto considered harmful. 9414 94151998-02-19 Hrvoje Niksic <hniksic@srce.hr> 9416 9417 * ftp.c (delelement): Simplify and fix leak. 9418 94191998-02-18 Hrvoje Niksic <hniksic@srce.hr> 9420 9421 * http.c (dump_hash): Use HEXD2ASC instead of home-grown stuff. 9422 9423 * url.h (HEXD2ASC): Removed warning. 9424 9425 * init.c (comind): Use binary search. 9426 (commands): Reorganized. 9427 (setval): Ditto. 9428 (cmd_boolean): New function. 9429 (cmd_number): Ditto. 9430 (cmd_number_inf): Ditto. 9431 (cmd_string): Ditto. 9432 (cmd_vector): Ditto. 9433 (cmd_directory_vector): Ditto. 9434 (cmd_bytes): Ditto. 9435 (cmd_time): Ditto. 9436 (cmd_spec_debug): Ditto. 9437 (cmd_spec_dirmode): Ditto. 9438 (cmd_spec_dirstruct): Ditto. 9439 (cmd_spec_dotstyle): Ditto. 9440 (cmd_spec_header): Ditto. 9441 (cmd_spec_htmlify): Ditto. 9442 (cmd_spec_mirror): Ditto. 9443 (cmd_spec_outputdocument): Ditto. 9444 (cmd_spec_recursive): Ditto. 9445 (settime): Merged with cmd_time(). 9446 (setbytes): Merged with cmd_bytes(). 9447 (setonoff): Merged with cmd_boolean(). 9448 (onoff): Ditto. 9449 94501998-02-17 Hrvoje Niksic <hniksic@srce.hr> 9451 9452 * Makefile.in (distclean): Remove `config.h'. 9453 94541998-02-17 Hrvoje Niksic <hniksic@srce.hr> 9455 9456 * version.c: Wget 1.5-b8 is released. 9457 94581998-02-17 Hrvoje Niksic <hniksic@srce.hr> 9459 9460 * http.c (digest_authentication_encode): New function. 9461 (create_authorization_line): Use it. 9462 (dump_hash): New function. 9463 (digest_authentication_encode): Use it. 9464 9465 * fnmatch.c: Renamed from `mtch.c'. 9466 94671998-02-15 Karl Eichwalder <ke@suse.de> 9468 9469 * main.c (main): Tag "Written by..." string as translatable. 9470 94711998-02-15 Hrvoje Niksic <hniksic@srce.hr> 9472 9473 * wget.h (FREE_MAYBE): New macro. 9474 9475 * http.c (create_authorization_line): Don't use ANSI C string 9476 concatenation feature. 9477 (basic_authentication_encode): Use alloca() for temporary 9478 variables. 9479 9480 * recur.h: Ditto. 9481 9482 * http.c: Ditto. 9483 9484 * headers.h: Ditto. 9485 9486 * ftp-basic.c: Protect declaration against non-ANSI compiler. 9487 9488 * http.c (create_authorization_line): Cast `unsigned char *' to 9489 `char *' for sprintf, to shut up the noisy Digital Unix cc. 9490 94911998-02-15 Hrvoje Niksic <hniksic@srce.hr> 9492 9493 * version.c: Wget 1.5-b7 is released. 9494 94951998-02-15 Hrvoje Niksic <hniksic@srce.hr> 9496 9497 * cmpt.c (strstr): Synched with glibc-2.0.6. 9498 9499 * ftp-basic.c (calculate_skey_response): Ditto. 9500 (calculate_skey_response): Use alloca(). 9501 9502 * http.c (create_authorization_line): Work with FSF's version of 9503 md5.c. 9504 9505 * md5.c: New file, from GNU libc. 9506 95071998-02-14 Hrvoje Niksic <hniksic@srce.hr> 9508 9509 * url.h (URL_CLEANSE): Name the temporary variable more carefully. 9510 95111998-02-13 Hrvoje Niksic <hniksic@srce.hr> 9512 9513 * http.c (basic_authentication_encode): New function, instead of 9514 the macro. 9515 95161998-02-13 Junio Hamano <junio@twinsun.com> 9517 9518 * http.c: Add HTTP-DA support. 9519 * ftp-basic.c: Add Opie/S-key support. 9520 * config.h.in, Makefile.in: Add HTTP-DA and Opie/S-key support. 9521 * md5.c, md5.h: New files. 9522 95231998-02-13 Hrvoje Niksic <hniksic@srce.hr> 9524 9525 * http.c (http_process_range): Renamed from hprocrange(). 9526 (http_process_range): Parse the whole header. 9527 9528 * headers.c: New file. 9529 (header_process): New function. 9530 (header_get): Renamed from fetch_next_header. 9531 9532 * all: Include utils.h only where necessary. 9533 9534 * wget.h: Declare xmalloc(), xrealloc() and xstrdup() here. 9535 9536 * wget.h: Add provisions for dmalloc. 9537 95381998-02-12 Hrvoje Niksic <hniksic@srce.hr> 9539 9540 * version.c: Wget 1.5-b6 is released. 9541 95421998-02-12 Hrvoje Niksic <hniksic@srce.hr> 9543 9544 * ftp.c (ftp_loop): Determine `filename' more precisely. 9545 9546 * init.c (setval): Don't set `opt.quiet' if output-document is 9547 `-'. 9548 9549 * log.c (log_init): Print to STDERR instead of STDOUT. 9550 (vlogmsg): Use STDERR by default. 9551 (logflush): Ditto. 9552 95531998-02-11 Simon Josefsson <jas@pdc.kth.se> 9554 9555 * host.c: Use addr_in again. 9556 95571998-02-08 Karl Eichwalder <karl@suse.de> 9558 9559 * http.c (gethttp): Fixed typo. 9560 95611998-02-08 Hrvoje Niksic <hniksic@srce.hr> 9562 9563 * version.c: Wget 1.5-b5 is released. 9564 95651998-02-08 Hrvoje Niksic <hniksic@srce.hr> 9566 9567 * retr.c (show_progress): Use it. 9568 9569 * log.c (logflush): New function. 9570 9571 * wget.h: Utilize __attribute__ if on gcc. 9572 95731998-02-07 Hrvoje Niksic <hniksic@srce.hr> 9574 9575 * http.c (base64_encode_line): New argument LENGTH. 9576 (BASIC_AUTHENTICATION_ENCODE): Use it. 9577 (BASIC_AUTHENTICATION_ENCODE): Take length of HEADER into account. 9578 9579 * main.c (main): Fixed fprintf() format mismatch. 9580 95811998-02-06 Hrvoje Niksic <hniksic@srce.hr> 9582 9583 * version.c: Wget 1.5-b4 is released. 9584 95851998-02-03 Simon Josefsson <jas@pdc.kth.se> 9586 9587 * host.c: use sockaddr_in instead of addr_in. 9588 95891998-02-04 Hrvoje Niksic <hniksic@srce.hr> 9590 9591 * init.c (cleanup): Use it. 9592 9593 * recur.c (recursive_cleanup): New function. 9594 9595 * retr.c (retrieve_from_file): Ditto. 9596 9597 * main.c (main): Use it. 9598 9599 * recur.c (recursive_reset): New function. 9600 9601 * retr.c (retrieve_from_file): Ditto. 9602 9603 * main.c (main): Simplify call to recursive_retrieve(). 9604 9605 * recur.c (recursive_retrieve): Removed FLAGS argument. 9606 9607 * http.c (gethttp): Changed call to iwrite(). 9608 96091998-02-03 Hrvoje Niksic <hniksic@srce.hr> 9610 9611 * url.c (get_urls_html): Ditto. 9612 (free_urlpos): Ditto. 9613 (mkstruct): Ditto. 9614 (construct): Ditto. 9615 9616 * retr.c (retrieve_url): Move declaration of local variables to 9617 smaller scope. 9618 9619 * url.c (urlproto): Use it. 9620 (parseurl): Ditto. 9621 (str_url): Ditto. 9622 (get_urls_html): Ditto. 9623 9624 * utils.h (ARRAY_SIZE): New macro. 9625 9626 * url.c (proto): Moved from url.h. 9627 9628 * url.h (URL_CLEANSE): Reformatted. 9629 (USE_PROXY_P): Renamed from USE_PROXY. 9630 9631 * ftp-basic.c: Adjust to the new interface of iwrite(). 9632 9633 * ftp-basic.c (ftp_port): Use alloca(). 9634 96351998-02-03 Hrvoje Niksic <hniksic@srce.hr> 9636 9637 * version.c: Wget 1.5-b3 is released. 9638 9639 * host.c (ftp_getaddress): Don't print to stderr directly. 9640 9641 * init.c (setbytes): Support `g' for gigabytes. 9642 (cmdtype): New specification CTIME. 9643 (setval): Use it with settime(). 9644 (commands): Use it for WAIT and TIMEOUT. 9645 96461998-02-02 Hrvoje Niksic <hniksic@srce.hr> 9647 9648 * http.c (BASIC_AUTHENTICATION_ENCODE): New macro. 9649 (gethttp): Use it. 9650 9651 * utils.c (unique_name_1): Moved from url.c. 9652 (unique_name): Ditto. 9653 9654 * url.c (url_filename): Ditto. 9655 9656 * log.c (redirect_output): Changed call to unique_name(). 9657 9658 * url.c (unique_name_1): Renamed from unique_name(). 9659 (unique_name): Changed interface. 9660 9661 * init.c (enum cmdid): Moved from init.h. 9662 (cmdtype): Ditto. 9663 (struct cmd): Ditto. 9664 9665 * main.c (main): Use it. 9666 (main): Moved `--backups' to not have a short option. 9667 9668 * options.h (struct options): New member BACKGROUND. 9669 9670 * main.c (print_help): Rearranged. 9671 (main): New long options for -n* short options: --no-directories, 9672 --no-host-directories, --non-verbose, --no-host-lookup and 9673 --dont-remove-listing. 9674 96751998-02-01 Hrvoje Niksic <hniksic@srce.hr> 9676 9677 * main.c (main): Use log_close(). 9678 9679 * log.c: New variable LOGFP. 9680 (vlogmsg): Use it. 9681 (redirect_output): Don't open /dev/null; set LOGFP to stdin 9682 instead. 9683 (log_close): New function. 9684 9685 * options.h (struct options): Removed LFILE. 9686 9687 * log.c (log_enable): Removed. 9688 9689 * main.c (main): Use it. 9690 9691 * log.c (log_init): New function. 9692 9693 * url.c (get_urls_html): Removed needless assignment to BASE. 9694 9695 * host.c (add_hlist): Don't set CMP needlessly. 9696 9697 * utils.c (match_backwards): Ditto. 9698 (in_acclist): Ditto. 9699 9700 * url.c (findurl): Ditto. 9701 9702 * netrc.c (parse_netrc): Ditto. 9703 9704 * log.c (log_dump): Ditto. 9705 9706 * html.c (html_quote_string): Ditto. 9707 9708 * ftp-basic.c (ftp_request): Made static. 9709 9710 * connect.c: Made global variables static. 9711 9712 * url.c (construct): Ditto. 9713 9714 * init.c (init_path): Avoid assignment inside `if'-condition. 9715 9716 * ftp.c: Don't include in.h or winsock.h. 9717 9718 * ftp.c (ftp_loop): Use SZ. 9719 9720 * connect.c (bindport): Cast &addrlen to int *. 9721 (conaddr): Ditto. 9722 9723 * init.c (initialize): Don't use SYSTEM_WGETRC unconditionally. 9724 97251998-01-31 Hrvoje Niksic <hniksic@srce.hr> 9726 9727 * ftp.c (getftp): Initialize opt.ftp_pass here. 9728 (ftp_retrieve_dirs): Use alloca(). 9729 9730 * init.c (defaults): Don't initialize opt.ftp_pass. 9731 9732 * sysdep.h (S_ISLNK): Declare for OS/2; ditto for lstat. 9733 From Ivan F. Martinez <ivanfm@ecodigit.com.br>. 9734 97351998-01-31 Hrvoje Niksic <hniksic@srce.hr> 9736 9737 * recur.c (parse_robots): Check for comments more correctly. 9738 9739 * host.c (ftp_getaddress): Use STRDUP_ALLOCA. 9740 (ftp_getaddress): Add diagnostics when reverse-lookup yields only 9741 hostname. 9742 97431998-01-31 Hrvoje Niksic <hniksic@srce.hr> 9744 9745 * version.c: Wget 1.5-b2 is released. 9746 9747 * netrc.c (NETRC_FILE_NAME): Moved from netrc.h. 9748 9749 * utils.c (proclist): Pass FNM_PATHNAME to fnmatch(). 9750 9751 * ftp-basic.c (ftp_pasv): Avoid unnecessary casting to unsigned 9752 char. 9753 9754 * log.c: Don't attempt to hide arguments from ansi2knr. 9755 9756 * cmpt.c: Synched strptime() and mktime() with glibc-2.0.6. 9757 9758 * ansi2knr.c: Use a later version, from fileutils-3.16l alpha. 9759 9760 * ftp.c (getftp): Ditto. 9761 9762 * http.c (gethttp): Use it. 9763 9764 * retr.c (get_contents): New argument EXPECTED; pass it to 9765 show_progress(). 9766 (show_progress): New argument EXPECTED; use it to display 9767 percentages. 9768 9769 * init.c (setval): Ditto. 9770 9771 * http.c (gethttp): Ditto. 9772 (http_loop): Ditto. 9773 9774 * ftp.c (getftp): Ditto. 9775 (ftp_loop_internal): Ditto. 9776 9777 * ftp-ls.c (ftp_parse_unix_ls): Use abort() instead of assert(0). 9778 9779 * sysdep.h (CLOSE): Simplify; use DEBUGP. 9780 9781 * netrc.c (search_netrc): Use alloca(). 9782 9783 * init.c (defaults): Initialize no_flush. 9784 9785 * log.c (vlogmsg): Don't flush if no_flush. 9786 9787 * options.h (struct options): New variable no_flush. 9788 9789 * main.c (main): Don't play games with buffering. 9790 9791 * log.c (vlogmsg): Flush the output after every message. 9792 97931998-01-31 Hrvoje Niksic <hniksic@srce.hr> 9794 9795 * init.c (parse_line): Ditto. 9796 9797 * url.c (get_urls_html): Ditto. 9798 9799 * main.c (main): Don't cast to unsigned char. 9800 9801 * init.c (run_wgetrc): Don't cast to unsigned char. 9802 (parse_line): Accept char instead of unsigned char. 9803 9804 * html.c (htmlfindurl): Use char instead of unsigned char. 9805 9806 * all: Use them. 9807 9808 * sysdep.h: Add wrappers to ctype macros to make them 9809 eight-bit-clean: 9810 98111998-01-30 Hrvoje Niksic <hniksic@srce.hr> 9812 9813 * html.c (htmlfindurl): Download <img lowsrc=...> 9814 9815 * main.c (main): Ignore SIGPIPE. 9816 9817 * connect.c (select_fd): New argument WRITEP. 9818 (iwrite): Call select_fd(). 9819 98201997-02-27 Fila Kolodny <fila@ibi.com> 9821 9822 * ftp.c (ftp_retrieve_list): If retrieving symlink and the proper 9823 one already exists, just skip it. 9824 98251998-01-30 Hrvoje Niksic <hniksic@srce.hr> 9826 9827 * http.c (gethttp): Cosmetic changes. 9828 9829 * http.c (check_end): Allow `+D...' instead of `GMT'. 9830 From Fabrizio Pollastri <pollastri@cstv.to.cnr.it>. 9831 9832 * url.c (process_ftp_type): New function. 9833 (parseurl): Use it. 9834 9835 * connect.c (iwrite): Allow writing in a few chunks. 9836 (bindport): Made SRV static, so addr can point to it. 9837 (select_fd): Removed HPUX kludge. 9838 9839 * host.c (free_hlist): Incorporated into clean_hosts(). 9840 98411998-01-29 Hrvoje Niksic <hniksic@srce.hr> 9842 9843 * host.c (hlist): Made static. 9844 (search_address): Cosmetic change. 9845 98461998-01-29 Hrvoje Niksic <hniksic@srce.hr> 9847 9848 * version.c: Wget v1.5-b1 is released. 9849 9850 * http.c (hgetlen): Use sizeof() to get the header length. 9851 (hgetrange): Ditto. 9852 (hgettype): Ditto. 9853 (hgetlocation): Ditto. 9854 (hgetmodified): Ditto. 9855 (haccepts_none): Ditto. 9856 9857 * main.c (main): Updated `--version' and `--help' output, as per 9858 Francois Pinard's suggestions. 9859 9860 * main.c: Include locale.h; call setlocale(), bindtextdomain() and 9861 textdomain(). 9862 9863 * config.h.in: Define stubs for I18N3. 9864 9865 * wget.h: Include libintl.h. 9866 98671998-01-28 Hrvoje Niksic <hniksic@srce.hr> 9868 9869 * url.c (mkstruct): Check for opt.cut_dirs. 9870 (mkstruct): alloca()-te more, xmalloc() less. 9871 9872 * utils.c (load_file): Check for ferror(). 9873 9874 * url.c (get_urls_file): Close only the files we opened. 9875 (get_urls_html): Ditto. 9876 (count_slashes): New function. 9877 9878 * http.h: Removed. 9879 9880 * http.c (gethttp): Respect username and password provided by 9881 proxy URL. 9882 (base64_encode_line): Write into an existing buffer instead of 9883 malloc-ing a new one. 9884 (struct http_stat): Moved from http.h 9885 9886 * retr.c (retrieve_url): Free SUF. 9887 9888 * all: Removed lots of unnecessary .h dependencies. 9889 9890 * html.c (global_state): Made static. 9891 9892 * utils.h (ALLOCA_ARRAY): New macro. 9893 9894 * main.c (main): New option `--cut-dirs'. 9895 9896 * url.c (construct): Use alloca() for T. 9897 9898 * utils.c (mkdirhier): Use STRDUP_ALLOCA. 9899 9900 * host.c (_host_t): Moved from host.h. 9901 (struct host): Renamed from _host_t. 9902 (store_hostaddress): Use STRDUP_ALLOCA for INET_S. 9903 (realhost): Ditto. 9904 9905 * host.h: Don't include url.h. 9906 9907 * ftp.c (LIST_FILENAME): Moved from ftp.h. 9908 9909 * init.c (DEFAULT_FTP_ACCT): Moved from ftp.h. 9910 9911 * main.c (main): Enable log if the output goes to a TTY. 9912 9913 * connect.h: Removed unused constant `BACKLOG'. 9914 9915 * config.h.in: Check for isatty(). 9916 9917 * Makefile.in (LINK): Use CFLAGS when linking. 9918 99191998-01-27 Hrvoje Niksic <hniksic@srce.hr> 9920 9921 * mswindows.c (ws_hangup): Use redirect_output(). 9922 9923 * main.c (redirect_output_signal): New function; use 9924 redirect_output(). 9925 9926 * log.c (redirect_output): New function, based on hangup(), which 9927 is deleted. 9928 9929 * log.c (vlogmsg): New function. 9930 9931 * wget.h (DEBUGP): Use debug_logmsg(). 9932 9933 * main.c (hangup): Use it. 9934 9935 * log.c (log_dump): New function. 9936 9937 * utils.h (DO_REALLOC): Use `long' for various sizes. 9938 9939 * http.c (hskip_lws): Use `while', for clarity. 9940 (HTTP_DYNAMIC_LINE_BUFFER): New constant. 9941 (fetch_next_header): Use it instead of DYNAMIC_LINE_BUFFER. 9942 9943 * ftp-basic.c (FTP_DYNAMIC_LINE_BUFFER): New constant. 9944 (ftp_response): Use it instead of DYNAMIC_LINE_BUFFER. 9945 9946 * utils.c (DYNAMIC_LINE_BUFFER): Moved from utils.c. 9947 (LEGIBLE_SEPARATOR): Ditto. 9948 (FILE_BUFFER_SIZE): Ditto. 9949 9950 * retr.c (BUFFER_SIZE): Moved from retr.h. 9951 9952 * log.c: New file. 9953 (logmsg): Moved from utils.c. 9954 (debug_logmsg): New function. 9955 9956 * mswindows.h: Include it here. 9957 9958 * init.c: Ditto. 9959 9960 * utils.c: Don't include <windows.h>. 9961 99621998-01-25 Hrvoje Niksic <hniksic@srce.hr> 9963 9964 * host.c (ftp_getaddress): Ditto. 9965 9966 * main.c (main): Use it. 9967 9968 * utils.h (STRDUP_ALLOCA): New macro. 9969 9970 * init.c: Prepend `wget: ' to error messages printed on stderr. 9971 9972 * utils.c (mkdirhier): Renamed from mymkdir. 9973 (touch): Renamed from my_touch. 9974 (pwd_cuserid): Renamed from my_cuserid(). 9975 99761998-01-24 Andy Eskilsson <andy.eskilsson@telelogic.se> 9977 9978 * utils.c (accdir): Process wildcards. 9979 (proclist): New function. 9980 (accdir): Use it to avoid code repetition. 9981 99821998-01-24 Hrvoje Niksic <hniksic@srce.hr> 9983 9984 * recur.c (parse_robots): Respect opt.useragent; use alloca(). 9985 9986 * http.c (gethttp): Construct useragent accordingly. 9987 9988 * version.c: Changed version string to numbers-only. 9989 9990 * main.c (print_help): List all the options. 9991 9992 * mswindows.c (windows_main_junk): Initialize argv0 here. 9993 99941998-01-24 Karl Heuer <kwzh@gnu.org> 9995 9996 * netrc.c (search_netrc): Initialize `l' only after processing 9997 netrc. 9998 9999 * main.c (main): Don't trap SIGHUP if it's being ignored. 10000 100011998-01-24 Hrvoje Niksic <hniksic@srce.hr> 10002 10003 * all: Use logmsg(). 10004 10005 * utils.c (time_str): Moved from retr.c. 10006 (logmsg): New function. 10007 (logmsg_noflush): Ditto. 10008 10009 * rbuf.c: New file, moved buf_* functions here. 10010 10011 * ftp.c (ftp_expected_bytes): Moved from ftp-basic.c. 10012 10013 * ftp-basic.c (ftp_rest): Use prnum(). 10014 10015 * ftp-basic.c: Ditto. 10016 10017 * ftp.c: Use the new reading functions and macros. 10018 10019 * retr.c (buf_initialize): New function. 10020 (buf_initialized_p): Ditto. 10021 (buf_uninitialize): Ditto. 10022 (buf_fd): Ditto. 10023 10024 * http.c (fetch_next_header): Use the BUF_READCHAR macro for 10025 efficiency. 10026 (gethttp): Use alloca() where appropriate. 10027 10028 * retr.c (buf_readchar): Use it. 10029 (buf_peek): Use rstreams. 10030 10031 * retr.h (BUF_READCHAR): New macro. 10032 10033 * init.c (home_dir): Rewritten for clarity. 10034 (init_path): Ditto. 10035 10036 * mswindows.c (ws_backgnd): Made static. 10037 (read_registry): Ditto. 10038 (ws_cleanup): Ditto. 10039 (ws_handler): Ditto. 10040 100411998-01-23 Hrvoje Niksic <hniksic@srce.hr> 10042 10043 * alloca.c: New file. 10044 10045 * Makefile.in (ALLOCA): Define. 10046 10047 * mswindows.c (ws_help): Constify. 10048 (ws_help): Use alloca. 10049 10050 * mswindows.c: Reformat. 10051 10052 * all: Added _(...) annotations for I18N snarfing and translation. 10053 10054 * host.c (ftp_getaddress): Nuke SYSINFO. 10055 (ftp_getaddress): Don't use getdomainname(). 10056 (ftp_getaddress): Use uname(), where available. 10057 10058 * http.c (gethttp): Protect a stray fprintf(). 10059 10060 * init.c (settime): New function. 10061 (setval): Treat WAIT specially, allowing suffixes like `m' for 10062 minutes, etc. 10063 100641998-01-21 Hrvoje Niksic <hniksic@srce.hr> 10065 10066 * url.c (get_urls_html): Use alloca() for TEMP. 10067 100681998-01-21 Jordan Mendelson <jordy@wserv.com> 10069 10070 * url.c (rotate_backups): New function. 10071 10072 * http.c (gethttp): Ditto. 10073 10074 * ftp.c (getftp): Rotate backups. 10075 100761997-12-18 Hrvoje Niksic <hniksic@srce.hr> 10077 10078 * all: Renamed nmalloc(), nrealloc() and nstrdup() to xmalloc(), 10079 xrealloc() and xstrdup(). Use the new functions. 10080 10081 * url.c (decode_string): Made static. 10082 (has_proto): Ditto. 10083 (parse_dir): Ditto. 10084 (parse_uname): Ditto. 10085 (mkstruct): Ditto. 10086 (construct): Ditto. 10087 (construct_relative): Ditto. 10088 10089 * retr.c (show_progress): Made static. 10090 10091 * recur.c (robots_url): Made static. 10092 (retrieve_robots): Ditto. 10093 (parse_robots): Ditto. 10094 (robots_match): Ditto. 10095 10096 * main.h: Removed. 10097 10098 * main.c (printhelp): Made static. 10099 (hangup): Ditto. 10100 10101 * init.c (comind): Made static. 10102 (defaults): Ditto. 10103 (init_path): Ditto. 10104 (run_wgetrc): Ditto. 10105 (onoff): Ditto. 10106 (setonoff): Ditto. 10107 (setnum): Ditto. 10108 (myatoi): Ditto. 10109 (getperms): Ditto. 10110 (setbytes): Ditto. 10111 10112 * http.c (fetch_next_header): Made static. 10113 (hparsestatline): Ditto. 10114 (hskip_lws): Ditto. 10115 (hgetlen): Ditto. 10116 (hgetrange): Ditto. 10117 (hgettype): Ditto. 10118 (hgetlocation): Ditto. 10119 (hgetmodified): Ditto. 10120 (haccepts_none): Ditto. 10121 (gethttp): Ditto. 10122 (base64_encode_line): Ditto. 10123 (mktime_from_utc): Ditto. 10124 (http_atotm): Ditto. 10125 10126 * html.c (idmatch): Made static. 10127 10128 * host.c (search_host): Made static. 10129 (search_address): Ditto. 10130 (free_hlist): Ditto. 10131 10132 * ftp.c (getftp): Made static. 10133 (ftp_loop_internal): Ditto. 10134 (ftp_get_listing): Ditto. 10135 (ftp_retrieve_list): Ditto. 10136 (ftp_retrieve_dirs): Ditto. 10137 (ftp_retrieve_glob): Ditto. 10138 (freefileinfo): Ditto. 10139 (delelement): Ditto. 10140 10141 * ftp-ls.c (symperms): Made static. 10142 (ftp_parse_unix_ls): Ditto. 10143 10144 * connect.c (select_fd): Made static. 10145 10146 * utils.c (xmalloc): Renamed from nmalloc. 10147 (xrealloc): Renamed from nrealloc. 10148 (xstrdup): Renamed from nstrdup. 10149 10150 * getopt.c (exchange): Use alloca. 10151 10152 * mswindows.c (mycuserid): Use strncpy. 10153 10154 * New files mswindows.c, mswindows.h, sysdep.h. winjunk.c, 10155 systhings.h, windecl.h and winjunk.h removed. 10156 10157 * mswindows.c (sleep): New function. 10158 10159 * utils.c: Include <windows.h> under Windows. 10160 101611997-06-12 Darko Budor <dbudor@zesoi.fer.hr> 10162 10163 * url.h (URL_UNSAFE): Change default under Windows. 10164 10165 * retr.c (retrieve_from_file): Respect opt.delete_after. 10166 10167 * main.c (main): Call ws_help on Windows. 10168 10169 * winjunk.c (windows_main_junk): New function. 10170 10171 * main.c (main): Junk-process argv[0]. 10172 10173 * http.c (mktime_from_utc): Return -1 if mktime failed. 10174 10175 * http.c (http_loop): Ditto. 10176 10177 * ftp.c (ftp_loop_internal): Change title on Windows when using a 10178 new URL. 10179 10180 * winjunk.c (getdomainname): Lots of functions. 10181 101821997-06-12 Hrvoje Niksic <hniksic@srce.hr> 10183 10184 * cmpt.c (strptime_internal): Handle years more correctly for 10185 `%y'. 10186 101871997-06-09 Mike Thomas <mthomas@reality.ctron.com> 10188 10189 * http.c (gethttp): Allocate enough space for 10190 `Proxy-Authorization' header. 10191 101921997-05-10 Hrvoje Niksic <hniksic@srce.hr> 10193 10194 * version.c: Wget/1.4.5 is released. 10195 101961997-05-10 Hrvoje Niksic <hniksic@srce.hr> 10197 10198 * retr.c (get_contents): Check return value of fwrite more 10199 carefully. 10200 102011997-03-30 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> 10202 10203 * cmpt.c (strptime_internal) [case 'Y']: Always subtract 1900 from 10204 year, regardless of century. 10205 102061997-03-30 Hrvoje Niksic <hniksic@srce.hr> 10207 10208 * utils.c (isfile): Use `lstat' instead of `stat'. 10209 102101997-03-29 Hrvoje Niksic <hniksic@srce.hr> 10211 10212 * utils.c (numdigit): Use explicit test. 10213 102141997-03-21 Hrvoje Niksic <hniksic@srce.hr> 10215 10216 * http.c (http_loop): Always use `url_filename' to get u->local. 10217 102181997-03-20 Hrvoje Niksic <hniksic@srce.hr> 10219 10220 * url.c: Recognize https. 10221 102221997-03-13 Hrvoje Niksic <hniksic@srce.hr> 10223 10224 * recur.c (recursive_retrieve): Lowercase just the host name. 10225 102261997-03-09 Hrvoje Niksic <hniksic@srce.hr> 10227 10228 * url.c (get_urls_file): Use the correct test. 10229 (get_urls_html): Ditto. 10230 102311997-03-07 Hrvoje Niksic <hniksic@srce.hr> 10232 10233 * connect.c: Reverted addrlen to int. 10234 10235 * init.c (parse_line): Check for -1 instead of NONE. 10236 10237 * version.c: Changed version to 1.4.5. 10238 102391997-02-17 Hrvoje Niksic <hniksic@srce.hr> 10240 10241 * init.c: New option netrc. 10242 (initialize): Don't parse .netrc. 10243 10244 * cmpt.c (recursive): Return rp. 10245 (strptime_internal): Match the long strings first, the abbreviated 10246 second. 10247 102481997-02-16 Hrvoje Niksic <hniksic@srce.hr> 10249 10250 * http.c (check_end): New function. 10251 (http_atotm): Use it. 10252 102531997-02-13 gilles Cedoc <gilles@cedocar.fr> 10254 10255 * http.c (gethttp): Use them. 10256 10257 * init.c: New options proxy_user and proxy_passwd. 10258 102591997-02-14 Hrvoje Niksic <hniksic@srce.hr> 10260 10261 * ftp.c (ftp_retrieve_list): Create links even if not relative. 10262 102631997-02-10 Hrvoje Niksic <hniksic@srce.hr> 10264 10265 * recur.c (recursive_retrieve): Lowercase the host name, if the 10266 URL is not "optimized". 10267 10268 * host.c (realhost): Return l->hostname, even if it matches with 10269 host. 10270 102711997-02-10 Marin Purgar <pmc@asgard.hr> 10272 10273 * connect.c: Make addrlen size_t instead of int. 10274 (conaddr): Ditto. 10275 102761997-02-09 Gregor Hoffleit <flight@mathi.uni-heidelberg.DE> 10277 10278 * systhings.h: Define S_ISLNK on NeXT too. 10279 102801997-02-09 Hrvoje Niksic <hniksic@srce.hr> 10281 10282 * version.c: Released 1.4.3. 10283 10284 * url.c: Futher update to list of protostrings. 10285 (skip_proto): Skip `//' correctly for FTP and HTTP. 10286 10287 * url.c (get_urls_html): Handle bogus `http:' things a little 10288 different. 10289 10290 * main.c (main): Removed `follow-ftp' from `f'. 10291 (main): Dumped the `prefix-files' and `file-prefix' options and 10292 features; old and bogus. 10293 (main): Exit on failed setval() in `-e'. 10294 10295 * http.c (fetch_next_header): Use it to detect header continuation 10296 correctly. 10297 10298 * retr.c (buf_peek): New function. 10299 103001997-02-08 Hrvoje Niksic <hniksic@srce.hr> 10301 10302 * wget.h: Include time.h and stuff. 10303 103041997-02-08 Roger Beeman <beeman@cisco.com> 10305 10306 * ftp.c: Include <time.h> 10307 103081997-02-07 Hrvoje Niksic <hniksic@srce.hr> 10309 10310 * url.c (findurl): Would read over buffer limits. 10311 103121997-02-06 Hrvoje Niksic <hniksic@srce.hr> 10313 10314 * ftp-ls.c (ftp_parse_unix_ls): Allow spaces in file names. 10315 103161997-02-05 Hrvoje Niksic <hniksic@srce.hr> 10317 10318 * http.c (http_atotm): Initialize tm.is_dst. 10319 103201997-02-02 Hrvoje Niksic <hniksic@srce.hr> 10321 10322 * http.c (gethttp): Don't print the number of retrieved headers. 10323 10324 * main.c (main): New option `--no-clobber', alias for `-nc'. 10325 10326 * url.c: Recognize `https://'. 10327 103281997-02-01 Hrvoje Niksic <hniksic@srce.hr> 10329 10330 * host.c (herrmsg): Don't use h_errno. 10331 103321997-01-30 Hrvoje Niksic <hniksic@srce.hr> 10333 10334 * host.c (accept_domain): Use it. 10335 10336 * main.c (main): New option `--exclude-domains'. 10337 10338 * retr.c (retrieve_url): Use it. 10339 (retrieve_url): Bail out when an URL is redirecting to itself. 10340 10341 * url.c (url_equal): New function. 10342 103431997-01-29 Hrvoje Niksic <hniksic@srce.hr> 10344 10345 * connect.c: Include arpa/inet.h instead of arpa/nameser.h. 10346 10347 * http.c (mk_utc_time): New function. 10348 (http_atotm): Use it; handle time zones correctly. 10349 103501997-01-28 Hrvoje Niksic <hniksic@srce.hr> 10351 10352 * http.c: Ditto. 10353 10354 * ftp-basic.c: Use it instead of WRITE. 10355 10356 * connect.c (iwrite): New function. 10357 103581997-01-27 Hrvoje Niksic <hniksic@srce.hr> 10359 10360 * cmpt.c (mktime): New function. 10361 10362 * netrc.c: Include <sys/types.h>. 10363 10364 * main.c (main): Wouldn't recognize --spider. 10365 10366 * retr.c (rate): Use `B', `KB' and `MB'. 10367 (reset_timer,elapsed_time): Moved from utils.c. 10368 10369 * ftp.c (ftp_retrieve_list): Ditto. 10370 10371 * http.c (http_loop): Don't touch the file if opt.dfp. 10372 103731997-01-24 Hrvoje Niksic <hniksic@srce.hr> 10374 10375 * cmpt.c: New file. 10376 10377 * ftp.c (ftp_retrieve_glob): New argument semantics. 10378 (ftp_retrieve_dirs): Use it. 10379 (ftp_loop): Ditto. 10380 10381 * html.c (htmlfindurl): Recognize `'' as the quote char. 10382 103831997-01-23 Hrvoje Niksic <hniksic@srce.hr> 10384 10385 * ftp.c (ftp_loop_internal): Use it. 10386 10387 * utils.c (remove_link): New function. 10388 103891997-01-22 Hrvoje Niksic <hniksic@srce.hr> 10390 10391 * retr.c (retrieve_url): Require STRICT redirection URL. 10392 10393 * url.c (parseurl): New argument STRICT. 10394 10395 * http.c (hparsestatline): Be a little-bit less strict about 10396 status line format. 10397 103981997-01-21 Hrvoje Niksic <hniksic@srce.hr> 10399 10400 * http.c (gethttp): Use it. 10401 10402 * main.c (main): Don't use '<digit>' as options. 10403 10404 * init.c: New option ignore_length. 10405 10406 * http.c (gethttp): Ditto. 10407 (http_loop): Check for redirection without Location:. 10408 (gethttp): Don't print Length unless RETROKF. 10409 10410 * ftp.c (getftp): Use it. 10411 10412 * url.c (mkalldirs): New function. 10413 10414 * utils.c (mymkdir): Don't check for existing non-directory. 10415 10416 * url.c (mkstruct): Don't create the directory. 10417 104181997-01-20 Hrvoje Niksic <hniksic@srce.hr> 10419 10420 * init.c (setval): Removed NO_RECURSION checks. 10421 104221997-01-19 Hrvoje Niksic <hniksic@srce.hr> 10423 10424 * version.c: "Released" 1.4.3-pre2. 10425 10426 * recur.c (recursive_retrieve): Bypass host checking only if URL 10427 is ftp AND parent URL is not ftp. 10428 10429 * ftp-basic.c (ftp_request): Print out Turtle Power. 10430 10431 * ftp.c (ftp_loop): Call ftp_retrieve_glob with 0 if there's no 10432 wildcard. 10433 (ftp_retrieve_glob): Call ftp_loop_internal even on empty list, if 10434 not glob. 10435 10436 * http.c (gethttp): Be a little bit smarter about status codes. 10437 10438 * recur.c (recursive_retrieve): Always reset opt.recursive when 10439 dealing with FTP. 10440 104411997-01-18 Hrvoje Niksic <hniksic@srce.hr> 10442 10443 * retr.c (retrieve_url): New variable location_changed; use it for 10444 tests instead of mynewloc. 10445 (retrieve_url): Allow heuristic adding of html. 10446 10447 * url.c (url_filename): Don't use the `%' in Windows file names. 10448 10449 * http.c (http_loop): Always time-stamp the local file. 10450 10451 * http.c (http_loop): Ditto. 10452 10453 * ftp.c (ftp_retrieve_list): Use it. 10454 10455 * utils.c (my_touch): New function. 10456 10457 * ftp.c (ftp_retrieve_list): Use #ifdef HAVE_STRUCT_UTIMBUF 10458 instead of #ifndef NeXT. 10459 10460 * utils.c (strptime): New version, by Ulrich Drepper. 10461 104621997-01-17 Hrvoje Niksic <hniksic@srce.hr> 10463 10464 * http.c (haccepts_none): Renamed from `haccepts_bytes'. 10465 (gethttp): If haccepts_none(), disable ACCEPTRANGES. 10466 (http_loop): Would remove ACCEPTRANGES. 10467 10468 * ftp.c (getftp): Call ftp_list with NULL. 10469 104701997-01-15 Hrvoje Niksic <hniksic@srce.hr> 10471 10472 * html.c (ftp_index): Don't print minutes and seconds if we don't 10473 know them; beautify the output. 10474 10475 * ftp.c (getftp): Don't close the socket on FTPNSFOD. 10476 104771997-01-14 Hrvoje Niksic <hniksic@srce.hr> 10478 10479 * utils.c (strptime): New function. 10480 (strptime): Don't use get_alt_number. 10481 (strptime): Don't use locale. 10482 (match_string): Made it a function. 10483 104841997-01-12 Hrvoje Niksic <hniksic@srce.hr> 10485 10486 * http.c (http_atotm): New function. 10487 (http_loop): Use it. 10488 10489 * atotm.c: Removed from the distribution. 10490 10491 * http.c (base64_encode_line): Rewrite. 10492 104931997-01-09 Hrvoje Niksic <hniksic@srce.hr> 10494 10495 * ftp.c (getftp): Use ftp_expected_bytes; print size. 10496 10497 * ftp-basic.c (ftp_response): Use ftp_last_respline. 10498 (ftp_expected_bytes): New function. 10499 10500 * ftp.c (getftp): Print the unauthoritative file length. 10501 10502 * ftp-ls.c: Renamed from ftp-unix.c. 10503 (ftp_parse_ls): Moved from ftp.c. 10504 (ftp_parse_unix_ls): Recognize seconds in time spec. 10505 (ftp_parse_unix_ls): Recognize year-less dates of the previous 10506 year. 10507 105081997-01-08 Hrvoje Niksic <hniksic@srce.hr> 10509 10510 * ftp-basic.c: Don't declare errno if #defined. 10511 10512 * host.c (ftp_getaddress): Check for sysinfo legally. 10513 105141997-01-08 Darko Budor <dbudor@diana.zems.fer.hr> 10515 10516 * connect.c (iread): Use READ. 10517 105181996-12-23 Hrvoje Niksic <hniksic@srce.hr> 10519 10520 * url.c: Recognize finger, rlogin, tn3270, mid and cid as valid 10521 schemes. 10522 105231996-12-22 Hrvoje Niksic <hniksic@srce.hr> 10524 10525 * host.c (ftp_getaddress): Allow `.' in hostname. 10526 105271996-12-26 Darko Budor <dbudor@zems.fer.hr> 10528 10529 * wget.h: READ and WRITE macros for use instead of read and write 10530 on sockets, grep READ *.c, grep WRITE *.c 10531 10532 * wsstartup.c: new file - startup for winsock 10533 10534 * wsstartup.h: new file 10535 10536 * win32decl.h: new file - fixup for <errno.h> and winsock trouble 10537 10538 * configure.bat: Configure utility for MSVC 10539 10540 * src/Makefile.ms,config.h.ms: new files for use with MSVC 4.x 10541 105421996-12-22 Hrvoje Niksic <hniksic@srce.hr> 10543 10544 * version.c: Released 1.4.3-pre. 10545 10546 * utils.c (prnum): Accept long. 10547 (legible): Use prnum(). 10548 10549 * connect.c (make_connection): Accept port as short. 10550 (bindport): Ditto. 10551 10552 * http.c (gethttp): Use search_netrc. 10553 105541996-12-21 Hrvoje Niksic <hniksic@srce.hr> 10555 10556 * ftp.c (getftp): Use search_netrc. 10557 10558 * netrc.c (free_netrc): New function. 10559 10560 * init.c (home_dir): New function. 10561 10562 * url.c (convert_links): Allow REL2ABS changes. 10563 105641996-12-21 Gordon Matzigkeit <gord@gnu.ai.mit.edu> 10565 10566 * netrc.c: New file. 10567 (parse_netrc, maybe_add_to_list): New functions. 10568 105691996-12-17 Hrvoje Niksic <hniksic@srce.hr> 10570 10571 * retr.c (retrieve_url): Reset opt.recursion before calling 10572 ftp_loop if it is reached through newloc. 10573 10574 * init.c (run_wgetrc): Print the wgetrc path too, when reporting 10575 error; don't use "Syntax error", since we don't know if it is 10576 really a syntax error. 10577 105781996-12-16 Hrvoje Niksic <hniksic@srce.hr> 10579 10580 * utils.c (acceptable): Extract the filename part of the path. 10581 10582 * recur.c (recursive_retrieve): Call acceptable() with the right 10583 argument; would bug out on wildcards. 10584 10585 * init.c (parse_line): Likewise. 10586 10587 * html.c (htmlfindurl): Cast to char * when calling stuff. 10588 105891996-12-15 Hrvoje Niksic <hniksic@srce.hr> 10590 10591 * ftp.c (getftp): Use ftp_pasv. 10592 10593 * ftp-basic.c (ftp_request): Accept NULL value. 10594 (ftp_pasv): New function. 10595 10596 * options.h (struct options): Add passive FTP option. 10597 105981996-12-15 Hrvoje Niksic <hniksic@srce.hr> 10599 10600 * url.c (parseurl): Debug output. 10601 10602 * utils.c (path_simplify): New one, adapted from bash's 10603 canonicalize_pathname(). 10604 106051996-12-14 Hrvoje Niksic <hniksic@srce.hr> 10606 10607 * ftp.c (getftp): Don't discard the buffer. 10608 10609 * retr.c (get_contents): New parameter nobuf. 10610 106111996-12-13 Shawn McHorse <riffraff@txdirect.net> 10612 10613 * html.c (htmlfindurl): Recognize <meta contents="d; URL=...". 10614 10615 * init.c (setval): Strip the trailing slashes on CVECDIR. 10616 106171996-12-13 Hrvoje Niksic <hniksic@srce.hr> 10618 10619 * init.c: Make excludes and includes under CVECDIR instead of 10620 CVEC. 10621 106221996-12-13 Shawn McHorse <riffraff@txdirect.net> 10623 10624 * url.c (get_urls_html): Skip "http:". 10625 106261996-12-13 Hrvoje Niksic <hniksic@srce.hr> 10627 10628 * utils.c (strcasecmp): From glibc. 10629 (strncasecmp): Also. 10630 (strstr): Also. 10631 10632 * url.c: Added javascript: to the list of URLs prefixes. 10633 106341996-12-12 Shawn McHorse <riffraff@txdirect.net> 10635 10636 * recur.c (retrieve_robots): Print the warning message only if 10637 verbose. 10638 106391996-12-12 Gregor Hoffleit <flight@mathi.uni-heidelberg.DE> 10640 10641 * ftp.c (ftp_retrieve_list): Use NeXT old utime interface. 10642 106431996-12-12 Hrvoje Niksic <hniksic@srce.hr> 10644 10645 * systhings.h: New file. 10646 10647 * ../configure.in: Check for utime.h 10648 10649 * ftp.c: Check whether we have unistd.h. 10650 106511996-11-27 Hrvoje Niksic <hniksic@srce.hr> 10652 10653 * recur.c (recursive_retrieve): Send the canonical URL as referer. 10654 (recursive_retrieve): Call get_urls_html with the canonical URL. 10655 106561996-12-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 10657 10658 * (configure.in, config.h.in, src/Makefile.in, src/*.[ch]): Add 10659 ansi2knr support for compilers which don't support ANSI style 10660 function prototypes and signatures. 10661 10662 * (aclocal.m4, src/ansi2knr.c, src/ansi2knr.1): New files. 10663 106641996-11-26 Hrvoje Niksic <hniksic@srce.hr> 10665 10666 * url.c: Use it; Recognize paths ending with "." and ".." as 10667 directories. 10668 (url_filename): Append .n whenever file exists and could be a 10669 directory. 10670 10671 * url.h (ISDDOT): New macro. 10672 10673 * init.c (parse_line): Use unsigned char. 10674 10675 * url.c (get_urls_html): Cast to unsigned char * when calling 10676 htmlfindurl. 10677 10678 * html.c (htmlfindurl): Use unsigned char. 10679 10680 * version.c: Changed version to 1.4.3. 10681 106821996-11-25 Hrvoje Niksic <hniksic@srce.hr> 10683 10684 * version.c: Released 1.4.2. 10685 10686 * ftp.c (getftp): Simplified assertion. 10687 (ftp_loop_internal): Remove symlink before downloading. 10688 (ftp_retrieve_list): Unlink the symlink name before attempting to 10689 create a symlink! 10690 10691 * options.h (struct options): Renamed print_server_response to 10692 server_response. 10693 10694 * ftp.c (rel_constr): Removed. 10695 (ftp_retrieve_list): Don't use it. 10696 (ftp_retrieve_list): Use opt.retr_symlinks. 10697 106981996-11-24 Hrvoje Niksic <hniksic@srce.hr> 10699 10700 * main.c (main): New option retr_symlinks. 10701 10702 * url.c (convert_links): Print verbose message. 10703 107041996-11-24 Hrvoje Niksic <hniksic@srce.hr> 10705 10706 * http.c (http_loop): Reset newloc in the beginning of function; 10707 would cause FMR in retrieve_url. 10708 107091996-11-23 Hrvoje Niksic <hniksic@srce.hr> 10710 10711 * recur.c (convert_all_links): Find the URL of each HTML document, 10712 and feed it to get_urls_html; would bug out. 10713 (convert_all_links): Check for l2 instead of dl; removed dl. 10714 10715 * url.c (convert_links): Don't refer to freed newname. 10716 10717 * recur.c (recursive_retrieve): Add this_url to urls_downloaded. 10718 10719 * main.c (main): Print the OS_TYPE in the debug output, too. 10720 10721 * recur.c (recursive_retrieve): Check for opt.delete_after. 10722 10723 * main.c (main): New option delete-after. 10724 10725 * init.c (setval): Cleaned up. 10726 107271996-11-21 Hrvoje Niksic <hniksic@srce.hr> 10728 10729 * Makefile.in (wget): Make `wget' the default target. 10730 10731 * ftp.c (ftp_loop_internal): Move noclobber checking out of the 10732 loop. 10733 (ftp_retrieve_list): Warn about non-matching sizes. 10734 10735 * http.c (http_loop): Made -nc non-dependent on opt.recursive. 10736 10737 * init.c (setnum): Renamed from setnuminf; New argument flags. 10738 (setval): Use it. 10739 10740 * main.c (main): Sorted the options. 10741 (main): New option --wait. 10742 107431996-11-21 Shawn McHorse <riffraff@txdirect.net> 10744 10745 * html.c (htmlfindurl): Reset s->in_quote after getting out of 10746 quotes. 10747 107481996-11-20 Hrvoje Niksic <hniksic@srce.hr> 10749 10750 * version.c: Changed version to 1.4.2. 10751 107521996-11-20 Hrvoje Niksic <hniksic@srce.hr> 10753 10754 * version.c: Released 1.4.1. 10755 10756 * html.c (html_quote_string): New function. 10757 (ftp_index): Use it. 10758 (htmlfindurl): A more gentle ending debug message. 10759 10760 * ftp.c (ftp_loop): Check for opt.htmlify. 10761 10762 * init.c: New command htmlify. 10763 10764 * ftp.c (getftp): Nicer error messages, with `'-encapsulated 10765 strings. 10766 (ftp_loop): Print size of index.html. 10767 10768 * init.c (setval): Implement "styles". 10769 10770 * main.c (main): New option dotstyle. 10771 107721996-11-19 Hrvoje Niksic <hniksic@srce.hr> 10773 10774 * ftp.c (getftp): Close the master socket in case of errors, after 10775 bindport(). 10776 10777 * connect.c (bindport): Initialize msock to -1. 10778 10779 * ftp.c (getftp): Initialize dtsock to -1. 10780 10781 * connect.c (closeport): Don't close sock if sock == -1. 10782 107831996-11-18 Hrvoje Niksic <hniksic@srce.hr> 10784 10785 * init.c (setnuminf): Nuked default value -- just leave unchanged. 10786 (setval): Don't send default values. 10787 (defaults): Use DEFAULT_TIMEOUT -- aaargh. 10788 10789 * options.h (struct options): Use long for dot_bytes. 10790 10791 * init.c (setquota): Renamed to setbytes. 10792 (setval): Use setbytes on DOTBYTES. 10793 107941996-11-17 Hrvoje Niksic <hniksic@srce.hr> 10795 10796 * ftp.c (getftp): Initialize con->dltime. 10797 10798 * recur.c (recursive_retrieve): Use same_host instead of 10799 try_robots; simply load robots_txt whenever the host is changed. 10800 (recursive_retrieve): Free forbidden before calling parse_robots. 10801 108021996-11-16 Hrvoje Niksic <hniksic@srce.hr> 10803 10804 * retr.c (show_progress): Use them. 10805 10806 * options.h (struct options): New options dot_bytes, dots_on_line 10807 and dot_spacing. 10808 108091996-11-16 Mark Boyns <boyns@sdsu.edu> 10810 10811 * recur.c (recursive_retrieve): Retrieve directories regardless of 10812 acc/rej rules; check for empty u->file. 10813 108141996-11-14 Hrvoje Niksic <hniksic@srce.hr> 10815 10816 * init.c (setval): Use it. 10817 10818 * utils.c (merge_vecs): New function. 10819 10820 * init.c (setval): Reset the list-type functions when encountering 10821 "". 10822 108231996-11-14 Shawn McHorse <riffraff@txdirect.net> 10824 10825 * recur.c (recursive_retrieve): Use base_url instead of this_url 10826 for no_parent. 10827 108281996-11-14 Shawn McHorse <riffraff@txdirect.net> 10829 10830 * html.c (htmlfindurl): Reset s->in_quote after exiting the quote. 10831 108321996-11-13 Hrvoje Niksic <hniksic@srce.hr> 10833 10834 * utils.c (sepstring): Rewrote; don't use strtok. 10835 10836 * recur.c (recursive_retrieve): Enter assorted this_url to slist 10837 when running the first time. 10838 (retrieve_robots): Warn to ignore errors when robots are loaded. 10839 10840 * utils.c (load_file): Moved from url.c. 10841 10842 * http.c: Made static variables const too in h* functions. 10843 10844 * main.c (main): Renamed --continue-ftp to --continue. 10845 10846 * recur.c (recursive_retrieve): Use it. 10847 10848 * utils.c (frontcmp): New function. 10849 10850 * url.c (accdir): New function. 10851 10852 * html.c (htmlfindurl): Recognize <area href=...>. 10853 10854 * ftp.c (ftp_retrieve_dirs): Implemented opt.includes. 10855 10856 * init.c (setval): Free the existing opt.excludes and 10857 opt.includes, if available. 10858 10859 * main.c (main): New option -I. 10860 108611996-11-12 Hrvoje Niksic <hniksic@srce.hr> 10862 10863 * ftp.c (ftp_retrieve_glob): Do not weed out directories. 10864 10865 * version.c: Changed version to 1.4.1. 10866 108671996-11-11 Hrvoje Niksic <hniksic@srce.hr> 10868 10869 * version.c: Released 1.4.0. 10870 108711996-11-10 Hrvoje Niksic <hniksic@srce.hr> 10872 10873 * main.c (main): Free com and val after parse_line. 10874 (printhelp): Reorder the listing. 10875 10876 * http.c: More robust header parsing. 10877 10878 * http.c: Allow any number of spaces, or no spaces, precede ':'. 10879 (hskip_lws): New function. 10880 (haccepts_bytes): New function. 10881 (gethttp): Use it. 10882 10883 * init.c (setval): Check header sanity. 10884 (setval): Allow resetting of headers. 10885 108861996-11-10 Hrvoje Niksic <hniksic@srce.hr> 10887 10888 * http.c (http_loop): Don't use has_wildcards. 10889 10890 * http.c (gethttp): Free all_headers -- would leak. 10891 10892 * recur.c (recursive_retrieve): Initialize depth to 1 instead of 10893 0 -- this fixes a long-standing bug in -rl. 10894 108951996-11-09 Hrvoje Niksic <hniksic@srce.hr> 10896 10897 * ftp.c: Use -1 as "impossible" value for con->fd. 10898 10899 * url.h (URL_SEPARATOR): Don't treat `*' and `+' as separators. 10900 10901 * init.c (parse_line): Use isalpha. 10902 10903 * ftp-unix.c: Use HAVE_UNISTD_H. 10904 10905 * mtch.c (has_wildcards): Don't match \. 10906 10907 * http.c (http_loop): Warn on HTTP wildcard usage. 10908 109091996-11-08 Hrvoje Niksic <hniksic@srce.hr> 10910 10911 * url.c (url_filename): Do not create numbered suffixes if 10912 opt.noclobber -- would bug out on -nc. 10913 109141996-11-07 Hrvoje Niksic <hniksic@srce.hr> 10915 10916 * recur.c (parse_robots): Don't chuck out the commands without 10917 arguments (`Disallow:<empty>' didn't work). 10918 (parse_robots): Compare versions lowercase. 10919 (parse_robots): Match on base_version, not version_string! 10920 (parse_robots): Handle comments properly. 10921 (parse_robots): Match versions in a sane way. 10922 10923 * init.c: Print nicer error messages. 10924 10925 * version.c: Changed version to 1.4.0. 10926 109271996-11-06 Hrvoje Niksic <hniksic@srce.hr> 10928 10929 * version.c: Released 1.4.0-test2. 10930 10931 * init.c (run_wgetrc): Close fp. 10932 10933 * ftp.c (ftp_retrieve_dirs): Allocate the correct length for 10934 u->dir. 10935 109361996-11-06 Hrvoje Niksic <hniksic@srce.hr> 10937 10938 * init.c (setquota): Allow inf as quota specification. 10939 109401996-11-05 Hrvoje Niksic <hniksic@srce.hr> 10941 10942 * ftp.c (ftp_retrieve_dirs): Return QUOTEXC if quota exceeded. 10943 (ftp_retrieve_glob): Return QUOTEXC on quota exceeded. 10944 10945 * main.c (main): Check for quota by comparison with downloaded 10946 stuff, not from status. 10947 10948 * connect.c (select_fd): Should compile on HPUX without warnings now. 10949 10950 * ftp.c (ftp_get_listing): Check whether ftp_loop_internal 10951 returned RETROK. 10952 109531996-11-04 Hrvoje Niksic <hniksic@srce.hr> 10954 10955 * ftp.c (ftp_retrieve_glob): Print the pattern nicely. 10956 (getftp): Return FTPRETRINT on control connection error. 10957 10958 * html.c (htmlfindurl): Recognize <embed src=...> and 10959 <bgsound src=...>. 10960 (ftp_index): Handle username and password correctly. 10961 10962 * main.c (main): Made `-np' a synonim for --no-parent. 10963 109641996-11-02 Hrvoje Niksic <hniksic@srce.hr> 10965 10966 * ftp.c (ftp_loop): Check for opt.ftp_glob too before calling 10967 ftp_retrieve_glob. 10968 10969 * version.c: Changed version to 1.4.0-test2. 10970 109711996-11-02 Hrvoje Niksic <hniksic@srce.hr> 10972 10973 * version.c: Released 1.4.0-test1. 10974 10975 * url.c (str_url): Don't use sprintf when creating %2F-prefixed 10976 directory. 10977 (convert_links): Removed definition of make_backup. 10978 10979 * http.h: Removed definition of MAX_ERROR_LENGTH. 10980 10981 * host.c (ftp_getaddress): Check for "(none)" domains. 10982 10983 * ftp.c (ftp_retrieve_dirs): Docfix. 10984 10985 * http.c (gethttp): Use ou->referer instead of u->referer. 10986 10987 * retr.c (retrieve_url): Reset u to avoid freeing pointers twice; 10988 this was known to cause coredumps on Linux. 10989 10990 * html.c (ftp_index): Cast the argument to local_time to time_t *. 10991 109921996-11-01 Hrvoje Niksic <hniksic@srce.hr> 10993 10994 * connect.c (select_fd): Use exceptfds -- once and for all. 10995 10996 * retr.c (retrieve_from_file): Free filename after 10997 recursive_retrieve. 10998 (retrieve_from_file): Send RFIRST_TIME to recursive_retrieve on 10999 first-time retrieval. 11000 (retrieve_from_file): Return uerr_t; new argument, count. 11001 (retrieve_from_file): Break on QUOTEXC. 11002 11003 * init.c (setquota): Fixed a bug that caused rejection of 11004 non-postfixed values.. 11005 110061996-10-30 Hrvoje Niksic <hniksic@srce.hr> 11007 11008 * version.c: Changed name to wget. 11009 11010 * connect.c (iread): Smarter use of select. 11011 (select_fd): Set errno on timeout. If not timeout, return 1 11012 instead of 0. 11013 110141996-10-29 Hrvoje Niksic <hniksic@srce.hr> 11015 11016 * ftp.c (ftp_loop_internal): Don't use con->cmd before 11017 establishing it. 11018 110191996-10-26 Hrvoje Niksic <hniksic@srce.hr> 11020 11021 * http.c (gethttp): Send correct referer when using proxy. 11022 (gethttp): Use struct urlinfo ou to access the relevant data; send 11023 correct authorization in all cases. 11024 11025 * host.c (same_host): Use skip_uname to skip username and 11026 password. 11027 11028 * url.c (skip_uname): New function. 11029 (parseurl): Use it. 11030 11031 * host.c (same_host): Do not assume HTTP -- same_host should now 11032 be totally foolproof. 11033 11034 * url.c (skip_proto): New function. 11035 (parse_uname): Use it. 11036 11037 * http.c (gethttp): Create local user and passwd from what is 11038 given. 11039 11040 * url.c (parseurl): Check for HTTP username and password too. 11041 110421996-10-25 Hrvoje Niksic <hniksic@srce.hr> 11043 11044 * config.h.in: Removed #define gethostbyname R... 11045 110461996-10-22 Hrvoje Niksic <hniksic@srce.hr> 11047 11048 * version.c: Changed version to 1.4.0-test1. 11049 110501996-10-21 Hrvoje Niksic <hniksic@srce.hr> 11051 11052 * version.c: "Released" 1.4b29. 11053 11054 * recur.c (recursive_retrieve): Check for no_parent. 11055 11056 * init.c (setval): Option update. 11057 11058 * main.c (main): New option no-parent. 11059 11060 * options.h (struct options): New variable no_parent. 11061 11062 * recur.c (recursive_retrieve): Only files are checked for 11063 opt.accepts and opt.rejects. 11064 (recursive_retrieve): Check directories for opt.excludes. 11065 (recursive_retrieve): Make the dir absolute when checking 11066 opt.excludes. 11067 11068 * html.c (htmlfindurl): Recognize <applet code=...> and <script 11069 src=...> 11070 110711996-10-18 Hrvoje Niksic <hniksic@srce.hr> 11072 11073 * ftp.c (getftp): Do not line-break assert entries at all. 11074 (ftp_retrieve_dirs): docfix. 11075 11076 * connect.c (select_fd): Use fd + 1 as nfds. 11077 11078 * version.c: Changed version to 1.4b29. 11079 110801996-10-18 Hrvoje Niksic <hniksic@srce.hr> 11081 11082 * version.c: "Released" 1.4b28. 11083 11084 * ftp.c (ftp_loop_internal): Check whether f->size == len and 11085 don't continue the loop if it is. 11086 (ftp_get_listing): Remove list_filename on unsuccesful loop. 11087 110881996-10-17 Hrvoje Niksic <hniksic@srce.hr> 11089 11090 * ftp.c (ftp_loop_internal): Use strcpy to initialize tmp. 11091 (getftp): Do not use multiline assert. 11092 11093 * http.c (hparsestatline): Use mjr and mnr instead of major and 11094 minor, which don't compile on Ultrix. 11095 (http_loop): Use strcpy() to initialize tmp. 11096 11097 * all: Geturl -> Fetch 11098 110991996-10-17 Hrvoje Niksic <hniksic@srce.hr> 11100 11101 * recur.c (parse_robots): Fixed an off-by-one bug when looking for 11102 ':'. 11103 11104 * html.c (htmlfindurl): Fixed several possible off-by-one bugs by 11105 moving `bufsize &&' to the beginning of each check in for-loops. 11106 11107 * recur.c (parse_robots): Close fp on exit. 11108 11109 * url.c (mymkdir): Check for each directory before creating. 11110 111111996-10-16 Hrvoje Niksic <hniksic@srce.hr> 11112 11113 * version.c: Changed version to 1.4b28. 11114 111151996-10-16 Hrvoje Niksic <hniksic@srce.hr> 11116 11117 * version.c: "Released" 1.4b27. 11118 11119 * init.c (parse_line): Use isspace. 11120 (parse_line): Free *com on all errors. 11121 11122 * ftp.c (ftp_loop): Change FTPOK to RETROK before exiting. 11123 (delelement): Use next instead of f->next and prev instead of 11124 f->prev. 11125 (delelement): Free the members of the deleted element. 11126 11127 * http.c (http_loop): Do not return RETROK on code != 20x. 11128 11129 * init.c (cleanup): Free opt.user_header. 11130 (cleanup): Free opt.domains. 11131 11132 * url.c (freelists): Moved to cleanup(). 11133 11134 * http.c (hparsestatline): Docfix. 11135 11136 * main.c (main): Return with error status on unsuccesful 11137 retrieval. 11138 11139 * init.c (setval): Do not remove listing when mirroring. 11140 11141 * url.c (url_filename): Use opt.fileprefix. 11142 11143 * ftp.c (ftp_get_listing): Use url_filename to get filename for 11144 .listing. 11145 11146 * main.c (main): New option: -rn. 11147 111481996-10-15 Hrvoje Niksic <hniksic@srce.hr> 11149 11150 * Makefile.in (RM): Added RM = rm -f. 11151 11152 * host.c (clean_hosts): New function. 11153 (free_hlist): Just free the list, no reset. 11154 11155 * version.c: Changed version to 1.4b27. 11156 111571996-10-13 Hrvoje Niksic <hniksic@srce.hr> 11158 11159 * version.c: "Released" 1.4b26. 11160 11161 * retr.c (retrieve_from_file): If call get_urls_html with 11162 opt.spider to make it silent in spider mode. 11163 11164 * url.c (str_url): Use CLEANDUP instead of URL_CLEANSE. 11165 11166 * url.h (CLEANDUP): New macro. 11167 11168 * http.c (gethttp): Fixed a bug that freed location only when it 11169 was NULL. 11170 11171 * retr.c (retrieve_url): Free url if it will not be stored, 11172 i.e. newloc is NULL. 11173 11174 * html.c (htmlfindurl): Handle exiting from quotes correctly; the 11175 old version would bug out on <a href="x#a"href="y">. 11176 11177 * html.h (state_t): New member in_quote. 11178 11179 * html.c (htmlfindurl): Free s->attr at the beginning of 11180 attr-loop. 11181 11182 * recur.c (recursive_retrieve): Recognize RCLEANUP. 11183 (tried_robots): Make hosts a global variable. 11184 (recursive_retrieve): Free constr after URL host optimization. 11185 (tried_robots): Free urlinfo before exiting. 11186 11187 * utils.c (free_slist): New function. 11188 11189 * recur.c (recursive_retrieve): Use flags to add cleanup 11190 possibility. 11191 11192 * main.c (main): Free filename after recursive_retrieve. 11193 11194 * http.c (gethttp): Store successful responses too. 11195 111961996-10-12 Hrvoje Niksic <hniksic@srce.hr> 11197 11198 * all: Constified the whole source. This required some minor 11199 changes in many functions in url.c, possibly introducing bugs -- I 11200 hope not. 11201 11202 * ftp-basic.c: Removed last_respline. 11203 11204 * http.c (gethttp): Free type. 11205 11206 * host.c (same_host): Free real1 and real2. 11207 11208 * main.c (main): New option --spider. 11209 11210 * retr.c (get_contents): Don't reset errno. 11211 11212 * main.c (main): Sorted the options. 11213 11214 * connect.c (iread): Set errno to ETIMEDOUT only if it was left 11215 uninitialized by select(). 11216 11217 * http.c (http_loop): Print the time when the connection is 11218 closed. 11219 (gethttp): Debug-print the HTTP request. 11220 112211996-10-11 Hrvoje Niksic <hniksic@srce.hr> 11222 11223 * connect.c (iread): Do not try reading after timeout. 11224 11225 * main.c (main): Would bug out on -T. 11226 11227 * connect.c (select_fd): Do not use exceptfds. 11228 (iread): Set ETIMEDOUT on select_fd <= 0. 11229 11230 * version.c: Changed version to 1.4b26. 11231 112321996-10-10 Hrvoje Niksic <hniksic@srce.hr> 11233 11234 * version.c: "Released" 1.4b25. 11235 11236 * ftp-unix.c (ftp_parse_unix_ls): Ignore lines without file name 11237 or link name. 11238 11239 * http.c (gethttp): Add errcode to struct hstat. 11240 (http_loop): Use it. 11241 11242 * url.c (no_proxy_match): Simplify using char** for no_proxy. 11243 11244 * options.h (struct options): Make opt.no_proxy a vector. 11245 11246 * utils.c (sepstring): Use !*s instead of !strlen(s). 11247 11248 * init.c (setval): Set opt.maxreclevel to 0 on --mirror. 11249 (getperms): Use ISODIGIT instead of isdigit. 11250 11251 * ftp.c (getftp): Print time. 11252 11253 * main.c (main): Use legible output of downloaded quantity. 11254 11255 * ftp.c (getftp): Use elapsed_time(). 11256 (ftp_loop_internal): Use rate(). 11257 11258 * http.c (http_loop): Add download ratio output; Use rate(). 11259 11260 * utils.c (rate): New function. 11261 112621996-10-09 Hrvoje Niksic <hniksic@srce.hr> 11263 11264 * http.c (http_loop): Use timer. 11265 11266 * ftp.c: Split to ftp-basic.c and ftp.c 11267 11268 * utils.c (reset_timer): New function. 11269 (elapsed_time): New function. 11270 11271 * retr.c (show_progress): Make bytes_in_line and offs long; should 11272 work on 16-bit machines. 11273 112741996-10-08 Hrvoje Niksic <hniksic@srce.hr> 11275 11276 * url.c (in_acclist): New argument backward. 11277 11278 * ftp.c (ftp_retrieve_glob): Use acceptable() to determine whether 11279 a file should be retrieved according to suffix. 11280 (ftp_get_listing): Check the return value of unlink; Do not call 11281 ftp_retrieve_dirs if depth reached maxreclevel. 11282 (ftp_retrieve_dirs): Check whether the directory is in 11283 exclude-list. 11284 11285 * main.c (main): Print the version number at the beginning of 11286 DEBUG output. 11287 (main): Use strrchr when creating exec_name. 11288 11289 * ftp.c (ftp_retrieve_glob): Do not close control connection. 11290 11291 * version.c: Changed version to 1.4b25. 11292 112931996-10-07 Hrvoje Niksic <hniksic@srce.hr> 11294 11295 * version.c: "Released" 1.4b24. 11296 11297 * Makefile.in: Rewrite. 11298 11299 * ftp.c (ftp_loop_internal): Likewise. 11300 11301 * retr.c (time_str): Check for failed time(). 11302 11303 * html.c (htmlfindurl): Recognize <fig src> and <overlay src> from 11304 HTML3.0. 11305 11306 * retr.c (time_str): Return time_t *. 11307 11308 * connect.c (bindport): Close msock on unsuccesful bind. 11309 (bindport): The same for getsockname and listen. 11310 11311 * retr.c (retrieve_url): Allow any number of retries on 11312 proxy. 11313 11314 * http.c (gethttp): Do not treat errno == 0 as timeout. 11315 (http_loop): Likewise. 11316 (http_loop): Cosmetic changes. 11317 11318 * connect.c (iread): Set errno to ETIMEDOUT in case of timeout. 11319 11320 * retr.c (get_contents): Reset errno. 11321 11322 * ftp.c (getftp): Minor fixes. 11323 113241996-10-06 Hrvoje Niksic <hniksic@srce.hr> 11325 11326 * http.c: Do not use backups. 11327 11328 * geturl.1 (WARNING): Warn that man-page could be obsolete. 11329 11330 * getopt.c (getopt_long): Moved to getopt.c 11331 11332 * geturl.texi: Enhanced. 11333 11334 * main.c (main): Use it. 11335 11336 * recur.c (convert_all_links): New function. 11337 11338 * utils.c (add_slist): New argument flags. 11339 11340 * recur.c (recursive_retrieve): Update a list of downloaded URLs. 11341 (parse_robots): Do not chuck out empty value fields. 11342 (parse_robots): Make yourself welcome on empty Disallow. 11343 11344 * version.c: Changed version to 1.4b24. 11345 113461996-10-06 Hrvoje Niksic <hniksic@srce.hr> 11347 11348 * version.c: "Released" 1.4b23. 11349 11350 * ftp.c (ftp_loop_internal): Get the time after getftp. 11351 11352 * Makefile.in (install.info): New target. 11353 (install): Use it. 11354 11355 * http.c (http_loop): Fix output when doing -O. 11356 113571996-10-05 Hrvoje Niksic <hniksic@srce.hr> 11358 11359 * geturl.texi: New file. 11360 11361 * main.c (main): Do not print the warnings and download summary if 11362 opt.quiet is set. 11363 11364 * version.c: Changed version to 1.4b23. 11365 113661996-10-05 Hrvoje Niksic <hniksic@srce.hr> 11367 11368 * "Released" 1.4b22. 11369 11370 * atotm.c (atotm): Use True and False instead of TRUE and FALSE, 11371 to avoid redefinition warnings. 11372 11373 * host.c (store_hostaddress): Use memcpy() to copy the address 11374 returned by inet_addr. 11375 11376 * version.c: Changed version to 1.4b22. 11377 113781996-10-04 Hrvoje Niksic <hniksic@srce.hr> 11379 11380 * version.c: "Released" 1.4b21. 11381 11382 * ftp-unix.c (ftp_parse_ls): Renamed to ftp_parse_unix_ls. 11383 11384 * ftp.c (ftp_port): Use conaddr. 11385 (getftp): Print the file length. 11386 (ftp_retrieve_list): Check the stamps of plain files only. 11387 11388 * connect.c (closeport): Do not call shutdown(). 11389 (conaddr): New function. 11390 11391 * html.c (ftp_index): Made it dfp-aware. 11392 11393 * init.c (cleanup): New name of freemem. Close opt.dfp. 11394 11395 * ftp.c (getftp): Use opt.dfp if it is set. 11396 11397 * ftp-unix.c (ftp_parse_ls): Recognize time in h:mm format. 11398 11399 * ftp.c (ftp_retrieve_dirs): Fixed a bug that caused incorrect 11400 CWDs to be sent with recursive FTP retrievals. 11401 114021996-10-03 Hrvoje Niksic <hniksic@srce.hr> 11403 11404 * recur.c (parse_robots): Made it more compliant with "official" 11405 specifications. 11406 11407 * http.c: New function. 11408 11409 * ftp-unix.c (ftp_parse_ls): Added better debug output. 11410 11411 * ftp.c (getftp): Print out the LIST in case of 11412 opt.print_server_response. 11413 11414 * version.c: Changed version to 1.4b21. 11415 114161996-10-01 Hrvoje Niksic <hniksic@srce.hr> 11417 11418 * version.c: "Released" 1.4b20. 11419 11420 * README: Update. 11421 11422 * http.c (gethttp): Preset lengths of various headers instead of 11423 calculating them dynamically. 11424 (gethttp): Check for 206 partial contents. 11425 114261996-09-30 Hrvoje Niksic <hniksic@srce.hr> 11427 11428 * configure.in: Set SYSTEM_GETURLRC to $libdir/geturlrc 11429 11430 * http.c (gethttp): Send the port number in the Host: header. 11431 114321996-09-29 Hrvoje Niksic <hniksic@srce.hr> 11433 11434 * http.c (gethttp): Send host: header. 11435 (gethttp): Add the possibility of user-defined headers. 11436 (gethttp): Move decision about pragma: no-cache to http_loop, 11437 where it belongs. 11438 (gethttp): Pass a struct instead of enormous argument list. 11439 (http_loop): Use a new, fancier display format. 11440 (ftp_loop): Likewise. 11441 11442 * main.c: (hangup): Turn off buffering of the new log file. 11443 11444 * install-sh: Likewise. 11445 11446 * config.sub: Replace with the one in autoconf-2.10 11447 11448 * geturl.1: Update. 11449 11450 * init.c: New options httpuser and httppasswd. 11451 11452 * http.c: (base64_encode_line): New function. 11453 (gethttp): Send authentication. 11454 11455 * connect.c (make_connection): Use store_hostaddress. 11456 114571996-09-28 Hrvoje Niksic <hniksic@srce.hr> 11458 11459 * host.c (store_hostaddress): New function. 11460 11461 * NEWS: Update. 11462 11463 * http.c (hgetrange): New function. 11464 (gethttp): Use ranges. 11465 11466 * utils.c (numdigit): Accept long instead of int. 11467 11468 * http.c (http_loop): Add restart capabilities. 11469 11470 * ftp.c (ftp_retrieve_glob): Fixed a bug that could cause matchres 11471 being used uninitialized. 11472 (ftp_retrieve_list): Similar fix. 11473 11474 * host.c (add_hlist): Fixed a bug that could cause cmp being used 11475 uninitialized. 11476 11477 * url.c (construct_relative): New function. 11478 11479 * recur.c (recursive_retrieve): Use it. 11480 11481 * retr.c (convert_links): New function. 11482 114831996-09-27 Hrvoje Niksic <hniksic@srce.hr> 11484 11485 * url.c (free_urlpos): New function. 11486 11487 * recur.c (recursive_retrieve): Adapt. 11488 11489 * url.c (get_urls_html): Return a linked list instead of a vector. 11490 11491 * url.c (get_urls_file): Return a linked list instead of a vector. 11492 11493 * geturl.1: Update. 11494 11495 * http.c (gethttp): Implement it. 11496 11497 * init.c (setval): New option: SAVEHEADERS 11498 11499 * ftp.c (ftp_loop_internal): Do not set restval if listing is to 11500 be retrieved. Lack of this test caused bugs when the connection 11501 was lost during listing. 11502 11503 * retr.c (retrieve_url): Fixed a bug that caused 11504 coredumps. *newloc is now reset by default. 11505 (retrieve_url): Lift the twenty-tries limit on proxies. 11506 11507 * version.c: Changed version to 1.4b20. 11508 115091996-09-20 Hrvoje Niksic <hniksic@srce.hr> 11510 11511 * version.c: "Released" 1.4b19. 11512 115131996-09-19 Hrvoje Niksic <hniksic@srce.hr> 11514 11515 * ftp.c (ftp_loop_internal): Renamed from ftp_1fl_loop. 11516 (getftp): Changed prototype to accept ccon *. 11517 115181996-09-17 Hrvoje Niksic <hniksic@srce.hr> 11519 11520 * ftp.c (ftp_retrieve_list): Fixed a bug that caused setting 11521 incorrect values to files pointed to by symbolic links. 11522 (ftp_1fl_loop): Do not count listings among the downloaded URL-s. 11523 115241996-09-16 Hrvoje Niksic <hniksic@srce.hr> 11525 11526 * url.c (mkstruct): Do not prepend "./" in front of a pathname. 11527 11528 * main.c (main): New option: --user-agent. 11529 11530 * geturl.1: Ditto. 11531 11532 * init.h: Ditto. 11533 11534 * init.c (setval): Ditto. 11535 11536 * main.c (main): Rename "server-headers" to "server-response". 11537 11538 * ftp-unix.c (ftp_parse_ls): Check for asterisks at the end of 11539 executables in 'ls -F' listings. 11540 115411996-09-15 Hrvoje Niksic <hniksic@srce.hr> 11542 11543 * url.c (parseurl): Remove realloc() and sprintf(). 11544 (str_url): Get rid of sprintf(). 11545 11546 * recur.c (recursive_retrieve): Enable FTP recursion through proxy 11547 servers. 11548 11549 * url.h (URL_CLEANSE): Made it else-resistant. 11550 (USE_PROXY): New macro. 11551 115521996-09-14 Hrvoje Niksic <hniksic@srce.hr> 11553 11554 * NEWS: Update. 11555 11556 * version.c: Changed version to 1.4b19. 11557 115581996-09-14 Hrvoje Niksic <hniksic@srce.hr> 11559 11560 * version.c: "Released" 1.4b18. 11561 11562 * url.c: Made it reallocate space exponentially. 11563 115641996-09-14 Drazen Kacar <dave@fly.cc.fer.hr> 11565 11566 * html.c (htmlfindurl): Added <frame src> and <iframe src> among 11567 the list of stuff to fetch. 11568 115691996-09-13 Hrvoje Niksic <hniksic@srce.hr> 11570 11571 * url.c (get_urls_html): Fixed a bug that caused SIGSEGV's with 11572 -Fi. 11573 11574 * html.c (htmlfindurl): Rewrite. 11575 11576 * http.c (gethttp): Use opt.proxy_cache. 11577 11578 * main.c (main): Added --cache option. 11579 11580 * ftp.c (ftp_response): Print server response if opt.print_server 11581 response is set. 11582 (getftp): Print newlines after each request if the server response 11583 is to be printed. 11584 (ftp_response): Copy the last response line to last_respline. 11585 11586 * http.c (gethttp): Add Pragma: nocache for retried 11587 proxy-retrievals. 11588 11589 * ftp.c (getftp): Use it. 11590 11591 * retr.c (buf_discard): New function. 11592 11593 * ftp.c (ftp_response): Use buf_readchar(). 11594 (getftp): Flush the control connection buffer before calling 11595 get_contents(). 11596 11597 * retr.c (buf_readchar): New function. 11598 (buf_flush): New function. 11599 (get_contents): Use buf_readchar() instead of read(x, x, 1). 11600 (get_contents): Use buf_flush. 11601 116021996-09-12 Hrvoje Niksic <hniksic@srce.hr> 11603 11604 * ftp.c: Incorporate changes to ftp_response. 11605 11606 * ftp.c (ftp_response): Allocate the server response dynamically, 11607 as in read_whole_line and fetch_next_header. 11608 11609 * utils.c (read_whole_line): Fixed a bug that prevented reading 11610 the last line if it is not \n-terminated. Also fixed a possible 11611 memory overflow. 11612 11613 * http.c (fetch_next_header): Return malloc-ed string as large as 11614 needed. 11615 (gethttp): Use new fetch_next_header. 11616 116171996-09-12 Hrvoje Niksic <hniksic@srce.hr> 11618 11619 * http.c (hgetlen): Compute the header length the first time only. 11620 (hgettype): Ditto. 11621 (hgetlocation): Ditto. 11622 (hgetmodified): Ditto. 11623 116241996-09-11 Hrvoje Niksic <hniksic@srce.hr> 11625 11626 * sample.geturlrc: Update. 11627 116281996-09-10 Hrvoje Niksic <hniksic@srce.hr> 11629 11630 * http.c (http_loop): Ditto. 11631 11632 * ftp.c (getftp): Open the output file as binary. 11633 11634 * version.c: Changed version to 1.4b18. 11635 116361996-09-10 Hrvoje Niksic <hniksic@srce.hr> 11637 11638 * version.c: "Released" 1.4b17. 11639 11640 * ftp-unix.c (ftp_parse_ls): If unable to open file, return NULL 11641 instead of failed assertion. 11642 116431996-09-09 Hrvoje Niksic <hniksic@srce.hr> 11644 11645 * ftp.c (ftp_get_listing): Add a numbered suffix to LIST_FILENAME 11646 if a file of that name already exists. 11647 116481996-09-05 Hrvoje Niksic <hniksic@srce.hr> 11649 11650 * ftp.c (ftp_1fl_loop): Handler FTPPORTERR and FOPENERR correctly. 11651 11652 * config.h.in: Define gethostbyname as Rgethostbyname when using 11653 Socks. 11654 11655 * configure.in: Check for -lresolv if using Socks. 11656 11657 * version.c: Changed version to 1.4b17. 11658 116591996-07-15 Hrvoje Niksic <hniksic@srce.hr> 11660 11661 * version.c: "Released" 1.4b16. 11662 11663 * http.c (gethttp): More intelligent check for first line of HTTP 11664 response. 11665 (gethttp): Would bug out on time-stamping. 11666 11667 * version.c: Changed version to 1.4b16. 11668 116691996-07-11 Hrvoje Niksic <hniksic@srce.hr> 11670 11671 * version.c: Released 1.4b15. 11672 11673 * http.c (http_loop): Print \n after the loop entry, not before. 11674 11675 * url.c (url_filename): Use ISDOT. 11676 11677 * url.h (ISDOT): New macro. 11678 11679 * recur.c (recursive_retrieve): Change only opt.recursive for 11680 following FTP. 11681 116821996-07-11 Antonio Rosella <antonio.rosella@agip.it> 11683 11684 * socks/geturl.cgi: Fixed version No. 11685 11686 * socks/download-netscape.html: Ditto. 11687 11688 * socks/download.html: Changed socks.html to download.html. 11689 116901996-07-11 Hrvoje Niksic <hniksic@srce.hr> 11691 11692 * url.c (url_filename): Check for opt.dirstruct instead for 11693 opt.recursive && opt.dirstruct. 11694 11695 * init.c (defaults): Ditto. 11696 (defaults): Reset dirstruct by default. 11697 (setval): Set opt.dirstruct whenever setting recursive. 11698 11699 * init.h: Removed FORCEDIRHIER. 11700 11701 * INSTALL: Added -L to socks-description. 11702 11703 * version.c: Changed version to 1.4b15. 11704 117051996-07-10 Hrvoje Niksic <hniksic@srce.hr> 11706 11707 * version.c: "Released" 1.4b14. 11708 11709 * geturl.1: Update AUTHOR to include Rosella as contributor. 11710 11711 * NEWS: Update. 11712 11713 * socks/geturl.cgi: Simplified command creation, nuked <blink>. 11714 11715 * socks/geturl.cgi: Wrap nutscape extensions within if $netscape. 11716 (cal_time): Fix == to eq. 11717 11718 * socks/geturl.cgi: GPL-ized with permission of A. Rosella. 11719 11720 * geturl.1 (hostname): Moved URL CONVENTIONS to the beginning. 11721 11722 * Makefile.in: Use @VERSION@. 11723 11724 * configure.in: Check version from version.c. 11725 11726 * socks/geturl.cgi: Changed /pub/bin/perl to /usr/bin/perl. 11727 11728 * socks/download.html: Created from download-netscape.html, made 11729 HTML-2.0 compliant. 11730 11731 * recur.c (recursive_retrieve): Set opt.force_dir_hier when 11732 following FTP links from recursions. 11733 117341996-07-09 Hrvoje Niksic <hniksic@srce.hr> 11735 11736 * url.c (mymkdir): Fixed a bug that prevented mymkdir() to create 11737 absolute directories correctly. 11738 11739 * version.c: Changed version to 1.4b14. 11740 117411996-07-09 Hrvoje Niksic <hniksic@srce.hr> 11742 11743 * version.c: "Released" 1.4b13. 11744 11745 * url.c (make_backup): New function. 11746 11747 * http.c (http_loop): Make a backup copy of the local file (using 11748 rename(2)) before opening it. 11749 11750 * main.c (main): Added --backups. 11751 11752 * host.c (ftp_getaddress): Bail out on failed mycuserid(). 11753 (ftp_getaddress): Check for leading dot on MY_DOMAIN. 11754 (ftp_getaddress): Check for empty, null or (null) domain. 11755 11756 * url.c (get_urls_html): If this_url is NULL, the base must have a 11757 protocol. 11758 (parseurl): Use has_proto. 11759 11760 * retr.c (retrieve_url): Warn when proxy is used with more than 20 11761 retries. 11762 11763 * url.c (mkstruct): Create the directory (calling mymkdir()) only 11764 if it is not already there. 11765 (has_proto): New function. 11766 (get_urls_html): Eliminate the remaining call to findurl -- use 11767 has_proto. 11768 11769 * geturl.1: Ditto. 11770 11771 * main.c: Change -X to -x. 11772 11773 * url.c (url_filename): Simplify creation of filename if 11774 prefix_files is set. 11775 (url_filename): Simplify everything. And I do mean *everything*. 11776 (mkstruct): Add dir_prefix before hostname. 11777 (path_simplify): Fixed a bug that caused writing outside the path 11778 string in case of "." and ".." path strings. 11779 117801996-07-06 Hrvoje Niksic <hniksic@srce.hr> 11781 11782 * init.c: Added --mirror. 11783 11784 * main.c (main): Added -X to force saving of directory hierarchy. 11785 11786 * ftp.c (ftp_retrieve_list): Added recursion depth counter. 11787 (ftp_retrieve_list): Check whether quota is exceeded. 11788 11789 * url.c (get_urls_html): Skip leading blanks for absolute URIs. 11790 11791 * http.c (gethttp): Use referer if present. 11792 11793 * recur.c (recursive_retrieve): Set u->referer before calling 11794 retrieve_url. 11795 11796 * url.c (newurl): Use memset to nullify the struct members. 11797 (freeurl): Free the referer field too. 11798 11799 * url.h: Added referer to urlinfo. 11800 11801 * geturl.1: Updated the manual to document some of the new features. 11802 11803 * utils.c (numdigit): Moved from url.c. 11804 11805 * README: Rewritten. 11806 11807 * config.h.in: Add the support for socks. 11808 11809 * configure.in: Add the support for socks. 11810 11811 * url.c (url_filename): If the dir_prefix is ".", work with just 11812 the file name. 11813 (url_filename): Do not look for .n extensions if timestamping if 11814 turned on. 11815 11816 * retr.c (show_progress): Skip the over-abundant restval data, and 11817 print the rest of it with ',' instead of '.'. 11818 118191996-07-05 Hrvoje Niksic <hniksic@srce.hr> 11820 11821 * retr.c (show_progress): Changed second arg. to long (as it 11822 should be). 11823 (show_progress): Moved to retr.c. 11824 (get_contents): Moved to retr.c. 11825 11826 * version.c: Change version to 1.4b13. 11827 118281996-07-05 Hrvoje Lacko <hlacko@fly.cc.fer.hr> 11829 11830 * url.c (in_acclist): Would return after the first suffix. 11831 118321996-07-04 Hrvoje Niksic <hniksic@srce.hr> 11833 11834 * version.c: "Released" 1.4b12. 11835 11836 * url.c (path_simplify): More kludgifications. 11837 (get_urls_html): Use new parameters for htmlfindurl. 11838 11839 * html.c: Removed memorizing "parser states", since the new 11840 organization does not require them. 11841 11842 * init.c (run_geturlrc): Use read_whole_line. 11843 11844 * ftp-unix.c (ftp_parse_ls): Use read_whole_line. 11845 11846 * recur.c (parse_robots): Use read_whole_line. 11847 11848 * utils.c (read_whole_line): New function. 11849 11850 * recur.c (tried_robots): Use add_slist/in_slist, *much* cleaner. 11851 11852 * host.c (ngethostbyname): Call inet_addr just once. Yet to be 11853 tested on OSF and Ultrix. 11854 (add_hlist): New function. 11855 (free_hlist): New function. 11856 (search_host): New function. 11857 (search_address): New function. 11858 (realhost): Use search_host, search_address and add_hlist. 11859 (same_host): Replaced realloc() with strdupdelim(), made 11860 case-insensitive, fixed a memory leak. 11861 11862 * html.c (ftp_index): Fixed tm_min and tm_sec to be tm_hour and 11863 tm_min, like intended. 11864 11865 * version.c: Change user agent information to 11866 Geturl/version. 11867 118681996-07-03 Hrvoje Niksic <hniksic@srce.hr> 11869 11870 * utils.c: Renamed nmalloc.c to utils.c, .h likewise. 11871 11872 * url.c (acceptable): Always accept directories. 11873 11874 * ftp-unix.c (ftp_parse_ls): Support brain-damaged "ls -F"-loving 11875 servers by stripping trailing @ from symlinks and trailing / from 11876 directories. 11877 11878 * ftp.c (ftp_loop): Debugged the "enhanced" heuristics. :-) 11879 11880 * url.c (skip_url): Use toupper instead of UCASE. 11881 11882 * host.c (sufmatch): Made it case-insensitive. 11883 11884 * url.c (match_backwards_or_pattern): Fixed i == -1 to j == -1. 11885 (match_backwards): New function, instead of 11886 match_backwards_or_pattern. 11887 11888 * recur.c (recursive_retrieve): Increased performance by 11889 introducing inl, which reduces number of calls to in_slist to only 11890 one. 11891 11892 * ftp.c (ftp_loop): Enhanced the heuristics that decides which 11893 routine to use. 11894 11895 * main.c (printhelp): Removed the warranty stuff. 11896 118971996-07-02 Hrvoje Niksic <hniksic@srce.hr> 11898 11899 * url.c (add_slist): Simplify. 11900 (match_backwards_or_pattern): New function. 11901 (in_acclist): Use match_backwards_or_pattern. 11902 (matches): Remove. 11903 119041996-06-30 Hrvoje Niksic <hniksic@srce.hr> 11905 11906 * ftp.c (ftp_loop): Call ftp_index on empty file names, if not 11907 recursive. 11908 11909 * html.c (ftp_index): Fixed to work. Beautified the output. 11910 11911 * ftp.c (ftp_retrieve_glob): Another argument to control whether 11912 globbing is to be used. 11913 (ftp_retrieve_list): Compare the time-stamps of local and remote 11914 files to determine whether to download. 11915 119161996-06-29 Hrvoje Niksic <hniksic@srce.hr> 11917 11918 * ftp.c (rel_constr): New function. 11919 11920 * retr.c (retrieve_from_file): Check for text/html before 11921 retrieving recursively. 11922 11923 * main.c (main): Check whether the file is HTML before going into 11924 recursive HTML retrieving. 11925 11926 * ftp.c (ftp_retrieve_list): Manage directories. 11927 (ftp_retrieve_glob): Pass all the file-types to ftp_retrieve_list. 11928 (ftp_1fl_loop): Fixed a bug that caused con->com to be incorrectly 11929 initialized, causing bugchecks in getftp to fail. 11930 11931 * configure.in: Check for symlink. 11932 11933 * ftp.c (ftp_retrieve_list): Added support for symlinks. 11934 11935 * version.c: "Released" 1.4b10. 11936 11937 * atotm.c (atotm): Redeclared as time_t. 11938 11939 * init.c: New variable "timestamping". 11940 11941 * main.c (main): New option 'N'. 11942 11943 * http.c (hgetlocation): Case-insensitive match. 11944 (hgetmodified): New function. 11945 (http_loop): Implement time-stamping. 11946 119471996-06-28 Hrvoje Niksic <hniksic@srce.hr> 11948 11949 * version.c: Changed version to 1.4b10 11950 11951 * atotm.c: New file, from phttpd. 11952 11953 * options.h (struct options): New parameter timestamping. 11954 11955 * version.c: 1.4b9 "released". 11956 11957 * recur.c (recursive_retrieve): Used linked list (ulist) for 11958 faster storing of URLs. 11959 11960 * url.c (get_urls_html): Removed the old kludge with comparing the 11961 outputs of htmlfindurl and findurl. 11962 (get_urls_html): Added better protocol support here. 11963 (create_hash): Removed, as well as add_hash and in_hash. 11964 (addslist): New function. 11965 (in_slist): ditto 11966 11967 * version.c: Released 1.4b8, changed version to b9. 11968 119691996-06-27 Hrvoje Niksic <hniksic@srce.hr> 11970 11971 * ftp.c (freefileinfo): New function. 11972 (delelement): New function. 11973 11974 * everywhere: GPL! 11975 11976 * ftp.c (ftp_loop): Use ccon. 11977 (ftp_retrieve_glob): Likewise. 11978 11979 * ftp.h: Define ccon, to define status of control connection. 11980 11981 * ftp.c (ftp_get_listing): New function. 11982 (ftp_retrieve_more): New function. 11983 (ftp_retrieve_glob): New function. 11984 119851996-06-25 Hrvoje Niksic <hniksic@srce.hr> 11986 11987 * configure.in: Removed the search for cuserid(). 11988 11989 * init.c (getmode): Renamed to getperms. 11990 119911996-06-24 Hrvoje Niksic <hniksic@srce.hr> 11992 11993 * version.c: New version. 11994 11995 * main.c (hangup): New function, that handles hangup. Hangup 11996 signal now causes geturl to stop writing on stdout, and to write 11997 to a log file. 11998 11999 * ftp.c (getftp): "Released" 1.4b7. 12000 12001 * html.c (htmlfindurl): Ignore everything inside <head>...</head>. 12002 (ftp_index): Use fileinfo/urlinfo. 12003 12004 * ftp-unix.c (ftp_parse_ls): New function. 12005 (symperms): New function. 12006 12007 * ftp.c (ftp_1fl_loop): New function, to handle 1-file loops. 12008 12009 * retr.c (retrieve_url): Added FTP support. 12010 120111996-06-23 Hrvoje Niksic <hniksic@srce.hr> 12012 12013 * geturl.h: Removed NOTFTP2HTML enum. 12014 Added DO_LOGIN, DO_CWD and DO_LIST. LIST_ONLY is obsolete. 12015 12016 * ftp.c (getftp): Resynched with urlinfo. 12017 (getftp): Removed HMTL-ization of index.html from getftp. 12018 12019 * version.c: 1.4b6 "released". 12020 12021 * options.h (options): New struct, to keep options in. 12022 12023 * http.c (http_loop,gethttp): Synched with proxy. 12024 12025 * retr.c (retrieve_url): Implemented proxy retrieval. 12026 12027 * main.c (main): Use retrieve_from_file. 12028 120291996-06-22 Hrvoje Niksic <hniksic@srce.hr> 12030 12031 * retr.c (retrieve_from_file): New function. 12032 12033 * url.c (parseurl): Modified to return URLOK if all OK. Protocol 12034 can be found in u->proto. 12035 12036 * ftp.c (ftp_response): Fixed to accept multi-line responses as 12037 per RFC 959. 12038 12039 * recr.c (recursive_retrieve): Take newloc from retrieve_url. 12040 12041 * url.c (mymkdir): Removed the file of the same name, if one 12042 exists. 12043 (isfile): New function. 12044 (mkstruct): Fixed the '/' glitches. 12045 (path_simplify): Hacked to treat something/.. correctly. 12046 120471996-06-21 Hrvoje Niksic <hniksic@srce.hr> 12048 12049 * http.c (gethttp): Close the socket after error in headers. 12050 (http_loop): HEOF no longer a fatal header. 12051 12052 * loop.c (retrieve_url): When dt is NULL, do not modify it. This 12053 simplifies the syntax of calling retrieve_url. 12054 12055 * recr.c (recursive_retrieve): Modified to use get_urls_html. 12056 12057 * url.c (get_urls_file): New function. 12058 (get_urls_html): New function. 12059 12060 * recr.c (recursive_retrieve): Patched up to conform to the 12061 standards. 12062 12063 * http.c (gethttp): Synched with the rest... 12064 (gethttp): Treat only CONREFUSED specially, with connection 12065 errors. 12066 12067 * init.c,geturl.1,http.c (http_loop): Removed kill_error. 12068 120691996-06-20 Hrvoje Niksic <hniksic@srce.hr> 12070 12071 * http.c (http_loop): New function. 12072 12073 * loop.c: Removed *lots* of stuff from retrieve_url. 12074 12075 * url.c (parseurl): Changed to work with urlinfo. Integrated 12076 username finding and path parsing. 12077 (newurl): New function. 12078 (freeurl): New function. 12079 (mkstruct): Removed the old bogosities, made it urlinfo-compliant. 12080 (url_filename): Likewise. 12081 (path_simplify): Accept relative paths too. 12082 (opt_url): Made urlinfo-compliant, removed bogosities. 12083 (path_simplify): Expanded to accept relative paths. 12084 (str_url): A replacement for hide_url 12085 (decode_string): Fixed a bug that caused malfunctioning when 12086 encountering an illegal %.. combination. 12087 (opt_url): Removed the argument. Dot-optimizations are now default. 12088 12089 * nmalloc.c (strdupdelim): New function. 12090 12091 * url.h: Added the urlinfo structure 12092 120931996-06-19 Hrvoje Niksic <hniksic@srce.hr> 12094 12095 * url.c (hide_url): Thrown out the protocol assertion. Do not 12096 change the URL if the protocol if not recognized. 12097 (findurl): Put continue instead of break. 12098 120991996-06-18 Hrvoje Niksic <hniksic@srce.hr> 12100 12101 * sample.geturlrc: Changed the defaults to be commented out and 12102 harmless (previous defaults caused pains if copied to 12103 ~/.geturlrc). 12104 12105 * http.c (gethttp): Print the HTTP request in debug mode. 12106 12107 * connect.c (iread): Added EINTR check loop to select-ing 12108 too. EINTR is now correctly handled with select(). 12109 12110 * TODO: new file 12111 121121996-05-07 Hrvoje Niksic <hniksic@srce.hr> 12113 12114 * host.c (same_host): Made the function a little bit more 12115 intelligent regarding diversified URL syntaxes. 12116 12117 * url.c (skip_url): Spaces are now skipped after URL: 12118 12119 * Released 1.3.1 with the patch to prevent crashing when sending 12120 NULL to robot* functions and the patch to compile "out of the box" 12121 on AIX. 12122 12123 * recr.c (recursive_retrieve): Added checking whether this_url is 12124 NULL when calling the robot functions. 12125 12126 * ChangeLog: New file. 12127