+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.
+
+Sun Nov 5 08:29:34 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * casefilter.c casefilter.h (new files), casefile.c casefile.h
+ casefile-private.h: Added casefilter to assist commands with missing
+ values.
+
+Sat Nov 4 11:47:09 2006 Ben Pfaff <blp@gnu.org>
+
+ Implement SET ERRORS, SHOW ERRORS. Fixes bug #17609.
+
+ * settings.c: (route_errors_to_terminal) New variable.
+ (route_errors_to_listing) New variable.
+ (get_error_routing_to_terminal) New function.
+ (set_error_routing_to_terminal) New function.
+ (get_error_routing_to_listing) New function.
+ (set_error_routing_to_listing) New function.
+
+ * settings.h: (SET_ROUTE_* enums) Removed, because unused.
+
+Tue Oct 31 19:58:27 2006 Ben Pfaff <blp@gnu.org>
+
+ * format.c: Completely rewrite, to achieve better abstraction.
+ Rewrite all references to formats in other files.
+
+ * format.def: Rewrite and reorganize.
+
+ * settings.c: Move everything related to custom currency formats
+ into format.[ch], changing them in form, so as to group related
+ code and definitions better. Changed all references to use the
+ new functions.
+ (static var decimal) Removed.
+ (static var grouping) Removed.
+ (static var cc) Removed.
+ (get_decimal) Removed.
+ (set_decimal) Removed.
+ (get_grouping) Removed.
+ (set_grouping) Removed.
+ (get_cc) Removed.
+ (set_cc) Removed.
+
+ * settings.h: (macro CC_CNT) Removed.
+ (macro CC_WIDTH) Removed.
+ (struct custom_currency) Removed.
+
+Tue Oct 31 19:56:19 2006 Ben Pfaff <blp@gnu.org>
+
+ * data-in.c (data_in): Use switch statement instead of table, to
+ avoid dependence on the order of the FMT_* enums.
+
+Tue Oct 31 19:35:36 2006 Ben Pfaff <blp@gnu.org>
+
+ * data-out.c: (num_to_string) Removed, because it was dead code.
+
+Tue Oct 31 18:09:24 2006 Ben Pfaff <blp@gnu.org>
+
+ * data-in.c (parse_trailer): Fix error message.
+
+Sat Oct 28 11:56:50 2006 Ben Pfaff <blp@gnu.org>
+
+ * format.c (fmt_is_binary): New function.
+
+Thu Oct 19 22:59:56 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * procedure.c procedure.h: Encapsulated the static data into a single
+ struct.
+
+Sat Oct 14 16:56:44 2006 Ben Pfaff <blp@gnu.org>
+
+ * casefile.c (casereader_read_xfer): Always initialize the case,
+ even on an error condition.
+
+Wed Sep 27 09:37:49 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * procedure.c (case_limit_trns_proc): Fixed buglet which rendered the
+ entire function useless.
+
+Mon Sep 25 17:11:46 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * casefile-private.h casefile.c casefile.h fastfile.c: Created new
+ casereader method casereader_clone.
+
+ * procedure.c pransformations.h: Introduced new type casenum_t
+
+Thu Sep 21 07:00:30 2006 Ben Pfaff <blp@gnu.org>
+
+ * variable.c: (width_to_bytes) Rephrase code for clarify.
+
+Sun Jul 16 19:52:03 2006 Ben Pfaff <blp@gnu.org>
+
+ * format.c: (fmt_type_from_string) New function.
+ (fmt_to_string) Include decimals in output if the format has
+ decimals, even if the format type does not. This way, we can
+ accurately reproduce incorrect formats in user output.
+ (check_common_specifier) Make the check for a bad format type an
+ assertion, so we get bug reports if they show up. Fix message.
+ Check for decimal places with a format type that doesn't allow
+ them.
+ (check_input_specifier) Remove check for FMT_X, which has been
+ deleted.
+ (check_output_specifier) Ditto.
+
+ * format.def: Remove FMT_T, FMT_X, FMT_DESCEND, FMT_NEWREC.
+
+ * format.h: (macro FMT_TYPE_LEN_MAX) New macro.
+ (struct fmt_desc) Use FMT_TYPE_LEN_MAX in definition.
+ (enum fmt_parse_flags) Removed.
+