+2003-10-31 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * various: Use new macros xnew, xnew0, xnew_array, and xnew0_array
+ in various places.
+
+2003-10-31 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * wget.h: Move declarations of malloc and logging code to
+ xmalloc.h and log.h respectively to unclutter this file.
+ (STRDUP_ALLOCA): Made it side-effect free.
+
+ * xmalloc.h: New files. Define macros xnew, xnew0, xnew_array,
+ and xnew0_array.
+
+ * xmalloc.c: New file. Move the xmalloc routines here.
+
+2003-10-31 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * connect.c (sockaddr_set_data): Remove the broken code that
+ checked for NULL address.
+
+2003-10-31 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * host.c (address_list_from_single): Removed.
+ (address_list_from_ipv4_addresses): Renamed from
+ address_list_from_vector.
+
+2003-10-31 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * sysdep.h (CLOSE): Don't call close on file descriptors less than
+ 0, i.e. on uncreated sockets.
+
+ * connect.c (resolve_bind_address): Work on struct sockaddr
+ directly.
+ (connect_to_host): Replacement for connect_to_many. Resolve HOST
+ and connect to any of its addresses. If we can't connect and the
+ host name lookup was cached, try to resolve it again. This should
+ fix problems with hosts behind dynamic DNS. Updated all callers.
+ (connect_to_ip): Replacement for connect_to_one. Removed SILENT;
+ added the argument PRINT instead. Updated all callers.
+ (set_connection_host_name): Removed.
+
+ * host.c (address_list_address_at): New function instead of
+ address_list_copy_one. It returns a pointer to ip_address *, so
+ it's not necessary to copy the data.
+ (address_list_cached_p): New function.
+ (forget_host_lookup): Ditto.
+
+ * connect.c: Got rid of the MSOCK global variable. Made bindport
+ return the local socket it creates. Added a new argument to
+ acceptport, the socket to call accept on. Updated callers.
+ (closeport): Removed.
+
+ * connect.c: Moved the sockaddr code from host.c to this file,
+ because most of that stuff is used for connecting, and has nothing
+ to do with host names anyway.
+ (sockaddr_set_data, sockaddr_get_data): New functions, replace the
+ old sockaddr_set_address, sockaddr_set_port, sockaddr_get_address,
+ and sockaddr_get_port.
+
+2003-10-30 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * sysdep.h: Use `S >= 8' rather than `S == 8' when looking for
+ large integers.
+
+2003-10-30 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * url.c (append_uri_pathel): New argument ESCAPED_P that says
+ whether [B, E) is to be treated as URL-escaped or not. If
+ ESCAPED_P is false, don't unescape the region.
+ (url_file_name): u->file is not URL-escaped.
+
+2003-10-30 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * retr.c (retrieve_from_file): Use retrieve_tree for
+ page-requisites.
+
+ * main.c (main): Don't define opt.recursive when -p is used.
+ Instead, make sure that recursion is used for HTTP in that case.
+
+2003-10-29 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * host.h: Defined accessors for elements of ip_address. Updated
+ all callers.
+ (address_list_match_all): Use memcmp in the non-IPv6 case.
+
+ * wget.h (CONNECT_ERROR): Don't retry connecting if connect()
+ returned EAFNOSUPPORT.
+
+2003-10-27 Mauro Tortonesi <mauro@deepspace6.net>
+
+ * host.c, connect.c, ftp.c, ...: Added support for dual-family
+ IPv6. Reworked FTP code. [More complete description to come.]
+
+2003-10-26 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * sysdep.h: Include inttypes.h where available.
+
+ * host.c: Switch from u_int32_t to uint32_t.
+
+2003-10-26 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * netrc.c (parse_netrc): Reset the QUOTE flag after the closing
+ quote.
+
+2003-10-25 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * url.c (is_valid_ipv6_address): Reformat to GNU coding style.
+ Use enums for NS_IN* constants. Use ISXDIGIT.
+
+ * convert.c (construct_relative): Document better how the function
+ works.
+
+2003-10-23 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * config.h.in: Deploy preprocessor magic to avoid Ultrix's
+ <netdb.h> include <bitypes.h> which defines its own u_int32_t.
+ Reported by Bernhard Simon.
+
+2003-10-23 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * version.c: Bump version.
+
+2003-10-23 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * url.c: Ditto.
+
+ * html-parse.c (advance_declaration): Don't use trailing comma in
+ enum because older compilers don't support it.
+
+ * utils.c: Don't redefine HAVE_SIGSETJMP.
+
+2003-10-16 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * convert.c (construct_relative): Don't handle absolute files
+ specially -- for example, -P/tmp/foo shouldn't imply that
+ converted files must refer to "/tmp/foo/..."!
+
+2003-10-15 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * http.c: Consider status 307 a valid redirect.
+
+2003-10-15 Philip Stadermann <philip.stadermann@credativ.de>
+
+ * ftp.c (ftp_retrieve_glob): Correctly loop through the list whose
+ elements might have been deleted.
+
+2003-10-13 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * html-url.c (tag_handle_meta): Set the Refresh link to expect
+ HTML.
+ (append_one_url): Renamed to append_url.
+
+2003-10-13 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * sysdep.h: Only define u_int32_t.
+
+2003-10-11 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * utils.c (large_int_to_string): Use snprintf() to print the
+ number. This will work even on systems where libc doesn't
+ understand %lld, but the compiler does, because it will use our
+ snprintf replacement.
+
+ * init.c (parse_bytes_helper): New function.
+ (cmd_bytes): Use it to parse bytes, but cast the result to long.
+ (cmd_bytes_large): Ditto, but store the result to LARGE_INT. Used
+ for --quota so that --quota=10G works even on machines without
+ long long.
+
+ * options.h (struct options): Declare quota as LARGE_INT.
+
+ * retr.c (downloaded_exceeds_quota): Removed.
+ (downloaded_increase): Ditto.
+ (total_downloaded_bytes): New variable, replaces opt.downloaded,
+ which was the wrong place for it anyway. Updated callers of
+ downloaded_exceeds_quota and downloaded_increase to check this
+ variable directly.
+
+ * sysdep.h: Get rid of VERY_LONG_TYPE. Use LARGE_INT for the same
+ purpose, defined as `long', `long long' or `double', depending on
+ size of long and whether long long is available.
+
+2003-10-11 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * sysdep.h: Also check size of short for int32_t.
+
+2003-10-11 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * host.c (lookup_host): Use u_int32_t to store the result of
+ inet_addr(). That removes the need for offset fiddling, caring
+ about endian-ness, etc.
+
+ * sysdep.h: Define int32_t and u_int32_t if not available.
+
+2003-10-11 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * ftp-basic.c (ftp_epsv): Use socklen_t * as the third argument to
+ getpeername.
+
+ * config.h.in: Define socklen_t stub.
+
+ * host.c (sockaddr_len): Return socklen_t.
+
+ * connect.c (conaddr): Use socklen_t as the third argument to
+ accept, getsockname, and connect.
+
+2003-10-10 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * recur.c (retrieve_tree): Don't descend into documents that are
+ not expected to contain HTML, regardless of their content-type.
+
+ * html-url.c (tag_url_attributes): Record which attributes are
+ supposed to yield HTML links that can be followed.
+ (tag_find_urls): Propagate that information to the caller through
+ struct urlpos.
+
+2003-10-10 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * hash.c (find_mapping): Return the next available mapping when
+ the key is not found, not NULL.
+ (hash_table_put): Use find_mapping to find the storage for the new
+ data.
+ (hash_table_put): Grow the table before exceeding maximum
+ fullness, not afterwards.
+
+2003-10-10 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * hash.c (hash_table_new): Slightly change the meaning of the
+ first parameter. Instead of being the minimum initial size, it is
+ now the minimum number of items that the hash table can take
+ without needing to resize.
+
+2003-10-09 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * html-url.c (init_interesting): Initialize interesting_tags and
+ interesting_attributes as hash tables. This simplifies the code
+ immensely because hash tables handle allocation and remove
+ duplicates automatically.
+ (find_tag): Removed.
+ (collect_tags_mapper): Instead of calling find_tag, simply get the
+ entry from interesting_tags hash table, which is both simpler and
+ faster.
+
+2003-10-09 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * hash.c (hash_table_get): Declare hash-table argument as const.
+ (find_mapping): Ditto.
+ (hash_table_get_pair): Ditto.
+ (hash_table_contains): Ditto.
+ (hash_table_count): Ditto.
+
+2003-10-08 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * html-url.c (get_urls_html): Parse the appropriate flags to
+ html-parse.c.
+
+ * html-parse.c (map_html_tags): Accept FLAGS from the caller
+ instead of examining OPT.
+
+2003-10-08 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * html-url.c (find_tag): Switch to binary search.
+
+2003-10-08 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * main.c (print_help): Fix typo; stured -> stored.
+
+2003-10-08 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * getopt.c: Add definitions of getopt_long and getopt_long_only.
+
+2003-10-08 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * config.h.in: Renamed DEBUG to ENABLE_DEBUG. ENABLE_DEBUG is, I
+ think, a better name, because it implies that debugging output is
+ merely possible, not "on by default", as might be construed from
+ just DEBUG.
+
+2003-10-08 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * ftp.c (has_insecure_name_p): Define it here.
+
+ * utils.c (has_wildcards_p): Define it here.
+
+ * sysdep.h: Declare fnmatch-related macros here, if not using
+ system fnmatch(). Update .c files to not declare fnmatch.h
+ directly.
+
+ * cmpt.c (fnmatch): Moved here. Use it only under non-GNU libc.
+
+2003-10-08 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * getopt.c: Newer version, imported from Free libit.
+
+2003-10-07 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * cookies.c (struct cookie): Remove unused backpointer to cookie
+ jar.
+
+2003-10-07 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * cmpt.c (memmove): Comment out, since it's no longer used.
+
+ * cookies.c (cookie_jar_generate_cookie_header): Allocate room for
+ chains in one pass.
+ (find_chains_of_host): Assume that the caller has allocated DEST
+ to be sufficiently large to take all the data.
+ (eliminate_dups): Run through the array and eliminate dups on the
+ fly instead of using memmove.
+ (cookie_jar_process_set_cookie): Free cookie->domain before
+ re-setting it.
+
+2003-10-05 Gisle Vanem <giva@bgnett.no>
+
+ * mswindows.c (set_sleep_mode): Fix type of
+ _SetThreadExecutionState.
+
+2003-10-05 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * utils.c (file_size): Return -1 if fopen() returns NULL. Prior
+ to this patch, wget --post-file=nosuchfile dumped core.
+
+2003-10-04 Gisle Vanem <giva@bgnett.no>
+
+ * mswindows.c (run_with_timeout): Use WaitForSingleObject to wait
+ for thread termination.
+
+2003-10-04 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * log.c: Use `...' in function definitions; ansi2knr will convert
+ them to va_dcl. This allowed removal of the ugly VA_START_1 and
+ VA_START_2 macros.
+
+2003-10-03 Gisle Vanem <giva@bgnett.no>
+
+ * connect.c: And don't include them here.
+
+ * mswindows.h: Include winsock headers here.
+
+2003-10-03 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * html-parse.c (convert_and_copy): Move variable declarations
+ before statements.
+
+2003-10-02 Gisle Vanem <giva@bgnett.no>
+
+ * mswindows.c (run_with_timeout): For Windows: Run the 'fun' in a
+ thread via a helper function. Continually query the thread's
+ exit-code until finished or timed out.
+
+2003-10-02 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * wget.h (XMALLOC_ARRAY): Removed.
+ (ALLOCA_ARRAY): Ditto.
+
+ * html-parse.c: Renamed alloca_p to resized.
+ (GROW_ARRAY): Renamed DO_REALLOC_FROM_ALLOCA to GROW_ARRAY and
+ returned it to html-parse.c, since nothing else was using it.
+
+2003-10-02 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * retr.c (retrieve_url): Initialize DUMMY storage for DT. Caught
+ by valgrind.
+
+2003-10-02 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * html-parse.c (convert_and_copy): Handle numeric entities in
+ hexadecimal, &#xHH.
+ (convert_and_copy): Copy the contents directly to the pool without
+ a stack-allocated intermediary.
+
+2003-10-02 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * utils.c (alarm_set): New function; use either setitimer or alarm
+ to set up the alarm.
+ (alarm_cancel): New function; cancel the alarm set up by
+ alarm_set.
+ (run_with_timeout): Use them.
+
2003-10-01 Hrvoje Niksic <hniksic@xemacs.org>
* url.c (url_parse): Don't leak memory when a reencoded URL turns