+2007-07-25 Ben Pfaff <blp@gnu.org>
+
+ * getl.c (getl_append_source): Add source to *end* of list.
+ Otherwise the list ends up in reverse order.
+
+ * automake.mk (src/libpspp/version.c): Use $HOME instead of ~ in
+ paths. We don't interpolate ~.
+
+2007-07-22 Ben Pfaff <blp@gnu.org>
+
+ * str.h: Include xstrndup.h also.
+
+ * float-format.c (float_get_double): New function.
+
+2007-07-06 Ben Pfaff <blp@gnu.org>
+
+ * copyleft.c (legal): Update startup notice to use format
+ recommended by latest GNU coding standards.
+
+2007-06-06 Ben Pfaff <blp@gnu.org>
+
+ * array.c (binary_search): Fix assertion.
+
+2007-06-06 Ben Pfaff <blp@gnu.org>
+
+ Add error propagation layer. Patch #5916, slightly revised.
+
+ * automake.mk: Add new files.
+
+ * taint.c: New file.
+
+ * taint.h: New file.
+
+2007-06-03 Ben Pfaff <blp@gnu.org>
+
+ Add ability for reverse iteration to tower code.
+
+ * tower.c (tower_last): New function.
+ (tower_prev): New function.
+ (abt_to_tower_node): New function.
+ (first_node): Use abt_to_tower_node.
+ (last_node): New function.
+ (next_ndoe): Use abt_to_tower_node.
+ (prev_node): New function.
+
+2007-06-03 Ben Pfaff <blp@gnu.org>
+
+ * tower.c: Cache repeated lookups of a single tower element. This
+ turns such lookups into O(1) operations without harming the big-O
+ of other operations.
+
+ * tower.h (struct tower): Add members for caching.
+
+ * range-set.c (range_set_clone): New function.
+
+ * array.c (insert_range): New function.
+ (insert_element): New function.
+ (move_range): New function.
+
+2007-04-25 Ben Pfaff <blp@gnu.org>
+
+ * model-checker.c: Don't use type sighandler_t, which is a GNU
+ extension. Reported by "Daniel E WILLIAMS"
+ <Daniel.E.Williams@state.or.us>.
+
+2007-04-25 John Darrington <john@darrington.wattle.id.au>
+
+ * i18n.c: Fixed bug converting long strings
+
+2007-04-22 Ben Pfaff <blp@gnu.org>
+
+ Patch #5884.
+
+ * ll.h (ll_for_each_reverse): New macro.
+ (ll_for_each_reverse_continue): New macro.
+ (ll_for_each_reverse_safe): New macro.
+ (ll_for_each_safe_reverse_continue): New macro.
+ (ll_for_each_reverse_preremove): New macro.
+ (ll_for_each_reverse_postremove): New macro.
+ (ll_remove__): Removed (dead code).
+ (ll_tail__): New macro.
+ (ll_prev__): New macro.
+
+2007-04-22 Ben Pfaff <blp@gnu.org>
+
+ Implement model checker for testing purposes.
+
+ Patch #5873.
+
+ * automake.mk (src_libpspp_libpspp_a_SOURCES): Add
+ model-checker.[ch]. Alphabetize.
+
+ * model-checker.c: New file.
+
+ * model-checker.h: New file.
+
+2007-04-03 Ben Pfaff <blp@gnu.org>
+
+ Apply patches #5828, #5837, #5841, #5843.
+
+ * abt.c (insert_relative): New function.
+ (abt_insert_after): New function.
+ (abt_insert_before): New function.
+
+ * range-map.c: New file.
+
+ * range-map.h: New file.
+
+ * range-set.c: New file.
+
+ * range-set.h: New file.
+
+ * tower.c: New file.
+
+ * tower.h: New file.
+
+2007-04-01 Ben Pfaff <blp@gnu.org>
+
+ * bt.c: Need #include <limits.h>. Thanks to "John McCabe-Dansted"
+ <gmatht@gmail.com> for pointing this out.
+
+2007-03-31 Ben Pfaff <blp@gnu.org>
+
+ Patch #5827.
+
+ * automake.mk (src_libpspp_libpspp_a_SOURCES): Add bt.c.
+
+ * bt.h: New file.
+
+ * bt.c: New file.
+
+2007-03-30 Ben Pfaff <blp@gnu.org>
+
+ Patch #5829.
+
+ * automake.mk (src_libpspp_libpspp_a_SOURCES): Add deque.c.
+
+ * deque.h: Completely rewrote. Adapted client to new interface.
+
+ * deque.c: New file.
+
+2007-03-25 Ben Pfaff <blp@gnu.org>
+
+ * automake.mk (src_libpspp_libpspp_a_SOURCES): Add
+ sparse-array.[ch].
+
+ * pool.c (pool_zalloc): New function.
+ (pool_calloc): New function.
+
+ * sparse-array.c: New file.
+
+ * sparse-array.h: New file.
+
+Mon Mar 5 20:55:49 CET 2007 John Darrington <john@darrington.wattle.id.au>
+
+ * i18n.c: Cast second argument of iconv using ICONV_CONST
+
+2007-02-22 Ben Pfaff <blp@gnu.org>
+
+ * string.h: Don't include vsnprintf.h any more, because gnulib has
+ now absorbed it into string.h.
+
+Thu Feb 22 12:25:52 CET 2007 John Darrington <john@darrington.wattle.id.au>
+
+ * syntax-gen.h syntax-gen.c: New files.
+
+Sun Feb 18 11:21:41 2007 Ben Pfaff <blp@gnu.org>
+
+ * alloc.h: Remove useless parentheses in #if "defined" operator.
+
+ * misc.h: Ditto.
+
+Tue Feb 6 20:00:13 2007 Ben Pfaff <blp@gnu.org>
+
+ * misc.h [!HAVE_ISINF] (isinf): Define only if isinf is not
+ defined as a macro, because mingw seems to have the macro without
+ the function.
+ [!HAVE_ISNAN] (isnan): Ditto, for symmetry only.
+ [!AHVE_FINITE] (finite): Ditto, for symmetry only.
+
+Tue Feb 6 19:58:46 2007 Ben Pfaff <blp@gnu.org>
+
+ * compiler.h (PRINTF_FORMAT): Use __printf__ instead of printf to
+ avoid problem with "#define printf libintl_printf" that libintl is
+ fond of doing.
+ (SCANF_FORMAT): Ditto, for symmetry only.
+
+Tue Feb 6 19:47:10 2007 Ben Pfaff <blp@gnu.org>
+
+ * float-format.h: [FPREP_IEEE754] [WORDS_BIGENDIAN] Add missing
+ comma.
+
+Wed Jan 24 21:13:32 2007 Ben Pfaff <blp@gnu.org>
+
+ * abt.c: New file.
+
+ * abt.h: New file.
+
+ * automake.mk: Add abt.c, abt.h to sources.
+
+Sun Jan 14 21:44:18 2007 Ben Pfaff <blp@gnu.org>
+
+ * automake.mk: Add deque.h to sources.
+
+ * deque.h: New file.
+
+Wed Jan 10 06:49:38 2007 Ben Pfaff <blp@gnu.org>
+
+ * automake.mk: Add heap.c, heap.h to sources.
+
+ * heap.c: New file.
+
+ * heap.h: New file.
+
+Sun Dec 10 13:54:03 2006 Ben Pfaff <blp@gnu.org>
+
+ * str.c (ss_tokenize): Skip the first delimiter character
+ following the token. Otherwise, changing delimiters from token to
+ token can't have a sensible effect, because we'll get the previous
+ delimiter as part of the next token.
+ (ss_match_string): New function.
+
+Sat Dec 9 18:48:55 2006 Ben Pfaff <blp@gnu.org>
+
+ * misc.h (macro range): Removed, as it was unused.
+
+Sat Dec 9 07:19:01 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * array.c: Removed gratuitous #include
+
+Thu Dec 7 20:33:23 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * getl.c getl.h : Changed signature of create function to take a
+ string indicating the initial include path.
+
+Sun Dec 3 11:36:10 2006 Ben Pfaff <blp@gnu.org>
+
+ * str.h (SS_LITERAL_INITIALIZER): Cast the string literal to "char
+ *". This normally does nothing but when GCC's -Wwrite-strings is
+ used it fixes a warning that otherwise can't be avoided.
+
+Sun Dec 3 11:35:35 2006 Ben Pfaff <blp@gnu.org>
+
+ * str.c (ss_alloc_substring_pool): New function.
+ (ss_alloc_uninit_pool) New function.
+
+Sun Dec 3 11:28:06 2006 Ben Pfaff <blp@gnu.org>
+
+ * getl.h: (enum getl_syntax) New enumeration to distinguish
+ between "batch" and "interactive" in a clearer way than a bool.
+ (struct getl_interface) Add an arg to "read" to return the
+ intended syntax mode. Add an arg to "filter" to specify the
+ syntax mode of the line to filter.
+
+ * getl.c (do_read_line): Instead of returning the syntax type of
+ the line read based on whether the source itself is interactive,
+ return it based on whether the line itself should be treated as
+ having batch or interactive syntax. Also, adapt interface to the
+ new interfaces of lex_init() and getl_interface.
+
+Wed Nov 29 19:35:44 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * getl.c getl.h: New files. Created interface from base of
+ language/line-buffer.[ch]
+
+ * msg-locator.c msg-locator.h: New files. Moved from
+ language/line-buffer.[ch]
+
+Fri Nov 24 17:27:00 2006 Ben Pfaff <blp@gnu.org>
+
+ * misc.h: (min) Removed. All references updated to use MIN, from
+ minmax.h provided by gnulib.
+ (max) Ditto (for MAX).
+
+Sun Nov 19 09:22:26 2006 Ben Pfaff <blp@gnu.org>
+
+ * str.c (ss_get_long): New function.
+ (ss_compare_case) Ditto.
+ (ss_equals) Ditto.
+ (ss_equals_case) Ditto.
+
+Tue Oct 31 19:28:19 2006 Ben Pfaff <blp@gnu.org>
+
+ * str.h: [!HAVE_STRCHR] Drop compatibility code, because now we
+ assume a C89 compliant library. (Gnulib makes this assumption so
+ we might as well too.)
+ [!HAVE_STRRCHR] Ditto.
+
+Thu Oct 26 20:19:50 2006 Ben Pfaff <blp@gnu.org>
+
+ * automake.mk: Add the new files.
+
+ * legacy-encoding.c: New file.
+
+ * legacy-encoding.h: New file.
+
+ * float-format.c: New file.
+
+ * float-format.h: New file.
+
+ * integer-format.c: New file.
+
+ * integer-format.h: New file.
+
+Sun Oct 15 09:49:50 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * hash.c hash.h: Added hsh_create_pool, a hash which uses a pool
+ for its memory allocation.
+
+Mon Jul 31 15:49:46 2006 Ben Pfaff <blp@gnu.org>
+
+ * compiler.h: (macro CONST_FUNCTION) New macro.
+ (macro PURE_FUNCTION) New macro.
+
+Sun Jul 16 21:07:35 2006 Ben Pfaff <blp@gnu.org>
+
+ * message.c: (static int messages_disabled) New variable.
+ (msg_emit) Don't emit the message if messages are disabled.
+ (msg_disable) New function.
+ (msg_enable) New function.
+
+ * str.c: (free_string) New function.
+ (ds_register_pool) New function.
+ (ds_unregister_pool) New function.
+ (ds_set_length) New function.
+
+Mon Jul 10 17:26:58 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * llx.c: #included compiler.h and removed explicit preprocessor cruft.
+
+Fri Jul 7 20:01:26 2006 Ben Pfaff <blp@gnu.org>
+
+ * automake.mk: (src_libpspp_libpspp_a_SOURCES) Add assertion.h.
+
+ * assertion.h: New file. Replaced usage of assert(0) and abort()
+ with NOT_REACHED() from this file throughout the source tree.
+
+ * message.c: (request_bug_report_and_abort) Revise message printed
+ to include request to include lines above the message, which
+ should include an assertion failure message in many cases.
+ (msg_assert_fail) Removed.
+
+ * message.h: (assert) Removed.
+ (request_bug_report_and_abort) Mark NO_RETURN.
+
+Mon Jul 3 09:36:42 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * i18n.c: Made character conversion tolerant of failure to create the
+ necessary iconv structs.
+
+Sat Jul 1 15:32:54 2006 Ben Pfaff <blp@gnu.org>
+
+ * automake.mk: (src_libpspp_libpspp_a_SOURCES) Add new files.
+
+ * ll.c: New file.
+
+ * ll.h: New file.
+
+ * llx.c: New file.
+
+ * llx.h: New file.
+
+Sun Jun 25 22:35:28 2006 Ben Pfaff <blp@gnu.org>
+
+ Optimize rehashing: we know that none of the entries in the hash
+ table are equal, so we need not compare them to each other during
+ rehashing.
+
+ * hash.c: (locate_empty_entry) New function.
+ (rehash) Use locate_empty_entry() instead of
+ locate_matching_entry().
+
+Fri Jun 9 14:03:29 2006 Ben Pfaff <blp@gnu.org>
+
+ Reform string library.
+
+ * str.c (ss_empty): New function. Replaces some uses of ls_init()
+ or ls_null().
+ (ss_cstr) New function. Replaces some uses of ls_init().
+ (ss_buffer) New function. Replaces some uses of ls_init().
+ (ss_substr) New function.
+ (ss_head) New function.
+ (ss_tail) New function.
+ (ss_alloc_substring) New function. Replaces use of ls_create().
+ (ss_alloc_uninit) New function.
+ (ss_dealloc) New function. Replaces use of ls_destroy().
+ (ss_truncate) New function.
+ (ss_rtrim) New function.
+ (ss_ltrim) New function.
+ (ss_trim) New function.
+ (ss_chomp) New function.
+ (ss_separate) New function.
+ (ss_tokenize) New function.
+ (ss_advance) New function.
+ (ds_create) Renamed ds_init_cstr(). Updated all callers.
+ (ss_match_char) New function.
+ (ss_get_char) New function.
+ (ss_get_until) New function.
+ (ss_get_chars) New function.
+ (ss_is_empty) New function.
+ (ss_length) New function. Replaces ls_length().
+ (ss_data) New function. Replaces many uses of ls_c_str().
+ (ss_end) New function. Replaces ls_end().
+ (ss_at) New function.
+ (ss_first) New function.
+ (ss_last) New function.
+ (ss_span) New function.
+ (ss_cspan) New function.
+ (ss_compare) New function.
+ (ss_pointer_to_position) New function.
+ (ss_xstrdup) New function.
+ (ds_init) Renamed ds_init_empty(). All callers updated.
+ (ds_init_string) New function.
+ (ds_init_substring) Changed interface to take a struct substring.
+ Updated all callers.
+ (ds_init_cstr) New function. Replaces ds_create(). All callers
+ updated.
+ (ds_assign_substring) Changed interface to take a struct
+ substring. Updated all callers.
+ (ds_assign_buffer) Removed. Changed all callers to use
+ ds_assign_substring().
+ (ds_assign_c_str) Renamed ds_assign_cstr(). All callers updated.
+ (ds_ss) New function.
+ (ds_substr) New function.
+ (ds_head) New function.
+ (ds_tail) New function.
+ (ds_rtrim) New function. Replaces ds_rtrim_spaces(). All callers
+ updated.
+ (ds_ltrim) New function. Replaces ds_ltrim_spaces(). All callers
+ updated.
+ (ds_trim) New function. Replaces ds_trim_spaces(). All callers
+ updated.
+ (ds_rtrim_spaces) Removed.
+ (ds_ltrim_spaces) Removed.
+ (ds_trim_spaces) Removed.
+ (ds_separate) Changed interface to use substrings. All callers
+ updated.
+ (ds_tokenize) Changed interface to use substrings. All callers
+ updated.
+ (ds_c_str) Renamed ds_cstr(). All callers updated.
+ (ds_span) Changed interface to use substring for SKIP_SET and
+ dropped OFS. All callers updated.
+ (ds_cspan) Changed interface to use substring for STOP_SET and
+ dropped OFS. All callers updated.
+ (ds_find_char) New function.
+ (ds_compare) New function.
+ (ds_pointer_to_position) New function.
+ (ds_xstrdup) New function. Replaced all users of
+ xstrdup(ds_c_str(s)) by a call to this function.
+ (ds_gets) Renamed ds_read_line(). All callers updated.
+ (ds_get_config_line) Renamed ds_read_config_line(). All callers
+ updated.
+ (ds_puts) Renamed ds_put_cstr(). All callers updated.
+ (ds_put_substring) New function. Replaces ds_concat(). All
+ callers updated.
+ (ds_concat) Removed.
+ (ds_append_uninit) Renamed ds_put_uninit(). All callers updated.
+ (ds_printf) Renamed ds_put_format(). All callers updated.
+ (ds_vprintf) Renamed ds_put_vformat(). All callers updated.
+ (ds_putc) Renamed ds_put_char(). All callers updated.
+ (ds_putc_multiple) Renamed ds_put_char_multiple(). All callers
+ updated.
+ (ls_create) Removed. Replaced by ss_alloc_substring().
+ (ls_create_buffer) Removed. Replaced by ss_alloc_substring().
+ (ls_init) Removed. Replaced by ss_buffer().
+ (ls_shallow_copy) Removed. Just use assignment.
+ (ls_destroy) Removed. Replaced by ss_dealloc().
+ (ls_null) Removed.
+ (ls_null_p) Removed.
+ (ls_empty_p) Removed. Replaced by ss_is_empty().
+ (ls_c_str) Removed.
+ (ls_end) Removed. Replaced by ss_end().
+
+ * str.h (struct fixed_string): Renamed struct substring, updated
+ all users.
+ (CC_SPACES) New macro.
+ (CC_DIGITS) Ditto.
+ (CC_XDIGITS) Ditto.
+ (CC_LETTERS) Ditto.
+ (CC_ALNUM) Ditto.
+ (SS_EMPTY_INITIALIZER) Ditto.
+ (SS_LITERAL_INITIALIZER) Ditto.
+ (struct string) Removed string, length members. Add substring
+ member.
+ (DS_INITIALIZER) Rename DS_EMPTY_INITIALIZER.
+
+Tue May 30 19:45:12 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * i18n.c i18n.h: New files.
+
Tue May 16 06:50:35 2006 Ben Pfaff <blp@gnu.org>
* automake.mk (src/libpspp/version.c): Removed groff_font_path,