+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
+ out to be invalid.
+
+ * url.c (parse_errors): Mark error messages for translation.
+ (url_error): Translate error messages returned to the caller.
+
+2003-10-01 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * ftp.c (ftp_loop_internal): Initialize TMRATE to NULL to shut up
+ the compiler.
+
+2003-09-26 Gisle Vanem <giva@bgnett.no>
+
+ * src/mswindows.c: Added ws_percenttitle() showing progress in the
+ window titlebar. Called from retr.c. Secured ws_mypath().
+
+ * windows/config.h.ms: alloca() prototype not needed. Removed
+ "#undef ENABLE_NLS"; should be in Makefile IMHO. Moved
+ WGET_USE_STDARG from mswindows.h to config.ms.h because of #ifdef
+ in log.c. (MSVC's vararg.h and stdarg.h are incompatible).
+
+2003-09-29 Aaron Hawley <Aaron.Hawley@uvm.edu>
+
+ * ftp.c (getftp): --spider option should now work with FTP
+ downloads.
+ (ftp_loop_internal): quiet reports and calculations of downloads
+ when --spider option set, nor try deleting when --delete-after
+ also set.
+ (ftp_loop): --spider will skip HTML-ification of .listing file.
+
+2003-09-26 Gisle Vanem <giva@bgnett.no>
+
+ * mswindows.c (read_registry): Removed.
+ (set_sleep_mode): New function.
+ (windows_main_junk): Call it.
+
+2003-09-26 Gisle Vanem <giva@bgnett.no>
+
+ * mswindows.c (read_registry): Fix invocation of registry
+ functions.
+
+ * mswindows.c (read_registry): Condition definitions of sleep and
+ usleep with not HAVE_SLEEP and HAVE_USLEEP respectively. Define
+ HAVE_SLEEP and HAVE_USLEEP under __DMC__.
+
+2003-09-24 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * url.c (url_escape_1): Revert unintentional change to lowercase
+ xdigit escapes.
+ (url_escape_dir): Document that this function depends on the
+ output of url_escape_1.
+
+2003-09-23 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * progress.c (create_image): Print the current ETA if we're done
+ with the download.
+ (create_image): Change '-' display char to '+' in the progress bar.
+
+ * Makefile.in (clean): Remove .libs.
+
+2003-09-23 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * cookies.c (struct cookie): New flag domain_exact.
+ (update_cookie_field): Skip leading dot in domain.
+ (find_matching_chains): Match numeric addresses exactly; don't
+ needlessly copy HOST to the stack.
+ (matching_cookie): Added argument HOST. If cookie->domain_exact
+ is set, check that HOST is equal to cookie->domain.
+ (cookie_jar_load): Only use TAB as delimiter. Document the
+ meaning of DOMAIN-FLAG. Skip leading dot in domain.
+ (cookie_jar_load): Don't ignore DOMAIN-FLAG -- instead, set
+ domain_exact to true if DOMAIN-FLAG is false.
+ (save_cookies_mapper): If domain_exact is false, prepend the
+ domain with dot, like Mozilla does.
+
+2003-09-22 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * progress.c (create_image): Print the initial part of the
+ download with '-' characters, analogous to how dot progress prints
+ the initial part with ','.
+
+ * hash.c (ptrhash): New function.
+ (ptrcmp): Ditto.
+ (hash_table_new): Default to identity hash table.
+
+2003-09-22 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * safe-ctype.h (_sch_test): The cast of BIT to unsigned char was
+ broken -- _sch_istable bitmasks are 16-bit, not 8-bit! Cast BIT
+ to unsigned short instead.
+
+2003-09-22 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * url.c (path_simplify): Instead of calls to memmove, handle "./"
+ and "../" by advancing pointers.
+
+2003-09-22 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * retr.c (getproxy): Moved from url.c.
+
+ * convert.c: Split off link conversion from url.c into separate
+ file. Also included the book-keeping stuff from recur.c.
+
+2003-09-21 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * init.c: Improved documentation of functions.
+ (cmd_boolean): Attempt to make code that tries to avoid calling
+ strcmp for "speed" a bit more readable.
+
+ * init.c (simple_atof): Report error on encountering non-digit,
+ non-"." character.
+ (simple_atoi): Replacement for myatoi(), calling interface
+ compatible with simple_atof. Updated myatoi's callers.
+
+2003-09-21 Bertrand Demiddelaer <bert@b3rt.org>
+
+ * url.c (path_simplify): Would read two bytes past the end of the
+ string in the "./" case.
+
+2003-09-21 Matthew J. Mellon <mellon@tymenet.com>
+
+ * http.c (gethttp): Recognize content-type "application/xhtml+xml"
+ as what Wget considers "text/html".
+
+2003-09-21 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * connect.c (connect_with_timeout): Made timeout type double.
+
+ * options.h (struct options): New members read_timeout,
+ dns_timeout, and connect_timeout.
+ Use them.
+
+2003-09-21 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * init.c (simple_atof): New function.
+ (cmd_time): Use it.
+ (cmd_bytes): Accept things like "1.5k" and such. Use simple_atof
+ to parse decimals.
+
+ * retr.c (limit_bandwidth): Adjust each sleep by the error of the
+ previous one.
+
+2003-09-21 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * main.c (main): Use setoptval() for setting the options. Use
+ run_command for `-e'.
+
+ * init.c (parse_line): Rewritten to return COMIND right away.
+ Changed linkage to static.
+ (run_wgetrc): Use the available comind when calling setval, so it
+ doesn't have to be computed twice.
+ (setval_internal): New function, runs the command's action without
+ any error checking.
+ (setoptval): New function, does what setval used to do, but exits
+ in case of error.
+ (run_command): New function.
+
+2003-09-21 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * connect.c (select_fd): Change MAXTIME's type to double. Handle
+ its decimal part.
+
+ * retr.c (sleep_between_retrievals): In the random-wait case, use
+ random_float() to wait between 0 and 2*opt.wait seconds.
+
+ * utils.c (run_with_timeout): Accept `double' timeouts. Correctly
+ handle timeout values in (0, 1) range.
+ (random_float): New function.
+
+ * options.h (struct options): Change the types of wait, waitretry,
+ and timeout to double.
+
+ * init.c (cmd_time): Accept floating point time.
+
+2003-09-20 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * retr.c (get_contents): Cosmetic fixes.
+
+2003-09-20 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * url.c (uri_merge): Get rid of uri_merge_1.
+ (uri_merge): Merge "foo//", "bar" as "foo//bar", not "foo///bar",
+ i.e. don't add an extra slash merely because BASE ends with two
+ slashes.
+ (parse_credentials): Renamed from parse_uname. Rewrittern in
+ standard [beg, end) calling style.
+ (url_skip_credentials): Renamed from url_skip_uname. Made static.
+ (url_skip_credentials): Include # and ; as terminators. Old code
+ would mistakenly consider "http://foo.com#hniksic@iskon.hr" to
+ contain a username.
+ (url_skip_scheme): Removed because it was unused.
+ (url_has_scheme): Require "scheme" to be at least one char long.
+
+2003-09-19 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * url.c (url_file_name): Expect NULL dir_prefix.
+
+ * init.c (cmd_file): Use a macro to prevent multiple #ifdef
+ WINDOWS.
+ (defaults): Set dir_prefix to NULL by default.
+
+2003-09-19 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * safe-ctype.h (_sch_test): Cast BIT to unsigned char, like latest
+ gcc does.
+
+2003-09-19 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * wget.h (BOUNDED_TO_ALLOCA): Evaluate PLACE only once.
+ (ARRAY_SIZE): Renamed to countof. All callers updated.
+
+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