+2005-04-21 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * http-ntlm.c (ntlm_output): Fix setting the domain.
+ Suggested by Sami Krank.
+
+2005-04-20 Mauro Tortonesi <mauro@ferrara.linux.it>
+
+ * connect.c: Set IPV6_V6ONLY socket option when -6 switch is used.
+
+2005-04-20 FUJISHIMA Satsuki <sf@FreeBSD.org>
+
+ * http.c (request_set_header): Fix the check whether a new header
+ needs to be allocated.
+
+2005-04-18 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * utils.c (base64_encode): Use the parameter order that makes more
+ sense. Return the length of the base64 written. Updated all
+ callers.
+
+2005-04-17 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * http.c (request_set_header): Free NAME when VALUE is NULL and
+ freeing the header name is requested.
+
+2005-04-17 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * snprintf.c (fmtstr): Declare VALUE as const char *.
+ Based on patch by Russ Allbery.
+
+2005-04-17 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * snprintf.c (fmtfp): More correct handling of significant digit
+ count with %g -- 0.002 has one significant digit, not three.
+
+2005-04-16 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * retr.c (fd_read_body): Respect read timeout with non-interactive
+ or no progress gauge -- treat ETIMEDOUT specially only when
+ progress_interactive.
+ Reported by FUJISHIMA Satsuki.
+
+2005-04-16 FUJISHIMA Satsuki <sf@FreeBSD.org>
+
+ * http.c (gethttp): Don't use HTTP/1.0 persistent connections over
+ proxy.
+
+2005-04-16 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * snprintf.c: Use the PARAMS macro to handle prototypes. Write
+ function definitions in the ansi2knr-friendly way.
+ (fmtstr): If string precision is specified, don't read VALUE past
+ it.
+ (dopr): Actually print %g and %e formats.
+ (fmtfp): Fix a bug that caused 0.01 to be printed as 0.1.
+ (fmtfp): Use LLONG in floating point conversions to be able to
+ convert more digits.
+ (fmtfp): Interpret precision as number of significant digits with
+ %g.
+ (fmtfp): Omit trailing decimal zeros with %g.
+
+ * snprintf.c: Don't include <ctype.h> because none of it is used.
+ Include strings.h/string.h, as per Autoconf.
+
+2005-04-15 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * ptimer.c: Use _POSIX_TIMERS - 0 > 0, which handles the case when
+ _POSIX_TIMERS is defined but empty, as well as the case when it is
+ undefined. Do the same with the check for _POSIX_MONOTONIC_CLOCK.
+ Suggested by Larry Jones.
+
+2005-04-15 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * ptimer.c: Check that _POSIX_TIMERS is defined as well as > 0.
+ Problem reported by Steven M. Schweda.
+
+2005-04-14 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * http.c (skip_short_body): Print the skipped body data in debug
+ mode.
+ (skip_short_body): Don't skip more than 4k of body data.
+ (skip_short_body): Return whether the skipping was successful.
+ (gethttp): If skip_short_body failed, invalidate the connection.
+
+2005-04-12 Gisle Vanem <giva@bgnett.no>
+
+ * ftp.c (getftp): Ditto.
+
+ * http.c (gethttp): Open the output file in binary mode.
+
+2005-04-11 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * hash.c: Conditionalize including config.h on HAVE_CONFIG_H
+ instead of on STANDALONE.
+
+2005-04-11 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * gen_sslfunc.c (ssl_print_errors): Made static.
+ (ssl_print_errors): Eliminate potentially dangerous fixed-size
+ error buffer. Passing NULL to ERR_error_string causes it to use
+ its own static buffer, which is fine for our purposes.
+
+ * gen_sslfunc.c: Include gen_sslfunc.h. Make the declarations of
+ ssl_init and ssl_conect match the actual definitions.
+ (ssl_connect): Simply return a boolean, the SSL context is no
+ longer useful as a return value.
+
+ * retr.c: Don't include SSL headers; we don't need them.
+
+2005-04-11 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * config-post.h: Don't define _VA_LIST under Solaris; it breaks
+ compilation with GCC 3.4 under Solaris 10. (It was defined to
+ avoid a warning with previous versions of GCC.)
+
+2005-04-11 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * xmalloc.c (register_ptr): Warn the user to increase SZ prior to
+ aborting.
+
+2005-04-11 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * convert.c (convert_cleanup): Free converted_files.
+
+2005-04-10 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * wget.h (DEBUGP): Use __builtin_expect to give a hint to GCC that
+ opt.debug is false in the vast majority of cases.
+
+2005-04-10 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * config-post.h: Declare alloca as void *, not char *.
+
+2005-04-09 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * recur.c (download_child_p): When -p is used, (temporarily)
+ ignore accept/reject rules for HTMLs, even when they are at the
+ maximum recursion depth. That is because with -p we are, if
+ necessary, overstepping the max. depth to get the requisites.
+
+2004-06-12 Larry Jones <lawrence.jones@ugsplm.com>
+
+ * recur.c (download_child_p): Correct the logic in check number 6:
+ test opt.reclevel (not DEPTH) against INFINITE_RECURSION.
+
+2005-04-09 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * url.c: Use "static const" in preference to "const static".
+ Sun's cc warns that "storage class after type is obsolescent".
+
+ * url.c (urlchr_table): Don't mark ~ as unsafe, too many broken
+ web sites are confused when ~ is changed to %7E. Their servers
+ redirect /%7Efoo/ to /~foo/, which Wget again accesses using %7E,
+ causing further redirections, therefore looping infinitely. See
+ Debian bug #301624 for an example.
+
+2005-04-09 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * alloca.c: Include wget.h to be able to use xmalloc. In addition
+ to defining malloc to xmalloc, also define free to xfree.
+
+2005-04-09 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * http-ntlm.c (ntlm_output): Use "char", not "unsigned char" for
+ ntlmbuf. Our base64 functions accept char anyway.
+ (ntlm_output): Join up the format string, since we nominally
+ support K&R compilers.
+ (ntlm_output): Ditto.
+
+2005-04-08 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * ptimer.c: Use Windows timers under Cygwin, whose POSIX timer
+ implementation is incomplete.
+
+2005-04-08 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * ptimer.c (struct ptimer): Remove the unused initialized field.
+
+ * ptimer.c: Renamed function parameters from WT (which used to
+ stand for wget_timer or wtimer) to PT.
+
+2005-04-08 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * ptimer.c (posix_init): Be smarter about choosing clocks. In
+ decreasing order of preference, use CLOCK_MONOTONIC,
+ CLOCK_HIGHRES, and CLOCK_REALTIME.
+ (ptimer_allocate): Removed.
+
+ * ptimer.c: Refactor the code by cleanly separating the
+ architecture-dependent code from the architecture-independent
+ code.
+
+2005-04-08 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * ptimer.c (ptimer_init): Explicitly check that
+ _POSIX_MONOTONIC_CLOCK is *both* defined and >=0. (Undefined
+ symbols are >=0.)
+
+2005-04-08 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * ptimer.c (ptimer_diff): Fix typo affecting Windows build.
+
+2005-04-08 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * ptimer.c (ptimer_init): In fact, _POSIX_MONOTONIC_CLOCK needs to
+ be >= 0.
+
+ * ptimer.c (ptimer_init): Check whether _POSIX_MONOTONIC_CLOCK is
+ defined instead of whether it's greater than 0. glibc defines it
+ to 0, but still makes it available via sysconf.
+
+2005-04-08 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * mswindows.c (str_to_int64): Rename OVERFLOW and UNDERFLOW to
+ INT64_OVERFLOW and INT64_UNDERFLOW, since those names are used.
+
+2005-04-07 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * ptimer.c: New file. Move the "wtimer" functions from utils.c to
+ this file and rename them to ptimer_.
+
+2005-04-07 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * host.c (NO_ADDRESS): Define NO_ADDRESS only after the system
+ headers have been included.
+
+2005-04-06 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * http.c (pconn): Include NTLM data, which is per-connection.
+ (known_authentication_scheme_p): Recognize NTLM authorization.
+ (create_authorization_line): Call ntlm_input and ntlm_output.
+
+ * http-ntlm.c: New file, donated by Daniel Stenberg and originally
+ written for curl, heavily modified for Wget.
+
+ * utils.c (base64_encode): Relocated from http.c, since it is now
+ used by http-ntlm.c, and will possibly be used elsewhere.
+ (base64_decode): New function, originally based on code from GNU
+ recode.
+
+2005-04-02 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * ftp.c (ftp_loop): Ditto.
+
+ * ftp-basic.c (ftp_pasv): Use the xzero shorthand for memset(0).
+ (ftp_lpsv): Ditto.
+
+2005-04-05 Mauro Tortonesi <mauro@ferrara.linux.it>
+
+ * Makefile.in: removed string_t.c from list of source files.
+
+2005-04-04 Mauro Tortonesi <mauro@ferrara.linux.it>
+
+ * string_t.c: Removed.
+
+ * string_t.h: Removed.
+
+2005-04-02 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * url.c (rewrite_shorthand_url): Only accept recognized schemes.
+ That way "foo:80" will correctly be rewritten to "http://foo:80"
+ instead of left unchanged and ultimately rejected because of
+ "unsupported scheme foo".
+
+2005-03-31 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * utils.c (number_to_string): Avoid explicit 64-bit constants;
+ construct them by multiplication at compile-time.
+
+ * utils.c, elsewhere: Don't append "L" to 32-bit integer
+ constants; we aren't really compilable on 16-bit systems anyway.
+
+ * hash.c (prime_size): Remove primes larger than 2^31, but include
+ 2^31-1, which is prime.
+
+2005-03-30 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * utils.c (string_set_to_array): New function.
+
+ * convert.c: Replace the use of "slists" with sets/hash-tables,
+ which in fact suit the intended purpose much better.
+ downloaded_html_list is removed altogether.
+
+2005-03-29 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * ftp.h (enum): Rename GLOBALL, GETALL, and GETONE to
+ GLOB_GLOBALL, GLOB_GETALL, and GLOB_GETONE to avoid conflict with
+ Linux headers.
+
+2005-03-29 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * utils.c (numdigit): More correct handling of negative numbers.
+
+2005-03-21 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * http.c (gethttp): Print the human-readable size.
+
+ * ftp.c (getftp): Print the human-readable size of the file to be
+ downloaded.
+
+ * utils.c (human_readable): New function.
+
+ * utils.c: Renamed "legible" to "with_thousand_seps",
+ "legible_large_int" to "with_thousand_seps_large", and "legible_1"
+ to "add_thousand_seps".
+
+2005-03-21 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * http.c (gethttp): Inhibit persistent connections when talking to
+ proxies, as mandated by RFC 2068.
+
+2005-03-20 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * url.c (unescape_single_char): New function.
+ (url_escape_dir): Use it to unescape slashes in directory
+ components.
+ (url_string): Escape unsafe chars in host name, except for the ':'
+ charaters, which can appear in IPv6 addresses.
+
+ * main.c (main): Don't access the cookie jar directly.
+
+ * log.c (escnonprint_internal): Correctly calculate the needed
+ string size. Don't forget the buffer's new size after having
+ reallocated it.
+ (log_cleanup): New function. Free the escnonprint ring data.
+
+ * init.c (cleanup): Don't free the cookie jar explicitly, it is
+ now done by http_cleanup.
+ (cleanup): opt.user_headers is now a vector, free it with
+ free_vec.
+
+ * http.c (gethttp): Make sure to free the request data, the status
+ message, and the response data before returning from the function.
+ (save_cookies): New function.
+ (http_cleanup): Free the cookie jar here.
+
+ * hash.c: Renamed string_hash to hash_string and ptrhash to
+ hash_pointer. Exported hash_pointer.
+
+ * xmalloc.c: Organized malloc_table (previously malloc_debug) as a
+ simple EQ hash table. register_ptr and unregister_ptr are now of
+ O(1) complexity.
+
+ * xmalloc.c: Renamed "*_debug" to debugging_* and "*_real" to
+ checking_*.
+
+2005-03-12 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * utils.c (debug_test_md5): Moved to gen-md5.c.
+
+ * mswindows.h: Don't declare inet_ntop, since we don't use it.
+
+ * mswindows.h: For consistency, also wrap closesocket, it being
+ a Winsock call.
+
+ * mswindows.h: Don't declare sleep and usleep; we're defining
+ xsleep now.
+
+ * mswindows.h (mkdir): Don't special-case Borland C, _mkdir
+ works there as well.
+
+ * host.c: Don't include winsock header files; the correct ones
+ are already included by mswindows.h.
+
+ * mswindows.c (xsleep): Round toward the nearest millisecond
+ in an attempt to avoid average short sleeps.
+
+ * utils.c (wtimer_granularity): Report correct values for
+ Windows timers and for high-resolution timers.
+
+ * utils.c (wtimer_initialize_once): New function, called to
+ initialize the timer frequency.
+
+ * utils.c: Replace the use of GetSystemTime with high-resolution
+ counters under Windows. When high-resolution counters are
+ unavailable, use GetTickCount().
+
+2005-03-15 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * retr.c (fd_read_body): Undo the 2004-11-18 change. Instead,
+ always be "exact".
+
+2005-03-17 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * ftp-basic.c (ftp_login): Don't free the string if ftp_response
+ returned an error status because the line didn't get allocated in
+ the first place.
+
+2005-03-15 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * http.c (read_http_response_head): Limit the response size to 64k
+ bytes.
+
+ * retr.c (fd_read_hunk): Accept a MAXSIZE argument that limits the
+ number of bytes the function is allowed to allocate.
+ (fd_read_line): Limit the line to 4096 bytes.
+
+2005-03-12 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * wget.h: Include options.h after wgint has been defined.
+
+ * options.h (struct options): Declare options processed with
+ cmd_bytes as wgint, not long.
+
2005-03-18 Hrvoje Niksic <hniksic@xemacs.org>
* init.c (cmd_file): Use concat_strings.