+Mon Dec 4 22:20:17 2006 Ben Pfaff <blp@gnu.org>
+
+ Start converting struct variable to an opaque. In this phase, we
+ add a bunch of setter and getter functions and convert most of the
+ PSPP code to use them. The resulting changes are pervasive but
+ mostly trivial, and only the notable changes are logged.
+
+ * format.c (fmt_equal): New function.
+
+ * variable.c (var_type_is_valid): New function.
+ (measure_is_valid) Moved here, from format.c.
+ (alignment_is_valid) Moved here, from format.c.
+ (var_get_name) New function.
+ (var_set_name) New function.
+ (width_to_type) New function.
+ (var_get_type) New function.
+ (var_get_width) New function.
+ (var_set_width) New function.
+ (var_is_numeric) New function.
+ (var_is_alpha) New function.
+ (var_is_short_string) New function.
+ (var_is_long_string) New function.
+ (var_is_very_long_string) New function.
+ (var_get_missing_values) New function.
+ (var_set_missing_values) New function.
+ (var_clear_missing_values) New function.
+ (var_has_missing_values) New function.
+ (var_is_value_missing) New function.
+ (var_is_num_missing) New function.
+ (var_is_str_missing) New function.
+ (var_is_value_user_missing) New function.
+ (var_is_num_user_missing) New function.
+ (var_is_str_user_missing) New function.
+ (var_is_value_system_missing) New function.
+ (var_get_print_format) New function.
+ (var_set_print_format) New function.
+ (var_get_write_format) New function.
+ (var_set_write_format) New function.
+ (var_set_both_formats) New function.
+ (var_get_label) New function.
+ (var_set_label) New function.
+ (var_clear_label) New function.
+ (var_has_label) New function.
+ (var_get_measure) New function.
+ (var_set_measure) New function.
+ (var_get_display_width) New function.
+ (var_set_display_width) New function.
+ (var_get_alignment) New function.
+ (var_set_alignment) New function.
+ (var_get_value_cnt) New function.
+ (var_get_leave) New function.
+ (var_get_short_name) New function.
+
+ * variable.h: (struct variable) Removed "type" and "nv" members;
+ they are now computed from "width" where needed.
+
+Mon Dec 4 21:38:40 2006 Ben Pfaff <blp@gnu.org>
+
+ * missing-values.c (mv_resize): Don't write beyond end of the
+ allocated buffer when resizing a long string.
+
+Sat Dec 2 16:28:32 2006 Ben Pfaff <blp@gnu.org>
+
+ Clean up identifier code: don't require identifier enumerations to
+ be in a particular order; make better use of string library;
+ expose less of the internals.
+
+ * identifier.c: (lex_skip_identifier) Rename lex_id_get_length,
+ change interface. Updated all callers.
+ (lex_id_match) Change interface to use struct substring, update
+ all callers.
+ (lex_id_match_len) Removed. Update callers to use lex_id_match.
+ (global array keywords[]) Make static, change form. Update all
+ users to use lex_id_name instead.
+ (lex_is_keyword) New function.
+ (lex_id_to_token) Change interface to use struct substring, update
+ all callers.
+ (lex_id_name) New function.
+
+ * identifier.h: (T_FIRST_KEYWORD) Removed. Changed users to call
+ lex_is_keyword instead.
+ (T_LAST_KEYWORD) Removed.
+ (T_N_KEYWORDS) Removed.
+
+Sat Nov 18 20:46:35 2006 Ben Pfaff <blp@gnu.org>
+
+ * format.c: (fmt_date_template) Distinguish characters for which a
+ space is output and any date delimiter is allowed on input, from
+ those for which a space is output and only a space is allowed on
+ input. The former is represented by X, the latter by a space.
+ Also, drop distinction between h and H, changing the former to the
+ latter.
+
+ * data-in.c: Completely rewrite internals to conform to SPSS input
+ formats as closely as possible.
+ (data_in) Changed external interface by replacing the structure
+ that was used as a single argument by a set of arguments. Updated
+ all callers.
+ (data_in_finite_line) Removed. Converted all callers to use plain
+ data_in.
+ (data_in_get_integer_format) New function.
+ (data_in_set_integer_format) New function.
+ (data_in_get_float_format) New function.
+ (data_in_set_float_format) New function.
+
+ * data-in.h: (enums DI_IGNORE_ERROR, DI_IMPLIED_DECIMALS) Removed.
+ (struct data_in) Removed.
+
+ * data-out.c: (output_date) Drop each component from the input as
+ it is output, to allow us to drop the distinction between h (a
+ count of hours) and H (the hour of day) template characters.
+ Also, handle new X template character.
+ (output_scientific) Follow more rational rule on when to drop
+ fraction introduced between SPSS 13 and 15. Updated test case to
+ match new behavior.
+
+Sat Nov 11 11:41:26 2006 Ben Pfaff <blp@gnu.org>
+
+ Fix buffer overflow reported by John Darrington.
+
+ * data-out.c (output_bcd_integer): In case of SYSMIS, etc.,
+ realize that DIGITS is a count of nibbles, not of bytes.
+
+Sat Nov 4 15:59:56 2006 Ben Pfaff <blp@gnu.org>
+
+ * calendar.c (calendar_offset_to_gregorian) Also return the
+ year-of-day. Change callers to new interface.
+
+ * data-out.c: Completely rewrite internals to conform to SPSS
+ output formats as completely as possible.
+ (data_out) Change interface to put input parameters before output
+ parameters, for consistency with the style I now prefer. Update
+ all callers.
+ (data_out_get_integer_format) New public function.
+ (data_out_set_integer_format) New public function.
+ (data_out_get_float_format) New public function.
+ (data_out_set_float_format) New public function.
+
+ * data-out.h: New file. Move prototype for data_out here, from
+ format.h.
+
+ * format.c: (fmt_step_width) Use equality comparison instead of
+ bitwise and, for clarity.
+ (fmt_is_string) Ditto.
+ (fmt_input_to_output) Fix categories that are translated to F
+ format.
+