2009-07-15  Ben Pfaff  <blp@gnu.org>

	Consistently capitalize the name "Gnumeric".
	Thanks to Harry Thijssen for pointing out the inconsistency.

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-12  Jason Stover  <jhs@debs.(none)>

	Remove write-only variable from interaction_case_data.

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-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>

	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>

	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-11  Ben Pfaff  <blp@gnu.org>

	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-09  John Darrington  <john@darrington.wattle.id.au>

	Fixed bug inserting cases in data sheet.
	Cases were not being inserted in the correct position.

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.

	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.

	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.

	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.

	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.

	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.

	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.

	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.

	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.

	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.

	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-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]

	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

	Merge commit 'origin/stable'
	Conflicts:

		src/ui/gui/output-viewer.c

	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

	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.

	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.

	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.

	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

	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.

	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().

	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

	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.

	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

	Merge branch 'master'; commit 'origin/stable'
	Conflicts:

		src/math/linreg.h
		src/ui/gui/psppire-data-editor.c

	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

	Merge branch 'master' of /home/john/Development/pspp-window-manager
	Conflicts:

		src/ui/gui/crosstabs-dialog.c
		src/ui/gui/helper.c

	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.

	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.

	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.

	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

	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

	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.

	Remove {rows,columns}_resizeable function

	Merge branch 'master' into rewrite-sheet
	Conflicts:

		src/ui/gui/psppire-case-file.c
		src/ui/gui/psppire-case-file.h

	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.

	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

	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.

	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.

	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

	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

	Merge branch 'rewrite-sheet' of ssh://jmd@git.sv.gnu.org/srv/git/pspp into rewrite-sheet
	Conflicts:

		lib/gtksheet/automake.mk

	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

	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.

	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.

	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

	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.

	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.)

	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.

	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.

	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.

	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.

	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

	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.

	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

	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".
