+2007-07-11 Ben Pfaff <blp@gnu.org>
+
+ * get.c (map_case): Create destination case instead of leaving it
+ undefined. Fixes bug #20285.
+ Reviewed by John Darrington.
+
+2007-06-06 Ben Pfaff <blp@gnu.org>
+
+ * get.c: Essentially rewrite MATCH FILES to support FIRST and
+ LAST.
+
+2007-06-06 Ben Pfaff <blp@gnu.org>
+
+ Adapt case sources, sinks, and clients of procedure code to the
+ new infrastructure.
+
+ * data-list.c: Make DATA LIST into a casereader.
+
+ * get.c: Change GET, IMPORT, SAVE, EXPORT to use casereaders,
+ casewriters.
+
+ * inpt-pgm.c: Use caseinit code. Turn INPUT PROGRAM into a
+ casereader.
+
+ * list.q: Adapt to new procedure code.
+
+2007-05-06 Ben Pfaff <blp@gnu.org>
+
+ Abstract the documents within a dictionary a little better.
+ Thanks to John Darrington for suggestion, initial version, and
+ review. Patch #5917.
+
+ * get.c (mtf_merge_dictionary): Simplify creating merged document.
+
+ * sys-file-info.c (display_documents): Use new
+ dict_get_document_line_cnt and dict_get_document_line functions.
+
+Thu Feb 1 16:56:02 2007 Ben Pfaff <blp@gnu.org>
+
+ * file-handle.q (fh_parse): Update to new fh_create_file
+ prototype.
+
+Sat Dec 16 22:16: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.
+
+ * automake.mk: Removed matrix-data.c.
+
+ * matrix-data.c: Removed.
+
+ * data-list.c (data_list_source_read): Conform with new
+ case_source_class interface.
+ (data_list_source_destroy): Ditto.
+
+ * get.c (case_reader_source_class): Ditto.
+ (case_reader_source_destroy): Ditto.
+ (parse_output_proc): Take advantage of new procedure interface.
+ (output_proc): Removed.
+ (struct mtf_file): Add "struct ccase *" member to allow use of new
+ procedure interface.
+ (cmd_match_files): Take advantage of new procedure interface.
+ (mtf_processing_finish): Removed.
+ (mtf_read_nonactive_records): Renamed mtf_read_records. Now reads
+ from every file, without any exception for the active file.
+ (mtf_compare_BY_values): Simplify for new interface.
+ (mtf_processing): Simplify for new interface.
+
+ * inpt-pgm.c (is_valid_state): New function.
+ (input_program_source_read): Conform with new case_source_class
+ interface.
+ (input_program_source_destroy): Ditto.
+ (end_case_trns_proc): Now just needs to return TRNS_END_CASE.
+
+Sat Dec 9 18:43:34 2006 Ben Pfaff <blp@gnu.org>
+
+ * list.q (cmd_list): Use new var_create, var_destroy functions.
+
+Thu Nov 30 21:51:58 2006 Ben Pfaff <blp@gnu.org>
+
+ * inpt-pgm.c (cmd_reread): Always return error code upon detecting
+ syntax error. Fixes bug #18419. Thanks to John Darrington for
+ reporting this bug.
+
+Sun Nov 19 09:17:45 2006 Ben Pfaff <blp@gnu.org>
+
+ * data-list.c (parse_free): Follow documented (but odd) rule that
+ N format is treated as F format for free-field input.
+
+ * data-reader.c (read_file_record): Drop new-line character from
+ input text lines. This is symmetrical with the recently changed
+ dfm_put_record semantics.
+
+Thu Nov 2 20:56:03 2006 Ben Pfaff <blp@gnu.org>
+
+ Implement SKIP keyword on DATA LIST. Fixes bug #17099.
+
+ * data-list.c: (struct data_list_pgm) Add `skip_records' members.
+ (cmd_data_list) Set skip_records based on user input.
+ (data_list_source_read) Skip records requested by user.
+
+Tue Oct 31 20:04:06 2006 Ben Pfaff <blp@gnu.org>
+
+ * placement-parser.c: (PRS_TYPE_T) Now that struct fmt_spec uses
+ an enum fmt_type for its type member, we can't depend on the
+ ability to put negative values into that member as out-of-band
+ values, because enum fmt_type might be an unsigned type. So use
+ values around SCHAR_MAX instead, because we know that SCHAR_MAX
+ will fit into any type, signed or unsigned, and there aren't
+ nearly that many format types.
+ (parse_var_placements) Add for_input parameter to specify whether
+ we're parsing input or output formats. Update all callers.
+ (fixed_parse_columns) Ditto.
+ (fixed_parse_fortran) Ditto.
+
+Tue Oct 31 18:21:48 2006 Ben Pfaff <blp@gnu.org>
+
+ * print-space.c (print_space_trns_proc): Let dfm_put_record add
+ the new-line character, to match dfm_put_record change below.
+
+Sat Oct 28 11:57:19 2006 Ben Pfaff <blp@gnu.org>
+
+ * data-writer.c (struct dfm_writer): Removed `bounce' member, and
+ all references to it.
+ (dfm_put_record) Change semantics so that it adds formatting
+ itself, such as new-line characters, instead of putting that
+ responsibility on the caller. Also, pad binary records with
+ spaces instead of zeros, for compatibility.
+
+ * print.c (struct prt_out_spec) New member `sysmis_as_spaces'.
+ (struct print_trns) Remove `omit_new_lines' and all references,
+ since dfm_put_record() is taking care of that. Add
+ `include_prefix'.
+ (internal_cmd_print) Allow an empty set of data to print. Set
+ include_prefix.
+ (parse_specs) Allow an empty set of data to print.
+ (parse_variable_argument) Only add space with PRINT command. Set
+ sysmis_as_spaces.
+ (print_trns_proc) Indent records if include_prefix is set, for
+ compatibility. Output SYSMIS as spaces if sysmis_as_spaces is
+ set. Put "1" in first column if PRINT EJECT is used with an
+ external output file.
+ (flush_records) Ditto.
+
+Sat Oct 28 16:19:57 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * data-reader.c: Eliminated references to extern variable getl_buf
+
+Sat Aug 5 08:25:07 2006 Ben Pfaff <blp@gnu.org>
+
+ Fix bug #17329 in REREAD parsing, reported by John Darrington.
+
+ * inpt-pgm.c (cmd_reread): Fix file handle parsing.
+
+Mon Jul 31 10:32:31 2006 Ben Pfaff <blp@gnu.org>
+
+ * print.c (parse_specs): Allow a comma between specifications.
+
+Sun Jul 16 19:57:10 2006 Ben Pfaff <blp@gnu.org>
+
+ * automake.mk: (src_language_data_io_libdata_io_a_SOURCE) Add
+ print-space.c, placement-parser.c, placement-parser.h.
+
+ * data-list.c: Basically rewrote the whole thing. Broke out a lot
+ of code into placement-parser.c. Code is much cleaner now.
+
+ * placement-parser.c: New file.
+
+ * placement-parser.h: New file.
+
+ * print.c: Basically rewrote the whole thing. Broke out PRINT
+ SPACE into print-space.c. Code is much cleaner now.
+
+ * print-space.c: New file.
+
+Sat Jul 1 17:39:40 2006 Ben Pfaff <blp@gnu.org>
+
+ Fix bug #11612, "q2c documentation does not agree with code".
+
+ * list.q: Audit use of q2c "+" prefixes that indicate that a
+ command may appear multiple times.
+
+Sat Jul 1 20:44:22 2006 Ben Pfaff <blp@gnu.org>
+
+ Fix bug #15786: System File Creation crashes if directoy is
+ nonexistent.
+
+ * get.c (parse_write_command): Check that the any_writer open
+ succeeds.
+
+Tue Jun 27 22:44:28 2006 Ben Pfaff <blp@gnu.org>
+
+ Fix regression in command name completion reported by John
+ Darrington. Now completion is again state-dependent and occurs
+ only on the first line of a command.
+
+ * inpt-pgm.c: (cmd_input_program) Reading of first token in
+ command moved into cmd_parse.
+
+Fri Jun 9 13:56:00 2006 Ben Pfaff <blp@gnu.org>
+
+ Reform string library.
+
+ * matrix-data.c (context): Use dynamic string.
+ (another_token) Deal with changed dfm_get_record() interface.
+ (mget_token) Ditto.
+ (force_eol) Ditto.
+
+ * data-list.c (struct data_list_pgm) Delete delims, delim_cnt
+ members, replacing them by struct string delims. Update all
+ references to use struct string functions.
+ (cut_field) Change interface to avoid needing "end_blank", by
+ getting the data-reader to remember that state for us. Change
+ internals to use substring. Update both callers.
+
+ * data-reader.c (read_file_record): Use ds_read_stream().
+ (dfm_get_record) Change interface to return substring. Updated
+ all callers.
+ (dfm_expand_tabs) Use ds_find_char(). Now maintain position
+ relative to end-of-line. Use ds_swap().
+ (dfm_reread_record) Don't limit position by line length.
+ (dfm_column_start) Make parameter const.
+ (dfm_columns_past_end) New function.
+ (dfm_get_column) New function.
+
+Thu May 25 18:26:26 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * print.c (print_trns_free): Made the code agree with the comment, by
+ not freeing PRT. Has the side effect that the command no longer
+ crashes on invalid syntax.
+
+Tue May 9 20:55:46 2006 Ben Pfaff <blp@gnu.org>
+
+ * get.c (cmd_match_files): Fix memory leak replacing default_dict.
+
+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.
- Remove vestiges of FILE TYPE support.
* automake.mk (src_language_data_io_libdata_io_a_SOURCES): Remove
file-type.c, file-type.h.