+Wed Jan 26 11:44:11 WST 2005 John Darrington <john@darrington.wattle.id.au>
+
+ * set.q: Affixed a fix to the previous fix such that we'll be OK now
+ whether or not PAGER is set.
+
+Wed Jan 26 09:25:54 WST 2005 John Darrington <john@darrington.wattle.id.au>
+
+ * set.q: Copied the string produced by getenv("PAGER") thus avoiding
+ "invalid free" errors. Hopefully fixes bug #11722
+
+ * compute.c expr-prs.c: Check that lvalues are populated before
+ attempting to destroy them. Closes bug #11676
+
+Tue Jan 25 21:01:43 WST 2005 John Darrington <john@darrington.wattle.id.au>
+
+ * aggregate.c: Initialised the complete agr_proc structure.
+ Closes bug #11675
+
+
+Sun Jan 23 23:02:21 2005 Ben Pfaff <blp@gnu.org>
+
+ * print.c: (print_trns_free) Close the dfm writer if there is one,
+ fixing a memory leak.
+
+Mon Jan 24 12:24:36 WST 2005 John Darrington <john@darrington.wattle.id.au>
+
+ * glob.c oneway.q q2c.c t-test.q vfm.c: Still *more* memory leaks
+ fixed.
+
+
+Fri Jan 21 19:54:14 WST 2005 John Darrington <john@darrington.wattle.id.au>
+
+ * linked-list.[ch] Added
+
+ * examine.q file-handle.[hq] font.h glob.c groff-font.c postscript.c
+ set.q: Yet more memory leaks
+
+Tue Jan 18 23:12:40 WST 2005 John Darrington <john@darrington.wattle.id.au>
+
+ * t-test.q examine.q : More memory leaks fixed.
+
+Tue Jan 18 19:26:59 WST 2005 John Darrington <john@darrington.wattle.id.au>
+
+ * examine.q factor_stats.[ch] get.c pfm-read.c: Plugged numerous
+ memory leaks.
+
+Mon Jan 10 14:43:45 WST 2005 John Darrington <john@darrington.wattle.id.au>
+
+ * ascii.c cartesian.c casefile.c chart.h devind.c
+ examine.q frequencies.q
+ html.c output.h piechart.c plot-chart.c plot-hist.c
+
+ Integrated the chart rendering into the output stream
+ (currently only works for html).
+
+ Removed gratuitous use of ifndef NO_CHARTS, and replaced with
+ dummy-chart.c for compiling without charts.
+
+ * mkfile.[ch] Created.
+
+ * som.[ch] tab.[ch]: Changed name of som_table to som_entity
+ Added type element so we can tell if it's a chart or a table.
+
+ * chart.h examine.q piechart.c plot-chart.c plot-hist.c: changed the
+ API of charts to be more like that of tables.
+
+Thu Jan 13 21:00:02 WST 2005 John Darrington <john@darrington.wattle.id.au>
+
+ * casefile.c main.c: Moved the SIGINT handler from casefile.c to
+ main.c. Removed the handler for SIGQUIT.
+
+Mon Jan 10 14:43:45 WST 2005 John Darrington <john@darrington.wattle.id.au>
+
+ * casefile.c: Added a signal handler to delete temp files on
+ SIGINT and SIGQUIT
+
+ * permissions.c Inhibited the PERMISSIONS command when SAFER is on.
+
+ * command.def Added a lot more unimplemented commands.
+
+ * copyleft.[ch] cmdline.c Moved legal information to copyleft.c
+
+Sat Jan 8 23:58:34 2005 Ben Pfaff <blp@gnu.org>
+
+ * sort.c: (compare_initial_runs) Needed additional level of
+ dereferencing.
+ (merge_once) Fix plenty of stupid mistakes.
+
+Sat Jan 8 23:55:27 2005 Ben Pfaff <blp@gnu.org>
+
+ * casefile.c: (casefile_sleep) Need to flush_buffer() after
+ calling casefile_to_disk() or we will lose the last block in the
+ file if the casefile started out as disk-based.
+ (casefile_get_reader) Initialize reader->destructive to 0.
+ (cmd_debug_casefile) Add new test pattern.
+ (test_casefile) Define new test pattern to make sure
+ casefile_sleep() works properly.
+
+Fri Jan 7 08:00:05 WST 2005 John Darrington <john@darrington.wattle.id.au>
+
+ * Makefile.am chart.[ch] histogram.[ch] piechart.c (Modified);
+ plot-hist.c plot-chart.c (Added) Reorganised these files in an
+ attempt to seperate the creation and processing of charts from their
+ actuall renedering.
+
+ * examine.q frequencies.q generated charts conditional upon the NO_CHARTS
+ macro.
+
+Thu Jan 6 18:48:58 WST 2005 John Darrington <john@darrington.wattle.id.au>
+
+ * main.c Added a signal handler for SIGFPE
+
+ * sort.c Somewhat more robust fix to the previous entry.
+
+Wed Jan 5 21:23:31 2005 Ben Pfaff <blp@gnu.org>
+
+ * sort.c: (merge) Fix assertion for proper Huffman merge pattern:
+ 0 == 1 modulo 1. See Knuth 5.4.9 (vol. 3, 2nd ed.,
+ pp. 361). Thanks to John Darrington <john@cellform.com.au> for
+ reporting the bug.
+
+Wed Jan 5 22:42:26 WST 2005 John Darrington <john@darrington.wattle.id.au>
+
+ * case.h Fixed bug # 11307
+
+Wed Jan 5 08:30:48 WST 2005 John Darrington <john@darrington.wattle.id.au>
+
+ * val-labs.c Fixed bug which caused a crash if VALUE LABELS had
+ a trailing slash.
+
+Mon Jan 3 17:44:37 2005 Ben Pfaff <blp@gnu.org>
+
+ * pfm-read.c: (read_variables) Remove direct manipulation of
+ v->aux, which is no longer needed. Fixes Bug #11483.
+
+Sat Jan 1 19:01:16 WST 2005 John Darrington <john@darrington.wattle.id.au>
+
+ * data-list.c Fixed a bug in parsing delimiters.
+
+ * group.c vars-atr.c Fixed buglet in hash/compare functions for alpha
+ values.
+
+ * percentiles.c Properly handled calculation of Tukey hinges where
+ the number of data is small.
+
+ * oneway.q Used the generic value_to_string function for independent
+ variable instead of trying to do it ourselves.
+
+ * box-whisker.c Fixed a buglet which caused a crash if the number of
+ data was zero
+
+
+Fri Dec 31 16:47:45 WST 2004 John Darrington <john@darrington.wattle.id.au>
+
+ * examine.q box-whisker.c chart.h Implemented boxplots in EXAMINE
+
+ * percentiles.c Fixed some bugs when calculating percentiles when
+ there's a small number of cases.
+
+Wed Dec 29 08:18:08 WST 2004 John Darrington <john@darrington.wattle.id.au>
+
+ * percentiles.[ch] Added. Calculates percentiles and Tukey hinges
+
+ * examine.q factor_stats.[ch] Added calculation of percentiles
+
+Fri Dec 24 15:09:11 WST 2004 John Darrington <john@darrington.wattle.id.au>
+
+ * t-test.q Fixed bug #11227 Made t-test work when the independent
+ variable is alpha
+
+Sat Dec 11 11:43:45 WST 2004 John Darrington <john@darrington.wattle.id.au>
+
+ * factor_stats.c Fixed calculation of trimmed mean under various
+ special conditions.
+
+Sat Dec 4 17:14:45 WST 2004 John Darrington <john@darrington.wattle.id.au>
+
+ * histogram.c chart.[ch] factor_stats.c frequencies.q
+
+ Added code to calculate sensible histogram ranges and limits.
+
+Thu Dec 2 13:37:43 WST 2004 John Darrington <john@darrington.wattle.id.au>
+
+ * chart.h Updated to reflect many API changes.
+
+ * cartesian.c chart.c Moved the definitions of chart_write_{xy}scale from
+ cartesian.c and into chart.c
+
+ * factorstats.[ch] Added the histogram calculations
+
+ * casefile.c Removed an unused variable.
+
+ * frequencies.q examine.q histogram.c Reworked the API for
+ histograms.
+
+ * piechart.c Revised the API for piecharts.
+
+ * var.h Moved the definitions of freq_tab and freq out of var.h
+ and into frequencies.q where they belong.
+
+Tue Nov 30 21:10:20 2004 Ben Pfaff <blp@gnu.org>
+
+ * flip.c: (flip_file) Check for off_t separately from fseeko(),
+ using AC_TYPE_OFF_T.
+
+Tue Nov 30 08:47:41 2004 Ben Pfaff <blp@gnu.org>
+
+ * flip.c: (flip_file) If fseeko() is not available, use long int
+ for off_t. Thanks to "Marshall DeBerry" <mdb@radix.net> for
+ reporting the problem.
+
+Mon Nov 29 12:20:59 WST 2004 John Darrington <john@darrington.wattle.id.au>
+
+ * examine.q factor_stats.[ch] Changed stderr to se_mean to avoid
+ conflict with stdio.
+
+Sun Nov 21 10:32:41 WST 2004 John Darrington <john@darrington.wattle.id.au>
+
+ * var-labs.c (var_to_string) Now returns null if the variable is null
+
+ * value-labels.c (value_to_string) Made it return null if either the
+ value or the variable is null.
+
+ * hash.c (hsh_clear) Fixed a buglet.
+
+ * examine.q factor_stats.[ch] Largely rewrote, because I'd started
+ with the wrong model.
+
+ * casefile.[ch] Added a function to return the casereader.case_idx
+ member
+
+ * examine.q Implemented the extreme values results.
+
+John Darrington <john@darrington.wattle.id.au>
+
+ * settings.h set.c glob.[ch] frequencies.q q2c.c error.c lexer.[ch]
+ output.[ch] getline.c
+
+ Plugged some memory leaks
+
+Mon Nov 15 23:47:40 2004 Ben Pfaff <blp@gnu.org>
+
+ Adopt GSL random number generators, paving the way for providing
+ the complete suite of random number generators on expressions.
+
+ * Makefile.am: Remove random.c, random.h.
+
+ * random.c: Removed.
+
+ * random.h: Removed.
+
+ * algorithm.c: (algo_default_random) Use GSL functions.
+
+ * casefile.c: (test_casefile) Use GSL RNG functions.
+
+ * expr-evl.c: (expr_evaluate) Use GSL RNG functions for OP_NORMAL,
+ OP_UNIFORM.
+
+ * sample.c: (cmd_sample) Use GSL RNG functions.
+ (sample_trns_proc) Ditto.
+
+ * set.q: (static var set_seed) Removed.
+ (static var seed_flag) Removed.
+ (static var rng) New variable.
+ (aux_stc_custom_seed) No seed value anymore, don't print anything.
+ (stc_custom_seed) Use new seed functions.
+ (seed_is_set) Removed.
+ (get_rng) New function that composes the entire external
+ interface.
+ (set_rng) New function.
+ (random_seed) New function.
+
+Mon Nov 15 22:08:25 2004 Ben Pfaff <blp@gnu.org>
+
+ * expr-evl.c: (expr_evaluate) Fix XDATE.JDAY formula. Thanks to
+ John Darrington <john@darrington.wattle.id.au> for reporting this
+ bug.
+
+Tue Nov 16 13:19:18 WST 2004 John Darrington <john@darrington.wattle.id.au>
+
+ * permissions.c command.def Added the PERMISSIONS command
+
+Mon Nov 15 01:33:32 2004 Ben Pfaff <blp@gnu.org>
+
+ * q2c.c: (dump_header) Don't try to emit #includes at very top of
+ output file because that will precede #include <config.h>, which
+ is bad.
+ (main) Add needed headers to /* (header) */ code.
+
+Mon Nov 15 01:21:36 2004 Ben Pfaff <blp@gnu.org>
+
+ Instead of making system or portable file readers responsible for
+ dropping and reordering variables, make them read full cases and
+ let the caller take care of any changes.
+
+ * get.c: New "case map" structure to handle this. Use for GET,
+ IMPORT, MATCH FILES. Essentially rewrite the whole file.
+
+ * pfm-read.c: (pfm_read_case) Read into provided case. Signature
+ changed appropriately.
+
+ * sfm-read.c: (sfm_read_case) Ditto.
+
+Mon Nov 15 00:47:45 2004 Ben Pfaff <blp@gnu.org>
+
+ Decided that case_serialize() and case_unserialize() were too
+ abstract. Also we need a couple more functions to avoid excessive
+ copying for data in/out fast paths.
+
+ * case.c: (case_serial_size) Removed.
+ (case_serialize) Rename case_to_values() and make its argument
+ explicitly an array of union values.
+ (case_unserialize) Rename case_from_values() and make its argument
+ explicitly an array of union values.
+ (case_data_all) New function.
+ (case_data_all_rw) New function.
+
+ * casefile.c: (struct casefile) Change buffer from array of
+ unsigned char to array of union value for better accuracy.
+ Redefine buffer_used and buffer_size in terms of values, not
+ bytes. Remove case_size because it is now redundant with
+ value_cnt. Fix up all references to these members.
+
+Mon Nov 15 00:45:46 2004 Ben Pfaff <blp@gnu.org>
+
+ * barchart.c: (struct subcat) Make `label' member const to silence
+ GCC warning with -Wwrite-strings.
+
+ * cartesian.c: (struct dataset) Ditto.
+
+ * case.c: Don't re-define NDEBUG if already defined.
+ Add lots of comments.
+
+ * str.c: Fix includes.
+
+ * crosstabs.q: Fix includes.
+
+ * examine.q: Fix includes. Fix GCC warning about unused
+ variables.
+
+ * frequencies.q: (stat macro) Removed and replaced where used by
+ its expansion.
+
+ * list.q: Fix includes.
+
+ * oneway.q: Fix includes.
+
+ * piechart.c: Fix includes. Only define M_PI if not already
+ defined.
+
+ * sfm-read.c: (bswap) New function.
+ (bswap_int32) Write in terms of bswap.
+ (bswap_flt64) Ditto.
+
+ * str.c: (ds_data) Add external definition here, needed because
+ str.h has only an `extern inline' version.
+
+ * value-labels.c: Fix includes.
+
+Mon Nov 15 00:40:55 2004 Ben Pfaff <blp@gnu.org>
+
+ Instead of providing a system or portable file writer with a raw
+ case in the format needed for output, provide it with a regular
+ case. The writer takes care of any needed translation.
+
+ * aggregate.c: Adopt new scheme for AGGREGATE.
+ (struct agr_proc) sfm_agr_case member removed.
+ (write_case_to_sfm) Removed because the new interface is easier to
+ use.
+
+ * get.c: Adopt new scheme for SAVE, XSAVE, EXPORT.
+
+ * pfm-write.c: Implement new scheme.
+
+ * sfm-write.c: Ditto.
+
+Mon Nov 15 00:32:24 2004 Ben Pfaff <blp@gnu.org>
+
+ Instead of treating `struct file_handle' as a class to subclass
+ into data files, system files, and portable files, instead use it
+ as a helper that coordinates access. Now it is opaque, too.
+
+ This means that most references to a struct file_handle are now
+ changed into references to one of struct dfm_reader, struct
+ dfm_writer, struct sfm_reader, struct sfm_writer, struct
+ pfm_reader, or struct pfm_writer, according to what's being read
+ or written.
+
+ Most related changes are only worth summarizing briefly.
+
+ * dictionary.c: (dict_clear) Destroy aux data in deleted
+ variables.
+ (dict_clear_aux) New function.
+ (dict_create_var) Initialize aux, aux_dtor.
+ (dict_delete_var) Destroy aux data in deleted variable.
+
+ * file-handle.h: (struct fh_ext_class) Removed.
+ (struct file_handle) Removed.
+ (fh_init_files) Removed.
+
+ * file-handle.q: Changed references to a handle's `private' member
+ to direct references.
+ (struct private_file_handle) Renamed file_handle.
+ Add next, open_cnt, type, open_mode, aux members.
+ (struct file_handle_list) Removed.
+ (extern var inline_file) Removed.
+ (static var file_handles) Changed from file_handle_list * to
+ file_handle *.
+ (create_file_handle) Initialize new members.
+ (fh_close_handle) Removed.
+ (mode_name) New function.
+ (fh_open) New function.
+ (fh_close) New function.
+ (fh_parse_file_handle) Renamed fh_parse().
+
+ * glob.c: (init_glob) Remove fh_init_files() call.
+
+ * aggregate.c: use sfm_writer.
+ (create_sysfile) Removed because the new interface is simpler.
+
+ * apply-dict.c: Use sfm_reader.
+
+ * data-list.c: Use dfm_reader.
+
+ * file-type.c: Use dfm_reader.
+
+ * get.c: Use sfm_reader, sfm_writer, pfm_reader, pfm_writer.
+
+ * inpt-pgm.c: Use dfm_reader.
+
+ * print.c: Use dfm_writer.
+
+ * sysfile-info: Use sfm_reader.
+
+ * dfm-read.c: Adopt new file handle infrastructure.
+
+ * dfm-write.c: Ditto.
+
+ * pfm-read.c: Ditto.
+
+ * pfm-write.c: Ditto.
+
+ * sfm-read.c: Ditto.
+
+ * sfm-write.c: Ditto.
+
+Mon Nov 15 00:31:44 2004 Ben Pfaff <blp@gnu.org>
+
+ Break dictionary functions into separate header file.
+
+ * dictionary.h: New file.
+
+ * var.h: Moved dict_*() functions to dictionary.h.
+
+Mon Nov 15 00:30:33 2004 Ben Pfaff <blp@gnu.org>
+
+ Get rid of procedure-specific union in struct variable, using
+ instead a void * pointer and a destructor function.
+
+ Most related changes are only worth brief summaries.
+
+ * crosstabs.q: Fix includes. Use new struct var_range in lieu of
+ old p.crs member in struct variable.
+
+ * frequencies.q: Fix includes. Use new struct var_freqs in lieu
+ of old p.frq member in struct variable.
+
+ * histogram.c: (draw_histogram) Takes new freq_tab arg because
+ it's no longer possible to grab this from var->p.frq.
+
+ * piechart.c: (draw_piechart) Ditto.
+
+ * group.c: (group_proc_get) New function.
+
+ * levene.c: Use group_proc_get() in lieu of old p.grp_data member
+ in struct variable.
+
+ * oneway.q: Ditto.
+
+ * t-test.q: Ditto.
+
+ * main.c: (execute_command) Clear aux data in default_dict after
+ each command. (It's debatable whether this should be done.)
+
+ * matrix-data.c: Use new struct mxd_var in lieu of old p.mxd
+ member in struct variable.
+
+ * means.q: Get rid of integer mode, which is not included in
+ recent SPSS and was the only code that wanted per-variable private
+ data.
+
+ * var.h: (struct crosstab_proc) Removed.
+ (struct frequencies_proc) Removed.
+ (struct list_proc) Removed.
+ (struct get_proc) Removed.
+ (struct means_proc) Removed.
+ (struct matrix_data_proc) Removed.
+ (struct match_files_proc) Removed.
+ (lots of enums) Removed.
+ (struct variable) Removed members `p', `get'. Add member
+ `aux_dtor'.
+
+ * vars-atr.c: (var_attach_aux) New function.
+ (var_detach_aux) New function.
+ (var_clear_aux) New function.
+ (var_dtor_free) New function.
+ (discard_variables) Use NULL instead of inline_file.
+
+Fri Nov 12 10:07:11 WST 2004 John Darrington <john@darrington.wattle.id.au>
+
+ * value-labs.c Fixed the implmentation of value_to_string, so
+ that it properly handles alpha values.
+
+ * oneway.q Changed instances where labels were being probed manually,
+ to use the canonical {var,value}_to_string functions
+
+Thu Nov 11 21:01:31 WST 2004 John Darrington <john@darrington.wattle.id.au>
+
+ * examine.q cartesian.c chart.[ch] Added normal and detrended normal
+ plots. Changed the API of the cartesian plot to be a much lower level
+ thing.
+
+Sun Nov 7 17:25:04 WST 2004 John Darrington <john@darrington.wattle.id.au>
+
+ * examine.q Added some of the parametric calculations
+
+ * factor_stats.[ch] Created
+
+Sat Nov 6 21:24:31 WST 2004 John Darrington <john@darrington.wattle.id.au>
+
+ * examine.q Changed the definition of factors to be a composite, and
+ dealt with the consequences.
+
+Sat Nov 6 20:40:38 WST 2004 John Darrington <john@darrington.wattle.id.au>
+
+ * examine.q Fixed problem where examine wasn't dealing properly with
+ splits
+
+Sat Nov 6 14:49:47 WST 2004 John Darrington <john@darrington.wattle.id.au>
+
+ * oneway.q Fixed problem where oneway wasn't dealing properly with
+ splits
+
+Thu Nov 4 11:09:01 WST 2004 John Darrington <john@darrington.wattle.id.au>
+
+ * q2c.c examine.q Fixed a bug (feature?) whereby arrays in the
+ command which had settings didn't get the appropriate code
+ generated.
+
+ * val.h value-labels.[ch] var-labs.c Added v*to_string functions
+ to convert variables/values to strings.
+
+ * examine.q Added framework for the EXAMINE command.
+
+Mon Nov 1 12:46:17 WST 2004 John Darrington <john@darrington.wattle.id.au>
+
+ * q2c.c frequencies.q set.q t-test.q Fixed the q2c parsing of DBL
+ subcommand types. Changed frequencies.q to use it rather then the
+ custom parser. Dealt with the consequences. Added a test for NTILES
+ subcommand of frequencies.
+
+Sat Oct 30 09:16:29 WST 2004 John Darrington <john@darrington.wattle.id.au>
+
+ * oneway.q Fixed up the behaviour when given missing values
+
+ * levene.c oneway.q Fixed a buglet with the levene statistic and
+ incorporated the levene test into the oneway command.
+
+ * group.h t-test.q Moved the CMP_EQ and CMP_LE symbols out of
+ global scope, since they're only relevant to T-TEST
+
+Fri Oct 29 17:39:03 WST 2004 John Darrington <john@darrington.wattle.id.au>
+
+ * group.c group.h group_proc.h levene.c oneway.q t-test.q
+
+ Made the t-test more consistent
+ with the way it handles groups. That is, it now uses a hash instead
+ of an array of 2. Also, made the levene.c file independent of the
+ implementation of the t-test. So now levene should be fine for both
+ t-test and anova.
+
+ * Added an oneway.q file for one way anova
+
Wed Jun 2 22:08:02 2004 Ben Pfaff <blp@gnu.org>
* descript.c: (cmd_descriptives) Remove harmless but bogus test in