2013-07-22  Ben Pfaff  <blp@cs.stanford.edu>

	Updated localisations from translation-project.org

2013-07-17  John Darrington  <john@darrington.wattle.id.au>

	REGRESSION: Fix issues found by by review
	Ben reported following potential problems:

	I think that if the DEPENDENT subcommand is given twice (a user error), then
	the variables specified the first time will be silently leaked.

	cmd_regression() has two local variables named 'i'.

	I don't understand why "struct workspace" has a member 'psw' that is a
	dynamically allocated array, because it looks like each element of the array
	is used only during processing a single split file group.  That is, I think
	that 'psw' could be just a singleton, instead of an array.

	I think that fill_all_vars() is wrong: if an absent var follows a not-absent
	var, then vars[] will be filled with a gap and there will be a write into
	unallocated memory.

	Reported-by: Ben Pfaff

	Avoids shadowing variable in lower scope.  suggested by Ben Pfaff

2013-07-13  Ben Pfaff  <blp@cs.stanford.edu>

	configure.ac: Increase version number to 0.7.11.

	ONEWAY: Fix memory leak in run_oneway.
	Bug #39070.

	tower-test: Use memmove(), not memcpy(), for overlapping memory move.
	Found by valgrind.

2013-07-12  Ben Pfaff  <blp@cs.stanford.edu>

	sparse-xarray: Fix memory leak in dump_sparse_xarray_to_disk().
	Bug #39070.

	model-checker: Fix memory leak in finish_mc().
	This memory leak was visible only when the model checker was configured
	with a particular path to follow.

2013-07-08  John Darrington  <john@darrington.wattle.id.au>

	constness

2013-07-03  John Darrington  <john@darrington.wattle.id.au>

	Fixed incorrect behaviour of REGRESSION when multiple dependent variables are entered
	The REGRESSION command behaved badly when more than one dependent variable was entered.
	The cause was that the unnormalised covariance matrix returned from the covariance
	module was mutated for each variable.  Consequently, each variable after the first
	was wrong.  This change fixes that by changing the ownership semantics of the returned
	matrix (and thereby its constness).

	This change also adds some comments, attends to constness and fixes the remaining
	memory leaks associated with regression.

2013-07-03  John Darrington  <john@darrington.wattle.id.au>

	Fix problems associated with LINEAR REGRESSION and splits

	Added test to check that REGRESSION works with multiple dependent variables

	Added a test to ensure that SPLITS vs REGRESSION/SAVE works ok

	Rename tests from REGRESSION to LINEAR REGRESSION
	This way I can run just the linear regression tests without the
	logistic regression tests.

2013-06-29  John Darrington  <john@darrington.wattle.id.au>

	Avoid unexpected failures in check-valgrind due to XTERM_LOCALE

2013-06-28  John Darrington  <john@darrington.wattle.id.au>

	Partial fix for regression vs. splits issue
	Split the struct regression into information which is
	parsed from the command, and data which is calculated during
	execution of the command.

	Bug #39070

2013-06-28  John Darrington  <john@darrington.wattle.id.au>

	linreg.c: Remove superfluous cast

2013-06-28  Ben Pfaff  <blp@cs.stanford.edu>

	range-tower: Fix memory leaks.
	Bug #39070.

2013-06-27  Ben Pfaff  <blp@cs.stanford.edu>

	CROSSTABS: Fix memory leaks.
	Bug #39070.

2013-06-27  John Darrington  <john@darrington.wattle.id.au>

	linreg: Remove some unused features

2013-06-26  Ben Pfaff  <blp@cs.stanford.edu>

	session: Fix two memory leaks.
	Bug #39070.

2013-06-26  John Darrington  <john@darrington.wattle.id.au>

	LOGISTIC REGRESSION: Fix memory leak in error path

2013-06-24  Ben Pfaff  <blp@cs.stanford.edu>

	datasheet: Avoid reading a given row more than necessary in source_read().
	The datasheet casereader uses datasheet_get_row(), which calls rw_case(),
	which until this commit called source_read() for every column.  The latter
	was expensive if casereader_peek() actually copied data for a whole large
	row.  For a datasheet with N columns, all from a single backing source,
	the upshot was that datasheet_get_row() took O(N**2) time.

	This commit fixes the problem in the common case by reading as many columns
	as possible from a given source in a single call to source_read().

	Bug #33260.

2013-06-24  John Darrington  <john@darrington.wattle.id.au>

	variable.c: New function var_set_width_and_formats
	Added a new function to set the width and formats of a variable as
	an atomic operation. This is necessary to allow values to re-interpreted
	without going through an intermediate format and thereby perhaps loosing
	information.

	Closes bug #39252

2013-06-23  John Darrington  <john@darrington.wattle.id.au>

	variable.c: (var_set_width)  traits other than width may also be set

	Split VAR_TRAIT_FORMAT into PRINT and WRITE variants

2013-06-22  John Darrington  <john@darrington.wattle.id.au>

	Fix and simplify the code for converting variables between types
	Before this commit, changing a variable from string to numeric or
	vici-versa would cause all values of that variable to become SYSMIS.
	This commit fixes this problem at least partially.

	Partial fix for bug #39252

2013-06-22  John Darrington  <john@darrington.wattle.id.au>

	Fix constness of datasheet_resize_column arguments
	The aux variable should not be changed, so make it const

	dictionary.c: Remove the var_resized and var_display_width_changed callbacks
	Remove the resized and display width changed callbacks, and
	transfer their actions to the variable_changed callback.

	Changed the signature of the VARIABLE_CHANGED signal to take the WHAT and OLDVAR parameters
	Re-implement signal handlers of the variable-changed signal to PsppireDict to take
	the new WHAT and OLDVAR parameters.

	Added the WHAT and OLDVAR parameters to the var_changed dictionary callback
	Propagate the newly implemented WHAT and OLDVAR parameters in the PsppireDict
	class.

	dictionary.c: Added a oldvar parameter to the var_changed callback
	The var_changed callback needs a copy of the old (unchanged) variable,
	so that implementations can compare and act accordingly.

2013-06-22  John Darrington  <john@darrington.wattle.id.au>

	dictionary.c: Added a WHAT argument to dict_var_changed callback
	Defined some bitwise constants to indicate which aspect of a variable has
	changed.  Added an argument to the dict_var_changed callback taking an
	argument which contains a combination of these types.

	This is used in later commits to avoid the callback implementation having
	to guess what exactly changed.

2013-06-22  John Darrington  <john@darrington.wattle.id.au>

	variable.c: Add _quiet versions of the var_set_ methods and use in var_clone
	var_clone doesn't need to provoke callbacks, since the new variable does not
	(yet) have a dictionary  hence the callbacks can do nothing.  Also the callbacks
	cause problems for later commits, since they themselves could call var_clone.

	This change therefore defines _quiet versions of all the var_set methods, which
	do not generate any callbacks, and uses those versions in the implementation
	of var_clone.

2013-06-16  John Darrington  <john@darrington.wattle.id.au>

	Minor additions and updates to the meta documentation

	Remove generation of GSignal marshallers which are  no longer required

2013-06-14  John Darrington  <john@darrington.wattle.id.au>

	psppire_var_type_dialog: Remove global functions which are not used

2013-06-13  Ben Pfaff  <blp@cs.stanford.edu>

	INPUT PROGRAM: Use a separate dataset for the input program.
	Without this change, INPUT PROGRAM uses the same dataset as the following
	syntax.  This usually is fine, but there's at least one case where it
	doesn't work: if the INPUT PROGRAM defines a vector, then a following
	proc_execute() without any intervening transformations causes
	proc_execute() to follow a "fast path" where it skips running the procedure
	but instead just does a few things, like clearing the set of vectors.
	Unfortunately, this means that later when the input program is really run,
	  it doesn't have the vectors and accesses freed memory.

	This commit switches to a different tactic.  INPUT PROGRAM creates a
	special session and dataset that are used only for the input program.  This
	keeps the dataset and the transformations used for the input program
	separate from those used after the input program.

	Bug #39097.
	Reported by John Darrington.

2013-06-13  Ben Pfaff  <blp@cs.stanford.edu>

	command.def: Disallow DATASET commands inside INPUT PROGRAM, FILE TYPE.
	It doesn't make sense to try to switch datasets within INPUT PROGRAM, and
	so we shouldn't allow it.

2013-06-06  John Darrington  <john@darrington.wattle.id.au>

	Correct typo in documentation of SAVE TRANSLATE

2013-05-28  John Darrington  <john@darrington.wattle.id.au>

	Text Import Dialog: Fix initialisation of pages which had got broken

2013-05-27  Ben Pfaff  <blp@cs.stanford.edu>

	manual: REGRESSION and DESCRIPTIVES make temp transformations permanent.
	Ideally, this should not be the behavior, but it is better than the crash
	we had before.

	Suggested by John Darrington.

	Bug #38787.
	Bug #38786.

2013-05-27  Ben Pfaff  <blp@cs.stanford.edu>

	INPUT PROGRAM: Avoid infinite loop for trivially empty input program.
	Bug #38782.
	Reported by John Darrington.

2013-05-26  Ben Pfaff  <blp@cs.stanford.edu>

	Avoid letting data fields overflow in output and GUI.
	When the output for data_out() is too big for the field width, it produces
	output that consists of just asterisks: ******.  This is OK when the
	output is really going into a fixed-width space, such as the output for
	PRINT and WRITE.  But it is obnoxious if the output is going into PSPP
	output or the GUI.  This commit introduces a new function that typically
	does not do this, and starts using it in output and the GUI.

	Bug #35829.
	Reported by John Darrington.
	Bug #30731.
	Reported by lavila <la@jump23.com>.

2013-05-25  John Darrington  <john@darrington.wattle.id.au>

	Whitespace changes only

	Fix memory leak in error path of RECODE

	Fix memory leak in error path of LOGISTIC REGRESSION

	Fix memory leak in LOGISTIC command

	Fixed memory leak in examine command

	Fix leak check in oneway command

	Remove "slash" property from psppire_button_editable, which is not used

2013-05-25  John Darrington  <john@darrington.wattle.id.au>

	Linear Regression Test: Provide more decimal places in test results.
	This test previously had only 2 decimal places displayed, which
	limited its ability to detect numerical errors.  This change increases
	the decimal places to 3.

	The results for this test were checked against a pattern provided
	by Olaf Nöhring.

2013-05-25  John Darrington  <john@darrington.wattle.id.au>

	Regression: Use alternative formula for adjusted R-square
	This is the formula given in SPSS Statistical Algorithms Ed 20.

	Corrected the Degrees of Freedom in the Regression Coefficient Significance
	Reported and Tested by: Olaf Nöhring.

2013-05-24  John Darrington  <john@darrington.wattle.id.au>

	Open imported files in new data window instead of overwriting the old

	Add hint paramater to Window Load method

2013-05-21  Ben Pfaff  <blp@cs.stanford.edu>

	Smake: Use glibtoolize instead of libtoolize, if it is available.
	Requested by Teppo Jussmäki <jussmaki@fastmail.fm>.
	Tested by Teppo Jussmäki <jussmaki@fastmail.fm>.

2013-05-20  Ben Pfaff  <blp@cs.stanford.edu>

	DELETE VARIABLES: Fix crash with FILTER.
	FILTER has the surprising property that it introduces a temporary
	transformation, even if proc_make_temporary_transformations_permanent()
	was previously called.  This causes a crash if the procedure implementation
	really relies on there being no temporary transformations.

	This commit fixes the problem in the procedures I was able to identify as
	having it, adds a comment to proc_make_temporary_transformations_permanent()
	to make it a little less likely to happen again, and adds a test
	specifically to check for regression on DELETE VARIABLES.

	Reported by John Darrington.
	Bug #38843.

2013-05-20  Ben Pfaff  <blp@cs.stanford.edu>

	REGRESSION: Avoid use-after-free error with TEMPORARY and SAVE.
	This should fix the use-after-free error, although I am not sure whether it
	makes REGRESSION do exactly what it should do.

	Bug #38787.

2013-05-20  Ben Pfaff  <blp@cs.stanford.edu>

	DESCRIPTIVES: Avoid use-after-free with TEMPORARY and Z scores.
	This is not an ideal fix, but it avoids the use-after-free error that we
	have had until now.

	Bug #38786.

2013-05-20  Ben Pfaff  <blp@cs.stanford.edu>

	FLIP: Fix use-after-free and double frees with temporary transformations.
	I originally thought this was a bug in FLIP, but it turned out that in
	fact we just hadn't ever really tested
	proc_make_temporary_transformations_permanent() properly with actual
	transformations, and especially with adding a transformation after calling
	proc_make_temporary_transformations_permanent().

	The modified test should avoid regression for the bug.

	Bug #38832.

2013-05-20  Ben Pfaff  <blp@cs.stanford.edu>

	DESCRIPTIVES: Fix a pair of memory leaks.

2013-05-20  John Darrington  <john@darrington.wattle.id.au>

	Work around change in signature of the switch page callback in GtkNoteBook

2013-05-19  John Darrington  <john@darrington.wattle.id.au>

	Fix constness problem in spreadsheet reader dialog

	version.c: Make the build date/time independent of locale and timezone

2013-05-18  John Darrington  <john@darrington.wattle.id.au>

	Remove unused function

	Implement import dialog to import spreadsheet files.
	Reviewed-by: Ben Pfaff

2013-05-17  John Darrington  <john@darrington.wattle.id.au>

	Sort items in datasheets dropdown box.
	Before this change, the values in the data sheets dropdown
	box appeared in a non-deterministic order (the order in
	the underlying hash), which was inconvenient to users.
	This change produces the values in sorted order.

	Closes bug #38921

2013-05-17  John Darrington  <john@darrington.wattle.id.au>

	Documentation: Explain more emphatically that UPDATE/MATCH/ADD do not mutate input files.
	Closes bug #38682.

	Cairo output: Add a bit of horizontal between table columns.
	Fixes bug #34798

2013-05-15  John Darrington  <john@darrington.wattle.id.au>

	Spreadsheet Import Dialog: Implement reset button

	Merge remote branch 'origin/master' into import-gui
	Conflicts:
		src/ui/gui/page-assistant.c

	Import Assistant: Fix broken reset buttons

	Import Assistant: Fix broken reset buttons

2013-05-14  John Darrington  <john@darrington.wattle.id.au>

	Merge remote branch 'origin/master' into import-gui

	Avoid use of deprecated GtkNotebookPage

	PsppireButtonBox: Do not use the GtkBoxChild structure.
	Avoid using Gtk features which are (soon to be) deprecated.

2013-05-13  John Darrington  <john@darrington.wattle.id.au>

	Merge remote branch 'origin/master' into import-gui

	PsppSheetViewColumn: Remove inappropriate #ifndef

	Replaced some obsolete GTK symbols with the recommended modern ones

	GtkXPaned: Whitespace changes only

	Avoid compiler warning

2013-05-12  John Darrington  <john@darrington.wattle.id.au>

	Update INSTALL file

2013-05-11  John Darrington  <john@darrington.wattle.id.au>

	Updated localisations from translation-project.org

	Merge branch 'master' into import-gui

	Made _xml_char_to_int less prone to crashing

	Gnumeric Reader: Use symbolic value instead of literal integer

	Made _xml_char_to_int less prone to crashing

	Gnumeric Reader: Use symbolic value instead of literal integer

2013-05-10  John Darrington  <john@darrington.wattle.id.au>

	Merge remote branch 'origin/master' into import-gui

2013-05-10  John Darrington  <john@darrington.wattle.id.au>

	Fix corner case in calculation of trimmed mean.
	The calculation of the trimmed mean was not quite correct.  This
	change fixes it, and adds a test.

	Reported by: Olaf Nöhring.

2013-05-09  John Darrington  <john@darrington.wattle.id.au>

	Merge branch 'master' into import-gui
	Conflicts:
		src/ui/gui/psppire-cell-renderer-button.c

	Revert "Work-around bug in GCC 4.4.5"
	This reverts commit c7711e39f523f206a74f5d0f52480ad10267e0ca.
	The claim of a bug in GCC proved to be unfounded.  The problem which
	this change tried to work-around has in fact been fixed in
	commit 19bf192a093527bf10b1de95fbe8798ba156f960

2013-05-09  John Darrington  <john@darrington.wattle.id.au>

	Fix stack corruption in ODS reader.
	zip_reader_create takes a pointer to a struct string, which
	is used to  store error messages during zip operations.  I had
	been passing the address of a string declared as local variable
	in ods_probe.  However since the zip reader survives ods_probe,
	this caused stack corruption in later read operations.

	This change makes the string a member of the reader created (if any).

2013-05-09  John Darrington  <john@darrington.wattle.id.au>

	Fix stack corruption in ODS reader.
	zip_reader_create takes a pointer to a struct string, which
	is used to  store error messages during zip operations.  I had
	been passing the address of a string declared as local variable
	in ods_probe.  However since the zip reader survives ods_probe,
	this caused stack corruption in later read operations.

	This change makes the string a member of the reader created (if any).

2013-05-09  John Darrington  <john@darrington.wattle.id.au>

	Update test to include new warning

	ods reader: Report cells which cannot be converted

	Gnumeric reader: Report cells which cannot be converted

2013-05-09  John Darrington  <john@darrington.wattle.id.au>

	Spreadsheetreader: new function create_cell_ref and rename existing function with that name.
	Rename convert_cell_ref to convert_cell_range which is a more accurate
	description of the function, and add a new function, with the original
	name of the function we've just renamed.

	The new function (create_cell_ref) does just that.

2013-05-08  Ben Pfaff  <blp@cs.stanford.edu>

	psppire-cell-renderer-button: Don't use gdk_window_coords_to_parent().
	It was introduced in GDK 2.22, which is newer than we require.

	Reported by John Darrington.

2013-05-08  Ben Pfaff  <blp@cs.stanford.edu>

	psppire-cell-renderer-button: Do not update 'event->window'.
	Commit 5b59146f8d0 (psppire-cell-renderer-button: Translate coords before
	propagating event.) caused GDK and GTK+ warnings and criticals and a crash
	if the scenario described in the bug report were repeated a number of
	times.  This change appears to fix the problem.

	Reported by John Darrington.
	Bug #38922.

2013-05-08  John Darrington  <john@darrington.wattle.id.au>

	Revert "psppire-cell-renderer-button: Translate coords before propagating event."
	This reverts commit 5b59146f8d060754b14eba415dcc9066d8bc7b02.

	Remove include directives for non-existant files

	Merge remote branch 'origin/master' into import-gui

2013-05-07  Ben Pfaff  <blp@cs.stanford.edu>

	psppire-cell-renderer-button: Translate coords before propagating event.
	When propagating a right-click upward, the x and y coordinates in the
	event are those for the button, not for the parent window, but the parent
	window's signal handlers will expect that they are relative to the parent
	window.  This commit makes that so.

	Without this commit, the following scenario occurs:

	1. Open a dataset with at least two cases.
	2. Switch to the Data View
	3. Place the pointer over (say) the tenth row header button.
	4. Click the left mouse button.
	5. Click the right mouse button.
	6. The popup menu appears (as it should), but row 1 gets selected instead
	   of row 10.

	With this commit, in step 6 the correct row is selected.

	Bug #38922.
	Reported by John Darrington.

2013-05-06  Ben Pfaff  <blp@cs.stanford.edu>

	Merge 'psppsheet' into 'master'.
	This merge required considerable manual resolution in
	text-data-import-dialog.c because that file was split into multiple files
	on master.

2013-05-06  John Darrington  <john@darrington.wattle.id.au>

	Remove unused variable assigned in expression.
	Found by clang analayzer

2013-05-05  Ben Pfaff  <blp@cs.stanford.edu>

	psppire-window: Disconnect signal handlers before unregistering.
	Otherwise, the call to psppire_window_register_remove() calls back into
	remove_menuitem() via the "remove" signal, but window->menu referenced in
	that callback has already been freed.

	Found by valgrind.

2013-05-05  Ben Pfaff  <blp@cs.stanford.edu>

	psppire-data-sheet: Disconnect clipboard owner-change signal on dispose.
	Otherwise, any clipboard change in ownership (e.g. clicking on some cells
	and typing Control+C), even after a given PsppireDataSheet closes, still
	calls into on_owner_change() and commits a use-after-free error.

	Reported by John Darrington.

2013-05-05  Ben Pfaff  <blp@cs.stanford.edu>

	psppire-data-sheet: Obtain data sheet targets via callback.
	Calling gtk_clipboard_wait_is_target_available() within on_owner_change()
	seems to cause Window|Split to act oddly (the right panes were empty),
	perhaps because gtk_clipboard_wait_is_target_available() has a nested main
	loop.  Switching to gtk_clipboard_request_targets() fixes the problem.

	Reported by John Darrington.

2013-05-05  Ben Pfaff  <blp@cs.stanford.edu>

	psppire-data-sheet: Remove stray debug printf.
	Reported by John Darrington.

2013-05-04  John Darrington  <john@darrington.wattle.id.au>

	Updated gnulib version

2013-04-29  John Darrington  <john@darrington.wattle.id.au>

	Merge remote branch 'origin/master' into import-gui

	Add necessary initialisation to spreadsheet-test.c

	list.c Use "long" instead of "int" for command parameters.
	Commit 4e5a6cc044c6c82e6c4d842bf056579b6bc47d48 used int instead of long for the
	parameters of the LIST command.  This caused compiler warnings and problems on
	64 bit machines.  This change fixes that.

2013-04-28  John Darrington  <john@darrington.wattle.id.au>

	Fixed crash in error path of MEANS command

	Add necessary initialisation to spreadsheet-test.c

	Merge remote branch 'origin/master' into import-gui

	ODS reader: Make the destroy method safer.
	It seems this was causing use after delete errors when there was an empty reader.

	Fix constness warnings

	Fix recently introduces bug in LIST /CASES
	Commit 4e5a6cc044c6c82e6c4d842bf056579b6bc47d48 contained a bug.  This change
	corrects the bug, and updates a test, such that the bug will be caught, should
	it ever reappear.

2013-04-27  John Darrington  <john@darrington.wattle.id.au>

	Fix invalid read in ROC vs. TEMP
	Partial fix for bug #38833

2013-04-26  John Darrington  <john@darrington.wattle.id.au>

	Correct error message from previous commit.
	Commit 49b3e593c078b40d7c72379b4f8622a1ea8d7ea1 produced a misleading
	and non-sensical error message.  This change fixes that.

	Fixed a crash when RECODE attempted to increase the length of a string beyond the width of the variable.
	Reported-by: Cristoph Amthor

	Added missing headers to terminal-reader.c

	Update ABOUT-NLS from gettext

2013-04-25  Ben Pfaff  <blp@cs.stanford.edu>

	FLIP: Fix use-after-free error with temporary transformations.
	The FLIP procedure keeps a reference to the  dictionary from before running
	a procedure and then uses that reference after calling proc_commit().  When
	temporary transformations are present, this dictionary disappears.  The
	"SPLIT FILE  - vs procedures" test triggers this issue because it uses
	FILTER, which is implemented as a temporary transformation.

	This commit fixes the problem by avoiding a reference to the old
	dictionary after proc_commit().

	Reported by John Darrington.
	Bug #38820.

2013-04-25  John Darrington  <john@darrington.wattle.id.au>

	convert list.q to list.c
	Reviewed-by: Ben Pfaff

2013-04-24  Ben Pfaff  <blp@cs.stanford.edu>

	u8-istream: Fix reading UTF-16 and UTF-32 files.
	Before this commit, u8_istream_for_fd() would obtain the correct encoding
	from encoding_guess_head_encoding() for UTF-16 and UTF-32 files, and then
	it would ignore it and use the default encoding returned by
	encoding_guess_parse_encoding().  This commit fixes the problem.

2013-04-24  Ben Pfaff  <blp@cs.stanford.edu>

	u8-istream: Fix handling of UTF-8 byte order marks.
	The UTF-8 special case state didn't skip over an initial byte order mark.
	This fixes it.

	Reported by Dr. Holger Handstein <post@handundstein.de>.

2013-04-24  Ben Pfaff  <blp@cs.stanford.edu>

	encoding-guesser: New function encoding_guess_bom_length().

	tests: Make "read ISO-8859-1 as Auto,ISO-8859-1" failures easier to read.
	By putting new-lines in the input and output, it becomes unnecessary to
	scroll thousands of columns to the right to spot the differences.

2013-04-24  John Darrington  <john@darrington.wattle.id.au>

	Fixed crash with EXAMINE vs. SPLIT
	Partial fix for bug #38820

	Fixed crash with GLM and MEANS vs. SPLIT
	Partial fix for bug #38820

	Do not try to set box=unicode if the driver is not the text driver.

	Avoid test failures due to wrong terminal settings

	Added test for known split file problems

2013-04-23  John Darrington  <john@darrington.wattle.id.au>

	Fixed crash in error path for GET DATA

	Added strcasestr to list of gnulib modules

2013-04-22  John Darrington  <john@darrington.wattle.id.au>

	Use the select and pipe2 modules from gnulib

2013-04-21  John Darrington  <john@darrington.wattle.id.au>

	Widen the criteria for assuming the terminal is utf capable.
	Assume the terminal is UTF-8 capable if the TERM and XTERM_LOCALE environment
	variables seem to suggest that.

2013-04-20  John Darrington  <john@darrington.wattle.id.au>

	Update documentation for the STRING command.
	The text wasn't entirely clear.  Hopefully this is an improvement.

	Reported by: Ronald Crichton

2013-04-18  John Darrington  <john@darrington.wattle.id.au>

	Changed "Text files" to "Text Files"
	Reported-By: Jack Tanner

2013-04-17  John Darrington  <john@darrington.wattle.id.au>

	terminal-reader.c: Added missing #include directive

2013-04-16  John Darrington  <john@darrington.wattle.id.au>

	Terminal reader: Interruptable command line interface
	This change alters the behaviour of the command line interface such that
	upon receiving SIGINT, instead of immediately aborting, the current command
	being read will be interrupted and a new PSPP> prompt appears.

	Reviewed-by: Ben Pfaff

2013-04-09  John Darrington  <john@darrington.wattle.id.au>

	Ascii driver: Default to box=unicode iff the charset is UTF8

2013-04-07  Ben Pfaff  <blp@cs.stanford.edu>

	AUTORECODE: Avoid use-after-free error with TEMPORARY.
	When TEMPORARY is in effect, proc_commit() destroys the temporary
	dictionary.  This means that any procedure that does not somehow disable
	temporary transformations and refers to a variable following proc_commit()
	has a use-after-free error.

	Until now, AUTORECODE had this problem.  This commit fixes it and adds a
	test.

	Bug #32757.

2013-04-07  Ben Pfaff  <blp@cs.stanford.edu>

	AUTORECODE: Trim trailing white space correctly.
	The existing code trimmed off everything starting at the first space.
	The new version trims off only trailing spaces.

	Found by inspection.

2013-04-07  Ben Pfaff  <blp@cs.stanford.edu>

	po: Update Dutch translation from translationproject.org.

2013-04-07  Ben Pfaff  <blp@cs.stanford.edu>

	ascii: Omit whitespace at the end of a line.
	Long string variables tend not to be completely filled with data, which
	means that they end in a lot of spaces.  The ASCII output driver didn't
	handle these well.  Instead, it put a blank line in the cell for each
	trailing space.

	This fixes the problem and adds a test.

	Reported by Ronald Crichton.
	Bug #38672.

2013-04-07  John Darrington  <john@darrington.wattle.id.au>

	Fixed crash when processing regression with bad syntax

	Rename some identifiers for consistency

2013-04-07  Ben Pfaff  <blp@cs.stanford.edu>

	CORRELATIONS: Fix crash with separate sets of row and column variables.
	When WITH is specified, the column variables start at offset corr->n_vars1
	within corr->vars.  The calculation previously used here was incorrect and
	caused an access beyond the end of the corr->vars array.

	The code would be clearer if there were separate row_vars and col_vars
	arrays, but that would be a larger change.

	Bug #38661.
	Reported by William Rogers.

2013-04-05  John Darrington  <john@darrington.wattle.id.au>

	Update casereader.c from master

	Merge remote branch 'origin/master' into import-gui

2013-04-04  John Darrington  <john@darrington.wattle.id.au>

	ascii.c: Use symbol instead of constant literal

	Fixed bug displaying unicode box characters.
	Also added a test for this.  Closes bug #38647

2013-04-04  Ben Pfaff  <blp@cs.stanford.edu>

	RELIABILITY: Fix memory leaks and dereferences of uninitialized pointers.
	The 'total' struct and 'm' array in struct reliability were allocated once
	per case group, but freed exactly once.  If there were no case groups,
	this caused a null dereference.  If there was more than one case group,
	this caused a memory leak.  This commit fixes both problems.

	This commit also fixes a related crash on bad syntax due to dereferencing
	a null pointer in reliability_destroy().

	Bug #38660.
	Reported by William Rogers.

2013-03-31  John Darrington  <john@darrington.wattle.id.au>

	Fix compiler warning in gnumeric-reader.c

	Merge remote branch 'origin/master' into import-gui
	Conflicts:
		src/data/casereader.c

2013-03-31  John Darrington  <john@darrington.wattle.id.au>

	Work-around bug in GCC 4.4.5
	Gcc 4.4.5 seems to be buggy.  For some reason it miscompiles the code in
	casereader_count_cases__ when compiled with -O2 by not allocating enough
	stack.  This commit works around that problem by putting a dummy variable
	on the stack.

	Reviewed-by Ben Pfaff.

2013-03-31  John Darrington  <john@darrington.wattle.id.au>

	Merge remote branch 'origin/master' into import-gui

2013-03-31  Ben Pfaff  <blp@cs.stanford.edu>

	ods-reader: Fix GCC warning.
	ods-reader.c: In function 'ods_file_casereader_read':
	ods-reader.c:941:3: error: ISO C90 forbids mixed declarations and code

2013-03-31  John Darrington  <john@darrington.wattle.id.au>

	ONEWAY /POSTHOC: Annotate output with dependent variable
	The Multiple Comparisons table did not specify the variable to which it refered.  This could be confusing
	if more than one variable was specified.
	Fixes bug #38635

	Updated lt.po from translationproject.org

	Merge remote branch 'origin/master' into import-gui

	Fixed some memory allocation issues in the Gnumeric import code

	Fix bug reading empty sheets

	Commit remaining bits

	re-enable compiler bug workaroundä

	Fixed some memory leaks

2013-03-30  John Darrington  <john@darrington.wattle.id.au>

	Added a second lot of state data

	Make the gnumeric reader behave the same as the odsreader

	Merge remote branch 'origin/master' into import-gui

	Fix memory allocation issues in ods-reader

	Rename variable and add comment

	Fixed some memory leaks

	Merge remote branch 'origin/master' into import-gui

	Imported new lt.po file from translation-project.

2013-03-29  John Darrington  <john@darrington.wattle.id.au>

	Remove diagnostics

	Revert experiment

	Merge remote branch 'origin/master' into import-gui
	Conflicts:
		src/ui/gui/text-data-import-dialog.c

	Fix order of text-import subdialogs.
	Commit 29c1450251805417aacb9cecc84b03c81137c137 inadvertently reversed the
	order of display of the the first-line and seperator subdialogs.  Amoung
	other problems, this meant that controls of the former were no longer
	respected.  This change restores the original order.

2013-03-27  John Darrington  <john@darrington.wattle.id.au>

	Merge remote branch 'origin/master' into import-gui

2013-03-26  Ben Pfaff  <blp@cs.stanford.edu>

	MATCH FILES: Fix bugs along error path.
	Also add test to prevent later regression.

	Reported by Ronald Crichton <Ronald.Crichton@cit.edu.au>.

2013-03-26  Ben Pfaff  <blp@cs.stanford.edu>

	gui: Fix GCC warning in page-file source file.
	src/ui/gui/page-file.c: In function 'init_file':
	src/ui/gui/page-file.c:84:35: warning: variable 'opts' set but not
	    used

2013-03-26  John Darrington  <john@darrington.wattle.id.au>

	Work around bug in compiler

	Updated NEWS to match the version number

2013-03-25  John Darrington  <john@darrington.wattle.id.au>

	Added a second lot of state data

	sheet meta data:  Move out of state data

	Separate the reader state data into its own struct

2013-03-23  John Darrington  <john@darrington.wattle.id.au>

	Merge remote branch 'origin/master' into import-gui
	Conflicts:
		src/ui/gui/automake.mk
		src/ui/gui/page-assistant.c
		src/ui/gui/page-file.c
		src/ui/gui/text-data-import-dialog.c

2013-03-22  John Darrington  <john@darrington.wattle.id.au>

	Reorganised the text-data import assistant into separate files for each page
	This will hopefully make it easier to add new functionality.
	Reviewed-by: Ben Pfaff

	Merge branch 'master' into import-gui
	Conflicts:
		src/ui/gui/automake.mk
		src/ui/gui/page-assistant.c
		src/ui/gui/page-file.c
		src/ui/gui/text-data-import-dialog.c

2013-03-22  Ben Pfaff  <blp@cs.stanford.edu>

	configure: Increase version number to 0.7.10.
	Suggested by John Darrington.

2013-03-21  Ben Pfaff  <blp@cs.stanford.edu>

	FILE HANDLE: Use system native line ends by default.
	Requested by Ronald Crichton.

	FILE HANDLE: Add new ENDS subcommand to control new-lines in output.
	Requested by Ronald Crichton.

2013-03-20  John Darrington  <john@darrington.wattle.id.au>

	Reorganised the text-data import assistant into separate files for each page
	This will hopefully make it easier to add new functionality.
	Reviewed-by: Ben Pfaff

	Merge remote branch 'origin/master' into import-gui

2013-03-17  Ben Pfaff  <blp@cs.stanford.edu>

	SET: Fix format specifier in show_workspace().
	GCC reported that %ld is not the correct format specifier for a size_t.

2013-03-17  John Darrington  <john@darrington.wattle.id.au>

	Fix confusion over workspace units.

	Added the SHOW WORKSPACE command which was absent.
	Reported-by: Stefan Tzeggai

2013-03-16  John Darrington  <john@darrington.wattle.id.au>

	Documentation:  Mention the units of the WORKSPACE setting

2013-03-14  John Darrington  <john@darrington.wattle.id.au>

	Merge remote branch 'origin/master' into import-gui

2013-03-12  Ben Pfaff  <blp@cs.stanford.edu>

	psppire-data-sheet: Implement primary selection.
	I didn't realize that this was important.

	Reported by John Darrington.

2013-03-12  Ben Pfaff  <blp@cs.stanford.edu>

	Merge 'master' into 'psppsheet'.

2013-03-11  Ben Pfaff  <blp@cs.stanford.edu>

	RANK: Fix crash ranking multiple variables without any rank specs.
	Incidentally fixes a small memory leak in the same situation.

	Bug #38482.
	Reported by John Darrington.

2013-03-11  Ben Pfaff  <blp@cs.stanford.edu>

	Fix warnings introduced by minor type errors in recently added code.

2013-03-09  John Darrington  <john@darrington.wattle.id.au>

	Merge remote branch 'origin/master' into import-gui

	Added a (non-shipped) gui test-program to test spreadsheet readers.
	This program is usefull for testing the behaviour of the ods_reader and the gnumeric_reader.

	Merge remote branch 'origin/master' into import-gui

	Ref count the gnumeric reader

	Merge remote branch 'origin/master' into import-gui

	Re-enabled the reset buttons

	main.c: Replaced macro with a static const
	This is the GNU recommended way, and ensures that not-compiled code does not become out
	of date.

	Re-enabled Paste button

	Test program.  Make it crash less often

2013-03-08  John Darrington  <john@darrington.wattle.id.au>

	Made the test program a little more friendly

	Ref count the gnumeric reader

	Merge remote branch 'origin/master' into import-gui
	Conflicts:
		src/ui/gui/psppire-spreadsheet-model.c

	New module: psppire-spreadsheet-model.c
	 Provides an implementation of a GtkTreeModel which can be used to
	display the meta data of Gnumeric or Opendocument spreadsheet files.
	Potentially, other spreadsheet files could be added too.
	Used for upcomming gui features.

	Fix remaining leaks in Gnumeric reader

	Fix remaining leaks in Gnumeric reader

	Zip reader: remove unnecessary test

	Merge branch 'master' into import-gui

	Fixed some more errors in the spreadsheet readers

	Fix remaining leaks in ods-reader.c

2013-03-07  John Darrington  <john@darrington.wattle.id.au>

	Merge remote branch 'origin/master' into import-gui

	zip-reader.c: Fix memory leak

	zip-reader.c: Fix memory leak

	Delete ods_file_casereader_clone function

	Let the test program open both kinds of spreadsheet

	Fewer memory leaks

	Make the spreadsheet reader responsible for destroying its opts

	Merge remote branch 'origin/master' into import-gui

	zip-test.c: Remove erroneous call to zip_member_unref

	zip-reader.c: Replace [cm]alloc by their x*alloc counterparts

2013-03-05  John Darrington  <john@darrington.wattle.id.au>

	Merge branch 'master' into import-gui

	Fixed crash reading ODS spreadsheets and added a test case

2013-03-04  John Darrington  <john@darrington.wattle.id.au>

	Merge branch 'master' into import-gui

	Added a feature to read the meta data from spreadsheet files.
	This is in preparation for upcoming features.

	Make GUI open either kind of spreadsheet

	Created wrappers for the ods/gnumeric functions

2013-03-03  John Darrington  <john@darrington.wattle.id.au>

	Fixed some memory leaks

	Renamed the spreadsheet test file and put it noinst

	Use our own explicit loop instead of main_loop_run

	Fixed some memory leaks

2013-03-02  John Darrington  <john@darrington.wattle.id.au>

	Test proglet: Display all members of a case

	Fixed bug where repeated values were not being handled correctly

2013-03-02  Ben Pfaff  <blp@cs.stanford.edu>

	pspp-sheet-view: Make Ctrl+Up and Ctrl+Down go to top and bottom.
	These keybindings match those implemented by Gnumeric.

	Suggested by John Darrington.

2013-03-02  Ben Pfaff  <blp@cs.stanford.edu>

	pspp-sheet-view: Get rid of ctrl_pressed and shift_pressed.
	Having these as member variables made it hard to keep key
	press status separate from whether we want to extend or
	toggle row selection.  Most of the time, these are the
	same, but there are some cases (e.g. Shift+Tab) where they
	don't coincide, and an upcoming commit will add another
	case.

	pspp-sheet-view: Rename GtkTreeSelectMode to PsppSheetSelectMode.
	This avoids invading GTK+ reserved namespace.

2013-03-02  John Darrington  <john@darrington.wattle.id.au>

	Fixed some memory allocation issues

	Test proglet work

	Display "(empty)" if a sheet has no data

	Made some code improvements.
	As a side effect, it no longer crashes

2013-03-01  John Darrington  <john@darrington.wattle.id.au>

	Fixed some more leaks

	Fix some memory leaks

	Avoid compiler warnings

2013-02-28  John Darrington  <john@darrington.wattle.id.au>

	Got the last test working

	Got another test working

2013-02-27  John Darrington  <john@darrington.wattle.id.au>

	ODS cellranges work again (sort of)

2013-02-25  John Darrington  <john@darrington.wattle.id.au>

	Make sure that ODS reading works even when not in C locale

	Issue error message if spreadsheet does not exist

	Avoid crash when importing non-existant spreadsheet file

2013-02-24  John Darrington  <john@darrington.wattle.id.au>

	Another test works

2013-02-23  John Darrington  <john@darrington.wattle.id.au>

	New function reading_target_sheet

	Rename variable

2013-02-19  John Darrington  <john@darrington.wattle.id.au>

	Renamed some variables and removed some

2013-02-18  John Darrington  <john@darrington.wattle.id.au>

	Change the label to be vendor neutral

	Got some of the tests working

	Made it crash a little less often

	Avoided a number of other problems

	Fix buffer overflow

	Fixed some incorrect range imputation

	Got the ODS reader model (sort of) working.

	Merge two option structs

	Added a warning if gnumeric files are not UTF8.  Then blidly assume that they are.

	Fixed some more warnings

	Make opts const
	and remove the feature where it was filled in by the reader

	Add prototypes for syntax generation functions

	Zip Reader: Take members from the index if they exist.
	This allows readers to be iterated more than once.

	Zip Reader: Take members from the index if they exist.
	This allows readers to be iterated more than once.

2013-02-16  John Darrington  <john@darrington.wattle.id.au>

	Got the text file import working again

	Show errors on reading badly formed gnumeric files

	Made the text import dialogs sort of work again

	Return NULL if not a gnumeric file

	Actually use the combobox setting

	Fixed many warnings

	Gnumeric reader cope with multiple passes, and empty cell elements

	Rename sheet_index to current sheet

	Rename sheets to n_sheets

	Enable the syntax generation

	Make the data visible

	Updated the test widget thing a bit

	Use the gnumeric_reopen function

	Added a reopen capability

	Dont show range if it is null

	Added a proper function to convert spreadsheet column refs

	Added a callback to set the range entry on change

	Make both work at the same time

	Fix memory leak

	Added the range column to the model

	Added a maxcol state

	Tidied up a bit more.  Eliminated some warnings

	Tidied up a bit

	sort of got the assistant working with the combo model

	Basically working model

	Added property for the backend

	Basic model

	Basic Framework for test program

	Added a test program for the spread interface

	Only one spreadsheet

	formats page: Construction is initialisation

	First line page construction is initialisation

	separators construction is initialisation

	Move column count from seperators into assist

	Make sheet spec page opaque

	Move all intro related stuff to the intro file

	Intro page: contruction is initialisation

	Move file_name member from sri to spreadsheet struct

	Put the pages as pointers

	Started polymorphism of ODS

	Started polymorphism of Gnumeric

	Made a start at canonicalising the interface

	Use convert cell range instead of doing it ourselves

	Enable specification of the cell range

	Replace _Import with I_mport in GtkBuilder file.
	This means that there is only one _I in the File menu.

	Added a bit more to the gui

	fix compile issues

	Fix syntax generation

	Try to load the correct sheet

	data import gui: update user interface

	Change label from "import text" to "import".
	Because it is not only used for text now.

	Spreadsheet readers: Seperate the mandatory from the optional arguments.

	Basic working spreadsheet import dialog (sort of)

	Added file chooser filters for spreadsheet file types

	Seperate test-data-import-dialog into different files

	Fixed a bug reading gnumeric files.
	Importing  gnumeric spreadsheets would assert-fail if there were empty columns at the start of the sheet.

2013-02-13  John Darrington  <john@darrington.wattle.id.au>

	Examine vs. Boxplots: Avoid labels overlapping one another
	One factored boxplots remove the name of the factor variables, since
	these can be inferred from the chart title.  Also trim off any
	leading whitespace from the values.  This reduces the chances of the
	labels clashing with one another when many boxplots appear on the
	same chart.

	Closes bug #38132

2013-02-12  John Darrington  <john@darrington.wattle.id.au>

	Output Viewer Export: Automatically append filename suffix
	When exporting the output viewer using the file chooser, automatically append
	a . and a three letter suffix indicating the format of the export.
	Closes bug #38133

2013-02-09  John Darrington  <john@darrington.wattle.id.au>

	REGRESSION: Added mention of the dependent variable to table titles.
	Closes #34732

2013-02-05  John Darrington  <john@darrington.wattle.id.au>

	Fixed compiler warning placement-parser.c

2013-02-04  Ben Pfaff  <blp@cs.stanford.edu>

	psppire-window: Avoid doubled separator in Windows menu.
	John Darrington noticed that sometimes the separator was doubled in the
	Windows menu.  It seems that the code for detecting that we've already
	added the separator was unreliable, because it would re-add the separator
	if the number of windows increased from zero, dropped to zero, and then
	increased again.

	pspp-sheet-view: Make Control+Left, Control+Right go to ends of lines.
	John Darrington reported that, in Gnumeric, Control+Left goes to the first
	column and Control+Right goes to the last column.  This commit changes
	the data sheet to do the same

2013-02-03  Ben Pfaff  <blp@cs.stanford.edu>

	Merge 'master' into 'psppsheet'.

2013-02-02  Ben Pfaff  <blp@cs.stanford.edu>

	casereader: Remove casereader_split() function.
	It no longer has any users.

	Reported by John Darrington.

2013-01-31  Ben Pfaff  <blp@cs.stanford.edu>

	RANK: Add support for temporary transformations.
	Bug #37999.
	Reported by Zoltan Fabian.

2013-01-31  Ben Pfaff  <blp@cs.stanford.edu>

	RANK: Adopt a new ranking implementation.
	Before this commit, the implementation of RANK made multiple passes
	through the active file, opening and closing it (with proc_open()
	and proc_commit()) as many times as there were input variables.
	This worked in simple cases, but it could never work with
	TEMPORARY since the second proc_open() will see a different set
	of data from the first one.

	This commit rewrites RANK to open and read the active file only
	once.  It does not make RANK properly work with TEMPORARY, but
	it brings it much closer.  It may also be faster in some cases
	because, although it makes the same number of passes through
	the input data (necessarily), each pass discards all the input
	columns except the ones that are really need for that pass.

2013-01-31  Ben Pfaff  <blp@cs.stanford.edu>

	RANK: Create all variables together, in order.
	An upcoming commit will rewrite the RANK implementation so that the
	new variables are not created until after a pass through the data.
	(This makes sense because their values cannot actually be determined
	until that pass is complete, so there is no point in allocating space
	for them in cases.)  To do that, it is necessary to figure out the
	variable names (and that they will be valid variable names) in
	advance.  This commit switches to that approach in advance.

	This approach has another small advantage: the order of the variables
	added by RANK to the dictionary does not depend on whether the
	variables are named by the user or by generating a name.  (This
	is why the rank.at test case changes.)

2013-01-30  Ben Pfaff  <blp@cs.stanford.edu>

	RANK: Simplify rank_sorted_file() with new function sum_weights().
	This makes the code easier to read and possibly even faster.

	RANK: Simplify fraction_name() function.
	The caller only needs a constant string so we might as well just return
	one directly rather than through a static buffer.

	RANK: Put #include directives into typical order.

	RANK: Remove write-only struct member 'ascending'.

	RANK: Lowercase the name of "enum RANK_FUNC".
	It is fairly unusual to give a type an all-uppercase name.  The name looks
	more natural to me in lowercase.

	transformations: Relax the rules for transformation finalizing.
	The trns_chain data structure has a barely useful concept called
	"finalization".  In practice this is used to make sure that control
	structures (e.g. DO IF) that are opened get closed (e.g. END IF).  There
	are currently some restrictions on finalizing: namely, transformations
	can't be added after a chain is finalized.  Since finalizers are barely
	used, we can relax this restriction, which this commit does.  This will be
	used in an upcoming commit where the ability to add a transformation to a
	finalized change becomes useful for a corner case.

2013-01-28  Ben Pfaff  <blp@cs.stanford.edu>

	subcase: New function subcase_add_vars_always().
	This function will be used in an upcoming commit.

	casegrouper: Add comments.

2013-01-28  John Darrington  <john@darrington.wattle.id.au>

	Ensure that RELIABILITY is always fully constructed.
	Commit e94a39ff572a51907545497c26faccdf4b2c5ada added a 'no crash' test
	checking that RELIABILITY's destructor didn't cause any problems when
	the procedure was presented with invalid syntax.  Unfortunately the
	associated fix was only half done.  The scale_name variable was being
	destroyed when it hadn't been initialised.  This change fixes that.

	Reported-by: Jeremy Lavergne

2013-01-25  John Darrington  <john@darrington.wattle.id.au>

	Reliability: Fix crash on invalid syntax

2013-01-20  John Darrington  <john@darrington.wattle.id.au>

	Improve the printing size on Windows.
	There were reports that on Windoze the printed output was tiny.  I
	think this commit might improve things a little.

2013-01-20  John Darrington  <john@darrington.wattle.id.au>

	Fix xr to point unit conversion in cairo output driver.
	The conversion between points (1/72") and xr units was wrong.
	This meant that some things were slightly the wrong size.

	Reviewed-by: Ben Pfaff

2013-01-20  John Darrington  <john@darrington.wattle.id.au>

	Output window: properly handle the dispose/finalisation

2013-01-16  Ben Pfaff  <blp@cs.stanford.edu>

	Document and implement "precision record" in portable file format.

2013-01-15  John Darrington  <john@darrington.wattle.id.au>

	Remove configure flag --enable-anachronistic-dependencies
	This flag was a kludge and is not used anymore anyway.

2013-01-12  Ben Pfaff  <blp@cs.stanford.edu>

	lexer: Generalize lex_match_phrase() to handle any syntax.
	This makes lex_match_phrase() slightly more useful.  It also eliminates
	the ASCII-only requirement.

	scan: Introduce string_lexer for simple tokenizing of a string.
	The following commit will introduce a user outside of the tests.

	segment: Don't require the input to end in a new-line.

	segment: Separate SEG_N_TYPES from enum segment_type.
	With SEG_N_TYPES not actually a member of enum segment_type, GCC doesn't
	complain if it's missing from a switch statement on that type.

	identifier: Make lex_id_get_length() handle Unicode.
	This function's only caller is documented only to handle ASCII, so this
	commit does not fix any bug, but it seems better to generalize our code.

2013-01-12  Ben Pfaff  <blp@cs.stanford.edu>

	cairo: Include command name in error messages.
	Commit ddb7b52128d8 (output: Make errors, warnings, and notes into a new
	"message_item".) changed command name tracking to a responsibility of
	individual output drivers, and converted the output drivers to do it.
	However, the conversion of the cairo driver was incomplete.  This commit
	fixes that problem.

	Reported by John Darrington.

2013-01-12  John Darrington  <john@darrington.wattle.id.au>

	Gnumeric Reader: Set dictionary to NULL on error

2013-01-12  John Darrington  <john@darrington.wattle.id.au>

	Simplify creation of pango layout in xr driver.
	Create the layouts with pango_cairo_create_layout instead of
	pango_layout_new.  This seems simpler and avoids a kludge.

	Reviewed-By: Ben Pfaff

2013-01-09  Ben Pfaff  <blp@cs.stanford.edu>

	doc: Better describe the meaning of THRU in the RECODE command.
	pohaku <pg@hawaii.edu> reported that the description was ambiguous.

	doc: Improve formatting of RECODE command description.

2013-01-06  Ben Pfaff  <blp@cs.stanford.edu>

	Merge 'master' into 'psppsheet'.

2013-01-06  John Darrington  <john@darrington.wattle.id.au>

	Fixed a bug reading gnumeric files.
	Some gnumeric files use <gnm:Name> tags for miscellaneous purposes.  Our code
	had always assumed that it represented the name of the Sheet.  Hence these files
	would read the wrong sheet of a workbook.  This change fixes it.  Closes 38028

	GET DATA: Produce explicit error on invalid sheet index.

	GET DATA: Add error message on incorrect syntax
	Previously, when an incorrect syntax reading a spreadsheet file was used, the procedure
	would silently fail.  Now it fails with an error message.

2013-01-05  John Darrington  <john@darrington.wattle.id.au>

	Gnumeric reader: Avoid potential crash reading invalid gnumeric files

2013-01-03  Ben Pfaff  <blp@cs.stanford.edu>

	identifier: Broaden the class of characters allowed in identifiers.
	It appears that SPSS allows almost any Unicode character in an identifier,
	and particular U+00B4 ACUTE ACCENT.  This commit adds more permitted
	characters to the identifier checks.

	Reported by Helen Barghan <kenny4president@web.de>.

2013-01-01  Ben Pfaff  <blp@cs.stanford.edu>

	expressions: Fix dependency on current year in tests.
	The tests for expressions broke on Jan 1, 2013 because the default epoch
	depends on the current year.  This commit fixes the tests by setting a
	fixed epoch for dates.

	Reported by John Darrington.

2013-01-01  Ben Pfaff  <blp@cs.stanford.edu>

	variable: Remove 'aux' member from struct variable.

	perl-module: Drop use of variable aux data.
	The variable aux data interfaces are not very clean, and furthermore
	they have few users.  This commit eliminates the last user.

	perl-module: Put struct dictionary inside a wrapper "struct pspp_dict".
	In an upcoming commit this will allow an extra member to be associated
	with the Perl version of each dictionary.

	perl-module: Rename sysfile_info to syswriter_info.
	This module had sysfile_info and sysreader_info.  The former was a writer,
	the latter a reader.  I found the asymmetric names a little confusing, so
	this commit renames them more consistently.

	case-map: Drop use of variable aux data.
	The variable aux data interfaces are not very clean, and furthermore
	they have few users.  This commit eliminates one of the users.

	CROSSTABS: Drop use of variable aux data.
	The variable aux data interfaces are not very clean, and furthermore
	they have few users.  This commit eliminates one of the users.

	hmap: New interfaces for iterating a bucket without comparing hashes.

2013-01-01  John Darrington  <john@darrington.wattle.id.au>

	Update tests to reflect change in EXAMINE / EXTREME behaviour.
	Commit bd156adaff5b7c1bbe48b5c64006ead58d9a37d6 slightly changed the
	behaviour of the EXTREME subcommand of the EXAMINE procedure, but the
	tests did not reflect this.

	This change updates the tests accordingly.  Thanks to Zoltan Fabian
	for confirming which was the correct behaviour.

2013-01-01  John Darrington  <john@darrington.wattle.id.au>

	Fix bug #37984 - EXAMINE extremes vs. fractional weights.
	There was a bug where extreme values were not calculated properly when
	weights were fractional.  This change fixes this problem and adds a
	test.

2012-12-31  John Darrington  <john@darrington.wattle.id.au>

	Remove assertions which compare the sum of weights between passes.
	These asserted that the sum of case-weights of a dataset calculated
	in one pass, was the same as that calculated in a second pass.
	Algebraically this is correct.  However, for optimisation purposes,
	it is sometimes desireable that the second pass occurs after the
	data has been reordered.   If that happens, the sum of weights can
	be slightly different due to floating point rounding errors.  This
	happens particularly when the caseweights are fractional.

2012-12-29  Ben Pfaff  <blp@cs.stanford.edu>

	Merge 'master' into 'psppsheet'.

2012-12-27  Ben Pfaff  <blp@cs.stanford.edu>

	csv-file-writer: Fix implementation of decimal point option.
	Now that pspp sets LC_NUMERIC, dtoastr() might yield either '.' or ',' as
	the decimal point, so the CSV writer needs to check for either one and
	replace it by the decimal point requested by the caller.

	Reported by John Darrington.

2012-12-27  Ben Pfaff  <blp@cs.stanford.edu>

	i18n: New functions for UTF-8 case conversion.
	Also, use the new functions in a few cases where we want a full UTF-8
	conversion.

2012-12-27  Ben Pfaff  <blp@cs.stanford.edu>

	Use UTF-8 case-insensitive hashes and comparisons for language identifiers.
	The PSPP language has case-insensitive identifiers (variable names, etc.)
	but until now it has only implemented case insensitivity for ASCII
	characters.  This commit properly implements case insensitivity for all
	Unicode characters, using libunistring.

	Bug #31072.

2012-12-27  Ben Pfaff  <blp@cs.stanford.edu>

	Use "C" locale comparisons for language constructs.
	These language constructs are ASCII so there's no need for a
	locale-independent comparison and it seems to me that one would not make
	sense in edge cases.

2012-12-26  John Darrington  <john@darrington.wattle.id.au>

	Fixed crash parsing NPAR CHISQUARE

	Set the LC_NUMERIC locale category on startup.
	Previously, for rather unsatisfactory reasons, pspp and psppire set all locale
	categories except LC_NUMERIC.  The reasons for doing this have now been
	resolved.  So this change sets all locale categories including LC_NUMERIC.

2012-12-25  John Darrington  <john@darrington.wattle.id.au>

	select cases dialog: Fix syntax generation issues when in non C locales

	Aggregate dialog: Fix locale dependent syntax generation

	Oneway dialog: Fix locale dependent syntax generation issues

	T-TEST dialogs: Fixe locale dependent issues

	Chi-Square Dialog: Fix locale dependent issues

	Count Dialog and Recode Dialog: Make syntax generation locale independent

	Binomial Dialog: Make syntax generation locale independent

	Frequencies Dialog: Make the syntax generator locale independent

2012-12-24  Ben Pfaff  <blp@cs.stanford.edu>

	PRINT: Support ENCODING subcommand.
	Bug #35825.

	placement-parser: New public function parse_column().
	This will acquire a new user in an upcoming commit.

	placement-parser: Don't allow "/" as a FORTRAN input format.
	DATA LIST allows / to appear inside FORTRAN format specifications but PRINT
	does not, so disallow it here.

	u8-line: Add new u8_line_set_length() function.
	The other functions in the u8-line library come directly from the ASCII
	output driver.  This function is new, so I broke it into this separate
	commit to emphasize that.

	u8-line: Factor out new library for composing lines of text in UTF-8.
	This code from the ASCII driver will also be useful for the PRINT command
	in an upcoming commit.

	AUTORECODE: Fix incorrect #include.

2012-12-24  John Darrington  <john@darrington.wattle.id.au>

	Replace dtoastr with c_dtoastr where appropriate

	New wrapper function c_dtoastr.
	This function wraps dtoastr (from gnulib) replacing the first occurance of
	, by .   Thanks to Ben Pfaff for this suggested implementation.

2012-12-23  John Darrington  <john@darrington.wattle.id.au>

	Factor dialog: use locale independent syntax generator

	Autorecode: use locale independent printf function

	Logistic Regression GUI: make locale independent.
	The syntax generator for the logistic regression dialog generated commas instead of dots
	under some locales.  This change fixes that.

	syntax-gen.c (syntax_gen_pspp_valist): Add new %g directive

	psppire-var-view.c: New function psppire_var_view_append_names_str

	str.c: New functions ds_put_c_vformat and ds_put_c_format
	Added a new printf-like functions which are locale independent.
	Added this new function, and changed syntax_gen_pspp_valist to use it.
	Rationale: syntax generation should never be locale dependent.

2012-12-22  Ben Pfaff  <blp@cs.stanford.edu>

	glade: Add #include <config.h>.
	I have found that this is necessary with the latest update to Gnulib to
	make the glade code compile without errors.

2012-12-22  Ben Pfaff  <blp@cs.stanford.edu>

	UPDATE: Do not update from missing values in transaction files.
	The documentation said that missing and all-spaces values in transaction
	files did not update the master file, but the implementation was wrong.

	Reported by Kees Varekamp <kees@mroffice.org>.

2012-12-22  Ben Pfaff  <blp@cs.stanford.edu>

	combine-files: Break apart apply_file_case_and_advance().
	An upcoming patch will sometimes need to do something different from
	apply_case() before advancing.

	value: New function value_is_spaces().

2012-12-19  John Darrington  <john@darrington.wattle.id.au>

	Update Gnulib hash

	PsppireOutputWindow (create_xr_print_driver) fix LC_NUMERIC issues.
	This function used *printf with a %f directive, which  under certain
	locales would have generated a string like "270,00x210,00mm" which the
	print driver would have rejected.
	This change uses the newly available c_xasprintf function from gnulib
	to alleviate this problem.

	Replaced sprintf with c_snprintf where appropriate

2012-12-18  John Darrington  <john@darrington.wattle.id.au>

	Updated the German translation from http://translationproject.org

2012-12-03  John Darrington  <john@darrington.wattle.id.au>

	Replaced strtod with c_strtod where appropriate
	Should LC_NUMERIC ever get set, this will become important.

2012-12-01  Ben Pfaff  <blp@cs.stanford.edu>

	Merge 'master' into 'psppsheet'.

2012-12-01  John Darrington  <john@darrington.wattle.id.au>

	Converted crosstabs-dialog to the new way of doing things

2012-11-30  John Darrington  <john@darrington.wattle.id.au>

	measure.c: Use c_strtod instead of strtod
	Since the input to these function come from hard coded strings, it is not appropriate
	to interpret them in a locale dependent manner.

	data-out.c: Added assertion to avoid out of bounds memory access
	This could (has!) happened if the locale is not correctly set

2012-11-26  Ben Pfaff  <blp@cs.stanford.edu>

	SHOW: Add JOURNAL subcommand.
	Bug #35665.
	Requested by Harry Thijssen.

	histogram: Add missing #include.
	Commit 02b9b37698eb "Disable asserts in histogram code except in
	--testing-mode" added a use of settings_get_testing_mode() but didn't
	include the proper header.  This fixes the problem.

2012-11-26  John Darrington  <john@darrington.wattle.id.au>

	Disable asserts in histogram code except in --testing-mode
	The assertions in histogram.c are algebraically correct,
	but due to floating point errors may not actually be true.
	This change disables them except when in testing mode.
	The tests in charts.at rely upon them being enabled.
	Closes bug #36395

2012-11-25  Ben Pfaff  <blp@cs.stanford.edu>

	DESCRIPTIVES: Make Z score calculation honor SPLIT FILE.
	Until now, DESCRIPTIVES has not supported SPLIT FILE in Z score
	calculations.  That is, Z scores have been calculated on the basis of a
	single group for the entire file, which doesn't make any sense.  This
	commit properly implements Z score calculation on a per-split group basis.

	Bug #16351.

2012-11-25  Ben Pfaff  <blp@cs.stanford.edu>

	tests: Add tests to cover corner cases in DATESUM, DATEDIFF.
	These corner cases weren't covered by previous tests.

	Bug #30708.
	Reported by Daniel E WILLIAMS <Daniel.E.Williams@state.or.us>.

2012-11-25  Ben Pfaff  <blp@cs.stanford.edu>

	Remove feature to automatically connect to GDB when debugging is enabled.
	This feature caused a few problems in "make check" on some distributions
	when debugging was enabled at compile time.  It is probably possible to
	find and fix those particular problems, but the feature itself is
	little-used, so this commit instead removes it.

	Bug #37444.
	Reported by Mindaugas.

2012-11-25  John Darrington  <john@darrington.wattle.id.au>

	file handle properties: Make encoding member const
	This member is never modified.  So declare it as const.  This way it
	can be initialised from a static string.

2012-11-24  John Darrington  <john@darrington.wattle.id.au>

	Aggregate Dialog: use global callback

	Runs Dialog: use global callback instead of a private one

2012-11-24  Ben Pfaff  <blp@cs.stanford.edu>

	psppire-data-window: Only allow saving a file with at least one variable.
	A data file with no variables can't be saved to a file.  Until now, this
	wasn't detected until the user had already chosen a file name, and the
	message used to report it was confusing: "SAVE is allowed only after the
	active file has been defined."  With this commit, the menu item and toolbar
	item for save operations is, instead, disabled if the file has no
	variables.

	Bug #30700.
	Reported by eric thivant, via Harry Thijssen, with help from Michel
	Boaventura.

2012-11-24  Ben Pfaff  <blp@cs.stanford.edu>

	DATA LIST: Accept freefield format types without widths use minimum width.
	A user reported that SPSS accepts syntax such as "DATA LIST FREE/
	d (DATETIME)." using a default width for the field with no specified width.
	This commit makes PSPP accept this syntax too, although it does not get
	the width exactly right (please let me know if you figure out how to do
	that).

	Bug #30690.
	Reported by Andreas Lappe.

2012-11-24  Ben Pfaff  <blp@cs.stanford.edu>

	format-parser: Improve error message when format specifier lacks width.
	Until now, parse_format_specifier() was willing to parse, e.g. "datetime"
	as a format specifier.  It would then be rejected later by e.g.
	fmt_check_input() with a message like "Input format DATETIME0.0 specifies
	width 0, but DATETIME requires a width between 17 and 40," which makes no
	sense to the user.  This commit improves the error message.

2012-11-24  Ben Pfaff  <blp@cs.stanford.edu>

	data-parser: Use data-file error types for data-file errors.
	The SW error type that these calls to msg() used before this command
	include the name of the executing command in the error message.  This can
	be confusing because the executing command may not have any connection to
	the command that said to read the data file.  This commit changes these
	error types to DW, which is intended for errors in a data file (and omits
	the command name).

	Bug #26517.

2012-11-24  Ben Pfaff  <blp@cs.stanford.edu>

	INPUT PROGRAM: Don't break out of INPUT PROGRAM on interactive error.
	Until now, any erroneous command typed within an input program at an
	interactive command prompt implicitly "broke out" of the input program,
	causing confusing behavior.  This commit fixes the problem: commands
	following an erroneous command within INPUT PROGRAM continue to be part of
	the input program.

	Bug #33419.
	Reported by John Darrington.

2012-11-24  Ben Pfaff  <blp@cs.stanford.edu>

	DATA LIST FREE: Warn when a quoted string is not followed by a delimiter.
	A field parsed by DATA LIST FREE (or LIST) is either quoted or unquoted.
	When it is quoted, this means that the entire field has to be quoted, that
	is, it is not possible to quote some initial part of the field, then leave
	some part of it unquoted (then possibly quote an additional part, etc.).
	That means that the quoted portion should be followed by a delimiter,
	such as white space, a comma, or end of line, but PSPP didn't warn when
	it was not.  This commit makes PSPP warn in this situation, which makes
	errors in the input easier to find.

	Bug #26522.
	Reported by Pascal Barbedor <pbarbedor@gmail.com>.

2012-11-24  Ben Pfaff  <blp@cs.stanford.edu>

	output: Make default output file name depend on the format.
	Before this commit, "-O html" caused HTML output to be written to a file
	named "-", which is confusing.  After this commit, it is written to a file
	named "pspp.html".  Similarly for other output drivers, except that text
	and CSV output are still written to stdout by default.

	Bug #35030.
	Reported by John Darrington.

2012-11-24  Ben Pfaff  <blp@cs.stanford.edu>

	CROSSTABS: Use FORMAT setting to control output format.
	Reported by Daniel Harper.

2012-11-24  John Darrington  <john@darrington.wattle.id.au>

	Frequencies dialog: Convert to new system

	Fixed bug in NPAR BINOMIAL
	This bug would crash when an incorrect syntax was encountered.

2012-11-23  John Darrington  <john@darrington.wattle.id.au>

	Binomial test dialog:  Convert to new style of action objects.

	Fix compiler warning

	Refactoring: common function set_sensitivity from toggle
	Many dialog boxes have a signal handler to set the sensitivity
	of a widget, according to the state of a toggle button.  Until
	now, they had all written their own.

	Merge remote branch 'origin/master' into psppsheet

	Logistic Regression: Ignore cases with missing dependent variables.
	Prior to this change, cases with missing values in the predictor
	variables were ignored, but cases with missing values only in the
	dependent variable would provoke an error.  Subsequent to this change
	such cases are also ignored.  This seems to be the behaviour of other
	software, despite what their documentation may suggest.

2012-11-22  John Darrington  <john@darrington.wattle.id.au>

	Logistic Regression: Added options dialog box

	Logistic Regression: Added a test to check the confidence interval display

	Logistic Regression: Fix bug where some confidence intervals were not reported.

2012-11-21  John Darrington  <john@darrington.wattle.id.au>

	Logistic Regression: Calculate the logs of the likelihood instead of the raw value.
	The likelihood values can become extremely large which can result in
	lost precision in a double.  This change therefore calculates the
	logarithms of the likelihoods instead of their actual value.

	Logistic Regression Dialog: Added missing shortcut target.

	Changed the labels of the Regression menu to keep them shorter.

2012-11-20  John Darrington  <john@darrington.wattle.id.au>

	Added rudimentary version of the Logistic Regression Dialog

	Analyze Menu: New submenu for Regression
	Move the Linear Regression menuitem into a new submenu Regression.
	This is in preparation for a new menuitem for Logistic Regression

	Fix (again) problems displaying a GtkSourceView widget on Cygwin
	Under certain compiler options, the effect of the gtk_*get_type
	function call was optimised away.  This change fixes that.  It
	seems that both static and volatile are necessary, in order to
	avoid the compiler from complaining and/or optimising the call
	away.

	Logistic Regression: Optimise the classification calculations.
	Instead of calculating the logit of the prediction for each case,
	pre-calculate the inverse logit of the threshold before the process
	starts.  This should give a small performance gain..

2012-11-19  John Darrington  <john@darrington.wattle.id.au>

	Fixed Texinfo problems which arise under Texinfo 4.13.90

	Logistic Regression: Added the Classification Table
	Added a table to logistic regression to show how the predicted values
	would be classified by the calculated coefficients.

	logistic.c: minor refactoring

	Fix possible memory corruption when creating dialogs with selectors.
	The PsppireSelector widget's class structure contains a map of selectors
	indexed by the source widget with which they are associated.  Until now, that
	map was never depopulated.   This could have caused problems if newly created
	widgets happened to use the same address as old, destroyed ones.  This change
	removes selectors from the map upon destruction.

2012-11-14  John Darrington  <john@darrington.wattle.id.au>

	Logistic Regression: Handle missing categoricals
	Ensure that missing values on categorical predictors are handled properly.

	Logistic Regression: Fix crash if categorical variable has no distinct values

2012-11-13  John Darrington  <john@darrington.wattle.id.au>

	Remove empty _finalize function

	Find dialog: Don't crash when searching for a non-existant label.

	Small refactoring and cleanup of psppire-selector.c
	Made explicit variables from some expressions.  This provides
	the opportinutiy to test if they are valid.

	Remove _base_init and base_finalize functions from psppire-selector
	Gtk+ documentation recommends these are avoided in modern code.
	They differ only from class_init in the case where the class has subclasses,
	which PsppireSelector does not.

2012-11-12  Ben Pfaff  <blp@cs.stanford.edu>

	Merge 'master' into 'psppsheet'.

2012-11-11  John Darrington  <john@darrington.wattle.id.au>

	Logistic Regression: Added categorical variable support
	With this commit Logistic Regression now supports the /CATEGORICALS
	subcommand, allowing a dependent variable to be regressed against one
	or more categorical predictor variables.

2012-11-10  Ben Pfaff  <blp@cs.stanford.edu>

	pspp-sheet-view: Make Home and End go to left and right of sheet.
	Requested by rocko mazuki <rockorocko@gmail.com>.

	pspp-sheet-view: Enable Home and End in sheet.
	However, they go to the top and bottom.

	pspp-sheet-view: Refactor pspp_sheet_view_event().
	This form seems easier to extend to new key combinations that include
	Cnotrol or Shift or Alt.

2012-11-08  Ben Pfaff  <blp@cs.stanford.edu>

	gui: Rename psppire_data_sheet_show_variable().
	psppire_data_sheet_goto_variable() is a more accurate name for the revised
	behavior of this function.

2012-11-08  Ben Pfaff  <blp@cs.stanford.edu>

	psppire-data-sheet: Set cursor on row in psppire_data_sheet_show_variable().
	psppire_data_sheet_show_variable() only ensured that the variable in
	question was visible in the data sheet.  This commit makes it also put
	the cursor on the variable's column.  This affects the function's two
	callers: the Find Dialog now selects a cell instead of an entire row,
	and double-clicking a row number in the variable sheet now does likewise.

	This solves a problem reported by John Darrington, who reported that
	double-clicking on a row number in the variable sheet did not change
	the selected cell but only switched to the data sheet.

2012-11-08  Ben Pfaff  <blp@cs.stanford.edu>

	psppire-button-editable: Fix infinite recursion in button-release-event.
	"release" and "button-release-event" are different.  Before commit
	8f843c3a5e905c (Avoid deprecated function: gtk_button_released),
	psppire_button_editable_button_release() invoked the former.  That commit
	changed it to invoke the latter, which is the same signal that the
	function itself implements, hence causing infinite recursion.  This commit
	changes it to invoke the former.

	Without this commit, the following instructions reliably crash for me:

	1. Load a data file, click over to variables tab.
	2. Click on a ... button in the Type column.
	3. Click on Cancel button in Type dialog.
	4. Click on the same ... button as before.

	With this commit, those instructions don't crash (the Type dialog pops
	back up after step 4, as it should).

	Reported by John Darrington.

2012-11-08  John Darrington  <john@darrington.wattle.id.au>

	Categoricals.c: Ensure that categories are processed order of their categorical variable(s).
	Some procedures require that categoricals are processed in a particular order.
	Mathematically, the order is irrelevant, however for reporting purposes it is
	sometimes required.  This change adds a level of indirection, so that the codes
	are allocated in ascending order of the categorical variable.

2012-11-06  John Darrington  <john@darrington.wattle.id.au>

	Categoricals: Provide separate functions for effects and dummy coding.
	Until now, the function categoricals_get_code_for_case returned the
	"effects" coding (ie, a bipolar code).  Some uses require "dummy" coding
	(a binary coding).  This change provides seperate functions to return
	whatever is desired.

	Conflicts:

		src/language/stats/logistic.c

2012-11-04  John Darrington  <john@darrington.wattle.id.au>

	Fixed some compiler warnings, which arose from recent commits.

2012-11-03  John Darrington  <john@darrington.wattle.id.au>

	Added mnemonics to rank types dialog

2012-11-02  John Darrington  <john@darrington.wattle.id.au>

	Added markup to GUI elements where necessary

	Fix bug in parse_design_interaction.
	Previously this function would crash if it failed to succesfully parse
	an interaction. This change fixes that.

	Categoricals: Accept null pointer as subject.
	Previously, certain functions would crash, or behave badly if their
	argument was NULL.  This change makes them do nothing, or return
	default values, as appropriate.  This saves callers having to always
	test for NULL.

	cateoricals.c categoricals.h clean up.
	Removed a prototype whose implementation no longer exists.
	Added a few comments.
	Whitespace changes.

2012-11-01  John Darrington  <john@darrington.wattle.id.au>

	Added mnemonic to t-test options dialog

	Added Mnemonics to the value chooser widget and to the recode dialog.

2012-10-31  John Darrington  <john@darrington.wattle.id.au>

	Added markup to the spilt-file dialog

2012-10-30  John Darrington  <john@darrington.wattle.id.au>

	Compute Dialog: Add mnemonics and focus widgets on activation.

2012-10-29  John Darrington  <john@darrington.wattle.id.au>

	logistic.c: Fix read from uninitialised memory.
	Found-by valgrind.

2012-10-28  Ben Pfaff  <blp@cs.stanford.edu>

	pspp-sheet-view: Fix warning using arrow keys to navigate column buttons.
	Before this commit, clicking on a column head button in the data sheet,
	then holding down the right arrow key until the data sheet began to scroll
	right would often produce a warning of the form:

	** (psppire:16451): WARNING **: Internal button not found

	because nothing caused the underlying GtkButton to be instantiated in this
	scenario.  This commit fixes the problem.

2012-10-28  Ben Pfaff  <blp@cs.stanford.edu>

	Merge 'master' into 'psppsheet'.

2012-10-28  Ben Pfaff  <blp@cs.stanford.edu>

	pspp-sheet-view: Make Shift+Tab select only one cell when switching rows.
	Before this commit, Shift+Tab at the start of a row in the data sheet would
	select both the new cell and the cell below it.  After this commit, only
	the new cell is selected, as one would expect.

	Reported by John Darrington.

2012-10-28  John Darrington  <john@darrington.wattle.id.au>

	Move function parse_design_interaction into variable-parser.c
	This function is (or will be) used by several procedures, so
	make it public.

	glm.c: (lex_match_variable and parse_design_interaction) remove dependence on struct glm
	Made these functions independent of struct glm, so that they can potentially be reused
	for other procedures.

2012-10-27  John Darrington  <john@darrington.wattle.id.au>

	Anova Dialog: Fix widget associations

2012-10-26  John Darrington  <john@darrington.wattle.id.au>

	logistic.c  : Avoid compiler warnings

	GUI: Added Mnemonic keys to Examine dialog

2012-10-24  Ben Pfaff  <blp@cs.stanford.edu>

	gui: Make Tab, Shift+Tab skip row head and new-var columns in data sheet.
	Before this commit, Tab and Shift+Tab acted just like Left and Right in
	the data sheet, that is, they visit every column except the row head
	column and always stay on the same row.  After this commit, Tab and
	Shift+Tab skip the row head and new-variable columns.  Also, Tab at the
	end of a row goes to the beginning of the next row, and Shift+Tab at the
	beginning of a row goes to the end of the previous row.

	Suggested by John Darrington.

2012-10-24  John Darrington  <john@darrington.wattle.id.au>

	First attempt at a LOGISTIC REGRESSION command

2012-10-18  John Darrington  <john@darrington.wattle.id.au>

	Updated my entry in AUTHORS

2012-10-14  Ben Pfaff  <blp@cs.stanford.edu>

	psppire-data-sheet: Implement Edit|Paste.
	This missing feature was reported by John Darrington.

2012-10-14  Ben Pfaff  <blp@cs.stanford.edu>

	psppire-data-sheet: Implement Edit|Cut.
	I overlooked this earlier.

	Reported by John Darrington.

2012-10-14  Ben Pfaff  <blp@cs.stanford.edu>

	psppire-var-sheet: Make clicking on Variables column select all data.
	This does what users expect in the variable sheet.

	Reported by John Darrington.

2012-10-14  Ben Pfaff  <blp@cs.stanford.edu>

	psppire-data-sheet: Make clicking on Cases column select all data.
	This does what users expect in the data sheet.

	Reported by John Darrington.

2012-10-14  Ben Pfaff  <blp@cs.stanford.edu>

	pspp-sheet-view-column: Make clicking on a row head column select all data.
	This is what users typically expect: clicking on the upper-left of a
	spreadsheet selects all of the cells in the spreadsheet.

	psppire-data-sheet: Use specific functions instead of g_object_set().
	Using particular functions seems less error-prone, since it avoids the
	possibility of misspelling a property name or getting their values' types
	wrong.

2012-10-14  Ben Pfaff  <blp@cs.stanford.edu>

	pspp-sheet-view-column: Be consistent about use of !! for booleans.
	When "x = !!x;" is used, there's no need to use "x?TRUE:FALSE" later,
	since one knows that the value is already 0 or 1, but some code did this
	anyway.

	This is a cleanup only that should not change behavior.

2012-10-13  John Darrington  <john@darrington.wattle.id.au>

	doc/introduction.texi: Update documentations introductory section

	doc/automake.mk: Added a convenience rule for building all the documentation formats

	doc/automake.mk: Replace lines inadvertently removed by previous commit

	doc/automake.mk: Added further mutations to docbook xml to workaround makeinfo bugs

	doc/automake.mk: New mutations to generated docbook xml to workaround makeinfo bugs

2012-10-08  John Darrington  <john@darrington.wattle.id.au>

	Fix bug where, after double-clicking to switch sheet view, a spurious release event was processed.
	From http://developer.gnome.org/gdk/2.24/gdk-Event-Structures.html#GdkEventButton

	  Double and triple-clicks result in a sequence of events being received. For
	  double-clicks the order of events will be:

	   1.  GDK_BUTTON_PRESS
	   2.  GDK_BUTTON_RELEASE
	   3.  GDK_BUTTON_PRESS
	   4.  GDK_2BUTTON_PRESS
	   5.  GDK_BUTTON_RELEASE

	So what was happening was this:  When the var-name was double-clicked, the view switched
	from VarView to DataView as soon as  event 4 (GDK_2BUTTON_PRESS) occured.  Then event 5
	(GDK_BUTTON_RELEASE) occured.

	Now the PsppSheetView object is written such that, it decides to edit a cell, on button
	release event. Hence, whichever cell the pointer happended to be in, when the user lifts
	his finger after double clicking, starts to be edited.

	This change ignores button release events on the object unless a corresponding button press
	event was seen.

2012-10-08  Ben Pfaff  <blp@cs.stanford.edu>

	psppire-data-editor: Keep value labels setting across Windows|Split.
	Before this commit, Windows|Split always turned off displaying value
	labels in data sheet cells.  This commit causes this setting to be
	preserved across Windows|Split.

2012-10-08  John Darrington  <john@darrington.wattle.id.au>

	Avoid deprecated function: gtk_button_released

2012-10-04  Ben Pfaff  <blp@cs.stanford.edu>

	configure.ac: Increase pango minimum version from 1.20 to 1.22
	Commit bd4d6e7453 (cairo: Avoid deprecated
	pango_cairo_font_map_create_context().) added a dependency on pango
	version 1.22 or later, but configure.ac only checked for version 1.20
	or later.  This commit fixes the discrepancy.

	INSTALL already documented that Pango 1.22 or later was needed.

	Reported by John Darrington.

2012-09-30  Ben Pfaff  <blp@cs.stanford.edu>

	tests: Better isolate search text in test of error reporting.
	Some GNU/Linux distributions print additional text on a segfault,
	e.g. "Cannot exec debugger: No such file or directory", which this
	test was seeing in output and interpreting as a failed test.  This
	commit fixes the problem by ignoring text up to the ***** line that
	marks the start of the expected output.

	Bug #37444.
	Reported by Mindaugus.

2012-09-30  Ben Pfaff  <blp@cs.stanford.edu>

	Remove variable assigned to but never used.
	Found by GCC 4.7.

	Merge 'master' into 'psppsheet'.

2012-09-25  Ben Pfaff  <blp@cs.stanford.edu>

	Suppress GCC 4.7 warnings by changes to code that make it less clear.
	I'm not entirely happy with these changes, because they make the code
	slightly less obvious.  However, it's still not really bad code, and
	it's convenient to have a warning-free build.

	Suppress GCC 4.7 warnings due to unimplemented features.
	GCC 4.7 complains that the variables removed by this commit are
	assigned values that are not used.  Fair enough, so this commit
	removes them.

2012-09-25  Ben Pfaff  <blp@cs.stanford.edu>

	gnumeric-reader: Add cast to suppress warning.
	This suppresses a GCC warning for a mismatch between
	xmlInputCloseCallback, which takes a "void *" parameter, and
	gzclose(), which takes a "gzFile" (which is "struct gzFile_s *").

	This came up with an upgrade from "squeeze" to "wheezy".  I assume
	that a gzclose prototype became visible or that gzFile changed away
	from "void *".

	An alternative would be to write a trampoline to just transform one
	pointer type to the other, but the xmlReaderForIO() invocation
	already has one function cast so a second cast doesn't make it much
	worse.

2012-09-25  Ben Pfaff  <blp@cs.stanford.edu>

	split-file-dialog: Add use of unused variable in split_file_dialog().
	'selector' was assigned but never used, but here's a use.

	Reported by GCC 4.7.

2012-09-25  Ben Pfaff  <blp@cs.stanford.edu>

	Suppress warnings for suspicious use of "enum" constants.
	In each case, the code is using values of enums in valid ways that
	GCC 4.7 does not expect, so use a cast to suppress the warnings.

	gui: Check return value of gtk_tree_model_get_iter().
	In these two cases the return value was assigned to a variable but
	never used.  This commit adds a check for the return value.

	cairo: Avoid deprecated pango_cairo_font_map_create_context().
	Pango 1.30 that is in Debian "wheezy" has marked this function as
	deprecated.  The replacement pango_font_map_create_context() was
	introduced in Pango 1.22, which was also in Debian "squeeze" (which
	had Pango 1.28), so it seems safe to switch without worrying about
	a Pango version check.

	Remove unused "finalize" functions.
	A finalize function that just calls into the parent class finalize
	function is a no-op that need not exist.

2012-09-25  Ben Pfaff  <blp@cs.stanford.edu>

	Remove variables assigned to but never used.
	Each of the variables removed here was assigned a value that was
	never used, the assignment didn't have any useful side effects, and
	I don't see anything that the variable should have been used for.

	Found by GCC 4.7.

2012-09-25  Ben Pfaff  <blp@cs.stanford.edu>

	EXAMINE: Avoid useless call to casereader_count_cases().
	The return value is never used, and this call could have significant
	expense (it could cause the data to be read an extra time), so do not
	do it.

	Reported by GCC 4.7.

2012-09-25  Ben Pfaff  <blp@cs.stanford.edu>

	CROSSTABS: Fix bug in check for REPORT in general mode.
	Found by GCC 4.7.

2012-09-25  Ben Pfaff  <blp@cs.stanford.edu>

	expressions: Fix coercion of numbers to booleans at top level.
	The check for the expected type in type_check() used the wrong
	constant (a node type instead of an expression type) and so the
	"if" test was never true.  Also, OP_NUM_TO_BOOLEAN is binary, not
	unary, so fixing just the test caused an assertion failure.

	This commit fixes both problems and adds a test.

	Found by GCC 4.7 report of a type mismatch.

2012-09-20  John Darrington  <john@darrington.wattle.id.au>

	gtk.h wrapper: Added *_set_realized and set_mapped
	We are using these functions, but they are not defined for older gtk versions.

	src/data/data-out.c: Added assertion to catch negative values
	If the contents of string does not contain a '.', then integer_digits
	will end up negative, thus causing a crash later.  This change adds
	an assertion to catch this condition and thus make the diagnosis easier
	should it ever occur.

2012-09-12  John Darrington  <john@darrington.wattle.id.au>

	Added keybindings to move to the extremities of the sheet.
	Altered the Home key to move far left instead of up.
	Added Ctrl Left/Right/Up/Down to move to the far edges of the
	sheet.

	This behaviour is consistent with other software.

2012-09-12  John Darrington  <john@darrington.wattle.id.au>

	Perl Module: Avoid forcing scalar value into a pointer.
	The code fragment:  struct dictionary *dict = (void *) SvIV (dict_sv);
	is dangerous.  This fix uses the properl Perl XS mechanism to get
	the pointer and the scalar associated with the dictionary.

	Reviewed-By: Ben Pfaff

2012-09-02  Ben Pfaff  <blp@cs.stanford.edu>

	psppire-cell-renderer: Fix behavior of repeated clicks on a button.
	I'm not sure why I thought this code was necessary.  Removing it
	fixes the problem, which John Darrington reported as:

	1. Create or load a dataset with one or more variables.
	2. Switch to the variable sheet.
	3. Click on one of the in-cell buttons (for example) Value Labels.
	4. After the dialog box appears, cancel it with the cancel button.
	5. The dialog closes, and the button which invoked it, now has the
	focus.  However clicking on that button again refuses to bring the
	dialog back.  One has to move off the button and onto the cell
	background.

2012-09-02  Ben Pfaff  <blp@cs.stanford.edu>

	psppire-var-sheet: Allow adjusting width of string variables.
	John Darrington pointed out that the "width" column in the variable
	sheet didn't allow the width to be modified with a spin button for
	string variables, as it did for numeric variables.  This commit
	fixes the problem.

	The reordering in on_var_column_edited() is necessary because the
	print format of a string variable can't be changed to a different
	width before changing the variable's width.  (The change from
	var_set_print_format() to var_set_both_formats() is not
	necessary.  It is for consistency with changing variable type and
	format via the var-type-dialog.)

2012-08-25  John Darrington  <john@darrington.wattle.id.au>

	var-type-dialog: Adjust packing parameters

	Merge branch 'master' into psppsheet

	Update widgets.c from psppsheet branch

2012-08-21  John Darrington  <john@darrington.wattle.id.au>

	Fix memory leak in sys-file-reader.c

2012-08-20  John Darrington  <john@darrington.wattle.id.au>

	ref count the linreg structure so as to avoid double free problems

2012-08-20  Ben Pfaff  <blp@cs.stanford.edu>

	sys-file-reader: Fix setjmp() technicality.
	The C standards say that the compiler is allowed to optimize away
	changes to local variables within a function between a call to
	setjmp() and a later call to longjmp(), unless the local variables
	are volatile-qualified.

	The 'info' local variable in sfm_open_reader() fits this
	description but wasn't volatile-qualified.  This commit fixes that,
	even though my compiler didn't in fact seem to have a problem with
	the previous version.

2012-08-19  Ben Pfaff  <blp@cs.stanford.edu>

	sys-file-reader: Fix memory leak.
	The C standards say that the compiler is allowed to optimize away
	changes to local variables within a function between a call to
	setjmp() and a later call to longjmp(), unless the local variables
	are volatile-qualified.

	The 'dict' local variable in sfm_open_reader() fits this
	description but wasn't volatile-qualified.  GCC in fact optimized
	out the changes on my system, and this commit fixes that.

2012-08-19  Ben Pfaff  <blp@cs.stanford.edu>

	widgets: Insert (void) cast in call, to suppress GCC warning.
	Otherwise GCC tells me that the call has no effect.

	widgets: #include missing header file.
	It didn't build for me otherwise.

	psppire-cell-renderer-button: Avoid use-after-free with popup dialog.
	When gtk_button_clicked() on a PsppireCellRendererButton causes a
	modal dialog to pop up, psppire_cell_renderer_button_initial_click()
	only returns from gtk_button_clicked() after the button has already
	been destroyed, which causes the g_object_steal_data() call to
	remove the IDLE_ID_STRING to access freed memory.  This commit fixes
	the problem by calling g_object_steal_data() before
	gtk_button_clicked().

	Merge 'master' into 'psppsheet'.

	missing-val-dialog: Convert to a GObject.

2012-08-19  Ben Pfaff  <blp@cs.stanford.edu>

	missing-val-dialog: Avoid destroying uninitialized data.
	If text_to_value() fails for low_val, then this code would still
	destroy high_val, even though high_val hadn't been initialized,
	thus accessing indeterminate data.

	This also eliminates some redundancy in the code.

2012-08-19  Ben Pfaff  <blp@cs.stanford.edu>

	gui: Rename var-sheet-dialogs.ui to missing-val-dialog.ui.
	The msising value dialog is the only dialog left in this UI file.

2012-08-19  Ben Pfaff  <blp@cs.stanford.edu>

	psppire-dialog: Add "acceptable" predicate.
	PsppireDialog already has a validity predicate that allows a dialog
	to easily disable "OK" and other buttons when the dialog has not
	yet been completely filled.  It should usually be obvious to the
	user why this is the case.

	The upcoming GObjectification of the missing value dialog calls for
	a different kind of predicate, one where the reason is not obvious
	to the user (typically because he has just made a typo or does not
	understand a variable's format).  In this case, the user needs more
	feedback, such as a message explaining the problem.

	This commit therefore introduces a second kind of predicate, the
	"accept" predicate.  This predicate is only checked when the user
	clicks on the "OK" button.

2012-08-19  Ben Pfaff  <blp@cs.stanford.edu>

	val-labs-dialog, var-type-dialog: Make these dialogs modal.
	I missed this in the initial conversion.

	val-labs-dialog: Remove unused 'window' member.

2012-08-18  Ben Pfaff  <blp@cs.stanford.edu>

	psppire-var-sheet: Remove unneeded #include from header.

	val-labs-dialog: Convert to a GObject.

	gui: Factor new text_to_value__() function out of text_to_value().
	I intend to use this in an upcoming commit.

	var-type-dialog: Fix memory leak.

2012-08-14  John Darrington  <john@darrington.wattle.id.au>

	Fixed memory leak in FACTOR

	Fix leaks in REGRESSION

	Fixed the remaining leaks in AUTORECODE

2012-08-13  John Darrington  <john@darrington.wattle.id.au>

	Fix leaks in MEANS command

2012-08-12  John Darrington  <john@darrington.wattle.id.au>

	fix some of the leaks in the AUTORECODE command

	Fixed remaining leaks in ONEWAY

	Fix memory leaks in ONEWAY command

2012-08-11  Ben Pfaff  <blp@cs.stanford.edu>

	var-type-dialog: Convert to a GObject.
	The one issue I can't figure out is why this changes the look of
	the dialog box so that its height is the total height of all of
	the widgets in the "middlebox", rather than the maximum height
	actually needed.

2012-08-10  John Darrington  <john@darrington.wattle.id.au>

	src/math/categoricals.c: Remove inappropriate const qualifier

2012-08-08  Ben Pfaff  <blp@cs.stanford.edu>

	variable: Skip callback if new format is same as old format.
	Seems fairly worthwhile.

2012-08-05  John Darrington  <john@darrington.wattle.id.au>

	Fixed one of the leaks in MEANS

	Fix leaks in RELIABILITY command

2012-08-03  John Darrington  <john@darrington.wattle.id.au>

	Fixed leak in Chi-Squared test

	categoricals.c (struct payload): Rename destroy to calculate

	ONEWAY: call categoricals_done only once

	Make categoricals own its interactions

2012-08-02  John Darrington  <john@darrington.wattle.id.au>

	Fix leak in render-test

2012-08-01  John Darrington  <john@darrington.wattle.id.au>

	sys-file-reader.c: Fix leak in parse_mrsets

2012-07-31  Ben Pfaff  <blp@cs.stanford.edu>

	ods-reader: Fix ods_file_casereader_destroy() call in open function.
	zreader is a "struct zip_reader *" but ods_file_casereader_destroy()
	takes a "struct casereader *".  However ods_file_casereader_destroy()
	doesn't actually use that argument so we might as well pass NULL.

2012-07-31  John Darrington  <john@darrington.wattle.id.au>

	Fix leak in psppire-lex-reader.c

2012-07-30  Ben Pfaff  <blp@cs.stanford.edu>

	FACTOR: Fix warning about discarding const qualifier.

	var-type-dialog: Change entries to spin buttons, add validation.
	The GtkEntry boxes used for entering and displaying width and
	decimal places didn't do any validation that the width and decimal
	places were valid for the selected format type, so it was possible
	to enter values that couldn't actually be used.  This commit changes
	the GtkEntry boxes into GtkSpinButton widgets that, as a side
	effect, validate correct values through their attached
	GtkAdjustments.  This is not just safer but easier to use.

	var-type-dialog: Reduce redundancy further.
	set_format_from_treeview() and set_format_type_from_treeview() were
	mostly common code.

2012-07-30  Ben Pfaff  <blp@cs.stanford.edu>

	var-type-dialog: Reduce redundancy.
	var_type_dialog_set_state() and on_toggle_2() had considerable
	redundant code.  This reduces it by adding a new function
	on_active_button_change() that generalizes the two functions.  I
	also personally found the previous way of showing and hiding widgets
	to be hard to follow; I think that the bitmap approach used here
	is more straightforward.

	This also consolidates the two separate signal handlers for each
	button into one, and replaces the similar functions
	select_treeview_from_format() and select_treeview_from_format_type()
	by three functions find_format(), find_format_type(), and
	select_treeview_at_index() that total less code.

2012-07-30  Ben Pfaff  <blp@cs.stanford.edu>

	var-type-dialog: Properly adjust formats when switching buttons.
	The var-type-dialog based the default new format on the variable's
	existing format when a button was clicked, and attempted to adjust
	the width and decimals into valid range, but the adjustment wasn't
	always correct, so in some cases it could pick an invalid format.

	This commit uses fmt_fix_output() instead, which will always choose
	a valid output format.

2012-07-29  John Darrington  <john@darrington.wattle.id.au>

	Fixed a second ONEWAY leak

	Fix one of the leaks in ONEWAY

	Fix memory leak in Chisquare

	Fix memory leak in AGGREGATE command

	Fix memory leak in dictionary.c

	Fix leaks in ODS reader

2012-07-28  John Darrington  <john@darrington.wattle.id.au>

	Fixed a memory leak in sparse-xarray-test.c

	README.Git - Update the gnulib commit number to include memory leak fix

	Fixed some of the leaks in REGRESSION

	Fixed memory leaks in FACTOR

	Fix leak in u8-istream-test.c

	Fix typo in include-path.c which was causing memory leaks.

	Fix memory leak in encoding-guesser-test

	Fix memory leak in format-guesser-test.c

	Fix memory leak in datasheet-test.c

2012-07-27  John Darrington  <john@darrington.wattle.id.au>

	dict_clone: Fix memory leak.
	The encoding is already set in dict_create, so this assignment is
	redunant and leaks memory.

	Reviewed-by: Ben Pfaff.

2012-07-23  John Darrington  <john@darrington.wattle.id.au>

	datasehhet.c: Fix memory leak

2012-07-22  John Darrington  <john@darrington.wattle.id.au>

	scan-test.c: Fix memory leak

	Fixed memory leaks coming from file-handle-def.c

2012-07-17  Ben Pfaff  <blp@cs.stanford.edu>

	var-type-dialog: Use fmt_date_template() to reduce duplication.
	I believe that it should be possible to merge more code together
	later.

2012-07-17  Ben Pfaff  <blp@cs.stanford.edu>

	format: Make fmt_date_template() human-friendly, respect field width.
	The strings that fmt_date_template() returned were almost but not
	quite the kind of strings that humans expect to see.  For one, they
	always used "yy", even though the code uses 4-digit years ("yyyy")
	when the field width is sufficient.  Similarly, they never included
	seconds (i.e. omitted ":SS").  Finally, FMT_MOYR had an "X" where
	one would expect a space.

	This commit corrects all of the above issues.  Future commits will
	make more use of fmt_date_template().

2012-07-17  Ben Pfaff  <blp@cs.stanford.edu>

	var-type-dialog: Use G_TYPE_INT to store an int.
	It seems more straightforward to store an int by value than by
	pointer.

2012-07-17  Ben Pfaff  <blp@cs.stanford.edu>

	var-type-dialog: Fix possible memory leaks.
	gtk_tree_model_get_value() documentation says:

	    When done with value, g_value_unset() needs to be called to free
	    any allocated memory.

	but none of the users in this file did that.

2012-07-17  Ben Pfaff  <blp@cs.stanford.edu>

	var-type-dialog: Avoid string copy setting up currency treeview.
	The return value of fmt_name() is perfectly suitable here.

2012-07-16  John Darrington  <john@darrington.wattle.id.au>

	Fixed leak in aggregate dialog

	PsppireWindow and PsppireDialog: Use correct the parent structures.
	This change makes the structure declarations agree with the class definition.

	Workaround runtime problem in cygwin

2012-07-15  John Darrington  <john@darrington.wattle.id.au>

	GET DATA: Fix memory leak

	Fix memory leak in odt driver

	Fix some of the memory leaks in MEANS

	DO REPEAT: Fix memory leak

2012-07-14  Ben Pfaff  <blp@cs.stanford.edu>

	text-data-import-dialog: Convert input lines to UTF-8 upon read.
	Otherwise we can try to display, e.g., ISO 8859-1 with Pango, which
	only supports UTF-8, and we get a Gtk-CRITICAL as a result.

	Reported by "Alain-F. Nizard" <Alain.Nizard@ac-creteil.fr>
	via Jeremy Lavergne <jeremy@lavergne.gotdns.org>.

2012-07-14  Ben Pfaff  <blp@cs.stanford.edu>

	u8-istream: Retry read upon EINTR.
	This seems unlikely to be a problem, since we're normally dealing
	with regular files, for which reads are uninterruptible, but it
	can't hurt.

2012-07-14  John Darrington  <john@darrington.wattle.id.au>

	Fixed bug where psppire crashed after selecting custom currency type.
	Reviewed-by: Ben Pfaff

	Data file reader: Avoid crash after failing to open file

	cairo.c (apply_options): Fix potential memory leak
	This function may be called more than once.  So we need to deallocte the old values before
	creating new ones

2012-07-13  John Darrington  <john@darrington.wattle.id.au>

	Plug some memory leaks

	README: Remove sentance about being first release with a GUI
	This is no longer true.

	psppire-button-editable.c: Move dispose to finalize
	This function is releasing memory, so is inappropriate for dispose

	psppire-button-editable.c: Added stub for "editing-canceled" property
	We don't use this, but it avoids a GtkCritical saying that we haven't
	implemented it.

2012-07-12  Ben Pfaff  <blp@cs.stanford.edu>

	var-type-dialog: Move UI into separate .ui file.
	Putting the UI for a .c file into its own .ui file seems like a good
	practice.  It leads to fewer merge conflicts, for example.

	var-type-dialog: Avoid static variables.
	I guess these static variables were OK when there was only one
	datasheet and therefore only one dialog, but now there can be more
	than one of each.

2012-07-10  Ben Pfaff  <blp@cs.stanford.edu>

	psppire-var-sheet: Refresh var sheet when variables change.
	Otherwise changes made through popup dialogs in the variable sheet
	don't necessarily show until the mouse moves across the row that
	changed.

	Reported by John Darrington.

2012-07-10  Ben Pfaff  <blp@cs.stanford.edu>

	Merge "master" into "psppsheet" to obtain bug fixes from "master".

2012-07-10  John Darrington  <john@darrington.wattle.id.au>

	PsppireVarStore: Fix memory leak

	PsppireDataEditor: No longer keep a reference to the data window.

2012-07-09  Ben Pfaff  <blp@cs.stanford.edu>

	psppire-window-base: Avoid memory leak in get_window_id().
	g_object_get() returns a string copy, so the caller has to free it,
	but gtk_widget_get_name() gets the same string without a copy.

	Found by valgrind.

2012-07-09  Ben Pfaff  <blp@cs.stanford.edu>

	psppire-data-window: Destroy dataset from finalize.
	One rule of thumb for "destroy" is that it should just unref
	GObjects.  This commit fixes that up for
	psppire_data_window_dispose().  Previously, this could not be done
	because of a reference leak in psppire_data_window_finish_init()
	that caused doing the dataset destroy in finalize to crash, but
	that problem was fixed in the previous commit.

	psppire-data-window: Avoid reference leak to PsppireDict.
	psppire_var_store_new() takes its own reference to PsppireDict so
	the original reference owned by psppire_data_window_finish_init()
	wasn't getting tracked anywhere.

2012-07-09  John Darrington  <john@darrington.wattle.id.au>

	Fixed memory leak in cairo driver.

2012-07-08  Ben Pfaff  <blp@cs.stanford.edu>

	psppire-data-editor: Unref old data_window upon change.
	Otherwise there's a reference leak.

	Found by inspection; I haven't looked for clients that actually
	change the data window after setting it.

2012-07-08  Ben Pfaff  <blp@cs.stanford.edu>

	psppire-data-window: Delete dataset when closing window.
	When the user closes the window it means that he wants to close the
	underlying dataset also.  Otherwise the dataset essentially leaks
	(in theory it's still there in the list of datasets but in practice
	that takes a DATASET ACTIVATE <name> WINDOW=FRONT command to show
	it).

	This also fixes a Gtk-CRITICAL and following crash in the following
	scenario brought up by John Darrington:
	1. Start psppire
	2. File | Open and load x.sav (dataset1)
	3. File | New | Data (a new data window will appear: dataset2)
	4. Using the window manager close the window for dataset1
	5. In dataset2:  File | Open and load x.sav

	I'm not 100% certain of the reason that this fixes it but I think
	that there's some lingering association between the dataset and the
	window that this change eliminates, by eliminating the dataset along
	with the window.

	The code added to psppire_data_window_dispose() in this commit
	should probably go in a "finalize" function instead but there seems
	to be a separate problem with references to PsppireVarSheet such
	that if this new code is in "finalize" then dataset_destroy() will
	call dict_clear() which will invoke the callbacks for PsppireDict
	which will try to access the destroyed window.  On the other hand,
	with this code in "dispose" the window isn't fully destroyed yet so
	while the same code path gets followed it isn't fatal.

2012-07-08  Ben Pfaff  <blp@cs.stanford.edu>

	psppire-var-store: Chain up to correct parent method from "dispose".
	I'm pretty sure that "dispose" should not chain up to "finalize".

	Merge "master" into "psppsheet" to obtain bug fixes from "master".

2012-07-08  Ben Pfaff  <blp@cs.stanford.edu>

	psppire-dict: Make PsppireDict not own its "struct dictionary".
	I see two places where PsppireDict are created.  The first is in
	psppire-data-window.c.  In this case, the PsppireDataWindow is
	borrowing a dictionary owned by a "struct dataset" for use in its
	PsppireDict.  When it destroys the PsppireDict, therefore, the
	dictionary must not be destroyed because the dataset still owns it.
	However, this is not what actually happens, and doing the
	following:

	1. Start psppire
	2. File | Open and load x.sav (dataset1)
	3. File | New | Data (a new data window will appear: dataset2)
	4. Using the window manager close the window for dataset1
	5. In dataset2:  File | Open and load x.sav

	or similar will cause a use-after-free error.

	The second use is in text-data-import-dialog.c.  This code does own
	the struct dictionary, but it can simply free it itself at the same
	time as the PsppireDict.

	There is still some underlying issue with the above scenario,
	because it still reports a GtkCritical, but valgrind no longer
	reports a use-after-free error.

	Reported by John Darrington.

2012-07-08  Ben Pfaff  <blp@cs.stanford.edu>

	gui: Fix Glib-GObject-WARNING when closing the active dataset.
	The DATASET CLOSE command, when it acts on the active dataset, just
	removes the active dataset's name, changing it to the empty string.
	(This is the documented behavior.)  However, the GUI relies on
	every dataset having a name, so this caused the following warning:

	GLib-GObject-WARNING **: value """" of type `gchararray' is invalid
	or out of range for property `id' of type `gchararray'

	This commit fixes the problem by giving any unnamed dataset a name
	after running syntax.

2012-07-08  John Darrington  <john@darrington.wattle.id.au>

	Fix compiler warnings

	PsppireDataEditor: Add comment emphasising lack of final unref of old_vbox_widget

	PsppSheetView unrealize: Call parent method before any other operation
	If this is not done, then gtk_widget_get_realized returns true, during
	the unrealize execution, leading to mutual recursion.

	Delete module customentry
	This is no longer used, so am removing it completely.

	PsppireDataWindow: Deal with ui_manager in dispose routine

	PsppSheetView resize handler:  Do nothing if the widget is not realized
	This seems to avoid the occasional GtkCritical that I get.

	Reduce the flicker when redrawing the toolbar and menubar.

	pspp-sheet-view.c: Separate destroy method into finalize and dispose.
	This still needs work to disentangle them completely, but I think this
	is an improvement.

	PsppireDataStore: Move datasheet_destroy from dispose to finalize
	This actually destroys stuff, not merely unreffing.  So it belongs in finalize.

	PsppireVarSheet: Keep reference to the return value of _get_ui_manager
	I changed the var_sheett to keep a reference to the uim object which it
	returns from the _get_ui_manager objects.  This avoids a problem where
	the object was getting its last reference unreffed by another object.

	PsppireVarSheet: Replace Destroy with Dispose
	Also, use a statically allocated array for signal handler ids, since
	it just complicates things to have a dynamically allocated one.

	PsppireCellRendererButton: Replace destroy with dispose
	The destroy method did nothing except drop references, so was
	appropriate for dispose.

	PsppireDataSheet: Reference handler improvements.
	Changed the destroy method to dispose, because all it does is drop
	references.  Also, keep a reference to the object returned by _get_ui_manager
	since this seems to be causing issues elsewhere.

2012-07-07  Ben Pfaff  <blp@cs.stanford.edu>

	psppire-data-editor: Avoid ' modifier with g_string_append_printf().
	On Windows, g_string_append_printf() does not understand the '
	modifier, so use ds_put_format() instead, which does.

	Reported by John Darrington.

2012-07-07  Ben Pfaff  <blp@cs.stanford.edu>

	po: Update Slovenian translation from translationproject.org.

2012-07-06  John Darrington  <john@darrington.wattle.id.au>

	Fixed crash in two sample npar tests with (paired)
	This change fixes a bug where an assertion would
	fire if a two sample npar test was given where
	a variable appeared twice in a variable list.

2012-07-05  John Darrington  <john@darrington.wattle.id.au>

	Documentation: correct punctuation and grammar

2012-07-03  John Darrington  <john@darrington.wattle.id.au>

	Use text_aa instead of solid black for sheet grid lines.
	Use the widget's text_aa graphics context instead of black_gc to give a softer
	appearance (and to ensure they are visible for themes which use black as their
	background).

2012-07-01  John Darrington  <john@darrington.wattle.id.au>

	New Slovenian localisation from  http://translationproject.org
	Updated po/sl.po from http://translationproject.org/latest/pspp/sl.po

2012-06-25  Ben Pfaff  <blp@cs.stanford.edu>

	psppire-var-store: Remove.
	PsppireVarStore used to provide a model to allow GtkSheet to display
	a dictionary.  Now, it is just a superfluous wrapper for
	PsppireDict, so this commit removes it in favor of using PsppireDict
	directly.

	goto-case-dialog: Avoid gtk critical for invalid case number.
	I noticed this when Go To Case was invoked with an empty data
	sheet, in which case the default case number is the invalid case
	number 0.

2012-06-25  Ben Pfaff  <blp@cs.stanford.edu>

	gui: Speed up initial file load with many columns
	This makes a huge difference in startup time when there are hundreds of
	columns, by setting up the data sheet before showing the window that
	contains it.

	Files opened from File|Open were already opened this way.  I was a little
	surprised that File|Open was so much faster than specifying a file on the
	command line until I figured out the difference.

2012-06-25  Ben Pfaff  <blp@cs.stanford.edu>

	gtk-contrib: Remove GtkSheet-derived PsppireSheet.
	This code is no longer used.

2012-06-25  Ben Pfaff  <blp@cs.stanford.edu>

	gui: Redo var sheet, data sheet, text import with PsppSheetView.
	This commit replaces the existing variable and data sheets in the
	GUI by new ones based on PsppSheetView.

	Thanks to John Darrington and Michel Boaventura for helpful testing,
	bug reports and suggestions.

2012-06-20  John Darrington  <john@darrington.wattle.id.au>

	Readme.Git: Update gnulib SHA to include fixes for windows tempfile issues

2012-06-19  Ben Pfaff  <blp@cs.stanford.edu>

	text-data-import-dialog: Allow user to choose input encoding.
	Otherwise only automatically detected encodings can be used.

	Debian bug #676371.
	Reported-by: Gunther Furtado <gunfurtado@gmail.com>

2012-06-19  Ben Pfaff  <blp@cs.stanford.edu>

	Add ENCODING subcommand to several commands.
	I believe that this completes support for encodings for data input
	commands such as DATA LIST and GET DATA/TYPE=TXT.  Support is still
	incomplete for data output commands such as PRINT, which confuse
	byte offsets with character positions.

	Debian bug #676371.
	Reported-by: Gunther Furtado <gunfurtado@gmail.com>

2012-06-18  Ben Pfaff  <blp@cs.stanford.edu>

	line-reader: New library for reading a file line-by-line.
	This library reads a file line-by-line in an arbitrary 8-bit or wider
	encoding, without requiring the file to be recoded.  This will be used
	in an upcoming commit.

	PRINT SPACE: Fix missing fh_unref() on error path.
	The first "return" in this function failed to unref the handle.

2012-06-15  John Darrington  <john@darrington.wattle.id.au>

	ext-array.c: Ensure that fseek is called before switching between read and write.
	ANSI C requires that a file positioning function (eg seek) occurs before a switch
	from reading to writing a stream (or vici-versa).  We had not been doing this.
	This had caused problems which manifested themselves on Windows operating systems,
	by mysteriously failing to write the stream (and thus truncating the datafile).
	This change corrects this.

	Thanks to Harry Thijssen and Henry Gong for their very valuable assistance tracking
	down the cause of this problem.

	Reviewed-by: Ben Pfaff

2012-06-07  John Darrington  <john@darrington.wattle.id.au>

	CORRELATIONS: Fixed bug displaying non-sqaure correlation matrices
	When CORRELATIONS was run using the WITH keyword, the wrong index
	was calculated for the columns/rows - hence the program crashed.
	This change fixes that.

	Reported-by: Ebel Magnin

2012-06-02  John Darrington  <john@darrington.wattle.id.au>

	Extract the independent samples gui from  t-test.ui into its own file.
	This will benefit upcoming commits, since other (non t-test) guis are
	very similar.

2012-05-20  John Darrington  <john@darrington.wattle.id.au>

	Regression Dialog: Convert to PsppireDialogAction object

2012-05-19  John Darrington  <john@darrington.wattle.id.au>

	T-TEST Independent Samples Dialog: Converted to a PsppireDialogAction object

2012-05-14  John Darrington  <john@darrington.wattle.id.au>

	Add SET TVARS option. Closes bug #31566

2012-05-10  John Darrington  <john@darrington.wattle.id.au>

	Minor documentation formatting changes

2012-05-09  John Darrington  <john@darrington.wattle.id.au>

	HISTOGRAMS: Fix bin width problems on large numbers of bins

	Histograms: Rotate labels when there are lots of bins

	Move comment to correct function

2012-05-08  Ben Pfaff  <blp@cs.stanford.edu>

	i18n: Set LC_COLLATE locale category based on system locale.
	LC_COLLATE controls the sort order of file names in GTK+ file
	chooser dialog boxes, so we should set this locale category so as
	to honor the user's preferences.

	In the standard C library, only a few functions honor LC_COLLATE:
	strcoll, wcscoll, strxfm, and wcsxfrm.  PSPP doesn't use any of
	these functions, so this commit should not affect PSPP's use of
	standard library functions.

	The libunistring manual only mentions collation rules in the entries
	for a few functions: u8_strcoll, u16_strcoll, u32_strcoll,
	u8_normcoll, u16_normcoll, u32_normcoll, u8_casecoll, u16_casecoll
	u32_casecoll.  PSPP doesn't use any of those functions either.

	Reported by "ajk-eis" <ajk-eis@rvhome.de>.

2012-05-06  Ben Pfaff  <blp@cs.stanford.edu>

	gui: Make lex_gtk_text_buffer_read() count bytes, not characters.
	The N parameter to lex_gtk_text_buffer_read() is a count of bytes,
	but the implementation treated it as characters.

	Also fixes a memory leak, since gtk_text_iter_get_text()'s caller
	is responsible for freeing the memory that it returns.

	Reported by Alle <ajk-eis@rvhome.de>.
	First investigated by John Darrington <john@darrington.wattle.id.au>.
	Reviewed by John Darrington <john@darrington.wattle.id.au>.

2012-05-06  Ben Pfaff  <blp@cs.stanford.edu>

	lexer: Check that 'read' function in lex_source returns valid value.
	A 'read' function may only read as many bytes as the size of the
	buffer passed into it, but the caller didn't check, which made an
	actual violation of this invariant hard to diagnose.

2012-05-05  John Darrington  <john@darrington.wattle.id.au>

	Frequencies.ui: Adjust widget packing properties.
	Reported-by: Mindaugas.

	frequencies.ui: Reformat using glade-3

2012-05-05  Ben Pfaff  <blp@cs.stanford.edu>

	configure.ac: Link PSPPIRE explicitly against gthread.
	Seems to be required on OpenSUSE.

	PSPPIRE does not make explicit use of threads, but it does use
	GTimer.  Thus, it calls g_thread_init() because of the following
	note in the documentation for GTimer:

	    GTimer uses a higher-quality clock when thread support is
	    available.  Therefore, calling g_thread_init() while timers
	    are running may lead to unreliable results.  It is best to
	    call g_thread_init() before starting any timers, if you are
	    using threads at all.

	Separately, the documentation for threads in Glib says:

	    Calling g_thread_init() with a NULL argument is somewhat more
	    relaxed.  You may call any other glib functions in the main
	    thread before g_thread_init() as long as g_thread_init() is
	    not called from a glib callback, or with any locks held.
	    However, many libraries above glib does not support late
	    initialization of threads, so doing this should be avoided if
	    possible.

	    Please note that since version 2.24 the GObject
	    initialization function g_type_init() initializes threads
	    (with a NULL argument), so most applications, including those
	    using Gtk+ will run with threads enabled.  If you want a
	    special thread implementation, make sure you call
	    g_thread_init() before g_type_init() is called.

	Taken together, it seems to imply that PSPPIRE should call
	g_thread_init() before g_timer_new(), or the timer might be
	unreliable because Glib would call it later for us.  But the
	documentation doesn't seem entirely clear.

	Reported by Mindaugas.
	Bug #36396.

2012-05-01  John Darrington  <john@darrington.wattle.id.au>

	MEANS: Use var_to_string instead of var_get_name for factor variable display

	Frequencies dialog: Add Mnemonics

2012-04-30  Ben Pfaff  <blp@cs.stanford.edu>

	range-tower-test: Fix test failures on 64-bit architectures.
	Reported by 'gandalfar' on #pspp.

2012-04-30  John Darrington  <john@darrington.wattle.id.au>

	Independent T-TEST Dialog: Use PsppireValueEntry in the group value definition sub-dialog

2012-04-28  John Darrington  <john@darrington.wattle.id.au>

	Converted Factor Dialog to PsppireDialogAction class

	Convert Rank Dialog to PsppireDialogAction

	Unref GtkBuilder objects when they are no longer required

	PsppireDialogAction: Destroy dialog after it has been run

	PsppireSelector: Don't try to set callbacks on null model

	Regression Dialog: Tidy up and comment.

	Correct erroneous g_object_unref calls
	commit e89158e8abd2dae27d985e3574eb5aa1d265fc66 placed g_object_unref calls after every instance
	of *_set_model - In most instances this was correct, but not all.  When (for example)
	gtk_tree_view_set_model (view, model) is called, it takes a ref to model, but it will then
	unref it upon the next call to _set_model and/or when view is destroyed.
	Unreffing the model ourself, is therefore appropriate only when we have created it ourselves.
	This change fixes the few instances where this was not the case.

2012-04-25  Ben Pfaff  <blp@cs.stanford.edu>

	po: Update Catalan translation from translation-project.org.

	po: Update Spanish translation from translation-project.org.

2012-04-24  Ben Pfaff  <blp@cs.stanford.edu>

	psppire-cell-renderer-button: Add "slash" property.
	When "slash" is set to true, the button gets a diagonal slash drawn
	across it.  This is ugly, but it matches what SPSS does for cases
	that are filtered out.

	psppire-cell-renderer-button: New cell renderer for GtkButton.
	This allows one to put a clickable GtkButton inside a PsppSheetView row.

	pspp-sheet-view: Add "fixed-height" and "fixed-height-set" properties.
	The data sheet will use this in the "split view" to make sure that
	side-by-side data sheets have the same row height.

	pspp-sheet-view: Make pspp_sheet_view_stop_editing() public.

	pspp-sheet-view: Improve look of sheet when there are few columns.
	GtkTreeView always expands one or more columns so that the visible
	columns fill up the entire width of the treeview.  This looks funny
	in a spreadsheet-like view.  This commit changes PsppSheetView so
	that, instead, extra space is left blanks instead of being filled
	up with columns.

	pspp-sheet-view: Optimize by making column header widgets lazy.
	This is a major speedup when there are hundreds of columns.

	pspp-widget-facade: New code to measure and render some GTK+ widgets.
	There are two upcoming uses for this in the tree, both related to
	rendering fake buttons.  First, creating, maintaining, and rendering
	the column header buttons in a PsppSheetView is a huge cost when
	there are hundreds or thousands of columns.  Using this facade code
	to "fake" buttons makes the sheet much faster.  Second, this code
	will be used to implement a cell renderer for GtkButton, so that
	buttons can be put into PsppSheetView rows.

2012-04-24  Ben Pfaff  <blp@cs.stanford.edu>

	pspp-sheet-view: Add "special-cells" property to speed drawing many columns.
	A "special cell" is a cell that is editable or activatable.  When a row
	that contains a special cell is selected, the cursor is drawn around a
	single cell; when other rows are selected, the cursor is drawn around the
	entire row.

	With the default of "detect" (the only mode previously supported), whether
	a given row contains a special cell is detected automatically.  This is the
	best choice most of the time.  For sheet views that contain more than 100
	columns, an explicit "yes" or "no" improves performance.

2012-04-24  Ben Pfaff  <blp@cs.stanford.edu>

	pspp-sheet-view: Start editing upon button release, not press.
	This makes the user interface more natural.

2012-04-24  Ben Pfaff  <blp@cs.stanford.edu>

	pspp-sheet-view: Support rectangular selection, column popup menus.
	A "rectangular selection" is where you can click and drag to select
	a rectangular group of columns and rows, like in a spreadsheet.

	In this commit, rectangular selections don't interact well with
	"quick-edit" mode where the first click on a cell starts editing,
	because clicking in a quick-edit cell starts editing instead of
	rectangular selection.  The following commit will fix the problem.

	This commit also adds a gtk_widget_queue_draw() call to
	pspp_sheet_view_update_rubber_band() that should really
	invalidate less sheet area.

2012-04-24  Ben Pfaff  <blp@cs.stanford.edu>

	pspp-sheet-view: Edit cells on the first click by default.
	With GtkTreeView it takes two clicks to edit a cell.  The first click
	selects the row and the second click starts editing.  This isn't a
	great user experience for a spreadsheet, so this commit enables
	single-click editing.

	pspp-sheet-view-column: Add support for tooltips on columns.

	pspp-sheet-view: Fix rendering moving cursor left or right with keyboard.
	I don't understand why this is not necessary for GtkTreeView.  Without it,
	the cursor doesn't get properly redrawn after a left or right arrow
	keystroke moves it.

2012-04-24  Ben Pfaff  <blp@cs.stanford.edu>

	pspp-sheet-view: Fix visual artifacts for sheet views > 65535 pixels wide.
	gdk_draw_line() draws lines by passing the coordinates to XDrawLine(),
	which in turn casts the coordinates to "signed int" as it formats them for
	the X Protocol.  Thus, large coordinate values wrap around and cause odd
	visual artifacts.

	This fixes the problem by only calling gdk_draw_line() with coordinate
	values that should actually be visible.

2012-04-24  Ben Pfaff  <blp@cs.stanford.edu>

	pspp-sheet-view: Improve scrolling performance.
	Drawing dashed lines is very slow, at least on my computer.  This commit
	changes them to solid, which makes scrolling in a large sheet feel much,
	much more responsive on my system.

2012-04-24  Ben Pfaff  <blp@cs.stanford.edu>

	pspp-sheet-view: Reduce time and memory cost to O(1) in number of rows.
	The standard GtkTreeView uses time and memory linear in the number of
	rows in the tree.  When the model is set, it iterates over every row
	and creates a corresponding GtkRbNode.  After that, GtkTreeView uses
	the GtkRbNodes for many operations on the tree.

	This commit adapts GtkTreeView to avoid the need to iterate over the
	entire model up front, as well as the need to maintain data for every
	row.  It makes the following major changes:

	  - The tree model must now be just a list (GTK_TREE_MODEL_LIST_ONLY);
	    that is, rows may not have children.

	  - The height of a row in the view must be fixed (as with
	    gtk_tree_view_set_fixed_height_mode()).  Column widths must also
	    be fixed.

	The following minor changes follow mainly as consequences of the above:

	  - Expander arrows, tree lines, and level indentation are no longer
	    supported, because these only make sense with rows that have
	    children.

	  - Separator rows are no longer supported.  (They are ugly in
	    fixed-height mode because they occupy an entire row.)

2012-04-24  Ben Pfaff  <blp@cs.stanford.edu>

	Import GtkTreeView from GTK+ 2.0-2.20.1 renamed as PsppSheetView.
	This includes minimal modifications to make it compile and link
	cleanly.

	I used the following Perl script to do the bulk of the renaming:

	for $pair (['tree_view_column', 'sheet_view_column'],
	           ['tree_selection', 'sheet_selection'],
	           ['tree_view', 'sheet_view'],
	           ['rbtree', 'rbtree'],
	           ['rbnode', 'rbnode']) {
	    my ($from, $to) = @$pair;

	    my ($tfrom) = join ('', map ("\u$_", split ('_', $from)));
	    my ($tto) = join ('', map ("\u$_", split ('_', $to)));

	    s/gtk_$from/pspp_$to/g;
	    s/\Ugtk_$from/\Upspp_$to/g;
	    s/GTK_TYPE_\U$from/PSPP_TYPE_\U$to/g;
	    s/GTK_IS_\U$from/PSPP_IS_\U$to/g;
	    s/Gtk$tfrom/Pspp$tto/g;
	}

	s/GtkTreeCellDataFunc/PsppSheetCellDataFunc/g;
	s/GtkTreeDestroyCountFunc/PsppSheetDestroyCountFunc/g;

2012-04-24  Ben Pfaff  <blp@cs.stanford.edu>

	PsppireValueEntry: Simplify 'if' condition.
	The statement
	  if ((model != NULL) && (model != old_model))
	can be simplifed to just:
	  if (model != NULL)
	because if 'model' is nonnull then it is different from old_model,
	because 'model' is a newly allocated GtkListStore.

	psppire-dialog-action: Remove unused variable.

	gui: Put <?xml> declaration at beginning of roc.ui.
	xgettext objected to the blank line at the beginning.

2012-04-24  Ben Pfaff  <blp@cs.stanford.edu>

	gui: Properly manage ref counts of combo box and tree view models.
	gtk_combo_box_set_model() and gtk_tree_view_set_model() add a
	reference to the passed-in model, instead of transferring a
	reference from the caller.  A lot of the calls to these functions,
	however, assumed that a reference was transferred and therefore
	leaked a reference.  This fixes them up.

	This doesn't change PsppireValueEntry, because there's an ongoing
	discussion about that.

2012-04-24  Ben Pfaff  <blp@cs.stanford.edu>

	psppire-acr: Clarify acr ownership of its list store.
	PsppireAcr retains a pointer to the GtkListStore inside it but it
	didn't, until now, keep a reference to it.  This commit makes
	PsppireAcr retain a reference, documents the interface, and updates
	callers to properly maintain reference counts.

2012-04-24  John Darrington  <john@darrington.wattle.id.au>

	ROC Dialog: Use PsppireValueEntry for the state value entry

	Add PsppireValueEntry to the list of pre-declared widgets

	PsppireValueEntry: Unref model after the combo box assumes it

	PsppireValueEntry: Remove unnecessary function calls

	val_labs_equal: Accept null pointers
	Instead of checking for NULL before calling val_labs_equal, put the onus
	on the function itself to deal with null pointers and behave appropriately.

	PsppireValueEntry: Clear the entry, when the underlying model changes.
	Since the labels will have changed, the existing text is most likely
	inappropriate.

	PsppireValueEntry: Remove GNU_CONST declaration because it prevents the type being found by GtkBuilder

2012-04-23  Ben Pfaff  <blp@cs.stanford.edu>

	crosstabs-dialog: Line up backslashes.

2012-04-21  Ben Pfaff  <blp@cs.stanford.edu>

	tests: Fix reference to old library libpspp.la.
	Reported by John Darrington.

2012-04-21  John Darrington  <john@darrington.wattle.id.au>

	Improve Independent Samples T-test dialog

	PsppireButtonBox: Remove Close from the default set of buttons

2012-04-20  Ben Pfaff  <blp@cs.stanford.edu>

	helper: Move escape_underscores() here.
	An upcoming commit will introduce a new user in a different file.

	gui: New widget PsppireValueEntry for editing a "union value".
	This is intended to be a convenenient way to allow the user to
	view and edit a "union value" that includes the ability to see
	and select values by value label.

	gui: New boxed type for struct fmt_spec.
	This makes it possible to use a struct fmt_spec as the value of a
	property on a GObject, which I plan to use in an upcoming widget
	PsppireValueEntry.

2012-04-20  Ben Pfaff  <blp@cs.stanford.edu>

	gui: New type PsppireEmptyListStore.
	PsppireEmptyListStore is an GtkTreeModel implementation that has a
	client-specified number of rows and zero columns.  It is a useful model for
	GtkTreeView or PsppSheetView when the client can easily synthesize cell
	data using a callback set with gtk_tree_view_column_set_cell_data_func().
	In that situation, GtkListStore can be wasteful (because it uses a lot of
	memory to store what does not need to be stored) and situation-specific
	custom models require additional boilerplate.

	This commit also modified the text data import dialog code to use
	PsppireEmptyListStore.  Future commits will add other users.

2012-04-20  Ben Pfaff  <blp@cs.stanford.edu>

	gui: Add undocumented --measure-startup option.
	This is useful for testing the effects of code changes upon the
	time required to start PSPPIRE.

2012-04-20  Ben Pfaff  <blp@cs.stanford.edu>

	New "range-tower" data structure.
	A range tower is a bitmap, implemented as an augmented binary tree.

	Beyond the usual features of a bitmap, a range tower can efficiently
	implement a "splice" operation that shifts ranges of bits left or right.
	This feature does cost memory and time, so use a range tower only if this
	feature is actually needed.  Otherwise, use a range set (see range-set.h),
	which can do everything that a range tower can do except the "splice"
	operation.

	Each operation has O(lg N) cost, where N is the number of contiguous
	regions of 1-bits in the bitmap.  Also, a cache reduces the second and
	subsequent containment tests within a single contiguous region to O(1).

2012-04-20  Ben Pfaff  <blp@cs.stanford.edu>

	range-set: New macro RANGE_SET_FOR_EACH to make iteration easier.

	range-set: Rename "insert" function "set1", "delete" to "set0".
	An upcoming commit will introduce a new "range-tower" data
	structure that can actually insert and delete ranges.  It
	makes sense not to use different terminology for the two data
	structures, so renaming these functions makes sense.

	abt: New function abt_is_empty().

	abt: Drop child parameters from 'reaugment' function.
	The function can simply inspect the 'down' members.

	value-labels: New function val_labs_find_value().
	The new data sheet implementation (in an upcoming commit) will use
	this.

	helper: New function value_to_text__().
	One potential caller of value_to_text() doesn't have a "struct
	variable" but does have the other needed information.

	format: Fix typo in comment.
	struct fmt_spec's 'd' member is not normally a number of "implied"
	decimal places.  It is normally the number of decimal places that
	will be presented in formatted values.  Thus, update the comment.

	format: Introduce a new type "enum fmt_use".
	This seems slightly nicer than using a "bool" to distinguish
	input and output formats.

	format: New functions fmt_change_width(), fmt_change_decimals().
	These will be used in an upcoming commit for GUI-based format
	adjustments, where we want to implement the user's request for
	width or decimal places to the extent that we can, while
	adjusting decimal places or width, respectively, as necessary.

	gui: Use canonical names for signals.
	Hyphens are canonical in parameter names, at least, and they seem
	to be used consistently in signal names within GNOME, so use them
	here too.

2012-04-19  John Darrington  <john@darrington.wattle.id.au>

	DO IF test:  Correct expected outcome
	Commit 27bd188495ec1a6085354b10545daba47771b517 added a test for an
	error condition in DO IF, but appears to contain some cut and paste
	errors.  This change corrects them.

	SHOW: New subcommand N
	This subcommand reports the number of cases in the active dataset.

2012-04-18  Ben Pfaff  <blp@cs.stanford.edu>

	Revert "psppire-dict: g_return_if_fail for idx in psppire_dict_get_variable()."
	This reverts commit edf4f6b1f7e2b9c17cc86f1c63ff9b4b7e24af26.
	John pointed out that it causes the GUI to crash at startup.

2012-04-17  Ben Pfaff  <blp@cs.stanford.edu>

	DO IF: Fix crash when END IF appears without DO IF.
	Reported by Jill Covert.
	Bug #36231.

	psppire-dict: g_return_if_fail for idx in psppire_dict_get_variable().
	Also, as long as we're checking for too-big we might as well check
	for too-small too.

2012-04-17  John Darrington  <john@darrington.wattle.id.au>

	Correct bugs in PsppireSelector which cause the Examine Dialog to crash

2012-04-16  Ben Pfaff  <blp@cs.stanford.edu>

	psppire-dict: Return new var from psppire_dict_insert_variable().
	An upcoming commit will introduce a user for the return value.

2012-04-16  Ben Pfaff  <blp@cs.stanford.edu>

	psppire-dict: Make auto_generate_var_name() public, and rename.
	This function will acquire a few users in upcoming commits.

	This commit renames it to have the same prefix as other public
	functions in this file.

2012-04-16  Ben Pfaff  <blp@cs.stanford.edu>

	psppire-dict: Get rid of static var in auto_generate_var_name().
	This isn't a big deal at the moment but I intend to add new users
	of this function in future commits, so then it becomes more
	important.

2012-04-16  Ben Pfaff  <blp@cs.stanford.edu>

	Allow dictionary 'var_deleted' callback to examine the deleted var.
	The dictionary 'var_deleted' callback is the last chance to look at
	a variable as it is getting deleted from a dictionary.  For some of
	the information in the variable, it legitimately doesn't make any
	sense to get it from the variable itself at this point, e.g. the
	index into the dictionary or the case, since it no longer is in
	a dictionary.  But for most of it, it's reasonable to get it from
	the variable itself, but the callback doesn't provide any way to
	do that, because it doesn't pass in the variable, just a dictionary
	index that is no longer correct.

	This commit changes the 'var_deleted' interface to pass in the
	variable plus the information that can no longer be obtained from
	the variable itself.  An upcoming change to the GUI will make use
	of this.

	This commit also adapts all the existing users to the new interface.

2012-04-16  Ben Pfaff  <blp@cs.stanford.edu>

	find-dialog: Change "Cancel" button to "Close" button.
	This button doesn't cancel anything, it just closes the dialog box,
	so "Close" seems like a better label.

	gtkxpaned: Remove write-only variables.

	psppire-buttonbox: Fix style in header file.
	It's totally bizarre and unnecessary to define a macro in the
	middle of a function prototype, so this commit moves it.

	psppire-data-store: Use NULL for a null pointer.

	psppire-data-store: Use PSPPIRE namespace instead of GTK+'s.

	psppire-data-editor: Drop psppire_data_editor_set_font() redundancy.
	set_font() recurses to a GtkContainer's children so
	psppire_data_editor_set_font() does not need to also do so.

	Revert "Fix DSO linking issue"
	This reverts commit 34abd8c7de0cac8efeead7fb3848427fb944b5bd.
	The author blindly posted the patch without actually testing
	whether it was necessary.  It was not, because the libraries
	in question were already linked against.  Thanks to John
	Darrington for pointing that out.

2012-04-15  Peter Lemenkov  <lemenkov@gmail.com>

	Fix DSO linking issue
	We must explicitly list every required library in case then linker is built
	with default behaviour which prevents implicit DSO linking.

	See this for the details on DSO Linking issues:

	http://fedoraproject.org/wiki/UnderstandingDSOLinkChange

2012-04-14  John Darrington  <john@darrington.wattle.id.au>

	PsppireDictView: Call gtk_widget_destroy instead of g_object_unref
	GtkMenu is a toplevel window.  Therefore, gtk_widget_destroy is appropriate.

	PsppireDialog: Added assignment for parent_class which it seems was forgotten

2012-04-13  John Darrington  <john@darrington.wattle.id.au>

	Replace regression.q with regression.c
	Reviewed-by: Jason Stover

2012-04-11  John Darrington  <john@darrington.wattle.id.au>

	PspppireSelector: Prevent selection of disallowed entries.
	We had been relying on the deselected state of the widget to prevent
	selection with the "allow" predicate was false.   But clicking the
	widget itself isn't the only way items can be selected (double clicking
	the item for example).   This change adds a test at a lower level to
	prevent selection of disallowed items.

2012-04-10  Ben Pfaff  <blp@cs.stanford.edu>

	i18n: Factor out encoding categories from GUI into common code.
	It would make sense to use these encodings and categories elsewhere.

	sys-file-reader: Remove obsolete comment.
	The open_text_record() function does the recoding, so there's no
	need for parse_long_var_name_map() to do any recoding of its own.

2012-04-10  John Darrington  <john@darrington.wattle.id.au>

	Examine dialog: Allow only numeric variables to be selected as the dependent variable

2012-04-09  John Darrington  <john@darrington.wattle.id.au>

	Examine gui: remove var-is-numeric predicate from dict-view
	Since the factor variable can be string, this predicate is not appropriate.

	EXAMINE: Implement MISSING=REPORT option

	categoricals.c: Distinguish between missing values on the dependent and categorical variables.
	Needed for upcomming change to the EXAMINE command.

2012-04-08  John Darrington  <john@darrington.wattle.id.au>

	Remove KMO and Bartlett statistics from bug check test.
	Commit 6b351b28f47c1dfb1ce697eb50cd218b50122fd0 added a test for a bug
	fix.  This test however included a display of a the KMO and Bartlett
	test statistics, which in this case are unstable since the determinant
	of the correlation matrix is close to zero.   These statistic are not
	relevant to the bug being tested.  So this change removes them.

2012-04-05  John Darrington  <john@darrington.wattle.id.au>

	Documentation: Yet more markup

2012-04-03  Ben Pfaff  <blp@cs.stanford.edu>

	FACTOR: Fix crash with /ROTATION=NOROTATE.
	Reported by abderrahim arif <arifabderrahim5@gmail.com>
	at http://lists.gnu.org/archive/html/bug-gnu-pspp/2012-04/msg00001.html

2012-04-03  Ben Pfaff  <blp@cs.stanford.edu>

	spreadlevel-plot: Fix missing #include <stdlib.h>
	Reported by GCC:

	spreadlevel-plot.c: In function ‘spreadlevel_plot_chart_destroy’:
	spreadlevel-plot.c:84: error: implicit declaration of function
	‘free’
	preadlevel-plot.c:84: error: incompatible implicit declaration of
	built-in function ‘free’

2012-04-01  John Darrington  <john@darrington.wattle.id.au>

	Text Importer: Added filter to the file chooser.
	Added a FileChooserFilter to the file chooser for importing text files.
	Closes bug #36054

	Corrected bug in chart rendering which caused the ordinate label to never get displayed

2012-03-31  John Darrington  <john@darrington.wattle.id.au>

	Correct typo in examine.ui

	Examine: Added the /PLOT=SPREADLEVEL option

	examine.c: Fix a seg fault which caused a crash when recovering from bad syntax

2012-03-30  John Darrington  <john@darrington.wattle.id.au>

	Explore Dialog: Replace add hoc functions with the new DialogAction class

2012-03-29  John Darrington  <john@darrington.wattle.id.au>

	Documentation: More markup

2012-03-28  John Darrington  <john@darrington.wattle.id.au>

	Documentation: New markup for subcommands

	Documentation: Add a @pspp macro

	Histograms: Fix the alignment case where little slack exists on either side of the data

2012-03-27  John Darrington  <john@darrington.wattle.id.au>

	Correct errors in histogram geometry calcs and add test

2012-03-26  John Darrington  <john@darrington.wattle.id.au>

	Fix crash on datasets with single values (again)

	Readjust histogram parameters if on the first attempt, the number of bins is too large

	Histograms: Improve the code calculating the bin ranges and comment

	Simplify algebra

	xrchart_write_scale: Use integer arithmetic

	Examine: Print extreme values using the print format of the variable

	Histogram calculations: Use integer arithmetic
	There is no advantage in using floating point numbers in this code.

2012-03-25  John Darrington  <john@darrington.wattle.id.au>

	Boxplot: Remove function boxplot_draw_yscale
	An identical function exists in a lower level, so use that instead.

	Histogram plotting: (hist_draw_bar) Added label argument.
	Added a boolean argument to indicate whether or not a histogram bar
	should be labelled.  Labelling every bar leads to overprinted and
	hence illegible labels.

	Histograms: Put hard limit on the number of histogram bins
	Histograms with less than one bin are not useful (and tend to cause crashes!)
	Histograms with very large numbers of bins are also of little use, and cause
	other implementation headaches.

	Cairo charts: Move check for near zero values to inside of draw_tick

	Whitespace changes only

	Fix a crashes where histograms of a single datum were trying to be created.
	Reported-by: Ben Pfaff.

2012-03-24  John Darrington  <john@darrington.wattle.id.au>

	Fixed yet another problem caused by use of abs where fabs is appropriate

	Mark histogram legend strings for translation

	Avoid floating point precision problems in chart scale
	Some charts were being drawn with a tick mark at positions
	close to but not exactly zero Eg: 2.187433298e-27
	This change avoids this problem.

	cairo-chart.c: new struct xrchart_axis
	This allows a bit of refactoring.

2012-03-23  John Darrington  <john@darrington.wattle.id.au>

	Histograms:  Ensure that the bins are aligned to an odd number of half bin widths
	This has the benefit that the centres of the bins are aligned to integer multiples
	of bin widths, and thus the labels are shorter.  For example, instead of labels
	-1.5 -0.5 0.5 1.5 2.5 we get -2 -1 0 1 2 which is more aesthetically pleasing.

	Corrected previous commit

	chart_rounded_tick: Avoid arithmetic problems with inputs close to zero

	Update the BUGS chapter in the manual

	Updated the documentation for EXAMINE

2012-03-22  John Darrington  <john@darrington.wattle.id.au>

	Improve the way in which histogram bin ranges are chosen

	EXAMINE: Allow the /ID subcommand to take a non-numeric variable

2012-03-20  John Darrington  <john@darrington.wattle.id.au>

	Correct geometrical error plotting histograms

	histogram.c: histogram_create now takes bin width instead of the number of bins

	NEWS: Mention changes to EXAMINE

2012-03-18  Ben Pfaff  <blp@cs.stanford.edu>

	sort: Allocate space for sort buffers on demand, not in advance.
	Each call to sort_create_writer() was allocating possibly a very
	large amount of memory when in many cases only a small fraction of
	that memory would actually be used.  This commit switches to
	allocating a small amount of memory and gradually increasing the
	allocation on demand.

	Reported by John Darrington.
	Bug #35887.

2012-03-18  John Darrington  <john@darrington.wattle.id.au>

	Relax NPAR SIGN test

	Improve translator comments.
	Apparently some of the TRANSLATOR comments were not clear enough. This
	change makes it less easy for translators to become confused.

	Fix compiler warnings

	Whitespace changes only

	examine.c: Rename xxx0 and xxx1 to something more sensible

2012-03-17  Ben Pfaff  <blp@cs.stanford.edu>

	ods-reader: Fix memory leak.
	Found by valgrind.

2012-03-17  John Darrington  <john@darrington.wattle.id.au>

	Fix memory leaks in the new EXAMINE implementation.

2012-03-16  John Darrington  <john@darrington.wattle.id.au>

	EXAMINE: Complete re-implementation
	This change is a complete re-implementation of the EXAMINE command.
	It includes a few minor changes to the tests, to accommodate slight
	changes in semantics (to bring it in line with other software).
	Closes bug #30732

	order_stats: New function order_state_accumulate_idx

	Categoricals: Dont crash when getting non-existant user data

2012-03-15  Ben Pfaff  <blp@cs.stanford.edu>

	ods-reader: Fix write beyond end of buffer.
	The compiler multiplies by sizeof *var_spec for us here, so doing
	it ourselves writes past the end of the allocated space.

	Tracked down with valgrind.

	Reported-by: bojo42 <bojo42@gmail.com>

2012-03-14  John Darrington  <john@darrington.wattle.id.au>

	math/np.c: Change np_create to take 3 doubles rather than a struct moment1*

	Recode Dialog: Stringify the variable label
	Ensure that the generated syntax has quotes around the variable label,
	in case the label happens to contain spaces or other metacharacters.

2012-03-14  John Darrington  <john@darrington.wattle.id.au>

	Fix GtkCritical in recode dialog.
	Commit 2b4fb7e846d62f1a70656bb42a0f769363ed0832 changed the internals of PsppireVarView.
	Unfortunately recode-dialog.c was directly accessing the implementation instead of
	using the interface.  This change fixes that.

	Reported-by: kai hansen <kaiowesen@gmail.com>

2012-03-13  Ben Pfaff  <blp@cs.stanford.edu>

	po: Update French translation from http://translationproject.org.

2012-03-11  John Darrington  <john@darrington.wattle.id.au>

	Regression: Fix bug where missing values in the dependent variable were not getting ignored.
	Fixes bug #35758

2012-03-10  Ben Pfaff  <blp@cs.stanford.edu>

	psppire-output-window: Use fallback PATH_MAX on GNU/Hurd.
	This fallback is from lib/clean-temp.c in Gnulib.

2012-03-03  John Darrington  <john@darrington.wattle.id.au>

	interaction.c: interaction_dump: don't crash on empty interactions (ie those with no variables)

	Remove unnecessary #include

	moments.c: Implement calc_semean.
	This function was always declared, but never implemented.  It's fairly
	trivial, but for consistency it makes sense to have here.

	oneway.c: Set destroy pointer to NULL, since it is unused here

	Categoricals.c: Call payload->destroy inside categoricals_done

	categoricals.c: Delete redundant function dump_interaction
	 Remove dump_interaction, since there is such a function in interaction.c

	Examine tests: Remove leading slash from factor variables.
	I haven't seen any examples of syntax which does this, and it leads to
	ambiguities: Does /STATISTICS refer to the STATISTICS subcommand or to
	a factor variable named "STATISTICS".  I think it's better therefore to
	disallow a slash here.

2012-03-02  Ben Pfaff  <blp@cs.stanford.edu>

	pool: Use 16-byte alignment on 64-bit architectures.
	glibc jmp_buf needs 16-byte alignment on ia64.  PSPP allocates
	jmp_buf inside a pool in a few places, so this change should fix
	many tests on ia64.

	Found by Debian autobuilder.

2012-03-01  Ben Pfaff  <blp@cs.stanford.edu>

	Sort attributes by name for display, to make order arch-independent.
	When data file attributes or variable attributes were displayed by
	e.g. DISPLAY ATTRIBUTES or SYSFILE INFO, they were sorted in hash
	order, which varies by architecture.  Therefore, the tests that
	depended on this order failed on big-endian machines such as mips.
	This commit fixes the problem by displaying attributes in sorted
	order.

	This fixes a failure in the "Perl copying system files" reported
	by Debian buildds.

2012-03-01  Ben Pfaff  <blp@cs.stanford.edu>

	identifier: Apply isdigit() only to values in valid range.
	Applying isdigit() to a value that is not EOF or in the range
	0...UCHAR_MAX yields undefined behavior and in fact caused a
	segfault on several Debian architectures for U+FFFD.

	Found by "lexer properly reports scan errors" test on Debian buildds.

2012-03-01  Ben Pfaff  <blp@cs.stanford.edu>

	zip-writer: Add missing #include <byteswap.h>.
	Fixes a broken build on Debian GNU/Linux, mips architecture.

2012-03-01  Ben Pfaff  <blp@cs.stanford.edu>

	encoding-guesser: Fall back to windows-1252 when UTF-8 can't be right.
	Until now the encoding-guesser code has used UTF-8 as a fallback in
	situations where we can tell that the file is not valid UTF-8.  In
	this kind of situation having a single-byte character set as a
	fallback makes more sense.  This commit hard-codes windows-1252 as
	that fallback, since it is a widely encountered encoding (and
	compatible with ISO-8859-1 as well).

	John Darrington originally suggested this, if I recall correctly.

	The bug report that spurred this work was from Harry Thijssen.  With
	this commit, PSPP properly reads his windows-1252 file when the
	system locale uses UTF-8 encoding.

2012-03-01  Ben Pfaff  <blp@cs.stanford.edu>

	encoding-guesser: Remove spurious blank line.

2012-03-01  John Darrington  <john@darrington.wattle.id.au>

	zip-writer.c: Fix incorrect big-endian handling.

	Don't update the icon cache if DESTDIR is non-empty.
	Packagers generally use "make install DESTDIR=xxx" to generate their install
	files, which are then copied in place to the target filesystem.  In such a
	scenario, it's inappropriate to copy the icon.cache files.  This change
	therefore does not update the icon cache if a DESTDIR has been specified.
	Instead it's left to the packager to make his own arrangements for updating
	the icon cache on the target filesystem.

2012-02-29  Ben Pfaff  <blp@cs.stanford.edu>

	Updated the German translation from http://translationproject.org.

	Updated the Lithuanian translation from http://translationproject.org.

2012-02-29  John Darrington  <john@darrington.wattle.id.au>

	Postgres test: Create socket in /tmp instead of current directory
	It seems that some systems do not allow unix domain sockets with long
	pathnames.  This change therefore creates a directory in /tmp using
	the mktemp command.

	Kruskal-Wallis: Sort grouped ranks before displaying them.
	Debian's autobuilder showed that the KW tests were failing because the
	hash which holds the rank entries was being iterated in arbitrary order.
	This change sorts the entries before displaying them, so they should
	always appear in the same order.

	zip-test.c: More thorough error messages

2012-02-26  John Darrington  <john@darrington.wattle.id.au>

	Generate pspp.desktop
	This change autogenerates the pspp.desktop file instead of simply including it.
	This allows us to have the translations updated from the po files instead of
	someone having to manually enter the strings directly in the file.

	Remove translator credits from AUTHORS file.
	This was getting hard to maintain, and is redundant, since there is
	a "translator-credits" string in each translation.

	ascii.c: Reallocate the lines after the page is resized

	Remove redundant assignment

	ascii.c: Move auto out of the #if HAVE_DECL_SIGWINCH condtional
	Whether or not the width/length should be automatic should depend only on whether the
	output is a terminal, and not upon the existance of SIGWINCH

	ascii.c (ascii_reserve) Added assertion.
	Added this assertion to catch a yet-to-be fixed array bounds bug.

2012-02-26  Ben Pfaff  <blp@cs.stanford.edu>

	po: Update Dutch translation from translationproject.org.

2012-02-25  John Darrington  <john@darrington.wattle.id.au>

	Added SHOW options DIRECTORY, ENVIRONMENT, TEMPDIR and VERSION

2012-02-23  John Darrington  <john@darrington.wattle.id.au>

	Fix bug #35532: Error setting PsppireDict predicate

2012-02-21  John Darrington  <john@darrington.wattle.id.au>

	MEANS: plug memory leaks

2012-02-19  John Darrington  <john@darrington.wattle.id.au>

	Attempt to cope with endian issues in zip reader.

	ODS Reader: fix uninitialised variables

2012-02-18  Ben Pfaff  <blp@cs.stanford.edu>

	str: Skip only up to one-past-the-end in ss_tokenize().
	If ss_tokenize() was called with '*save_idx' positioned at
	one-past-the-end of a string, it would continue to advance it past
	that point, which is surprising.  This avoids doing that.

	Found by Valgrind.
	Reported-by: John Darrington <john@darrington.wattle.id.au>

2012-02-18  Ben Pfaff  <blp@cs.stanford.edu>

	sys-file-reader: Avoid read past end of buffer.
	The "unexpected label source in mrsets" test caused a read past the
	end of the input buffer in text_parse_counted_string().  This fixes
	the problem.

	Found by Valgrind.
	Reported-by: John Darrington <john@darrington.wattle.id.au>

2012-02-18  Ben Pfaff  <blp@cs.stanford.edu>

	tests: Avoid failure due to race to mkdir tests/valgrind.

2012-02-18  Ben Pfaff  <blp@cs.stanford.edu>

	categoricals: Mark dump_interaction() and categoricals_dump() UNUSED.
	This avoids warnings that they are unused.

	It might be better to just remove them, since they would still be
	present in the Git history.

2012-02-18  John Darrington  <john@darrington.wattle.id.au>

	Revert "Mark separator names for translation"
	This reverts commit 02c89b93ff0b5942e66fdfbb7562641a0ff29d2c.
	Ben pointed out that this change was incorrect.

	Remove erroneous case_unrefs. Found by valgrind

	Use if(0) instead of #if 0
	The Gnu Coding Standards recommend run time conditionals instead of preprocessor
	conditionals.  I think this makes sense too, since #if 0'd code becomes obsolete
	without anyone noticing.

	categoricals.c: Fix memory access problems on empty interactions.
	Make sure the categoricals behave correctly when passed
	an interaction which contains no variables (ie, no catagories).

2012-02-16  John Darrington  <john@darrington.wattle.id.au>

	fix warnings

	MEANS: Correct position of double vertical rule

	Means: Report totals as well as catagories

2012-02-15  John Darrington  <john@darrington.wattle.id.au>

	Psppire: Allow syntax files to be provided as an argument

2012-02-14  John Darrington  <john@darrington.wattle.id.au>

	Reliability Test: Do not allow splits greater than the number of variables.
	It's not meaningful to have a split point which is greater than the number
	of variables (and not useful when they are equal).  And the system was
	exhaughsting its memory when such a test was run.  This change therefore
	disallows such a combination and updates the behaviour of the GUI accordingly.

2012-02-13  John Darrington  <john@darrington.wattle.id.au>

	Add missing translation markup

	Use ButtonBox Mask nick field for it's correct purpose.
	It seems that the GFlagsValue nick field was mistakenly being used as if
	it was a translatable label.  Not only was this wrong, but it also created
	unnecessary work for translators.  This change provides descriptions of the
	flags and removes them from the translatable strings.

	Mark separator names for translation

2012-02-12  John Darrington  <john@darrington.wattle.id.au>

	Added a dialog box for the MEANS command

2012-02-11  Ben Pfaff  <blp@cs.stanford.edu>

	examples: Change extensions from .stat to .sps.
	.sps makes a lot more sense.

	Reported-by: Harry Thijssen <pspp@sjpaes.nl>

2012-02-11  Ben Pfaff  <blp@cs.stanford.edu>

	tests: Improve test for supported encodings.
	I misunderstood the purpose for the config.charset script.  I had a
	notion that it was supposed to print all of the character sets that
	are supported by the operating system.  It doesn't (it prints
	character set names that need translation for the operating system).

	This change switches to using the same code that will be used at
	PSPP runtime to determine whether an encoding is supported, for
	determining during the tests whether an encoding is supported.

	This should cause fewer tests to be skipped on Mac OS.

	Reported-by: Jeremy Lavergne <jeremy@lavergne.gotdns.org>

2012-02-11  Ben Pfaff  <blp@cs.stanford.edu>

	perl-module: use $(MAKE) directly in rules that call make.
	The GNU make manual says that $(MAKE) must appear directly in a rule
	rather than through recursive expansion to work properly.  (This
	change fixes a GNU make warning about an unavailable jobserver.)

2012-02-10  John Darrington  <john@darrington.wattle.id.au>

	Fixed bug #35494 - Levene test crash on no valid values.

2012-02-09  John Darrington  <john@darrington.wattle.id.au>

	Corrected typo in documentation

2012-02-08  Ben Pfaff  <blp@cs.stanford.edu>

	po: Update Slovenian translation from translationproject.org.

2012-02-07  Ben Pfaff  <blp@cs.stanford.edu>

	GET: Add an ENCODING subcommand.
	For example, this allows a Swedish EBCDIC file that doesn't contain
	any indication of its codepage to be read with "ENCODING='IBM278'".

	sys-file: Support EBCDIC magic number in system files.
	This makes PSPP able to read the 1980s EBCDIC-encoded system file
	provided by Chris Muller <chris.muller@mullermedia.com>.

	sys-file: Recode string fields in file header also.
	Chris Muller <chris.muller@mullermedia.com> provided an example
	EBCDIC-encoded mainframe system file from the 1980s.  This commit
	goes one step toward being able to read and write these files in
	PSPP, by recoding most of the string fields in the file header.

	dictionary: Truncate file label in dictionary encoding, not UTF-8.
	The limiting factor is bytes in the on-disk format and so there's
	no point in truncating in terms of the in-memory format.

2012-02-06  Ben Pfaff  <blp@cs.stanford.edu>

	por-file-writer: Avoid infinite loop with value labels.
	Bug report and fix by Kent Nassen <knassen@umich.edu>.

	gui: Fix warnings due to missing GObject type conversions.

	jonckheere-terpstra: Declare variables at beginning of block.

2012-02-05  John Darrington  <john@darrington.wattle.id.au>

	NPAR /J-T correct significance calculation when test statistic is greater than zero

2012-02-05  Ben Pfaff  <blp@cs.stanford.edu>

	gui: Fix grammar in user message in psppire-data-window.c
	Reported-by: Harry Thijssen <pspp@sjpaes.nl>

2012-02-05  John Darrington  <john@darrington.wattle.id.au>

	npar.c: Added some missing initialisers.
	Also reorder the initialisers to the same order as their declarations

	Added an implementation of the Jonckheere-Terpstra test

2012-02-04  Ben Pfaff  <blp@cs.stanford.edu>

	Add Slovenian translation from translationproject.org.
	This translation is by Matej Urbančič <matej.urban@gmail.com> and
	the Slovenian translation team.

	po: Update Dutch translation from translationproject.org.

	po: Update German translation from translationproject.org.

2012-02-04  John Darrington  <john@darrington.wattle.id.au>

	Logo rework.
	From work contributed by bojo42: Reworked the transparent part of the logo.
	Also "harmonised" the fonts used in the logo and the splash screen.

2012-02-03  John Darrington  <john@darrington.wattle.id.au>

	New abstract base class: PsppireWindowBase
	Created a new abstract base class for windows/dialogs and moved the
	psppire_conf manipulation to there.  Should fix problems reported by bojo42
	where the window geometry wasn't always correctly saved.

2012-02-03  Ben Pfaff  <blp@cs.stanford.edu>

	Increment version to 0.7.9 to send to Translation Project.

2012-02-02  John Darrington  <john@darrington.wattle.id.au>

	Error with g_critical instead of g_assert on invalid variable types.

2012-01-31  John Darrington  <john@darrington.wattle.id.au>

	Rewrite documentation for the RECODE command.
	Reviewed-by: Ben Pfaff

	Converted Sort dialog to a PsppireDialogAction object

2012-01-30  Ben Pfaff  <blp@cs.stanford.edu>

	po: Update German translation from translation-project.org.

2012-01-30  John Darrington  <john@darrington.wattle.id.au>

	Converted reliability dialog to a PsppireDialogAction object

2012-01-29  John Darrington  <john@darrington.wattle.id.au>

	Removed erroneous duplicated line

	Converted roc-dialog to a PsppireDialogAction object

	Convert kmeans dialog to a PsppireDialogAction

	Converted the correlations dialog to a PsppireDialogAction object

2012-01-28  Ben Pfaff  <blp@cs.stanford.edu>

	Move PSPP shared libraries from $(libdir) to $(libdir)/pspp.
	The PSPP shared libraries do not have a stable ABI and so they
	should not go in a public system library directory.  This moves
	them to a private library subdirectory.

	Name the src/libpspp convenience library consistently.
	src/libpspp.la and src/libpspp/libpspp.la have the same name,
	although they are in different directories.  This seems unduly
	confusing.  This commit renames the latter to liblibpspp.la, which
	is at least different from libpspp.la and is also consistent with
	the naming of the other libtool convenience libraries as
	lib<directory>.la.

2012-01-26  John Darrington  <john@darrington.wattle.id.au>

	Don't crash on Games-Howell test when there are small numbers of cases per category.
	Fixes bug #34978

2012-01-25  Ben Pfaff  <blp@cs.stanford.edu>

	gui: Fix warnings.
	This fixes warnings introduced in commit 53508ccb5785 (New abstract
	class PsppireDialogAction).

	perl-module: Fix bad arguments in call to settings_init().
	Found by clang.
	Reported-by: Jeremy Lavergne <jeremy@lavergne.gotdns.org>

	perl-module: Add missing "#include"s to PSPP.xs.
	Found by clang.
	Reported-by: Jeremy Lavergne <jeremy@lavergne.gotdns.org>

2012-01-25  Ben Pfaff  <blp@cs.stanford.edu>

	perl-module: Add "!= NULL" to assignment used as condition.
	Suppresses a "clang" warning.

	Reported-by: Jeremy Lavergne <jeremy@lavergne.gotdns.org>

2012-01-25  Ben Pfaff  <blp@cs.stanford.edu>

	pspp-dump-sav: Fix sizeof on "array" that is actually a pointer.
	Found by clang.
	Reported-by: Jeremy Lavergne <jeremy@lavergne.gotdns.org>

2012-01-25  John Darrington  <john@darrington.wattle.id.au>

	New abstract class PsppireDialogAction
	Added a new object PsppireDialogAction which abstracts the behaviour of
	dialog boxes.

	Converted the Descriptived Dialog and the Variable Info Dialog to use this
	new abstraction.

	Reviewed-by: Ben Pfaff

2012-01-25  Ben Pfaff  <blp@cs.stanford.edu>

	Makefiles: Define dist_man_MANS before trying to add to it.
	Fixes Automake complaint:
	utilities/automake.mk:2: dist_man_MANS must be set with `=' before using `+='

	Reported-by: John Darrington <john@darrington.wattle.id.au>

2012-01-25  Ben Pfaff  <blp@cs.stanford.edu>

	pspp-dump-sav: Mark manpage to be distributed.

2012-01-24  Ben Pfaff  <blp@cs.stanford.edu>

	RANK: Avoid putting declaration after statement.

	pspp-dump-sav: Add manpage.

2012-01-23  Ben Pfaff  <blp@cs.stanford.edu>

	gui: Use $(INSTALL_DATA), not $(INSTALL), to install data files.
	Plain $(INSTALL) always adds the executable bit to the installed
	files, which has the wrong effect for data files.

	Found by lintian.

2012-01-23  John Darrington  <john@darrington.wattle.id.au>

	Moved rank.q to rank.c

2012-01-22  John Darrington  <john@darrington.wattle.id.au>

	Reimplemented the logo as a svg image and converted to a 64x64 bit icon

2012-01-21  Ben Pfaff  <blp@cs.stanford.edu>

	README: Update.
	Suggested-by: John Darrington <john@darrington.wattle.id.au>

2012-01-18  John Darrington  <john@darrington.wattle.id.au>

	Added documentation for the MEANS command

2012-01-16  John Darrington  <john@darrington.wattle.id.au>

	Improve behaviour of resizing the value chooser widget

	MEANS: Added further tests for missing value behaviour

	MEANS: Implemented /MISSING=TABLE subcommand

	MEANS: implemented the /CELLS={ALL,NONE,DEFAULT} options and added a test

2012-01-15  Ben Pfaff  <blp@cs.stanford.edu>

	Add German translation from translationproject.org.
	This translation is by Matthias Keil <matthias.keil@uni-jena.de> and
	the German translation team.

2012-01-15  John Darrington  <john@darrington.wattle.id.au>

	Remove stray include directive

2012-01-14  John Darrington  <john@darrington.wattle.id.au>

	Corrected various misspellings in the documentation

	MEANS: remove arguments to callbacks which were always unused

	Fix warnings

	MEANS: This command is IMO now stable enough to be used. Adding to command.def
	Also added some tests.

	Categoricals cleanup:  New structure 'payload' which reduces the number of arguments to categoricals_create

2012-01-12  John Darrington  <john@darrington.wattle.id.au>

	Avoid deprecated Perl syntax.
	Apparently new perl versions don't like qw(x y z) without outer  parentheses.  See
	http://search.cpan.org/~flora/perl-5.14.2/pod/perl5140delta.pod#Use_of_qw%28...%29_as_parentheses

	This change adds these parentheses.

	Reported-by: bojo42 <bojo42@gmail.com>

2012-01-11  John Darrington  <john@darrington.wattle.id.au>

	Use idle callback to write to the local config directory
	When the users config directory is on a filesystem with high latency,
	moving a dialog box resulted in many writes and thus an unacceptable
	delay.  This change fixes that by consolidating the writes into a
	low priority idle callback.

2012-01-10  Ben Pfaff  <blp@cs.stanford.edu>

	Fix PSPP link on OpenSUSE and possibly Ubuntu 11.10.
	Reported-by: friedrich nietzsche <f_nietsje@hotmail.com>
	at http://comments.gmane.org/gmane.comp.statistics.pspp.devel/4850
	Reported-by: Luis Cebamanos <luiceur@gmail.com>
	at http://comments.gmane.org/gmane.comp.statistics.pspp.devel/4869
	Reported-by: Mindaugus <embar@super.lt>
	Tested-by: Mindaugus <embar@super.lt>

2012-01-07  Ben Pfaff  <blp@cs.stanford.edu>

	cairo: Only apply options to table items, to avoid crash.
	Most of the members of struct xr_rendering, including the 'xr'
	member, are used only for table items.  In chart items, these
	members are zeroed.  But xr_rendering_apply_options() attempted to
	use the 'xr' member even for chart items, which caused a crash.

	This reverts and replaces the provisional fix already applied by
	John Darrington in commit ee7b576822f (Avoid crash rendering charts
	in the gui interface.), which also fixed the crash but added extra
	unnecessary work.

	Reported-by: Nick Macdonald <nick@nickmacdonald.net>

2012-01-05  John Darrington  <john@darrington.wattle.id.au>

	online_help: use g_spawn_async instead of g_spawn_command_line_async
	This change avoids potential problems caused by metacharacters in the
	constructed command arguments.

	Suggested by Ben Pfaff.

2012-01-05  John Darrington  <john@darrington.wattle.id.au>

	Avoid crash rendering charts in the gui interface.
	Reported-by: Nick Macdonald <nick@nickmacdonald.net>
	Provisionally Reviewed-by: Ben Pfaff <blp@gnu.org>

	Fix memory leaks parsing string expressions

	Fix memory leaks

2012-01-04  John Darrington  <john@darrington.wattle.id.au>

	lex_get_text_buffer_read: Avoid potential buffer overflow.

2012-01-03  John Darrington  <john@darrington.wattle.id.au>

	Add files to manifest, inadvertantly omitted from previous commit.

	New file: builder-wrapper.h and builder-wrapper.c
	Move the functions wrapping GtkBuilder out of helper.c
	and into their own file.

2011-12-22  John Darrington  <john@darrington.wattle.id.au>

	Set the output driver parameters dynamically from the output window style.
	This change allows the output driver options to be changed after the driver
	has been created.  This is necessary in the GUI to follow the style changes
	(eg from theme engines etc)

2011-12-20  Ben Pfaff  <blp@cs.stanford.edu>

	psppire-dialog: Add missing prototype for psppire_dialog_help() to header.

2011-12-18  John Darrington  <john@darrington.wattle.id.au>

	doc/automake.mk: Added eacute to the list of docbook entities which need to be mutated

2011-12-17  John Darrington  <john@darrington.wattle.id.au>

	Correct packing properties of sort cases dialog.

	Escape # character in call to g_spawn_command_line_async
	It seems that this character was being treated as a comment start.

	Added a callback to the dialog help buttons, and a handler to call the manual when clicked.

	Fix errors in the Texinfo source discovered by makeinfo 4.13.90

2011-12-16  John Darrington  <john@darrington.wattle.id.au>

	Output Viewer:  Try to adapt to changes in style
	Set the fg and bg of viewer's container and its children to the
	text and base of the output window upon style change.  This means that
	the output viewer will respond to changes in style once even after the
	program has been started.

	We still need some way to set the foreground colours of the cairo output
	after the driver has been created, but that doesn't seem to be currently
	possible.

2011-12-12  Ben Pfaff  <blp@cs.stanford.edu>

	gui: Make Enter work in the Goto Case dialog.
	Without this change, Enter does nothing in the dialog that Edit|Goto Case
	brings up.  With this change, Enter activates the Goto button.

2011-12-11  John Darrington  <john@darrington.wattle.id.au>

	Output viewer: use the widget's style to set the colors of the output driver.

	Cairo output driver: Added options to set the foreground and background colours.

	Remove xr_draw_chart from cairo.h and make static
	The function xr_draw_chart is used only in cairo.c, so it seems there
	is little point in having it public.

2011-12-10  John Darrington  <john@darrington.wattle.id.au>

	Added basic framework for the MEANS command.
	Not much here yet.  Just the parser and framework
	for the output.

	Added a function to clone an interaction.

2011-12-07  John Darrington  <john@darrington.wattle.id.au>

	Value Labels Dialog: Fix packing properties

2011-12-04  Ben Pfaff  <blp@cs.stanford.edu>

	gui: Fix behavior of print preview in psppire-output-window.
	Print preview only showed one page because the GtkPrintOperation emits
	"paginate" again even after it returns TRUE once and our "paginate"
	implementation was not prepared for that.

	Also fixes a memory leak in paginate(): the driver used for pagination was
	not being freed.

	Reported-by: John Darrington <john@darrington.wattle.id.au>

2011-12-03  John Darrington  <john@darrington.wattle.id.au>

	ONEWAY: Fixed crash when the dependent variable contained only missing values.
	When forming a struct categoricals, there is no way in advance to know if the
	given categorical variables will actually contain any values.  If one or more
	of them contains no non-missing values, then it's not meaningfull to talk
	about categories.

	Such cases were causing oneway to crash.  Thanks to Dave Purdy
	<David_Purdy@btinternet.com> for reporting this problem.

2011-12-03  John Darrington  <john@darrington.wattle.id.au>

	Remove unused global variables

2011-12-01  Ben Pfaff  <blp@cs.stanford.edu>

	gui: Fix printing of tables split across pages in psppire-output-window.
	xr_driver_output_item() expects the caller to call xr_driver_next_page()
	as long as xr_driver_need_new_page() returns true, but the printing code
	didn't do that, so tables split across pages in printouts caused an
	assertion failure at the next call to xr_driver_output_item().

	Reported-by: John Darrington <john@darrington.wattle.id.au>

2011-12-01  Ben Pfaff  <blp@cs.stanford.edu>

	Avoid declaring variables in the middle of a block, to avoid requiring C99.

2011-11-28  John Darrington  <john@darrington.wattle.id.au>

	categoricals.c: Rename function to more accurately reflect its purpose

	Remove unused function

2011-11-26  John Darrington  <john@darrington.wattle.id.au>

	GLM: Mimic spss output with /INTERCEPT=EXCLUDE

	Fix memory leak

2011-11-25  John Darrington  <john@darrington.wattle.id.au>

	GLM: Added implementation for the Type 3 sums of squares.
	This seems to match expectations, except for the Intercept term.

	GLM: Added test for type II sums of squares

	Whitespace changes only

	categoricals.c: Effects coding.
	Implemented Effects (also called Contrast) coding instead of Dummy Coding
	and corrected logic error.

2011-11-24  John Darrington  <john@darrington.wattle.id.au>

	GLM test: Remove redundant transformations and reorder.
	This change does not affect the test or its result, but makes it
	easier to understand.

2011-11-23  John Darrington  <john@darrington.wattle.id.au>

	GLM: Implemented the Type I sums of squares and added a test for that.

	GLM: Update logic for choosing types of sums of squares

	glm.c: Allow parser to accept METHOD=SSTYPE(n) subcommand

	glm.c:get_ssq Remove unnecessary assignment

2011-11-20  John Darrington  <john@darrington.wattle.id.au>

	categoricals.c Fix the calculation of the per encoding sums

2011-11-19  John Darrington  <john@darrington.wattle.id.au>

	Rename df --> df_prod and comment accordingly

	categoricals.c: Reimpliment the get_binary_by subscript function
	Instead of making ad hoc encodings for interactions, use the product
	of the encodings of the individual variables.  This should not affect
	the outcome of any current test cases, but makes the data flow easier
	to follow and to debug.

2011-11-15  John Darrington  <john@darrington.wattle.id.au>

	sweep.c: Use gsl_matrix_memcpy instead of element by element copying.
	Although only the upper triangle needs to be copied, there is no
	disadvantage copying the entire matrix (the lower triangle is never read)
	and the expense of using two loops is likely to outweigh the saving achieved
	by avoiding the other triangle.

	sweep.c: Move repeated call out of if ... else
	This line is identical for all cases, so it only needs to appear once.

	sweep.c: Reduce scope of local variables and avoid reusing them.
	This makes the code easier to follow, and helps the compiler with
	optimisation.

	sweep.c: Reverse sense of consistency tests.
	This avoids numerous levels of indentation.

	sweep.c: swap rows/columns instead of using indirection for last_col
	This makes the code shorter, and I believe should make it faster too.

2011-11-14  John Darrington  <john@darrington.wattle.id.au>

	GLM: Add debugging option /SHOWCODES

2011-11-13  John Darrington  <john@darrington.wattle.id.au>

	Remove useless code

2011-11-10  John Darrington  <john@darrington.wattle.id.au>

	File Open: Don't try to analyse the file if it's a directory.
	The File Open dialog box looks at the contents of the selected file
	in order to decide whether to set the sensitivity of the encoding
	selector.  But if the file was a directory this caused error messages
	on windoze. Closes bug #34773

2011-11-09  Ben Pfaff  <blp@cs.stanford.edu>

	GET: Fix confusion over the type of the 'type' parameter.
	The 'type' parameter was being used to pass in an "enum reader_command" but
	it was then later assigned a value of "enum pfm_type".  This renames 'type'
	to 'command' for clarity and just deletes the assignment of the "enum
	pfm_type" value entirely because the value was not used.

	Found by Clang.

	Reported-by: Jeremy Lavergne <jeremy@lavergne.gotdns.org>

2011-11-09  Ben Pfaff  <blp@cs.stanford.edu>

	DO REPEAT: Properly convert lex_syntax_mode to segmenter_mode.
	Clang reported that "enum lex_syntax_mode" was being implicitly converted
	to "enum segmenter_mode".  Luckily, equal values in each enum have the
	same meaning, but it seems better to convert by hand, so this patch
	implements that.

	Reported-by: Jeremy Lavergne <jeremy@lavergne.gotdns.org>

2011-11-09  Ben Pfaff  <blp@cs.stanford.edu>

	hmap: Mark definition of hmap_node_hash() "static inline".
	This suppresses a Clang warning.  The prototype earlier in the file
	was already marked "static inline", so I don't think that this is a
	functional change.

	Reported-by: Jeremy Lavergne <jeremy@lavergne.gotdns.org>

2011-11-09  Ben Pfaff  <blp@cs.stanford.edu>

	str: Mark definition of ss_empty() "static inline".
	This suppresses a Clang warning.  The prototype earlier in the file
	was already marked "static inline", so I don't think that this is a
	functional change.

	Reported-by: Jeremy Lavergne <jeremy@lavergne.gotdns.org>

2011-11-08  Ben Pfaff  <blp@cs.stanford.edu>

	ONEWAY: Fix printf format specifier.
	Reported-by: Jeremy Lavergne <jeremy@lavergne.gotdns.org>

2011-11-06  Ben Pfaff  <blp@cs.stanford.edu>

	configure: Add option --enable-Werror to add -Werror to CFLAGS.
	-Werror is useful for development, but it screws up configure because it's
	impossible to guess what new warnings compilers will add in the future.
	This commit adds a new configure option to add CFLAGS after the configure
	checks are done.

	The use of AC_CONFIG_COMMANDS_PRE is based on Eric Blake's suggestion on
	the autoconf mailing list: "AC_CONFIG_COMMANDS_PRE probably fits the bill
	as the ideal macro to use for guaranteeing that you inject your shell code
	at the last possible moment."

	The Autoconf code added in this commit, as well as this commit message,
	come from Open vSwitch.

2011-11-06  Ben Pfaff  <blp@cs.stanford.edu>

	crosstabs-dialog: Remove unused vars from on_format_clicked().

	q2c: Remove gettext.h #include from generated code.
	The generated code no longer uses any of the gettext symbols.

	q2c: Remove final untranslated strings from q2c.c.
	The "restrictions" that could be specified in q2c put strings
	in the output that needed to be translated but could not.  This
	commit drops the feature and removes all of its prior users.
	Some of the users required new validation code to be added, but
	many of them in the SET command did not because the value was
	not actually used anywhere.

	q2c: Use new subc_list_error() to report too many subcommands.
	This removes one string from q2c.c that needs translation but
	cannot currently be translated.

	lexer: New function lex_force_string_or_id().
	This new function removes a string from q2c.c that requires
	translation but currently cannot be translated.

	lexer: New functions lex_spec_missing(), lex_spec_only_once().
	These functions don't have many users yet but they make logical
	sense to me.

2011-11-06  Ben Pfaff  <blp@cs.stanford.edu>

	lexer: Use error helper functions in more situations.
	The error helpers print error messages that are just as helpful
	as handwritten error messages in most cases, especially now
	that the error messages include column numbers.  They also
	have advantages for i18n.

	One important purpose of this commit is to remove several
	strings from q2c.c that require translation but currently are
	not translatable.

2011-11-06  Ben Pfaff  <blp@cs.stanford.edu>

	lexer: Drop lexer parameter from lex_sbc_missing().
	There's no point in passing in the lexer and using lex_error(),
	because the extra information that lex_error() outputs does
	not help the user find the error.

	lexer: New function lex_error_expecting().
	This centralizes some fairly common strings into lexer.c.

	LOOP: Correctly implement MXLOOPS and add a test.
	Previously the MXLOOPS value was implemented incorrectly: the
	loop would actually iterate MXLOOPS+1 times.  This commit fixes
	the problem.

2011-11-06  Ben Pfaff  <blp@cs.stanford.edu>

	settings: Implement MXLOOPS subcommand.
	It had been overlooked.

	The following commit adds a test.

2011-11-06  Ben Pfaff  <blp@cs.stanford.edu>

	settings: Update default MXLOOPS and document.
	MXLOOPS should be 40 by default, for compatibility.

	SET: Warn for more obsolete subcommands.

2011-11-05  Ben Pfaff  <blp@cs.stanford.edu>

	doc: Remove reference to unimplemented SET PAGER command.
	Bug #33632.
	Reported by John Darrington.

2011-11-04  Ben Pfaff  <blp@cs.stanford.edu>

	lexer: Rename 'close' to 'destroy' in struct lex_reader_class.
	This seems like a cleaner solution to the problem of Gnulib
	sometimes defining 'close' as a macro than to add an extra
	include file and a big comment.

2011-11-01  Ben Pfaff  <blp@cs.stanford.edu>

	gui: Fix spelling error in macro name.

	gui: Make .csv available for output export with File|Export.
	The hard-coded 6 here was wrong: there are 7 file formats.
	It's better to use the n_FT constant.

2011-11-01  Ben Pfaff  <blp@cs.stanford.edu>

	gui: Fix configuring Unicode box characters.
	Commit 14b3603043 "ascii: Add support for multibyte characters"
	changed how the box characters are configured but failed to
	update psppire-output-window.c, so attempting to paste a table
	into an application that accepts UTF-8 text would output many
	warnings like "unknown option `box[0201]'" and not actually use
	Unicode box characters.

	This fixes the problem.

2011-10-25  John Darrington  <john@darrington.wattle.id.au>

	New object: psppire-lex-reader
	This object reads lexer input direct from a GtkBuffer instead of converting to a string first.

	Remove duplicate #include lines

2011-10-24  John Darrington  <john@darrington.wattle.id.au>

	Remove labelling options from Crosstabs GUI
	The previous change removed the label options from the crosstabs commmand,
	but didn't update the gui accordingly.  This change fixes that.

2011-10-19  John Darrington  <john@darrington.wattle.id.au>

	Use variable labels in crosstabs.
	Use a variable's label instead of its name (if it has one) in the crosstabs
	output.  Removed the FORMAT=LABEL subcommand which is no longer supported
	by spss.  Updated documentation to reflect the code.

2011-10-12  John Darrington  <john@darrington.wattle.id.au>

	Remove redundant error message.
	This error message is not required, because lex_force_string already emits such message.

	Consolidate some very similar user visible strings

	Added some missing gettext macros

2011-10-09  John Darrington  <john@darrington.wattle.id.au>

	Fix potential problems with non-literal printf arguments.
	In a few places we were passing a constructed string to a printf-like
	function as its format argument.  This could have been problematic if
	the constructed string had contained a % (for example due to that
	character occuring in a variable label).  This change avoids those
	situations.

2011-10-07  John Darrington  <john@darrington.wattle.id.au>

	Fix incorrectly ordered arguments to xcalloc
	The gnulib xcalloc call has the following signature:
	 void *calloc(size_t N, size_t S);
	where N is the number of objects and S is the size of each object.
	In many places, we had these arguments transposed. In many implementations
	this doesn't matter since the two arguments are simply multiplied together.
	However, on some systems this can cause problems (ie crash), if S is zero.
	This change fixes all calls where the size was being passes as the first
	argument instead of the second.

	Fixed a crash in the oneway command

2011-10-06  John Darrington  <john@darrington.wattle.id.au>

	Add a warning to GLM until we've sorted out its problems

	Remove visibility from the univariate analysis menu until it works better

2011-10-05  John Darrington  <john@darrington.wattle.id.au>

	Added a base parameter to the interaction_case_hash function

2011-10-04  John Darrington  <john@darrington.wattle.id.au>

	Fix crash on parseing invalid GLM syntax

2011-09-29  John Darrington  <john@darrington.wattle.id.au>

	Implemented the SET=TNUMBERS subcommand

	Optimisation for the type3 sum of squares procedure

	Corrected example files. Closes bug #34343

2011-09-28  John Darrington  <john@darrington.wattle.id.au>

	Fixed a crash in REGRESSION when there were no non-missing values.

2011-09-26  John Darrington  <john@darrington.wattle.id.au>

	Move interaction subset predicates out of glm.c into interaction.c
	Renamed function:   is_subset --> interaction_is_proper_subset
	                    drop_from_submodel --> interaction_is_subset
	and moved them into interaction.c  This seems to me to be easier
	to understand, and more efficient.

	GLM: Add a test for a full factorial anova example

	Smake give correct dependencies where they are well defined

2011-09-25  John Darrington  <john@darrington.wattle.id.au>

	Added dialog box for univariate anova.
	Added a dialog box to conduct a univariate anova using the GLM
	command.  Currently only entry of the dependent variable and the
	factors are possible.   Choosing the interactions must be done
	through syntax, if the default is not what the user wants.

2011-09-20  John Darrington  <john@darrington.wattle.id.au>

	Fix warnings and remove conditional compilation which is no longer necessary

2011-09-18  Jason H Stover  <jhs@franz.gcsu.edu>

	Fixed type 3 sums of squares for models containing interactions

2011-09-10  John Darrington  <john@darrington.wattle.id.au>

	Added a summary introduction to INSTALL, to try to make it less frightening to inexperienced users

2011-09-06  John Darrington  <john@darrington.wattle.id.au>

	Moved call to gl_NEXT_HEADER outside the conditional.
	Fixes bug #33585

2011-09-03  John Darrington  <john@darrington.wattle.id.au>

	File Open dialog: disable encoding selector when not applicable

	Filter file choosers by mimetype instead of file name

2011-09-02  John Darrington  <john@darrington.wattle.id.au>

	Avoid compiler warnings about uninitialised variables.
	Some compilers produced warnings about possible use of
	uninitialised variables (although such use was in fact not possible)
	These warnings were harmless (perhaps even erroneous) but
	it's no problem to avoid them.

2011-09-02  John Darrington  <john@darrington.wattle.id.au>

	Fix make makedistcheck and re-organize icon paths.
	This change does several things:

	* renamed psppicon.png to pspp.png - The word "icon" is redundant
	  (it's also a misuse of English).

	* Changed the install target of the existing 16x16 pictograms out of the apps
	  directory. Instead, they now go in a directory of their own called "pspp".
	  This is more in line with what other applications seem to do.  It also makes
	  it a lot easier to deal uninstall them, since we can be reasonably sure that
	  everything in the "pspp" directory was put there by us.

	* Ensures that make distcheck passes.

2011-08-28  John Darrington  <john@darrington.wattle.id.au>

	GLM: Disable the interactions option until it actually gives the right results

	Added an implementation of the median test

2011-08-25  Ben Pfaff  <blp@cs.stanford.edu>

	Fix build error if "close" macro is not always visible.
	Harry Thijssen <pspp@sjpaes.nl> reported the following errors
	with recent Gnulib on Win32:

	src/language/lexer/lexer.c: In function 'lex_source_destroy':
	src/language/lexer/lexer.c:1455: error: 'const struct
	    lex_reader_class' has no member named 'rpl_close'
	src/language/lexer/lexer.c:1456: error: 'const struct
	    lex_reader_class' has no member named 'rpl_close'

	The problem was that the Gnulib substitute for <unistd.h>
	defines close to rpl_close, but this macro definition wasn't
	visible when lexer.c included lexer.h and became visible later.
	This commit fixes the problem by making sure that the macro
	definition is always visible in lexer.h.

	A better solution would probably be to rename the 'close'
	member to something other than a standard POSIX function name.

	The change to control-stack.h is just precautionary; Harry
	didn't report the same problem there.

2011-08-24  Ben Pfaff  <blp@cs.stanford.edu>

	range-set: Fix typo in comment.

2011-08-24  John Darrington  <john@darrington.wattle.id.au>

	Improve paste to Openoffice.org &c
	Added "css" and "borders" options to the html driver, and
	set these options to false when generating clipboard data.
	This produces better looking results when cut & pasting to
	OOo

2011-08-23  John Darrington  <john@darrington.wattle.id.au>

	Update the recommended gnulib commit, since it contains an important w32 fix

	Fix warnings

2011-08-23  Ben Pfaff  <blp@cs.stanford.edu>

	po: Add French translation from http://translationproject.org

2011-08-21  Ben Pfaff  <blp@cs.stanford.edu>

	gui: Add missing $(DESTDIR) to install rule.
	Also, delete white space from otherwise blank line.

	glade: Fix building libglade_psppire.
	Otherwise GCC can't find the gtksourceview header files.

2011-08-20  Matìj Cepl  <mcepl@redhat.com>

	gui: Streamline pspp.desktop
	Remove the extension for Icon (unnecessary, in case in
	future we want to provide for example SVG icon) and removed
	unnecessary keys. Do we know for fact that we will never ever
	support Notifications? And I guess if we provide the .desktop and
	executable as part of the same tarball/package there is not much
	chance we would have binary missing. I have also added a Czech
	translation of keys.

2011-08-19  John Darrington  <john@darrington.wattle.id.au>

	Merge remote branch 'origin/sourceview'

2011-08-18  Ben Pfaff  <blp@cs.stanford.edu>

	po: Update Spanish translation from translation-project.org.

	po: Update Catalan translation from translation-project.org.

2011-08-17  Ben Pfaff  <blp@cs.stanford.edu>

	gui: Ignore the -psn_xxx option passed to Mac desktop apps.
	Jeremy Lavergne <jeremy@lavergne.gotdns.org> reports that this
	is necessary to make PSPPIRE launch gracefully on the Mac.

2011-08-15  Ben Pfaff  <blp@cs.stanford.edu>

	Upgrade to newest Gnulib to help relocatable-prog on Mac OS X.
	--enable-relocatable currently fails on Mac OS X due to a link
	error related to symbols that Gnulib is supposed to replace.
	I see that Gnulib has the following commits, not previously in
	PSPP, that mention related changes:

	357d319 relocatable-lib: Move AC_LIBOBJ invocations to module description.
	c2d8c01 relocatable-prog: Move AC_LIBOBJ invocations to module description.
	325f131 relocatable-prog-wrapper: Fix possible link error.
	886f850 relocatable-prog-wrapper: Assume strerror() exists.
	02d4f86 relocatable-prog-wrapper: Update after module 'areadlink' changed.
	d14f18b relocatable-prog-wrapper: Update after module 'areadlink' changed.
	69c99f3 * lib/relocwrapper.c (_GL_USE_STDLIB_ALLOC, malloc): Likewise.
	ef11bf4 * lib/relocatable.c (_GL_USE_STDLIB_ALLOC, malloc): Likewise.
	10d90c8 * lib/progreloc.c (_GL_USE_STDLIB_ALLOC, malloc): Likewise.
	4e51bc9 unictype/property-byname: Reduce the number of load-time relocations.
	fb6aa6a relocatable-prog: fix link error

	This commit updates PSPP to capture those changes.  It also
	makes the changes recommended by Gnulib's NEWS.

2011-08-13  John Darrington  <john@darrington.wattle.id.au>

	Added an implementation for the One Sample Kolmogorov-Smirnov Test

	Implemented the KMO and Bartlett test in the FACTOR command

	Set the "local-only" property on GtkFileChooser widgets to FALSE

2011-08-05  Ben Pfaff  <blp@cs.stanford.edu>

	range-set: Skip some tests on llvm-gcc 4.2.
	These tests seem to trigger a bug in llvm-gcc 4.2 on Mac OS X
	10.8.0.  Experimentation shows that the bug is more likely to
	be triggered by the test code than the code under test, so skip
	them.

	I spent some time trying to narrow down the problem enough to
	make a bug report to the llvm-gcc developers, but I ran out of
	time before I finished with that.

	Thanks to Jeremy Lavergne <jeremy@lavergne.gotdns.org> for
	reporting the problem.

2011-07-30  John Darrington  <john@darrington.wattle.id.au>

	Oneway Dialog: Cosmetic Improvements

	Npar K-related Dialog: Cosmetic Improvements

	Descriptives Dialog: Cosmetic Improvements

	Binomial Dialog: Cosmetic Improvements

	Regression Dialog: Cosmetic improvements

	K-Means Dialog: Cosmetic improvements

	Correlations Dialog: Cosmetic improvements

	Factor Dialog: Add mnemonics

	Added use-underline and mnemonic-widget properties to PsppireScanf

	Replaced the function widget_scanf with a new widget psppire_scanf

2011-07-29  John Darrington  <john@darrington.wattle.id.au>

	Reliability Dialog: Fix broken mnemonics

	PsppireKeypad: Correct the parent class declaration

	Fix problem building under Gtk+2.18

2011-07-28  John Darrington  <john@darrington.wattle.id.au>

	Makefile.am: update location of gitlog-to-changelog script

	Chi-square Dialog: Cosmetic changes

	Frequencies Dialog: Cosmetic changes

	Crosstabs Dialog: Cosmetic changes

	Fix crash in Correlations

2011-07-26  John Darrington  <john@darrington.wattle.id.au>

	Fix memory leak

	glm.c: new function design_full to create default interactions

	Fixed crash when interactions have no instances

	Constness

	Made GLM as well as ONEWAY work

	Move call to categoricals_done earlier in the covariance code

	Constness

	Extended the glm command to accept interactions.  Unfortunately the ssqs are wrong

	categoricals.c: Fixed part of the dump function

	categoricals.c: Rename var_params to interact_params

	Remove unused function

	Fix ssq for interactions

	GLM: get_ssq: replace hardcoded 1 with cmd->n_dep_vars

	GLM: remove design_vars which are now superseeded by interactions

	GLM: Fix memory leaks

	Categoricals: remove var member which is no longer required

	Categoricals: Replace single value by a case, so that interactions can be supported

	Change interaction functions to use cases rather than value arrays

	Categoricals to take interactions instead of variables.
	This change alters the API of categoricals_create, so as to
	accept an array of interactions instead of an array of variables.
	Currently, however only interactions which contain exactly one
	variable will run correctly.

	GLM: Rewrite interactions module and update glm.c to use it in some places

	GLM: Prepare the lexer to accept nested variables

2011-07-25  John Darrington  <john@darrington.wattle.id.au>

	Added dialog for the NPAR RUNS subcommand

	K-means dialog only should accept numeric variables

	Add some  "mnemonic_widget" refs which had been forgotten

	Added dialog box for quick cluster command

2011-07-23  Ben Pfaff  <blp@cs.stanford.edu>

	Updated the Lithuanian translation from http://translationproject.org.

2011-07-13  Ben Pfaff  <blp@cs.stanford.edu>

	variable: Simplify var_set_display_width().
	I don't see a reason to keep old_width or to call
	dict_var_changed() if nothing changed.

	format: Use max width for over-max decimals in fmt_fix().
	In fmt_fix(), requesting more decimals than are possible did
	not increase the width at all.  It makes better sense to use
	the maximum width and maximum decimals for this case, so this
	commit makes that change.

2011-07-13  Ben Pfaff  <blp@cs.stanford.edu>

	format: Honor width step in fmt_fix().
	This ensures that hexadecimal format widths will be a multiple
	of 2 after fmt_fix() finishes with them.

	This function is used only by the GUI, which doesn't generally
	work with hexadecimal formats, so it might not fix a real bug
	in practice.

2011-07-12  Ben Pfaff  <blp@cs.stanford.edu>

	GLM: Allow +/- .001 for Corrected Total Type III Sum of Squares.
	Jeremy Lavergne <jeremy@lavergne.gotdns.org> reported that on
	Mac OS X this value is calculated as 329.628 instead of
	329.627.  John Darrington said that he's seen the same on
	GNU/Linux depending on compiler optimization flags.

2011-07-10  Ben Pfaff  <blp@cs.stanford.edu>

	tests: Avoid nonportable "mktemp" usage.
	Jeremy Lavergne <jeremy@lavergne.gotdns.org> reported that
	mktemp on Mac OS X does not have a -p option.  But I don't see
	a reason to use mktemp at all here, so this commit uses a fixed
	name instead.

	tests: Fix Perl module tests on Mac OS X.
	Tested by Jeremy Lavergne <jeremy@lavergne.gotdns.org>.

2011-07-09  John Darrington  <john@darrington.wattle.id.au>

	QUICK CLUSTER: Add documentation

	QUICK CLUSTER: Add MISSING=EXCLUDE for consistency with other commands

2011-07-08  John Darrington  <john@darrington.wattle.id.au>

	QUICK CLUSTER: Implement pairwise missing option

	Merge remote branch 'savannah/master'

2011-07-06  John Darrington  <john@darrington.wattle.id.au>

	Remove redundant files in test sources, that apparently caused link problems

	Fix compiler warnings

2011-07-03  John Darrington  <john@darrington.wattle.id.au>

	Added dialog box for the AUTORECODE command.  Closes bug #30009

2011-07-02  John Darrington  <john@darrington.wattle.id.au>

	Quick Cluster: Avoid crash when presented with missing values

	QUICK-CLUSTER: Seperate const from non-const data and make it handle splits

	For consistency with other files use <> instead of ""

	Remove some gnulib modules whichare being flagges as obsolete

	Use PACKAGE_URL from config.h instead of literal string

2011-07-01  Ben Pfaff  <blp@cs.stanford.edu>

	doc: Fix order of NUMERIC and MRSETS sections.
	The sections were out of alphabetical order.

	Found by texi2html.

2011-07-01  John Darrington  <john@darrington.wattle.id.au>

	Update NEWS file

	Implemented the POSTHOC subcommand for the ONEWAY command.
	Currently, only LSD, Tukey, Bonferroni, Scheffe, Games-Howell
	and Sidak are supported. These are presented as Multiple
	Comparisons - the Homogeneous Subsets are not yet implemented.

	Fix bug where recent data files were not added

	Replace the t-test paired options dialog with a simpler implementation.
	This makes use of some commonality with the npar 2 sample related dialog.

	Add the /BLANK subcommand to AUTORECODE

	Implement dialog box for the non-parametric 2-related-samples tests

	Move the glade definition for the paired samples dialog box to its own file

	Added COUNT dialog box. Addresses one part of bug #29869

	New widget PsppireValChooser.
	This widget provides a user interface allowing the user to input the
	a value, or range of values.  This was previously done "by hand" in
	the recode dialog, but was awkward to maintain, and clumsy.  Upcoming
	dialogs will need something very similar. So now seemed like a good
	time to encapsulate it.

	Use variable labels in DESCRIPTIVES output.  Fixes bug #31565

	Avoid GtkCritical in recode dialog

	Fix incorrect conditional

	Fix GUI issues in K-Related NPAR dialog box.

	Mark get_rule function as inline.

	Use greater-than-or-equal to sign instead of '>='.
	Now that the "ascii" driver supports non-ascii, we can use these
	unicode characters to give more elegent output.

	Implemented the McNemar test.  Closes bug #33242

	Fix bugs deleting temporary files and their containing directory.
	The clean_temp module provided by gnulib doesn't cleanup on program
	exit.  We must do that ourselves.  Secondly, the close_temp_file function
	was supposed to remove the file, but didn't do that.  Thirdly, files
	were not being registered with the clean_temp module on creation.
	This change fixes these problems.

	Make the value labels dialog resizable

	Replace deprecated function call

	Remove action member from PsppireSelector

	Replace some deprecated GTK macros

	Change the order of the reported NPAR values in two sample related tests.
	This change makes the order of the reported values follow the order in
	which they were entered in the syntax.  The changes to the tests affect
	only the order.  The numbers are unchanged.

	Remove duplicated functions

	Remove unused functions

	Filter the data file list by mime type instead of file extension

	Set the show-tips property on the recent chooser menus

	Use local include paths instead of relative to $top_builddir/src
	The old method appeared not to work with some gcc versions.

	Replace some obsolete Gtk macro calls

	Fix building when readline library is not present

	Added support to read OpenDocument spreadsheet files

	Implemented a zip-writer to correspond to zip-reader

	Perl Module - Add function to count cases in a reader.
	Closes bug #33381

	Remove some files which are no longer used

	Fix bug parsing T-TEST

	Re-implemented the T-TEST command and the levene calculation.
	Also updated the ONEWAY command to use the new levene test.
	The changes to t-test.at in this changeset affect only whitespace
	or the order of reported significance.  The numbers remain unchanged.

	Merge remote branch 'savannah/master' into sourceview
	Conflicts:
		src/ui/gui/automake.mk
		src/ui/gui/psppire-data-window.c
		src/ui/gui/psppire-syntax-window.c
		src/ui/gui/psppire-syntax-window.h

2011-06-27  John Darrington  <john@darrington.wattle.id.au>

	Fixed the categoricals such that now both GLM and ONEWAY work

	GLM: Add unimplemented subcommands, and add a test.
	This change adds a basic GLM test for the "Latin Square" use case.
	It also implements the more common subcommands that might occur in
	a real life example of such usage.  The /DESIGN subcommand differs
	slightly from spss.  In spss, it is optional, and if given can be
	empty.  In this change, /DESIGN is mandatory and may not be empty.
	The rational for that, is that spss's default is to include interactions
	for all the factors.  We don't (yet) support interactions, so it's
	better to refuse to run a syntax which relies upon the default
	rather than to run it with different semantics.

2011-06-26  John Darrington  <john@darrington.wattle.id.au>

	First working GLM command

2011-06-24  Jason H Stover  <jhs@franz.gcsu.edu>

	Added type 3 sums of squares to GLM

2011-06-23  Ben Pfaff  <blp@cs.stanford.edu>

	gui: Move some formatting functions into PSPP core.

	gui: Strip numerics and strings differently in value_to_text().
	Otherwise a long string value that only contains a few
	characters followed by all spaces is hard to read.

	gui: Eliminate some dependencies on the dictionary.
	Previously all of the dialog boxes used by the variable sheet
	kept around a pointer to the dictionary solely to obtain the
	dictionary's encoding.  Previous commits have eliminated that
	use, so this commit gets rid of the dictionary members.

	gui: Simplify value_to_text() parameters.
	Both the format and the dictionary can be inferred from the
	variable being formatted in every case in the tree but one, so
	use that as the calling convention.  In the one remaining case,
	it's just as easy to call data_out() directly.

	gui: Consistently use print format instead of write format.
	In syntax, only the WRITE command uses write formats.  Other
	commands all use print formats.  I don't see why the GUI should
	act differently.

	gui: Drop 'dict' parameter from text_to_value().
	This parameter is used only to obtain the dictionary's
	encoding, which may also be obtained through the variable.

2011-06-22  Ben Pfaff  <blp@cs.stanford.edu>

	sys-file-reader: Reduce invalid format from error to warning.
	gaby jongenelen <geebie21@gmail.com> provided a .sav file
	written by "MS Windows Release 13.0 spssio32.dll" that had
	zeros in the "write" format field for several numeric
	variables.  Until now, PSPP treated this as an error and
	rejected the file.  This commit changes the error to a warning
	and suppresses the diagnostic entirely for this case of a
	zero value.

2011-06-17  Ben Pfaff  <blp@cs.stanford.edu>

	sys-file-writer: Write identical sets of value labels only once.
	The .sav file format can save space by writing a single set of
	value labels once and assigning it to multiple variables.  PSPP
	has never taken advantage of this, instead writing the value
	labels for each variable separately.  This commit adopts the
	strategy for avoiding duplicates apparently used by SPSS, based
	on observing a .sav file that had many groups of variables with
	the same labels.

	Thanks to Curt Reinhold <Curt.Reinhold@psychonomics.de> for
	providing the .sav file that led to this discovery.

2011-06-17  Ben Pfaff  <blp@cs.stanford.edu>

	variable: Do not trim trailing whitespace from variable labels.
	Until now, PSPP has trimmed trailing whitespace from variable
	labels.  SPSS does not do this, which led to gratuitous changes
	in variable labels when reading and then writing back a .sav
	file, so this commit stops stripping trailing whitespace from
	variable labels.

	Thanks to Curt Reinhold <Curt.Reinhold@psychonomics.de> for
	providing the .sav file that led to this discovery.

2011-06-17  Ben Pfaff  <blp@cs.stanford.edu>

	sys-file-writer: Omit empty multiple response sets records.
	Multiple response sets are divided into two records in a .sav
	file: one record with subtype 7 and one with subtype 19.  PSPP
	was incorrectly writing both records even if one of them was
	empty.  This commit makes it omit the empty record.

	Thanks to Curt Reinhold <Curt.Reinhold@psychonomics.de> for
	providing the .sav file that led to this discovery.

2011-06-17  Ben Pfaff  <blp@cs.stanford.edu>

	sys-file-writer: Write variable names in mrsets in lowercase.
	SPSS appears to write the short names of the variables in a
	multiple response set in lowercase, so this commit make PSPP
	do the same.

	Thanks to Curt Reinhold <Curt.Reinhold@psychonomics.de> for
	providing the .sav file that led to this discovery.

2011-06-15  Ben Pfaff  <blp@cs.stanford.edu>

	sys-file-reader, sys-file-writer: Use codepage numbers.
	PSPP has had a library for converting between encoding names
	and codepage numbers for a while, but the system file reader
	and writer code has not taken advantage of it.  This commit
	make them use it.

	Update code that assumed a dictionary's encoding could be NULL.
	Until recently, I think, it was possible for dict_get_encoding()
	to return NULL.  It is no longer possible as far as I can see,
	so this commit adds a comment that says so to the definition
	of dict_get_encoding().  It also updates a few callers that
	had checks for null pointers.

	sys-file-writer: Write encoding names in all-uppercase.
	SPSS appears to write encoding names in all-upperacse, so PSPP
	should too.

2011-06-15  Ben Pfaff  <blp@cs.stanford.edu>

	sys-file-writer: Put long variable name in variable attributes.
	Otherwise, PSPP cannot read back .sav files that it writes, if
	they contain variable attributes for variables with long names.

	Thanks to Curt Reinhold <Curt.Reinhold@psychonomics.de> for
	providing the .sav file that led to this discovery and to John
	Darrington for helping to investigate.

2011-06-14  Ben Pfaff  <blp@cs.stanford.edu>

	CD: Fix a bug and add a regression test.

2011-06-14  Ben Pfaff  <blp@cs.stanford.edu>

	GET DATA /TYPE=TXT: Also allow full format to be specified.
	The implementation of fixed-format mode only allowed a format
	type (e.g. DOLLAR) to be specified.  SPSS also allowed a full
	format specification (e.g. DOLLAR12.2), so this implements that
	feature.

	Reported-by: Ronaldo Baltar <ronaldo.baltar@gmail.com>

2011-05-26  Ben Pfaff  <blp@cs.stanford.edu>

	tests: Remove unused old shell-based test files.
	Somehow I forgot to delete these when I switched everything over
	to use Autotest.  Nothing refers to them any longer.

2011-05-25  Ben Pfaff  <blp@cs.stanford.edu>

	gui: Clean generated gtk.h wrapper on "make clean".
	Fixes "make distcheck".

	Reported by John Darrington.

2011-05-13  Ben Pfaff  <blp@cs.stanford.edu>

	gui: Fix temporary filtering by a variable's value.
	Problem reported by Mindaugus.
	Bug #33088.

2011-05-13  Ben Pfaff  <blp@cs.stanford.edu>

	gui: Make AGGREGATE dialog initially show all of the right pane.
	The AGGREGATE dialog initially had a very narrow left pane, so
	commit 2e6cffa44ef5 "Aggregate dialog: Initialize HPane widget width
	on opening" added a callback function to adjust the position of the
	divider between the panes to half the window's width.  But this
	happens after the window has been laid out, which means that unless
	the window is very wide to begin with, it will cause part of the
	right pane to disappear.

	I was able to get more consistently good results by forcing a minimum
	width for the left pane with a width_request, and making the right
	pane shrinkable below the minimum size needed to show all of it.  A
	final tweak was to make the left pane automatically grow with the
	window.

	If you've already used the Aggregate dialog then your preferences for
	the window size have been saved, so for testing this it is best to
	remove $HOME/.config/psppire before each experiment.

	Bug #31126.

2011-05-12  Ben Pfaff  <blp@cs.stanford.edu>

	SORT CASES: Don't delete filtered-out cases.
	This was first noticed by users in the GUI, but it is a problem with
	the implementation of SORT CASES, not a problem with the GUI.

	Bug #33089.
	Thanks to Mindaugus for reporting the problem.

2011-05-12  Ben Pfaff  <blp@cs.stanford.edu>

	gui: Make File|Recent Files remember the correct encoding.
	It's no good to have File|Open... able to open a file in any encoding
	if later pulling up the same file with File|Recent Files screws that
	up, so this commit fixes the problem by noting the charset in the
	file's mime-type.

2011-05-12  Ben Pfaff  <blp@cs.stanford.edu>

	gui: Recode syntax files on load and save.
	This adds a new widget that allows an encoding to be selected to the
	File|Open dialog box, as well as to the File|Save As... dialog box
	for syntax files only.  Files are recoded to UTF-8 on load and back
	to the original encoding on save.

	File|Recent Files doesn't yet properly save the encoding information.
	That's coming up in the next commit.

	Bug #33254.
	Thanks to John Darrington for reporting this problem.

2011-05-11  Ben Pfaff  <blp@cs.stanford.edu>

	gui: Refactor checking for .sav and .por suffixes.
	It seems reasonable to allow, e.g., .Sav as well as .SAV and .sav, so
	this does that.  It also splits name_has_suffix() into smaller
	pieces that will individually be used in an upcoming commit.

	gui: Move null_if_empty_param() from psppire-window to helper.
	An upcoming commit will introduce a new user of this function in a
	different source file, so it seems best to have this defined in a
	common header file.

	i18n: New function is_encoding_supported().
	This will be used for the first time in an upcoming commit.

	encoding-guesser: New function encoding_guess_whole_file().
	This will be used for the first time in an upcoming commit.

	pspp-dump-sav: Add #include <limits.h> to get INT_MAX definition.
	Problem reported by Harry Thijssen <pspp@sjpaes.nl>.

2011-05-11  Ben Pfaff  <blp@cs.stanford.edu>

	configure: Use $LIB<x> for linking a program, not $LTLIB<x>.
	The gettext manual says:

	     `@LIBINTL@' is for use without `libtool', `@LTLIBINTL@' is for
	     use with `libtool'

	It has similar wording for libiconv.

	Since there's lots of libtool-related stuff in the PSPP makefiles, I
	assumed that PSPP needed $LTLIB<x>.  But it now appears that this is
	only correct for linking a libtool library, not for linking a
	program that links against libtool libraries.

	On GNU/Linux, both $LIB<x> and $LTLIB<x> expand to the empty string,
	so I couldn't tell from experimenting there.

	This should fix link failures with Mingw, reported by Harry Thijssen
	<pspp@sjpaes.nl>.

2011-05-10  Ben Pfaff  <blp@cs.stanford.edu>

	pspp-dump-sav: Add GNU standards compliant command line interface.

	pspp-dump-sav: Do not mark any strings for translation.
	The pspp-dump-sav program is a debugging tool not intended for common
	use by end users, so it seems better to avoid burdening translators
	with its strings.

	pspp-dump-sav: Update #include syntax to current style.

	dissect-sysfile: Move to new "utilities" directory as "pspp-dump-sav".
	This utility comes in handy from time to time working with end users,
	so I think it's best to start installing it with the other binaries,
	instead of hiding it in the "tests" directory and having to explain
	where to find it.

2011-05-10  Ben Pfaff  <blp@cs.stanford.edu>

	Automatically link every program against libintl and libiconv.
	On glibc systems, libiconv and libintl are both built into libc.  That
	means that it's very easy to forget to link programs against them,
	because it still builds OK on GNU/Linux.  However, on other systems
	they are usually separate libraries and forgetting to link against
	them breaks the build.

	This commit switches from previous PSPP practice, in which these
	libraries were linked explicitly to every binary that requires them,
	to a simplified practice where they are in LIBS so that every binary
	is automatically linked to them.  This has no disadvantage on
	GNU/Linux, our primary target, and the advantage that on other targets
	PSPP works more consistently.

2011-05-10  Ben Pfaff  <blp@cs.stanford.edu>

	gui: Get rid of the_recent_manager global.
	The GTK+ function gtk_recent_manager_get_default() is documented to
	return a singleton.  We might as well take advantage of that instead
	of caching its return value and passing it around.

	po: Update Dutch translation from translation-project.org.

2011-05-09  Ben Pfaff  <blp@cs.stanford.edu>

	gui: Delete now-incorrect advice to translators.
	The string to which the advice applied was deleted, but the comment
	was mistakenly left behind.

	gui: Make File|Recently Used Data behave like File|Open.
	File|Open opens a new dataset if the current one is non-empty.  Due
	to an oversight, File|Recently Used Data always replaced the current
	dataset.  This commit makes File|Recently Used Data work just like
	File|Open.

	gui: Remove redundant call to psppire_window_set_title().

	gui: Make File|Open open multiple datasets by default.
	This is what I always intended to make File|Open do, and in fact I
	had implemented it that way, but I screwed up in rebasing and forgot
	to fix it before my final push.

2011-05-09  Ben Pfaff  <blp@cs.stanford.edu>

	psppire-sheet: Avoid CRITICAL unselecting range before window created.
	Without this change, File|Open that opens a new datasheet yields:

	Gdk-CRITICAL **: gdk_window_invalidate_rect_full: assertion
	`GDK_IS_WINDOW (window)' failed

	I'm not 100% certain that this is the correct fix--perhaps the client
	is at fault for calling this function before a window exists?--but it
	does avoid the message.

2011-05-07  Ben Pfaff  <blp@cs.stanford.edu>

	gui: Avoid creating empty output window at startup time.
	Reported by Harry Thijssen.
	Bug #33234.

	gui: Label message output items in the output viewer treeview.
	Until now, messages (such as errors and warnings) simply had blank
	lines in the output viewer summary treeview.  This made for funny gaps
	and a generally puzzling appearance.  This fixes the problem.

2011-05-07  Ben Pfaff  <blp@cs.stanford.edu>

	gui: Only unselect range from first data sheet when data changes.
	commit 5080068 "gui: Unselect data in data editor when the datasheet
	is replaced" unselected all the data in each of the possible four
	datasheets (supposing that the "split" view is selected), but if the
	"split" view is not in effect then three of the data sheets don't have
	windows and this results in "Gdk-CRITICAL **:
	gdk_window_invalidate_rect_full: assertion `GDK_IS_WINDOW (window)'
	failed".

	This commit switches to unselecting the range only from the first data
	sheet, which seems to be just as effective at solving the original
	problem and does not cause Gdk-CRITICAL messages.

2011-05-07  Ben Pfaff  <blp@cs.stanford.edu>

	ext-array: Speed up with unlocked versions of I/O functions.
	In my tests this reduced a 2.0 second run to only 1.5 seconds.

	Bug #33260.

2011-05-07  Ben Pfaff  <blp@cs.stanford.edu>

	temp-file: Use 64 kB buffer for temporary files.
	Generally PSPP uses temporary files because it has a lot of data to
	write to them.  The default glibc buffer is only 4 kB.  In my tests
	using a 64 kB reduced runtime from 2.5 seconds to 2.0 seconds, but
	increasing the buffer to 1 MB had no additional effect, so 64 kB is a
	reasonable choice.

	Bug #33260.

2011-05-07  Ben Pfaff  <blp@cs.stanford.edu>

	cairo: Left-justify text items rendered in the GUI.
	Otherwise multi-line syntax comes out right-justified, which looks
	really funny.

	Bug #33261.

2011-05-07  Ben Pfaff  <blp@cs.stanford.edu>

	gui: Use GTK+ accessor functions instead of deprecated macros.
	These are now available on all GTK+ versions due to the <gtk/gtk.h>
	wrapper added in the previous commit.

	gui: Add <gtk/gtk.h> wrapper with functions from GTK+ 2.18 and 2.20.
	Suggested by John Darrington.

	dataset: Fix memory leak.
	Reported by John Darrington.

2011-05-07  Ben Pfaff  <blp@cs.stanford.edu>

	gui: Add workaround for GTK+ 2.20 crash at startup.
	Based on this patch against Inkscape:
	https://launchpadlibrarian.net/60175914/copy_renamed_icons.patch

	Reported by Fredrik Clementz.
	With input from John Darrington and Harry Thijssen.
	Tested by Mindaugus.
	Bug #31511.

2011-05-06  Ben Pfaff  <blp@cs.stanford.edu>

	gui: Provide substitute for gtk_widget_get_realized() for GTK+ < 2.20.
	Problem reported by "Mindaugas Baranauskas" <embar@super.lt>.

	po: Update Dutch translation from translation-project.org.

2011-05-05  Ben Pfaff  <blp@cs.stanford.edu>

	Updated the Lithuanian translation from http://translationproject.org.

2011-05-04  Ben Pfaff  <blp@cs.stanford.edu>

	intern: Fix GCC warning.
	Otherwise, GCC issues the following warning:

	intern.c:83: warning: comparison of distinct pointer types lacks a
	cast.

2011-05-04  Ben Pfaff  <blp@cs.stanford.edu>

	gui: Unselect data in data editor when the datasheet is replaced.
	The active cell in the PsppireSheet remembers its contents even if
	the whole sheet gets replaced, so we have to unselect the cell when
	this happens to avoid replacing the cell's contents by whatever was
	there before.

	Bug #30502.
	Thanks to Michel Boaventura for reporting the problem and John
	Darrington for diagnosing it.

2011-05-04  Ben Pfaff  <blp@cs.stanford.edu>

	Increment version to 0.7.8 to send to Translation Project.

2011-05-03  Ben Pfaff  <blp@cs.stanford.edu>

	psql-reader: Fix build when PostgreSQL is installed.
	Problem reported by "Mindaugas Baranauskas" <embar@super.lt>.

	NEWS: Consolidate post-0.6.2 NEWS.
	Suggested by John Darrington.

2011-05-03  Ben Pfaff  <blp@cs.stanford.edu>

	gui: Change View|Data and View|Variables to radio button menu items.
	I didn't know what View|Variables did until I tried it, at which
	point I was surprised that it changed into View|Data.  I think that
	a pair of radio button menu items better communicates the intent.
	Also, this situation seems to fit well what the GNOME Human Interface
	Guidelines say about radio button menu items:

	    Radio button menu items show which of two or more
	    mutually-exclusive settings are currently selected, and allow
	    the user to choose a different setting by selecting its menu
	    item.

	    * If you need to offer a choice of two mutually-exclusive
	      settings to the user, use a group of two radio button items
	      instead of a single check box menu item if the settings are
	      not clearly opposites. For example, represent View as Icons
	      and View as List as two radio button items.

2011-05-03  Ben Pfaff  <blp@cs.stanford.edu>

	gui: Add ellipsis to menu items that require further input.
	The GNOME Human Interface Guidelines say:

	    Label the menu item with a trailing ellipsis ("...") only if
	    the command requires further input from the user before it
	    can be performed. Do not add an ellipsis to items that only
	    present a confirmation dialog (such as Delete), or that do
	    not require further input (such as Properties, Preferences or
	    About).

	Most PSPPIRE menu items fit this description, so they should have
	trailing ellipses, which this commit adds.

	Some GTK+ programs use the Unicode HORIZONTAL ELLIPSIS (U+2026)
	character instead of three periods in menu items.  In a quick check
	on my own machine, however, three periods were over twice as common.
	In an informal survey on pspp-dev, the best argument presented in
	favor of one or the other was that three periods may be more familiar
	for translators and thus cause less confusion in translation.

2011-05-03  Ben Pfaff  <blp@cs.stanford.edu>

	Implement DATASET commands.

	gui: New "entry-dialog" module for prompting for a text string.
	This will be used in an upcoming commit to implement File|Rename
	Dataset.  It is made general-purpose, rather than specifically
	for that purpose, because it is not any harder to do so and might
	be useful somewhere else in the future.

2011-05-03  Ben Pfaff  <blp@cs.stanford.edu>

	psppire-buttonbox: Add "default" property.
	This property allows the default button to be controlled from a
	GtkBuilder description, instead of forcing the default to Continue.

	Only a single bit should be set in the "default" mask.

2011-05-03  Ben Pfaff  <blp@cs.stanford.edu>

	gui: Fix g_object_get() memory leaks for PsppireWindow's filename.
	g_object_get() makes a copy of strings that it returns, so every call
	for "filename" was returning a copied string that the caller did not
	free.

	gui: Fix File|Open in syntax editor.
	It didn't do anything.

	gui: Eliminate dataset-related global variables.
	This should make it easier to introduce support for multiple datasets
	later.

	gui: Make syntax execution functions take a PsppireDataWindow argument.
	The argument specifies which dataset the syntax is meant to apply to.
	For now, this is obvious, because there is only one dataset, but in
	the future there will be more than one.

	gui: Prefer NULL to 0 for initializing pointers.
	Using NULL instead of 0 is better modern C style.

	gui: Remove obviously unnecessary #include directives.
	These simple header files #include <gtk/gtk.h> but do not reference
	anything from GTK+, so they do not to #include its header.

	gui: Include only <gtk/gtk.h> to use GTK+.
	The GTK+ manual says: "The recommended way of using GTK+ has always been
	to only include the toplevel headers gtk.h, gdk.h, gdk-pixbuf.h."  We
	might as well follow this practice, since it only makes life easier.

	psppire-window: Use g_string_append_unichar() instead of global var.
	Seems slightly cleaner.

	gui: Use dispose instead of finalize method in PsppireDataWindow.
	According to the GObject reference manual, "When dispose ends, the
	object should not hold any reference to any other member object."
	That is, references should be dropped in dispose, not in finalize.

	gui: Drop null base_finalize function from PsppireDataWindow.
	According to the GObject manual, base_finalize is "Never used in
	practice. Unlikely you will need it." so I don't see a reason to keep
	a stub here.

2011-05-03  Ben Pfaff  <blp@cs.stanford.edu>

	gui: Fix const-ness warning in create_lines_tree_view().
	This fixes this warning from GCC:

	src/ui/gui/text-data-import-dialog.c: In function ‘create_lines_tree_view’:
	src/ui/gui/text-data-import-dialog.c:875: warning: initialization
	discards qualifiers from pointer target type

2011-05-03  Ben Pfaff  <blp@cs.stanford.edu>

	gui: Fix const-ness warning for measure_to_string() return type.
	This fixes the following GCC warning:

	src/ui/gui/var-display.c: In function ‘measure_to_string’:
	rc/ui/gui/var-display.c:25: warning: return discards qualifiers from
	pointer target type

2011-05-03  Ben Pfaff  <blp@cs.stanford.edu>

	gui: Put a separator line before list of windows in Windows menus.
	I found it a bit confusing before, that the list of windows in the
	Windows menu was not separated from the list of actions of windows.
	This fixes the problem.

	Simply adding a separator item to the .ui files doesn't work, because
	GtkUIManager removes it.  The same thing happens if we add a separator
	without adding a real menu item at the same time.

	Thanks to John Darrington for suggesting the root of the problem.

2011-05-03  Ben Pfaff  <blp@cs.stanford.edu>

	gui: Always convert file names to UTF-8 for use in syntax.
	Syntax as understood by the lexer is always in UTF-8, so file names
	have to be in UTF-8 too.  (The PSPP code that opens files based on
	strings from syntax is already using utf8_to_filename() to convert
	them properly before opening.)

	Before commit 9ade26c8349 "lexer: Reimplement for better
	testability and internationalization", the encoding of syntax
	files was not well-defined.  It was reasonable, then, to put file
	names in generated syntax in the file name encoding.

	Commit 9ade26c8349 changed the encoding of syntax so that it was
	always in UTF-8.  This meant that file names in syntax had to be
	converted back into the file name encoding before trying to open
	the files, and I made that change (you can see, for example, the
	call to utf8_to_filename in do_insert() in
	src/language/utilities/include.c).  But I forgot that the GUI
	needs to convert its file names into UTF-8 when it is generating
	syntax, so this commit fixes that up.

2011-05-02  Ben Pfaff  <blp@cs.stanford.edu>

	po: Update Spanish translation from translation-project.org.

	po: Update Catalan translation from translation-project.org.

2011-04-26  Ben Pfaff  <blp@cs.stanford.edu>

	FACTOR: Use %s for literal string.
	tab_title() treats its parameter as a printf format string, so it's
	necessary to use %s.

	Found on Mac OS X with help from Jeremy Lavergne.

2011-04-26  Ben Pfaff  <blp@cs.stanford.edu>

	Use %zu, not %d, to format a size_t.
	Found on Mac OS X with help from Jeremy Lavergne.

2011-04-26  Ben Pfaff  <blp@cs.stanford.edu>

	encoding-guesser: Don't guess UTF-8 for ASCII if it is the fallback.
	When the text presented to the encoding guesser is all ASCII, normally
	the encoding guesser will report ASCII as its guess.  But if the
	fallback encoding is UTF-8, then it reports UTF-8 instead.
	Unfortunately, this makes the encoding guesser a bit harder to test,
	because guesses depend on the system's locale.  It's easier to test
	if all-ASCII always yields ASCII as the guess, so this changes the
	encoding guesser to do that.

	This fixes a test failure on Mac OS X.  Thanks to Jeremy Lavergne for
	reporting the problem.

2011-04-26  Ben Pfaff  <blp@cs.stanford.edu>

	i18n: Fix type of objects passed as u8_mbtouc()'s character parameter.
	Thanks to Jeremy Lavergne for making a Mac OS build system available.

2011-04-26  Ben Pfaff  <blp@cs.stanford.edu>

	QUICK CLUSTER: Adjust comment style.
	PSPP uses primarily /**/ style comments so the use of // comments in
	this file sticks out.

	Also we generally wrap comments (and code) at 79 columns and try to
	write comments as whole sentences, at least where there is room.

	Also, usually PSPP avoids multiple blank lines in a row.

2011-04-26  Ben Pfaff  <blp@cs.stanford.edu>

	QUICK CLUSTER: Update #include directives to match current style.
	These days, usually system header files are #included first, using
	<> notation, and then PSPP's one header files, using "" notation.
	Each group is alphabetized.

	QUICK CLUSTER: Fold quick-cluster.h into quick-cluster.c.
	It's unusual to put 'static' function prototypes into a header file:
	header files are usually used to export declarations for use by other
	source files, but 'static' functions cannot be called outside their
	own source files.

2011-04-26  Mehmet Hakan Satman  <mhsatman@yahoo.com>

	QUICK CLUSTER: New command.

2011-04-25  Ben Pfaff  <blp@cs.stanford.edu>

	sys-file: Add test to write non-ASCII to most .sav string fields.
	Bug #33036.

	sys-file-reader: Add tests for non-ASCII characters and encodings.

	DISPLAY FILE LABEL: Display in a more natural way.

	MRSETS: Recode counted value to UTF-8 before displaying.
	Otherwise they display incorrectly if a counted value contains
	non-ASCII characters.

	sys-file-reader, sys-file-writer: Fix encoding problems for mrsets.

2011-04-25  Ben Pfaff  <blp@cs.stanford.edu>

	sys-file-writer: Fix encoding of several string fields.
	PSPP keeps most string data in the dictionary in UTF-8.  The system
	file writer needs to recode this data into the correct encoding, but
	in several cases it failed to do so.  This fixes the problem.

	Thanks to Mindaugas for reporting the problem and to John Darrington
	for help diagnosing it.

	Bug #33036.

2011-04-25  Ben Pfaff  <blp@cs.stanford.edu>

	sys-file-reader: Take string encoding into account for text records.
	The 'encoding' member of struct sfm_reader was not filled in anywhere,
	so it was always NULL, which meant that the recode operation in
	open_text_record() was a no-op.

	variable: Make var_set_label() use the variable's own encoding.
	I don't see any reason to make the caller supply this.  It just makes
	code harder to read and write.

2011-04-25  Ben Pfaff  <blp@cs.stanford.edu>

	dictionary: Make dict_create() take the new dictionary's encoding.
	There are several places in the PSPP tree that create dictionaries,
	but few of them actually set an encoding.  This causes most
	dictionaries to be in the default encoding, which is often not
	correct.

	By making dict_create() take the encoding as a parameter we force
	the caller to think about the encoding issue up-front.

2011-04-25  Ben Pfaff  <blp@cs.stanford.edu>

	dictionary: Set encoding early when cloning a dictionary.
	Many operations that involve the names of variables and other entities
	in a dictionary depend on the dictionary's encoding, so it is
	potentially important to have the encoding set properly when adding
	other entities to the dictionary.

	I did not check that this fixes an actual bug.

2011-04-25  Ben Pfaff  <blp@cs.stanford.edu>

	short-names: Consider character encoding when making short names.
	Variable names and short names are always in UTF-8, but the length of
	short names needs to be limited to 8 bytes in the dictionary encoding,
	not in UTF-8.  This commit fixes that problem.

	short-names: Drop redundant call to var_set_short_name().
	This function always calls var_set_short_name() twice, so we can drop
	the first call.

	dissect-sysfile: Don't omit the last in a series of text tokens.
	Otherwise dissect-sysfile would not print the last long string
	variable name written by sys-file-writer, because it did not include
	a separator byte after the last record.  (This was obvious running
	dissect-sysfile on a system file with only one variable.)

	str: Always null-terminate string in str_format_26adic().
	It seems like a good idea to always supply a null terminator, even on
	error.

	Reformat src/language/stats/automake.mk.
	It seems more consistent with most of our Makefiles to just write one
	file per line.

2011-04-23  Ben Pfaff  <blp@cs.stanford.edu>

	Updated the Lithuanian translation from http://translationproject.org.

2011-04-23  Ben Pfaff  <blp@cs.stanford.edu>

	Smake: Add unilbrk/u8-possible-linebreaks Gnulib module.
	The ASCII output driver now requires this module, as of commit
	14b3603043 "ascii: Add support for multibyte characters."

	Reported by John Darrington.

2011-04-23  Ben Pfaff  <blp@cs.stanford.edu>

	Add new output/ascii.h header to the distribution, fixing "make dist".

2011-04-22  Ben Pfaff  <blp@cs.stanford.edu>

	ascii: Print syntax in output single-spaced.
	When SET PRINTBACK=ON was in effect, the ASCII output driver would
	put a blank line between successive lines of syntax, because each line
	was output separately.  This commit fixes that, by causing the output
	core to combine successive syntax output items into a single item that
	contains multiple lines of text.  This was essentially what the HTML
	output driver was doing anyhow, so putting this into the core also
	allows removing the corresponding logic from the HTML driver.

2011-04-22  Ben Pfaff  <blp@cs.stanford.edu>

	ascii: Don't print command names in output.
	This seems to be closer to what users expect.

	I think that having the command names in output was being confused
	by users with SET PRINTBACK=ON (see e.g. bug #31561) even though I
	really just added that so that there are clear titles for the output
	that goes with each procedure.  This change should help, I think.

	It might make sense to make drivers only print the titles of
	procedures that have other output, but this commit doesn't do that.

2011-04-22  Ben Pfaff  <blp@cs.stanford.edu>

	odt: Write command name in output both only before command, not after.

2011-04-22  Ben Pfaff  <blp@cs.stanford.edu>

	ascii: Add support for multibyte characters.
	This commit modifies render.at, changing hyphens to non-breaking
	hyphens.  This change is only to ensure that the output for the tests
	in render.at are the same afterward.  Without these changes, these
	tests wrap these tables differently, because they break after the
	hyphens; before, only spaces were considered valid breakpoints.

	Bug #31478.

2011-04-17  Ben Pfaff  <blp@cs.stanford.edu>

	ascii: Drop useless 'wrap_mode' parameter from ascii_layout_cell().
	This parameter is always supplied as WRAP_WORD, so there's no point
	in having it at all.

	Updated the Lithuanian translation from http://translationproject.org.

2011-04-17  Mindaugas  <embar@super.lt>

	gui: Add Lithuanian translation and MIME type to pspp.desktop

2011-04-16  Ben Pfaff  <blp@cs.stanford.edu>

	Updated the Lithuanian translation from http://translationproject.org.

	gui: Fix crash in executor when inline data is missing.
	Without this commit, typing "DATA LIST /x 1." into an otherwise empty
	syntax window and executing it caused a crash because the lexer was
	being accessed after it was destroyed.  This commit averts the crash.

	CROSSTABS: Fix output of multiway statistics tables.
	Bug #27452.

	Updated the Lithuanian translation from http://translationproject.org.

2011-04-15  Ben Pfaff  <blp@cs.stanford.edu>

	table-casereader: Put space between columns.
	When table_casereaders are pasted together next to each other, there
	should normally be a little bit of space between neighboring columns,
	instead of having them directly abutting.  This makes the output of
	LIST, for example, much more readable.

	Without this commit, LIST output for three variables named x, y, and
	z, all with F1.0 format, looks something like this:

	xyz
	---
	111
	222
	311
	412
	521
	612
	711
	811
	912

	With this commit, it looks like this:

	x y z
	-----
	1 1 1
	2 2 2
	3 1 1
	4 1 2
	5 2 1
	6 1 2
	7 1 1
	8 1 1
	9 1 2

2011-04-15  Ben Pfaff  <blp@cs.stanford.edu>

	render: Fix rendering of TAL_GAP rules.
	A rule that is set to TAL_GAP is supposed to have the same width or
	height as a rule of type TAL_1, but without drawing the line.  That
	is, it is supposed to be a small blank space between rows or columns.

	Unfortunately, TAL_GAP was not implemented properly in the rendering
	code.  It was treated just like TAL_0, which meant that it was ignored
	and no gap appeared.

	This commit implements TAL_GAP, fixing the problem.

2011-04-15  Ben Pfaff  <blp@cs.stanford.edu>

	configure: Invoke AM_GNU_GETTEXT by hand.
	The Gnulib "gettext" module does not invoke AM_GNU_GETTEXT, because
	gnulib-tool uses "sed" to filter it out.  So we must invoke it
	ourselves.

	John Darrington narrowed the problem down to the commit b54a5702b6
	"Fix up build following dropping ulc-width-linebreaks module" that
	started using the gettext Gnulib module.

	Bug #33083.
	Reported by Mindaugus.

2011-04-14  Ben Pfaff  <blp@cs.stanford.edu>

	gui: Add missing scroll bar in K related samples variables list.
	Reported by and fix from Mindaugas Baranauskas <embar@super.lt>.
	Reviewed by John Darrington.

2011-04-13  Ben Pfaff  <blp@cs.stanford.edu>

	value-labels: Interpret \n as new-line in value labels.
	Bug #18497.

2011-04-12  Ben Pfaff  <blp@cs.stanford.edu>

	intern: New function intern_strlen().

	intern: Use UP_CAST macro instad of open-coding it.

	po: Update Dutch translation.
	Thanks to the Dutch translation team and the translationproject.org
	coordinators.

2011-04-12  Ben Pfaff  <blp@cs.stanford.edu>

	value-parser: Make parse_value() accept variable's print format also.
	Previously commands such as VALUE LABELS required numeric values to
	be given as plain numbers, but this makes it difficult to add
	meaningful value labels for variables with date and time formats.
	This commit allows values for this command and a few others to be
	given in a variable's print format instead.

	Bug #18497.

2011-04-12  Ben Pfaff  <blp@cs.stanford.edu>

	value-labels: Fix comment.

	DISPLAY: Display values for value labels using the variable's format.
	Until now, the values in value labels have been displayed as plain
	numbers, but this makes the values for variables with date and time
	formats unreadable.  Changing them to use the variable's own format
	makes them easier to read.

	tab: Make tab_value() take a variable instead of a dictionary.
	It seems far more likely that callers will have the variable handy
	than the dictionary.  Also, when the variable is used the format can
	be optional since tab_value() can get it from the variable's print
	format.

2011-04-11  Ben Pfaff  <blp@cs.stanford.edu>

	FORMATS: Allow an optional slash before each set of variable names.
	This increases compatibility.

	FORMATS: Allow setting formats of string variables.
	Thanks to John Darrington for reporting this bug.
	Bug #22012.

2011-04-10  Ben Pfaff  <blp@cs.stanford.edu>

	gui: psppire-var-view: Change "<unset>" to null string.
	Commit 0cb2b9c42 caused NULL variables to be displayed as "<unset>".
	This commit changes that to the empty string, which doesn't require
	translation and is equally clear.

	Suggested by John Darrington <john@darrington.wattle.id.au>.

2011-04-09  Ben Pfaff  <blp@cs.stanford.edu>

	LIST: Fix crash when SPLIT FILE was used.
	Thanks to John Darrington for reporting the problem and to Michel
	Boaventura for reducing the problem to a simple test case.

2011-04-09  Ben Pfaff  <blp@cs.stanford.edu>

	gui: Fix crash in Paired T-Test dialog on selecting first variable.
	When a variable is moved into the list of selected variables in the
	Paired T-Test dialog, that row of the treeview has one nonnull
	variable and one null variable.  Calling var_get_name(NULL) causes a
	segfault.

	I'm not certain that this is the correct fix, but it fixes the
	segfault.  The missing variable is now shown as <unset> until a second
	variable is moved into the treeview.

	Bug #32958.

2011-04-09  Ben Pfaff  <blp@cs.stanford.edu>

	gui: Fix Glib warnings for dialogs in realize and configure callbacks.
	The GtkBuilder documentation says:

	    Prior to 2.20, GtkBuilder was setting the "name" property of
	    constructed widgets to the "id" attribute. In GTK+ 2.20 or newer,
	    you have to use gtk_buildable_get_name() instead of
	    gtk_widget_get_name() to obtain the "id", or set the "name"
	    property in your UI definition.

	This commit fixes the problem by switching from using the "name"
	property to calling gtk_buildable_get_name().

2011-04-09  Ben Pfaff  <blp@cs.stanford.edu>

	gui: Link against $(LIBICONV) too.
	The GUI now uses iconv, so we need to link libiconv too.

	Problem reported by Harry Thijssen <harry.thijssen@gmail.com>.
	Fix suggested by John Darrington <john@darrington.wattle.id.au>.

2011-04-09  Ben Pfaff  <blp@cs.stanford.edu>

	u8-istream: Add cast to iconv() to suppress warnings on some systems.
	Problem reported by Harry Thijssen <harry.thijssen@gmail.com>.
	Fix suggested by John Darrington <john@darrington.wattle.id.au>.

	u8-istream: Include <limits.h> for definition of MB_LEN_MAX.
	Problem reported by Harry Thijssen <pspp@sjpaes.nl>.
	Fix suggested by John Darrington <john@darrington.wattle.id.au>.

2011-04-08  Ben Pfaff  <blp@cs.stanford.edu>

	segment: Fix uninitialized variable in segmenter_parse_comment_2__().
	This caused a couple of test failures on Mac OS X.

	Thanks to Jeremy Lavergne <jeremy@lavergne.gotdns.org> for reporting
	the problem.

2011-04-07  Ben Pfaff  <blp@cs.stanford.edu>

	tests: Only check MODE=360 when EBCDIC is supported.
	Jeremy Lavergne <jeremy@lavergne.gotdns.org> reported that these tests
	fail on Mac OS X.  testsuite.log showed that Mac OS X did not support
	the EBCDIC-US encoding, so this OS cannot support these tests.

2011-04-07  Ben Pfaff  <blp@cs.stanford.edu>

	tests: Fix quoting in data-in tests.
	Without [[ ]] around the test commands, m4 swallows the inner [] in
	the sed argument, causing the substitution to be ineffective.

	Reported by Jeremy Lavergne <jeremy@lavergne.gotdns.org>.

2011-04-07  Ben Pfaff  <blp@cs.stanford.edu>

	gui: widget-io: Fix cleanup code in widget_printf(), widget_scanf().
	The 'arg' member of arguments and the 'dir' member of char_directives
	are only allocated from malloc() if there are more than fit in the
	arrays that are included inside their respective structures, so they
	must only be freed when that internal structure is not used.

	Also, these arrays are allocated with malloc() and so must be freed
	with free(), not g_free().

	Thanks to Benoit Flippen <anagogue@gmail.com> for reporting the
	problem.

2011-04-07  Ben Pfaff  <blp@cs.stanford.edu>

	FREQUENCIES: Fix crash when median and histogram both requested.
	Thanks to Benoit Flippen <anagogue@gmail.com> for reporting this bug.

2011-03-24  Ben Pfaff  <blp@cs.stanford.edu>

	Update version number to 0.7.7 to

2011-03-22  Ben Pfaff  <blp@cs.stanford.edu>

	cairo: Correctly render table during scrolling.
	Commit 845d4b4f3f (cairo: Draw table titles in xr_rendering_draw()
	too) started rendering table titles in the GUI but forgot to
	compensate for this in the call to render_page_draw_region(), so
	scrolling caused visible damage.

	Bug #31569.
	Reported-by: John Darrington <john@darrington.wattle.id.au>

2011-03-22  Ben Pfaff  <blp@cs.stanford.edu>

	i18n: Only close valid iconv converters in i18n_done().
	iconv_open() returns (iconv_t) -1 to indicate an error.  We shouldn't
	pass this to iconv_Close().

	Reported-by: Jeremy Lavergne <jeremy@lavergne.gotdns.org>.

	John Darrington suggested that this was probably the problem, and
	Jeremy confirmed it with valgrind.

2011-03-22  Ben Pfaff  <blp@cs.stanford.edu>

	i18n: Test converting between unknown encodings too.
	This would have found the bug fixed by the previous commit.

2011-03-22  Ben Pfaff  <blp@cs.stanford.edu>

	str: Make ss_alloc_substring_pool() null-terminate its output.
	It's inconsistent that ss_alloc_substring() null-terminates its output
	but ss_alloc_substring_pool() does not.  This caught us out in
	recode_substring_pool(), which used ss_alloc_substring_pool() in a
	fallback case where create_iconv() failed and expected the result to
	be null-terminated.

	Reported-by: Jeremy Lavergne <jeremy@lavergne.gotdns.org>

2011-03-22  Ben Pfaff  <blp@cs.stanford.edu>

	tests: Wrap more binaries for "check-valgrind" target.

	Smake: Add 'memrchr' Gnulib module.
	Thanks to John Darrington for reporting that this was needed.

2011-03-21  Ben Pfaff  <blp@cs.stanford.edu>

	Add valgrind support to testsuite.

2011-03-20  Ben Pfaff  <blp@cs.stanford.edu>

	Fix up build following dropping ulc-width-linebreaks module.
	Commit b5cebf00d5e "Smake: Remove  module"
	unexpectedly broke the build, because ulc-width-linebreaks had several
	indirect dependencies that PSPP actually used but were not in the
	list of Gnulib modules in Smake.  This fixes the problem.

	The oddest consequence fixed by this commit has to do with
	build-aux/config.rpath.  AM_GNU_GETTEXT requires this file, which is
	supplied by only a few Gnulib modules: havelib, gettext, and
	threadlib.  ulc-width-linebreaks depended indirectly on havelib, but
	PSPP did not otherwise depend on any of these modules.  It seemed that
	the best fix was simply to use the Gnulib gettext module, which is
	what this commit does.

2011-03-20  Ben Pfaff  <blp@cs.stanford.edu>

	Change terminology from "active file" to "active dataset".
	I plan to introduce the concept of multiple datasets.  One of these is
	active at any given time, and the others are inactive.  Each one is
	similar to what has been called the "active file" until now.  Thus, it
	is natural to rename the "active file" to the "active dataset".  I
	guess that this greater uniformity of terminology will cause less
	user confusion.

	dataset: Use similar form to dictionary code for callbacks, and document.

	dataset: Rename functions with "dataset_" prefix.

	Rename procedure.[ch] to dataset.[ch].
	These functions deal with datasets, so it is good to name the file after
	the data structure.

	dataset: Remove unused types and useless struct forward declaration.
	These typedefs were not used anywhere in the tree.  The struct forward
	declaration duplicates an identical one at the top of the header.

	message: Remove reference to deleted type "struct source_stream".

	NEWS: Remove Time-stamp line.
	This isn't useful in conjunction with a version control system.  It
	just causes artificial merge conflicts.

2011-03-20  Ben Pfaff  <blp@cs.stanford.edu>

	lexer: Reimplement for better testability and internationalization.
	This commit reimplements PSPP lexical analysis from the ground up.
	From a PSPP user's perspective, this should make PSPP more reliable
	and make it easier to work with syntax files in non-ASCII encodings.
	See the changes to NEWS for more details.

	From a developer's perspective, the most visible change may be that
	strings within tokens are now always encoded in UTF-8, regardless of
	the syntax file's encoding.  Many of the changes in this commit are
	due to this, especially those to functions that check for valid
	identifiers: an identifier in UTF-8 is not necessarily the same length
	when encoded in the dictionary's encoding, but limits on identifier
	length must be enforced in the dictionary's encoding (otherwise it
	might not be possible to write out a valid system file, since the
	identifier might not fit in the fixed length fields in such files).

	Another important change is that, whereas before some special syntax
	had to be handled by the parser providing feedback to the lexer, now
	increasing the sophistication of the lexer has enabled all PSPP syntax
	to be analyzed into tokens.  This permitted some other improvements:

	  - An arbitrary number of tokens of lookahead, up to the end of the
	    current command, is now supported using lex_next_token() and
	    related functions.

	  - Before, some command implementations had a special attribute that
	    meant that the top-level PSPP command parser would not consume the
	    final token of the command name (because that token was not
	    followed by tokenizable syntax).  This is no longer necessary and
	    has been removed.

	  - Before, each command implementation was responsible for ensuring
	    that valid command syntax was not followed by trailing garbage,
	    often by calling lex_end_of_command() as the last step of parsing.
	    This is no longer necessary; the main command parser will ensure
	    this for itself.

2011-03-20  Ben Pfaff  <blp@cs.stanford.edu>

	scan: New library for high-level PSPP syntax lexical analysis.
	This library converts a stream of segments output by the "segment"
	library into PSPP tokens.

2011-03-20  Ben Pfaff  <blp@cs.stanford.edu>

	segment: New library for low-level phase of lexical syntax analysis.
	This library provides for a low-level part of lexical analysis for
	PSPP syntax, which I call "segmentation".  Segmentation accepts a
	stream of UTF-8 bytes as input.  It outputs a label (a segment type)
	for each byte or contiguous sequence of bytes in the input.

	The following commit will implement the high-level phase of lexical
	analysis, called "scanning", that converts a sequence of segments into
	PSPP tokens.

2011-03-20  Ben Pfaff  <blp@cs.stanford.edu>

	u8-istream: New library for reading a text file and recoding to UTF-8.
	This new library will be used in an upcoming commit.

	encoding-guesser: New library to guess the encoding of a text file.
	This will be used by other new libraries in upcoming commits.

	i18n: New functions and data structure for obtaining encoding info.
	For now these functions don't do any caching, but it might sense to
	add caching later if they are called frequently.

	identifier: Rename token_type_to_string() and make a new version.

	i18n: New functions for truncating strings in an arbitrary encoding.

	i18n: New function recode_string_len().

	i18n: New function uc_name().

	hash-functions: New function hash_case_bytes().
	This is useful for hashing an arbitrary byte sequence case-insensitively.
	Obviously most uses would be better off working with Unicode but we aren't
	there yet.

	str: New functions for checking for and removing string suffixes.

	str: Rename ss_chomp() to ss_chomp_byte(), ds_chomp() to ds_chomp_byte().
	This paves the way for new functions that chomp an entire substring.

	str: New function ss_realloc().

	output: New function text_item_create_nocopy().

2011-03-20  Ben Pfaff  <blp@cs.stanford.edu>

	sys-file-reader: Refactor to clean up character encoding support.
	The system file format is unusual in that it does not record the encoding
	used by character strings at the beginning or at any fixed place in the
	file.  Instead, it can be recorded practically anywhere in the file.  It
	never precedes all of the actual character strings in the file, which makes
	it impossible to interpret those strings completely and correctly until it
	is encountered.

	Until now, the system file reader has dealt with this situation by
	stuffing uninterpreted character strings into data structures until the
	encoding is known, then at that point fetching out the character strings,
	reencoding them, and stuffing them back into the data structures.  This
	does work, but it has the disadvantage that all of the PSPP data
	structures have to tolerate character strings with unknown encoding.  In
	some cases this seems like an ugly situation.  For example, arbitrary
	variable names have to be supported, even though the syntax for variable
	names is circumscribed by the language, because the syntax rules for
	variable names cannot be completely and correctly applied to a string that
	is in an unknown encoding.

	This commit fixes that problem by adopting a new way to read system files.
	Each record in the system file dictionary is essentially slurped into
	memory as a chunk, then the character encoding is extracted from it, then
	the rest of the dictionary is interpreted based on that encoding.  The
	actual implementation is a little more intricate because the format of
	system file records is somewhat non-uniform.

2011-03-20  Ben Pfaff  <blp@cs.stanford.edu>

	file-name: Do not make output files line-buffered in fn_open().
	I don't see any reason to do this.  I can't see anything in the commit
	log for this file or in OChangeLog that explains why it was done.

	data-reader: Remove unreachable "return" statements.

2011-03-19  Ben Pfaff  <blp@cs.stanford.edu>

	file-handle-def: Use hmap instead of list for name table.
	It makes much more sense to keep an index of names using a hash table
	than using a linked list.

	Update all #include directives to the currently preferred style.
	I left src/ui/gui alone for now.

	Smake: Remove ulc-width-linebreaks module.
	This function has not been used in PSPP for a long time now.

2011-03-11  Ben Pfaff  <blp@cs.stanford.edu>

	FREQUENCIES: Fix percentiles calculation.
	The condition for using a variate directly instead of interpolating was
	just wrong.  It would interpolate in cases where it clearly should not,
	which produced incorrect results in many cases.

	Thanks to Fabio Bordignon <bordignon@demos.it> for reporting the problem
	and supplying a simple test case.

2011-03-10  Ben Pfaff  <blp@cs.stanford.edu>

	T-TEST: Fix use-after-free with TEMPORARY and independent samples.
	When TEMPORARY is in effect, proc_commit() destroys the temporary
	dictionary.  This means that any procedure that does not somehow disable
	temporary transformations and refers to a variable following proc_commit()
	has a use-after-free error.

	T-TEST has two different bugs of this type.  First, the loop that destroys
	group statistics refers to destroyed variables.  This commit fixes this
	problem by instead using variable aux data destructors to destroy group
	statistics.

	Second, when there is an independent variable, destroying its values
	requires knowing the variable's width.  This commit fixes this problem by
	destroying the values before calling proc_commit().

	The AUTORECODE, DESCRIPTIVES, RANK, and REGRESSION procedures appear to
	have similar issues (not fixed by this commit).

	Reported by Jeremy Lavergne <jeremy@lavergne.gotdns.org>.

2011-03-10  Ben Pfaff  <blp@cs.stanford.edu>

	group: Delete unused functions.

	DELETE VARIABLES: Style fix.

2011-02-24  Ben Pfaff  <blp@cs.stanford.edu>

	README.Git: Update to newer commit.
	This is the Gnulib commit I'm testing against locally.  It should fix the
	problem that showed up in the nightly build, in which the dtoastr module
	was missing.

2011-02-19  Ben Pfaff  <blp@cs.stanford.edu>

	data-out: Add test for non-ASCII custom currency formats.
	These now work as I would expect, so add a test to avoid future regression.

2011-02-19  Ben Pfaff  <blp@cs.stanford.edu>

	data-out: Optimize and fix some bad assumptions.
	Until now, data_out_pool() and its wrapper function data_out() have always
	done at least two memory allocations: one to fill in the initial version
	of the result and another to recode it to UTF-8.  However, recoding to
	UTF-8 is usually unnecessary, because most output formats always produce
	output in UTF-8 anyway.  Only binary formats and the string A format ever
	produce data in other encodings, so this commit drops recoding entirely
	except for those cases.  Binary formats are a particularly special case:
	usually it doesn't make any sense to use these formats for text output,
	but this commit does its best to translate the binary output bytes into
	valid UTF-8, at least up to the first null byte.

	This commit also finishes fixing up display widths.

	The closely related data_out_legacy() function, which only has one user
	in three also needed some work.  It was badly named, so I renamed it to
	data_out_recode().  It made the bad assumption that the data passed in
	was encoded in ASCII (written C_ENCODING).  It also made the bad
	assumption that the number of bytes output would be exactly the format's
	width.  This rewrite fixes these problems.

2011-02-19  Ben Pfaff  <blp@cs.stanford.edu>

	pool: Support NULL pool argument to pool_alloc_unaligned().
	I don't see a reason that this should be unsupported.

	data-out: Reorganize output_Z() to be more easily understood.
	It took me a minute to figure out what was going on here, so this commit
	slightly reorganizes it.

2011-02-19  Ben Pfaff  <blp@cs.stanford.edu>

	format: Count prefix and suffix width in terms of display columns.
	Until now, the prefixes and suffixes for custom currency formats
	(CCA, etc.) have been considered to occupy one display column per
	byte.  This is fine for prefixes and suffixes like "$" or "%", but
	falls down badly with U+00A5 (¥) or U+20AC (€), which occupy two
	or three bytes, respectively, in UTF-8, while occupying only a
	single display column.

	This commit fixes the problem.  It doesn't add a test yet because
	there are still some higher-level issues, but that will come in
	a later commit when those remaining issues are resolved.

2011-02-19  Ben Pfaff  <blp@cs.stanford.edu>

	format: Create a new "struct fmt_affix" for prefix and suffix strings.
	This combines two changes: changing the string type for numeric
	prefix and suffix strings from "struct substring" to plain "char *",
	and putting the string inside a new structure.  Both of these will
	make more sense after the following commit, which adds another member
	to the new structure and stops using the length of the string in so
	many places (which is the reason that "struct substring" was a good
	choice).

	data-out: Make each converter responsible for storing null terminator.
	Until now, every converter has produced output that is exactly as many
	bytes long as the format's width.  In upcoming patches this will change,
	because in UTF-8 a character that occupies a single display column can
	require multiple bytes.  In preparation, this commit requires the
	individual converters to write out their own null byte, giving a bit
	more flexibility regarding length.

2011-02-19  Ben Pfaff  <blp@cs.stanford.edu>

	format: Increase abstraction of fmt_number_style.
	Upcoming commits will make some changes to fmt_number_style, so it
	seems best to avoid having clients actually construct and modify
	instances of this structure.  This commit makes that change.

	We could take it one step further and add accessor functions even
	for reading out the structure, but in my opinion that would be
	overkill for this structure.

2011-02-19  Ben Pfaff  <blp@cs.stanford.edu>

	legacy-encoding: Remove.
	The functions in this module are no longer used.

2011-02-19  Ben Pfaff  <blp@cs.stanford.edu>

	i18n: Introduce C_ENCODING as replacement for LEGACY_NATIVE.
	The LEGACY_NATIVE name seems a bit awkward for something that is just the
	name of the encoding for strings in C source code, that is, the C locale,
	so this commit renames it to C_ENCODING and moves it to i18n.h with the
	rest of the encoding-related functions.

	In addition, PSPP assumes in various places that the local system has
	ASCII-based locales.  I don't think there's much point in pretending to
	support EBCDIC, so this commit removes that little bit of support.

2011-02-19  Ben Pfaff  <blp@cs.stanford.edu>

	i18n: New function recode_byte().

	PRINT: Use UTF-8 encoding for output to the output subsystem.
	All string data coming into the output subsystem must be encoded in UTF-8,
	but PRINT was recoding it into ASCII instead.

	CROSSTABS: Eliminate redundant data copying.
	There's no point in copying the output string twice.

2011-02-15  Ben Pfaff  <blp@cs.stanford.edu>

	Use new Gnulib function dtoastr() to format short, accurate real numbers.
	%.*g with DBL_DIG + 1 as argument is simple but in rare cases it fails to
	accurately format a real number.  The recently added Gnulib routine
	dtoastr() always formats a real number accurately, so switch to using it
	for these cases.

2011-02-13  Ben Pfaff  <blp@cs.stanford.edu>

	operations.def: Fix indentation.

2011-02-12  Ben Pfaff  <blp@cs.stanford.edu>

	PRINT SPACE: When an output file is specified, don't ignore expression.
	When both OUTFILE= and an expression were specified on PRINT SPACE, the
	expression was ignored (if it was only a single token) or an error would
	occur (if it was was more than one token).

	GET DATA: Get rid of lex_put_back().
	An upcoming commit will get rid of lex_put_back(), so don't use it here.

	float-format: Eliminate tests' dependence on exact string encoding.
	Until now, the float-format tests have depended on the PSPP syntax
	accepting arbitrary byte values in strings, without treating them as part
	of any particular encoding.  The lexer is being rewritten so that this
	assumption is no longer true, so this commit eliminates this assumption in
	the float-format tests.  After this commit, the tests only use ASCII
	characters in strings.

2011-02-05  Ben Pfaff  <blp@cs.stanford.edu>

	por-file-reader: Remove dependency on VAR_NAME_LEN.
	VAR_NAME_LEN wasn't really needed here because we knew that the name we
	started from was no more than 8 bytes long.  Also, we know that we can
	come up with a unique name within ULONG_MAX tries since we'd run out of
	memory before running out of values to try.

	Most uses of VAR_NAME_LEN within PSPP are wrong due to encoding issues:
	the limit applies to variable names in the encoding used by the data
	set, but most uses of VAR_NAME_LEN actually limit the length of a name
	in UTF-8.  The UTF-8 representation of a name can be longer or shorter
	than its representation in the data set encoding, so it seems best to
	eliminate references to VAR_NAME_LEN entirely.

2011-02-05  Ben Pfaff  <blp@cs.stanford.edu>

	text-data-import-dialog: Eliminate VAR_NAME_LEN restriction.
	Most uses of VAR_NAME_LEN within PSPP are wrong due to encoding issues:
	the limit applies to variable names in the encoding used by the data
	set, but most uses of VAR_NAME_LEN actually limit the length of a name
	in UTF-8.  The UTF-8 representation of a name can be longer or shorter
	than its representation in the data set encoding, so it seems best to
	eliminate references to VAR_NAME_LEN entirely.

2011-02-05  Ben Pfaff  <blp@cs.stanford.edu>

	REGRESSION: Eliminate restriction to VAR_NAME_LEN in reg_get_name().
	There's still an obvious problem here that the prefix isn't being trimmed
	down so that the suffix will fit.  Since an upcoming series of changes
	would have to completely redo how this would be done, I'm not fixing that
	now, only marking it with XXX.

	Most uses of VAR_NAME_LEN within PSPP are wrong due to encoding issues:
	the limit applies to variable names in the encoding used by the data
	set, but most uses of VAR_NAME_LEN actually limit the length of a name
	in UTF-8.  The UTF-8 representation of a name can be longer or shorter
	than its representation in the data set encoding, so it seems best to
	eliminate references to VAR_NAME_LEN entirely.

2011-02-05  Ben Pfaff  <blp@cs.stanford.edu>

	FLIP: Eliminate false dependency on VAR_NAME_LEN.
	The size of this buffer really shouldn't have anything to do with
	VAR_NAME_LEN but with the string about to be put into it.

	Most uses of VAR_NAME_LEN within PSPP are wrong due to encoding issues:
	the limit applies to variable names in the encoding used by the data
	set, but most uses of VAR_NAME_LEN actually limit the length of a name
	in UTF-8.  The UTF-8 representation of a name can be longer or shorter
	than its representation in the data set encoding, so it seems best to
	eliminate references to VAR_NAME_LEN entirely.

2011-02-05  Ben Pfaff  <blp@cs.stanford.edu>

	DESCRIPTIVES: Eliminate main restriction on Z-score variable name length.

2011-02-05  Ben Pfaff  <blp@cs.stanford.edu>

	variable-parser: Drop VAR_NAME_LEN restriction from var_set_lookup_var_idx().
	This restriction is purely artificial, as part of an assertion.  Since
	longer variable names are going to have to be supported, remove it.

	Most uses of VAR_NAME_LEN within PSPP are wrong due to encoding issues:
	the limit applies to variable names in the encoding used by the data
	set, but most uses of VAR_NAME_LEN actually limit the length of a name
	in UTF-8.  The UTF-8 representation of a name can be longer or shorter
	than its representation in the data set encoding, so it seems best to
	eliminate references to VAR_NAME_LEN entirely.

2011-02-05  Ben Pfaff  <blp@cs.stanford.edu>

	variable-parser: Rewrite parse_DATA_LIST_vars().
	This rewrite was prompted by getting rid of the VAR_NAME_LEN limit inside
	parse_DATA_LIST_vars(), but then I noticed that the variable naming and
	coding style was dated, and that duplicate variable names were only
	detected for variables named using TO, not for individual names, so I
	rewrote much of the code instead.

	DEBUG EVALUATE: Eliminate VAR_NAME_LEN limit.
	Most uses of VAR_NAME_LEN within PSPP are wrong due to encoding issues:
	the limit applies to variable names in the encoding used by the data
	set, but most uses of VAR_NAME_LEN actually limit the length of a name
	in UTF-8.  The UTF-8 representation of a name can be longer or shorter
	than its representation in the data set encoding, so it seems best to
	eliminate references to VAR_NAME_LEN entirely.

	VECTOR: Eliminate VAR_NAME_LEN limit for variable names.
	Most uses of VAR_NAME_LEN within PSPP are wrong due to encoding issues:
	the limit applies to variable names in the encoding used by the data
	set, but most uses of VAR_NAME_LEN actually limit the length of a name
	in UTF-8.  The UTF-8 representation of a name can be longer or shorter
	than its representation in the data set encoding, so it seems best to
	eliminate references to VAR_NAME_LEN entirely.

2011-02-05  Ben Pfaff  <blp@cs.stanford.edu>

	MODIFY VARIABLES: Eliminate VAR_NAME_LEN limit on variable names.
	This is actually a general code improvement, since it eliminates memory
	allocation and copying that was not actually necessary.

	Most uses of VAR_NAME_LEN within PSPP are wrong due to encoding issues:
	the limit applies to variable names in the encoding used by the data
	set, but most uses of VAR_NAME_LEN actually limit the length of a name
	in UTF-8.  The UTF-8 representation of a name can be longer or shorter
	than its representation in the data set encoding, so it seems best to
	eliminate references to VAR_NAME_LEN entirely.

2011-02-05  Ben Pfaff  <blp@cs.stanford.edu>

	DATAFILE ATTRIBUTE, VARIABLE ATTRIBUTE: Eliminate VAR_NAME_LEN limit.
	Most uses of VAR_NAME_LEN within PSPP are wrong due to encoding issues:
	the limit applies to variable names in the encoding used by the data
	set, but most uses of VAR_NAME_LEN actually limit the length of a name
	in UTF-8.  The UTF-8 representation of a name can be longer or shorter
	than its representation in the data set encoding, so it seems best to
	eliminate references to VAR_NAME_LEN entirely.

	GET DATA /TYPE=TXT: Get rid of VAR_NAME_LEN limit on variable names.
	Most uses of VAR_NAME_LEN within PSPP are wrong due to encoding issues:
	the limit applies to variable names in the encoding used by the data
	set, but most uses of VAR_NAME_LEN actually limit the length of a name
	in UTF-8.  The UTF-8 representation of a name can be longer or shorter
	than its representation in the data set encoding, so it seems best to
	eliminate references to VAR_NAME_LEN entirely.

	FILE HANDLE: Get rid of VAR_NAME_LEN limit on handle name.
	Most uses of VAR_NAME_LEN within PSPP are wrong due to encoding issues:
	the limit applies to variable names in the encoding used by the data
	set, but most uses of VAR_NAME_LEN actually limit the length of a name
	in UTF-8.  The UTF-8 representation of a name can be longer or shorter
	than its representation in the data set encoding, so it seems best to
	eliminate references to VAR_NAME_LEN entirely.

	combine-files: Eliminate VAR_NAME_LEN restriction from combine_files().
	Most uses of VAR_NAME_LEN within PSPP are wrong due to encoding issues:
	the limit applies to variable names in the encoding used by the data
	set, but most uses of VAR_NAME_LEN actually limit the length of a name
	in UTF-8.  The UTF-8 representation of a name can be longer or shorter
	than its representation in the data set encoding, so it seems best to
	eliminate references to VAR_NAME_LEN entirely.

	vector: Remove VAR_NAME_LEN limit for internal representation of name.
	Most uses of VAR_NAME_LEN within PSPP are wrong due to encoding issues:
	the limit applies to variable names in the encoding used by the data
	set, but most uses of VAR_NAME_LEN actually limit the length of a name
	in UTF-8.  The UTF-8 representation of a name can be longer or shorter
	than its representation in the data set encoding, so it seems best to
	eliminate references to VAR_NAME_LEN entirely.

	variable: Remove VAR_NAME_LEN limit for internal representation of name.
	Most uses of VAR_NAME_LEN within PSPP are wrong due to encoding issues:
	the limit applies to variable names in the encoding used by the data
	set, but most uses of VAR_NAME_LEN actually limit the length of a name
	in UTF-8.  The UTF-8 representation of a name can be longer or shorter
	than its representation in the data set encoding, so it seems best to
	eliminate references to VAR_NAME_LEN entirely.

	dict: Make dict_make_unique_var_name() return an allocated string.

	tests: Add `check-programs' target.
	Occasionally I want to build all the programs required to run "make check"
	without actually running the tests.  This target allows me to do that.

	Smake: Avoid duplicating $(GNULIB_TOOL) invocation.
	The "all" and "gnulib" rules both contained the same gnulib-tool
	invocation.  This commit changes the "all" rule to use the "gnulib" rule
	as a subrule.

	i18n: Always allocate from pool in recode_substring_pool().

	sys-file-writer: Fix subtype used for v14+ multiple response set records.

	doc: Document that type-7 records must appear in ascending numerical order.
	Every system file that I have seen puts them in this order, so I cannot
	imagine that any other order receives any testing.

	doc: Update description of character encoding information in system files.
	Based on information provided by John Darrington and on system files
	obtained freely from the Internet.

2011-02-03  Ben Pfaff  <blp@cs.stanford.edu>

	sys-file-reader: Add tests.

	sys-file-reader: Elevate invalid number of labels from warning to error.
	There's no way to figure out when the labels end when the count is wrong,
	so this has to be an error.

	sys-file-reader: Avoid redundant "within system file" in messages.
	All system file message already state the system file's name, which should
	be enough identification.

	sys-file-reader: Improve debugging usefulness of error messages.
	I found that these changes made it easier to debug problems with system
	files while I was developing tests.

	sys-file-reader: Really enable warnings for invalid variable formats.
	With these operator in the wrong order, I never saw any warnings, although
	other people might have seen different behavior.

	sys-file-reader: Add missing periods at end of error messages.
	Most of the error messages already ended in periods, so this adds them to
	the others for consistency.

2011-01-30  Ben Pfaff  <blp@cs.stanford.edu>

	sys-file-reader: Check that multiple response set names begin with `$'.
	This invariant was being checked by an assertion in dict_add_mrset(), so
	this change avoids an assertion failure for invalid system files.

	sys-file-reader: Fix double-free on read of partial record.
	partial_record() does a longjmp() to code near the top of
	sys_file_casereader_read() that unrefs the case, but this code at the
	end of sys_file_casereader_read() would have already unref'ed it once in
	that case, resulting in a double-free.

	hash-functions: Use C instead of preprocessor to test size of double.
	I don't see a reason that this has to be done as an #if directive.  The
	compiler should be easily able to optimize out the branch that will never
	be taken.  This allows us to get rid of a configure check, so it seems
	worthwhile to me.

2011-01-29  Ben Pfaff  <blp@cs.stanford.edu>

	q2c: T_RPAREN should be T_LPAREN for matching a left parenthesis.
	Also add a test for this case on the T-TEST command, where the bug was
	first reported.

	Bug #32061.
	Reported by Mindaugas <embar@super.lt>.
	Reported by Chuck Kralowec <chuck.kralowec@gmail.com>.

2011-01-05  Ben Pfaff  <blp@cs.stanford.edu>

	Updated the Lithuanian translation from http://translationproject.org.

2011-01-02  Ben Pfaff  <blp@cs.stanford.edu>

	README: Describe meaning of copyright year ranges.
	This is required by the GNU maintainers guide as a prerequisite for using
	copyright year ranges.  So far, PSPP itself doesn't use ranges, but Gnulib
	(which PSPP uses) does.

2011-01-01  Ben Pfaff  <blp@cs.stanford.edu>

	expressions: Fix test failures due to new year.
	Some of the date-related test cases assumed that year 41 would be
	interpreted as 1941, but due to the 30-year century window, as soon as it
	became 2011 this assumption failed.  Write these years explicitly as 1941
	instead to fix the problem.

2010-12-21  Ben Pfaff  <blp@cs.stanford.edu>

	NPAR TESTS: Fix two test failures.
	Tests "NPAR TESTS CHISQUARE with DESCRIPTIVES" and "NPAR TESTS CHISQUARE,
	listwise missing" were failing because of some unexpected behavior of
	lex_put_back().  This fixes the problem by avoiding lex_put_back()
	entirely.

	NPAR TESTS: Fix "NPAR TESTS BINOMIAL, P = 0.5; N1/N2 < 1" test failure.

2010-12-20  Ben Pfaff  <blp@cs.stanford.edu>

	lexer: Fix GCC warning for unhandled TOKEN_N_TYPES in lex_token_name().

	lexer: Remove unused function lex_put_back_id().

2010-12-11  Ben Pfaff  <blp@cs.stanford.edu>

	value-parser: Remove redundant call to lex_force_string() in parse_value().

	GET DATA: Fix punctuation in error message.

	AGGREGATE: Align arg_func_tab[] in columns.
	This makes the code more readable.  It should not change PSPP behavior.

2010-12-11  Ben Pfaff  <blp@cs.stanford.edu>

	i18n: Remove unnecessary #ifs.
	The test for LC_MESSAGES should not be necessary because Gnulib ensures
	that LC_MESSAGES is always defined.

	The test for ENABLE_NLS should not be necessary because PSPP has not
	supported that configuration for some time.

2010-12-11  Ben Pfaff  <blp@cs.stanford.edu>

	ECHO: Use text_item, as intended.
	TEXT_ITEM_ECHO is meant for use by ECHO but it had been overlooked
	accidentally until now.

	float-format: Don't translate test strings.
	These aren't visible to users in normal operation, so we might as well not
	burden translators with them.

	DO REPEAT: Make this command usable anywhere.
	DO REPEAT just does macro expansion so there's no reason to limit it to
	just after an active dataset has been defined.

	identifier: New function token_type_to_string().
	This is useful for debugging and testing code.

	NPAR TESTS: Prefer lex_match_id() over lex_match_hyphenated_word()
	This code used lex_match_hyphenated_word() in many places where it was
	necessary to match a plain identifier.  But it is better to use
	lex_match_id() when it can be, because it is simpler and faster, so this
	commit does that.

	q2c: Prefer lex_match_id() over lex_match_hyphenated_word() in emitted code.
	Until now, q2c has used lex_match_hyphenated_word() wherever it was
	necessary to match a plain identifier.  But it is better to use
	lex_match_id() when it can be, because it is simpler and faster, so this
	commit does that.

	DEBUG XFORM FAIL: Issue an error message as part of transformation.
	PSPP only returns a failure exit status if an error message is issued, but
	DEBUG XFORM FAIL doesn't issue an error message.  This means that, if PSPP
	has no other errors, then it's difficult to tell that the transformation
	really did what it should have.  This commit fixes the potential problem.

	INPUT PROGRAM: Remove unused enumeration.

2010-12-11  Ben Pfaff  <blp@cs.stanford.edu>

	expressions: Make extract_min_valid() parameter const.
	This fixes the following warning:

	parse.c: In function ‘parse_function’:
	parse.c:1213: warning: passing argument 1 of ‘extract_min_valid’ discards qualifiers from pointer target type

2010-12-11  Ben Pfaff  <blp@cs.stanford.edu>

	categoricals: Make parameter to categoricals_done() const.
	From a high-level point of view, categoricals_done() does not actually
	mutate any data in a categoricals object.  Instead, it just computes a
	cache.  So it seems reasonable to make it take a "const" parameter, and
	this fixes a warning:

	oneway.c: In function ‘run_oneway’:
	oneway.c:502: warning: initialization discards qualifiers from pointer target type

2010-12-11  Ben Pfaff  <blp@cs.stanford.edu>

	covariance: Fix const-ness of covariance_calculate[_unnormalized] retval.
	The covariance_calculate() and covariance_calculate_unnormalized()
	functions documented that their return values were owned by the covariance
	object itself and thus should not be freed by the caller.  However, this
	documentation was incorrect, because in fact the covariance object did not
	retain the pointer at all.  This commit fixes the comments, updates
	the return values to be non-"const", and changes the callers to free the
	returned "gsl_matrix" objects.

	ONEWAY: Fix warning for passing "const" pointer as non-const parameter.

	mann-whitney: Suppress GCC warning about unused parameter.

2010-12-11  Ben Pfaff  <blp@cs.stanford.edu>

	friedman: Fix GCC warning about uninitialized fr.w.
	On my machine GCC 4.4 complains:
	friedman.c: In function ‘friedman_execute’:
	friedman.c:106: warning: ‘fr.w’ may be used uninitialized in this function

	This appears to be because GCC can't see that the assignment to fr.w and
	its later use (in show_sig_box()) both have the same condition.  At any
	rate, this commit suppresses the warning by always initializing fr.w.

2010-12-05  Ben Pfaff  <blp@cs.stanford.edu>

	gui: Factor out duplicated code for executing and pasting syntax.
	Reducing code duplication is good on its own.  This will also make it
	easier in upcoming patches to swap out "getl_interface" with a new
	structure, by eliminating most of the references to getl_interface.

2010-12-04  Ben Pfaff  <blp@cs.stanford.edu>

	command: Don't allow SORT as an abbreviation for SORT CASES.
	This abbreviation has never been documented, and I don't see a reason to
	keep it.

	Remove the PROMPT, CPROMPT, and DPROMPT settings.
	These settings will be insufficient to configure prompting for the new
	lexer, which is able to detect more special cases in syntax and report
	them through the prompt.  (However, if users actually want this feature,
	then we could add it; it's not difficult.)

	Remove the NULLINE and ENDCMD settings.
	These settings change the lexical structure of the language, which makes
	lexical analysis difficult.

	VALUE LABELS: Relax limit on value label length from 60 bytes to 255.
	Requested by friedrich nietzsche <f_nietsje@hotmail.com>.
	With improvements by John Darrington.

2010-11-19  Ben Pfaff  <blp@cs.stanford.edu>

	lexer: Change the functions for retrieving token strings.
	Until now, lex_tokid() has been for T_ID tokens only and lex_tokstr() has
	been for T_ID and T_STRING tokens.  For T_ID tokens, lex_tokid() and
	lex_tokstr() had slightly different semantics.

	This doesn't entirely make sense, and these particular functions are not
	the ones wanted most by clients, so this commit removes these functions
	in favor of lex_tokcstr() and lex_tokss(), which are both applicable
	to both T_ID and T_STRING tokens, with the same semantics in each case.

	These functions are also easier for the upcoming reimplementation of the
	lexer.

2010-11-19  Ben Pfaff  <blp@cs.stanford.edu>

	lexer: Get rid of lex_negative_to_dash().
	This function stands in the way of replacing the lexer in a
	straightforward way, because it disrupts the stream of tokens: the
	lexer can't tell in advance whether, e.g., "-4" is one token or
	two.  Fortunately, it is not used in very many places and is
	relatively easy to remove.

	lexer: New type enum token_type.
	It seems useful to have a type that indicates that a value is a token.
	Furthermore, being able to enumerate all of the possible tokens in a
	straightforward way seems worthwhile.  It also makes it possible for
	GCC to check "switch" statements on token types and to build arrays
	indexed by token.

2010-11-18  Ben Pfaff  <blp@cs.stanford.edu>

	command: Factor command name matching out of command.c.
	Making command parsing into a library will allow other code to use
	the same functionality, which will be useful later in the lexer.
	It also simplifies parsing command names and allows us to easily
	add tests for command name parsing.

	The new command name parsing code supports UTF-8.  This is not useful yet,
	because its only client does not feed it UTF-8 strings, but it will be
	useful later when the rest of the lexer is rewritten, where it will gain
	another client that does feed it UTF-8.

2010-11-18  Ben Pfaff  <blp@cs.stanford.edu>

	identifier: Add some functions for Unicode syntax.

	str: Add some functions for handling UTF-8.

	str: Change "char" to "byte" in function names.
	As PSPP moves toward using UTF-8 pervasively for command syntax, a
	character is no longer always a byte, so this naming is clearer.

	str: Inline some trivial functions.

2010-11-17  Ben Pfaff  <blp@cs.stanford.edu>

	Updated the Lithuanian translation from http://translationproject.org.

2010-11-17  Jason H Stover  <jhs@franz.gcsu.edu>

	Fixed degrees of freed in t-stat for intercept

2010-11-15  Ben Pfaff  <blp@cs.stanford.edu>

	sys-file: Add functions for converting between codepage numbers and names.

2010-11-14  Ben Pfaff  <blp@cs.stanford.edu>

	perl-module: Fix return value of append_case subroutine.
	The casewriter_write() function does not have a return value (it is
	declared as "void"), but the append_case subroutine tried to use its
	return value anyway.  This cannot work properly, of course, and in fact
	caused problems on 64-bit builds in particular.

	I don't know why there is no C compiler warning about this problem.  I
	guess the Perl module build must somehow turn off a lot of GCC warnings.

	Reported by bojo42 <bojo42@gmail.com> in bug #31611.

2010-11-14  Ben Pfaff  <blp@cs.stanford.edu>

	INSTALL: Update to mention test-only dependencies.

	perl-module: Only run the combined test if Text::Diff is present.
	The combined test using Pspp.t only works if Text::Diff is installed
	(although the broken-out tests don't require it), so only try that test if
	Text::Diff is available.

	tests: Only attempt to run PostgreSQL tests if the server is installed.
	PSQL_SUPPORT only indicates that PSPP was compiled against the PostgreSQL
	client library, but the test also requires the PostgreSQL server and
	utilities to be installed, so skip the test if they are not.

	ONEWAY: Accept 3.88 instead of 3.87 in multiple variables test.
	Reported by Jeremy Lavergne <jeremy@lavergne.gotdns.org> on bug-gnu-pspp.
	Also reported by bojo42@gmail.com in bug #31611.

	NPAR TESTS: Accept .313 instead of .312 for point probability in SIGN test.
	Reported by Jeremy Lavergne <jeremy@lavergne.gotdns.org> on bug-gnu-pspp.
	Also reported by bojo42@gmail.com in bug #31611.

2010-11-05  Ben Pfaff  <blp@cs.stanford.edu>

	csv: Make the character used for quoting configurable.
	Requested by Björn Manke <bjoernmanke@gmx.net>.

	csv: Add ability to suppress table captions.
	Requested by Björn Manke <bjoernmanke@gmx.net>.

	Added the Lithuanian translation from http://translationproject.org.

2010-11-04  Ben Pfaff  <blp@cs.stanford.edu>

	csv: Better support separators other than comma or tab.
	Before this commit, although any separator could be specified for cvs
	output, the set of characters that triggered quoting was fixed, and only
	really suitable for comma and tab separators.  This commit fixes the
	problem, making sure that whenever the specified separator appears in a
	field, that field will be quoted.

	Problem noticed during a discussion with Björn Manke <bjoernmanke@gmx.net>
	on pspp-users.

2010-11-04  Ben Pfaff  <blp@cs.stanford.edu>

	Add tut.texi to gitignore file.

	CACHE: Implement command as no-op.
	Requested by Matej Kovacic <matej.kovacic@owca.info>.

2010-11-03  Ben Pfaff  <blp@cs.stanford.edu>

	sparse-array: Fix accidental assumption that "long" is exactly 32 bits.
	Debugged with help from Jeremy Lavergne <jeremy@lavergne.gotdns.org>.

	po: Update Catalan translation from translation-project.org.

2010-11-02  Ben Pfaff  <blp@cs.stanford.edu>

	sys-file: Make test writing compressed system file more portable.
	The format of "od" output varies among platforms, so avoid using it.

	Reported by Jeremy Lavergne <jeremy@lavergne.gotdns.org> on Darwin 10.4.0.

2010-11-02  Ben Pfaff  <blp@cs.stanford.edu>

	data-out: Make MONTH, WKDAY tests more portable.
	The amount of leading whitespace output by "uniq -c" varies among
	platforms, so remove all of it for comparison.

	Reported by Jeremy Lavergne <jeremy@lavergne.gotdns.org> on Darwin 10.4.0.

2010-11-02  Ben Pfaff  <blp@cs.stanford.edu>

	Improve failure output of tests that use wc.
	Commit 37c5ded73 "Make tests which use wc more robust." made these tests
	tolerate slightly different output formats, but at the same time, if the
	tests fail we don't find out why.  This commit should retain the fix but
	also provide more feedback in the log on failure.

2010-10-31  Ben Pfaff  <blp@cs.stanford.edu>

	Stop building src/language/stats/glm.c for now.
	This code is not currently used.  It causes problems for some builders, so
	stop building it for now.

	This commit adds the file to EXTRA_DIST so that it is still included in
	distributions.

	Bug #30811.

2010-10-31  Ben Pfaff  <blp@cs.stanford.edu>

	po: Update Catalan translation from translation-project.org.

	executor: Execute pending transformations after processing syntax.
	Bug #30689.

2010-10-31  John Darrington  <john@darrington.wattle.id.au>

	Make tests which use wc more robust.
	It appears that some systems' "wc" command  format their output
	differently.  So this change uses a numeric comparison rather
	than a string comparison.

2010-10-30  Ben Pfaff  <blp@cs.stanford.edu>

	datasheet: Add a few assertions.
	These made the problem a bit more obvious while tracking down bug #30689.

2010-10-30  John Darrington  <john@darrington.wattle.id.au>

	Fix typo

	NPAR: Implemented the /KENDALL subcommand.

	Added a dialog box for the k-related-sample non-parametric tests.

2010-10-29  Ben Pfaff  <blp@cs.stanford.edu>

	cairo: Fix rendering of wide titles for GUI rendering.
	The width of the title was not being taken into account in calculating the
	size of a table_item in the code path used by the GUI, so titles wider
	than their tables were truncated at the width of the table.  This commit
	fixes the problem.

2010-10-29  John Darrington  <john@darrington.wattle.id.au>

	Conditionally compile in the SIGWINCH handler
	Not all systems have SIGWINCH.  But this isn't an essential
	feature so only compile it in if its available.

2010-10-28  John Darrington  <john@darrington.wattle.id.au>

	Add test for the Cochran Q

	Added very basic documentation for the Cochran Q test

	Added implementation for the Cochran Q test

2010-10-27  Ben Pfaff  <blp@cs.stanford.edu>

	psppire-output-window: Insert a half-line of space between output items.
	Before, the lack of table titles put some vertical space into the output
	window.  Now that table titles are shown, there's no white space left, so
	this commit reintroduces some by putting half a line of vertical white
	space between output items.

2010-10-27  Ben Pfaff  <blp@cs.stanford.edu>

	cairo: Draw table titles in xr_rendering_draw() too.
	xr_rendering_draw() didn't draw table titles.  It seems that this was just
	an oversight, so this commit fixes the problem.

	xr_rendering_draw() is used by the GUI output viewer window, so this makes
	the GUI output viewer display table titles now.

	Bug #30554.

2010-10-27  Ben Pfaff  <blp@cs.stanford.edu>

	cairo: Always save output item in xr_rendering_create().
	Currently xr_rendering_create() only saves the output item passed in if it
	is a chart.  However an upcoming commit will have a need for table output
	items too, so this commit always saves them.

	case: Add support for debugging case reference count leaks.

2010-10-27  John Darrington  <john@darrington.wattle.id.au>

	Smake: Add a rule to update the gl directory without doing all the other stuff

	Make ascii driver's length and width parameters fit the terminal.
	If the driver's output is a tty, then handle SIGWINCH to adjust
	the length and width according to the size of the terminal.

2010-10-26  John Darrington  <john@darrington.wattle.id.au>

	Allow perl module to enter non-ascii data

	INSTALL: Add note about (non)installation of the perl module

	Added a test for the mann-whitney test

	Mann-Whitney: Use value names in rank table.
	Use the values or labels of the groups instead of
	a literal "group1" or "group2".

2010-10-25  Ben Pfaff  <blp@cs.stanford.edu>

	CROSSTABS: Handle case where all cases in a crosstabulation are missing.
	Thanks to Michel Boaventura for reporting the problem.
	Bug #31260.

	data-reader: Correct spelling.

2010-10-25  Ben Pfaff  <blp@cs.stanford.edu>

	render: Fix cells spanning otherwise completely empty rows/columns.
	When adjacent rows or columns contain only spanned cells and no rules give
	the rows or columns a natural minimum height or width, this triggers a
	special case in distribute_spanned_width().  This special case had not been
	tested and (therefore) was broken.  This commit fixes the problem and adds
	test cases to prevent it from recurring.

	Bug #31346.

2010-10-25  Ben Pfaff  <blp@cs.stanford.edu>

	tests: Add keywords to render tests.
	This makes it easy to run just the rendering tests with:
	    make check TESTSUITEFLAGS='-k render'

2010-10-25  John Darrington  <john@darrington.wattle.id.au>

	Added manual entry for the Mann-Whitney test

	Mann-Whitney: Change the rank sum used for Wilcoxon W

	First attempt at Mann-Whitney U test.
	Currently only assymptotic significance is calculated.

	CROSSTABS: (Re)implemented the format=DVALUE option.
	This was documented as implemented but in fact, wasn't.

	Ensure tests have unique names

	Remove various duplicated #include directives

	Use sort instead of qsort thus avoiding compiler warning

	Avoid compiler warnings

2010-10-23  John Darrington  <john@darrington.wattle.id.au>

	Documentation: Make subsection order alphabetical

	Properly handle  weights in Friedman test

	Add test for friedman test and fix problem with missing values

	remove unused variable

	fix memory leak

	Documentation for the Friedman test

	en_GB.po: Fix fuzzy translation

	First attempt at the Friedman test

	Whitespace changes only

	Remove redundant whitespace

2010-10-21  John Darrington  <john@darrington.wattle.id.au>

	Fix memory deallocation bug

	Implemented the /RUNS subcommand for NPAR TESTS.

2010-10-17  Ben Pfaff  <blp@cs.stanford.edu>

	str: Remove unused functions.

	format-parser: Fix parse_format_specifier() failure case.
	When the current token is an identifier that takes the abstract syntax
	of a format specifier, but its "name" part is not a valid format name,
	parse_format_specifier() returned false but still consumed the token.
	This is a potential issue for callers that want to report an error that
	mentions the identifier, e.g. parse_primary(), although the current lexer
	tends to retain the same identifier when the new token is not an
	identifier.

2010-10-17  John Darrington  <john@darrington.wattle.id.au>

	Update en_GB.po

	Fix typos in printed strings

2010-10-17  John Darrington  <john@darrington.wattle.id.au>

	Merge commit 'origin/master' into sso
	Conflicts:

		src/ui/gui/psppire-syntax-window.c

2010-10-17  John Darrington  <john@darrington.wattle.id.au>

	Update en_GB.po and remerge

	Fix test failures on T-TEST command.
	The t-test command is documented to ignore cases
	which are not in a valid group.
	The new levene function does not have any awareness
	of the group criteria.  Therefore we must remove any
	values which are not in a valid group.

	Re-implemented the levene calculation

2010-10-17  Ben Pfaff  <blp@cs.stanford.edu>

	po: Update Dutch translation from translation-project.org.

2010-10-17  John Darrington  <john@darrington.wattle.id.au>

	Fixed bug in oneway /descriptives subcommand vs. weights.
	The descriptives option was misinterpreting the weight
	value when calculating max and min.  This change fixes
	the bug and adds a test to check for it.

2010-10-16  Ben Pfaff  <blp@cs.stanford.edu>

	Increment version number to 0.7.6 for translationproject.org.

2010-10-16  Ben Pfaff  <blp@cs.stanford.edu>

	doc: Always build ni.texi, tut.texi in source directory.
	When the source and build directories are different, ni.texi and tut.texi
	were being built in the build directory.  This meant that, since
	$(builddir)/doc is not in the TeX search path, but $(builddir) is (because
	it is the working directory when TeX is invoked), the @include commands
	that include ni.texi and tut.texi had to specify doc/ explicitly.
	However, doing that broke the case where the source and build directories
	were different but ni.texi or tut.texi were in the source directory (which
	happens when building from a tarball or, similarly, running "make
	distcheck"), because $(top_srcdir) is not in the TeX search path (only
	$(top_srcdir)/doc is).

	The easiest solution appears to be to always make sure that ni.texi and
	tut.texi are in the source directory.  Then they are always in the TeX
	search path (as long as we drop the doc/ prefix) and everything should
	work out OK.

	Reported by Michel Boaventura <michel@michelboaventura.com>.

2010-10-16  Ben Pfaff  <blp@cs.stanford.edu>

	tests: Avoid reading $HOME/.pspprc inside the testsuite.
	This solution was suggested by John Darrington.

	tests: Put atlocal.in in a logical order.
	This is intended to have no semantic change.

	po: Update Spanish translation from translation-project.org.

2010-10-16  John Darrington  <john@darrington.wattle.id.au>

	Include hash-functions.h instead of hash.h

	NPAR: use hmapx instead of hash.h

2010-10-14  Ben Pfaff  <blp@cs.stanford.edu>

	tests: Remove file and Makefile contents that are no longer necessary.
	All of the tests have been converted to Autotest so this commit removes
	variable assignments that are specific to the Automake TESTS-based
	testsuite.

	tests: Convert tests for binary and 360 data I/O to Autotest framework.

	data-in: Convert tests for time input formats to Autotest framework.

	data-out: Convert tests for numeric output formats to Autotest framework.

2010-10-13  Ben Pfaff  <blp@cs.stanford.edu>

	data-in: Convert tests for date formats to Autotest framework.

	data-in: Convert test for numeric input formats to Autotest framework.

	data-in: Convert test for MONTH format to Autotest framework.

	data-in: Convert test for WKDAY format to Autotest framework.

	data-in: Convert tests for binary and hexadecimal formats to Autotest.

	data-in: Convert tests for N and Z formats to Autotest framework.

	tests: Fix "make dist" by correcting typo in EXTRA_DIST.

2010-10-13  John Darrington  <john@darrington.wattle.id.au>

	Updated NEWS file

	Add some comments where needed

	Update Catalan translation from translation-project.org

	Avoid compiler warnings

2010-10-12  Ben Pfaff  <blp@cs.stanford.edu>

	data-out: Convert test for WKDAY format to Autotest framework.

	data-out: Convert test for time output formats to Autotest framework.

	data-out: Convert test for MONTH format to Autotest framework.

	format-guesser: Convert test to Autotest framework.

	float-format: Convert tests to Autotest framework.

	data-out: Convert tests for date formats to Autotest framework.

	data-out: Convert tests for binary and hex formats to Autotest framework.

	data-in: Convert BCD input tests to Autotest framework.

2010-10-12  John Darrington  <john@darrington.wattle.id.au>

	Add documentation for the Kruskal-Wallis subcommand

	Fix memory leaks in Kruskal-Wallis test

	Added tests for the Kruskal Wallis test

2010-10-11  Ben Pfaff  <blp@cs.stanford.edu>

	tests: Convert test for vectors in expressions to Autotest framework.

	tests: Convert test for variables in expressions to Autotest.

	tests: Convert test for VALUELABEL expression function to Autotest.

	tests: Convert random distribution tests to Autotest framework.

	output: Convert paper size tests to Autotest framework.

2010-10-11  John Darrington  <john@darrington.wattle.id.au>

	Initial implementation of the Kruskal-Wallis test.

	Use conventional search for gsl if pkg-config fails

	Use cast macros

	Remove some duplicated #includes

	NPAR TESTS: Implement parser for kruskal wallis test

	NPAR TESTS: Add framework for n sample independent variable tests.
	Upcomming commits will rely on this functionaly.

	NPAR TESTS: reformat and use cast macros

2010-10-11  Ben Pfaff  <blp@cs.stanford.edu>

	tests: Fix typo in "write to same system file being read" test.

2010-10-10  Ben Pfaff  <blp@cs.stanford.edu>

	sparse-xarray: Convert tests to Autotest framework.

	datasheet: Convert tests to Autotest framework.

	tests: Remove some files that are no longer used.

	tests: Convert tests for SAVE /KEEP=ALL to Autotest framework.

	VALUE LABELS: Convert tests to Autotest framework.

	tests: Convert tests for unwritable output dirs to Autotest framework.

	TEMPORARY: Convert test to Autotest framework.

	pspp: Get rid of clean_up() function now that it has only one caller.

	tests: Convert tests for signal handling to Autotest framework.

2010-10-10  Ben Pfaff  <blp@cs.stanford.edu>

	pspp: Don't attempt fancy clean-up upon receiving a fatal signal.
	Otherwise PSPP often assert-fails on Control+C.

	In the long run it is probably friendlier to return to the command prompt
	upon Control+C, but simply deleting temporary files and exiting cleanly
	is preferable to an assert-fail.

	See bug #20626 for more information.

2010-10-10  Ben Pfaff  <blp@cs.stanford.edu>

	tests: Convert test for #! support to Autotest framework.

	tests: Convert test for overwriting a special file to Autotest framework.

	tests: Convert tests for overwriting files to Autotest framework.

	tests: Convert multipass.sh test to Autotest framework.

	tests: Convert expression parsing test to Autotest framework.

	q2c: Convert test to Autotest framework.

	tests: Convert test for UNIFORM expression function to Autotest framework.

	INPUT PROGRAM: Convert tests to Autotest framework.

	COMMENT: Convert test to Autotest framework.

	tests: Convert a test for crash on invalid input to Autotest framework.

	tests: Convert test of compressed system files to Autotest framework.

2010-10-09  Ben Pfaff  <blp@cs.stanford.edu>

	GET: Convert some more tests to Autotest.

	SAVE: Convert test for non-empty case map to Autotest framework.

	EXAMINE: Convert some more tests to Autotest framework.
	I'm not really sure that big-input-2.sh was an EXAMINE bug.  It could have
	been a more generic bug.  I wasn't able to quickly determine what its
	original motivation was.

	tests: Remove files that are no longer used.

	tests: Convert very long strings tests to Autotest framework.

	WEIGHT: Convert test to Autotest framework.

	VECTOR: Convert tests to Autotest framework.

	tests: Convert variable display tests to Autotest framework.

	USE: Convert tests to Autotest framework.

	perl-module: Make perl_module_tarball rule quieter.
	This rule echoes what it is doing, so it seems to me that it was intended
	to be silent.

	UDPATE: Convert tests to Autotest framework.

2010-10-09  John Darrington  <john@darrington.wattle.id.au>

	Perl Module: Add prototypes keyword to XS definition

	Eleminate unnecessary variables

	Change identifiers for consistency with other commands

	Consolidate translatable strings

	Replace npar.q with npar.c

2010-10-08  Ben Pfaff  <blp@cs.stanford.edu>

	perl-module: Fix build race.
	perl_module_tarball invokes module-make in a submake.  In turn, until now
	module-make has depended on src/libpspp-core.la.  But if a parallel build
	is in progress, then the parent make is likely also building the same
	library.  Sometimes the race in linking this library causes build failures.

	The ideal solution would be to avoid the submake.  We could do this, by
	giving the files in the build different names from those in the source
	directory (e.g. distributing the files with .dist extensions, or copying
	them into or out of a subdirectory).

	This commit instead implements a minimal fix, by making the dependency on
	src/libpspp-core.la part of the top-level perl_module_tarball target,
	instead of part of the submake's module-make target.

	With this commit, 10 consecutive test runs on my laptop completed
	successfully.  Without this commit, about 50% of nontrivial builds fail.

2010-10-08  Ben Pfaff  <blp@cs.stanford.edu>

	tests: Distribute testsuite.at and loosen its dependencies.
	testsuite.at has to be distributed or "make" from a distributed tarball
	will have to make it, which means that the system used for building needs
	Autoconf installed and will need to write to the source directory.

	testsuite.at cannot depend on the Makefile or it will have to be rebuilt
	every time "configure" runs, which would also cause the problems mentioned
	above.

2010-10-08  Ben Pfaff  <blp@cs.stanford.edu>

	perl-module: Use ABSTRACT instead of ABSTRACT_FROM in Makefile.PL.
	This fixes the following warning from Perl:

	  WARNING: Setting ABSTRACT via file 'lib/PSPP.pm' failed
	   at /usr/share/perl/5.10/ExtUtils/MakeMaker.pm line 583

2010-10-05  Ben Pfaff  <blp@cs.stanford.edu>

	tests: Convert tab handling test to Autotest framework.

	EXAMINE: Convert another test to Autotest framework.

2010-10-04  Ben Pfaff  <blp@cs.stanford.edu>

	T-TEST: Convert tests to Autotest framework.

	SPLIT FILE: Convert test to Autotest framework.

	SYSFILE INFO: Convert test to Autotest framework.

	tests: Remove tests/command/sysfiles-old.sh from list of tests.
	This file was deleted in a previous commit but it was still listed in
	tests/automake.mk.

	tests: Convert system file tests to Autotest framework.

	SORT CASES: Convert tests to Autotest framework.

	SAMPLE: Convert test to Autotest framework.

	ROC: Convert tests to Autotest framework.

	RELIABILITY: Convert tests to Autotest framework.

	tests: Convert REGRESSION tests to Autotest framework.

	RENAME VARIABLES: Convert tests to Autotest framework.

2010-10-04  John Darrington  <john@darrington.wattle.id.au>

	Fix bug in autorecode - strings vs. /group
	Fixed a bug which caused autorecode to crash when the /GROUP
	subcommand was used concurrently with variables of different widths.

	Workaround for gettext deficiencies
	xgettext doesn't have a --language=gtkbuilder option.
	Instead, we've been (mis)using --language=glade which
	has worked ok except that it doesn't extract labels
	from the columns of GtkListStore items.
	This change adds a pair of dummy widgets containing identical
	label strings so that these strings will get entered into
	the .pot file.  Closes bug #31033

2010-10-04  Ben Pfaff  <blp@cs.stanford.edu>

	RANK: Convert tests to Autotest framework.

2010-10-03  Ben Pfaff  <blp@cs.stanford.edu>

	pspp: Fix crash passing the name of a nonexistent file on the command line.
	Also adds a test.

	pspp: Make style slightly more like the rest of the program.

	Convert PRINT and WRITE tests to Autotest framework.

	PERMISSIONS: Convert test to Autotest framework.

	NPAR TESTS: Convert SIGN test to Autotest framework.

	NPAR TESTS: Convert WILCOXON tests to Autotest framework.

	NPAR TESTS: Convert CHISQUARE tests to Autotest framework.

2010-10-03  John Darrington  <john@darrington.wattle.id.au>

	Update generated HTML to conform to W3C standards.
	Changed the html output driver so that the generated
	HTML is accepted by http://validator.w3.org

	Added gettext markup to some strings which required it

	Undo inappropriate quote substitution in generated HTML.
	Commit 173d1687aea88e0e5e1b1d8615ed68ebefb15d08 erroneously
	substituted these quotes in html fragments.

	Consolidate translatable strings

	Remove erroneous CONST_CAST
	Commit 97f9b8ad137e333af9b3c767556d28dfda93a461 attempted to use CONST_CAST to
	avoid a compiler warning about constness.  However it applies at the wrong
	level of deference.  This change undoes that particular problem and reverts
	to the original cast.

	Constness

	Fix memory leaks in ROC command

	Add comments informing the caller about side effects

	Consistently use the return value from case_ref.
	This makes debugging easier.

2010-10-02  Ben Pfaff  <blp@cs.stanford.edu>

	NPAR TESTS: Convert BINOMAL tests to Autotest framework.

	N OF CASES: Convert test to Autotest framework.

	tests: Convert no_case_size.sh test to Autotest framework.

	MISSING VALUES: Convert test to Autotest framework.

	MATCH FILES: Convert tests to Autotest framework.

	tests: Convert longvar.sh test to Autotest framework.

	pspp: Avoid printing multiple messages for a single signal caused by a bug.
	When I tested commit 38f3d1b22 "pspp: Make a signal that indicates a bug
	re-raise that signal to exit" I didn't read the output carefully enough.
	John Darrington pointed out the problem.

	LOOP: Convert tests to Autotest framework.

	pspp: Make a signal that indicates a bug re-raise that signal to exit.
	John Darrington pointed out that exiting with EXIT_FAILURE isn't nearly
	emphatic enough here.

2010-10-02  John Darrington  <john@darrington.wattle.id.au>

	en_GB.po: translate quotes to UTF characters

	Use macros from cast.h instead of literal casts

2010-10-01  John Darrington  <john@darrington.wattle.id.au>

	Fix memory leak in LIST command.

2010-09-30  John Darrington  <john@darrington.wattle.id.au>

	Fix memory leak in casegrouper.  Closes bug #30764

	Fix memory leak in sweep.c

	Fix memory leak in output rendering

2010-09-29  Ben Pfaff  <blp@cs.stanford.edu>

	tests: Remove PG_CONFIG from TESTS_ENVIRONMENT.
	This is no longer needed now that the PostgreSQL tests have been converted
	to use Autotest.

	LIST: Convert tests to use Autotest.

	casereader: Fix casereader_select() with BY argument greater than 1.
	This fixes the /CASES=BY subcommand on LIST.  The following commit will add
	a test.

	DATA LIST: Convert tests for line-ends compatibility to use Autotest.

	LAG: Convert tests to use Autotest.

2010-09-29  John Darrington  <john@darrington.wattle.id.au>

	Replace glm with a new implementation.
	The code is still not ready for use. It's awaiting
	a working type 3 sum of squares.

	Disconnect clip signal handlers when a syntax window is destroyed

2010-09-28  Ben Pfaff  <blp@cs.stanford.edu>

	tests: Merge the four GET DATA /TYPE=PSQL tests into a single one.
	This saves about 30 seconds on my laptop, so it seems worth it, even though
	it combines tests that might better be separated.

	tests: Fix typo in GET DATA /TYPE=TXT test.
	Not capitalizing the at_ in AT_BANNER apparently just kept the banner
	from appearing and didn't seem to cause other problems.

	INSERT: Convert tests to use Autotest.

2010-09-28  Ben Pfaff  <blp@cs.stanford.edu>

	syntax-file: Open syntax files immediately, instead of delaying.
	Until now, syntax files have been opened only when the first line needs to
	be read.  This commit changes behavior to open syntax files as soon as the
	syntax file source is created.

	This fixes the behavior INSERT CD=YES when a relative file path is
	specified.  Without this commit, INSERT checks that the file exists, then
	it creates the syntax file source, then it chdirs into the syntax file's
	directory, and then the syntax file source tries to open the file, which
	fails because the relative path is no longer correct.  With this commit,
	the file gets opened before the chdir, so it succeeds.

	The following commit will add a test to prevent regression.

2010-09-28  Ben Pfaff  <blp@cs.stanford.edu>

	tests: Fix distribution, by adding tests/testsuite.in to EXTRA_DIST.

2010-09-27  Ben Pfaff  <blp@cs.stanford.edu>

	tests: Convert IMPORT and EXPORT test to use Autotest.

	tests: Convert GET DATA /TYPE=PSQL tests to use Autotest.

	tests: Break get-data.at up into get-data-gnm.at and get-data-txt.at

	DO REPEAT: Add test for missing END REPEAT.
	Bug #31016.

2010-09-27  Ben Pfaff  <blp@cs.stanford.edu>

	lexer: Properly initialize lexer->prog when lex_get_line_raw() fails.
	lex_get_line(), the main caller of lex_get_line_raw(), set lexer->prog to
	NULL when reading failed, but other callers need to do the same thing too,
	otherwise e.g. DO REPEAT accesses invalid storage when there is a missing
	END REPEAT.

	Bug #31016.

2010-09-27  Ben Pfaff  <blp@cs.stanford.edu>

	DO REPEAT: Report an error when END REPEAT is missing.
	Bug #31016.

2010-09-25  Ben Pfaff  <blp@cs.stanford.edu>

	tests: Convert GET DATA /TYPE=GNM tests to use Autotest.

	tests: Convert GET DATA /TYPE=TXT tests to use Autotest.

	tests: Convert FILTER tests to use Autotest.

	tests: Convert FILE HANDLE tests to use Autotest.

	tests: Convert FILE LABEL, DOCUMENT, ADD DOCUMENT tests to use Autotest.

	tests: Convert EXAMINE tests to use Autotest.

	tests: Convert erase.sh test to use Autotest.

	tests: Convert do-repeat.sh test to use Autotest.

	tests: Convert do-if.sh test to use Autotest.

	tests: Convert correlation.sh test to use Autotest.

	tests: Convert bignum.sh test to use Autotest.

	tower: Convert tests to use Autotest.

	stringi-set: Convert tests to use Autotest.

	string-set: Convert tests to use Autotest.

	stringi-map: Convert tests to use Autotest.

	string-map: Convert tests to use Autotest.

	str: Convert tests to use Autotest.

	sparse-array: Convert tests to use Autotest.

	range-set: Convert tests to use Autotest.

	range-map: Convert tests to use Autotest.

	llx: Convert tests to use Autotest.

	ll: Convert tests to use Autotest.

	hmapx: Convert tests to use Autotest.

	hmap: Convert tests to use Autotest.

	heap: Convert tests to use Autotest.

	bt: Convert tests to use Autotest.

	abt: Convert tests to use Autotest.

2010-09-25  John Darrington  <john@darrington.wattle.id.au>

	Update to latest Gnulib

	Created an additional i18n test

2010-09-24  John Darrington  <john@darrington.wattle.id.au>

	tests_check target depends upon check_PROGRAMS

2010-09-23  Ben Pfaff  <blp@cs.stanford.edu>

	data-in: Get rid of first_column, last_column arguments.
	Most callers can't provide this arguments, and so in the interest of
	making the data_in() interface simpler, it seems better to put the
	callers in charge of dealing with error messages, since they better
	know their own context.

	data-in: Make data_in() parameters more uniform.
	data_in() essentially takes an input encoding and an output encoding but
	the parameters were in inconsistent order, inconsistently named, and had
	inconsistent types.  This commit changes all that to, I hope, be easier to
	understand.

	data-in: Rewrite logic for recoding input, and get rid of src_enc member.
	The logic used here seemed actually wrong for non-binary numeric formats
	and AHEX format: we want these translated into the native encoding so that
	we can interpret digits and letters properly without additional work.
	The only case where we care about the output encoding is A format.

	data-in: Eliminate "implied_decimals" parameter from data_in().
	This parameter is usually 0, so break out the associated functionality into
	a new function that callers can use if they really need it.

	calendar: Use sensible error reporting in calendar_gregorian_to_offset().

	message: Add column range to struct msg_locator.
	data_in() can specify a range of columns for the messages that it outputs,
	but until now these were not output in the format specified by the GNU
	Coding Standards.  This commit fixes that.

2010-09-23  Ben Pfaff  <blp@cs.stanford.edu>

	message: Consistently initialize locator; use 0 for "no line number".
	A few of the callers of msg_emit() did not initialize the "where" member
	of the struct msg, because they expect that msg_emit() will do it for them.
	This is currently correct, but I intend to soon introduce the ability for
	msg_emit()'s caller to specify a location.  With that change, it will be
	important for the caller to initialize this member, so this commit makes
	sure of that.

	At the same time, some callers were using -1 as the default value that
	means "no line number" and others were using 0.  This commit standardizes
	on the latter.

2010-09-23  Ben Pfaff  <blp@cs.stanford.edu>

	command: Add specific DATASET unimplemented commands.

	command: Remove superfluous trailing spaces from command names.
	These spaces made user messages look a little funny but they were otherwise
	harmless.

	command: Remove INSERT from list of unimplemented commands.
	This command is implemented, so this was a duplicate entry.

	lexer: Use lex_is_string() more consistently.
	The lexer has this function, so we might as well use it consistently.

	lexer: Remove DUMP_TOKENS debugging feature.
	This feature is not very useful anymore.  I have not used it in years.

	lexer: Improve translatability of lex_error().
	In general I believe that it is easier to translate full sentences or
	clauses.  It seems likely that "Syntax error %s at %s." where the first
	%s is an arbitrary English phrase would be impossible to translate
	grammatically into some languages, so this changes the general form to
	"Syntax error at %s: %s." which seems more likely to be translatable while
	not changing the English meaning.

	Make translation easier.
	Many of the invocations of lex_error() were easy to rephrase to be more
	easily translated, or to rewrite as calls to other functions.

	HOST: Use more modern syntax.
	An old SPSS paper manual I have describes the syntax that PSPP
	implemented for HOST up until this commit, but newer versions
	describe the syntax that this commit adopts.

	AGGREGATE: Simplify code.
	ds_chomp() returns whether it trimmed off a character, and we might as well
	use that instead of doing a redundant check.

	PERMISSIONS: Add missing check for string token.

	syntax-string-source: Fix format string problems.
	create_syntax_string_source() treated its argument as a printf-style format
	string but wasn't annotated properly.  Most of the callers did not pass
	string literals and were not escaped, so change it not to format its string
	and add a new function create_syntax_format_source() with the previous
	behavior.

	i18n: New function recode_substring_pool().
	Occasionally it is necessary to recode a string that might contain a null
	byte.  This function is useful in such a case.

	i18n: Use UTF8 macro instead of "UTF8" literal string.
	I think that this was just a typo.

	str: Make ss_alloc_substring() allocate null-terminated strings.
	This has little cost and it is occasionally valuable.

	cast: New macro NULL_SENTINEL.

	RECODE: Suppress warning about conversion using CHAR_CAST_BUG.

2010-09-21  Ben Pfaff  <blp@cs.stanford.edu>

	tests: Remove unnecessary mention of header files from automake.mk.
	These header files don't need to be listed.  They just clutter up the
	makefile.

	i18n: Add simple tests.

	i18n: Handle EINVAL more gracefully.
	EINVAL indicates an invalid multibyte sequence at the end of buffer.  It
	seems to me that there is no point in swallowing up a single byte and going
	on at that point; instead, one might as well just declare the conversion
	done after adding the fallback character.  This is what this commit does.

	i18n: Refactor for simplicity.
	It seems to me that recode_string_pool() is better implemented as a retry
	loop around a simpler core.  This commit implements that.

	i18n: Properly restart conversion when output buffer overflows.
	The E2BIG case tries to restart the whole conversion, by reinitializing
	all variables to their initial states.  However the value of 'text' might
	already have been advanced somewhat if there was a previous loop for e.g.
	an invalid character.  This commit fixes the problem by keeping the
	original 'text' around and using a moving input pointer instead.

	i18n: Ensure that every recoding starts from the initial shift state.

	i18n: Avoid memory leak when create_iconv() fails.

	i18n: Lightly reformat comments to better resemble other files.

2010-09-19  John Darrington  <john@darrington.wattle.id.au>

	Fix bug #31052: Crash on histograms with only one datum

	Const casts.
	Removed some unnecessary casts.  Changed some others to use the
	macros from src/libpspp/cast.h instead of literal casts.

2010-09-18  John Darrington  <john@darrington.wattle.id.au>

	Fix outstanding quote style issues

	Remove gettext markup from diagnostic string.
	Markin a debug string for translattion just puts unnecessary
	load on the translators.

	FLIP: Don't change new variables to upper case.
	This was a legacy from the days when variables could only
	be upper case.

2010-09-18  Ben Pfaff  <blp@cs.stanford.edu>

	linreg: Delete unused static function.
	This function drew attention to itself through a warning about a missing
	return type, but it isn't used so just delete it instead of adding a
	return type

	ONEWAY: Fix declaration-after-statement warning.
	C90 requires declarations to precede statements within a block.

2010-09-18  Ben Pfaff  <blp@cs.stanford.edu>

	Suppress warnings about conversions between char * and unsigned char *.
	For some time PSPP has used "unsigned char *" for string data and "char *"
	for most other strings.  Transforming between these properly generally
	involves recoding, and there are some places where this is possibly
	missing.  The usual way to "fix" these warnings would be to insert casts,
	but this would not fix the problem, just suppress the warnings, and it is
	difficult to "grep" for casts so they would be hard to find for fixing
	later.

	This commit doesn't actually fix the problems, but it does suppress the
	warnings while making them easy to find later: just grep for CHAR_CAST_BUG.

2010-09-17  Ben Pfaff  <blp@cs.stanford.edu>

	build-aux: Add generated files to .gitignore.

2010-09-16  John Darrington  <john@darrington.wattle.id.au>

	Update string comparision in perl module test

2010-09-15  John Darrington  <john@darrington.wattle.id.au>

	Update en_GB localisation

	Consolidate quoting style in printed strings.
	The GNU coding standards say to use `xxxx'  for quoted
	strings.  Previously we've been using a mixture of that style
	and "xxxx".  This change substitutes all instances of the latter
	with the former.

2010-09-14  John Darrington  <john@darrington.wattle.id.au>

	Translate the names of aggretation functions.  Fixes bug #31035

2010-09-12  John Darrington  <john@darrington.wattle.id.au>

	Syntax Window: Don't connect callbacks until all members are initialised.

2010-09-11  John Darrington  <john@darrington.wattle.id.au>

	Rename compare_string --> compare_string_3way

	Prevent critical when closing output viewer

2010-09-10  John Darrington  <john@darrington.wattle.id.au>

	Autorecode: /GROUP vs. heterogenous strings.
	Fixed a crash which occured when the /GROUP
	subcommand was used with string variables of
	differing widths.

2010-09-09  John Darrington  <john@darrington.wattle.id.au>

	Autorecode: Add the /GROUP subcommand

2010-09-06  John Darrington  <john@darrington.wattle.id.au>

	Fixed bug #30969: Crash in split file dialog box

	Seperate the GtkBuilder definition for Split into its own file.

2010-09-05  John Darrington  <john@darrington.wattle.id.au>

	Autorecode: Add value labels indicating the source values.
	Autorecode now creates value labels on the new variable to
	indicate from which values the new values originate.
	Fixes bug #30943

	Remove obsolete comments.
	Value labels are no longer limited to short string
	variables.  So these comments are no longer relevant.

2010-09-03  Michel Boaventura  <michel@michelboaventura.com>

	Change charset from html output to utf-8

2010-08-29  Ben Pfaff  <blp@cs.stanford.edu>

	Implement the PRESERVE and RESTORE commands.

	settings: Avoid using a pointer and global data for algorithms.
	Until now the difference between the current and global settings for
	the algorithms in uses has been maintained as two values plus a pointer
	to the setting actually in use.  Using global data like that makes it
	harder to save and restore settings, so this commit adopt an alternate
	method that avoids using global data or pointers.

	settings: Make viewwidth, viewlength "int"s instead of pointers.
	I don't recall exactly why these were pointers any longer, but it doesn't
	seem to be necessary any longer.  It is more straightforward if they are
	just stored in the same way as the other settings.

	settings: Reformat the_settings initializer.
	I find this formatting easier to read.

	format: Introduce a new type, struct fmt_settings.
	Until now the collection of formatting styles have been poorly abstracted,
	as an array.  This commit introduces a new type, struct fmt_settings, that
	represents all of the formatting styles currently in use.

	format: Make fmt_number_style_init(), fmt_number_style_destroy() static.
	These functions were not used outside format.c anyhow.

	format: Remove prototypes of unimplemented functions.

	format: Move is_fmt_type() prototype near more-related functions.

	format: Remove declaration of data that is never used.

2010-08-28  John Darrington  <john@darrington.wattle.id.au>

	Improved the syntax generated by the select-cases dialog
	Closes bug #29604

	Allow translation of default filenames in GUI

	Allow translation of default variable name.

2010-08-24  John Darrington  <john@darrington.wattle.id.au>

	Categoricals: Sort the reverse value map.
	The /CONTRAST subcommand of the ONEWAY command
	requires that the categorical values are sorted
	in ascending order.

	Oneway: Fixed most compiler warnings

	Oneway: Fix problems with MISSING=ANALYSIS

	Categoricals: Use moments instead of keeping cc count ourselves

	oneway.c: Use the categoricals struct to calculate number of groups

	oneway: use new structures in the show_contrast_tests function

	oneway: Fix descriptives for multiple variables

	Add optional callback functions to categoricals.
	Added callback functions to categoricals to enable
	per category calculations to be done at the request
	of the caller.  This change also modifies oneway.c (show_descriptives)
	to use this new feature.  However at present it doesn't
	work properly when multiple dependent variables are
	specified.

	Constness

	Oneway: Remove group_stats from the show_homogeniety function

	Oneway:  Remove group_values struct from show_contrast_coeffs

	Covariance matrix interface change.
	covariance_2pass_create now takes a pointer to a
	struct categoricals which must be created by the caller,
	instead of creating this object for itself.  This will
	(hopefully) make the implementation of interactions and other
	features easier.

	Oneway: Remove dict member from struct and add wv member

	Oneway: Use covariance matrix and sweep operator
	Calculate the anova table using the routines from
	src/math/covariance.c and lib/linreg/sweep.c instead
	of the add hoc method.  This change doesn't remove
	all traces of the old method, since the data is still
	needed for some subcommands.  This will be the subject
	of future changes.

	Oneway: Additional test case.
	Add an explicit test for a oneway command run
	on several different dependent variables.

	Oneway:  Use lex_get_num instead of lex_parse_value.
	Contrast coefficients can only be numeric, so parse_value
	is an unnecessary generalisation.

	Constness

	Constness

	ONEWAY: seperate the command specification from the variables used in its calculation

	Categoricals.c Create entries for all groups.
	Although for the purposes of creating a covariance matrix, only
	n - 1 entries are needed,  for other purposes (such as descriptive
	statistics, contrasts, planned comparisons etc) all n entries are required.
	(where n is the number of distinct values).  This change updates
	categories.c so that all n categories are generated.  Covariance matrix
	routines are free to ignore the ones not of interest.

2010-08-24  John Darrington  <john@darrington.wattle.id.au>

	Merge commit 'origin/master' into sso
	Conflicts:

		src/ui/gui/psppire-syntax-window.c
		src/ui/gui/psppire-syntax-window.h
		src/ui/gui/syntax-editor.ui

2010-08-24  John Darrington  <john@darrington.wattle.id.au>

	Syntax Window: Dynamically set paste sensitivity
	Set the sensitivity of the paste action according to
	whether there is anything to be pasted in the clipboard.

	Implemented Edit->Paste in the syntax viewer

2010-08-23  Ben Pfaff  <blp@cs.stanford.edu>

	format: Optimize fmt_from_io().
	A "switch" statement should be much faster than a linear search.

	format: Fix type code for Z format in system and portable files.
	Z format is code 15, not 16 (which is N format).

2010-08-23  John Darrington  <john@darrington.wattle.id.au>

	Syntax Window: Edit->* item sensitivity follows selection
	Disable the Edit Cut/Copy/Delete menuitems by default
	and enable them only when a selection is active.

	Implemented Cut, Copy and Delete in the syntax editor

2010-08-22  John Darrington  <john@darrington.wattle.id.au>

	SET MXWARNS = 0 to be interpreted as unlimited.
	This change introduces a special meaning to the
	value of zero for the MXWARNS settings.  When
	a zero value is set.  A single warning will be
	emitted informing the user that the setting is
	in effect.  Thereafter no warning will be emitted.
	All warning situations will be ignored.

	Move MX* processing to libpspp/message.c
	This change moves the guts of src/ui/terminal/msg-ui.c
	into libpspp/message.c  The affected code handles the
	processing of the MXWARNS and MXERRS settings.  As this
	code was under src/ui/terminal these settings were being
	ignored in the GUI

	Update tests to reflect string changes.
	Commits 608b1765241e7c6f9bd5e86a8f81cf15edeb413b and
	c1a56a1dd2afad462cf76d91c40aa064cc7dce04 changed some
	output strings, but didn't update the tests to match.
	This change makes that update.

2010-08-21  John Darrington  <john@darrington.wattle.id.au>

	syntax-editor.ui cleanup

	Allow undo/redo of pasted text as a single item

	Text input dialog: Use widget-io
	Use the widget_scanf function instead of manually
	juxtaposing widgets.  This makes life a lot easier
	for translators.

	Canonicalise 2-tailed vs. 2-sided

	Consolidate printed strings

	Correct grammar in printed string

2010-08-20  John Darrington  <john@darrington.wattle.id.au>

	file-handle-def.c: replace hash with hmap

2010-08-19  John Darrington  <john@darrington.wattle.id.au>

	Fix translation of column headers in text import dialog.
	The "Text" and "Line" column headers in the text import dialog were not being
	translated.  Thanks to Mindaugas embar@super.lt for reporting this.

	Fix translation of column header.
	The "var" column header in the data view was not getting
	translated, due to lack of a call to gettext.  Thanks to
	Mindaugas embar@super.lt for reporting this.

2010-08-15  John Darrington  <john@darrington.wattle.id.au>

	Fix bug reallocating sourceview path array

2010-08-11  John Darrington  <john@darrington.wattle.id.au>

	correlations: Fix memory leak

	Inform users about GtkSourceView dependency

	Avoid compiler warnings

	Relocate the directory in which the lang file is installed

	Allow undo/redo of pasted text as a single item

	Added basic undo/redo to syntax window

	Added basic print capability to the syntax window

	Enable the bracket matching

	Use GtkSourceView and implement simple syntax highlighting

2010-08-09  Ben Pfaff  <blp@cs.stanford.edu>

	tests: Ignore testsuite.at since it is now a generated file.

	COUNT: Convert tests to use Autotest.

	BEGIN DATA: Convert tests to use Autotest.

	ADD FILES: Convert testsuite to use Autotest.

	tests: Rewrite attributes tests to use Autotest.

	SET: Add test to avoid regression on bug #30682.

	Implement SAVE TRANSLATE to comma- and tab-delimited text formats.

	SAVE: Fix UNSELECTED=RETAIN with a filter variable.
	Apparently this had never been tested.  It assert-failed consistently
	because the filter variable being saved was from the dictionary before
	reading the data, but the dictionary after reading the data was
	different due to the temporary transformation used to drop the
	filtered data.

	DATA LIST: Don't report an error for an empty final field in LIST format.
	Also add test to prevent inadvertent regressions.

	DATA LIST: Fix output column reporting for FREE and LIST formats.
	Also, add tests to prevent inadvertent regressions.

	DATA LIST: Convert tests to use Autotest.

	sys-file-writer: Consistently use "goto error" to exit.

	sys-file-writer: Make write_error(), close_writer() static.
	These functions were never meant to be public (and they were not declared
	in a header file).

	sys-file-writer: Fix comment.

	Replace S_I[RWX]{USR,GRP,OTH} macros by their values.
	POSIX 2008 guarantees that these macros have their traditional Unix values,
	so it should no be longer necessary to use the macros for portability's
	sake.  Personally, I find the values easier to read, especially when
	several of them are OR'd together.

	i18n: Make a few strings more generic for translators.
	This should reduce the amount of work required by translators, by reducing
	the number of unique strings to be translated.

2010-08-08  John Darrington  <john@darrington.wattle.id.au>

	Aggregate-dialog: Preselect summary function and variable name.
	Apparently the most common use of aggregate is to count cases.
	Therefore we set the default summary function and variable
	name controls, so that the user has fewer keystrokes/mouse
	clicks in order to achieve this.

	SET FORMAT: Flag an error if an invalid format is given.
	Fixes bug #30682

	Aggregate: Fixed bug when attempting to create duplicate variable
	This change fixes a segfault which occured if AGGREGATE MODE=ADDVARIABLES
	attempted to create a variable which already exists in the dictionary.
	Added a test to check for this bug.

2010-08-07  John Darrington  <john@darrington.wattle.id.au>

	Aggregate dialog: Initialize HPane widget width on opening.
	Set the HPane position to 50% of maximum, when the widget is
	realized.  Thanks to Fredrik Clementz for suggesting this.

2010-08-06  John Darrington  <john@darrington.wattle.id.au>

	ONEWAY: Add explicit tests for the homogeneity and descriptives subcommands

	Migrate the tests for the ONEWAY command to autotest style

	Avoid duplicating the list of autotest files.
	Reviewed by Ben Pfaff

2010-08-05  John Darrington  <john@darrington.wattle.id.au>

	Replace oneway.q with a manually crafted oneway.c file

	Documentation: Add explanation of ONEWAY/MISSING

2010-08-01  John Darrington  <john@darrington.wattle.id.au>

	Avoid compiler warning

2010-07-31  John Darrington  <john@darrington.wattle.id.au>

	FACTOR: prevent crash if the dataset is empty.
	The FACTOR command crashed if there were no cases
	which had non-missing values for all variables.
	This change emits a warning in this case and does
	no analysis.

2010-07-30  John Darrington  <john@darrington.wattle.id.au>

	Deallocate memory from pool using the correct function
	Memory allocated using pool_alloc was being deallocated using
	the standard free function instead of pool_free.  This change
	fixes that.  Thanks to Andras Muranyi for reporting this problem.

	Flush the journal after every write.
	Unexpected bugs in the parser, engine or in procedures can cause crashes
	in the GUI.  If the journal is not flushed *before* running the syntax, then
	no record of that syntax exists, and the bug can be hard to reproduce.
	This change ensures that the syntax is written to the journal before it is
	processed.

	Removed the gnulib modules which are being flagged as obsolete

2010-07-29  Ben Pfaff  <blp@cs.stanford.edu>

	AGGREGATE: Add .h file to Makefile (fixing "make distcheck").

	FLIP: Convert tests to use Autotest.

	make-file: Remove superfluous fflush().
	Probably introduced during debugging and accidentally left in.

2010-07-29  Ben Pfaff  <blp@cs.stanford.edu>

	temp-file: New functions for creating temporary files honoring $TMPDIR.
	The tmpfile() function is useful, but it doesn't necessarily honor
	the $TMPDIR environment variable.  Some of our users find that a problem,
	so this commit replaces tmpfile() usage by a new pair of functions
	create_temp_file() and close_temp_file() that do honor $TMPDIR.

	Bug #30530.

2010-07-29  Ben Pfaff  <blp@cs.stanford.edu>

	temp-file: Rename "ext-array" (for "external array").
	I want to introduce a new source module for general creation of temporary
	files and this module's name conflicts.

2010-07-29  John Darrington  <john@darrington.wattle.id.au>

	AGGREGATE: Fixed a bug with MEDIAN vs. MODE=ADDVARIABLES

	Added dialog box for the aggregate command

2010-07-28  John Darrington  <john@darrington.wattle.id.au>

	AGGREGATE: New file aggregate.h containing the summary function specifications
	Added a header file containing the declaration and type of the agr_func_tab
	table, and expanded that type to contain a description of the function and
	an explicit declaration of whether a source variable is permitted/needed.
	This change is primarily for the benefit of the forthcoming dialog box for
	the aggregate command.  However it also (in my opinion) makes the existing
	implementation a little easier to understand.

2010-07-26  John Darrington  <john@darrington.wattle.id.au>

	Remove URL from translatable string

	AGGREGATE: Add MODE=ADDVARIABLES subcommand.
	Instead of replacing the current dataset with the aggregated
	data, this subcommand appends newvariables to the data with the
	aggregated values.

2010-07-25  Jason H Stover  <jhs@franz.gcsu.edu>

	Fix upper bound for subscript in ordered_cols.

2010-07-24  John Darrington  <john@darrington.wattle.id.au>

	Fix memory leak in crosstabs

	Fix memory leak in MRSETS

	Avoid unused function warning

2010-07-22  John Darrington  <john@darrington.wattle.id.au>

	Replaced relibility.q with relibility.c
	Replaced the reliability autogenerated parser
	with a handcrafted one.

2010-07-20  Jason H Stover  <jhs@franz.gcsu.edu>

	Add argument specifying column containing dependent variable.

2010-07-19  John Darrington  <john@darrington.wattle.id.au>

	Delete file "means.q"
	This file contained only the skeleton of the parser.

	Remove unnecessary include directives of hash.h

2010-07-18  John Darrington  <john@darrington.wattle.id.au>

	Fix memory leak in data_in

2010-07-16  John Darrington  <john@darrington.wattle.id.au>

	Reliability dialog: Add checkbox for summary subcommand

	add missing source file to glade support library

	Fix memory leak

	Remove const qualifiers from encoding converter components.
	These elements have to be freed.  Therefore const is not
	appropriate.

2010-07-15  Jason H Stover  <jhs@franz.gcsu.edu>

	Do not rely on user to specify all variables in VARIABLE subcommand. Fixes bug 30389.

2010-07-08  John Darrington  <john@darrington.wattle.id.au>

	Replace unknown XML entities with their numerical counterpart.
	Texinfo seems to produce XML entities (such as &copy;) which
	are not valid (although they are valid for HTML).  We work
	around such problems by post-processing with sed. Here, we
	replace these unknown entities with their numeric counterparts.
	Such is the advice given at
	http://www.dwheeler.com/essays/quotes-in-html.html

2010-07-04  John Darrington  <john@darrington.wattle.id.au>

	Fix various memory leaks

	Fix memory leak in tab_destroy

	Fix memory leak in examine

	Fix uninitialized variable

	Fix invalid reference

2010-06-29  Ben Pfaff  <blp@cs.stanford.edu>

	cairo: Fix handling of font sizes.
	Until now this code used pango_font_description_set_absolute_size() to set
	the font size.  This sets the font size in device units, e.g. pixels on a
	display.  But font sizes are actual specified by the user in points, so
	we should instead use pango_font_description_get_size().  This commit
	makes that change.

	That change is simple, but it necessitates a larger change.
	Until now the cairo driver has just assumed that the size of a font is
	the size that we assigned it.  But this is no longer the case, since
	points and pixels are now different.  So now we measure the actual width
	and height of characters and use those as the font size.  At the same
	time, the code no longer ignores font sizes included as part of font
	description strings, and allows different fonts to have different sizes.

	With plenty of help from John Darrington.

2010-06-26  Ben Pfaff  <blp@cs.stanford.edu>

	cairo: Remove support for printed headers.
	The printed headers on each page do not very attractive, and the
	information that they contain by default is not very useful.  Because an
	upcoming commit makes them harder to properly implement, simply remove
	them for now.

	With this commit, the cairo driver no longer prints titles and subtitles
	at all.  This needs to be fixed.

2010-06-26  Ben Pfaff  <blp@cs.stanford.edu>

	gui: Fix spelling error in user-visible string.

	output: Fix logic error in table_select_slice().
	z1 is a row or column number, not a count of header rows or columns, so it
	only makes sense to compare it against another row or column number, not
	against a count of rows or columns.

2010-06-26  John Darrington  <john@darrington.wattle.id.au>

	perl-module: Further corrections to dependencies

2010-06-26  Ben Pfaff  <blp@cs.stanford.edu>

	Revert unintended change to tests_libpspp_str_test_LDADD.
	When I was preparing the previous commit I tested a change to
	tests_libpspp_str_test_LDADD and then (I thought) reverted it.  But my
	revert actually changed the order.  Oops.

	John Darrington reports that the new order causes link problems for him, so
	I'm putting the order back to the original, with this commit.

2010-06-25  Ben Pfaff  <blp@cs.stanford.edu>

	Avoid redundant linking against libtool convenience libraries.
	Both libpspp.la and libpspp-core.la linked directly against libgl.la, and
	the UI linked against both libpspp.la and libpspp-core.la.  This works fine
	on ELF systems, but with Mach-O on Mac OS X it silently causes duplicate
	symbols at runtime.  In particular there are two different copies of
	rpl_optarg from libgl.la.  Different code sees different copies of these,
	which causes a segfault at runtime whenever anyone invokes pspp with an
	option that takes an argument.

	Reported by Jeremy Lavergne <jeremy@lavergne.gotdns.org>, with debugging
	assistance by Jeremy and by John Darrington.

2010-06-23  John Darrington  <john@darrington.wattle.id.au>

	Move compute dialog definition to its own file

	Move select cases into its own definition file

	(Re)enable select cases dialog.
	The handler for this action seemed to have gone missing.
	Fixing it.

	Seperate the goto-case dialog into its own definition file

2010-06-22  John Darrington  <john@darrington.wattle.id.au>

	Correct makefile dependencies for perl module

2010-06-16  Ben Pfaff  <blp@cs.stanford.edu>

	README.Git: Upgrade to latest Gnulib.
	In particular this incorporates commit 39bdc0a99 "strtod: Stop using
	AC_FUNC_STRTOD", which should fix problems with the strtod() replacement
	when cross-compiling to Mingw.  For more information, see the thread at
	http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/22091 and PSPP bug
	#29965.

2010-06-16  John Darrington  <john@darrington.wattle.id.au>

	Ensure that psppire's --help and --version options work even without an X server.

2010-06-15  Ben Pfaff  <blp@cs.stanford.edu>

	lexer: Fix funny indentation.

	psppire: Fix insecure temporary file creation in clipboard_get_cb().

	pspp: Mark the pspp --help text as translatable.

	psppire: Re-implement --help and --version options.
	Commit f51ecb4802 "Greatly simplify PSPP configuration." accidentally
	removed PSPPIRE support for the --help and --version options.  This commit
	restores it (and improves upon the text previously displayed).

2010-06-15  Ben Pfaff  <blp@cs.stanford.edu>

	Do not treat isolated CR in input data as new-line.
	User "tvw" on IRC reported that PSPP failed to parse data that SPSS 18
	accepted.  We found that the problem was carriage return (CR) characters
	in the middle of a line.  PSPP treated these as new-lines, but SPSS did
	not.  This commit adopts the SPSS behavior in PSPP and adjusts one test
	that checks this behavior.

	This will break reading some old Mac OS files, since Mac OS before version
	10 used CR without LF as new-line.  Time will tell whether this is a real
	problem for our users.

2010-06-15  John Darrington  <john@darrington.wattle.id.au>

	Remove unused functions make_temp_file and make_unique_file_stream

2010-06-11  Ben Pfaff  <blp@cs.stanford.edu>

	tests: Fix test failures in calendar and expressions tests.

2010-06-10  Ben Pfaff  <blp@cs.stanford.edu>

	tmpfile: Rename "struct tmpfile" to "struct temp_file".
	Mingw builds were failing because Gnulib was replacing "tmpfile" by
	"rpl_tmpfile", and this was visible only to some users of "struct tmpfile".
	The safest fix seems to be just renaming struct tmpfile, so that's what
	this commit does.

	Thanks to Harry Thijssen <pspp@sjpaes.nl> for reporting the problem.

	Bug #29965.

2010-06-09  John Darrington  <john@darrington.wattle.id.au>

	Remove unnecessary translatiosn of stock items.
	Stock items have their own translations, so it's counter
	productive to ask pspp's translators to re-translate them
	without good reason.

	perl-module/Makefile.PL: Change DLEXT to SO
	Apparently the former is for dynamically loaded modules,
	whereas the latter is for shared libraries.  So SO is
	appropriate here.  Thanks to Jeremy Lavergne for reporting
	this.

2010-06-09  Ben Pfaff  <blp@cs.stanford.edu>

	README.Git: Update to latest Gnulib.
	The newest Gnulib fixes problems building the relocation wrapper used on
	some OSes (e.g. OpenBSD) when PSPP is configured with --enable-relocatable.

	configure.ac: Do not define DEPENDS_ON_LIBINTL.
	If <config.h> defines DEPENDS_ON_LIBINTL, then the relocation wrapper fails
	to link at install time when --enable-relocatable is used on a system that
	requires the relocation wrapper (e.g. OpenBSD), because the relocation
	wrapper does not link against libintl.

	inexactify: #include <config.h>
	This fixes a problem with redefined "struct option" under OpenBSD 4.7.

2010-06-08  Ben Pfaff  <blp@cs.stanford.edu>

	Smake: Don't create .cvsignore files.
	Clearly these files aren't useful anymore, since we no longer use CVS.

2010-06-08  Ben Pfaff  <blp@cs.stanford.edu>

	gui: Fix permissions when creating configuration directory.
	http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html says
	that the configuration directory should have mode 0700, so use that.

	Reported by John Darrington.

2010-06-07  Ben Pfaff  <blp@cs.stanford.edu>

	gui: Create user settings directory if it doesn't already exist.
	The user settings directory doesn't necessarily exist.  Some program has to
	create it, and PSPPIRE might be the first program that wants it, so it
	should try to create it.

	Discovered on OpenBSD.

2010-06-07  Ben Pfaff  <blp@cs.stanford.edu>

	po: Avoid passing nonportable -D option to "install" program.
	OpenBSD "install" and "install-sh" distributed with Autoconf do not
	support -D, so we should not try to use it.

2010-06-06  Ben Pfaff  <blp@cs.stanford.edu>

	DEBUG EVALUATE: Eliminate lexical corner case, rewrite tests in Autotest.
	The DEBUG EVALUATE command, used only for testing, used the
	lex_rest_of_line() function.  I'd like to eventually get rid of all of the
	uses of this function and other unusual lexical corner cases, so this
	commit starts off by removing this one.

	expressions: Improve error message for bad quarter argument to DATE.QYR.
	The error message issued by DATE.QYR for an invalid "quarter" argument
	referred instead to a "month" value.  This makes the error message more
	understandable.

	expressions: Improve error messages evaluating invalid Boolean values.
	The error message used for an invalid Boolean value was terribly generic.
	This commit adds the name of the operator to the error message.

	expressions: Don't abbreviate "number" as "num" in error messages.

2010-06-06  Ben Pfaff  <blp@cs.stanford.edu>

	expressions: Improve "type mismatch" error messages from expression parser.
	Before this commit, type mismatches invoking functions in expressions would
	yield confusing error messages due to missing type names, e.g.:
	    Type mismatch invoking MISSING(number) as missing(string).
	This commit fills in the missing type names:
	    Type mismatch invoking MISSING(number) as missing().

	An upcoming commit will start checking error messages as part of the tests
	for expressions, which should ensure that the problem does not recur.

2010-06-06  Ben Pfaff  <blp@cs.stanford.edu>

	MOMENTS: Avoid lexical corner case in test case.
	The DEBUG MOMENTS command, used only for testing, used the
	lex_rest_of_line() function.  I'd like to eventually get rid of all of the
	uses of this function and other unusual lexical corner cases, so this
	commit starts off by removing this one.

	pspp: Add --no-output option to allow entirely disabling output.

2010-06-04  John Darrington  <john@darrington.wattle.id.au>

	en_GB.po: Attended to fuzzy entries

2010-06-02  John Darrington  <john@darrington.wattle.id.au>

	Fix memory leak in casewriter_make_reader.
	The proto member was not being unrefed when it should have been.
	Reviewed by Ben Pfaff.

2010-05-29  Ben Pfaff  <blp@cs.stanford.edu>

	gui: Speed up rendering of large tables that are only partly visible.

2010-05-28  Ben Pfaff  <blp@cs.stanford.edu>

	Remove 255-byte limit on the length of literal strings.
	I don't see a reason for this restriction.  I think it must date to before
	support for 32767-byte string variables.

	Problem reported by Dr Eberhard W Lisse <el@lisse.NA>.

2010-05-28  John Darrington  <john@darrington.wattle.id.au>

	Fix inconsistent label positions on piecharts.
	The labels of piechart slices did not match the positions
	of the slices (possibly due to libplot legacy).  This
	change fixes this problem.

2010-05-27  John Darrington  <john@darrington.wattle.id.au>

	Documentation: Added concept indices for various charts

	Added some very rudimentary tests for charts.
	Currently, all these tests do is ensure that the syntax which
	should generate charts, can run without crashing.  More
	rigourous tests should be added in the future, when the infrastructure
	allows.

	Be more forgiving about ROC syntax

	Fix crash on erroneous ROC input

2010-05-26  John Darrington  <john@darrington.wattle.id.au>

	Create the detrended np plot instead of a second normal one

	Removed uninitialised variable.
	Removed an uninitialised variable which was being
	dereferenced and hence crashing.

2010-05-25  Ben Pfaff  <blp@gnu.org>

	Fix tests/command/sample.sh test on Mingw.
	On Mingw pspp.list contains CR-LF line ends, so the "grep" command to
	skip blank lines needs to allow for that.

	Fix tests/formats/num-out.sh test on Mingw.
	inexactify needs an .exe extension on Mingw.

	Fix Mingw test failures due to differences in line endings.
	This commit changes "diff" invocations to ignore changes in white space to
	avoid spurious test failures due to differences in line endings.

2010-05-25  Ben Pfaff  <blp@gnu.org>

	Fix get-data-txt-importcases.sh test on Mingw.
	On Mingw, ftell() and ftello() are unreliable when used on text files with
	plain LF line endings:
	    http://article.gmane.org/gmane.comp.gnu.m4.bugs/2224

	This made the get-data-txt-importcases.sh test fail, because
	dfm_get_percent_read() that it depends upon to determine the percentage of
	the file that has been read uses ftello().  The solution is to always open
	the text file as a binary file.  According to my audit of the ways that
	the text file is read, this should not cause other problems.  In
	particular, ds_read_line() handles both LF and CR-LF line endings.  But it
	cannot handle negative effects on Unix platforms anyway, since they do not
	distinguish text and binary modes.

2010-05-25  Ben Pfaff  <blp@cs.stanford.edu>

	Add $EXEEXT to names of binaries executed in tests.
	This makes "make check" work much better when building for Windows with
	the mingw cross-compiler suite.

2010-05-25  Ben Pfaff  <blp@gnu.org>

	Move auxiliary files used for build into "build-aux" directory.
	This reduces clutter in the root directory of the PSPP distribution.  It
	is common practice for GNU software these days.

2010-05-25  Ben Pfaff  <blp@cs.stanford.edu>

	perl-module: Copy perl-module files if missing as well as if changed.
	I don't know why the behavior here changed, because I don't see any changes
	that would cause the problem, but at least the new version makes equal
	sense.

	po: Update Dutch translation.
	Thanks to the Dutch translation team and the translationproject.org
	coordinators.

2010-05-25  John Darrington  <john@darrington.wattle.id.au>

	Output viewer: Guess file type from filename suffix.
	When choosing File|Export in the output viewer,
	the dialog box now guesses the desired file format
	based upon the given filename suffix.
	Closes bug #29867

2010-05-24  John Darrington  <john@darrington.wattle.id.au>

	Use gtk stock item instead of a custom one

	Fix compiler warnings

	Added remaining relevant unicode box characters

	Entered some extra unicode box chars in the table

	Call expand all on Edit->SelectAll
	Expand the treeview widget before calling
	select_all, since this is probably what the
	user wants.

	Added an ODT target to the output viewer clipboard

	Added a SelectAll menuitem to the output viewer

	Add html target to output viewer clipboard

	Added basic clipboard functionality to the output viewer.
	This version only allows pasting to text and utf8 targets.

	Replace LDFLAGS setting inadvertently removed by commit 3fac2920b97a068e156c376afd05583b481801ac

	Added a GTK_STOCK_INFO icon to the file information menu

	Use meaningful identifier for the Edit|Copy action

	Update required versions of the GSL and GTK libraries

2010-05-22  Ben Pfaff  <blp@cs.stanford.edu>

	sys-file-reader: Fix reading overlong value labels for long string variables.
	Commit 6b562f8a8 "Add support for value labels on long string variables"
	that added support for reading value labels for long string variables from
	system files had a logic error in dealing with too-long label strings: the
	sign of the subtraction was reversed.

	Problem reported by Michel Boaventura <michel@michelboaventura.com>.

2010-05-22  Ben Pfaff  <blp@cs.stanford.edu>

	dissect-sysfile: Eliminate harmless GCC warning.

	dissect-sysfile: Allow padding compressed data at end of file without error.
	Compressed data in a system file can end either with a special opcode or
	by padding out the last set of opcodes to an 8-byte boundary with null
	bytes.  Until now, dissect-sysfile has complained about last with
	"unexpected end of file".  This commit fixes the problem.

	dissect-sysfile: Properly interpret padding bytes in compressed data.

2010-05-21  Ben Pfaff  <blp@cs.stanford.edu>

	configure.ac: Increase version number to 0.7.5 for translationproject.
	translationproject.org needs a version number increment to submit a new
	pspp.pot.

2010-05-21  Jason H Stover  <jhs@math.gcsu.edu>

	Removed unused function

2010-05-21  John Darrington  <john@darrington.wattle.id.au>

	Removed src/math/coefficient.[ch] which are no longer used

	Fix problem opening files with non-ascii names on Windows

	Fix crash on Windows when calculating a covariance matrix of dimension 1.
	Calculating a covariance matrix on a single variable crashed under Windows.
	This change fixes that.  It also prevents GUI users from attempting to
	perform a correlation with only one variable, since if they are trying to
	do that, then the have probably made a mistake.

2010-05-21  John Darrington  <john@darrington.wattle.id.au>

	Revert "Removed src/math/interaction.[ch] which has been superseded by categoricals.[ch]"
	This reverts commit a456c361c0d324475da63d8420a2f0b108b61243.

	It's still needed after all.

2010-05-21  John Darrington  <john@darrington.wattle.id.au>

	Removed src/math/interaction.[ch] which has been superseded by categoricals.[ch]

2010-05-21  John Darrington  <john@darrington.wattle.id.au>

	Merge commit 'origin/covariance'
	Conflicts:

		src/data/dictionary.c
		src/language/stats/correlations.c
		src/language/stats/regression.q
		src/math/automake.mk

2010-05-21  John Darrington  <john@darrington.wattle.id.au>

	Added brief documentation about the FACTOR command's rotation feature

	Implemented a rotations subdialog for the FACTOR command

2010-05-20  John Darrington  <john@darrington.wattle.id.au>

	Added ROTATION to this list of default tables

2010-05-20  Ben Pfaff  <blp@cs.stanford.edu>

	sys-file-reader: Variable attributes record uses long variable names.
	Michel Boaventura provided a system file for which PSPP complained about
	bad variable attributes records.  I found out that this was because the
	variables were specified using long names, not short names.  This commit
	allows PSPP to read these variable attributes properly.

	sys-file-reader: Tolerate variable labels longer than 255 bytes.
	Michel Boaventura provided a system file with a 256-byte variable label
	that PSPP rejected.  This commit allows it to be read.

2010-05-20  John Darrington  <john@darrington.wattle.id.au>

	Updated tests to take account of factor rotations

	Added proper convergence criteria for rotation phase

	Print the rotated sums of squared loadings

	First working version with Factor Rotations

	Update manual's licence to FDL 1.3
	The copyright notice said that a copy of FDLv1.3 was included.
	But infact it was an older version.  This change fixes that.

2010-05-20  Ben Pfaff  <blp@cs.stanford.edu>

	cairo: Implement xr_driver_destroy() and use it during printing.
	This function was omitted by oversight earlier.

2010-05-20  Ben Pfaff  <blp@cs.stanford.edu>

	README.Git: Update to newest Gnulib.
	This should fix build failures on OpenSUSE, OpenBSD, and possibly on other
	platforms that have libintl but on which libintl does not contain a
	definition of __printf__, by integrating the following commit:

	    commit a43e24168368619e2d51fe7a37abc4969d7a87fe
	    Author: Bruno Haible <bruno@clisp.org>
	    Date:   Sun May 16 14:16:03 2010 +0200

	        Fix collision between gnulib's and libintl's printf replacements.

2010-05-19  John Darrington  <john@darrington.wattle.id.au>

	Implemented the Binomial Test dialog box.

	Fixed bug parsing binomial test.
	The NPAR TEST /BINOMIAL subcommand was supposed
	to take a default P value.  But it didn't work.
	This change fixes that problem.

	Added an implementation of the Chi-Square dialog box

2010-05-18  John Darrington  <john@darrington.wattle.id.au>

	Add stock items to output viewer menuitems

	Removed diagnostic messages from print operation callbacks

2010-05-18  Ben Pfaff  <blp@cs.stanford.edu>

	Merge "paginate" branch into "master".
	This adds printing support to the PSPPIRE output viewer on the master
	branch.

2010-05-18  Ben Pfaff  <blp@cs.stanford.edu>

	psppire-axis: Use rint() instead of nearbyint(), for portability.
	rint() and nearbyint() are identical except that nearbyint() will not
	raise the inexact result exception, which we don't care about.  OpenBSD
	and probably other OSes have rint() but not nearbyint().

	Perhaps a better fix would be to add a nearbyint module to Gnulib.

2010-05-18  John Darrington  <john@darrington.wattle.id.au>

	Added tests for the FACTOR command

2010-05-17  Ben Pfaff  <blp@cs.stanford.edu>

	compiler: Fix SENTINEL macro in non-GCC case.

2010-05-17  Jason H Stover  <jhs@math.gcsu.edu>

	New function covariance_calculate_unnormalized

	Rewrote to use new covariance functions.

2010-05-16  John Darrington  <john@darrington.wattle.id.au>

	Renamed function to reflect change of purpose from previous commit

	Paste to a single common syntax window instead of a new one.
	Previously, when a dialog box's "paste" button was pressed, a
	new syntax window was created and the syntax pasted to it.  This
	change alters that behaviour.  Now there is just one syntax window
	that is used for all paste operations.  Fixes bug #27686

	Expanded comments to src/libpspp/i18n.[ch]

2010-05-15  John Darrington  <john@darrington.wattle.id.au>

	Update nl.po from translationproject.org

2010-05-14  John Darrington  <john@darrington.wattle.id.au>

	Translate the contents of frequencies and descriptives checkbox treeviews
	Call gettext on the translatable strings which populate the
	contents of "Statistics" treeviews in checkbox dialogs.
	Thanks to Harry Thijssen for reporting this.

	Merge branch 'master' of ssh://jmd@git.sv.gnu.org/srv/git/pspp

2010-05-12  Ben Pfaff  <blp@cs.stanford.edu>

	gui: Configure page setup when printing in the GUI.
	The page setup has to be passed down to the Cairo output driver or it
	doesn't know how to paginate the output properly.

	gui: Factor out creation of Cairo output driver in printing code.
	The following commit will add a lot more code here, so it's best to avoid
	duplication.

	cairo: Allow xr_driver_create()'s caller to usefully set more options.
	Until now, xr_driver_create() has only parsed a few of the Cairo driver
	options.  This commit makes it parse more of them, in preparation for
	output viewer printing to set more of them.

	cairo: Apply margins to pages added with xr_driver_next_page().
	This properly adds margins to pages printed by the GUI.

	cairo: Remove write-only member 'file_type' from struct xr_driver.

2010-05-12  Ben Pfaff  <blp@cs.stanford.edu>

	Upgrade manuals' licenses to GFDL 1.3 and remove cover texts.
	This commit changes the licenses for the PSPP manual from GFDL version 1.1
	(or later) to GFDL version 1.3 (or later).

	Perhaps more importantly, it removes the Front-Cover Text and Back-Cover
	Text, as permitted by the GNU guide for maintainers:

	      Please adjust the list of invariant sections as appropriate for your
	   manual.  If there are none, then say "with no Invariant Sections".  If
	   your manual is not published by the FSF, and under 400 pages, you can
	   omit both cover texts.

2010-05-12  John Darrington  <john@darrington.wattle.id.au>

	Created convenience function connect_action
	A function to wrap the connection of "activate" signals.

	Remove unnecessary GtkAction * variables

2010-05-11  John Darrington  <john@darrington.wattle.id.au>

	Use signal handlers with the window as the first argument where reasonable to do so

	Change gpointer variable to PsppireDataWindow * in dialog function signatures

	Remove unused GObject pointer from dialog functions and update signal connect functions accordingly

2010-05-10  John Darrington  <john@darrington.wattle.id.au>

	Whitespace changes only

	Remove reference to gtk-builder-convert which is no longer distributed

	Converted output-viewer from .glade to .ui

	Convert syntax-editor from .glade to .ui

	Refactor the Help menu.
	Instead of writing a help menu for each of the three main windows,
	implement it once, and merge it into the menubars using GtkUIManager

2010-05-09  John Darrington  <john@darrington.wattle.id.au>

	Updated the po files

	Added some missing translation tags

	Move data sheet cases popup menu to GtkBuilder file

	Move var sheet variables popup menu to GtkBuilder file

	Remove property settings from psppire_data_window and put them into the GtkBuilder file

	Move implementation of the datasheet variable popup menu to the GtkBuilder file

	Remove the resolve_action function which is no longer needed

	Use consistent orthography for "stock-id" property

	Convert data-editor.glade to data-editor.ui

	First attempt at a psppire print dialog.
	It basically seems to work, but there are some issues with headers, and
	charts are not getting rendered for some reason.

2010-05-08  Ben Pfaff  <blp@cs.stanford.edu>

	output: Refactor Cairo output driver to make printing via GTK+ practical.

	cairo: Update #include style.

2010-05-08  Michel Boaventura  <michel@michelboaventura.com>

	gui: Fix crash clicking on the upper-left corner of the data sheet.
	Bug #29659.

	psppire: Translate more GUI strings.
	There are a lot of strings that are not being translated, mainly
	window titles.  This patch fixes most of them.

2010-05-06  Ben Pfaff  <blp@cs.stanford.edu>

	Ignore additional files created by Gnulib.

2010-05-06  John Darrington  <john@darrington.wattle.id.au>

	Fix crash on variable type dialog custom currency display.
	Fixed a bug where a null pointer dereference occured when
	the user chose the custom currency button in the variable
	type dialog.

	Don't convert values returned from gettext to UTF8.
	Because we have called bind_text_domain_codeset, gettext always
	returns strings in UTF8 encoding.  It's therefore not correct to
	convert them again.  Thanks to Michel Boaventura for reporting
	this problem.

2010-05-05  Michel Boaventura  <michel@michelboaventura.com>

	psppire: Translate all format type categories, not just some of them.

2010-05-02  Ben Pfaff  <blp@cs.stanford.edu>

	CROSSTABS: Merge functions into cmd_crosstabs().
	It seems to me that this code is more straightforward if it is written as
	a single function, instead of four functions, so this commit merges those
	functions together.

	FREQUENCIES: Refactor and simplify percentiles calculations.
	It always seemed to me that there was more code and more data for
	calculating percentiles than was really needed.

2010-05-02  Ben Pfaff  <blp@cs.stanford.edu>

	Take advantage of Gnulib configmake module.
	Gnulib provides the "configmake" module for discovering configuration
	directories at build time.  PSPP already depends on this module indirectly,
	so we might as well use it instead of defining our own variables in
	Makefile.am and src/automake.mk.

	(We can't replace INSTALLDIR by BINDIR because it is used under the
	former name by the "relocatable-prog" module.)

2010-05-02  John Darrington  <john@darrington.wattle.id.au>

	Convert syntax files to UTF-8 before loading them.
	Convert the contents of a syntax file to UTF-8 before loading
	it into the syntax window. Fixes bug #29733
	This change assumes that the files to be loaded are in the
	encoding of the current locale.  If this assumption is not
	true, then an error will be displayed and the file not loaded.

2010-05-01  Ben Pfaff  <blp@cs.stanford.edu>

	Use ftello() and fseeko() instead of ftell() and fseek() everywhere.
	Newer versions of glibc give annoying warnings on uses of ftell() and
	fseek(), so use ftello() and fseeko() instead.

	Implement MRSETS command.
	Thanks to Tom Wilson <tom_wilson@mointel.com> for reporting the format of
	the MRSETS record in system files, and to John Darrington for examples of
	additional types of records.

	dissect-sysfile: Print contents of extension records with unknown subtypes.

	New stringi_set functions.

	New case-insensitive string map data structure.

2010-04-24  Ben Pfaff  <blp@cs.stanford.edu>

	perl-module: Add --without-perl-module configure flag.
	The built Perl module is not useful for cross-compilation.  By default it
	is disabled for cross-compilation, but cross-compilation to Mingw32 is not
	always detected as cross-compilation (since some Linux systems can run
	Windows binaries directly, via Wine), so this option helps in such cases.

	Reported by Michel Boaventura <michel.boaventura@gmail.com>.

2010-04-24  Ben Pfaff  <blp@cs.stanford.edu>

	cairo-chart: Fix Pango version check.
	There is no Pango version 2.22, but there is a 1.22.

	Reported by Michel Boaventura <michel@michelboaventura.com>.

2010-04-21  Ben Pfaff  <blp@cs.stanford.edu>

	Document system file record type 7, subtype 16 as 64-bit number of cases.
	I found this record type and subtype in all .sav files written by SPSS 14
	and later (and in one file written by SPSS 13).  After scratching my head
	a bit I realized that it always contained the same value as the "ncases"
	field in the top-level file header, but written as a 64-bit number.  So
	presumably the purpose is to allow for a 64-bit count of cases.

	integer-format: Support 64-bit integers in integer_get().
	My guess is that this was just a typo from when I originally wrote this
	function.

2010-04-21  Ben Pfaff  <blp@cs.stanford.edu>

	perl-module: Avoid compiler warning from conflicting "my_strftime" macros.
	Avoids the following warnings:

	In file included from /usr/lib/perl/5.10/CORE/perl.h:953,
	                 from PSPP.xs:23:
	/usr/lib/perl/5.10/CORE/embed.h:2803:1: warning: "my_strftime" redefined
	In file included from PSPP.xs:20:
	/home/blp/pspp/output/_build/config.h:1968:1: warning: this is the location of the previous definition

2010-04-19  Ben Pfaff  <blp@cs.stanford.edu>

	perl-module: Better document Perl module requirements.

2010-04-15  Ben Pfaff  <blp@cs.stanford.edu>

	configure: Improve check for PostgreSQL's libpq.
	Previously this test did not check that linking against libpq worked.
	This commit fixes that.  Besides broken installations this also guards
	against pg_config that is applicable to the host when cross-compiling to
	Mingw, which doesn't always show up as cross-compiling since some systems
	can still run the Mingw binaries if Wine is installed as a binary
	interpreter for Windows executables.

	This also fixes a minor issue where -lpq was being added to the default
	LIBS as well as to PG_LIBS, which meant that every PSPP binary was being
	linked against it, not just the ones that needed it (which were being
	linked against it twice).

	Problem reported by Michel Boaventura <michel@michelboaventura.com>.

2010-04-15  Ben Pfaff  <blp@cs.stanford.edu>

	Move definition of UI_FILES out of HAVE_GUI.
	UI_FILES needs to be defined regardless of whether the GUI is being built,
	because the .ui files are needed to generate pspp.pot.  (We don't want
	pspp.pot to depend on whether the GUI is configured, either.)

	Problem reported by Michel Boaventura <michel.boaventura@gmail.com>.

2010-04-15  Ben Pfaff  <blp@cs.stanford.edu>

	configure.ac: Define DEPENDS_ON_LIBINTL if LIBINTL is nonempty.
	This avoids a collision between the gnulib and libintl printf wrappers.
	See http://permalink.gmane.org/gmane.comp.lib.gnulib.bugs/21139 for
	more information.

	Thanks to Michel Boaventura for reporting the problem and to Bruno Haible
	for the fix.

2010-04-15  Ben Pfaff  <blp@cs.stanford.edu>

	configure.ac: Restore use of AM_GNU_GETTEXT.
	AM_GNU_GETTEXT is useful for its sophisticated support for finding the
	libraries needed to use gettext, but it also calls AM_PO_SUBDIRS, which
	we do not want because PSPP has its own "po" directory makefile support.

	This commit reintroduces AM_GNU_GETTEXT but disables AM_PO_SUBDIRS by
	declaring that we have already called it using AC_PROVIDE.  It also
	adds a dummy Makefile.in to the "po" directory and an ABOUT-NLS file
	because Automake requires both.

2010-04-15  Ben Pfaff  <blp@cs.stanford.edu>

	perl-module: Fix missing data in PSPP code embedded in generate_sav_file.

2010-04-14  Ben Pfaff  <blp@cs.stanford.edu>

	perl-module: Use Autotest for testing Perl.
	The output of the existing Perl test is difficult to understand, in my
	opinion.  When everything goes right, it prints out plenty of stuff.
	When something goes wrong, it prints more stuff, but that stuff usually
	doesn't make it clear to me what went wrong or where.

	Moving it into Autotest helps in two ways.  When everything goes right,
	all you get is a clear summary that says that.  When something goes wrong,
	you get clear log files that explain where.

	(This commit actually duplicates the Perl module tests: it makes Autotest
	copies of each of the individual tests, and Autotest also runs the
	t/Pspp.t unit test.  The former are easier to understand; the latter is
	what Perl hackers apparently expect to see.)

2010-04-13  Ben Pfaff  <blp@cs.stanford.edu>

	perl-module: Use new var_get_encoding() function.

	short-names: Eliminate use of old hash table data structure.

2010-04-12  Ben Pfaff  <blp@cs.stanford.edu>

	AGGREGATE: Convert tests to use Autotest.

	DESCRIPTIVES: Convert tests to use Autotest.

	COMPUTE: Convert tests to use Autotest.

	RECODE: Convert tests to use Autotest.

	AUTORECODE: Eliminate use of old hash table implementation.

	AUTORECODE: Use Autotest for test suite.

	AUTORECODE: Use "union value" instead of custom "union arc_value".
	These days "union value" has everything that AUTORECODE needs, so there is
	no point in maintaining a local replacement for it.

	AUTORECODE: Fix indentation.

	variable-parser: Implement PV_NO_DUPLICATE.
	Now that we have string_set, PV_NO_DUPLICATE is easy to implement, so
	we might as well.

	variable-parser: Eliminate use of old hash table data structure.

2010-04-11  Ben Pfaff  <blp@cs.stanford.edu>

	Add case-insensitive string set.

	value: New function value_clone_pool().

	dictionary: Use hmap instead of older hsh_table.
	The greatest benefit of this change is that it allows dict_lookup_var() to
	avoid creating and destroying a whole variable just to look one up by name.

	hmapx: New function hmapx_clear().

	hmap: New function hmap_clear().

	variable: Remove unneeded assertions.
	These assertions are already effectively checked anyhow, since the program
	will already segfault if passed a null pointer.

	dictionary: Remove unneeded assertions.
	These assertions are already effectively checked anyhow, since the program
	will already segfault if passed a null pointer.

	vardict: Make vardict opaque to variable code.

	Make struct variable refer to struct vardict through a pointer.
	This will allow the dictionary to integrate struct vardict into itself in
	an upcoming commit.

2010-04-11  Ben Pfaff  <blp@cs.stanford.edu>

	Make "internal variables" part of a dictionary.
	The "internal variables" created by var_create_internal() are somewhat of
	a nasty corner case in the PSPP dictionary and variable implementation,
	because they are the only variables that have a case index and
	dictionary index but do not belong to a dictionary.  This commit fixes
	that wart, by putting internal variables in a dictionary that is used just
	for them.  It adds an assertion to var_set_vardict() to ensure that this
	is now an invariant property.

	As part of the change, var_create_internal() is renamed
	dict_Create_internal_var() and moved to dictionary.c, since it fits better
	there.  Also, a new function dict_destroy_internal_var() must now be used
	to destroy internal variables.

	The dictionary indexes of internal variables are no longer unique
	process-wide.  A previous commit eliminated the dependencies on this
	property.

2010-04-11  Ben Pfaff  <blp@cs.stanford.edu>

	variable: Introduce and use new function var_get_encoding().
	These changes seem like slight cleanups since they eliminate a function
	parameter in these cases.

	dictionary: Fix memory leak in dict_set_encoding().
	If this function was called more than once for a given dictionary then all
	but the final encoding name would be leaked.

	dictionary: Fix potential access beyond allocated memory.
	This code replaces the dictionary's "var" array by another one, so it must
	either update "var_cap" to the allocated size or allocate "var_cap" (not
	"var_cnt") elements.  I chose the latter fix.

2010-04-07  Ben Pfaff  <blp@cs.stanford.edu>

	Get rid of unnecessary uses of var_get_dict_index().
	Some code used the result of var_get_dict_index() on a pair of variables to
	tell whether the variables are the same.  This is unnecessary: v1 == v2
	works just as well.

	Other code used the result of var_get_dict_index() as part of a hash value
	computation.  This is reasonable, but it is even better just to hash the
	pointer to the variable.

2010-04-07  Ben Pfaff  <blp@cs.stanford.edu>

	hash-functions: New function hash_pointer().

2010-03-27  Ben Pfaff  <blp@cs.stanford.edu>

	examples: Remove obsolete Makefile.am.
	The build is now done through automake.mk (and has been for a long time
	now).

2010-03-25  Ben Pfaff  <blp@cs.stanford.edu>

	Update to most recent gnulib.

	dict: Make dict_clone_var(), dict_clone_var_assert() not rename variables.
	Most uses of dict_clone_var() and dict_clone_var_assert() do not involve
	renaming variables, but the interface assumes that renaming is the common
	case.  This commit changes their interfaces to not support renaming and
	adds new functions dict_clone_var_as() and dict_clone_var_as_assert() to
	support renaming during cloning.

2010-03-21  Ben Pfaff  <blp@cs.stanford.edu>

	bt: Improve code formatting.

	bt: New function bt_is_empty().

2010-03-21  Ben Pfaff  <blp@cs.stanford.edu>

	psppire: Use default GTK+ font in output shown in GUI.
	This makes the output look more consistent with the rest of the interface.

	I didn't see an easy way to get a "default" monospace font.  GTK+ doesn't
	seem to have one.

	Reported by John Darrington.

2010-03-19  Ben Pfaff  <blp@cs.stanford.edu>

	FREQUENCIES: Simplify code for sorting the frequency table.

2010-03-18  Ben Pfaff  <blp@cs.stanford.edu>

	FREQUENCIES: Get rid of final (non-const) file-scope variable.

	FREQUENCIES: Move file-scope variables for charts into struct frq_proc.

	FREQUENCIES: Move file-scope variables for stats into struct frq_proc.

	FREQUENCIES: Move file-scope variables for percentiles into struct frq_proc.

	FREQUENCIES: Move file-scope variable syntax_pool into struct frq_proc.

2010-03-17  Ben Pfaff  <blp@cs.stanford.edu>

	FREQUENCIES: Eliminate file-scope variables n_variables, v_variables.
	Also, as a nice side effect, FREQUENCIES no longer uses the variable
	auxiliary data feature, which is ugly at best.

	FREQUENCIES: Get rid of unused data_pool.

	FREQUENCIES: Capitalize names of enums.
	This is just a cleanup for consistency with the style used elsewhere in
	PSPP.

2010-03-16  Ben Pfaff  <blp@cs.stanford.edu>

	FREQUENCIES: Use newer hmap library instead of older hsh_table library.
	The FREQUENCIES procedure can use some cleanup.  Here's one step.

	value: New function value_clone().

	array: Fix indentation.

	INSTALL: libintl is also required.
	Reported by Michel Boaventura <michel.boaventura@gmail.com>.

	INSTALL: Remove duplicate pkg-config requirement.

2010-03-13  Ben Pfaff  <blp@cs.stanford.edu>

	gui: Add charts, additional formatting feature to FREQUENCIES dialog.
	Partial fix for bug #27832 "Wishlist: graphic output in GUI".

	tests: Integrate FREQUENCIES tests into Autotest testsuite.

2010-03-13  Ben Pfaff  <blp@cs.stanford.edu>

	FREQUENCIES: Modernize syntax and improve chart support.
	The FREQUENCIES syntax was carrying a lot of baggage from old versions
	that is no longer mentioned in the SPSS syntax reference.  This commit
	removes support for those obsolete features.

	The implementation only supported a single chart at a time.  Now it
	supports pie charts and histograms in a single command.  The MIN and
	MAX format options are now implemented, as are the MISSING/NOMISSING
	options for pie charts.  (The FREQ/PERCENT options are still not
	implemented.)

	Also update documentation to match.

2010-03-13  Ben Pfaff  <blp@cs.stanford.edu>

	FREQUENCIES: Use Freedman-Diaconis formula to choose histogram bin width.
	Recently the FREQUENCIES procedure adopted Sturges' formula, more or less
	arbitrarily, to choose the bin width of histograms.  Gaj Vidmar
	<gaj.vidmar@mf.uni-lj.si>, however, recommended the Freedman-Diaconis
	formula instead, so this commit adopts that formula instead.

	Tested with only a few examples.

2010-03-13  Ben Pfaff  <blp@cs.stanford.edu>

	FREQUENCIES: Add ability to calculating percentiles without showing them.
	This feature is not used yet, but it will be in an upcoming commit.

	tab: Add debugging checks to tab_hline() to match those for tab_vline().
	I'm not sure that this is really a good approach, but we might as well be
	consistent.

2010-03-10  Ben Pfaff  <blp@cs.stanford.edu>

	FREQUENCIES: Fix spelling error in dialog box text.

2010-03-10  Ben Pfaff  <blp@cs.stanford.edu>

	DESCRIPTIVES: In GUI, generate Z scores immediately instead of deferring.
	Having the Z scores variable show up immediately, but not the actual Z
	scores, confuses users.

	Reported by Douglas A Ferguson <FergusonD@cofc.edu>.

2010-03-10  Ben Pfaff  <blp@cs.stanford.edu>

	gui: Fix build problem (missing header #include).
	Reported by Grzegorz Artur Daszuta <crefff@gmail.com>.

2010-03-09  Ben Pfaff  <blp@cs.stanford.edu>

	gui: Merge File|Open|Syntax and File|Open|Data into File|Open.
	In playing with the GUI, I've found it increasingly annoying to have to
	click an extra time to tell PSPPIRE whether I want to open a data file or
	a syntax file.  There's no need for that--it can easily figure out what
	kind of file it's being asked to read.  This commit implements that
	behavior.

2010-03-09  Ben Pfaff  <blp@cs.stanford.edu>

	FREQUENCIES: Choose number of bins for histogram based on valid cases.
	Until now, histograms have always had exactly 11 bins.  There is no
	"correct" number of bins, but a fixed number of bins also seems less than
	ideal.  Use Sturges' formula, instead, to choose the number of bins.

	Reported by Erik Frebold <efrebold@interchange.ubc.ca>.

2010-03-09  Ben Pfaff  <blp@cs.stanford.edu>

	configure: Check for glib-genmarshal program at configure time.
	The GUI build cannot succeed without glib-genmarshal, so it seems like a
	good idea to fail earlier.

	Related to bug #28959, reported by Harry Thijssen.

2010-03-08  Ben Pfaff  <blp@cs.stanford.edu>

	CROSSTABS: Make 3-way crosstabulation work reasonably.
	As reported in bug #27452, until now 3-way crosstabulations have completely
	failed to work.  This commit makes them work, apparently correctly at
	first glance.  Only the actual crosstabulation tables have been tested; it
	is likely that statistics tables still do not display correctly or cause
	runtime failures.

	tab: Drop redundant assertions.
	There is not much value in asserting that a pointer parameter is non-null
	if that parameter is always dereferenced.

	tests: Fix bug in NPAR TESTS subtest for CHISQUARE command.
	Reported by John Darrington.

2010-03-06  Ben Pfaff  <blp@cs.stanford.edu>

	CROSSTABS: Rewrite tests in Autotest and add test for bug #27883.

	terminal UI: Fix circumstances when errors should be logged to stdout.
	The logic here was supposed to be that, if errors weren't already being
	logged explicitly and if no output driver was already directed to stdout,
	then send errors to standard output.  But one of the conditions was
	reversed.  This fixes the problem.

	CROSSTABS: Initialize hash tables for every split, not just once overall.
	Fixes bug #27883, reported by Jason Stover.

2010-03-01  Ben Pfaff  <blp@cs.stanford.edu>

	procedure: Fix LIST procedure (and others) in GUI.
	John Darrington reported that the following syntax makes PSPPIRE
	crash:

	    data list list /alpha * beta * gamma *.
	    begin data.
	    1 2 3
	    4 5 6
	    end data.

	    list.

	The problem is that the GUI output driver keeps a reference to the
	output_items that are submitted to it.  An output_item that in turn
	has a reference to the casereader for the procedure casereader (that
	is, the casereader returned by proc_open()), which currently is LIST
	and few if any other procedures, then causes an assertion failure in
	proc_commit().  This is because until now a precondition of
	proc_commit() has been that the procedure casereader be closed, which
	is what the assertion enforces.

	This commit fixes the problem by getting rid of the precondition on
	proc_commit().  Now the procedure casereader's lifetime may be
	extended arbitrarily.  This should help take PSPP output in the
	direction that I want it to go, where more and more output is
	generated directly or semi-directly from casereaders, as the LIST
	procedure now does.

2010-03-01  Ben Pfaff  <blp@cs.stanford.edu>

	casereader: Factor buffering shim out into separate source file.
	This moves the "shim" code out of casereader.c into a separate
	casereader-shim.[ch] in preparation for using it from procedure.c.

	This commit also adds an optimization: if the shim reads all of the
	subreader, then it closes the subreader immediately, instead of waiting
	for the shim itself to be destroyed. This can allow resources to be freed
	earlier.

	This commit also adds a new function casereader_shim_slurp().  This
	function will be used for the first time in the following commit.

2010-02-26  Ben Pfaff  <blp@cs.stanford.edu>

	configure: Always apply zlib crc32() rename fix.
	PSPP can link against zlib indirectly even if it doesn't link directly, so
	it is simplest to always rename gnulib's crc32() to gl_crc32().

	Reported by John Darrington.

2010-02-25  Ben Pfaff  <blp@cs.stanford.edu>

	gui: Save positions of windows only when they are closed.
	When windows in the GUI are moved around the desktop or resized, the
	machine's disk can thrash madly in some setups.  This is because each
	change in a window's position or size triggers a write to the PSPPIRE
	preferences file noting the new position as a default for the next
	PSPPIRE run.  It wasn't always a problem, but newer Glib versions call
	fsync() from g_file_set_contents(), the function used to write the
	preferences file, which bypasses the OS cache and forces a synchronous
	disk write.

	This commit makes PSPPIRE update the preferences file only when a window
	is closed, which fixes the problem.  Avoiding g_file_set_contents() would
	be another reasonable solution.

	Reported by Grzegorz Artur Daszuta <crefff@gmail.com>.

2010-02-24  Ben Pfaff  <blp@cs.stanford.edu>

	po: Update Dutch translation.
	From Harry Thijssen via translationproject.org.

2010-02-24  Ben Pfaff  <blp@gnu.org>

	Fix zlib problem introduced by linking against gnulib's crc32() function.
	Diagnosed by John Darrington.

2010-02-23  Ben Pfaff  <blp@gnu.org>

	odt: Remove dependency on external "zip" program.

2010-02-21  Ben Pfaff  <blp@gnu.org>

	csv: Fix setting output file name.
	The output file named used to be provided as an option named "output-file",
	but now it is a separate argument to the "create" function.  This had
	been overlooked for the CSV driver, so that it always produced output in
	a file named "pspp.csv", but this commit fixes the problem.

2010-02-20  Ben Pfaff  <blp@gnu.org>

	gui: Fix File|Export in output viewer.
	Commit f51ecb480 "Greatly simplify PSPP configuration" changed how PSPP
	output drivers are configured but failed to completely update the
	implementation of File|Export to match.  This commit fixes the problem.

	A few problems, perhaps not connected, linger:

	    * The CSV driver appears to always output to "pspp.csv" when invoked
	      from the GUI, regardless of the requested file name.

	    * The ODT driver appears to be broken.

	Reported by John Darrington <john@darrington.wattle.id.au>.

2010-02-20  Ben Pfaff  <blp@gnu.org>

	gui: Suggest viewing the user manual online if starting Yelp fails.
	Suggested by Harry Thijssen <pspp@sjpaes.nl>.

	AUTHORS, THANKS: Add additional credits for translators.
	Suggested by Harry Thijssen <pspp@sjpaes.nl>.

	Remove obsolete TODO file.
	Suggested by Harry Thijssen <pspp@sjpaes.nl>.

	gnumeric-reader: Avoid convert_xml_string_to_value segfault on NULL string
	If the 'xv' argument is null, the previous version of this code would
	still dereference it.  This commit rewrites it to instead just set the
	value as missing and avoid the segfault.  It also takes advantage of the
	fairly recently added function value_copy_str_rpad() to eliminate some
	code.

	NPAR TESTS: Avoid segfault in do_summary_box() if descriptives disabled.
	Found by Clang (http://clang-analyzer.llvm.org).

2010-02-19  Ben Pfaff  <blp@gnu.org>

	q2c: Mark functions that do not return NO_RETURN.

	q2c: Fix format string errors.
	These calls to write blank lines have caused warnings before, so introduce
	a new function just for the purpose so that any future warnings can be
	fixed in a single place.

	Fix format string errors.
	Found by Clang (http://clang-analyzer.llvm.org).

2010-02-19  Ben Pfaff  <blp@gnu.org>

	FREQUENCIES: Fix corner case for histogram calculation.
	calc_stats() assumes that ft->n_valid is nonzero.  It has two callers, but
	only one of them was checking ft->valid.  The other one (which produces a
	histogram) is fixed up by this commit.

	Found by Clang (http://clang-analyzer.llvm.org).

2010-02-19  Ben Pfaff  <blp@gnu.org>

	gui: Fix theoretical comparison against garbage pointer.
	Presumably gtk_tree_model_iter_n_children() never returns a negative value,
	but in case it ever could, this eliminates a comparison against an
	uninitialized 'v1' value.

	Found by Clang (http://clang-analyzer.llvm.org).

2010-02-19  Ben Pfaff  <blp@gnu.org>

	gui: Fix null pointer dereference in get_object_assert().
	This function was checking whether o == NULL and then blindly
	dereferencing it after it found it to be so.

	Found by Clang (http://clang-analyzer.llvm.org).

2010-02-19  Ben Pfaff  <blp@gnu.org>

	moments: Fix null pointer dereference in calc_moments().
	Found by Clang (http://clang-analyzer.llvm.org).

2010-02-19  Ben Pfaff  <blp@gnu.org>

	MISSING VALUES: Fix free of indeterminate pointer.
	If the main "while" loop in this function falls through immediately without
	ever executing its body, then 'v' is passed to free() without ever being
	initialized.

	Found by Clang (http://clang-analyzer.llvm.org).

2010-02-19  Ben Pfaff  <blp@gnu.org>

	Build the ODT driver only if libxml2 is available.
	Reported by Michel Boaventura <michel@michelboaventura.com>.

	doc: Do not remove pspp.xml upon "make distclean".
	Reported by Harry Thijssen <pspp@sjpaes.nl>.

2010-02-16  Ben Pfaff  <blp@gnu.org>

	testsuite: Don't check pspp version with AT_TESTED.
	AT_TESTED is for reporting the versions of binaries that you test, but
	the testsuite doesn't currently test the "pspp" binary.  More
	importantly, the Makefile doesn't ensure that the "pspp" binary is in
	$PATH when the testsuite runs, which can cause a spurious test failure.

2010-02-15  Ben Pfaff  <blp@gnu.org>

	perl-module: Automatically update PSPP.pm version number check.
	Until now the $PSPP::VERSION variable was hard-coded in the source tree
	and had to be manually updated whenever configure.ac was updated to
	specify a new version number.  This is easy to forget.  So this commit
	makes perl-module/lib/PSPP.pm a generated file, with the value of
	$PSPP::VERSION automatically expanded from the @VERSION_FOR_PERL@
	variable already set up by "configure".

2010-02-15  Ben Pfaff  <blp@gnu.org>

	FACTOR: Avoid freeing indeterminate pointer.
	The first test in cmd_factor() is:
	    if (!lex_force_match_id (lexer, "VARIABLES"))

	If this fails, then control jumps to the "error" label, which frees
	factor.vars, which has not been initialized at this point.

	This commit fixes the problem by initializing factor.vars to NULL.  It is
	not strictly necessary to also initialize factor.n_vars to 0, but it seems
	like a good idea.

	Found by Clang (http://clang-analyzer.llvm.org).

2010-02-15  Ben Pfaff  <blp@gnu.org>

	configure.ac: Update version number to 0.7.4 to release new POT file.
	translationproject.org needs a version number increment to receive a new
	pspp.pot.

2010-02-15  Ben Pfaff  <blp@gnu.org>

	Allow more version number flexibility, by using Automake "gnu" mode.
	The "gnits" mode that PSPP has used for some time constrains version
	numbers considerably.  For example, it prevents using two hyphens in the
	version number to indicate, for instance, a prerelease and a Git commit
	number like 0.8.0-pre1-g12345678.

	This commit changes PSPP to use "gnu" mode instead, and then to also
	enable the extra options that "gnits" mode enabled automatically
	that we still want to use.

	The Automake manual discourages using "gnits" mode anyhow:

	     ...Unless you are a Gnits standards contributor, it is
	     recommended that you avoid this option until such time as the Gnits
	     standard is actually published (which may never happen).

2010-02-13  Ben Pfaff  <blp@gnu.org>

	RELIABILITY: Make expected test results reflect "N of Items" capitalization.
	Also update the documentation.

	Include the .glade files in pspp.pot, not just the .ui files.
	Reported by Harry Thijssen <pspp@sjpaes.nl>.

2010-02-12  Ben Pfaff  <blp@gnu.org>

	RELIABILITY: Consistently capitalize "N of Items".
	Reported by Harry Thijssen <pspp@sjpaes.nl>.

2010-02-11  Ben Pfaff  <blp@gnu.org>

	FACTOR: Mark translatable string as not a printf format string.
	gettext uses a heuristic to guess whether a translatable string is a printf
	format string.  In this case, it guesses wrong, so add a comment that tells
	gettext that "% of Variance" is not a format string.

	Without this change, the translationproject.org robot rejects translations.

	Reported by fxmiguel@gmail.com.

2010-02-11  Ben Pfaff  <blp@gnu.org>

	odt: Restore writing creator metadata.
	Commit 4d7a2ed5 "odt: Remove dependency on <pwd.h> because mingw32 does
	not have it" stopped writing creator metadata to ODT output files.  This
	commit adds it back, but only on systems that have <pwd.h>.

	This commit also adds avoids a null pointer dereference if getpwuid()
	returns NULL.  That should happen only rarely, but it is best to handle it
	properly.

	At John Darrington's request.

2010-02-10  Ben Pfaff  <blp@gnu.org>

	Smake: Add mkdtemp module, used by odt output driver.
	Reported by Michel Boaventura <michel.boaventura@gmail.com>.

2010-02-09  Ben Pfaff  <blp@gnu.org>

	levene: Write null pointers as NULL instead of as 0.
	Using 0 as a null pointer constant is not incorrect but NULL is the style
	used in most of PSPP.

	Found using coccinelle and coccicheck (http://coccinelle.lip6.fr/).

2010-02-09  Ben Pfaff  <blp@gnu.org>

	gui: Remove write-only variable 'new_type' from on_var_type_ok_clicked().
	Found using coccinelle and coccicheck (http://coccinelle.lip6.fr/).

2010-02-09  Ben Pfaff  <blp@gnu.org>

	output: Support --without-cairo.
	This was supposed to be supported all along, but I forgot to test it before
	I did a commit.

	Reported by Michel Boaventura <michel@michelboaventura.com>.

2010-02-09  Ben Pfaff  <blp@gnu.org>

	odt: Remove dependency on <pwd.h> because mingw32 does not have it.
	The "meta:initial-creator" and "meta:creator" fields do not seem to me to
	be important enough to have to deal with this dependency.

	Reported by unknown-1 <pspp@sjpaes.nl>.

2010-02-08  Ben Pfaff  <blp@gnu.org>

	hmap-test: Disable ordered insert tests on GCC 4.3.
	GCC 4.3 miscompiles this test (although it does not seem to miscompile
	any important code actually in PSPP) so disable it to avoid spurious
	failures from "make check".

	Smake: Remove unused gethostname, getlogin_r, strsep modules.
	gethostname in particular has caused problems in the past on mingw32, so
	it is good to get rid of it.

	output: Phrase output driver error messages more consistently.
	This should aid translation.

2010-02-07  Ben Pfaff  <blp@gnu.org>

	Merge "output" into "master"

	output: Make errors, warnings, and notes into a new "message_item".
	This lets us move the terminal UI's support for writing errors to a file
	or to stdout into a new "msglog" output driver, and to convert journaling
	from a special case to an output driver of its own.

2010-02-07  Ben Pfaff  <blp@gnu.org>

	Greatly simplify PSPP configuration.
	This gets rid of the "devices" configuration file entirely.  Now you
	can make pspp output to, for example, an HTML file, by invoking it as
	"pspp -o out.html".  Please read the documentation for full information.

	It would be good to have a way to read options from a file to support,
	for example, the IBM-PC or Unicode line drawing characters as implemented
	in "devices" in previous versions.  I hope that we can introduce that
	soon.

2010-02-06  Ben Pfaff  <blp@gnu.org>

	doc: Distribute doc/pspp.xml, so that users don't need makeinfo or xmllint.
	Reported by unknown-1 <pspp@sjpaes.nl>.

	Update Catalan and Brazilian Portuguese translations.

2010-02-06  Ben Pfaff  <blp@gnu.org>

	Add Spanish translation from translationproject.org.
	This translation is by F.J.Miguel <Miguel.Quesada@uab.cat> and others.
	Miguel included the following note:

	I appreciate very much the work of Xavier and Palmira with translation, the
	support from coordinators Jordi and Santiago, and the comments from Ben,
	John and Michel. Encouragement for those working with other languages!!!

2010-02-05  Ben Pfaff  <blp@gnu.org>

	make-file: Fix #includes.
	In particular "gl/xvasprintf.h" is needed for xasprintf(), but I took the
	opportunity to update the header file style and ordering too.

	datasheet-test: Make variable "const".

	llx: New function llx_find() to find a pointer in a list.

	llx: New macro LLX_INITIALIZER to initialize an llx list statically.

	New "string_array" data structure for working with arrays of strings.
	Occasionally a dynamic array of strings is very useful, so this commit
	adds a set of helper functions for working with them.

	verbose-msg: Remove.
	This feature is not used very much and in fact is really only useful at all
	because it is difficult to understand how PSPP configuration works.
	Upcoming commits will make PSPP configuration much simpler, so we drop it
	now to simplify the code in advance.

	message: Give MSG_ values for categories and severities different prefixes
	This reduces confusion in reading and writing code that uses these values.

	array: Fix typo in comment.

	doc: Be more optimistic about PSPP completion.

	configure.ac: Modernize call to AC_INIT so that PACKAGE_URL gets defined.

	odt: Avoid assertion failure if "mimetype" file cannot be created.
	Triggered by tests/bugs/unwritable-dir.sh.

	odt: Fix writing files with names different from pspp.odt.

	html: Delete redundant code.
	This code was part of an earlier attempt at CSS styling for HTML output.
	It does nothing useful, so remove it.

	csv: Close pipe files properly.
	csv_create() opens the output file with fn_open() so csv_destroy() should
	close it with fn_close() to ensure that pipes and the standard file
	descriptors are closed properly.

	csv: Open output file immediately, instead of delaying.

	cairo: Avoid GLib-GObject-CRITICAL from g_object_unref() on error path.
	This could be triggered by an error creating the output file, e.g. by
	tests/bugs/unwritable-dir.sh.

	cairo: Require minimum page width.
	A too-narrow page (in particular, a zero-width page) can cause an infinite
	loop in the rendering code.

	ascii: Remove unimplemented "tab-width" setting.

2010-02-05  Jason H Stover  <jhs@math.gcsu.edu>

	Set final element in covariance matrix. Use accessor functions for linreg struct. Initialize total sums of squares.

2010-02-04  Ben Pfaff  <blp@gnu.org>

	Make text output left-justified in ascii and cairo drivers.
	This only makes a difference for text output that wraps across lines, for
	example with long error messages.

	msg-ui: Fix typo in user message.

2010-02-04  Jason H Stover  <jhs@math.gcsu.edu>

	use sizeof double to allocate means

	Compute the independent variable means

2010-01-29  Jason H Stover  <jhs@franz.gcsu.edu>

	allocate space to store independent variable list

2010-01-29  Jason H Stover  <jhs@math.gcsu.edu>

	fixed counting of valid cases in fill_covariance

	Free linreg struct if no valid data; no not attempt to save residuals or predicted values in this case

2010-01-28  Ben Pfaff  <blp@gnu.org>

	odt: Change default output file name to "pspp.odt".
	It seems that "pspp.pdt" was just a typo.

2010-01-22  Jason H Stover  <jhs@math.gcsu.edu>

	Set categoricals to NULL in one-pass covariance; avoid freeing NULL in categoricals_destroy

2010-01-21  Jason H Stover  <jhs@math.gcsu.edu>

	fill_covariance now returns a value

2010-01-19  Ben Pfaff  <blp@gnu.org>

	ascii: Fix handling of file open error.
	This fixes a hang in tests/bugs/unwritable-dir.sh.

	Reported by John Darrington.

2010-01-18  Ben Pfaff  <blp@gnu.org>

	pspp: Fix interactive usability for multi-line commands.
	Until now, the terminal UI has only flushed output just before reading
	the first line of a command.  This generally worked OK because typically
	only the final command produced output, not intermediate lines.  But now
	every line of a command potentially produces output (e.g. the command name
	or the command syntax).  With the ASCII driver that makes the interface
	difficult to use because it typically opens and holds open a pipe to an
	interactive program such as "more", which in turn turns off terminal echo
	etc.

	Flushing output before reading each command avoids this problem and makes
	the terminal UI more usable.

2010-01-18  Ben Pfaff  <blp@gnu.org>

	ascii: Fix closing pipe files in ascii_destroy().
	Files that are opened with fn_open() must be closed with fn_close(), but
	ascii_destroy() wasn't doing that.  This made a particular difference for
	interactive output where fn_close() calls pclose() instead of fclose().

2010-01-18  Ben Pfaff  <blp@gnu.org>

	ascii: Fix ascii_flush().
	ascii_flush() was not actually flushing the contents of the page, so this
	commit changes it to do that.

	This change made it clear that the proper place to reset the "y" position
	on the page is in ascii_close_page(), so it makes that change too.

2010-01-18  Ben Pfaff  <blp@gnu.org>

	message: Fix corner case in msg_emit().
	In most cases, msg_emit() initialized the "where" member of the message
	passed in.  However, if msg_init() had not yet been called, it did not do
	this.  This fixes that corner case.

	In addition, one caller of msg_emit() did not initialize these members.  It
	is not necessary for both msg_emit() and its callers to do so, but since
	most callers did so, this commit simply makes the remaining caller do so
	as well, for consistency.

2010-01-18  Ben Pfaff  <blp@gnu.org>

	message: Make msg_dup() copy and msg_destroy() free the file name.
	This fixes a PSPPIRE bug in its message handling (found by inspection).  It
	makes copies of messages to use later.  The file names were not being
	copied, so in the meantime it was posible that they would be freed,
	yielding a use-after-free error.

	Since doing this sensibly required changing the file_name member of
	struct msg_locator from "const char *" to "char *", it also touches up
	places where this caused new warnings.

2010-01-18  Ben Pfaff  <blp@gnu.org>

	New library for interned strings.
	An "interned" string is stored in a global hash table.  Only one copy of any
	given string is kept in the hash table, which reduces memory usage in cases
	where there might otherwise be many duplicates of a given string.

	Interned strings can be compared for equality by comparing pointers, which
	can also be a significant advantage in some cases.

	Interned strings are immutable.

	This commit adds a general-purpose implementation of interned strings and
	adapts the implementation of value labels, which already had a
	special-purpose and less convenient implementation of interned strings,
	to use them.

2010-01-18  Ben Pfaff  <blp@gnu.org>

	Update Makefile for tests to reflect currently recommended style.
	The Autotest example Makefile was recently update to use $(VAR) notation
	instead of @VAR@ notation:
	    http://permalink.gmane.org/gmane.comp.sysutils.autoconf.patches/6978

	This commit updates tests/automake.mk to follow this new style.

2010-01-17  Ben Pfaff  <blp@gnu.org>

	Fix use of uninitialized data in table_casereader_get_cell().
	Thanks to John Darrington for pointing out the problem.

2010-01-16  Ben Pfaff  <blp@gnu.org>

	psppire: Reimplement overview pane for output viewer window.

	psppire: Add File|Export command to output viewer window.
	This should really pick the default export format based on the extension
	typed by the user, but it does work.

2010-01-16  Ben Pfaff  <blp@gnu.org>

	Rewrite PSPP output engine.
	This rewrite makes the PSPP output engine much more object-oriented and
	extensible than previously.  It should make it much easier to add new
	output features, such as cell footnotes and nested tables.  It also makes
	minimal changes to code that currently uses the output engine.  The largest
	changes are to the implementation of the LIST procedure, which are
	necessary because this procedure had a too-intimate relationship with the
	details of the output drivers.

	The cairo and ascii drivers are now much better at breaking large cells and
	large tables across pages and at choosing appropriate sizes for rows and
	columns.

	This commit adds a new output driver called "csv", which presents output
	in comma-separated value format.  It also updates all of the test cases
	that produce output to use this output format.

	This commit enhances the HTML output significantly and the ODF output
	slightly.

	This commit adds support for charts to the GUI output.  However, it
	temporarily removes the tree-view output summary pane from GUI output.  It
	should not be difficult to restore this later.

2010-01-16  Ben Pfaff  <blp@gnu.org>

	LIST: Remove WEIGHT subcommand.
	This subcommand is not needed for compatibility, and it is not really
	useful because the case weight can be listed by including the name of
	the weighting variable on the LIST command.

	Distribute some files that were forgotten.

2010-01-15  Jason H Stover  <jhs@math.gcsu.edu>

	Rewrote linreg.[ch], regression.q and glm.q to use the new covariance.[ch]. Dropped covariance-matrix.[ch], design-matrix.[ch] and coefficient.[ch].

2010-01-04  Ben Pfaff  <blp@gnu.org>

	casereader: Make parameter to casereader_count_cases const.
	casereader_count_cases does not conceptually modify its argument, since
	there is no way for the client to observe the difference (other than
	through improved performance).  So there is no need for the parameter to
	be const.

	str: New function ds_steal_cstr.

	Add new SENTINEL macro to compiler.h, for GCC's __attribute__((sentinel)).

2009-12-30  John Darrington  <john@darrington.wattle.id.au>

	Weight cases dialog: set the sensitivity of radiobuttons.
	Fix the sensitivity of the dialog's radiobuttons when the
	the entry contains a variable.  Thanks to Matej Kovacic for
	reporting this problem.

	Changes made by gnulib-tool

2009-12-28  John Darrington  <john@darrington.wattle.id.au>

	Initialize factor dialog extraction parameters at dialog start

	FACTOR: Check that the number of factors does not exceed the number of variables

	Removed some calls to deprecated Gtk functions

	Avoid warnings about adjustments with non-zero page sizes

	Use non-deprecated macros.
	Removed some deprecated GTK constructs, and replaced them
	with their non-deprecated counterparts.

2009-12-27  John Darrington  <john@darrington.wattle.id.au>

	Add optional / to AGGREGATE OUTPUT subcommand.
	SPSS expects a / to preceed the OUTPUT subcommand. So this
	change allows PSPP to have one too.  Closes
	bug #277774

	FACTOR: Ensure a non-zero number of factors.
	Before attempting to perform factor analysis, check
	that the number of factors is greater than zero.
	Issue an appropriate warning if this is not the case.

	Added a menu entry and dialog box for the FACTOR command.

	Remove unused declarations

	Change GTK_SIGNAL_FUNC to G_CALLBACK.
	These macros are identical, but for consistency I've changed them
	all to the latter.

	Avoid warning about GtkAdjustments with non-zero page_size

2009-12-26  John Darrington  <john@darrington.wattle.id.au>

	Added documentation for the FACTOR command

2009-12-25  John Darrington  <john@darrington.wattle.id.au>

	FACTOR: Added  "Scree Plots"

	Remove obsolete file

2009-12-25  John Darrington  <john@darrington.wattle.id.au>

	Merge branch 'master' into output
	Conflicts:

		configure.ac

2009-12-24  John Darrington  <john@darrington.wattle.id.au>

	Fix fault XML in documentation.
	Avoid broken XML generated by Texinfo. Add a make rule
	to check for this in the future.

	New translations from http://translationproject.org

	FACTOR: Implemented the /PRINT=CORRELATIONS SIG DETERMINANT subcommands

2009-12-23  John Darrington  <john@darrington.wattle.id.au>

	FACTOR: Remove diagnostic messages

	First attempt at FACTOR command

2009-12-18  John Darrington  <john@darrington.wattle.id.au>

	Merge branch 'master' into output
	Conflicts:

		NEWS
		configure.ac
		src/output/charts/dummy-chart.c

2009-12-18  John Darrington  <john@darrington.wattle.id.au>

	Remove gettext markup from g_param_spec arguments.
	These strings are never seen by users, so there's little
	point in translating them.

	Added the Catalan translation from http://translationproject.org

2009-12-16  John Darrington  <john@darrington.wattle.id.au>

	Linear Regression: Dependent variables should not be strings.
	Prevent the gui from selecting string variables as the dependent
	variable in a linear regression procedure, since that's not
	allowed in such a procedure.

2009-12-16  John Darrington  <john@darrington.wattle.id.au>

	Merge commit 'origin/stable'
	Conflicts:

		NEWS
		configure.ac
		po/nl.po
		src/ui/gui/dict-display.c

2009-12-16  John Darrington  <john@darrington.wattle.id.au>

	Fix bug in ROC parsing long string variables

	Properly escape marked up text in dictionary views

	Ensure all symbols in glade library are resolved

	New interface PsppireSelectDestWidget.
	Created a new interface type PsppireSelectDestWidget to serve
	as an abstract widget which can be the destination for a PsppireSelector.
	Changed PsppireVarView to implement this interface.

2009-12-15  John Darrington  <john@darrington.wattle.id.au>

	Remove unused GtkAdjustment objects

2009-12-14  Ben Pfaff  <blp@gnu.org>

	Rename src/output/charts/box-whisker.[ch] to src/output/charts/boxplot.[ch].
	This makes the structure names more obvious and prevents confusion
	with src/math/box-whisker.[ch].

	Get rid of superfluous Makefile in src/output/charts.

2009-12-14  John Darrington  <john@darrington.wattle.id.au>

	Fix missing menu label

	Don't allow string variables in ROC dialog as dependent variable

	Remove unused code

	Show only numeric variables in correlations dialog

2009-12-13  John Darrington  <john@darrington.wattle.id.au>

	Merge branch 'master' of ssh://john@cellform.com/home/john/Development/pspp-selector

	Merge branch 'master' of ssh://jmd@git.sv.gnu.org/srv/git/pspp

	Added a dialog box for the CORRELATION command

	New function psppire_var_view_contains_var
	Added a function to test whether a variable is currently
	contained within a PsppireVarView widget.

	Change psppire_dicts pointers from G_POINTER to PSPPIRE_VAR_PTR_TYPE

	Set the dictionary encoding of files created by the perl module.
	This *assumes* that all strings passed from perl will be utf8
	encoded.  So the documentation has been updated accordingly.

2009-12-12  John Darrington  <john@darrington.wattle.id.au>

	ROC dialog: Disable reference button when curve is not drawn

	Implemented a dialog box for the ROC command

	Remove awkward dependency from psppire-selector.c
	Removed the default selection functions from being
	statically linked to psppire-selector.c  - apart from
	being inelegant this caused a lot of unncessary dependencies
	in the glade module.

	Remove unused code

	Rework the recode-dialog to fit new selector / psppire-var-view objects.

2009-12-07  Ben Pfaff  <blp@gnu.org>

	Remove AFM files.
	Now that the PostScript driver is gone, there is no longer any need for
	these.

	Thanks to John Darrington <john@cellform.com> for pointing out that they
	are no longer necessary.

2009-12-05  Ben Pfaff  <blp@gnu.org>

	output: Remove PostScript driver.
	The Cairo driver is a better way to produce PostScript output.  There seems
	little value in maintaining the historical PostScript driver.

	Removing the PostScript driver also makes for less work in revamping the
	output subsystem, since there are now fewer drivers to update.

2009-12-05  Ben Pfaff  <blp@gnu.org>

	file-name: Generalize fn_interp_vars().
	This more general-purpose version of fn_interp_vars() will be useful in an
	upcoming commit.

	casereader: New function casereader_select().

	casereader: New functions casereader_project() and casereader_project_1().

	casereader: New function casereader_translate_stateless().

	casereader: New function casereader_create_empty().

	casereader: New function casereader_advance().

	casereader: New function casereader_truncate().

	subcase: Add more useful functions.

	New data type string_map, a string-to-string map.

2009-12-03  John Darrington  <john@darrington.wattle.id.au>

	Update to reflect latest copy of Gnulib
	Conflicts:

		README.Git
		src/data/make-file.c

2009-11-27  Ben Pfaff  <blp@gnu.org>

	New data type string_set, a set of unique strings.

	hmapx: New function hmapx_is_empty().

	hmap: New function hmap_is_empty().

	hmap: Remove shadowed variable from inner scope.
	'j' is also declared at the top level of the function so there is no
	need to declare it inside the 'for' loop.

2009-11-24  John Darrington  <john@darrington.wattle.id.au>

	Merge branch 'master' of ssh://jmd@git.sv.gnu.org/srv/git/pspp

	Search for a gettext implementation at configure time

2009-11-23  John Darrington  <john@darrington.wattle.id.au>

	New module psppire-var-view
	Added a new object PsppireVarView which is a subclass
	of GtkTreeView.   It automatically creates a model for
	itself for the storage of variables.

	This change breaks some features.  These must be corrected
	in subsequenct commits.

2009-11-19  John Darrington  <john@darrington.wattle.id.au>

	Ensure that only one set of callbacks exist.
	Remove any existing selector callbacks before adding
	new ones.  Otherwise a keyclick can add 2 or more
	items instead of the desired one.

2009-11-18  Jason H Stover  <jhs@math.gcsu.edu>

	Call covariance_accumulate_pass2

2009-11-18  John Darrington  <john@darrington.wattle.id.au>

	Merge branch 'master' of ssh://jmd@git.sv.gnu.org/srv/git/pspp

	Update to reflect latest copy of Gnulib

	Fix problem building with --without-libplot

	Fix property erroneously altered in commit a9a69251edd625a50f271af5d64c157533b5fe48

2009-11-17  Jason H Stover  <jhs@math.gcsu.edu>

	Fix separation of categorical and numeric variables. Enforce numeric type for dependent variables. Name the covariance struct returned by covariance_2pass_create as cov.

2009-11-17  John Darrington  <john@darrington.wattle.id.au>

	Separated psppire_selector_set_subjects into two individual functions

2009-11-16  John Darrington  <john@darrington.wattle.id.au>

	Updated the Dutch translation at the translator's request

	PsppireDictView: Change "dictionary" property to "model".
	Previously, PsppireDictView, which derives from GtkTreeView,
	had a property "dictionary", and a trap on the GtkTreeView's
	"model" property.  This change removes the trap and changes the
	"dictionary" property to an override of the "model" property.

2009-11-15  John Darrington  <john@darrington.wattle.id.au>

	PsppireSelector: new properties: "source-widget" and "dest-widget".
	Previously, a function psppire_selector_set_subjects was used to
	set the destination and source widgets of a PsppireSelector.  This
	change adds two new properties, and sets them in the GtkBuilder
	definitions instead of in the C code.

	Move definition of sort-cases-dialog to a seperate file.
	Removed the sort-cases-dialog definition from psppire.ui
	into a new file sort.ui

2009-11-14  John Darrington  <john@darrington.wattle.id.au>

	Fix some minor problems with the reliability dialog

2009-11-13  John Darrington  <john@darrington.wattle.id.au>

	Properly display ampersand characters in dictionary view widgets

2009-11-08  John Darrington  <john@darrington.wattle.id.au>

	Use significance_of_correlation function in t-test.
	Use the new function in src/math/correlation.c instead
	of doing it ourselves.

	New module src/math/correlation
	Created a new module to hold some common routines pertaining
	to correlation coefficients.

2009-11-06  John Darrington  <john@darrington.wattle.id.au>

	Remove inappropriate call to gtk_window_set_keep_above
	Thanks to Hugo Florentino for reporting this problem.

2009-10-31  John Darrington  <john@darrington.wattle.id.au>

	Wrap operations which index into reverse_variable_map
	New private function reverse_variable_lookup.  This
	function wraps operations which index into the array,
	and includes checks to prevent indexing outside the
	bounds of the array.

	Drop first category of each variable from covariance matrix.
	Apparently it's not appropriate for the covariance matrix to
	have a row/column for every categorical value.  One value per
	categorical variable should be excluded.  This change drops
	the first category encountered.

	Remove unused function categoricals_index

	Populate the moment matrices with the categorical entries

	Keep track of the number of variables involved in the categoricals.
	Added a counter for the number of variables which actually contribute
	to categories.  Due to the possibility of missing values, this may
	not be equal to the number of variables passed to the contructor.

2009-10-30  John Darrington  <john@darrington.wattle.id.au>

	Don't crash if all categorical variables are empty

2009-10-24  Ben Pfaff  <blp@gnu.org>

	Merge "master" into "output".

2009-10-24  John Darrington  <john@darrington.wattle.id.au>

	New functions to return the sum and weights associated with categorical variables

	Don't update categorical variables whose values are missing

	Remove some unnecessary #include directives

	Call categoricals_done at start of second pass.

	New functions is_missing and get_val
	Abstract the actions of obtaining the numeric value of a variable
	and its missing status, so that it can be more easily applied to
	categorical variables and linear variables alike.

	Use cov->dim instead of cov->n_vars where appropriate

	Destroy the categorical variables when the covariance matrix is destroyed

	Move categorical variable into the var_params struct

	Resize the moment matrices after the first pass

	Allow dump function to work with numeric variables

2009-10-23  Jason H Stover  <jhs@math.gcsu.edu>

	Rework glm.q to use new covariance routines

2009-10-18  John Darrington  <john@darrington.wattle.id.au>

	Fix order of pool_calloc arguments.
	The second argument is the number of elements, the third is the size.  If this
	is inadvertently reversed, then it fails when the number of elements is zero.

	Add reverse map entries to categoricals.
	Allow categorical values and variables to be efficiently
	indexed by the non-zero binary vector entry to which they
	map.

2009-10-17  John Darrington  <john@darrington.wattle.id.au>

	New module src/math/categoricals .
	Created a new object to keep track of categorical variables, and their
	values.   This is similar to src/data/categorys.c but is created on
	demand, and doesn't use any global state.

	Add a two pass algorithm to calculate covariance matrices.
	The single pass algorithm, although faster, is numerically unstable.
	Furthermore, at can't reasonably be achieved when categorical variables
	are involved.    This change implements a two pass algorithm and allows
	the caller to choose which algorithm (s)he prefers.

2009-10-14  Ben Pfaff  <blp@gnu.org>

	sys-file-reader: Tolerate nonsensical opcodes in compressed data.
	Compressed data in .sav files uses a set of 256 opcodes, some of which make
	sense only for numeric data and others of which only make sense for string
	data.  However, Jereme Thomas <jereme.thomas@gmail.com> has provided one
	file, written by SPSS 14, that uses an opcode that seems to makes sense
	only for numeric data in a string field.  So this commit adds support for
	these opcodes, although it still warns about the ones other than the exact
	one found in the file provided by Jereme.

	Enhance dissect-sysfile utility to print compressed data also.
	This proved useful in investigating a report that PSPP failed to read a
	.sav file that contained compressed data, so it seems worthwhile to include
	it in the PSPP tree.

2009-10-12  Ben Pfaff  <blp@gnu.org>

	Don't delete .po files from source directory in "make clean".
	Running "make clean" when the source directory is configured as a build
	directory shouldn't delete the .po files, but the rule as written did so.
	This fixes the problem.

2009-10-12  Ben Pfaff  <blp@gnu.org>

	Eliminate too-expansive "clean" rule kluge by requiring fixed Automake.
	The NEWS for Automake 1.10.1 mentions the following bug fix:

	  - All directories `.libs'/`_libs' used by libtool are cleaned now,
	    not only those in which libraries are built.

	This describes the situation for the kluged "clean" rule in
	tests/automake.mk, so by requiring Automake 1.10.1 or later we can also
	eliminate the clean rule.

2009-10-12  Ben Pfaff  <blp@gnu.org>

	Revert "INSTALL: Mention that GNU make is required."
	BSD make is now supported.

2009-10-12  Ben Pfaff  <blp@gnu.org>

	Don't use $< in target rules, for portability to POSIX make.
	POSIX only requires $< to be defined for implicit rules, so don't use it
	in target rules.

	With this commit, PSPP builds properly from a tarball with NetBSD make
	version 1.111 on Debian GNU/Linux.

2009-10-11  Ben Pfaff  <blp@gnu.org>

	Use @VARIABLE@ instead of $(VARIABLE) consistently in Makefiles.
	The $(VARIABLE) syntax is usually preferred, because it is possible for the
	user to override it at "make" time, whereas @VARIABLE@ is hardwired at
	"configure" time.

	There was some discussion of this on bug-gnulib@gnu.org:
		http://comments.gmane.org/gmane.comp.lib.gnulib.bugs/18588
	The summary is that Bruno Haible sometimes prefers @VARIABLE@ but most
	others generally prefer $(VARIABLE), for the reason given above.

2009-10-11  Ben Pfaff  <blp@gnu.org>

	Remove redundant variable declarations from Makefile.am.
	Autoconf's AC_SUBST ensures that Automake will declare the corresponding
	Makefile variables, so there is no need to declare them ourselves.

	Drop double suffixes from makefiles to improve POSIX make compliance.
	POSIX says that suffixes must contain only a single dot, e.g. ".inc.pl"
	is not allowed.  So this commit renames files and adjusts the makefiles
	to comply with this rule.

	Avoid nonportable -i option in sed invocation.
	POSIX sed only has -e, -f, and -n options.

2009-10-10  Ben Pfaff  <blp@gnu.org>

	Avoid GNU make extension $(RM) in makefiles.
	Automake uses "rm -f" literally so there is not much point in PSPP trying
	to use $(RM).  At any rate it's a GNU make extension so it's best to avoid
	it for portability.

2009-10-10  Ben Pfaff  <blp@gnu.org>

	Declare Makefile suffixes, to be a little closer to POSIX make compliance.
	POSIX requires that suffixes used in implicit rules be declared.  Automake
	allows one to do that by adding the suffixes to a variable named SUFFIXES.
	We weren't doing that consistently, and this commit fixes that up.

	POSIX doesn't allow suffixes to contain more than one period, so this isn't
	a complete fix, since the Makefiles still use .h.pl and .inc.pl as
	suffixes.  There are other reasons, too, why the PSPP Makefiles are not
	POSIX-compliant.

2009-10-10  John Darrington  <john@darrington.wattle.id.au>

	Converted psppire.glade to psppire.ui

	Converted some additional .glade files .ui

	Allow xgettext to extract strings from .ui files

	Started transition to a .glade-less system.
	Converted some of the .glade files to .ui in the
	source tree instead of using the convertor script.

	Avoid use of $* in Makefile since it's problematic
	Thanks to Ben Pfaff for reporting this.

2009-10-08  Jason H Stover  <jhs@math.gcsu.edu>

	New function covariance_2pass_create

2009-10-06  Ben Pfaff  <blp@gnu.org>

	Release PSPP 0.6.2-rc1.

	Update Dutch and Brazilian Portuguese translations.
	Thanks to Michel Boaventura, Harry Thijssen, and the coordinators at
	translationproject.org.

2009-10-06  John Darrington  <john@darrington.wattle.id.au>

	Update NEWS file

2009-10-06  Jason H Stover  <jhs@math.gcsu.edu>

	New function check_interactions to specify all possible interactions in the absence of the DESIGN subcommand.
	Remove calls to covariance_matrix routines as preparation to rewrite
	src/math/covariance-matrix.c.

2009-10-04  Ben Pfaff  <blp@gnu.org>

	hmap-test: Skip test instead of reporting success on GCC 4.3.
	Commit 1dfc6b1 "hmap-test: Disable tests that GCC 4.3 miscompiles."
	disabled some of the hmap-tests, the ones that GCC 4.3 miscompiles.
	However, it still reported "success" if the remaining tests succeeded.
	John Darrington suggested that reporting that the test was skipped was
	more accurate, so this commit does so.

	Upgrade gtk-builder-convert to newer version that adds useful warnings.
	The notes on "Migrating from libglade to GtkBuilder" in the GTK+
	Reference Manual at, e.g.
	http://library.gnome.org/devel/gtk/unstable/gtk-migrating-GtkBuilder.html
	say that "While libglade can often tolerate multiple widgets having the
	same id in a glade file, GtkBuilder will not accept duplicate object ids."
	The version of gtk-builder-convert that we had previously didn't warn about
	duplicate ids; the new version checked in by this commit does.

2009-10-04  John Darrington  <john@darrington.wattle.id.au>

	Canonicalise orthography of Big/Little Endian

	Remove duplicate entry from command.def

	Update INSTALL file

	CORRELATIONS: Properly deal with case weights.
	Corrected a bug in the weighted covariance calculations,
	and add a test to check that weights are properly
	handled.

	CORRELATIONS: Fix bug parsing /STATISTICS=ALL

	CORRELATIONS: Documented the /STATISTICS subcommand

	CORRELATIONS: Added support for /STATISTICS=XPROD

	CORRELATIONS: Added support for the STATISTICS subcommand

2009-10-03  John Darrington  <john@darrington.wattle.id.au>

	Add a manual entry for the CORRELATIONS command

	First working version of CORRELATIONS.
	This commit includes a new module, src/math/covariance.[ch],
	which may eventually replace src/math/covariance-matrix.[ch]

2009-10-02  John Darrington  <john@darrington.wattle.id.au>

	Initial framework for CORRELATIONS command

2009-09-30  Ben Pfaff  <blp@gnu.org>

	Fix numerous warnings about an unknown attribute rpl_malloc on mingw32.
	On mingw32, Gnulib replaces malloc by defining it as a macro that expands
	to rpl_malloc.  Since MALLOC_LIKE used malloc as an identifier, even though
	it didn't refer to the malloc function per se, this instance of malloc
	also expanded to rpl_malloc, confusing GCC.

	GCC also accepts __malloc__ here, so this commit uses that spelling
	instead, which avoids the warning.

2009-09-30  Ben Pfaff  <blp@gnu.org>

	Upgrade to latest Gnulib version and fix resulting FreeBSD build failures.
	Upgrading the Gnulib version exposed a couple of failures to #include
	<config.h> at the very top of a source file via build failures on
	FreeBSD 7.2-RELEASE, fixed by this commit.

	This probably also fixes a similar OpenBSD issue reported by Jason Stover
	at http://lists.gnu.org/archive/html/pspp-dev/2009-09/msg00095.html

2009-09-30  Ben Pfaff  <blp@gnu.org>

	README.Git: Fix syntax of suggested commands.

	INSTALL: Mention that GNU make is required.
	In my experience with the autobuilder, in particular the system "make"
	program on FreeBSD 7.2-RELEASE will not work.

	Rewrite README.Git to mention the Gnulib commit number and explain better.
	This commit has three purposes.  First, I think that the new version of this
	file explains the bootstrapping process a little better.  Second, I want
	to mention a Gnulib commit number that I have been using, so that other
	people can easily figure out a version of Gnulib that will work.  Third,
	I want the PSPP autobuilder to be able to automatically pick out a working
	Gnulib commit.

2009-09-29  Ben Pfaff  <blp@gnu.org>

	perl-module: Fix build on FreeBSD 7.2
	config.h must be included first, otherwise the build fails on FreeBSD 7.2
	in gl/string.h at the first instance of "restrict", which <config.h>
	#defines as empty.

	Don't use nonportable "mktemp" utility in perl-module/automake.mk.
	In porting to FreeBSD, I noticed that perl-module/automake.mk tries to use
	the "mktemp" utility.  FreeBSD happens to have this utility, but it
	requires an argument, and at any rate it is nonportable and we can avoid
	using it here, so do so.

2009-09-28  John Darrington  <john@darrington.wattle.id.au>

	Added a new target "programs" to the makefile.
	When a source file is changed, the "all" target (correctly) rebuilds
	the po/pspp.pot file and remerges the PO files for all supported translations,
	and then builds .gmo files for each of them.   Whilst this is correct behaviour,
	it will become an unmitigated nuisance for developers as more and more
	translations are added.

	This change adds a new target called "programs" which builds the binaries, but
	not the ancilliary targets. This target is more convienient for working on
	changes to the source code, when translations are not of interest.

2009-09-28  John Darrington  <john@darrington.wattle.id.au>

	Correct printf conversion specifiers for size_t types.

2009-09-27  John Darrington  <john@darrington.wattle.id.au>

	Add necessary #include stddef.h directive

2009-09-25  Ben Pfaff  <blp@gnu.org>

	perl-module: Additional fixes for Perl version number on PSPP autobuilder.
	Commit 30f21302 "perl-module: Tolerate minor PSPP version number
	differences" tried to improve the behavior of the PSPP Perl module when
	the PSPP version number includes a suffix such as -build40.  But it didn't
	entirely work, since it overlooked some uses of $(VERSION) in
	perl-module/automake.mk.  This commit fixes those too.

	Fix missing @clicksequence problem for building Docbook output also.
	Commit 770f21f5 "Fix missing @clicksequence problem with older Texinfo
	versions." fixed the problem of missing @clicksequence for building the
	main PSPP documentation, partly by adding to $(AM_MAKEINFOFLAGS).  However,
	$(AM_MAKEINFOFLAGS) wasn't used in building the Docbook output for use by
	Yelp as the GUI help.  This commit adds $(AM_MAKEINFOFLAGS) to that
	command, fixing the problem.

2009-09-24  Ben Pfaff  <blp@gnu.org>

	perl-module: Tolerate minor PSPP version number differences.
	The PSPP autobuilder that I'm working on appends a build number to the PSPP
	version number, e.g. "0.7.2-build40".  The Perl module has two problems
	with this:

	  1. Perl won't parse version numbers that contain anything other than
	     digits and periods, so "-build" causes an error.  So this commit
	     drops everything from the hyphen onward from the PSPP version number
	     passed along to Perl.

	  2. The Perl module itself does a string comparison operation between the
	     number it expects and the number that PSPP reports.  When we drop
	     the hyphen onward, the comparison fails.  So this commit also relaxes
	     the comparison to one that does pass.

2009-09-24  John Darrington  <john@darrington.wattle.id.au>

	Merge commit 'origin/stable'
	Conflicts:

		AUTHORS
		NEWS
		configure.ac
		lib/gtksheet/gtkitementry.c
		po/LINGUAS
		po/nl.po
		src/data/file-name.c
		src/data/sys-file-writer.c
		src/language/stats/crosstabs.q
		src/language/stats/examine.q
		src/language/stats/t-test.q
		src/output/charts/box-whisker.c
		src/output/charts/plot-hist.c
		src/ui/gui/output-viewer.c
		src/ui/gui/psppire.c
		src/ui/gui/psppire.h
		src/ui/terminal/main.c

2009-09-23  Ben Pfaff  <blp@gnu.org>

	Make GtkItemEntry compatible with GTK+ 2.17.4 and later.
	GTK+ 2.17.4 breaks GtkEntry's buffer into a separate class named
	GtkEntryBuffer and eliminates the associated members from GtkEntry.
	The GtkItemEntry code in lib/gtksheet attempted to use some of those
	members directly, which no longer works, so this commit changes that
	code to use public function interfaces instead.  Some of these public
	function interfaces were introduced in GTK+ 2.17.4, so those pieces
	are conditionalized on the version of GTK+ detected at build time.

	This commit makes PSPPIRE compiled with GTK+ before 2.17.4 work properly
	only when used with GTK+ before 2.17.4, and similarly when PSPPIRE is
	compiled with GTK+ 2.17.4 or later.  There may be a way to avoid that, but
	it is not entirely obvious.

	With feedback from John Darrington.

2009-09-23  Ben Pfaff  <blp@gnu.org>

	Rename README.CVS to README.Git and update to refer to Git instead of CVS.

2009-09-22  Ben Pfaff  <blp@gnu.org>

	Fix "make install" with --enable-relocatable.
	When PSPP added support for --enable-relocatable back in 2007, PSPP did
	not install any shared libraries.  Now it does, which requires us to
	set RELOCATABLE_LIBRARY_PATH in configure.ac.  Otherwise, the installed
	binaries will not work automatically but require some manual user
	intervention.

	Also set RELOCATABLE_STRIP as recommended by the gnulib documentation.

2009-09-20  Ben Pfaff  <blp@gnu.org>

	hmap-test: Disable tests that GCC 4.3 miscompiles.
	Commit ac58b3c51 "Avoid bug in GCC 4.3 in hmap-test." attempted to work
	around a bug in GCC 4.3 that was causing test failures in hmap-test.
	Unfortunately, the problem has started resurfacing again, probably due to
	changes elsewhere, so this commit simply disables the tests in question
	when PSPP is built with GCC 4.3.

2009-09-20  Ben Pfaff  <blp@cs.stanford.edu>

	Fix "make check" with --enable-relocatable.
	When --enable-relocatable was passed to "configure", "make check" failed
	while building datasheet-test:

		tests/data/datasheet-test.c: In function 'main':
		tests/data/datasheet-test.c:880: error: 'INSTALLDIR' undeclared (first use in this function)

	Line 880 of that file is:

		set_program_name (argv[0]);

	which is a little mysterious until one realizes that --enable-relocatable
	defines set_program_name() as a macro that expands to a value that includes
	INSTALLDIR.

	So this commit fixes the problem by making sure that INSTALLDIR is defined
	as part of CPPFLAGS for all compiles.

2009-09-16  Ben Pfaff  <blp@gnu.org>

	Don't pad variable labels written to system files.
	Previously, the code to write variable labels to system files accidentally
	padded out the variable labels on the right with spaces to a multiple of 4
	bytes in length.  With this commit, variable labels will no longer be
	padded.

	This fixes a genuine bug for variable labels longer than 252 bytes, which
	previously were padded out to 256 bytes.  Variable labels are limited to
	a maximum of 255 bytes, so PSPP refused to read such files.

	Reported-by: Robert Westlund <rob@kinesissurvey.com>

2009-09-15  Ben Pfaff  <blp@gnu.org>

	FREQUENCIES: Make frequency table headings easier to translate.
	The headings for frequency tables were broken up into individual words,
	which made them hard to translate since in some languages the words needed
	to be in the opposite order.

	Thanks to Harry Thijssen <pspp@sjpaes.nl> for pointing out the problem.

2009-09-14  Ben Pfaff  <blp@gnu.org>

	Merge commit 'origin/stable' into stable

2009-09-12  John Darrington  <john@darrington.wattle.id.au>

	Fix tests broken by the new table widths, caused by previous change

	Canonicalise some printed strings, to make translators' lives easier

2009-09-08  Ben Pfaff  <blp@gnu.org>

	Release PSPP 0.6.2-pre6.

	Add Brazilian Portuguese translation.
	Thanks to Michel Boaventura <michel@cecaps.ufmg.br> and the coordinators
	at translationproject.org.

2009-09-04  Ben Pfaff  <blp@gnu.org>

	T-TEST: Also fix the case where the correlation is slightly less than -1.0.
	Thanks to John Darrington for pointing out the omission.

2009-09-03  Ben Pfaff  <blp@gnu.org>

	Update to latest nl.po.
	Thanks to unknown-1 and the coordinators at translationproject.org.

2009-09-03  Ben Pfaff  <blp@gnu.org>

	Fix missing @clicksequence problem with older Texinfo versions.
	The @clicksequence command was introduced in Texinfo 4.12, which a lot of
	users do not yet have.  This commit fixes the problem by detecting whether
	makeinfo supports @clicksequence and, if not, defining a macro for it as
	a substitute.

	We also need support for @clicksequence in texinfo.tex.  It is possible to
	detect whether @clicksequence is defined using TeX code and, if not,
	define a TeX macro for it.  However, I'm not sure how to do that.  So this
	commit instead adds a known-good texinfo.tex to the source tree, which
	should have the same effect.

2009-09-03  Ben Pfaff  <blp@gnu.org>

	T-TEST: Avoid NaN in paired-sample correlation significance calcuation.
	Sometimes the correlation comes out just above 1.0 due to inaccuracy of
	machine calculation, which causes sqrt(1-corr**2) to yield NaN.  This
	commit forces the correlation into the valid range, fixing the problem.

	Thanks to Matej Cepl <mcepl@redhat.com> for reporting the problem.
	Thanks to John Darrington for suggesting the fix.

2009-09-01  Jason Stover  <jhs@debs.(none)>

	New functions glm_custom_design and parse_interactions.

2009-09-01  John Darrington  <john@darrington.wattle.id.au>

	Remove i18n related configuration items which are no longer used

2009-08-31  John Darrington  <john@darrington.wattle.id.au>

	Replace "all-hook" with "all-local".
	all-hook isn't a target recognised by automake, so use all-local instead,
	and avoid it clashing with the all-local in perl-module

	Add the all_q_sources to the dependencies of po/pspp.pot

2009-08-31  John Darrington  <john@darrington.wattle.id.au>

	Rewrite automake rules for internationalisation files.
	I got fed up with battling against the Makefile which
	gettext provides.  So I rolled my own instead.  This change provides
	the following advantages over previous situation:

	* It doesn't use recursive calls to $(MAKE).

	* Merged and unmerged po files are properly seperated into
	  the buildir and sourcedir respectively.  Consequently,
	  po files get updated only when we really want them to be,
	  and not (potentially) on every commit.

	* The .pot file (and consequently the .po and .gmo files) now
	  properly depend upon all the distributed source files.  There
	  is no need to run "make -f Smake" to make it aware of new files.

	* There's no more need of "timestamp" files.

	* Potentially it's easier to add per-source-file options
	  when generating the .pot file. (and thus avoid warnings about
	  unrecognised extentions.

2009-08-30  John Darrington  <john@darrington.wattle.id.au>

	Correct typo in printed string

	Update to most recent Gnulib

	Fix make distcheck

2009-08-15  John Darrington  <john@darrington.wattle.id.au>

	Don't override label for Save As menuitem

2009-08-14  John Darrington  <john@darrington.wattle.id.au>

	Remove const qualifier.
	Remove inappropriate const qualifier and the
	const_casts that it caused.

	Update perl module version number

	Revert pango dependency to version 2.20
	Reduce pango required version to 2.20, and backport
	the pango_layout_get_baseline function.

2009-08-11  Ben Pfaff  <blp@gnu.org>

	EXAMINE: Fix null pointer dereference introduced in commit b46b794dfb9.
	This code initializes metric->box_whisker, so it must only take its address
	afterward.

	Merge master into output branch.

2009-08-10  Ben Pfaff  <blp@gnu.org>

	Delete tab_raw function and tab_alloc macro.
	This function and macro were only used within crosstabs.q.  They violate
	encapsulation (though not too badly) and since it is not difficult to
	remove them, this commit does so.

	Delete tab_create()'s unused third parameter.
	This parameter was used a long time ago, but it is no longer needed, so
	remove it.

2009-08-10  Ben Pfaff  <blp@gnu.org>

	Separate table functions that format their arguments from those that don't.
	The tab_text, tab_joint_text, and tab_output_text functions, until now,
	had an option bit TAT_PRINTF that specified whether they passed their text
	argument through sprintf.  This interface was bad because it made it
	impossible for GCC to tell whether it needed to verify a printf format
	string or not.

	This commit solves the problem by breaking each of these functions into one
	that does format its argument and one that doesn't.

	This is cross-ported from a similar commit on the master branch.

2009-08-08  Ben Pfaff  <blp@gnu.org>

	Add CONST_CAST macro, for casting away "const" more safely.

	Add CHECK_POINTER_HAS_TYPE macro, and use it to make *_data macros safer.

	Eliminate unnecessary casts.

	Add UP_CAST macro, for safer casting from contained data to its container.

2009-08-05  Ben Pfaff  <blp@gnu.org>

	Eliminate casts that can be replaced by uses of the & operator.
	This increases type safety and so it's hard to see any downside.

	output: Always use helper functions to access struct tab_table members.
	The implementation of "struct tab_table" will be changing, so by always
	using the helper functions we can reduce the amount of code that has to
	change later to support those changes.

2009-08-04  Ben Pfaff  <blp@gnu.org>

	output: Remove write-only "col_group' member from struct tab_table.
	It probably makes sense to revive support for this feature at some point,
	but that time has not yet arrived.  Instead, since it's currently not used
	and not implemented, just remove it.

	output: Get rid of write-only "hit" member in struct tab_joined_cell.
	This member used to be used, but that use was eliminated in commit
	1cc38c81df "Get rid of most global variables in outputting tables."

	output: Fix warnings about unused function arguments in ODT driver.

2009-08-03  Jason Stover  <jhs@debs.(none)>

	Cruft removal

2009-08-01  John Darrington  <john@darrington.wattle.id.au>

	Consolidate translatable strings into a common form.
	Be kind to the translators and reduce the number of
	distinct strings they have to translate.

	Added options to the ODF driver.
	Added some options to the OpenDocument driver.
	Currently only two: "output-file" and "debug".

	Fixed bug rendering joined columns

	Add a styles.xml file
	Add a basic style XML and have the table headings
	rendered in a different style to the table contents.

	Prevent existing output file from interfereing with zip

2009-07-31  John Darrington  <john@darrington.wattle.id.au>

	Revert inadvertently commited change to required pango version

	Enable joined cells to be rendered properly

	Added a meta.xml file.
	Add the meta.xml file, to contain (at present) the author's
	name, version of pspp and time that the document was created.

	Add comments and cleanup

	Add the file I forgot to include

2009-07-30  John Darrington  <john@darrington.wattle.id.au>

	Initial attempt at an ODF driver

2009-07-29  Ben Pfaff  <blp@gnu.org>

	output: Draw titles on charts in a larger font than other labels.

	output: Fix vertical alignment of text to a baseline in chart output.
	This makes labels on pie charts look better, for example.

2009-07-29  John Darrington  <john@darrington.wattle.id.au>

	Use u8_cpy instead of memcpy.
	Use u8_cpy instead of memcpy since the
	former provides better type checking.

2009-07-29  Ben Pfaff  <blp@gnu.org>

	output: Use Cairo and Pango to draw charts, instead of libplot.
	This paves the way for adding support for charts to the PSPPIRE GUI, since
	Cairo can render to a window in GTK+ whereas libplot cannot.

	I am aware of the following regressions versus the state before this
	commit:

	1. Alignment of text in charts on the baseline is not properly implemented.
	   This makes the labels in pie charts look funny.

	2. Chart titles are drawn in the same font size as other chart text.

	3. Building without Cairo and Pango is broken.

	4. The postscript output driver (as opposed to the cairo output driver in
	   PostScript output mode) no longer supports charts.

	I plan to fix #1, #2, and #3.  #4 is fixable too, but I don't know whether
	it is worth it; I might prefer to delete the postscript output driver
	altogether.

2009-07-28  Ben Pfaff  <blp@gnu.org>

	output: Make chart geometry the responsibility of the output driver.
	Currently, with libplot, all charts have the same geometry, because
	libplot allows us to reasonably set the dimensions of the drawing area
	to the same 1000x1000 size.  But cairo will produce strangely scaled
	results if we attempt to do the same thing there (distorted font sizes,
	etc.).  So make the output drivers responsible for setting up the chart
	geometry, so that the output drivers can tell the chart drawing routines
	the size of the drawing area.

2009-07-28  Jason Stover  <jhs@debs.(none)>

	Merged changes from branch interaction-review

2009-07-28  Ben Pfaff  <blp@gnu.org>

	charts: Use numeric colors instead of color names.
	Cairo doesn't support color names, so this will ease the transition.

2009-07-28  John Darrington  <john@darrington.wattle.id.au>

	Remove commented code

	remove unused return value

	Allow ranges with left to right and bottom to top sense to be selected.

2009-07-27  John Darrington  <john@darrington.wattle.id.au>

	Replace safe_strcmp with g_strcmp0.

	Fix clipboard export of non-ascii strings.
	Fixed problem pasting sheet data from psppire to
	openoffice.org and gnumeric which contained non-ascii
	characters.  Tested with openoffice.org 2.4 and
	gnumeric 1.8.3

	Fix bug in casemapping long strings.
	Thanks to Ben Pfaff for pointing out the error.

	Remove the RESIZE feature of the sheet.
	This feature is currently unused, and probably
	broken.

	Re-enable signal emmission on row/column selection

	Removed unused function

	Removed unnecessary variable and consequently unreachable code.

	Avoid the need for an extra click when de-selecting a region

	Re-enable selection of complete rows/columns

	Remove unused function psppire_sheet_cell_get_state

	Prevent var sheet from traversing to an invalid cell

	Redraw affected areas after de-selecting a region

	Redraw selection when reducing its area.
	This change ensures that the area of the selection
	is properly indicated when it's in the process of
	being decreasing its area as well as increasing it.

	Replaced GTK_STATE_NORMAL with PSPPIRE_SHEET_NORMAL where appropriate

	Removed unnecessary variables

	Made selection a bit more reliable

	Remove unnecessary variable

	Partial fix of selection in the sheet.
	This change re-enables the display of sheet
	selections.  Unfortunately, the selected cells
	aren't properly de-selected (yet).

2009-07-26  John Darrington  <john@darrington.wattle.id.au>

	Whitespace changes for the benefit of xgettext.
	It would seem that xgettext wants the TRANSLATORS
	comments to be on the line immediately preceeding the
	translatable string.

2009-07-25  John Darrington  <john@darrington.wattle.id.au>

	Disable extend_selection call.
	Temporarily disable the call to psppire_sheet_extend_selection
	since it interferes with the active cell border and selection
	is currently not working anyway.

	Add "dictionary" property to PsppireVarStore and use it.
	Instead of abusing the encapsulation of PsppireVarStore,
	by accessing the internal dictionary member directly, add
	a "dictionary" property.   This should also take care of the
	reference counting of the dict, which wasn't working properly.

2009-07-24  John Darrington  <john@darrington.wattle.id.au>

	Change signature of text_to_value.
	Now, text_to_value initialises the value, and expects
	the caller to destroy it.

	This fixes some gui bugs where strange things happened with long string
	value labels and missing values.

2009-07-24  John Darrington  <john@darrington.wattle.id.au>

	remove return values from callbacks which don't need them

2009-07-23  John Darrington  <john@darrington.wattle.id.au>

	Fix warnings in flip command.
	Use data_in / data_out to convert between names and values,
	instead of doing it ourselves.

	Remove reference to roc.h which doesn't exist.

2009-07-22  John Darrington  <john@darrington.wattle.id.au>

	Merge commit 'origin/stable'
	Conflicts:

		src/language/stats/t-test.q

2009-07-22  John Darrington  <john@darrington.wattle.id.au>

	Fix merge problems

	Merge commit 'origin/roc'

2009-07-21  Ben Pfaff  <blp@gnu.org>

	output: Make building without libplot possible again.
	This fixes the remaining known functional regression versus the situation
	before refactoring the charts implementation.

	output: Use macro HAVE_CHARTS instead of NO_CHARTS.
	Double negatives make my brain hurt, so don't use them.

	output: Remove barchart implementation, which is unused.
	No procedure has ever output barcharts.  This code can be revived from the
	history if we do add support for barcharts later.

2009-07-21  John Darrington  <john@darrington.wattle.id.au>

	Add perl functions to get the format of a variable

2009-07-19  John Darrington  <john@darrington.wattle.id.au>

	Remove double semicolons.

	Replace caseproto_clone with caseproto_ref
	Also unref the proto on destruction of the translator.

2009-07-19  Ben Pfaff  <blp@gnu.org>

	Move implementation of NP plots out of EXAMINE into the charts engine.
	This seems like a helpful cleanup.  It should also ease making it possible
	to again build PSPP without libplot, which was broken a number of commits
	ago.

	charts: Allow passing a null pointer to chart_unref.

2009-07-19  John Darrington  <john@darrington.wattle.id.au>

	Added more (hopefully usefull) comments

	Add some comments and macros to make the code more readable

	Add assertion to check code consitency

	Fix cleanup of ROC command.
	Properly deallocate variables, and use correct
	symbols for parser return values.  Also, delete
	roc.h which is unnecessary.  Thanks to Ben Pfaff
	for pointing out these problems.

	Respect the constness of caseproto.
	New function caseproto_clone.  This means we
	can clone a proto, then mutate it as we want.

	Corrected spelling of "consolidate".
	Thanks to Ben Pfaff for pointing out my mistake.

	Added the '=' to the plot subcommand's documentation.
	Thanks to Ben Pfaff for pointing this out.

2009-07-18  John Darrington  <john@darrington.wattle.id.au>

	Avoid compiler warning

2009-07-18  John Darrington  <john@darrington.wattle.id.au>

	Merge commit 'origin/data-encoding'
	Conflicts:

		src/language/dictionary/split-file.c

2009-07-18  John Darrington  <john@darrington.wattle.id.au>

	Add comment explaining the meaning of encoding to data_out

	The length of the string is now not always the same as the format width.
	Thanks to Ben Pfaff for pointing this out.

	Improve code to trim leading spaces from numeric output.
	Ben Pfaff pointed out that the code to chomp the results
	of formated doubles was no longer correct. This change
	fixes that.

	Use data_out_pool in crosstabs.q
	We were erroneously allocating a buffer before
	the size of the contents were known.  Using
	data_out_pool avoids this problem.  Thanks to
	Ben Pfaff for pointing this out.

	Before recoding a variable's name, check that it doesn't clash with an existing one.
	Thanks to Ben Pfaff for pointing out this potential
	problem.

2009-07-17  Jason Stover  <jhs@debs.(none)>

	pspp_linreg(): Use cache->n_coeffs to set the dimensions of sw, instead of 	       cache->n_indeps, which may give incorrect dimension in the case 	       of categorical variables. Fixes bug referenced in bug report 	       26861.

	pspp_linreg(): Use cache->n_coeffs to set the dimensions of sw, instead of 	       cache->n_indeps, which may give incorrect dimension in the case 	       of categorical variables. Fixes bug referenced in bug report 	       26861.

2009-07-17  John Darrington  <john@darrington.wattle.id.au>

	Ensure correct behaviour when the state var is missing.
	When the state variable is missing, then the entire
	case is skipped.

	Update documentation regarding missing values.
	Explicitly mention that cases are excluded on a
	listwise basis.

	Fix ROC behaviour in the presence of missing values.
	Make sure that the ROC command's behaviour is correct,
	when missing values appear in the result variable.

	Corrected typos in the perl documentation

2009-07-16  Ben Pfaff  <blp@gnu.org>

	Release PSPP 0.6.2-pre5.

	Fix reversed logic in when to append "/" to path in previous commit.

	Fix failure to write output file in GUI on Windows when HOMEPATH is "\".
	Thanks to Michel Boaventura for reporting this problem:
		http://lists.gnu.org/archive/html/pspp-dev/2009-07/msg00064.html

2009-07-16  Ben Pfaff  <blp@gnu.org>

	REGRESSION: Fix access beyond end of allocated region.
	From Jason Stover, with modification for stable since the
	design_matrix_get_n_cols function does not exist on this branch.

	Bug #26861.

2009-07-16  Jason Stover  <jhs@debs.(none)>

	Return 0.0 for mean of a categorical variable. Fixes bug mentioned in bug report 26861.

2009-07-16  John Darrington  <john@darrington.wattle.id.au>

	Fixed bug reporting the significance of paired value t-test.
	Due to a cut and paste error, the significance of paired
	t-tests was wrong when the value of T was positive.
	Thanks to Mike Griffiths for reporting this problem.

2009-07-16  Ben Pfaff  <blp@gnu.org>

	i18n: Merge translatable strings.

	"Sig." is an abbreviation, "Exact" is not.

	i18n: Eliminate some translatable strings.

	i18n: Reduce translatable strings in SHOW command.
	All the output from the SHOW command is of the form "%s is %s." but the
	translators were being asked to translate similar strings over and over
	again.  Reduce their load by getting rid of many translatable strings.

	i18n: Change some strings to reduce work of translation.
	PSPP has a number of strings that happen to be phrased differently for no
	particular reason.  This commit changes some of those strings to be
	exactly the same as other ones, to make the work of translators easier.

2009-07-15  Ben Pfaff  <blp@gnu.org>

	Separate table functions that format their arguments from those that don't.
	The tab_text, tab_joint_text, and tab_output_text functions, until now,
	had an option bit TAT_PRINTF that specified whether they passed their text
	argument through sprintf.  This interface was bad because it made it
	impossible for GCC to tell whether it needed to verify a printf format
	string or not.

	This commit solves the problem by breaking each of these functions into one
	that does format its argument and one that doesn't.

2009-07-15  Ben Pfaff  <blp@gnu.org>

	Consistently capitalize the name "Gnumeric".
	Thanks to Harry Thijssen for pointing out the inconsistency.

2009-07-15  John Darrington  <john@darrington.wattle.id.au>

	Fixed bug reporting the significance of paired value t-test.
	Due to a cut and paste error, the significance of paired
	t-tests was wrong when the value of T was positive.
	Thanks to Mike Griffiths for reporting this problem.

	New function prepare_cutpoints
	Move the code which creates the cutpoints into its own
	function.  This makes for easier reading IMO.

	Updated the example with an easier to visualise one

2009-07-14  Ben Pfaff  <blp@gnu.org>

	output: Fix GUI output, which was broken in the chart refactoring.
	Thanks to John Darrington for pointing out my mistake.

2009-07-14  John Darrington  <john@darrington.wattle.id.au>

	Replaced the glade definition of about dialog with a C one.
	The about dialog box is simple enough to maintain in C
	rather than using a glade definition.

	Removed unused function prototypes

2009-07-13  John Darrington  <john@darrington.wattle.id.au>

	Fix crash in find dialog and make code less horrible.

2009-07-12  John Darrington  <john@darrington.wattle.id.au>

	Fix bug encodig missing value keys in gui

	Fix crash on text import dialog

2009-07-12  Jason Stover  <jhs@debs.(none)>

	Remove write-only variable from interaction_case_data.

2009-07-12  John Darrington  <john@darrington.wattle.id.au>

	Fix compiler warning in test program

	Updated the developers' manual to reflect the new situation

	Added a dict parameter to data_in and dealt with the consequences.
	The data_in function now takes a pointer to a struct dictionary,
	which must be the dictionary with which the output value is
	associated.  Data_in now ensures that the data of string values
	is converted to the dictionary's encoding if necessary.

2009-07-11  Jason Stover  <jhs@debs.(none)>

	Return 0.0 for mean of a categorical variable. Fixes bug mentioned in bug report 26861.

2009-07-09  Ben Pfaff  <blp@gnu.org>

	Use Harry Thijssen's real name instead of his nick "unknown-1", at his request.

2009-07-08  Ben Pfaff  <blp@gnu.org>

	Release PSPP 0.6.2-pre4.

	Update to latest nl.po.
	Thanks to unknown-1 and the coordinators at translationproject.org.

	gui: Fix brown-paper-bag bug in output file name selection.
	Thanks to michel@cecaps.ufmg.br for reporting the bug and the fix.

2009-07-08  John Darrington  <john@darrington.wattle.id.au>

	Remove recoding in data_store.
	It's no longer appropriate to perform recoding in the gui.
	Instead, this is expected to be done in the backend.

2009-07-07  Ben Pfaff  <blp@gnu.org>

	CROSSTABS: Handle long string variables without crashing (bug #26131).

2009-07-07  John Darrington  <john@darrington.wattle.id.au>

	Change union value type to contain uint8_t types instead of char.
	Make the members of the union value type in src/data/value.h be
	uint8_t instead of char.  This is more logical since the contents
	of values cannot be considered "strings" until they have been
	formatted.  The unformatted values are merely arrays of bytes.

	This has the added advantage of provoking compiler warnings when
	a char * type is being implicitly cast to a uint8_t * or vici-versa.
	When such a warning is encountered, is probably means that the
	data needs to be re-encoded using recode_string.

2009-07-07  John Darrington  <john@darrington.wattle.id.au>

	Remove erroneously commited diagnostic statement

	Use default encoding when reading system files if no encoding is given in file.

	Fix problem running the perl module

	Replace legacy_recode with recode_string.
	Iconv seems to do a good job of converting between
	ascii and ebcdic, so use the recode_string function
	instead of our own conversion routines.

2009-07-06  John Darrington  <john@darrington.wattle.id.au>

	Fix compile warnings

	Fix bug in value labels dialog box

2009-07-06  John Darrington  <john@darrington.wattle.id.au>

	Add dictionary argument to tab_value.
	In order to properly display values, tab_value needs
	to know the dictionary from whence the value comes.
	This is necessary so that string values can be properly
	decoded.

	This change adds this argument to tab_value and updates
	all callers.

2009-07-06  John Darrington  <john@darrington.wattle.id.au>

	Recode strings when writing system files.
	The long variable names, variable labels and value labels are
	now converted from utf8 to the dictionary encoding when
	writing a system file.

	Fix crash when opening empty dataset

	Convert to utf8 in data_out function.
	Previously, the output value of data_out was of arbitrary encoding.
	This change attempts to ensure that it is always utf8.

	data_out function to dynamically allocate return value.
	Preparation for i18n of values.  Instead of asking the
	caller to prepare the buffer for output, data_out now
	dynamically allocates the output value, and expects the
	caller to free it.  This is necessary since for utf8
	strings, the caller cannot reasonably know the length of
	the required output buffer.  It also simplifies some uses
	of data_out.

2009-07-05  Ben Pfaff  <blp@gnu.org>

	output: Make box-whisker plots work again.

2009-07-05  John Darrington  <john@darrington.wattle.id.au>

	Change enum legacy_encoding to const char *.
	Preparation for i18n of union values.  Remove the
	legacy_encoding enum and substitute it with a const
	char *.  This makes it easier to integrate recoding
	of union values in the data parsing stage.

	Store variable names, labels and value labels as UTF8.
	This change converts long variable names, variable labels
	and value labels to utf8 encoding when system files are
	loaded.  It is therefore no longer necessary (nor correct)
	to convert them when displaying.

2009-07-03  Ben Pfaff  <blp@gnu.org>

	Release PSPP 0.6.2-pre3.

	Add Dutch translation.
	Thanks to unknown-1 and the coordinators at translationproject.org.

2009-07-03  Ben Pfaff  <blp@gnu.org>

	Fix segfault drawing pie charts with old versions of libplot.
	If chart_create returned null, we dereferenced a null pointer just below.
	Avoid doing this.

	Also add similar fixes to other code that calls chart_create.  It may not
	be necessary in every case.

	Reported by Jason Stover.

2009-07-03  Ben Pfaff  <blp@gnu.org>

	Release PSPP 0.6.2-pre2.

2009-07-03  John Darrington  <john@darrington.wattle.id.au>

	Correct default_output_path function on Windows.

	Ensure that windows opens the right file for output.
	Thanks to Michel Boaventura for reporting this problem.
	Fixes bug #26542

2009-07-03  Ben Pfaff  <blp@gnu.org>

	Relocate the locale directory.
	Based on commit 31e674bbb in master, but stable refers to locale_dir from
	different files.

	Thanks to Michel Boaventura for reporting the problem.

2009-07-02  Ben Pfaff  <blp@gnu.org>

	output: Refactor implementation of charts.
	This commit addresses a weakness of the charts implementation in PSPP, in
	that charts can only be sent to a single output device.  This is because
	the chart code calls into a single output driver to obtain a libplot
	plotting context and then passes that back into the calling code, which
	draws on it and passes it back to the output driver.  This commit refactors
	the code so that, instead, a chart is an ADT that is reponsible for knowing
	how to draw itself on a plotting device.  Then the function for outputting
	a chart applies this function to each output device.

	This is more complicated than necessary: we could just loop over the set of
	output devices and draw a chart on each one in turn.  But this level of
	complication is being introduced now so that later we can keep around
	charts in memory as long as necessary for the GUI output engine to export
	them on user demand.

	This commit introduces a couple of regressions:

		* libplot is now required, not optional.

		* Box-whisker plots are disabled.

	This regressions will be fixed by later commits.

2009-07-02  Ben Pfaff  <blp@gnu.org>

	Release PSPP 0.6.2 prerelease 1.

2009-07-02  Ben Pfaff  <blp@gnu.org>

	chart: Fix format string issues in draw_tick callers.
	The 'label' argument to draw_tick is used as a printf-type format string,
	so callers must pass "%s" to safely use an arbitrary string as a label.

	Also, hist_draw_bar was doing its own snprintf, but this commit changes it
	to take advantage of that provided by draw_tick.

2009-07-02  Ben Pfaff  <blp@gnu.org>

	chart: Fix format string issues in chart_write_title callers.
	The 'title' argument to chart_write_title is used as a printf-type format
	string, so callers must pass "%s" to safely use an arbitrary string as a
	title.

2009-07-01  Ben Pfaff  <blp@gnu.org>

	chart: Fix format string issues in draw_tick callers.
	The 'label' argument to draw_tick is used as a printf-type format string,
	so callers must pass "%s" to safely use an arbitrary string as a label.

	Also, hist_draw_bar was doing its own snprintf, but this commit changes it
	to take advantage of that provided by draw_tick.

2009-07-01  Ben Pfaff  <blp@gnu.org>

	chart: Fix format string issues in chart_write_title callers.
	The 'title' argument to chart_write_title is used as a printf-type format
	string, so callers must pass "%s" to safely use an arbitrary string as a
	title.

	piechart: Change 'angle' variable from static to automatic.

	piechart: Fix spelling of "magnitude".

	piechart: Use definition of M_PI from GSL.
	The GSL header <gsl/gsl_math.h> makes sure that the standard BSD
	mathematical constants are defined, so we don't have to do it ourselves.

	output: Get rid of 'prc' member of struct outp_driver.
	Not only is having a per-procedure member in struct outp_driver a layering
	violation, it wasn't very useful, so this commit gets rid of it.

	LIST: Don't use outp_driver 'prc' member any longer.
	The LIST procedure is the only one that uses the 'prc' member of struct
	outp_driver.  This commit gets rid of that use, so that 'prc' can be
	removed, as part of a larger output subsystem cleanup.

	output: Get rid of histogram_plot_n function.
	For some reason we have two functions to plot histograms, one of which is
	marked "deprecated" and the other of which is a trivial wrapper.  It's
	easy, however, to get rid of one of them and make the caller in charge of
	doing what the wrapper does, especially since the wrapper had only a single
	caller.  That is what this commit does.

	output: Fix segfault for writing output outside a command invocation.
	Running "make check" made this problem obvious, but it hadn't shown up in
	my in-GUI testing.

2009-06-28  Ben Pfaff  <blp@gnu.org>

	output: Avoid functions added in GTK 2.14 in GUI output code.

	output: Reduce Cairo minimum version to 1.5.
	Suggested by John Darrington.

2009-06-26  Ben Pfaff  <blp@gnu.org>

	output: Make double-clicking in GUI output overview pane scroll to table.

	output: Give the overview pane in the GUI output a reasonable initial width.

	output: Improve title display in overview pane of GUI output.

2009-06-24  John Darrington  <john@darrington.wattle.id.au>

	Fix bugs when input data is repeated

	Added second ROC test

2009-06-23  Ben Pfaff  <blp@gnu.org>

	output: Add overview pane to GUI output window.

2009-06-22  Ben Pfaff  <blp@gnu.org>

	output: Include command names in titles in GUI output.
	The command name displayed by the output engine was the current command
	name.  The GUI output was never displayed during the actual execution of a
	command, so GUI titles never included a command name.

	This commit puts the command name into the struct passed into the output
	engine, so that it gets saved and displayed.

2009-06-21  Ben Pfaff  <blp@gnu.org>

	crosstabs: Fix free of bad pointer and use-after-free error in cleanup.
	In free_proc, 'pt' points within an array that is dynamically
	allocated, not to a data structure that is dynamically allocated, so
	we must not try to free it on each iteration.  Instead, free the
	dynamic array itself (proc->pivots) only once.

2009-06-20  Ben Pfaff  <blp@gnu.org>

	output: Use "base" color for background in GUI output window.
	The "base" color in GtkStyle is used as the background color for GTK+
	widgets that display editable text, e.g. GtkEntry.  That's what we're
	aiming for, eventually, with the PSPP GUI output, and the default
	white "base" color looks better than the default gray background
	color, so use it.

	output: Use gtk_widget_show_all instead of gtk_widget_show_now.
	The gtk_widget_show_now function is not supposed to used lightly,
	according to GTK+ documentation.  We don't really need it here, so
	avoid it.

	output: Make GUI output window scrollable.

2009-06-19  Ben Pfaff  <blp@gnu.org>

	output: Implement very rudimentary graphical GUI output for PSPPIRE.
	It's quick and dirty and lacks many important features (such as
	scrolling, and not leaking memory), but it does look a lot better than
	a text editor window.

	output: Make tables reference-counted.
	Adding a reference count to tab_table allows output drivers to retain
	a copy of a table even after the main output engine is done.  This
	will be useful for the GUI output driver.

	output: Improve warnings about negative table dimensions.

	output: Make outp_parse_options slightly more general-purpose.
	This function can be a little more flexible in the interface it offers
	its callers by letting them provide general auxiliary data instead of
	having to provide a struct outp_driver *.

2009-06-19  Ben Pfaff  <blp@gnu.org>

	Make the UTF-8 graphic devices avoid overstriking by default.
	The UTF-8 graphic devices introduced in the previous commit use
	backspaces and overstriking to indicate bold, but most users probably
	won't appreciate that, since it makes it harder to work with the
	output files in many text editors.  Thus, disable this behavior.

	Thanks to John Darrington for pointing out the issue.

2009-06-17  Ben Pfaff  <blp@gnu.org>

	Add Unicode (UTF-8) line-drawing support to device configuration.
	Thanks to jwshipley@jwshipley.karoo.co.uk for the suggestion.

2009-06-17  Ben Pfaff  <blp@gnu.org>

	sys-file-reader: Don't warn if compression bias field is 0.
	Some software writes a value of 0 to the compression bias field.  We
	expect that this field has a value of 100 and warn if we see any other
	value, but there is no real need to do so (because it is very likely
	that we can read the file correctly in any case).  So suppress the
	warning if we see a value of 0 here, because it bothers users.

	Thanks to Tony Reardon <tony@sir.com.au> for reporting this
	unnecessary warning.

2009-06-17  Ben Pfaff  <blp@gnu.org>

	por-file-reader: Tolerate short lines when detecting portable files.
	When the portable file reader reads a file, it assumes that a line
	shorter than 80 bytes should actually be padded out on the right with
	spaces, because this is a fairly common problem in practice, perhaps
	due to text editors or other software that drops spaces at the end of
	a line.

	However, pfm_detect, the function that is supposed to detect whether
	a given file is an SPSS portable file, did not apply this heuristic to
	the data that it read at the beginning of the file, and thus files in
	which the first few lines were truncated this way were not detected
	properly as portable files.

	This commit fixes the problem by making pfm_detect a little bit
	smarter.  It would probably be better to actually unify the
	file-reading logic, instead of implementing it in two separate places,
	but this appears to work adequately too.

	Thanks to Tony Reardon <tony@sir.com.au> for reporting the problem
	and supplying a file that demonstrated it.

2009-06-16  Ben Pfaff  <blp@gnu.org>

	output: Make allocating and freeing drivers independent of configuration.
	Until now, the output subsystem has taken responsibility for
	allocating, freeing, registering, and unregistering output drivers.
	This is usually what we want it to do, but PSPPIRE will soon want to
	register an output driver of its own, independent of the main driver
	configuration mechanism.  This commit refactors the output driver
	subsystem slightly to make this possible.

2009-06-16  Jason H Stover  <jhs@math.gcsu.edu>

	Renamed interaction_variable_get_var to interaction_get_variable.
	Renamed interaction_variable_get_member to interaction_get_member.

	Split update_hash_entry into update_hash_entry and
	update_hash_entry_intr for interactions.

	inner_intr_loop: New function.

	covariance_accumulate_pairwise: Loop separately over variables, then interactions.

	interaction_variable_create: Make interactions type alpha when
	appropriate.

	interaction_value_create: Use value_resize to avoid copying more data than
	necessary into new interaction_value.

2009-06-15  Ben Pfaff  <blp@gnu.org>

	cairo: Use default Cairo scale factor.
	By not using cairo_scale() at all, the rest of the code, especially
	the Pango-related code, seems to make more sense.

	output: Make global variables less global.
	table_num and subtable_num were previously global variables that were
	referred to from multiple files.  Now that we want to make tables
	renderable from arbitrary contexts, though, we need to save the table
	number with the table, so this change implements that.

2009-06-15  John Darrington  <john@darrington.wattle.id.au>

	Add new functions to define subcase orderings.
	Allow subcases to be defined from a index and width,
	rather from a variable.  This avoids much of the
	need for var_create_internal.

2009-06-15  Ben Pfaff  <blp@gnu.org>

	sparse-xarray: Add missing #include <limits.h>.
	Thanks to michel <michel@cecaps.ufmg.br> for reporting the problem.

	sparse-xarray: Add missing #include <limits.h>.
	Thanks to michel <michel@cecaps.ufmg.br> for reporting the problem.

2009-06-14  Ben Pfaff  <blp@gnu.org>

	output: Make table dimension functions work in arbitrary contexts.
	Until now the function passed to tab_dim has only been called at the
	time that the table is	passed to tab_submit.  But in upcoming commits
	the table will be kept around and rendered possibly much later (by the
	GUI), so the function to tab_dim has to be sure to only use data that
	will exist at that time.  Thus, this commit makes it possible to free
	the auxiliary data passed to that function, so that in the few cases
	where it needs to keep around extra data, it can do so without leaking
	memory.  At the same time, convert the few functions that do need this
	feature to use it.

	Allow variables created by var_create_internal to have any width.
	Until now, var_create_internal has always created a numeric variable.
	In the long run we wish to phase out the use of internal variables
	entirely, but this change should help Jason get some work done in the
	short term.

2009-06-14  John Darrington  <john@darrington.wattle.id.au>

	Fix compile warning

2009-06-12  John Darrington  <john@darrington.wattle.id.au>

	Added code to plot the ROC curve

2009-06-12  Ben Pfaff  <blp@gnu.org>

	output: Use "struct string" in tabi_title in place of fixed-size buffer.
	This ensures that extra-long titles provided by the user do not overflow
	the stack.

2009-06-11  Ben Pfaff  <blp@gnu.org>

	Get rid of most global variables in outputting tables.

	cairo: Fix values of prop_em_width, fixed_width.
	For some reason prop_em_width and fixed_width were getting very small
	values, e.g. 5 and 7, when they were being pulled from the font metrics.
	These values should be more like 1024 times larger and  I can't figure
	why they aren't.  But this works around the problem for now.

	output: Get rid of unused SOM_ROW, SOM_COLUMN enums.

	output: Get rid of unused members of struct som_table_class.
	I planned to use these at one point, but no longer do.

	output: Remove static variables from manager code.

	table: Replace macros by inline functions, to improve type safety.

	Fix type mismatch between value_hash prototype and definition.
	Thanks to michel <michel@cecaps.ufmg.br> for pointing out the problem.

	Fix type mismatch between value_hash prototype and definition.
	Thanks to michel <michel@cecaps.ufmg.br> for pointing out the problem.

	Drop call to deleted function value_cnt_from_width (from debug-only code).
	Thanks to Jason for pointing out the problem.

2009-06-11  Jason H Stover  <jhs@math.gcsu.edu>

	Fixed crash caused by regressing with categorical variables

2009-06-10  John Darrington  <john@darrington.wattle.id.au>

	Added code to generate the ROC cutpoint tables.

	Add check that input to casereader_create_distinct are sorted

	Fix bug when positive and negative groups are of different lengths

	Add framework for ROC summary table

	Use the requested method for calculating the ROC AUC standard error

	Added basic calculation and display of area under the curve

	Added test for the ROC command

2009-06-09  John Darrington  <john@darrington.wattle.id.au>

	Added a new casereader translator to consolodate cases.
	This new translator creates a reader which provides
	a list of distinct cases in the input, with the weights
	consolodated, where applicable.

2009-06-09  John Darrington  <john@marilyn.intra>

	Added stub for ROC computation

2009-06-09  John Darrington  <john@darrington.wattle.id.au>

	Fixed bug inserting cases in data sheet.
	Cases were not being inserted in the correct position.

	Added documentation for the ROC command

	Added parser for the ROC command.

	Support mult-data charts and legend.
	Add support for charts to have datasets with seperate
	colours, and a legend to indicate them.

2009-06-08  Ben Pfaff  <blp@gnu.org>

	cairo: Fix header box drawing.

	cairo: Set line width.
	The default Cairo line width is much thinner than the default PSPP line
	width, and made the boxes look too pale and ephemeral.  This fixes it.

2009-06-08  Ben Pfaff  <blp@gnu.org>

	output: Add initial support for PSPP output via Cairo.
	This commit adds some support for PSPP output using Cairo.  For now, that
	means that you can produce PDF, PostScript, and SVG output to files if you
	have Cairo and Pango available.

	The output isn't perfect.  Descenders in text sometimes stick out beyond
	table cell boundaries.  Charts aren't supported.  There is no
	documentation update.  And I've tested it on a grand total of 1 (one!)
	input file.  But I'm pushing out now for anyone who's interested.

2009-06-07  Ben Pfaff  <blp@gnu.org>

	Fix handling of #! at beginning of PSPP syntax file; add regression test.
	Fixes bug #26518.

	Thanks to John Darrington for testing.

2009-06-07  Ben Pfaff  <blp@gnu.org>

	Remove spurious Makefile from src/output.

2009-06-06  Ben Pfaff  <blp@gnu.org>

	crosstabs: Fix chi-square display and add regression test.
	Bug #26739.

	crosstab: Remove struct that was defined but never used.

	crosstabs: Remove write-only variable.

	crosstabs: Fix segfault when chi-square was requested.
	Bug #26739.

	datasheet-test: Add support for testing string backing store columns.

	crosstabs: Trim unsightly spaces from titles in output.
	Unfortunately, none of the tests exercise this code, so it's hard to say
	whether it is correct.

	crosstabs: Fix memory leaks.

	argv-parser: Add assertion to find likely bugs in client code.

	datasheet: Fix bugs in datasheet_resize_column() found with new test.

	datasheet-test: Add test for datasheet_resize_column().

	datasheet-test: Fix printing of string values in error messages.

	datasheet-test: Check duplicate states before discarding them.
	By failing to check states whose hashes already appeared in the model
	checker table, the datasheet test was missing some bugs.  This commit
	changes the datasheet test code to check the state before it checks for
	the hash.

	datasheet-test: Make column widths to test configurable on command line.

	datasheet-test: Don't test null operations.
	By not testing null operations (such as inserting or deleting 0 rows or
	columns) the duration of the test is cut roughly in half, with little if
	any reduction in test coverage.

	sparse-xarray-test: Style and comment fixes.

	value: New function value_swap.

	Move datasheet test out of PSPP into a separate binary.
	When it's not difficult to do so, it is better to put tests in separate
	binaries instead of in the PSPP binaries, so that the binaries are not
	burdened with code that is not of real interest to users and to make the
	main PSPP binaries build faster.

	Make MAX_SHORT_STRING an implementation detail of the "value" code.
	MAX_SHORT_STRING used to be important.  It was referenced all over the
	source tree.  Now, there is little reason for code outside the "value"
	code itself to use it.

	Use MAX_SHORT_STRING in place of MIN_LONG_STRING.
	There is no good reason to have both of these constants, so replace all
	uses of MAX_LONG_STRING by MAX_SHORT_STRING.

	Fix portable file reader use of long strings.
	This code hadn't been converted to the new "union value" representation,
	where a single "union value" always represents a whole data item.  This
	commit fixes that.

	Get rid of uses of MAX_SHORT_STRING in Gnumeric and PostgreSQL readers.
	MAX_SHORT_STRING is now intended to be an implementation detail of the
	value code.  There is no real reason that the Gnumeric or PostgreSQL
	readers need to use it, so make them use their own constants instead.

	Implement missing values for long string variables.

	Fix test failure introduced along with parse_value().

	sys-file-reader: Fix memory leak.

	Add support for value labels on long string variables.

2009-06-06  Ben Pfaff  <blp@gnu.org>

	New function parse_value() for parsing a value of specified width.
	Occasionally a value of a given width needs to be parsed from syntax.
	This commit adds a helper function for doing so and modifies a few pieces
	of code to use it.  Probably there are other places where it would be
	useful that could not easily be found with "grep".

	This commit also renames the range-parser code to value-parser and puts
	the new function in there, as a natural generalization.

	Suggested by John Darrington.

2009-06-06  Ben Pfaff  <blp@gnu.org>

	Make value_set_missing(), etc. tolerate values of width -1.
	In some circumstances a value of width -1 crops up, e.g. when a case is
	made from a dictionary that has had a variable deleted in the middle.
	Such a value has no content at all.  In the long run it should be possible
	to get rid of these values entirely--their presence is a wart--but for now
	the case and value code needs to tolerate them.

	This fixes a segfault in the GUI when inserting a new case when the
	datasheet case has a column with width -1 (due to deletion of a variable),
	which was caused by case_set_missing() calling value_set_missing() for
	the -1 width variable, which in turn was writing through an invalid
	pointer.

2009-06-06  John Darrington  <john@darrington.wattle.id.au>

	Prevent invalid variable widths in variable sheet.

2009-06-06  Ben Pfaff  <blp@gnu.org>

	Remove debug printfs that escaped from my local tree.

	gui: Fix segfault when pushing Del on a long string variable cell.
	Thanks to John Darrington for reporting the problem.

2009-06-06  Ben Pfaff  <blp@gnu.org>

	Change "union value" to dynamically allocate long strings.
	Until now, a single "union value" could hold a numeric value or a short
	string value.  A long string value (one longer than MAX_SHORT_STRING)
	required a number of contiguous "union value"s.  This situation was
	inconvenient sometimes, because any occasion where a long string value
	might be required (even if it was unlikely) required using dynamic
	memory allocation.

	With this change, a value of any type, regardless of whether it is numeric
	or short or long string, occupies a single "union value".  The internal
	representation of short and long strings is now different, however: long
	strings are now internally represented by a pointer to dynamically
	allocated memory.  This means that "union value"s must now be initialized
	and uninitialized properly, to ensure that memory is properly allocated
	and freed behind the scenese.

	This change thus has a ripple effect on PSPP code that works with values.
	In particular, code that deals with cases is greatly changed, because a
	case now needs to know the type of each value that it contains.  Thus, a
	new concept called a "case prototype", which represents the type and
	width of each value within a case, is introduced, and every place in PSPP
	that creates a case must now create a corresponding prototype to go with
	it.  This is why this commit is so big.

	As part of writing up this commit, it became clear that some code was poor
	enough that it needed to be rewritten entirely.  Therefore, CROSSTABS and
	T-TEST are almost completely modified by this commit.

2009-06-06  Ben Pfaff  <blp@gnu.org>

	output: Add auxiliary data parameter to tab_dim.
	Until now, the tab_dim function has not provided any way to pass auxiliary
	data to the table dimensioning function.  This commit adds this ability
	and updates all the callers of tab_dim to do so.

	New data structure sparse_xarray.

	New wrapper for access to temporary files.

	model-checker: Add command-line parser for model checking options.
	This adds a parser for command-line options to configure a set of
	mc_options for running the model checker.  It is used by an upcoming test
	for the sparse_xarray.  It might also make sense to break the datasheet
	tests out of PSPP into a separate program using this parser.

2009-06-06  Ben Pfaff  <blp@gnu.org>

	Implement new command-line argument parser.
	glibc has two option parsers, but neither one of them feels quite
	right:

	  - getopt_long is simple, but not modular, in that there is no
	    easy way to make it accept multiple collections of options
	    supported by different modules.

	  - argp is more sophisticated and more complete, and hence more
	    complex.  It still lacks one important feature for
	    modularity: there is no straightforward way for option groups
	    that are implemented independently to have separate auxiliary
	    data,

	The parser implemented in this commit is meant to be simple and
	modular.  It is based internally on getopt_long.

	The initial use for this option parser is for an upcoming commit of a test
	program that has some of its own options and some from the model checker,
	but it should also be appropriate for PSPP and PSPPIRE if anyone wants to
	adapt them to use it.

2009-06-06  Ben Pfaff  <blp@gnu.org>

	model-checker: Don't discard error states.
	Even if a state with an error is a duplicate, we don't want to discard it,
	because then we lose information about bugs.

	model-checker: Revise advice on checking for duplicates.
	Until now the documentation on the model checker has advised checking for
	a duplicate state before checking for consistency, but in fact this can
	cause bugs to be missed if only some paths to a given state yield
	incorrect results.  So revise the advice to check for consistency before
	checking for a duplicate state.

	model-checker: Add more progress functions.
	The model checker supports "progress functions" that report the current
	status of the model checking run.  Until now the implementation only
	exported a single progress function that printed a line of dots across
	stderr.  This commit moves the "fancy" progress function that was
	previously part of the PSPP language code into the model checker itself
	and adds an even more verbose progress function as well.

	model-checker: Move summary printing function into model checker.
	There is no reason that the model checker itself should not be able to
	print a summary of its results.  Until now, this code was buried in the
	PSPP language code, but the model checker itself is a better place for it.

2009-06-06  Ben Pfaff  <blp@gnu.org>

	model-checker: Kill dependencies and move back to libpspp.
	Commit 95b074ff3 "Moved the datasheet testing code out of
	src/{libspp,data}" moved the model-checker implementation from libpspp
	into language/tests because it depended on math/moments.h and
	data/val-type.h, which violates the dependency structure of the PSPP
	libraries.

	However, now I want to use the model checker in a test that should not
	need to use anything from language/tests, so this commit eliminates these
	dependencies and moves the model checker back to src/libpspp.

2009-06-06  Ben Pfaff  <blp@gnu.org>

	sparse-array: Simplify code slightly.
	Instead of checking whether the key is in range in each caller of
	find_leaf_node, do it in find_leaf_node itself.  This also allows checking
	the cache before checking whether the key is in range, which might be an
	optimization.

	sparse-array: Improve iteration interface.
	The sparse_array_scan function only supports iteration in the forward
	direction and its interface is somewhat awkward.  This commit replaces it
	by four new functions that allow iteration in both forward and reverse
	directions and have a more conventional interface.

	sparse-array: Use __builtin_ctzl on GCC 4.0 or later, as an optimization.
	This should be a worthwhile optimization in many cases, because
	__builtin_ctzl compiles to a single machine instruction on x86, whereas
	the generic implementation compiles to several.

	range-set: New functions range_set_last and range_set_prev.
	These are useful for iterating through a range set in reverse order.

	range-set: Add new function range_set_scan().

	range-set: Inline some simple functions.
	Some of the range-set functions are very simple and worth inlining, so
	move the definitions of those functions into range-set.h.  This required
	moving the definition of struct range_set and struct range_set_node into
	the header.  Some of the functions used internally by those functions had
	to be moved too, and renamed as well since for internal use in range-set.c
	their names did not respect the namespace.

	range-set: Add test coverage for range_set_destroy(NULL).
	"gcov -b" showed that range_set_destroy() was never called with a NULL
	argument.  There's no reason not to test that too (although of course it
	is unlikely to be broken).

	range-set: New function range_set_allocate_fully.

	Delete CORRELATIONS skeletal parser.
	This code didn't do anything useful, it just parsed syntax.  We can
	resurrect it when someone wants to implement CORRELATIONS later.

	pool: New function pool_strdup0.
	This function is the pool analogue of xmemdup0, except that it is only
	appropriate for use with strings.

	datasheet: Drop false dependency on md4.h.
	datasheet-check.c doesn't use anything from md4.h, so there's no point in
	including it.

	perl-module: Better document "make test" requirements.

	t-test: Move 'mode' variable from file scope into cmd_t_test().

	t-test: Move 'cmd' variable from file scope into cmd_t_test().
	This variable was only used inside cmd_t_test() anyhow.

	t-test: Remove write-only variable.

2009-06-03  Jason H Stover  <jhs@math.gcsu.edu>

	Moved static is_origin from design_matrix.c to category.c: cat_is_origin.

2009-05-17  John Darrington  <john@darrington.wattle.id.au>

	Fix incorrect word order

	Remove whitespace before footnotes

	Correct grammar

	Change examples using heights to be all in millimetres

	Delete '*' from DATA LIST examples

	Mention that two juxtapose LIST keywords are intentional

2009-05-16  John Darrington  <john@darrington.wattle.id.au>

	Fix misaligned menu items

	Added a tutorial chapter to the manual.

2009-05-15  John Darrington  <john@darrington.wattle.id.au>

	Fix bug inserting rows and columns and rename state variable.
	The code in psppire-data-editor was inspecting the variable
	called "state" on the GtkWidget class whereas it should have
	been looking at the PsppireSheet class.

	To avoid any future confusion, PsppireSheet's "state" variable
	has been renamed to select_status.

2009-05-15  John Darrington  <john@darrington.wattle.id.au>

	Remove unused code

	Updated dutch translation.  Thanks to unkonwn-1
	Also regenerated en_GB.po

	Correct typo in command line argument string.
	Thanks to Michel Boaventura for reporting this.

2009-05-14  John Darrington  <john@darrington.wattle.id.au>

	Remove gratuitous call to change_active_cell.
	This caused data from the previous cell to
	be transfered to the new cell.  Fixes bug #26568

	Remove unneeded object members

2009-05-13  John Darrington  <john@darrington.wattle.id.au>

	Ensure that windows opens the right file for output.
	Thanks to Michel Boaventura for reporting this problem.
	Fixes bug #26542

	Correct default_output_path function on Windows.

2009-05-12  John Darrington  <john@darrington.wattle.id.au>

	Don't create histograms for string variables.
	Closes bug #26536

	Relocate the locale directory.
	Thanks to Michel Boaventura for reporting this and
	for providing the patch.  Closes bug #26543

2009-05-11  Ben Pfaff  <blp@gnu.org>

	data-parser: Treat " ," the same as ",".
	The data parser (used e.g. by DATA LIST) was unintentionally treating
	soft separators (e.g. white space) followed by a hard separator (e.g.
	a comma) as an empty field, but in fact it should be treated as just a
	single separator.  This fixes it and adds a test.

	Thanks to pascal barbedor <pbarbedor@gmail.com> for reporting the problem.

2009-05-09  John Darrington  <john@darrington.wattle.id.au>

	Merge commit 'origin/stable'

	For consistency, use gnulib's memory allocation functions in the gui.

2009-05-08  John Darrington  <john@darrington.wattle.id.au>

	Ensure that NUMERIC's format (if any) is a valid output format.
	Thanks to Pascal Barbedor for reporting this problem.

	Fixed crash calculating trimmed mean with missing values.
	Closes bug  #26404

2009-05-04  Jason H Stover  <jhs@math.gcsu.edu>

	Remove call to var_set_width

2009-05-01  Jason H Stover  <jhs@math.gcsu.edu>

	Allocate adequate space for permutation

2009-04-29  Jason H Stover  <jhs@math.gcsu.edu>

	Moved is_origin and get_exact_subscript to design-matrix.[ch]

2009-04-29  Jason H Stover  <jhs@math.gcsu.edu>

	covariance-matrix.c: (is_covariance_contributor) Removed unnecessary recursion.
	covariance-matrix.c (is_origin): Do not count a numeric variable as
	the origin. Call is_origin only for categorical variables.

	covariance-matrix.c (ordered_match_nodes): New function.

	covariance-matrix.c (match_nodes): Use bitwise operators and
	ordered_match_nodes for hashing instead of so many ifs.

	covariance-matrix.c (hash_numeric_alpha): Use hash_value_short to hash
	combinations of numeric and categorical variables.

	covariance-matrix.c (get_value_from_subscript): New function to match
	values and columns in a design matrix.

	covariance-matrix.c: Removed unused design matrix struct sums from
	struct covariance matrix. To get the means, use struct moments
	instead.

	covariance-matrix.c (covariance_accumulator_to_matrix): Use
	design_matrix_set_element instead of covariance_matrix_insert. Drop
	unused function covariance_matrix_insert.

	covariance-matrix.c (covariance_accumulator_hash): Use hash_bytes instead of hsh_hash_bytes.

2009-04-28  John Darrington  <john@darrington.wattle.id.au>

	Fix compilation error on Cygwin.
	Fixes bug #26379

2009-04-23  John Darrington  <john@darrington.wattle.id.au>

	Added Dutch translation. Thanks to unknown-1

	Fix bug where data sometimes got erroneously copied between cells

2009-04-22  John Darrington  <john@darrington.wattle.id.au>

	Remove unused code

	Fix GUI bug risizing columns.
	Remove the clip rectangle after showing the cell border so
	that it doesn't interfere with other operations.

	Compensate cell border for gridline thickness

2009-04-22  John Darrington  <john@darrington.wattle.id.au>

	Merge commit 'origin/stable'
	Conflicts:

		src/ui/gui/output-viewer.c

2009-04-22  John Darrington  <john@darrington.wattle.id.au>

	Replace BORDER_WIDTH macro with appropriate cell_padding parameters

2009-04-20  John Darrington  <john@darrington.wattle.id.au>

	Revert "Made psppire-conf thread safer"
	This reverts commit 2d983f3e5bd2d5f531cbcbdcebe078034ddb8955.

	Revert "Make psppire-axis thread safer"
	This reverts commit 18aa57536d6eac0b0562f31d9a7a01605c3d51ad.

2009-04-19  John Darrington  <john@darrington.wattle.id.au>

	Made psppire-conf thread safer

	Make psppire-axis thread safer

	Separate the execute_syntax function into its own file.

	Whitespace changes only.
	Make this file appear sane when viewed under emacs.

2009-04-16  John Darrington  <john@darrington.wattle.id.au>

	Continue button to grab default on realization

	Grab default for close button on message dialog

	Hide tooltip when leaving sheet

	Unmap tooltip when sheet is unmapped

	remove superfluous tests

2009-04-16  John Darrington  <john@darrington.wattle.id.au>

	Improve the style handling of the column/row title buttons.
	It seems that the style of the button wasn't `attached' before
	it was used.  Further, use of the "buttondefault" detail on
	gtk_paint_box made wierd looking buttons with some themes.

	I don't pretend to fully understand all this, but these changes
	seem to be an improvement.

2009-04-15  John Darrington  <john@darrington.wattle.id.au>

	Update some comments

	Avoid warnings when opening a new system file.

	Hold the thread lock in a timer callback

2009-04-14  John Darrington  <john@darrington.wattle.id.au>

	Make the gui more thread safe

2009-04-13  John Darrington  <john@darrington.wattle.id.au>

	Ensure that setlocale (LC_MESSAGES is called when appropriate.
	The wrong preprocessor macro was being tested before calling
	setlocale (LC_MESSAGES, "") which resulted in translations not
	being loaded.

	Fixed bug in q2c when munging hyphenated strings.
	Q2c wasn't terminating strings generated by its munge
	function, resulting in garbage being placed into generated
	code.  Thanks to Michel Boaventura for reporting this.

	Fixed bug opening the find dialog.
	Thanks to Michel Boaventura for reporting this.

2009-04-12  John Darrington  <john@darrington.wattle.id.au>

	Use replacement rename function from gnulib

2009-04-11  John Darrington  <john@darrington.wattle.id.au>

	Tolerate the inability to convert character encodings

	Change g_print to g_warning

2009-04-09  Ben Pfaff  <blp@gnu.org>

	Use Bob Jenkins lookup3 hash instead of FNV.
	The Jenkins lookup3 hash is superior to FNV in collision resistance,
	avalanching, and performance on systems that do not have fast
	multiplication.  It also provides a good way to combine the result of
	a previous hashing step with the current hash, using its "basis" argument.
	This commit replaces the PSPP implementation of FNV with the Jenkins
	lookup3 hash and updates all the current users.

	In addition, John Darrington pointed out that commit dd2e61b4a
	"Make create_iconv() properly distinguish converters by name"
	unintentionally introduced gratuitous hash collisions, by causing
	all converters where tocode and fromcode were the same to hash to
	value 0, and converters where tocode and fromcode were swapped to
	hash to the same value as each other.  Using the "basis" argument to
	the Jenkins hash properly, instead of just attempting to combine
	hash values with XOR, fixes this problem.

2009-04-09  Ben Pfaff  <blp@gnu.org>

	NPAR TESTS: Consistently order variables in summary statistics.
	The set of variables in the NPAR TESTS specs structure was ordered
	randomly, according to however the hash function happened to arrange them.
	Sort them by variable name, instead, so that they always appear in
	alphabetical order in, e.g., descriptive statistics output.

	The particular hash function PSPP uses now tends to order variables
	alphabetically anyhow.  The next commit changes the PSPP hash functions,
	so fixing this in advance prevents having to update any test output.

2009-04-09  John Darrington  <john@darrington.wattle.id.au>

	Fix some compiler warnings

	Implemented the sign test.
	Added an implementation of the SIGN test for the NPAR TESTS
	command.  Closes patch #6801

2009-04-08  John Darrington  <john@darrington.wattle.id.au>

	Fixed crash on quit

	Use the replacement rename function from gnulib.
	Use the gnulib replacement rename function, to
	overcome problems on certain systems saving a
	file when that filename already exists. Closes bug #25795

2009-04-07  Ben Pfaff  <blp@gnu.org>

	Fix memory leak in cmd_data_list().

	Fix a few typos and capitalization errors in developers guide.

	SET LOCALE: Don't use lex_tokstr() after skipping to next token.
	The return value from lex_tokstr() is only valid until the next call to
	lex_get() (or another function that changes the current token), so don't
	advance past the token until we're done with its string value.

2009-04-07  Ben Pfaff  <blp@gnu.org>

	Make create_iconv() properly distinguish converters by name.
	The code in create_iconv() assumed that every pair of different converters
	had a different hash value.  This is a bad assumption: eventually, we will
	be unlucky, and two different converters will hash to the same value, and
	we will get a bad conversion.  So we have to compare (and store) the
	names of the codes that each converters converts to and from.

	Also, compute the hash value without making an extra copy of fromcode
	and tocode.

2009-04-07  Ben Pfaff  <blp@gnu.org>

	Add "x" prefix to calls to plain malloc(), calloc(), strdup(), realloc().
	In review commit 503f53bfdde "Read dictionary encoding from data files"
	I noticed uses of plain strdup() (not xstrdup()).  Some greps showed that
	there were several other uses of strdup(), as well as calloc(), malloc(),
	and realloc(), in the source tree.  This commit adds "x" prefixes to each
	of them, to ensure proper error handling.

	Remove redundant test in lex_is_idn().
	Commit 90f346cc0 "Made var_is_valid_name more permissive" made characters
	with values above 127 valid in identifiers by allowing them in
	lex_is_id1() and lex_is_idn(), but since the latter includes the former
	in its test the addition there is redundant and can be eliminated.

2009-04-07  John Darrington  <john@darrington.wattle.id.au>

	Merge commit 'origin/master' into charset
	Conflicts:

		src/ui/gui/psppire-data-editor.c

2009-04-07  John Darrington  <john@darrington.wattle.id.au>

	Fix problems saving data files with non-ascii filenames.
	Convert filenames to the system encoding before stuffing into
	syntax strings.

	Fixed problem saving syntax files with non-ascii names.
	The function save_editor_to_file now takes a filename
	in Glib filename encoding.

2009-04-07  John Darrington  <john@darrington.wattle.id.au>

	Merge commit 'origin/stable'
	Conflicts:

		src/language/stats/crosstabs.q
		src/language/stats/examine.q
		src/language/stats/frequencies.q
		src/language/stats/oneway.q
		tests/command/examine-extremes.sh
		tests/command/examine.sh

2009-04-06  John Darrington  <john@darrington.wattle.id.au>

	Issue warning when combining files of distinct encodings

	Implemented the ENCODING subcommand to DATA LIST.
	Implemented the ENCODING subcommand which enables syntax
	authors to tell pspp the encoding of a text file from which
	data is to be read.

	Allow users to set the precision of output statistics.
	Instead of hard coding the width and decimals of output
	numbers, respect the default format in most instances.
	Counts are normally displayed with the format of the weight
	variable, if any.  Closes patch #6785

	Added a cell-padding parameter to the sheet.
	Added a cell-padding paramter of type GtkBorder which specifies the
	space between a cell's contents and the border.  The text is no
	longer squashed right up against the left hand edge.

2009-04-05  John Darrington  <john@darrington.wattle.id.au>

	Merge psppire-axis and psppire-axis-impl
	There's only one implementation of psppire-axis now,
	and having the implementation seperated from the interface
	in a brige configuration just adds too much complexity.

2009-04-03  John Darrington  <john@darrington.wattle.id.au>

	Binomial tests can now be specified by a cutpoint.
	This change extends the NPAR TEST /BINOMIAL subcommand
	so that binomial tests can be specified by cutpoint.
	The manual had previously, incorrectly stated that this
	was supported.  Now it actually is.  Fixes bug #26056

2009-04-02  John Darrington  <john@darrington.wattle.id.au>

	Another one I forgot ...

	Oops.  Add new file.

	Add a dialog box for the reliability command.

	Add PsppireDictView to glade library.
	Make the PsppireDictView widget available to
	users of glade.

	Merge branch 'master' of ssh://jmd@git.sv.gnu.org/srv/git/pspp

2009-04-01  John Darrington  <john@darrington.wattle.id.au>

	Update pspp developer's guide with new i18n changes.

	Allow non-ascii characters to be entered as variable names.
	Previously, only ascii could be used in the name of a variable,
	so the variable sheet did not bother converting.  Now we have
	to convert the encoding.

	Use a system file's "character code" to set the encoding.
	When reading a system file, use the "character code" as a
	fallback to set the dictionary's character encoding.  If present,
	record 7, subtype 20 will override this parameter.

	New datasets to use the current default encoding.
	When creating a new dataset, its dictionary is now set
	to the current default encoding (which can be changed
	using SET LOCALE).

	Fixed bug where piecharts with many segments crashed.
	Make sure that we don't index beyond the bounds of the
	data_colour array.

2009-04-01  Jason H Stover  <jhs@math.gcsu.edu>

	covariance_matrix.c (get_n_rows): New function to compute the number of rows in the covariance matrix.

2009-03-31  John Darrington  <john@darrington.wattle.id.au>

	Merge commit 'origin/master' into charset

	Implemented the SET LOCALE='...' command.
	Allow the user to set the default character encoding.

	Refactor locale initialisation.
	Created a common i18n_init function that both
	the GUI and terminal can use, instead of each
	doing it their own way.

	Merge commit 'origin/stable'

2009-03-30  John Darrington  <john@darrington.wattle.id.au>

	Fixed bug writing portable files.
	Don't append slash to sysmis values when writing portable
	files.  Fixes bug #26034

2009-03-30  Jason H Stover  <jhs@math.gcsu.edu>

	design_matrix.c: New accessor functions design_matrix_get_element and design_matrix_set_element.
	covariance_matrix.c: New accessor function
	covariance_matrix_get_element. Use new accessor functions
	design_matrix_get_element and design_matrix_set_element.

2009-03-29  John Darrington  <john@darrington.wattle.id.au>

	Merge branch 'refs/heads/charset' of ssh://jmd@git.sv.gnu.org/srv/git/pspp into charset

	Add code to read character encoding to dissect-sysfile.

	Document record 7, subtype 20 in system file format.
	Add information about the character encoding record to
	the developer's reference guide.

	Set the dictionary's encoding when reading postgresql data.

2009-03-29  Jason Stover  <jhs@math.gcsu.edu>

	covariance-matrix.c (covariance_accumulator_to_matrix): Use sum_i and sum_j to compute products of means. Store the sums of variables in cov->sums, rather than storing the means.

2009-03-29  John Darrington  <john@darrington.wattle.id.au>

	Set dictionary's encoding when reading gnumeric files

2009-03-28  John Darrington  <john@darrington.wattle.id.au>

	Write encoding to system files.
	Write the encoding to record 7(20) when saving.

	Ensure value labels dialog doesn't grow unreasonably large

	Fix crash running two consecutive examine commands.
	Re-initialise list in the dynamically instead of
	relying on the static initialiser.  Fixes bug #25903

	Avoid calling iconv_open on each conversion.
	Instead of creating a convertor each time a string
	needs to be re-encoded, we now keep a hash of convertors
	keyed by the permutation of input/output encodings.

2009-03-28  Jason Stover  <jhs@math.gcsu.edu>

	covariance-matrix.c (get_sum): New function to compute means during loop over covariance matrix.
	covariance-matrix.c (covariance_accumulator_to_matrix): Use get_sum to
	compute the means.

2009-03-28  John Darrington  <john@darrington.wattle.id.au>

	Display a file's encoding in SYSFILE INFO.
	Add a file's encoding to the information given by SYSFILE INFO.

	Convert encoding even if encodings are identical.
	recode_string must continue, even if the source and
	target encodings are identical, because invalid bytes
	in the source string need to become '?' to avoid
	later problems.

	Pass dict to name_to_string and label_to_string.
	Oops, forgot to replace these NULLs.

2009-03-27  John Darrington  <john@darrington.wattle.id.au>

	Remove LIB_CLOSE variables from linker options.
	Gnulib used to define @LIB_CLOSE@ but no longer does,
	so this variable is no longer needed nor appropriate.

	Convert files named on the command line to filename encoding.
	Files specified on the command line must be converted to the
	"filename" encoding (whatever it may be) otherwise some systems
	will not know they exist.  Tested by Michel Boaventura.
	Partially fixes bug #26023

2009-03-26  John Darrington  <john@darrington.wattle.id.au>

	Test for NULL before calling strdup

	Read dictionary encoding from data files.
	If record 7 subtype 20 exists, use it to set the encoding of the
	dictionary when reading a file.

2009-03-26  Ben Pfaff  <blp@gnu.org>

	Fix memory leak in wilcoxon_execute().

2009-03-26  Ben Pfaff  <blp@gnu.org>

	Fix error message for bad characters in syntax files.
	Before this commit, on systems where "char" is a signed type,
	formatting a char with %o would sign-extend to the width of "int",
	so that a typical error message would look like:
	   Bad character in input: `\37777777605'.

	With this commit, the value gets zero-extended, producing the more
	sensible error mesage:
	   Bad character in input: `\205'.

2009-03-26  John Darrington  <john@darrington.wattle.id.au>

	Made var_is_valid_name more permissive.
	Allowed lex_is_id1 and lex_is_id2 to match non-ascii characters,
	in addition to the others it tests for.

	Redesign the character re-encoding code.
	Remove the statically allocated convertors,
	instead, assume that the encoding of variables,
	data and associated metadata is stored in the dictionary.

	Removed some unused features from src/libpspp/i18n.c and src/libpspp/i18n.h

2009-03-24  John Darrington  <john@darrington.wattle.id.au>

	Added the "Display Data File Information" item.
	Added a menuitem to the File menu which calls either
	DISPLAY DICTIONARY or SYSFILE INFO per spss.

	Set the text import dialog's default button.
	Grab the focus of the appropriate button of the
	text import dialog, when a new page is prepared.
	This makes it much easier to use without a mouse.

	Added #include <config.h> to files as appropriate.
	Thanks to Michel Boaventura for reporting this problem.

2009-03-23  John Darrington  <john@darrington.wattle.id.au>

	Merge branch 'master' of ssh://jmd@git.sv.gnu.org/srv/git/pspp

	Fix bug in text-import-dialog

	Convert filename on confirmation dialog

	Show error dialog if syntax file is not readable.
	Popup a dialog box, if a syntax file cannot be
	opened for any reason.

	Convert filename encodings when opening files.
	On w32, filenames have to be converted from utf8 to
	the libc encoding before passing to the lexer.

2009-03-22  John Darrington  <john@darrington.wattle.id.au>

	Initialise description on init.
	Windows' description parameter must not be
	NULL.  So initialize it to the empty string.

	Allow non-ascii characters to be entered into the variable and data sheets.
	Convert strings from utf8 to the pspp (data) locale´s encoding before passing
	to the model.

2009-03-21  John Darrington  <john@darrington.wattle.id.au>

	Avoid potential bugs with setlocale's return value.
	Use strdup to copy all return values from setlocale,
	since it's statically allocated.

2009-03-20  John Darrington  <john@darrington.wattle.id.au>

	Fix crash when running under windows with non-english locale
	Fixed a bug which manifested itself when running a Mingw compiled
	binary with a non-english locale.  setlocale returns a statically
	allocated string, so it's valid only until the next call to setlocale.
	Thanks to Michel Boaventura for reporting and helping to diagnose this
	problem.

2009-03-19  John Darrington  <john@darrington.wattle.id.au>

	Fix corrupted .sav files on w32 builds
	Added the O_BINARY flag to the mode of files
	created with open, so that lines aren't appended
	with extraneous characters, thus corrupting .sav
	files.

	Added missing '#include <config.h>' lines.
	Added these missing #includes at top of *.c files.
	Thanks to Michel Boaventura for reporting this.

2009-03-18  John Darrington  <john@darrington.wattle.id.au>

	Change name of config parameter

	Rename the "model" property to "dictionary"

2009-03-17  John Darrington  <john@darrington.wattle.id.au>

	Fixed crash which occured when deleting dictionaries which had variable labels

	Correct typo in BINOMIAL section of user manual.
	Thanks to Erik Frebold for pointing out this problem.
	Closes bug #25892

	Merge branch 'master' of ssh://jmd@git.sv.gnu.org/srv/git/pspp

	Fix bug saving window positions

	Add a popup menu to the PsppireDictView object.
	Currently this menu contains only one item, which
	lets you choose between labels or values.

	Remove some unnecessary #includes

	Namespace police duty.
	Changed a number of instances of G_TYPE_ to PSPPIRE_TYPE_

	Delete extraneous characters from comment.
	Thanks to Ben Pfaff for pointing this out.

	New object PsppireDictView
	Created a new object PsppireDictView, which derives
	from GtkTreeView for the purpose of displaying a
	dictionary.  Replaces much of the functionality in
	dict-display.c

2009-03-16  John Darrington  <john@darrington.wattle.id.au>

	Remove preprocessor condition

	Make psppire_sheet_get_attributes a private function

	Use GtkHPaned in variable info dialog
	Moved variable info dialog spec from psppire.glade into
	its own file.  Added a "sliding" property to PsppireDialog
	which causes Gtk[VH]Paned to be used instead of Gtk[VH]Box.
	Set the sliding property for the variable info dialog.

2009-03-16  Jason H Stover  <jhs@math.gcsu.edu>

	covariance-matrix.c: Add matrices to store valid sample sizes and products of means in struct covariance_matrix.
	covariance-matrix.c (update_ssize): New function

	covariance-matrix.c (covariance_accumulator_to_matrix): Store valid
	sample sizes and products of means, then use them to compute the
	entries of the covariance matrix after passing through the
	hash. Return void.

2009-03-16  John Darrington  <john@darrington.wattle.id.au>

	Indicate filtered cases in data sheet.
	Add feature to indicate filtered out cases
	on data sheet.  Closes bug #20828

2009-03-15  John Darrington  <john@darrington.wattle.id.au>

	Prevent wierd focusing issues when changing cell

	Emit variable callback even if label is null.
	When a label was set to null, previously no callback
	was emitted.  Fixes bug #25872

	Focus var/data sheet after switching tabs

	Config option to prefer variable labels vs. names
	Added user config option to select whether dictionary
	treeviews in dialog boxes should prefer variable labels
	over names.   Default is names.

2009-03-14  John Darrington  <john@darrington.wattle.id.au>

	Merge branch 'master' of ssh://jmd@git.sv.gnu.org/srv/git/pspp

	Save windows' maximized status as well as their geometry.

2009-03-13  Jason H Stover  <jhs@math.gcsu.edu>

	covariance-matrix.c (is_origin): New function
	covariance-matrix.c (get_exact_subscript): New function

	covariance-matrix.c (covariance_matrix_insert): Use get_exact_subscript.

	covariance-matrix.c (is_covariance_contributor): New function.

	covariance-matrix.c (covariance_accumulator_to_matrix): Iterate over
	the rows and columns of the covariance matrix, and the hash table to
	accumulate values for each entry of the matrix.

	design-matrix.c (design_matrix_get_n_cols): New function

	design-matrix.c (design_matrix_get_n_rows): New function

2009-03-12  John Darrington  <john@darrington.wattle.id.au>

	Fix critical when opening fonts dialog

	Don't proxy button-open to action_data_open.
	Connect to the clicked signal instead, because we
	don't want the icon, label etc. to assume that of
	the action.  Closes bug #25817

	Fixed problems getting accelerator keys to work in data editor

	Split data-editor.glade into two files.
	Seperated the glade specification of the data editor
	widgets from those of the popup dialogs in the
	variable sheet.

	Re-arrange data-editor widgets.
	Made the data editor somewhat more HIG
	compliant.

2009-03-11  John Darrington  <john@darrington.wattle.id.au>

	Fix generation of email address

	Remove repeated '@setfilename' lines from Texinfo source.
	Remove lines '@setfilename ignored' from .texi files.
	The Texinfo manual doesn't mention that more than
	one @setfilename argument is allowed, and having
	more than one seems to produce confusing docbook
	output.

	A simpler way to avoid one makeinfo bug

	Convert manual to docbook and load that in yelp.
	Instead of yelp loading info files, have it load
	docbook xml files instead.

2009-03-10  John Darrington  <john@darrington.wattle.id.au>

	Include gtk-builder-convert to process .glade files
	The gtk-builder-convert shipped with some older versions
	of gtk+ has proved problematic.  This change includes a
	"known good" version, and builds using it.

	Use double precision floats throughout psppire-axis-*
	Change some instances of float to double, to avoid
	loss of precision when calculating pixel positions.
	Closes bug #25099

2009-03-07  John Darrington  <john@darrington.wattle.id.au>

	Allow make clean to work without perl-module/Makefile

2009-03-07  John Darrington  <john@darrington.wattle.id.au>

	Fixed a bug reading empty strings from Postgres databases.
	Fixed a bug in the Postgresql import feature, where a segfault
	would occur when a reading a database which contained string
	fields with only null, or zero length values.

	Thanks to Joerg Schmengle for reporting this.

2009-03-07  John Darrington  <john@darrington.wattle.id.au>

	Default response to be same as Cancel

	Made the save-before-quit dialog more HIG compliant.
	Thanks to jeff<kiddo> for the suggestion.  Closes patch #6749

	Rename identifier and add timestamp for unsaved flag.

	Better abstraction of the unsaved window status.
	Implementations can now only set unsaved to true.
	Only the abstract base class can set it to false,
	which it does when the window is saved.

2009-03-06  John Darrington  <john@darrington.wattle.id.au>

	Add libpspp-core as a dependency of the perl module

	Remove some unnecessary casts

	Remove some unused variables

2009-03-05  John Darrington  <john@darrington.wattle.id.au>

	Tab key now moves to next row, upon end of line.
	This change alters the behaviour of the tab key
	in the variable and data sheet.  When using the
	tab key, if the last cell in a row is encountered,
	it will now cause the active cell to move to the
	first cell in the next row.  Fixes bug #25168

	Add new dependency to gui-tools

	Fix problem focusing variable sheet

2009-03-04  John Darrington  <john@darrington.wattle.id.au>

	Refactor Data and Syntax Loading

	Improve behaviour of recent file lists.
	The code now deletes an item from the recent list, after
	an unsuccessfull attempt to open it.
	They are now sorted in most recently used order.

2009-03-03  John Darrington  <john@darrington.wattle.id.au>

	Added some spacing between widgets

	Convert variable name to utf8 before displaying in tooltips

	Save and recall window geometry for dialog boxes

	Convenience functions for setting/retrieving window geometry.
	Created a pair of convenience functions in psppire-conf.c to
	perform saving and loading of window geometry.  Updated
	psppire-window.c to use them.

	Added a simple singleton object for user preference storage.

2009-03-02  John Darrington  <john@darrington.wattle.id.au>

	Added stock icon to About menuitem

2009-03-02  John Darrington  <john@darrington.wattle.id.au>

	Merge branch 'master'; commit 'origin/stable'
	Conflicts:

		src/math/linreg.h
		src/ui/gui/psppire-data-editor.c

2009-03-02  John Darrington  <john@darrington.wattle.id.au>

	Set icon for text import assistant window

	Remove reference to 'struct data_editor' which is a type which no longer exists

	Remove preprocessor condition which could no longer be satistified

	Added a .desktop file.
	Added a desktop file for the benefit of operating systems which use them.
	Thanks to James R. Van Zandt for providing this.

	Rewrote the recent file manager stuff

2009-03-01  John Darrington  <john@darrington.wattle.id.au>

	Rename get_object_assert to get_action_assert

	Save window contents on closing.

2009-02-26  John Darrington  <john@darrington.wattle.id.au>

	Remove references to libglade from config and documentation

2009-02-24  John Darrington  <john@darrington.wattle.id.au>

	Fix crash which occurred under mingw.
	Thanks to Michel Boaventu for reporting and diagnosing this problem.

	Fix display of window icon

	Change argument type of pspp_window_register_foreach

	Prompt for save on closing data window

	Quit the application after closing the last window

	Made button-box an abstract type

	Made psppire-window an abstract type

2009-02-23  John Darrington  <john@darrington.wattle.id.au>

	preregister custom widgets so that GtkBuilder can find them

	Initialise the quote_combobox list manually.
	GtkBuilder seems incapable of setting a GtkListStore
	containing single quote characters.  So do this in C.

	Remove last vestiges of libglade dependencies

	Remove glade version of connect_help

	Remove used #include

	Convert descriptives dialog to GtkBuilder

	Merge branch 'master' of ssh://jmd@git.sv.gnu.org/srv/git/pspp

2009-02-23  Jason H Stover  <jhs@math.gcsu.edu>

	covariance-matrix.c: (covariance_accumulator_hash) For categorical variables, eliminate temporary string by using hsh_hash_bytes and XOR.

2009-02-23  John Darrington  <john@darrington.wattle.id.au>

	remove .glade files from installed file list

	fix warnings

	Merge branch 'master' of ssh://jmd@git.sv.gnu.org/srv/git/pspp

	Remove remaining GladeXML references from psppire-data-window.c

2009-02-23  Jason H Stover  <jhs@math.gcsu.edu>

	Oops

	linreg.c: (pspp_linreg_mse) New accessor function
	regression.q: (reg_stats_r) Report root MSE instead of std. error of
	R-squared. Fixes bug 25677.

2009-02-23  Jason Stover  <jhs@math.gcsu.edu>

	Fix bug 25677

2009-02-23  John Darrington  <john@darrington.wattle.id.au>

	Removed most uses of GladeXML from data window

2009-02-22  John Darrington  <john@darrington.wattle.id.au>

	Set the filename on loading a new file

	Refactor code from psppire.c
	Instead of using custom code for loading files given
	on the command line, instead use code from psppire-data-window.c

	Unsaved indicator for data files.
	Add callback to dictionary and dataset.  Use these callbacks
	to set  a flag for the gui to indicate when a data file is
	saved or not saved.

	Add a set_unsaved method.
	Added a psppire_window_set_unsaved method, which can be
	used to indicate that the contents of a window has been
	modified since it was last saved.
	Use this method for the syntax window.

	Reorder sources list
	Try to keep them alphabetical.

2009-02-21  John Darrington  <john@darrington.wattle.id.au>

	Prevent data sheet from traversing into an invalid column.
	Thanks to James R. Van Zandt for reporting this problem.

	Merge commit 'window-manager/master'

	Fix problems with make distcheck

	Fix signature of connect_help

	Replace "usage" property with a "description" property

2009-02-20  John Darrington  <john@darrington.wattle.id.au>

	Re enable the connect_help function

	convert labels and missing values dialogs to GtkBuilder

	Set more appropriate default names for Syntax and Output windows.
	Syntax windows now default to "Syntax" and output windows to "Output".

	Converted output-viewer.glade to GtkBuilder

2009-02-20  Jason H Stover  <jhs@math.gcsu.edu>

	covariance-matrix.c (covariance_matrix_init): pass pointer to result->n_variables instead of stack variable n_variables.
	covariance-matrix.c (covariance_hsh_create): Accept pointer to number
	of variables instead of size_t.

2009-02-19  John Darrington  <john@darrington.wattle.id.au>

	Converted syntax-editor definition from libglade to gtkbuilder

2009-02-19  John Darrington  <john@darrington.wattle.id.au>

	Merge branch 'master' of /home/john/Development/pspp-window-manager
	Conflicts:

		src/ui/gui/crosstabs-dialog.c
		src/ui/gui/helper.c

2009-02-19  John Darrington  <john@darrington.wattle.id.au>

	Merge commit 'HEAD'; commit 'savannah/master'
	Conflicts:

		src/ui/gui/crosstabs-dialog.c
		src/ui/gui/goto-case-dialog.c
		src/ui/gui/helper.c
		src/ui/gui/output-viewer.c
		src/ui/gui/output-viewer.h
		src/ui/gui/psppire.c
		src/ui/gui/regression-dialog.c

2009-02-09  John Darrington  <john@darrington.wattle.id.au>

	Use the sum of weights of only those cases which are valid to calculate percentiles.
	Fixes bug #25522

2009-02-09  Jason H Stover  <jhs@math.gcsu.edu>

	Skip the SAVE subcommand if no valid data are present, instead of crashing. Fix for bug 25523

2009-02-08  John Darrington  <john@darrington.wattle.id.au>

	Use c-ctype functions in lexer.
	Lexical analysis should not depend upon the locale,
	so change is* functions from ctype.h to the c_is*
	counterparts from gnulib.  This should avoid potential
	i18n issues.

	Prevent test failure when non-English language selected

2009-02-07  John Darrington  <john@darrington.wattle.id.au>

	Added a brief description of the --enable-relocatable flag to INSTALL

	Relocate path names when searching for files.
	When searching for configuration files etc. in a
	search path, relocate the filenames before testing
	for their existence.  Closes bug #25508

2009-02-06  John Darrington  <john@darrington.wattle.id.au>

	Added LIB_CLOSE to link flags for test programs.
	This allows all binaries needed by "make check" to be built.

	Add LIB_CLOSE to link command for dissect-sysfile program.

2009-02-06  Ben Pfaff  <blp@gnu.org>

	Link against -lws2_32 on Windows.
	Gnulib commit df1da811, "Fix link errors on Windows when close
	module is used", adds a Makefile variable $(LIB_CLOSE) that expands
	to -lws2_32.  This commit adds that variable to the linker command
	line.

	It might not be necessary to add this to both pspp and psppire,
	but it shouldn't hurt.

2009-02-06  John Darrington  <john@darrington.wattle.id.au>

	Fix minor build issues.
	Remove dependence on lib/misc which no longer exists.
	Add new file src/math/wilcoxon-sig.[ch] to makefile.

2009-02-05  Ben Pfaff  <blp@gnu.org>

	wilcoxon: Drop now-unnecessary timer support.
	Calculating the Wilcoxon significance level now takes only a
	fraction of a second, so there is no need to support a timer.

	Also, report the problem if the significance level cannot be
	calculated.

2009-02-05  Ben Pfaff  <blp@gnu.org>

	Speed up Wilcoxon matched-pairs signed-ranks significance routine.
	The performance of this routine was O(2**N).  This improves it to
	O(N*W).  For N=30, W=120 this reduces calculation time from 6m9s
	to .002s, which is a 123000x speedup.

	Refer to bug #25466 for more information.

2009-02-05  Ben Pfaff  <blp@gnu.org>

	perl-module: fix version mismatch between module and PSPP
	The version number update in the previous Perl module commit
	broke the Perl module's version number checking.  Oops.  This fixes
	it (and updates NEWS).

	perl-module: Document and test PSPP::Dict::get_var_cnt().
	This function was present but not documented or tested.

2009-02-05  Ben Pfaff  <blp@gnu.org>

	perl-module: Make PSPP::Reader::get_next_case() return a list.
	PSPP::Reader::get_next_case() was documented to return a list,
	but actually it returned a reference to a list.  This commit
	changes the behavior to match the documentation.

	This also fixes the behavior on reading past the end of the file.
	Previously this was documented to return undef but caused a
	segfault in practice.  Now it returns an empty list.

	Also increase PSPP version number from 0.7.1 to 0.7.2 at John
	Darrington's request, to alert users of the previous version of
	the Perl interface.

2009-02-05  John Darrington  <john@darrington.wattle.id.au>

	Silently ignore some inrecognised subtypes.
	When reading system files, record subtypes of which the developers are
	aware but which pspp doesn't yet support are silently ignored.  Subtypes
	which the developers are unaware provoke a message requesting the user
	to send us a sample.

2009-02-03  John Darrington  <john@darrington.wattle.id.au>

	Merge branch 'master' of ssh://jmd@git.sv.gnu.org/srv/git/pspp

	Don't build the perl module if cross compiling.
	Whilst, in general, it should be possible to cross compile a perl
	module, the current organisation of the module doesn't support it.
	So this has been disabled until somebody has the time and resources
	to fix and test it.

2009-02-02  Ben Pfaff  <blp@gnu.org>

	INSTALL: Add hints about how to obtain root permission.
	Suggested by Nick Thompson <nickadamthompson@gmail.com>.

2009-02-01  Ben Pfaff  <blp@gnu.org>

	perl-module: Document PSPP::Dict::get_var() for too-large index.
	Approved by John Darrington.

2009-01-30  Ben Pfaff  <blp@gnu.org>

	Accept LF, CR LF, and LF as new-line sequences in data files.
	Until now, PSPP has used the host operating system's idea of the
	new-line sequence when reading data files and other text files.
	This means that, when a file with CR LF line ends is read on an OS
	that uses LF as new-line (e.g. an MS-DOS file on Unix), each line
	appears to have a CR at the the end.  This commit fixes the
	problem, by normalizing the new-line sequence at time of reading.

	This commit eliminates a performance optimization from
	ds_read_line(), because the getdelim() function that it used cannot
	be made to stop reading at one of two different delimiters.  If
	this causes a real performance regression, then the getndelim2
	function from gnulib could be used to restore the optimization.

	Also adds a test to make sure that it works.

	Thanks to Rémi Dewitte <remi@gide.net> for pointing out the problem
	and providing an initial patch (which solved the problem in a
	completely different way from this commit).

2009-01-29  John Darrington  <john@darrington.wattle.id.au>

	Updated NEWS

	Correct the directory of the perl module tarball target

	Bump minor version number

2009-01-29  John Darrington  <john@darrington.wattle.id.au>

	Merge branch 'savannah/perl-module'
	Conflicts:

		po/en_GB.po
		src/libpspp/automake.mk

2009-01-28  Jason H Stover  <jhs@math.gcsu.edu>

	interaction.c: Introduced interaction_variable and interaction_value structs and associated functions.
	covariance-matrix.c: Altered covariance_accumulate_listwise,
	covariance_accumulate_pairwise, and update_* functions to handle
	interactions.

	glm.q: Added temporary NULL and 0 as final args to call to
	covariance_matrix_accumulate.

2009-01-26  John Darrington  <john@darrington.wattle.id.au>

	Remove pspp-vers.pl which did more harm than good.
	Removed the auto-generated file pspp-vers.pl and all references
	to it.  Instead, use a manually set string for the version.

2009-01-23  John Darrington  <john@darrington.wattle.id.au>

	Change  COPYING from GPLv2 to GPLv3

2009-01-20  John Darrington  <john@darrington.wattle.id.au>

	Merge branch 'master' of ssh://jmd@git.sv.gnu.org/srv/git/pspp

	Fix further bug in NPAR BINOMIAL
	Change "break" to "continue", so that if a binomial
	variable was missing, only this single variable is skipped
	rather than all subsequent ones.  Thanks to Ben Pfaff for
	reporting this.

2009-01-19  Jason H Stover  <jhs@math.gcsu.edu>

	Fixed bug in compare_values_short. Reported by Ben Pfaff.

2009-01-18  John Darrington  <john@darrington.wattle.id.au>

	Fixed bug allocating the memory in NPAR BINOMIAL
	Thanks to Ben Pfaff for reporting this problem.

2009-01-16  John Darrington  <john@darrington.wattle.id.au>

	Merge commit 'origin/stable'
	Conflicts:

		src/language/utilities/include.c
		src/ui/terminal/automake.mk
		tests/command/insert.sh

2009-01-13  Ben Pfaff  <blp@cs.stanford.edu>

	Put unique dictionary indexes into internal variables
	Code that Jason is working on creates some internal variables, using
	var_create_internal(), and wants to hash those variables based
	on their dictionary indexes, along with some other variables that
	are actually in a dictionary.  Thus, the internal variables need to
	have unique dictionary indexes.

2009-01-12  Jason H Stover  <jhs@math.gcsu.edu>

	fixed update of moments

	Rewrote interaction.[ch]

2009-01-11  John Darrington  <john@darrington.wattle.id.au>

	Added module file to PM entry

	Fix syntax errors in pod

2009-01-10  John Darrington  <john@darrington.wattle.id.au>

	Updated copyright notices with the year 2009

	Add the perl module tarball to the build target

	Merge branch 'master' of /home/john/Development/pspp-bare

2009-01-09  John Darrington  <john@darrington.wattle.id.au>

	Add short entry to Examples.pod describing Reader

	Merge commit 'origin/master'; commit 'savannah/master'

	Move .ui files to build directory
	The .ui files had been inadvertently put in the src directory.
	This change moves them to the build directory, since they're
	(currently) generated from the .glade files.

	Replaced call to g_strcmp0 with strcmp, since the former is available only in glib 2.16+.
	Thanks to unknown-1 for reporting this.

	Link the perl module against the shared library instead of the static one

2009-01-08  Ben Pfaff  <blp@gnu.org>

	Fix assertion in case_copy().
	This is an apparent cut-and-paste error.

2009-01-08  John Darrington  <john@darrington.wattle.id.au>

	Ensure that perl module tests work before pspp has been installed

2009-01-07  John Darrington  <john@darrington.wattle.id.au>

	Added method to get the custom variable attributes

	Update module to reflect new case API

	Merge commit 'savannah/master'

	Merge branch 'master' of /home/john/Development/pspp-bare

2009-01-06  Ben Pfaff  <blp@gnu.org>

	Make cases simpler, faster, and easier to understand.
	Cases (struct ccase) is reference-counted to avoid copying more
	data than necessary.  But the existing implementation that uses
	separate structures for references to cases (struct ccase) and
	the cases themselves (struct case_data) has a number of issues:

	   - The semantics of struct ccase are tricky to remember; one
	     has to remember to treat struct ccase as essentially a
	     pointer type.  I get confused sometimes myself.

	     (One of the symptoms of this was the existence of
	      the case_nullify and case_is_null functions, which are
	      exactly analogous to setting a pointer to null and comparing
	      one against null, respectively.)

	   - Every reference to data in a case involves two levels of
	     indirection, which is one more than actually necessary.

	   - The implementation is somewhat complicated.

	This commit simplifies things, by dropping a level of indirection.
	Now, a case is just a pointer to a struct ccase, which contains
	the actual data.  Reference counting is still present, but it is
	simplified.  The only thing that must be remembered is that, before
	modifying a case that may be shared, it must be passed through
	case_unshare() to make a new unshared copy if necessary.

2009-01-06  John Darrington  <john@darrington.wattle.id.au>

	Ensure that dict survives sysfile
	Make sure that the dict of a sysfile survives for the
	lifetime of that sysfile.  Thanks to Rob Messer for
	reporting this bug.

2009-01-04  John Darrington  <john@darrington.wattle.id.au>

	Write message to status bar on saving syntax files

2009-01-04  John Darrington  <john@darrington.wattle.id.au>

	Merge commit 'HEAD'; commit 'master/master'
	Conflicts:

		src/ui/gui/crosstabs-dialog.c
		src/ui/gui/goto-case-dialog.c
		src/ui/gui/helper.c
		src/ui/gui/regression-dialog.c

2009-01-03  John Darrington  <john@darrington.wattle.id.au>

	Remove inappropriate include directives

	Remove invalid property

	Fix pointer types as appropriate

	Convert psppire.glade to psppire.ui

	Converted T-Test dialogs to GtkBuilder

	Add *.ui to .gitignore

	Convert Regression dialog to GtkBuilder

	Convert MessageDialog to GtkBuilder

	Convert Crosstabs dialog to GtkBuilder

	Convert Examine dialog to GtkBuilder

	Convert Frequencies dialog to GtkBuilder

	Migrated rank and recode dialogs to GtkBuilder

	Added infrastructure for GtkBuilder and change oneway-dialog to use it.

2009-01-02  John Darrington  <john@darrington.wattle.id.au>

	Fix warnings

2009-01-01  John Darrington  <john@darrington.wattle.id.au>

	Make sure finalizers are called properly

	Add menushell initialiser to output viewer

	Set default name on File->New

	Set the window title when opening a file on the command line

	Remove obsoleted files from build rules

	Re-enable reporting of filename in syntax errors

2008-12-31  John Darrington  <john@darrington.wattle.id.au>

	Refactor common code in dialog implementations

	Add actions to the menuitem signals

	New (singleton) object psppire-window-register

2008-12-30  John Darrington  <john@darrington.wattle.id.au>

	Fixed bug finalizing window

	Move data-editor.c to psppire-data-window.c
	Made data-editor.c into a widget (derived from GtkWindow), called
	PsppireDataWindow.  Removed window-manager.c and window-manager.h

2008-12-29  John Darrington  <john@darrington.wattle.id.au>

	Enabled the minimise_all menu, and set the title bar to reflect the usage of the window

	Rewrite output-viewer.c --> psppire-output-window.c

	New objects psppire-window and psppire-syntax-window.
	Moved most of the functionality from syntax-editor into syntax-window,
	and window-manager into psppire-window.  Eventually window-manager.c will
	 be superseeded.

2008-12-24  John Darrington  <john@darrington.wattle.id.au>

	New subroutine PSPP::Dict::get_var_by_name

	Merge branch 'master' of /home/john/Development/pspp-bare

	Automatically detect src dir from build dir

	Update abstract

	correct documentation

2008-12-23  John Darrington  <john@darrington.wattle.id.au>

	Update documentation of perl module

	Ensure that module version agrees with pspp version

	Added functions to enable reading data files from perl
	Extended the perl module so that existing data files
	can be read using the perl bindings.

2008-12-22  John Darrington  <john@darrington.wattle.id.au>

	Read version header from source

2008-12-21  John Darrington  <john@darrington.wattle.id.au>

	Change the perl module's distname to be more distinct from that of the main distribution

2008-12-20  John Darrington  <john@darrington.wattle.id.au>

	Integrated the perl module into the pspp build system.

2008-12-19  John Darrington  <john@darrington.wattle.id.au>

	Add perl parseable line to src/libpspp/version.c
	Cause a line of the form $VERSION='x.y.z' to be added
	to the file src/libpspp/version.c so that recent versions
	of Perl's MakeMaker recognises it.

2008-12-14  John Darrington  <john@darrington.wattle.id.au>

	Rename lib/gtksheet to lib/gtk-contrib

	Created new directory src/ui/gui/sheet
	Moved files from lib/gtksheet to src/ui/gui/sheet except those whose
	copyright is not FSF owned.

	Adjusted packing properties as appropriatate

	Remove expand property from inappropriate widget

2008-12-13  John Darrington  <john@darrington.wattle.id.au>

	Readd lost files

	Moved marshallers to src/ui/gui

	Rename GtkSheet to PsppireSheet

	Rename gsheetmodel to psppiresheetmodel

	Merge commit 'HEAD'; branch 'rewrite-sheet'

2008-12-12  John Darrington  <john@darrington.wattle.id.au>

	Fix warning

	Re-enabled display of global sheet button

	More runtime warnings fixed

	Fix some runtime warnings

	Don't set row/column to zero when selecting

2008-12-11  John Darrington  <john@darrington.wattle.id.au>

	Fix compiler warning

	Fixed bug which manifested itself in the text import dialog

	Redraw cells when a row/column is resize

2008-12-10  John Darrington  <john@darrington.wattle.id.au>

	Prevent updates to the model from feeding back to the current sheet

	Fix problem where entry strings got mangled

	Fix some warnings

2008-12-09  John Darrington  <john@darrington.wattle.id.au>

	Improve reliability of active cell border rendering

	Fixed a problem redrawing the active cell.
	Disabled double buffering on the sheet body since this
	seemed to interfere with things.

	Simplify expose callback

	Merge commit 'HEAD'; branch 'master' into rewrite-sheet

	Fix up include path for generated source file

2008-12-08  John Darrington  <john@darrington.wattle.id.au>

	Added a chapter to the developers' manual about i18n.

	Removed that rather kludgy idle callback

	Fix bug resizing rows/columns

	Don't crash when resizing columns with no associated variable

	Draw the boundary line when resizing rows/columns

	Prevent widths less than 1

2008-12-07  John Darrington  <john@darrington.wattle.id.au>

	Free the elements from the pool

	Make the axes members of the data editor object

2008-12-06  John Darrington  <john@darrington.wattle.id.au>

	Written a proper implementation of psppire_axis_impl_delete

	Trap some bad usage

	Set variable display width when datasheet's columns are resized.

	Add a resize method to the axis

2008-12-06  Ben Pfaff  <blp@gnu.org>

	Remove unused match-files.c.
	This has been supplanted by combine-files.c, but I forgot to delete
	it when I added that file.

	Thanks to John Darrington for pointing out the problem.

2008-12-05  John Darrington  <john@darrington.wattle.id.au>

	Improved robustness of axis implementation

	Make the axis implementation more tolerant of boundary conditions

	Canonicalise identifier names

	Made the datasheets share axes

	(re)enabled dragging of row boundaries

	Replaced implementation of psppire-axis.
	Deleted psppire-axis-hetero.* and psppire-axis-uniform.* and
	replaced with psppire-axis-impl.[ch] which combines the benefits
	of both.

2008-12-04  John Darrington  <john@darrington.wattle.id.au>

	Improve rendering of active cell border

	Improve reliability of active cell border display

2008-12-03  John Darrington  <john@darrington.wattle.id.au>

	Allow variables to be entered beyond the end of sheet.
	Several changes to fix the problem where variables beyond
	the vertical size of the var sheet couldn't be added.

	1. Undo the effect of commit 8c9fae384585163197685e684e62e49a6b922f0c
	since it seems to cause problems and need to be rethought.

	2. On the traverse callback, don't clamp the range of the requested
	   destination cell.  Clamp it only after the signal returns.

	3. Add one more row than there are variables.

2008-12-03  John Darrington  <john@darrington.wattle.id.au>

	Remove {rows,columns}_resizeable function

2008-12-03  John Darrington  <john@darrington.wattle.id.au>

	Merge branch 'master' into rewrite-sheet
	Conflicts:

		src/ui/gui/psppire-case-file.c
		src/ui/gui/psppire-case-file.h

2008-12-03  John Darrington  <john@darrington.wattle.id.au>

	Use value_compare_3way instead of compare_values_short in find dialog

	Remove unused sheetmodel function

2008-12-02  Ben Pfaff  <blp@gnu.org>

	Implement ADD FILES and UPDATE.

2008-12-02  Ben Pfaff  <blp@gnu.org>

	Replace case_ordering with subcase.
	The case_ordering data structure was useful for comparing cases,
	but that is all that it did.  In fact, the same data structure
	can be used, at least, for extracting data from cases into arrays
	of values, stuffing values back into cases, and for more general
	comparisons than case_ordering anticipated.

	This commit adds those abilities to case_ordering.  It also renames
	it to "subcase", because it is useful for more than just sorting
	cases, which is all that case_ordering was designed for.

	This commit also changes the allocation pattern for subcase from
	having the implementation allocate all of the memory, to having
	the subcase client allocate "struct subcase".  This saves a
	memory allocation without making life harder for anyone.

	  - Naming: the "case_ordering" name implied that it was
	    only useful for ordering (comparing cases).

	  - Interface: the interface

2008-12-02  Ben Pfaff  <blp@gnu.org>

	Break get.c up into multiple files in a logical fashion.
	get.c implemented GET, IMPORT, SAVE, XSAVE, EXPORT, XEXPORT,
	and MATCH FILES, which seems like too much for one file.

2008-12-02  Ben Pfaff  <blp@gnu.org>

	Allow MATCH FILES before an active file has been defined.
	Except when it has the active file as an input, MATCH FILES does
	not require an active file, and produces an active file, so it
	makes sense to allow it anywhere.

	Thanks to John Darrington for pointing out the bug.

2008-12-02  Ben Pfaff  <blp@gnu.org>

	Rename compare_values, hash_values with "_short" suffix.
	The compare_values and hash_values functions do not compare an
	entire value.  Rather, they compare only the short string prefix
	of long string values.  I have a feeling that this misnaming was
	confusing people (it certainly confused me) so this commit renames
	them.

	It also adds a new function value_compare_3way() that does what
	one what expect such a function to do.

2008-12-02  John Darrington  <john@darrington.wattle.id.au>

	Keep adjustment values in their relative positions on resizing sheet

	Only grab the focus when appropriate

	Whitespace change

	Remove extraneous code moving sheet adjustments on updates

	Add range_changed callbacks as appropriate

2008-12-01  John Darrington  <john@darrington.wattle.id.au>

	Update model on inserting/deleting cases

	Added static qualifier

	Add handlers for inserting/deleteing cases

	Destroy datasheet, but not if we've made a reader of it

	Deleted psppire-case-file.[ch]
	This module was nothing more than a wrapper around
	src/data/datasheet.c Moved its guts into
	psppire-data-store.c

	Merge branch 'master' of ssh://jmd@git.sv.gnu.org/srv/git/pspp

	Fixed some boundary conditions displaying row/column data

	Remove marshaller from helper.c and use a generated one instead

	Removed an unsed variable and used an unused macro

	Deleted some superflous nonsense

	Replaced extern "C" with G_BEGIN_DECLS

	Remove flicker drawing cell ranges

2008-12-01  John Darrington  <john@darrington.wattle.id.au>

	Merge branch 'rewrite-sheet' of ssh://jmd@git.sv.gnu.org/srv/git/pspp into rewrite-sheet
	Conflicts:

		src/ui/gui/psppire-var-store.h

2008-11-30  John Darrington  <john@darrington.wattle.id.au>

	Added popup menu to row titles in variable sheet

	Add cast to avoid warning

	Rename properties so as to be more specific

	Calculate the width of M based on the current font

	Remove unused variable

	Remove font information from cell attributes and sheet model.
	Deleted the font_desc member from the GtkSheetCellAttr struct
	and also all font related stuff from the GSheetModel interface.
	Instead, fonts are now considered strictly a parameter of the
	viewing widget instead of data in the model.

2008-11-30  Ben Pfaff  <blp@gnu.org>

	Fix memory leak in get_system_decimal().

	Add PKG_CHECK_MODULES to forbidden m4 patterns.
	This should help to catch running autoconf on systems that lack
	pkg-config earlier in the build process.

2008-11-29  John Darrington  <john@darrington.wattle.id.au>

	Remove unused property from var-sheet

	Add mutual links to VARIABLE/DATAFILE ATTRIBUTE documentation

	When adding variables in varsheet, add at the current position.
	Previously variables could only be inserted at the start of the dictionary.
	Fixes bug #24502

	Fixed problem when double clicking on column header

	Improve drawing of active cell border

2008-11-28  John Darrington  <john@darrington.wattle.id.au>

	Make close button grab the focus on popup

	Improve useability of value label dialog.
	Make the value entry widget grab the keyboard focus whenever
	the dialog is updated, and on showing the dialog.  Fixes
	bug #24929

	Fixed crash when scrolling

	Fixed bug redrawing row/column title windows

	Dont try to draw cells outside the valid range

2008-11-27  John Darrington  <john@darrington.wattle.id.au>

	Fix problem redrawing old active cell

	Draw active cell on adjustment changes

	Fixed problem displaying the active cell.

	Removed unsed is_visible from sheetmodel

	Remove unused auxvalues variable

	Removed internal_allocation member which was assigned but never used

	Made the active cell border a lot more noticeable

	Use BUILT_SOURCES to ensure that marshallers get built

	Merge branch 'rewrite-sheet' of ssh://jmd@git.sv.gnu.org/srv/git/pspp into rewrite-sheet

2008-11-26  John Darrington  <john@darrington.wattle.id.au>

	Removed condition which was always true

	Disabled sheet entry for non-editable cells

	Change return type of gtk_sheet_get_entry and removed an unused function.

	Remove sheet_container member which served no useful purpose

	Remove [hv]geo arguments to gtksheet which no longer do anything

	Removed reference to row-geometry property which no longer exists

	Added g_return_if_fail to new methods

	Added extra include path necessary when building outside the source dir

	Generate marshaller functions instead of using prebuilt ones.
	Use the glib-genmarshal program (distributed with glib) to
	build the marshaller functions that came with gtkxpaned and
	gtksheet.

	Remove obscure pango_font_description munging which caused criticals

2008-11-25  John Darrington  <john@darrington.wattle.id.au>

	Oops

2008-11-25  John Darrington  <john@darrington.wattle.id.au>

	Merge branch 'rewrite-sheet' of ssh://jmd@git.sv.gnu.org/srv/git/pspp into rewrite-sheet
	Conflicts:

		lib/gtksheet/automake.mk

2008-11-25  John Darrington  <john@darrington.wattle.id.au>

	Remove the gsheet-row-* modules and replaced with psppire-axis-*

	Remove gtkextrafeatures.h from file manifest

2008-11-24  John Darrington  <john@darrington.wattle.id.au>

	Set the minimum-extent property from the size_allocate handler of the sheet

	Fixed minor bug getting the extent of the last unit

	Added "min-extent" and "default-size" properties.
	Before rows/columns have been added, which are sufficient to
	cover "min-extent", there will be implicit rows/columns of "default-size".

	Fix problem inserting variables at end of var sheet

2008-11-24  John Darrington  <john@darrington.wattle.id.au>

	Merge branch 'rewrite-sheet' of ssh://jmd@git.sv.gnu.org/srv/git/pspp into rewrite-sheet
	Conflicts:

		lib/gtksheet/gtksheet.c

2008-11-23  John Darrington  <john@darrington.wattle.id.au>

	Don't redraw buttons in size_allocate callback
	I've no idea why this was here but it is clearly wrong, and
	caused lots of annoying flicker.

	Removed the STRING_WIDTH function

	Removed feature relating to multiline column button labels which we never use

	Removed the autoresize-column feature which was unused

	Remove flicker when redrawing row/column titles

	Replace gsheet-column interface by psppire-axis
	Created a new object psppire-axis, which is a thinish
	wrapper around src/libpspp/tower.c, and can be used
	to maintain the positions and widths of rows/columns
	in the data/variable sheets.
	This change also deletes the lib/gtksheet/*-column-*
	modules, and uses a psppire-axis in their place.
	Some functions previously performed by gsheet-column-iface
	have been moved to gsheetmodel.
	This change doesn't touch lib/gtksheet/*-row-* but it
	will be straightforward to replace that too.

2008-11-22  John Darrington  <john@darrington.wattle.id.au>

	Ben's patches to tower.[ch]

2008-11-21  John Darrington  <john@darrington.wattle.id.au>

	Fix crash

	Remove unused signal

	Change traverse signal to take GtkSheetCell instead of gint,gint

	Remove inline qualifiers

	Removed function default_row_height

2008-11-21  Jason H Stover  <jhs@math.gcsu.edu>

	pspp_linreg_with_cov: Accept struct covariance_matrix as first argument.
	rearrange_covariance_matrix: Accept struct covariance_matrix as
	first argument.

2008-11-21  John Darrington  <john@darrington.wattle.id.au>

	Avoid annoying double line at beginning of rows/columns

	Avoid critical when renewing dataset

	Remove gtk_sheet_move_query function

	Avoid runtime warning

2008-11-20  John Darrington  <john@darrington.wattle.id.au>

	Block entry change handler whilst traversing cells
	Prevent the "changed" signal from invoking a handler
	whilst the cells are changing.  This sometimes resulted
	in data erroneously getting entered into the new cell.

	Prevent double-click signal from being emitted when the row/column is insensitive

	Prevent traversing to cells for which there is no variable

	Prevent sheet from stepping outside its valid cell range.

	Fixed the scrolling of the sheet when the active cell changes.

2008-11-19  John Darrington  <john@darrington.wattle.id.au>

	Improved behaviour of arrow keys

	Rename functions

	Removed unused return value from cell activation features

	Improve the behaviour of the moveto function

	Reduce flicker on scrolling

	Combine cell_draw_bg and cell_draw_label into a single function

	Fix entry widget size allocation.

	Deleted lib/gtksheet/gtkextrafeatures.h

	Deleted gtkitementry
	Removed the (custom) widget gtkitementry and use a standard
	GtkEntry widget instead.

2008-11-19  John Darrington  <john@darrington.wattle.id.au>

	Merge branch 'rewrite-sheet' of ssh://jmd@git.sv.gnu.org/srv/git/pspp into rewrite-sheet
	Conflicts:

		lib/gtksheet/gtksheet.c

2008-11-18  John Darrington  <john@darrington.wattle.id.au>

	Fixed problems with justification

	Made everything except gtkitementry.c multi-head safe

	Added event handler for the Delete key

2008-11-17  John Darrington  <john@darrington.wattle.id.au>

	Made attributes justification default to GTK_JUSTIFY_LEFT

	Fix vertical alignment of text.

	Fixed horizontal alignment of text within cells.

	Use rectangle_from_cell where appropriate.

	New function rectangle_from_range.
	Generalised rectangle_from_cell into a new function
	rectangle_from_range, and implemented the former in terms of the latter.

	New function rectangle_from_cell
	Factored out a bit of common code by adding this new function.

	Fixed problem where the old active cell wasn't hidden.

	Removed the visibility predicate from the row/column models.
	These predicates have never been used, and just complicate things.

	Correct scrollbar adjustments for row/column titles width.

	Whitespace changes

2008-11-16  John Darrington  <john@darrington.wattle.id.au>

	Fixed the tooltips/hover feature

2008-11-15  John Darrington  <john@darrington.wattle.id.au>

	Fixed some other little bugs which kept in.

	Remove "backing pixmap".
	Removed the backing pixmap, which didn't serve any useful
	purpose, and draw directly onto the widget's GdkWindow
	instead.

2008-11-14  John Darrington  <john@darrington.wattle.id.au>

	Added .libs to .gitignore

	Whitespace changes, and function refactoring.

	More unused code deleted.

	Removed some unused code.

	Add useful test/example file.

2008-11-13  John Darrington  <john@darrington.wattle.id.au>

	Removed some unused gtksheet features.

	Delete gtkextra.c
	Use the standard g_signal_emit instead of the one from gtkextra.
	Sort out confusion over the "veto" variable.

2008-11-12  John Darrington  <john@darrington.wattle.id.au>

	Make the arrow keys behave more like what popular spreadsheets do.

	Simplified the scrolling behaviour
	Made all the scrolling take place via the horizontal or vertical GtkAdjustments
	instead of directly.  Some key events have been removed.
	We'll add them back again as and when necessary.

	Replaced macros with static inline functions

	Add prototype for gtk_xpaned_compute_position

	Remove calls to gdk_pointer_ungrab
	Replace gdk_pointer_ungrab with gdk_display_pointer_ungrab

	Remove calls to gdk_cursor_new
	Replace gdk_cursor_new with gdk_cursor_new_for_display.

	Remove unsafe colormap operations.

	Change bg_color and grid_color to an array of two colors

2008-11-11  John Darrington  <john@darrington.wattle.id.au>

	Added a set of per binary LDFLAGS parameters.
	Added two optional variables PSPP_LDFLAGS and PSPPIRE_LDFLAGS for the convenience of package creators who need to be able to pass flags to one program but not the other.

	Merge branch 'master' into rewrite-sheet

	Made some gui functions multi-head safe.

2008-11-10  John Darrington  <john@darrington.wattle.id.au>

	Merge branch 'master' into rewrite-sheet
	Conflicts:

		lib/gtksheet/automake.mk
		po/en_GB.po

2008-11-08  John Darrington  <john@darrington.wattle.id.au>

	Fail more gracefully when the file specified on the command line is neither system nor portable file.

	Fixed problems when configured with --without-libplot

	Don't canonicalise pathnames of included files.
	Fixes bug #24553

2008-11-07  John Darrington  <john@darrington.wattle.id.au>

	Corrected problem with mismatched linefeed characters.

	Merge branch 'master' of ssh://jmd@git.sv.gnu.org/srv/git/pspp

	Updated British translations.

	Rewrote the command line parser using argp.
	Reimplemented the command line parser using argp.
	Removed some unimplemented options and added the ability
	for the gui to open system or portable files whose names
	are specified on the command line.

2008-11-06  Jason H Stover  <jhs@math.gcsu.edu>

	covariance-matrix.c: Added one-pass algorithm to compute covariance matrices.  New structure covariance_matrix contains the covariance matrix, related data and member functions. Added different routines to handle pairwise or listwise deletion of missing values.  Added many new functions.
	glm.q: Changed run_glm to use the new interface to the covariance
	matrix. Removed unused function data_pass_one().

2008-11-03  Ben Pfaff  <blp@gnu.org>

	Use gnulib 'close' module, for compatibility with newest Gnulib.
	Otherwise at link we get an undefined reference to symbol
	_close_used_without_requesting_gnulib_module_close.

	Thanks to Michel Boaventura for reporting the problem.

2008-10-31  John Darrington  <john@darrington.wattle.id.au>

	Move definition of OUTPUT_FILE_NAME to before first use.
	Problem manifested itself when building with cygwin.
	Reported by unknown-1

	Merge branch 'master' of ssh://jmd@git.sv.gnu.org/srv/git/pspp

	Remove reference to sa_restorer, because it's not part of POSIX.
	Prevented compilation on Cygwin.  Reported by unknown-1

2008-10-17  John Darrington  <john@darrington.wattle.id.au>

	Marked CORRELATIONS and PEARSON CORRELATIONS as unimplemented.
	These commands were defined in command.def, but only the parser
	was actually implemented; they didn't actually do anything.
	Marking them as unimplemented until they're finished.

	Added (source) configurable default output directory.
	Some systems expect files to be dumped in the home directory
	instead of the current directory.  This change makes that
	easier.

2008-10-16  John Darrington  <john@darrington.wattle.id.au>

	New .gitignore file

2008-10-15  Ben Pfaff  <blp@gnu.org>

	Fix crash in tabulating long-string variables in CROSSTABS.
	Fixes bug #24557.

	Do not assume that canonicalize_file_name() always returns non-null.
	Fixes bug #24569.

2008-10-15  John Darrington  <john@darrington.wattle.id.au>

	Fixed return type of design_matrix_get_case_count.
	design_matrix_get_case_count was declared as returning a void
	but it tried to return a value.  Changed it to returning size_t

2008-10-15  Jason H Stover  <jhs@math.gcsu.edu>

	glm.q: Removed code to us QR decomposition, which requires the entire data set to be stored in a matrix.
	glm.q: fit_model: New function.

	design-matrix.[ch]: Added array of size_t's to store the number of
	data for each variable in struct design_matrix. Added accessor
	functions design_matrix_increment_case_count,
	design_matrix_set_case_count and design_matrix_get_case_count.

2008-10-15  Jason H Stover  <jhs@math.gcsu.edu>

	covariance_accumulate: New function for one-pass computation of the covariance matrix.
	Added hash table to temporarily store the elements that will be in the
	covariance matrix. The hash consists of the new data structure
	covariance_accumulator. New functions hash_numeric_alpha,
	covariance_accumulator_compare, match_nodes,
	covariance_accumulator_free, covariance_hsh_create,
	covariance_accumulator_hash, to assist with the hashing.

	update_product: New function.

	covariance_accumulator_to_matrix: New function to put hash elements
	into the covariance matrix.

	get_center: New function to center a value prior to adding it to
	the covariance matrix.

	covariance_matrix_insert: New function to add a value to the
	covariance matrix.

2008-10-14  John Darrington  <john@darrington.wattle.id.au>

	Set the DECIMAL point character from the LC_NUMERIC component of the current locale.

	Allow value labels for non integer values.

	Mark variables as unused

2008-10-13  Ben Pfaff  <blp@gnu.org>

	Make src/libpspp/version.c depend on Makefile.
	This ensures that re-running "configure" with different settings causes
	version.c to be rebuilt.

	Thanks to Ivy Foster <ivy.foster@gmail.com> for reporting the problem.

2008-10-11  Ben Pfaff  <blp@gnu.org>

	Make pspp_linreg_with_cov() void, since it doesn't actually return a value.

	Use const consistently in linreg routines, to avert warnings.

	Fix GCC 4.3 warning about uninitialized structure member.

	Fix warning due to unmunge() returning a const string that needs to be freed.

	Advise not to build in a directory whose name contains a space or apostrophe.
	Thanks to Richard Brittain <Richard.Brittain@dartmouth.edu> for pointing
	out the problem.

	Add prototype for design_matrix_clone() to design-matrix.h.

	Eliminate unused variable.

	Fix typo in comment.

	Parenthesize more defensively in macro definition.

	Eliminate unused code in glm.q, regression.q.

	Fix GCC 4.3 warnings about parameters of incomplete type.

	Implement variable and data file attributes.

	Make str_copy_rpad() behave properly with a DST_SIZE of 0.

	Make [ and ] valid tokens in the lexer.
	The VARIABLE ATTRIBUTE and DATAFILE ATTRIBUTE commands use [ and ]
	to designate array elements.  This is the first use for these tokens
	in the language implemented by PSPP, so until now these characters
	were rejected with an error whenever they appeared in a syntax file
	outside a comment or a quoted string.

	Fix build when build and source directories are separate.

2008-10-09  Ben Pfaff  <blp@gnu.org>

	Merge commit 'origin/stable'
	Conflicts:

		tests/automake.mk

2008-10-09  Ben Pfaff  <blp@gnu.org>

	Update NEWS for 0.6.1.

2008-10-09  John Darrington  <john@darrington.wattle.id.au>

	Fixed problems when building with --enable-relocatable
	Added the INSTALLDIR macro to tests/dissect-sysfile.
	Relocated the pathname of the splash screen graphic.

2008-10-05  John Darrington  <john@darrington.wattle.id.au>

	Allow hyphens in {sub}command names.
	Extend the lexer so as to allow hypens to appear
	in the identifiers which of subcommands.

	Add generated c files to .gitignore

2008-10-05  Ben Pfaff  <blp@gnu.org>

	Use Gnulib module "regex", to fix linking on Mingw.
	The GUI code uses POSIX regular expressions, which Mingw has in a separate
	library (-lregex).  We could just search for that library, but by including
	our own implementation (via Gnulib) we also work around known bugs in
	system regular expression implementations.

2008-10-05  John Darrington  <john@darrington.wattle.id.au>

	Merge branch 'master' of ssh://jmd@git.sv.gnu.org/srv/git/pspp

2008-10-04  John Darrington  <john@darrington.wattle.id.au>

	Moved the datasheet testing code out of src/{libspp,data}
	Avoids high level things (such as moments) from appearing
	in libpspp-core, which prevented it from being used standalone.

2008-10-03  Ben Pfaff  <blp@gnu.org>

	Update NEWS for 0.6.1-rc2.

2008-10-03  Ben Pfaff  <blp@gnu.org>

	Add ".sav" or ".por" suffix to filename when saving with Save_As
	Closes bug #23137

	(This is a cross-port of commit 169887f6d6d7bf5c10d5b05786aa3fd252040c93
	from the master branch, originally authored and committed by John
	Darrington.)

2008-10-03  Ben Pfaff  <blp@gnu.org>

	Only use -fgnu89-inline if the compiler actually supports it.
	Jason Stover pointed out that we were using -fgnu89-inline even when the
	compiler didn't support it.  Obviously that's not good.

2008-10-03  Ben Pfaff  <blp@gnu.org>

	Also warn about missing prerequisites as we encounter them (bug #24445).
	It can happen that configure bails out in the middle due to some issue
	that PSPP cannot directly control; for example, AC_CHECK_SIZEOF exits
	unconditionally if it fails.  If this happens then, before, we would fail
	to warn about missing required prerequisites that could well have been
	the actual cause of the failure, because we only warn about these at
	the end of the run.

	Now, we warn about missing prerequisites both at time of detection and
	in a summary at the end, to head off this problem.

	Thanks to Jim Orr for allowing me to notice the problem.

2008-10-03  Ben Pfaff  <blp@gnu.org>

	Add note to INSTALL explaining how to use libraries from /usr/local.
	Several users have had trouble building PSPP with self-built GSL, etc.
	that were installed to /usr/local.  Explain how to do it here to be
	more friendly to Unix novices.

	Thanks to Jim Orr for making me realize that this was important.

2008-10-03  Ben Pfaff  <blp@gnu.org>

	Add pspp-dev.dvi to CLEANFILES.
	Automake does not seem to clean this file automatically.  (Is this an
	Automake bug?)

	Append $(EXEEXT_FOR_BUILD) to output file name when building q2c.
	Thanks to "Michel Boaventura" <michel.boaventura@gmail.com> for reporting
	this problem and to John Darrington for assisting with the solution.

2008-10-02  Ben Pfaff  <blp@gnu.org>

	Update NEWS for 0.6.1 release.

2008-10-02  John Darrington  <john@darrington.wattle.id.au>

	Enable recode unsupported RECODE mappings.
	Fixes bug #21578

2008-09-30  Ben Pfaff  <blp@gnu.org>

	Avoid the C99-only feature of declaring a variable as part of a for statement.

	Avoid bug in GCC 4.3 in hmap-test.  Add comment warning about the bug.
	See patch #6637 for additional commentary.

2008-09-30  Ben Pfaff  <blp@gnu.org>

	New hmap and hmapx hash table implementations.
	These new hash table implementations should yield better performance
	than the older one, for at least two reasons.  First, they are based
	on "separate chaining" rather than "open addressing", and thus do not
	suffer from clustering, which is likely to be an issue with the hash
	functions that we have been using.  Second, they are carefully written
	to generate simple code that should inline well.

	Also, move the existing hash functions into a new pair of files,
	src/lib/hash-functions.[ch].  This allows users of the new hash tables
	to use them without including the older hash table header.

2008-09-29  John Darrington  <john@darrington.wattle.id.au>

	Updated the description of the --with-gui-tools flag.
	Some users were misunderstanding the purpose of this flag,
	and using it in normal builds, and suffering the consequences.
	This description, hopefully, makes it clear that they don't
	need it.

2008-09-26  John Darrington  <john@darrington.wattle.id.au>

	Whitespace changes only

	Avoid forcing an int into a void *

	Add .la to gitignore

2008-09-22  John Darrington  <jmd@pc-188.(none)>

	Fixed minor build problems.
	Fixed two build problems which crept in when moving to
	libtool libraries. One manifested itslef when building
	on a system with ncurses in a non-standard place.  The
	other when building after configured with --enable-debug

2008-09-20  John Darrington  <john@darrington.wattle.id.au>

	Avoid crash when recovering from syntax error in RELIABILITY.

	Mark variable as unused.

2008-09-19  John Darrington  <john@darrington.wattle.id.au>

	Moved all static libraries to libtool libraries.
	By default, this means that both pspp and psppire
	will use two shared libraries.  If static libraries
	are desired, then this can be achieved by configuring
	with LDFLAGS=-static-libtool-libs

	Closes patch #6633

2008-09-19  John Darrington  <john@darrington.wattle.id.au>

	Used pow2(x) instead of x * x where appropriate.

	Added the /WILCOXON subcommand to NPAR TESTS
	Implemented wilcoxon signed rank test.  Thanks to Ben
	for review.  Closes patch #6635

	Added the MEDIAN function to AGGREGATE.
	Users can now aggregate data by the median.
	Closes bug #11975

2008-09-17  Jason H Stover  <jhs@math.gcsu.edu>

	coeff_init: Do not use coeff[0] as the intercept. rearrange_covariance_matrix: Fix permutation of rows/columns. run_glm: Account for categorical values. cmd_glm: Drop double-allocation of model linreg.h: Declare pspp_linreg_with_cov().

2008-09-15  Jason H Stover  <jhs@math.gcsu.edu>

	pspp_coeff_var_to_coeff: Guard against a null pointer in coefs[i]->v_info. regression.q: Pass variable lists to pspp_linreg_cache_alloc. pspp_linreg_cache_alloc: Take variable lists as arguments to allow easier access 			 later and computation of number of coefficients during allocation. rearrange_covariance_matrix: Use the new stored list of variables in the linreg_cache 			     instead of calling pspp_linreg_get_vars(). cache_init: Move computation of n_coeffs to pspp_linreg_cache_alloc().

2008-09-15  John Darrington  <john@marilyn.intra>

	Merge branch 'master' of ssh://jmd@git.sv.gnu.org/srv/git/pspp
	Conflicts:

		po/en_GB.po

2008-09-14  John Darrington  <jmd@pc-188.(none)>

	Added some error checking to casereader_create_append_rank
	Thanks to Ben Pfaff for this suggestion.

	Use pow2 function instead of SQR macro.
	Thanks to Ben Pfaff for this suggestion.

2008-09-14  John Darrington  <john@darrington.wattle.id.au>

	Don't append % to count totals.
	There was an erroneous '%' appended to the totals for count
	values. This change removes it.  Fixes bug #24003

	Don't destroy dictionary on error if we didn't create it.
	Avoid assertion failure on bad input.  Closes bug #24031

2008-09-14  John Darrington  <john@cyane.csse.uwa.edu.au>

	Fixed bug which caused a crash if "end data." was not left aligned.

2008-09-12  John Darrington  <john@marilyn.intra>

	Added src/math/statistic.h to dist files.

	Added README to distributed files

2008-09-12  John Darrington  <jmd@pc-188.(none)>

	Added new casetranslator for appending ranks.
	New function casereader_create_append_rank, which
	returns a translating casereader which appends the
	rank of the variable upon which the casereader is
	sorted.

	New function: var_create_internal.
	Added a new function for creating "internal" variables.
	Ie, those which don't appear in any dictionary, and
	are for the purposes of internal calculations.

2008-09-12  John Darrington  <john@marilyn.intra>

	Downgraded mismatched gtk warning.
	Changed the notice about mismatched gtk version from g_critical
	to g_warning, since usually it's not particularly serious.

	Implemented the reliability command.
	Added a cut down version of the reliability command.
	This version supports calculation of the Cronbach alpha
	statistic.  Closes bug #24021

2008-09-12  Jason H Stover  <jhs@math.gcsu.edu>

	Do not use const in pspp_linreg_get_vars. Use correct covariance matrix in pspp_linreg_with_cov. Initialize model cache in glm.q

2008-09-08  John Darrington  <john@marilyn.intra>

	Add ".sav" or ".por" suffix to filename when saving with Save_As
	Closes bug #23137

2008-09-05  John Darrington  <john@marilyn.intra>

	Add n_missing argument to casereader_create_filter_missing
	Add a new argument to casereader_create_filter_missing, which,
	if non-null, receives the number of cases filtered out by the
	new reader.  Update all callers of this function.

	Fixed some issues calculating percentiles when missing values are involved.
	Added an extra argument to order_stats_accumulate, to indicate which classes
	of missing values should be excluded.  Added an internal cumulative weight
	counter, to ensure that the declared total weight agrees with that which is
	encountered.

	Fixed some breakage in comment lines.

	Rewrote the EXAMINE command.
	Made use of the new casegrouper construct instead of relying on hashes.
	Rewrote the percentiles calculations so as not to require dynamically
	allocating memory for all the data. Encapsulated many of the other statistics'
	calculations, so as to have similar interfaces.

2008-09-05  Jason H Stover  <jhs@math.gcsu.edu>

	Added design_matrix_clone() to clone a design matrix.

2008-09-04  John Darrington  <jmd@pc-188.(none)>

	Added some common glob patterns to .gitignore

	Oops.  Neglected to add new files.
	Actually I'm *sure* that I did do "git add" on all these,
	but for whatever reason git didn't check them in.
	Hopefully it's right this time.  One day I'll work out
	how to use git effectively.  One day ...

2008-09-04  John Darrington  <john@marilyn.intra>

	Add casereader_create_append_numeric function.
	This change provides a new casereader translator which
	appends a numeric value to casereader; the value to be
	determined by a user supplied function.

	Added a n_missing parameter to casereader_create_filter_missing.
	Also update all callers.  Thanks to Ben for reviewing this patch.

2008-09-04  John Darrington  <john@marilyn.intra>

	Complete re-implementation of the EXAMINE command.
	The implementation now avoids storing large amounts of data on the
	heap.  Instead it uses the casereader functionality and
	the casegrouper structure instead of hashes to store group data.
	Added documentation for the /ID subcommand which was missing.

	Better encapsulated the calculation of boxplot data, extreme
	values, histograms, NP plots and percentiles and others. Made
	the start of a common base interface for statistic calculations.
	Also updated the frequencies code to fit new interfaces.

	Added a test for bug #23852

2008-09-04  John Darrington  <john@marilyn.intra>

	Renumber development branch (master) to 0.7.0

2008-08-22  John Darrington  <john@marilyn.intra>

	Merge branch 'master' of ssh://jmd@git.sv.gnu.org/srv/git/pspp

	Work around bug #24033 (appending to output in cygwin).
	Cygwin (and perhaps other w32 platforms) cannot write to a file
	whilst it is open for reading.  This kludge therefore closes the
	output after pasting into the output viewer and re-opens when new
	data is appended.  It'll be slow if the output file becomes large.

2008-08-18  Ben Pfaff  <blp@gnu.org>

	Start generating ChangeLog automatically from Git commit messages.
	Thus, at the same time we rename the existing ChangeLog files to
	OChangeLog and add them to EXTRA_DIST to make sure that they get
	distributed.

2008-08-17  Jason H Stover  <jhs@math.gcsu.edu>

	Estimate parameters. Moved some code to re-usable functions.

2008-08-16  Jason H Stover  <jhs@math.gcsu.edu>

	Pointer DEPVAR is now required to be set correctly in linreg.c

	Initial versions of functions to estimate parameters via the covariance matrix

2008-08-07  John Darrington  <jmd@pc-188.(none)>

	Initialise label for piechart slices. (Closes bug #24014

	Bump minor version number so that git builds are distinct from released version

2008-07-28  Ben Pfaff  <blp@gnu.org>

	Use standard C99 isfinite, isnan, isinf in place of GSL substitutes.
	In change a9afcdd22, "Use gsl_isnan instead of isnan, ...," isfinite,
	isnan, and isinf were changed to use the GSL substitutes because of
	lack of portability of the C99 versions.  Now, gnulib has portable
	versions of all of these, so change them back.

	This commit changes calls to gsl_finite() to call isfinite() instead
	of the equivalent finite().  isfinite() is correct here: both gsl_finite()
	and finite() return true for NaNs, which is a surprising result given
	that a NaN is definitely not finite, but isfinite() returns false and,
	more importantly, behaves as actually wanted in each place it is used
	in PSPP code.

	This commit requires upgrading gnulib to at least change 5183a0e3c,
	"Add missing dependencies on new m4/exponent[fdl].m4 files," or later,
	and re-running "make -f Smake".
