+2007-07-22 Ben Pfaff <blp@gnu.org>
+
+ Fix problems with uniqueness of short names in system files with
+ very long string variables. Now a variable may have multiple
+ short names.
+
+ * automake.mk (src_data_libdata_a_SOURCES): Add new files
+ short-names.c, short-names.h.
+
+ * dictionary.c (dict_clone): Clone all the short names.
+ (compare_strings): Move into short-names.c.
+ (hash_strings): Ditto.
+ (set_var_short_name_suffix): Ditto.
+ (dict_assign_short_names): Ditto, rename short_names_assign,
+ change to assign all short names.
+
+ * por-file-writer.c (write_variables): Use short_names_assign
+ instead of dict_assign_short_names.
+
+ * short-names.c: New file.
+
+ * short-names.h: New file.
+
+ * sys-file-private.c (sfm_width_to_segments): New function.
+
+ * sys-file-reader.c (read_long_var_name_map): Save and restore all
+ the short names, not just the first one.
+
+ * sys-file-writer.c (cont_var_name): Removed.
+ (sfm_open_writer): Use short_names_assign instead of
+ dict_assign_short_names. Use unique short names assigned by
+ short_names_assign instead of those generated by cont_var_name.
+
+ * variable.c (struct variable): Remove `short_name' member,
+ replace by `short_names' and `short_name_cnt'.
+ (var_create) Initialize new members.
+ (var_get_short_name_cnt): New function.
+ (var_get_short_name): Now takes an index argument. Changed most
+ callers to pass 0.
+ (var_set_short_name): Ditto.
+ (var_clear_short_name): Renamed var_clear_short_names, changed to
+ clear all short names.
+
+2007-07-22 Ben Pfaff <blp@gnu.org>
+
+ * variable.c (var_set_width): Use new var_set_width function.
+
+ * missing-values.c (mv_n_values): Drop assertion, which was not
+ needed.
+
+ * format.c (fmt_default_for_width): New function.
+ (fmt_resize): New function.
+
+2007-07-18 John Darrington <john@darrington.wattle.id.au>
+
+ * datasheet.c (datasheet_delete_columns): Added assertion to check
+ we're not deleting outside the range of the sheet.
+
+
+ * dictionary.c dictionary.h variable.c: Added the ability for string
+ variables to be resized.
+
+ * vardict.h: Added some prototypes (moved from dictionary.h) as
+ these should only be called by variable.c
+
+
+2007-07-14 John Darrington <john@darrington.wattle.id.au>
+
+ * sfm-reader.c: Respect case_cnt field in file header.
+
+2007-07-01 John Darrington <john@darrington.wattle.id.au>
+
+ * transformation.c transformation.h (trns_chain_execute): Changed the
+ signature (Patch #6057)
+
+2007-06-10 Ben Pfaff <blp@gnu.org>
+
+ * casereader-filter.c (casereader_filter_destroy): Make sure to
+ write all the remaining excluded cases to the casewriter, if any.
+
+ * caseinit.c (init_list_destroy): Rewrite.
+ (init_list_clear): Ditto.
+
+ * casegrouper.c (casegrouper_get_next_group): Always set *reader
+ to null when returning false.
+
+2007-06-06 Ben Pfaff <blp@gnu.org>
+
+ Actually implement the new procedure code and adapt all of its
+ clients to match. Also adapt all of the other case sources and
+ sinks in the tree and their clients to use the
+ casereader/casewriter infrastructure.
+
+ * automake.mk: Add and remove files.
+
+ * any-reader.c: Change into a casereader.
+ * por-file-reader.c: Ditto.
+ * scratch-reader.c: Ditto.
+ * sys-file-reader.c: Ditto.
+
+ * any-writer.c: Change into a casewriter.
+ * por-file-writer.c: Ditto.
+ * scratch-writer.c: Ditto.
+ * sys-file-writer.c: Ditto.
+
+ * procedure.c: Change to use casereader, casewriter, caseinit, and
+ other new infrastructure.
+
+ * scratch-handle.c: Adapt to new infrastructure.
+
+ * case-sink.c: Removed, now dead code.
+ * case-sink.h: Ditto.
+ * case-source.c: Ditto.
+ * case-source.h: Ditto.
+ * casefile-factory.c: Ditto.
+ * casefile-private.h: Ditto.
+ * casefile.c: Ditto.
+ * casefile.h: Ditto.
+ * casefilter.c: Ditto.
+ * casefilter.h: Ditto.
+ * fastfile.c: Ditto.
+ * fastfile.h: Ditto.
+ * fastfile-factory.c: Ditto.
+ * fastfile-factory.h: Ditto.
+ * storage-stream.c: Ditto.
+ * storage-stream.h: Ditto.
+
+2007-06-06 Ben Pfaff <blp@gnu.org>
+
+ Add datasheet code.
+
+ * automake.mk: Add new files.
+
+ * datasheet.c: New file.
+
+ * datasheet.h: New file.
+
+2007-06-06 Ben Pfaff <blp@gnu.org>
+
+ Until now, the procedure code has provided a case to the
+ case_source, which has filled in the data values that come from
+ the active file. "Left" data values that don't come from the
+ active file naturally stay the same from case to case, because the
+ procedure code keeps using that same case.
+
+ One of the compromises that comes with the new procedure code is
+ that the active file allocates and provides its own case, which
+ the procedure code then has to resize to provide room for any
+ other variables that should go in the case and then fill in the
+ values of "left" variables. Then, when we're done with that case,
+ we have to save the values of "left" variables to copy into the
+ next case read from the active file.
+
+ The caseinit code helps with this.
+
+ * automake.mk: Add new files.
+
+ * caseinit.c: New file.
+
+ * caseinit.h: New file.
+
+2007-06-06 Ben Pfaff <blp@gnu.org>
+
+ * value.h (value_cnt_from_width): New function.
+
+ * variable.c (var_get_value_cnt): Use new function.
+
+2007-06-06 Ben Pfaff <blp@gnu.org>
+
+ Add casegrouper, to allow cases read from a given casereader to be
+ broken into groups, each of which has its own casereader.
+ Generally cases are grouped based on having equal values for some
+ set of variables.
+
+ * automake.mk: Add new files.
+
+ * casegrouper.c: New file.
+
+ * casegrouper.h: New file.
+
+2007-06-06 Ben Pfaff <blp@gnu.org>
+
+ Add interface to lexicographical ordering of cases.
+
+ * automake.mk: Add new files.
+
+ * case-ordering.c: New file.
+
+ * case-ordering.h: New file.
+
+2007-06-06 Ben Pfaff <blp@gnu.org>
+
+ Add casereaders and casewriters, the basis of the new data processing
+ implementation. A casereader is a uniform interface to reading cases
+ from a data source; a casewriter is a uniform interface to writing
+ cases to a data sink.
+
+ * automake.mk: Add new files.
+
+ * casereader-filter.c: New file.
+
+ * casereader-provider.h: New file.
+
+ * casereader-translator.c: New file.
+
+ * casereader.c: New file.
+
+ * casereader.h: New file.
+
+ * casewriter-provider.h: New file.
+
+ * casewriter-translator.c: New file.
+
+ * casewriter.c: New file.
+
+ * casewriter.h: New file.
+
+2007-06-06 Ben Pfaff <blp@gnu.org>
+
+ "casewindow" data structure that extends the deque (from libpspp)
+ of cases with the ability to dump cases to disk if we get too many
+ of them in memory.
+
+ * automake.mk: Add new files.
+
+ * casewindow.c: New file.
+
+ * casewindow.h: New file.
+
+2007-06-06 Ben Pfaff <blp@gnu.org>
+
+ sparse_cases data structure that augments a sparse_array of cases
+ with the ability to dump cases to disk if we get too many cases in
+ memory.
+
+ * automake.mk: Add new files.
+
+ * sparse-cases.c: New file.
+
+ * sparse-cases.h: New file.
+
+2007-06-06 Ben Pfaff <blp@gnu.org>
+
+ Adds a low-level on-disk case array data structure.
+
+ * automake.mk: Add new files.
+
+ * case-tmpfile.c: New file.
+
+ * case-tmpfile.h: New file.
+
+2007-06-06 Ben Pfaff <blp@gnu.org>
+
+ In a couple of places we calculate the maximum number of cases to
+ keep in memory based on the user-defined workspace. Enable
+ centralizing the calculation through a new function.
+
+ * settings.c (get_workspace_cases): New function.
+
2007-06-06 Ben Pfaff <blp@gnu.org>
The casenumber type is defined in transformations.h, but case.h is