+2003-09-19 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * main.c (main): New option --strict-comments.
+
+ * html-parse.c (find_comment_end): New function: simple BM search
+ for "-->".
+ (map_html_tags): Use it if looking at a comment and not in strict
+ comments mode.
+
+2003-09-17 Aurelien Marchand <artaxerxes@users.sf.net>
+
+ * ftp.h: Added OS400 system in enum
+ * ftp-basic.c: recognize OS400 systems
+ * ftp.c: don't prepend the CWD if talking to OS400, since it
+ breaks the change in library
+
+2003-09-18 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * retr.c (get_contents): Pass the correct argument to ssl_iread.
+
+2003-09-18 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * safe-ctype.h: Don't #define ctype.h macros to errors because
+ that loses when someone #include's ctype.h after safe-ctype.h.
+
+2003-09-17 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * url.c: Undef U, W, C after use.
+
+2003-09-17 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * init.c (cmd_spec_restrict_file_names): Allow the OS setting to
+ be augmented by ",nocontrol" which means don't escape the control
+ characters, but otherwise keep OS settings.
+
+ * url.c (file_unsafe_char): Deleted.
+ (append_uri_pathel): Query filechr_table directly.
+ (filechr_table): Separated Unix, Windows, and control-unsafe
+ characters.
+
+2003-09-17 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * url.c (url_escape_1): New function.
+ (url_escape): Use it.
+ (sync_path): Handle pathological cases where u->file and u->dir
+ contain really strange characters.
+ (ENCODE): Deleted.
+ (REENCODE): Deleted.
+
+2003-09-16 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * url.c (url_file_name): Don't reallocate FNAME if the file
+ doesn't exist, as is usually the case.
+
+ * utils.c (unique_name): New flag allow_passthrough.
+
+2003-09-16 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * utils.c (wtimer_sys_diff): Convert the time difference to signed
+ __int64, then to double. This works around MS VC++ 6 which can't
+ convert unsigned __int64 to double directly.
+
+2003-09-16 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * Makefile.in (clean): Also remove the core.<number> files
+ produced by recent Linux systems.
+
+2003-09-16 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * http.c (post_file): Don't pad the file if it's not large
+ enough. Bail out instead.
+
+2003-09-15 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * retr.c (get_contents): Reduce the buffer size to the amount of
+ data that may pass through for one second. This prevents long
+ sleeps when limiting bandwidth.
+
+ * connect.c (connect_to_one): Reduce the socket's RCVBUF when
+ bandwidth limitation to small values is requested.
+
+2003-09-15 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * progress.c (update_speed_ring): Moved the speed ring update to a
+ separate function and documented it better.
+
+ * progress.c: Use `double' for most timers to support granularity
+ smaller than 1ms.
+
+2003-09-15 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * wget.h (XDIGIT_TO_XCHAR): Implement as index into a literal
+ string.
+ (XDIGIT_TO_xchar): Ditto.
+
+2003-09-15 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * utils.c: Change the type of timer-related functions from long to
+ double, for better precision. On machines supporting gettimeofday
+ the timers now work with granularity of less than one millisecond.
+
+2003-09-15 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * cookies.c (parse_set_cookies): Fixed the parser to handle more
+ edge conditions.
+ (test_cookies): New function, contains a test suite for
+ parse_set_cookies.
+
+2003-09-15 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * url.c (strpbrk_or_eos): Implement as a macro under Gcc.
+
+2003-09-15 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * cookies.c (parse_set_cookies): Allow trailing space in
+ set-cookies header. Also, allow any amount of whitespace, not
+ only one character. Allow empty set-cookies header without
+ spewing an error.
+
+2003-09-14 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * url.c (append_uri_pathel): Use opt.restrict_file_names when
+ calling file_unsafe_char.
+
+ * init.c: New command restrict_file_names.
+
+ * main.c (main): New option --restrict-file-names[=windows,unix].
+
+ * url.c (url_file_name): Renamed from url_filename.
+ (url_file_name): Add directory and hostdir prefix here, not in
+ mkstruct.
+ (append_dir_structure): New function, does part of the work that
+ used to be in mkstruct. Iterates over path elements in u->path,
+ calling append_uri_pathel on each one to append it to the file
+ name.
+ (append_uri_pathel): URL-unescape a path element and reencode it
+ with a different set of rules, more appropriate for handling of
+ files.
+ (file_unsafe_char): New function, uses a lookup table to decide
+ whether a character should be escaped for use in file name.
+ (append_string): New utility function.
+ (append_char): Ditto.
+ (file_unsafe_char): New argument restrict_for_windows, decide
+ whether Windows file names should be escaped in run-time.
+
+ * connect.c: Include <stdlib.h> to get prototype for abort().
+
+2003-09-14 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * utils.c (wtimer_sys_set): Extracted the code that sets the
+ current time here.
+ (wtimer_reset): Call it.
+ (wtimer_sys_diff): Extracted the code that calculates the
+ difference between two system times here.
+ (wtimer_elapsed): Call it.
+ (wtimer_elapsed): Don't return a value smaller than the previous
+ one, which could previously happen when system time is set back.
+ Instead, reset start time to current time and note the elapsed
+ offset for future calculations. The returned times are now
+ guaranteed to be monotonically nondecreasing.
+
+2003-09-10 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * host.c (lookup_host): Print the result of the DNS lookup.
+
+2003-09-10 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * init.c (cmd_boolean): Accept yes/no along with on/off.
+ (cmd_lockable_boolean): Ditto.
+
+2003-09-10 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * init.c: New command dns_cache.
+
+ * main.c (main): New option --dns-cache[=off].
+
+2003-09-09 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * config.h.in: Initialize HAVE_GETADDRINFO and ENABLE_IPV6.
+
+ * all: Use #ifdef ENABLE_IPV6 instead of the older INET6. Use
+ HAVE_GETADDRINFO for getaddrinfo-related stuff.
+
+2003-09-09 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * url.c (url_parse): Return an error if the URL contains a [...]
+ IPv6 numeric address and we don't support IPv6.
+
+2003-09-05 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * url.c (is_valid_ipv6_address): Modified to not require
+ zero-terminated strings.
+ (is_valid_ipv4_address): Ditto.
+
+2003-09-05 Mauro Tortonesi <mauro@deepspace6.net>
+
+ src/url.c: added RFC 2732 compliance for URL parsing. The
+ functions is_*_address valid are a modified version of
+ glibc 2.3.2 inet_pton's code.
+
+2003-09-03 Ahmon Dancy <dancy@dancysoft.com>
+
+ * main.c init.c options.h: Added --retry-connrefused option so
+ that Connection Refused failures are treated as non-fatal (when
+ trying to retrieve from busy servers).
+
+ * wget.h: New CONNECT_ERROR macro for encapsulating this
+ modification.
+
+ * ftp.c http.c : Use CONNECT_ERROR macro in places where
+ ECONNREFUSED was checked.
+
+2003-01-11 Ian Abbott <abbotti@mev.co.uk>
+
+ * ftp.c (ftp_retrieve_glob): Reject insecure filenames as determined
+ by calling new function has_insecure_name_p. This is based on a
+ patch by Red Hat.
+
+ * fnmatch.c (has_insecure_name_p): New function: returns non-zero
+ if filename starts with `/' or contains `../' and is therefore
+ considered insecure.
+
+ * fnmatch.h: Declare has_insecure_name_p().
+
+2002-08-03 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * init.c (cmd_file): Allocate RESULT correctly.
+
+2002-07-24 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * recur.c (retrieve_tree): Check whether downloaded_html_set is
+ non-NULL before using it.
+
+2002-05-27 Hrvoje Niksic <hniksic@arsdigita.com>
+
+ * html-parse.c (NAME_CHAR_P): Allow almost any character here.
+
+2002-05-24 Hrvoje Niksic <hniksic@arsdigita.com>
+
+ * progress.c (bar_set_params): Fall back to dot progress if the
+ terminal type is "emacs".
+
+2002-05-20 Hrvoje Niksic <hniksic@arsdigita.com>
+
+ * log.c: Don't #undef WGET_USE_STDARG.
+
+2002-05-16 Hrvoje Niksic <hniksic@arsdigita.com>
+
+ * hash.c (prime_size): Store the offset of the prime number in the
+ prime table. When searching, start with the given offset.
+ (hash_table_new): Pass the pointer to ht->prime_offset to
+ prime_size.
+ (grow_hash_table): Ditto.
+ (prime_size): Make 13 the first prime to make empty hash tables
+ slightly smaller.
+
+2002-05-16 Ian Abbott <abbotti@mev.co.uk>
+
+ * recur.c (download_child_p): Minor optimization to avoid an
+ unnecessary additional call to schemes_are_similar_p function.
+
+2002-05-16 Ian Abbott <abbotti@mev.co.uk>
+
+ * url.c (schemes_are_similar_p): New function to test enumerated
+ scheme codes for similarity.
+
+ * url.h: Declare it.
+
+ * recur.c (download_child_p): Use it to compare schemes. This
+ also fixes a bug that allows hosts to be spanned (without the
+ -H option) when the parent scheme is https and the child's is
+ http or vice versa.
+
+2002-05-14 Bill Richardson <bill@riverstonenet.com>
+
+ * ftp.c (getftp): Don't ftruncate stdout.
+
+ * http.c (gethttp): Don't ftruncate stdout.
+
+2002-05-09 Ian Abbott <abbotti@mev.co.uk>
+
+ * cmpt.c (strptime_internal): Synched with glibc-2.1.3.
+ (get_number): Ditto.
+ (get_alt_number): Ditto.
+ (__isleap): New function-like macro used by strptime.
+ (day_of_the_week): New function used by strptime.
+ (day_of_the_year): Ditto.
+ (__mon_yday): Now shared by mktime and strptime implementations.
+
+2002-05-08 Hrvoje Niksic <hniksic@arsdigita.com>
+
+ * cookies.c (check_domain_match): Use match_tail in case
+ insensitive mode.
+
+ * utils.c (match_tail): Allow the caller to specify case
+ insensitive mode.
+
+ * cookies.c (store_cookie): When expiry_time is 0, print it as
+ undefined, not indefinite.
+
+2002-05-07 Ian Abbott <abbotti@mev.co.uk>
+
+ * cookies.c (cookie_jar_process_set_cookie): Do not store
+ discarded cookie.
+
+2002-04-21 Hrvoje Niksic <hniksic@arsdigita.com>
+
+ * cookies.c (check_domain_match): Allow cookies to be set for
+ subdomains of unknown top-level domains under some circumstances.
+
+2002-04-21 Thomas Lussnig <thomas.lussnig@bewegungsmelder.de>
+
+ * gen_ssl.c:
+ - allow checking of server cert
+ - allow defining client cert type
+ - allow limit of ssl protocol
+ - check more return values
+ - added debug message on break
+
+2002-04-21 Hrvoje Niksic <hniksic@arsdigita.com>
+
+ * recur.c (download_child_p): Revert order of items in check
+ number 6 for clarity.
+
+2002-04-20 Hrvoje Niksic <hniksic@arsdigita.com>
+
+ * init.c: Ditto.
+
+ * main.c: Ditto.
+
+ * http.c: Use the new interface.
+
+ * cookies.c: Provide an OO-style "cookie jar" interface to enable
+ separate cookie jars.
+
+ * http.c (http_atotm): Declare argument as const.
+
+2002-04-20 Hrvoje Niksic <hniksic@arsdigita.com>
+
+ * cookies.c (cookie_new): Default to PORT_ANY.
+ (find_cookie_chain_exact): Only search by DOMAIN.
+ (find_matching_cookie): Also check that PORT matches.
+ (store_cookie): Only match the domain.
+ (set_cookie_header_cb): When a cookie "fakes" a domain, assume it
+ is valid for that host rather than discarding it completely.
+ (find_matching_chains): Don't search by PORT.
+ (matching_cookie): Also match PORT.
+ (load_cookies): Set the port if specified, otherwise leave it as
+ ANY.
+ (save_cookies_mapper): Save the port if specified, otherwise leave
+ it empty.
+
+2002-04-19 Thomas Lussnig <thomas.lussnig@bewegungsmelder.de>
+
+ * init.c: The option `egdfile' was not in sort order.
+
+2002-04-16 Hrvoje Niksic <hniksic@arsdigita.com>
+
+ * ftp.c (getftp): Treat directories that begin with <letter>: as
+ absolute.
+ (getftp): Strip trailing slashes from con->id before merging it
+ with TARGET.
+
+2002-04-16 Hrvoje Niksic <hniksic@arsdigita.com>
+
+ * http.c (gethttp): If Content-Type is not given, assume
+ text/html.
+
+2002-04-15 Hrvoje Niksic <hniksic@arsdigita.com>
+
+ * recur.c (download_child_p): Don't ignore rejection of HTML
+ documents that are themselves leaves of recursion.
+
+2002-04-15 Ian Abbott <abbotti@mev.co.uk>
+
+ Makefile.in: Updated several dependencies for object files to take
+ account of nested include files.
+
+2002-04-15 Ian Abbott <abbotti@mev.co.uk>
+
+ Makefile.in: The target `connect$o' (connect.o) now depends on
+ `utils.h'
+
+2002-04-15 Ian Abbott <abbotti@mev.co.uk>
+
+ * host.c (SET_H_ERRNO): New function-like macro to set `h_errno'.
+ (gethostbyname_with_timeout): Use it.
+
+ * utils.c: Don't define `SETJMP()', `run_with_timeout_env' or
+ `abort_run_with_timeout()' when `USE_SIGNAL_TIMEOUT' is undefined.
+
+2002-04-15 Hrvoje Niksic <hniksic@arsdigita.com>
+
+ * host.c (getaddrinfo_with_timeout): New function.
+ (gethostbyname_with_timeout): Ditto.
+ (lookup_host): Use them.
+
+2002-04-14 Hrvoje Niksic <hniksic@arsdigita.com>
+
+ * utils.c (number_to_string): Handle the case when n < -INT_MAX.
+
+2002-04-14 Hrvoje Niksic <hniksic@arsdigita.com>
+
+ * init.c (comind): Use a marginally faster implementation of
+ binary search. To quote Martin Buchholz, "a nanosecond saved is a
+ nanosecond earned."
+
+2002-04-14 Hrvoje Niksic <hniksic@arsdigita.com>
+
+ * main.c (print_help): Document `--post-data' and `--post-file'.
+
+2002-04-14 Hrvoje Niksic <hniksic@arsdigita.com>
+
+ * http.c (gethttp): Ditto.
+
+ * retr.c (retrieve_url): Initialize variables to appease the
+ compiler.
+
+ * gen_sslfunc.c (ssl_iread): Don't handle EINTR when calling
+ select_fd.
+ (ssl_iwrite): Ditto.
+
+ * connect.c (select_fd): Rewrite to handle EINTR. Set errno to
+ ETIMEDOUT in case of timeout.
+ (iread): No need to handle EINTR when calling select_fd.
+ (iwrite): Ditto.
+
+2002-04-14 Hrvoje Niksic <hniksic@arsdigita.com>
+
+ * retr.c (retrieve_url): Make sure that POST is not honored for
+ redirections.
+
+ * http.c (gethttp): Send the POST data when requested.
+ (post_file): New function.
+ (gethttp): Use it.
+
+ * main.c (main): Ditto.
+
+ * init.c: Add new options.
+
+ * options.h (struct options): New options post_data and
+ post_file_name.
+
+2002-04-14 Hrvoje Niksic <hniksic@arsdigita.com>
+
+ * connect.c (connect_with_timeout): Firing SIGALRM can result in
+ connect() exiting with EINTR. Treat EINTR the same as ETIMEDOUT.
+
+2002-04-13 Hrvoje Niksic <hniksic@arsdigita.com>
+
+ * connect.c (connect_with_timeout): Use it.
+
+ * utils.c (run_with_timeout): New function.
+
2002-04-13 Hrvoje Niksic <hniksic@arsdigita.com>
* url.c (getproxy): Accept a struct url argument. This obviates