+Sat May 6 22:25:09 2006 Ben Pfaff <blp@gnu.org>
+
+ Fix segfault.
+
+ * list.q (write_fallback_headers): (write_fallback_headers)
+ Properly record width of leader and pass it to write_varname().
+
+Sat May 6 19:03:13 2006 Ben Pfaff <blp@gnu.org>
+
+ * get.c: (mtf_merge_dictionary) Fix value label memory leak.
+
+Sat May 6 13:51:16 2006 Ben Pfaff <blp@gnu.org>
+
+ Use a casefile, instead of a case sink, for MATCH FILES output.
+ It's more straightforward, although it has the same effect.
+
+ * get.c: (struct mtf_proc) Replace `sink' case sink member by
+ `output' casefile member.
+ (cmd_match_files) Work with casefile instead of sink.
+ (mtf_processing) Add case to casefile instead of sink.
+
+Sat May 6 10:43:07 2006 Ben Pfaff <blp@gnu.org>
+
+ Continue reforming procedure execution. In this phase, get rid of
+ the output code for SPLIT FILE groups in procedure.c, which really
+ shouldn't be doing any output. Move it into the individual
+ procedures instead. This also adds some flexibility.
+
+ * list.q (write_all_headers): Call output_split_file_values().
+
+Wed May 3 23:00:17 2006 Ben Pfaff <blp@gnu.org>
+
+ Continue reforming procedure execution. In this phase, get rid of
+ many global variables, consolidating procedure execution in
+ procedure.c. Encapsulate transformations in new "struct
+ trns_chain". Also, change implementation of N OF CASES, FILTER,
+ and PROCESS IF from special cases to transformations.
+
+ * data-list.c: (data_list_trns_proc) Return TRNS_END_FILE at end
+ of file. (Why didn't we do this before?)
+ (cmd_match_files) Direct procedure output to null sink.
+ Use discard_variables() instead of indirect version.
+
+ * inpt-pgm.c: Use transformation chain.
+ (struct input_program_pgm) Add trns_chain member.
+ (cmd_input_program) Initialize trns_chain member and capture
+ transformations with proc_capture_transformations().
+ (input_program_source_read) Use trns_chain_execute().
+ (destroy_input_program) Destroy input chain.
+
+Tue May 2 10:39:56 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * list.q Changed from using fixed length char buffers to struct
+ string so that any length variables can be used.
+
+Mon May 1 18:21:19 2006 Ben Pfaff <blp@gnu.org>
+
+ Further clean up the CMD_* command result codes.
+
+ * (enum cmd_result_extensions) New. Add CMD_END_INPUT_PROGRAM and
+ CMD_END_CASE result codes.
+ (struct input_program_pgm) Added case_nr, write_case, wc_data
+ members for use by END CASE transformation.
+ (emit_END_CASE) New function.
+ (cmd_input_program) Interpret CMD_END_CASE by outputting an END
+ CASE transformation. If none is output by the input program
+ itself, add one automatically at the end. Change lack of
+ variables from warning to error.
+ (cmd_end_input_program) Return CMD_END_INPUT_PROGRAM instead of
+ CMD_END_SUBLOOP.
+ (input_program_source_read) No longer any need to special-case END
+ CASE. Handle TRNS_DROP_CASE properly. Initialize new members in
+ inp for use by END CASE transformation.
+ (destroy_input_program) New function.
+ (input_program_source_destroy) Just call destroy_input_program().
+ (cmd_end_case) Just return CMD_END_CASE.
+ (end_case_trns_proc) No longer a stub handled by
+ input_program_source_read(). Actually output the case and
+ increment the case number.
+
+Mon May 1 16:06:30 2006 Ben Pfaff <blp@gnu.org>
+
+ Remove vestiges of REPEATING DATA support.
+
+ * data-list.c: (struct rpd_num_or_var) Removed.
+ (struct repeating_data_trns) Removed.
+ (cmd_repeating_data) Removed.
+ (find_variable_input_spec) Removed.
+ (parse_num_or_var) Removed.
+ (parse_repeating_data) Removed.
+ (realize_value) Removed.
+ (struct rpd_parse_info) Removed.
+ (rpd_parse_record) Removed.
+ (repeating_data_trns_proc) Removed.
+ (repeating_data_trns_free) Removed.
+ (repeating_data_set_write_case) Removed.
+ (rpd_msg) Removed.
+
+ * inpt-pgm.c: (input_program_source_read) Don't deal with
+ REPEATING DATA.
+
+ * data-list.h: Removed.
+
+ * automake.mk (src_language_data_io_libdata_io_a_SOURCES): Removed
+ data-list.h.
+
+Mon May 1 15:58:28 2006 Ben Pfaff <blp@gnu.org>
+
+ Remove vestiges of FILE TYPE support.
+
+ * data-list.c: (cmd_data_list) Don't check for FILE TYPE.
+ (cmd_repeating_data) Ditto.
+
+ * automake.mk (src_language_data_io_libdata_io_a_SOURCES): Remove
+ file-type.c, file-type.h.
+
+ * file-type.c: Removed.
+
+ * file-type.h: Removed.
+
+Wed Apr 26 13:16:28 2006 Ben Pfaff <blp@gnu.org>
+
+ Improve the way we handle the various parsing "states". Until now
+ we've hard-coded the state transitions in the command definition
+ file, but that's error-prone and, worse, it's redundant--we can
+ figure out what state we're in anyhow. We can cleanly handle
+ INPUT PROGRAM and FILE TYPE with a nested command-processing loop.
+
+ * data-list.c: (cmd_data_list) Use in_file_type() or
+ in_input_program() in place of case_source_is_class() or
+ case_source_is_complex().
+
+ * file-type.c: NB: Not really fixed except minimally to compile,
+ because it doesn't work anyway.
+ (in_file_type) New function.
+ (cmd_record_type) No need to check that we're in FILE TYPE.
+ (cmd_end_file_type) Ditto.
+ (var file_type_source_class) Make static.
+
+ * get.c: (cmd_match_files) Check vfm_source instead of pgm_state.
+
+ * inpt-pgm.c: (in_input_program) New function.
+ (cmd_input_program) Rewrite to include nested command processing
+ loop.
+ (cmd_end_input_program) Just return CMD_END_SUBLOOP.
+ (var input_program_source_class) Make static.
+ (cmd_end_case) No need to check that we're in INPUT PROGRAM.
+ (cmd_end_file) Ditto.
+
+ * automake.mk (src_language_data_io_libdata_io_a_SOURCES): Add
+ file-type.h, inpt-pgm.h.
+
+ * file-type.h: New file.
+
+ * inpt-pgm.h: New file.
+
+Tue Apr 25 13:11:55 2006 Ben Pfaff <blp@gnu.org>
+
+ * print.c: Don't special-case MS-DOS line terminators.
+ (macro LINE_END_WIDTH) Removed.
+ (alloc_line) Line ends are 1 byte.
+ (print_trns_proc) Just output \n for line end.
+
+Sun Apr 23 22:05:58 2006 Ben Pfaff <blp@gnu.org>
+
+ Continue reforming error message support. In this phase, get rid
+ of message "titles" and put the message text in `struct error'.
+ Now `struct error' encapsulates a message more properly.
+
+ * data-list.c: (macro RPD_ERR) Removed.
+ (rpd_msg) New function. Updated all references to tmsg() to call
+ this function instead.
+
Sat Apr 15 19:38:13 2006 Ben Pfaff <blp@gnu.org>
Remove last users of struct file_ext so we can get rid of it