+Tue Jan 9 07:20:05 WST 2007 John Darrington <john@darrington.wattle.id.au>
+
+ * dictionary.c procedure.c: More changes to ensure that callbacks occur
+ whenever appropriate, but only when the dataset/dictionary is in a
+ consistent state.
+
+Sun Jan 7 08:33:04 WST 2007 John Darrington <john@darrington.wattle.id.au>
+
+ * dictionary.c dictionary.h : Added callbacks for change of filter and
+ split variables. Refactored some code to ensure that callbacks get
+ invoked when appropriate.
+
+ * procedure.c (proc_cancel_temporary_transformations): Make sure that
+ replace_dict callback occurs when permanent_dict replaces the current
+ dictionary.
+
+Wed Jan 3 11:02:11 WST 2007 John Darrington <john@darrington.wattle.id.au>
+
+ * dictionary.c dictionary.h : Added callback for when the weight
+ variable of a dictionary changes.
+
+Mon Jan 1 10:36:26 WST 2007 John Darrington <john@darrington.wattle.id.au>
+
+ * dictionary.c dictionary.h : Added replace_source and replace_dict
+ callbacks, and functions to deal with them.
+
+Fri Dec 22 13:56:08 2006 Ben Pfaff <blp@gnu.org>
+
+ Simplify missing value handling.
+
+ * missing-values.h (enum mv_class): New type.
+ (enum mv_type): Moved definition into missing-values.c and renamed
+ each MV_* to MVT_*, to distinguish them from the exposed mv_class
+ enums. Updated all uses.
+ (struct missing_values): Changed type of `type' from `enum
+ mv_type' to `int' because the definition is no longer exposed.
+
+ * missing-values.c (mv_is_value_missing): Add new enum mv_class
+ parameter. Update all callers.
+ (mv_is_num_missing): Ditto.
+ (mv_is_str_missing): Ditto.
+ (mv_is_value_user_missing): Removed. Changed callers to use
+ mv_is_value_missing.
+ (mv_is_num_user_missing): Removed. Changed callers to use
+ mv_is_num_missing.
+ (mv_is_str_user_missing): Removed. Changed callers to use
+ mv_is_str_missing.
+ (mv_is_value_system_missing): Removed. Changed callers to use
+ mv_is_value_missing.
+ (mv_set_type): Removed. Changed callers to use mv_clear.
+ (mv_clear): New function.
+
+ * variable.c (var_is_value_missing): Add new enum mv_class
+ parameter. Update all callers.
+ (var_is_num_missing): Ditto.
+ (var_is_str_missing): Ditto.
+ (var_is_value_user_missing): Removed. Changed callers to use
+ var_is_value_missing.
+ (var_is_num_user_missing): Removed. Changed callers to use
+ var_is_num_missing.
+ (var_is_str_user_missing): Removed. Changed callers to use
+ var_is_str_missing.
+ (var_is_value_system_missing): Removed. Changed callers to use
+ var_is_value_missing.
+
+ * casefilter.c (struct casefilter): Use enum mv_class in place of
+ bool.
+ (casefilter_variable_missing): Adapt to new member.
+ (casefilter_create): Change signature to take enum mv_class,
+ update callers.
+
+Fri Dec 22 20:08:38 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * casefile-factory.h fastfile-factory.c fastfile-factory.h: New files.
+
+ * case-sink.c case-sink.h procedure.c procedure.h
+ storage-stream.c: Now uses the factory.
+
+Sat Dec 16 22:05:18 2006 Ben Pfaff <blp@gnu.org>
+
+ Make it possible to pull cases from the active file with a
+ function call, instead of requiring indirection through a callback
+ function.
+
+ * case-source.h (struct case_source_class): Change ->read function
+ to return a single case, instead of calling a callback function
+ for each case. Change ->destroy function to return an error
+ status.
+
+ * case-source.c (free_case_source): Pass along the value returned
+ by the case_source ->destroy function.
+
+ * procedure.c (struct write_case_data): Removed.
+ (struct dataset): Added some members to track procedure state.
+ (procedure): Optimize the trivial case at this level.
+ (internal_procedure): Re-implement in terms of proc_open,
+ proc_read, proc_close.
+ (proc_open) New function.
+ (proc_read) New function.
+ (proc_close) New function.
+ (write_case) Moved into proc_read.
+ (close_active_file) Moved closing of data source into proc_close.
+
+ * storage-source.c: Rewrote to conform with modified
+ case_source_class interface.
+
+ * transformations.c (trns_chain_execute): Added argument to allow
+ starting execution from an arbitrary transformation. Updated
+ callers.
+
+ * transformations.h (enum TRNS_NEXT_CASE) Renamed TRNS_END_CASE.
+
+Sat Dec 16 14:09:25 2006 Ben Pfaff <blp@gnu.org>
+
+ * sys-file-reader.c (read_display_parameters): Don't assume that
+ MEASURE_* and ALIGN_* have the same values found in system files.
+
+ * sys-file-writer.c (write_variable_display_parameters): Ditto.
+
+ * variable.h: Change MEASURE_NOMINAL, MEASURE_ORDINAL,
+ MEASURE_SCALE to be 0-based instead of 1-based. This also fixes
+ the value of n_MEASURES, which was off by 1 (at least from my
+ point of view).
+
+Sat Dec 16 12:17:34 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * dictionary.c dictionary.h vardict.h variable.c: Added optional
+ callbacks which are invoked when the dictionary or its
+ variables are changed.
+
+ * missing-values.c missing-values.h value-labels.c: Tidied up
+ consistency checks, and made some of them return false
+ instead of assert-failing.
+
+Wed Dec 13 19:30:11 2006 Ben Pfaff <blp@gnu.org>
+
+ * calendar.c (calendar_days_in_month): New function.
+
+Mon Dec 11 07:53:39 2006 Ben Pfaff <blp@gnu.org>
+
+ * value-labels.c (hash_int_val_lab): Only hash as many bytes as
+ the value label's width.
+
Sun Dec 10 14:21:29 2006 Ben Pfaff <blp@gnu.org>
* sfm-private.h: Move contents into sys-file-writer.c, which is