+Sun Feb 15 20:50:36 2004 Ben Pfaff <blp@gnu.org>
+
+ * pfm-write.c: (bufwrite) Get rid of nasty cast that also invoked
+ undefined behavior.
+
+Thu Feb 12 23:35:15 2004 Ben Pfaff <blp@gnu.org>
+
+ Add auxiliary argument to procedure() interface. Associated small
+ clean-ups of vfm interface.
+
+ * Updated every caller of procedure() and process_active_file() to
+ reflect modified interface. Simple, ordinary changes not listed
+ otherwise below.
+
+ * Updated every function that implements struct case_stream's
+ `read' function to take a write_case_func and a write_case_data.
+ Also updated every caller of write_case() to instead call them
+ through these arguments. In some cases this meant that the extra
+ args had to be threaded through a couple of extra levels. This
+ wasn't difficult or interesting so the details won't be given.
+
+ * data-list.c: (struct repeating_data_trns) Add members
+ `write_case', `wc_data' as kluge.
+ (read_one_set_of_repetitions) Rename repeating_data_trns_proc and
+ make non-static.
+ (repeating_data_set_write_case) New function.
+
+ * data-list.h: New file to declare repeating_data_trns_proc() and
+ repeating_data_set_write_case().
+
+ * inpt-pgm.c: (input_program_source_read) Call
+ repeating_data_set_write_case() for all the REPEATING DATA
+ transformations, so that they know where to send their cases.
+ It's a big kluge. Also kluge in END CASE.
+ (end_case_trns_proc) Never called anymore, but we still need it,
+ so just assert(0).
+
+ * sort.c: (read_sort_output) Update to match struct case_stream
+ `read' member.
+
+ * vfm.c: (struct write_case_data) New structure.
+ (proc_func) Removed.
+ (virt_proc_func) Removed.
+ (begin_func) Removed.
+ (virt_begin_func) Removed.
+ (end_func) Removed.
+ (write_case) Removed.
+ (procedure) Added an auxiliary parameter to each function pointer
+ argument's prototype. Added an auxiliary data parameter.
+ Rewrote.
+ (process_active_file) Ditto.
+ (process_active_file_write_case) Pass aux data along.
+ (close_active_file) Ditto.
+ (procedure_write_case) Ditto.
+ (SPLIT_FILE_procfunc) Ditto.
+
+ * vfm.h: (typedef write_case_data) New.
+ (typedef write_case_func) New.
+ (struct case_stream) Add parameters to `read' member prototype.
+
+Thu Feb 12 19:24:53 WST 2004 John Darrington <john@darrington.wattle.id.au>
+
+ * t-test.q: Added calculations for independent samples. (But no Levene
+ test yet!)
+
+ * Makefile.am: Moved q_sources_c into own variable
+
+Wed Feb 11 23:56:51 2004 Ben Pfaff <blp@gnu.org>
+
+ Miscellaneous cleanups.
+
+ * Change unused to UNUSED in many source files to reflect modified
+ pref.h. Change use of __WIN32__, __MSDOS, __DJGPP__,
+ __CYGWIN32__, __unix__, and unix not to assume that they're
+ defined to a nonzero value. Change use of __attribute__ to use
+ NO_RETURN or PRINTF_FORMAT instead.
+
+ * alloc.h: Move definitions for local_alloc(), local_free() here
+ from ../pref.h.orig and simplify.
+
+ * expr-evl.c: Instead of working differently based on PAGED_STACK,
+ use a pool allocator unconditionally.
+ (CHECK_STRING_SPACE) Removed.
+ (ALLOC_STRING_SPACE) Removed.
+ (expr_evaluate) Use e->pool instead of CHECK_STRING_SPACE and
+ ALLOC_STRING_SPACE.
+
+ * expr-opt.c: (dump_expression) Allocate string pool.
+
+ * expr-prs.c: (expr_free) Free string pool.
+
+ * pool.c: (pool_destroy) This pool must be removed from its
+ parent's list of gizmos, not from its own. Use free_all_gizmos().
+ (pool_clear) New function.
+ (free_all_gizmos) New function.
+ (pool_alloc) Use space in empty block after this one if any.
+ (pool_release) Only empty out blocks, don't actually free() them.
+
+ * print.c: Get rid of PAGED_STACK special case by always
+ dynamically allocating line buffers.
+ (struct print_trns) Always include the `line' member.
+ (internal_cmd_print) Always initialize the `line' member.
+ (alloc_line) Always allocate memory for `line'.
+ (print_trns_proc) Always initialize buf from `line' member.
+ (print_trns_free) Always free `line' memory.
+
+ * sort.c: (allocate_file_handles) Special-case MS-DOS for mkdir()
+ call.
+
+Wed Feb 11 20:33:18 2004 Ben Pfaff <blp@gnu.org>
+
+ * flip.c: Fixed crash from FLIP when a numeric variable is
+ specified on NEWNAMES and a large value is used, and a couple of
+ other minor bugs besides.
+ (struct varname) Make name a 9-character fixed-size array
+ instead of a 1-character variable size array.
+ (make_new_var) Allow digits in variable names.
+ (flip_stream_write) Limit numeric values to 8 characters and
+ format system missing and very large and small values more
+ appropriately.
+
+Thu Feb 5 13:19:06 WAST 2004 John Darrington <john@darrington.wattle.id.au>
+
+ * command.c: Fixed test on command return status for the correct
+ value, which had been causing a crash under certain invalid input.
+
+Wed Feb 4 15:34:11 WST 2004 John Darrington <john@darrington.wattle.id.au>
+
+ * t-test.q: Added calculations for the one sample variant of the T-TEST
+
+Tue Feb 3 20:09:54 2004 Ben Pfaff <blp@gnu.org>
+
+ * tab.c: (render_strip) Fix bug that sometimes caused joined text
+ in joined cells to be rendered outside box boundaries.
+
+Tue Feb 3 18:56:45 WST 2004 John Darrington <john@darrington.wattle.id.au>
+
+ * random.c (rng_create): Fixed seeding so that it gets reseeded after
+ SET seed=xx has been called.
+
+Mon Jan 19 14:08:09 2004 Ben Pfaff <blp@gnu.org>
+
+ * random.c (rng_get_double): Fix always-returning-zero bug in my
+ preferred way, and at the same time make sure rounding doesn't
+ bite us.
+
+Thu Jan 1 23:16:41 2004 Ben Pfaff <blp@gnu.org>
+
+ * html.c: (change_attributes) Dead code, removed.
+ (escape_string) Eliminate code to call change_attributes() that
+ never actually called it.
+ (output_tab_table) Get rid of dependence on tab_hit
+ and struct tab_joined_cell's hit member, which are abominations.
+
+ * tab.c: (tab_output_text) Don't call
+ d->class->text_set_font_by_name if it's a null pointer.
+ (macro UNROLL_LOOP) Eliminate.
+ (macro UNROLL_3_LOOPS) Eliminate.
+ (tabi_render) Rewrite not to use the above macros.
+
+Thu Jan 1 23:09:07 2004 Ben Pfaff <blp@gnu.org>
+
+ Start working on a new output driver system, one that doesn't suck
+ so much, by adding a "device-independent" output driver. The idea
+ is to write out only a single output stream, then use separate
+ processes to translate them into whatever formats we want. This
+ is similar to how "groff" works with its various output drivers
+ (grops, grotty, grodvi, ...).
+
+ * Makefile.am: (pspp_SOURCES) Add devind.c, devind.h.
+
+ * list.q: (write_all_headers) Stub out devind class.
+ (clean_up) Ditto.
+ (determine_layout) Ditto.
+ (list_cases) Ditto.
+
+ * output.c: (outp_init) Add devind class.
+
+ * devind.c: New file.
+
+ * devind.h: New file.
+
+Thu Jan 1 23:08:14 2004 Ben Pfaff <blp@gnu.org>
+
+ * frequencies.q: (hash_value_alpha) Fixed up the previous change
+ to use the proper string length.
+
+Wed Dec 31 16:27:33 WAST 2003 John Darrington <john@darrington.wattle.id.au>
+
+ * Fixed bug where FREQ would crash on alpha values
+
+Tue Dec 30 22:42:57 2003 Ben Pfaff <blp@gnu.org>
+
+ * Removed bletcherous alloca() workarounds for AIX from top of
+ many files. AIX can use the alternative alloca() implementation
+ instead.
+
+Tue Dec 30 22:35:16 2003 Ben Pfaff <blp@gnu.org>
+
+ * ascii.c: (ascii_option) Fix implementation of headers option.
+
+Tue Dec 30 22:32:53 2003 Ben Pfaff <blp@gnu.org>
+
+ * ascii.c: Add a "squeeze" option to the ASCII driver to squeeze
+ multiple blank lines into one.
+ (struct ascii_driver_ext) Add squeeze_blank_lines option.
+ (ascii_preopen_driver) Initialize squeeze_blank_lines.
+ (static var option_tab) Add squeeze entry.
+ (ascii_option) Set squeeze_blank_lines.
+ (output_lines) Implement squeezing blank lines.
+