John Darrington [Sat, 27 Jul 2013 15:04:38 +0000 (17:04 +0200)]
Make distcheck pass
John Darrington [Fri, 26 Jul 2013 17:34:45 +0000 (19:34 +0200)]
Integrated the application icons
John Darrington [Thu, 25 Jul 2013 20:23:48 +0000 (22:23 +0200)]
Added names of new artwork contributors to about dialog
John Darrington [Thu, 25 Jul 2013 18:50:17 +0000 (20:50 +0200)]
Added mimetype icons
Added some icons to represent pspp file types in file managers etc.
Ben Pfaff [Wed, 24 Jul 2013 05:13:34 +0000 (22:13 -0700)]
Use "auto" mode for parsing syntax in the GUI (and elsewhere).
This should be less surprising, I hope, than always parsing syntax in
"interactive" mode.
Reported by Ronald Crichton <Ronald.Crichton@cit.edu.au>.
John Darrington [Tue, 23 Jul 2013 20:05:18 +0000 (22:05 +0200)]
Change "variable_changed" to "variable-changed" in signal name
This makes it consistent with usage elsewhere.
Ben Pfaff [Wed, 24 Jul 2013 04:17:36 +0000 (21:17 -0700)]
po: Update Dutch translation from translationproject.org.
John Darrington [Tue, 23 Jul 2013 19:47:38 +0000 (21:47 +0200)]
Fix crash when changing variable formats in data import dialog.
Recent changes altered the CHANGE_VARIABLE signal handler signature,
but this handler had not been updated.
Reported-by: dr soumalya ray <drsoumalya-ray@yahoo.co.in>
Ben Pfaff [Tue, 23 Jul 2013 13:58:56 +0000 (06:58 -0700)]
Update version number to 0.8.0.
Ben Pfaff [Tue, 23 Jul 2013 05:06:08 +0000 (22:06 -0700)]
Updated localisations from translation-project.org
John Darrington [Wed, 17 Jul 2013 14:12:07 +0000 (16:12 +0200)]
REGRESSION: Fix issues found by by review
Ben reported following potential problems:
I think that if the DEPENDENT subcommand is given twice (a user error), then
the variables specified the first time will be silently leaked.
cmd_regression() has two local variables named 'i'.
I don't understand why "struct workspace" has a member 'psw' that is a
dynamically allocated array, because it looks like each element of the array
is used only during processing a single split file group. That is, I think
that 'psw' could be just a singleton, instead of an array.
I think that fill_all_vars() is wrong: if an absent var follows a not-absent
var, then vars[] will be filled with a gap and there will be a write into
unallocated memory.
Reported-by: Ben Pfaff
Avoids shadowing variable in lower scope. suggested by Ben Pfaff
Ben Pfaff [Sun, 14 Jul 2013 05:05:09 +0000 (22:05 -0700)]
configure.ac: Increase version number to 0.7.11.
Ben Pfaff [Sat, 13 Jul 2013 15:44:48 +0000 (08:44 -0700)]
ONEWAY: Fix memory leak in run_oneway.
Bug #39070.
Ben Pfaff [Sat, 13 Jul 2013 15:01:46 +0000 (08:01 -0700)]
tower-test: Use memmove(), not memcpy(), for overlapping memory move.
Found by valgrind.
Ben Pfaff [Sat, 13 Jul 2013 03:37:55 +0000 (20:37 -0700)]
sparse-xarray: Fix memory leak in dump_sparse_xarray_to_disk().
Bug #39070.
Ben Pfaff [Sat, 13 Jul 2013 02:47:30 +0000 (19:47 -0700)]
model-checker: Fix memory leak in finish_mc().
This memory leak was visible only when the model checker was configured
with a particular path to follow.
John Darrington [Tue, 9 Jul 2013 06:48:52 +0000 (08:48 +0200)]
constness
John Darrington [Tue, 2 Jul 2013 17:41:16 +0000 (19:41 +0200)]
Fixed incorrect behaviour of REGRESSION when multiple dependent variables are entered
The REGRESSION command behaved badly when more than one dependent variable was entered.
The cause was that the unnormalised covariance matrix returned from the covariance
module was mutated for each variable. Consequently, each variable after the first
was wrong. This change fixes that by changing the ownership semantics of the returned
matrix (and thereby its constness).
This change also adds some comments, attends to constness and fixes the remaining
memory leaks associated with regression.
John Darrington [Mon, 1 Jul 2013 17:02:54 +0000 (19:02 +0200)]
Fix problems associated with LINEAR REGRESSION and splits
John Darrington [Tue, 2 Jul 2013 17:37:08 +0000 (19:37 +0200)]
Added test to check that REGRESSION works with multiple dependent variables
John Darrington [Tue, 2 Jul 2013 17:44:57 +0000 (19:44 +0200)]
Added a test to ensure that SPLITS vs REGRESSION/SAVE works ok
John Darrington [Tue, 2 Jul 2013 17:06:15 +0000 (19:06 +0200)]
Rename tests from REGRESSION to LINEAR REGRESSION
This way I can run just the linear regression tests without the
logistic regression tests.
John Darrington [Sat, 29 Jun 2013 09:20:25 +0000 (11:20 +0200)]
Avoid unexpected failures in check-valgrind due to XTERM_LOCALE
John Darrington [Sat, 29 Jun 2013 05:44:17 +0000 (07:44 +0200)]
Partial fix for regression vs. splits issue
Split the struct regression into information which is
parsed from the command, and data which is calculated during
execution of the command.
Bug #39070
John Darrington [Wed, 26 Jun 2013 16:37:30 +0000 (18:37 +0200)]
linreg.c: Remove superfluous cast
Ben Pfaff [Fri, 28 Jun 2013 07:17:29 +0000 (00:17 -0700)]
range-tower: Fix memory leaks.
Bug #39070.
Ben Pfaff [Fri, 28 Jun 2013 05:30:58 +0000 (22:30 -0700)]
CROSSTABS: Fix memory leaks.
Bug #39070.
John Darrington [Thu, 27 Jun 2013 18:34:54 +0000 (20:34 +0200)]
linreg: Remove some unused features
Ben Pfaff [Thu, 27 Jun 2013 05:56:16 +0000 (22:56 -0700)]
session: Fix two memory leaks.
Bug #39070.
John Darrington [Wed, 26 Jun 2013 07:31:13 +0000 (09:31 +0200)]
LOGISTIC REGRESSION: Fix memory leak in error path
Ben Pfaff [Tue, 25 Jun 2013 06:07:12 +0000 (23:07 -0700)]
datasheet: Avoid reading a given row more than necessary in source_read().
The datasheet casereader uses datasheet_get_row(), which calls rw_case(),
which until this commit called source_read() for every column. The latter
was expensive if casereader_peek() actually copied data for a whole large
row. For a datasheet with N columns, all from a single backing source,
the upshot was that datasheet_get_row() took O(N**2) time.
This commit fixes the problem in the common case by reading as many columns
as possible from a given source in a single call to source_read().
Bug #33260.
John Darrington [Sun, 23 Jun 2013 10:07:56 +0000 (12:07 +0200)]
variable.c: New function var_set_width_and_formats
Added a new function to set the width and formats of a variable as
an atomic operation. This is necessary to allow values to re-interpreted
without going through an intermediate format and thereby perhaps loosing
information.
Closes bug #39252
John Darrington [Sun, 23 Jun 2013 08:49:12 +0000 (10:49 +0200)]
variable.c: (var_set_width) traits other than width may also be set
John Darrington [Sun, 23 Jun 2013 08:33:43 +0000 (10:33 +0200)]
Split VAR_TRAIT_FORMAT into PRINT and WRITE variants
John Darrington [Sat, 22 Jun 2013 10:09:56 +0000 (12:09 +0200)]
Fix and simplify the code for converting variables between types
Before this commit, changing a variable from string to numeric or
vici-versa would cause all values of that variable to become SYSMIS.
This commit fixes this problem at least partially.
Partial fix for bug #39252
John Darrington [Sat, 22 Jun 2013 09:42:02 +0000 (11:42 +0200)]
Fix constness of datasheet_resize_column arguments
The aux variable should not be changed, so make it const
John Darrington [Sat, 22 Jun 2013 07:37:11 +0000 (09:37 +0200)]
dictionary.c: Remove the var_resized and var_display_width_changed callbacks
Remove the resized and display width changed callbacks, and
transfer their actions to the variable_changed callback.
John Darrington [Sat, 22 Jun 2013 06:25:36 +0000 (08:25 +0200)]
Changed the signature of the VARIABLE_CHANGED signal to take the WHAT and OLDVAR parameters
Re-implement signal handlers of the variable-changed signal to PsppireDict to take
the new WHAT and OLDVAR parameters.
John Darrington [Sat, 22 Jun 2013 06:14:12 +0000 (08:14 +0200)]
Added the WHAT and OLDVAR parameters to the var_changed dictionary callback
Propagate the newly implemented WHAT and OLDVAR parameters in the PsppireDict
class.
John Darrington [Sat, 22 Jun 2013 05:33:00 +0000 (07:33 +0200)]
dictionary.c: Added a oldvar parameter to the var_changed callback
The var_changed callback needs a copy of the old (unchanged) variable,
so that implementations can compare and act accordingly.
John Darrington [Sat, 22 Jun 2013 05:23:16 +0000 (07:23 +0200)]
dictionary.c: Added a WHAT argument to dict_var_changed callback
Defined some bitwise constants to indicate which aspect of a variable has
changed. Added an argument to the dict_var_changed callback taking an
argument which contains a combination of these types.
This is used in later commits to avoid the callback implementation having
to guess what exactly changed.
John Darrington [Sat, 22 Jun 2013 04:52:10 +0000 (06:52 +0200)]
variable.c: Add _quiet versions of the var_set_ methods and use in var_clone
var_clone doesn't need to provoke callbacks, since the new variable does not
(yet) have a dictionary hence the callbacks can do nothing. Also the callbacks
cause problems for later commits, since they themselves could call var_clone.
This change therefore defines _quiet versions of all the var_set methods, which
do not generate any callbacks, and uses those versions in the implementation
of var_clone.
John Darrington [Wed, 5 Jun 2013 10:33:11 +0000 (12:33 +0200)]
Minor additions and updates to the meta documentation
John Darrington [Sun, 16 Jun 2013 16:34:24 +0000 (18:34 +0200)]
Remove generation of GSignal marshallers which are no longer required
John Darrington [Sat, 15 Jun 2013 04:44:22 +0000 (06:44 +0200)]
psppire_var_type_dialog: Remove global functions which are not used
Ben Pfaff [Thu, 13 Jun 2013 07:03:51 +0000 (00:03 -0700)]
INPUT PROGRAM: Use a separate dataset for the input program.
Without this change, INPUT PROGRAM uses the same dataset as the following
syntax. This usually is fine, but there's at least one case where it
doesn't work: if the INPUT PROGRAM defines a vector, then a following
proc_execute() without any intervening transformations causes
proc_execute() to follow a "fast path" where it skips running the procedure
but instead just does a few things, like clearing the set of vectors.
Unfortunately, this means that later when the input program is really run,
it doesn't have the vectors and accesses freed memory.
This commit switches to a different tactic. INPUT PROGRAM creates a
special session and dataset that are used only for the input program. This
keeps the dataset and the transformations used for the input program
separate from those used after the input program.
Bug #39097.
Reported by John Darrington.
Ben Pfaff [Wed, 5 Jun 2013 06:25:36 +0000 (23:25 -0700)]
command.def: Disallow DATASET commands inside INPUT PROGRAM, FILE TYPE.
It doesn't make sense to try to switch datasets within INPUT PROGRAM, and
so we shouldn't allow it.
John Darrington [Fri, 7 Jun 2013 04:58:31 +0000 (06:58 +0200)]
Correct typo in documentation of SAVE TRANSLATE
John Darrington [Tue, 28 May 2013 13:52:12 +0000 (15:52 +0200)]
Text Import Dialog: Fix initialisation of pages which had got broken
Ben Pfaff [Tue, 28 May 2013 04:41:36 +0000 (21:41 -0700)]
manual: REGRESSION and DESCRIPTIVES make temp transformations permanent.
Ideally, this should not be the behavior, but it is better than the crash
we had before.
Suggested by John Darrington.
Bug #38787.
Bug #38786.
Ben Pfaff [Tue, 28 May 2013 04:28:32 +0000 (21:28 -0700)]
INPUT PROGRAM: Avoid infinite loop for trivially empty input program.
Bug #38782.
Reported by John Darrington.
Ben Pfaff [Sun, 26 May 2013 23:43:01 +0000 (16:43 -0700)]
Avoid letting data fields overflow in output and GUI.
When the output for data_out() is too big for the field width, it produces
output that consists of just asterisks: ******. This is OK when the
output is really going into a fixed-width space, such as the output for
PRINT and WRITE. But it is obnoxious if the output is going into PSPP
output or the GUI. This commit introduces a new function that typically
does not do this, and starts using it in output and the GUI.
Bug #35829.
Reported by John Darrington.
Bug #30731.
Reported by lavila <la@jump23.com>.
John Darrington [Sun, 26 May 2013 06:42:23 +0000 (08:42 +0200)]
Whitespace changes only
John Darrington [Sun, 26 May 2013 05:11:08 +0000 (07:11 +0200)]
Fix memory leak in error path of RECODE
John Darrington [Sun, 26 May 2013 05:00:02 +0000 (07:00 +0200)]
Fix memory leak in error path of LOGISTIC REGRESSION
John Darrington [Sat, 25 May 2013 18:53:31 +0000 (20:53 +0200)]
Fix memory leak in LOGISTIC command
John Darrington [Sat, 25 May 2013 18:43:45 +0000 (20:43 +0200)]
Fixed memory leak in examine command
John Darrington [Sat, 25 May 2013 18:37:14 +0000 (20:37 +0200)]
Fix leak check in oneway command
John Darrington [Sat, 25 May 2013 16:45:18 +0000 (18:45 +0200)]
Remove "slash" property from psppire_button_editable, which is not used
John Darrington [Sat, 25 May 2013 11:06:49 +0000 (13:06 +0200)]
Linear Regression Test: Provide more decimal places in test results.
This test previously had only 2 decimal places displayed, which
limited its ability to detect numerical errors. This change increases
the decimal places to 3.
The results for this test were checked against a pattern provided
by Olaf Nöhring.
John Darrington [Sat, 25 May 2013 10:54:57 +0000 (12:54 +0200)]
Regression: Use alternative formula for adjusted R-square
This is the formula given in SPSS Statistical Algorithms Ed 20.
John Darrington [Sat, 25 May 2013 10:00:12 +0000 (12:00 +0200)]
Corrected the Degrees of Freedom in the Regression Coefficient Significance
Reported and Tested by: Olaf Nöhring.
John Darrington [Sat, 18 May 2013 15:08:23 +0000 (17:08 +0200)]
Open imported files in new data window instead of overwriting the old
John Darrington [Sat, 18 May 2013 14:36:16 +0000 (16:36 +0200)]
Add hint paramater to Window Load method
Ben Pfaff [Wed, 22 May 2013 03:32:27 +0000 (20:32 -0700)]
Smake: Use glibtoolize instead of libtoolize, if it is available.
Requested by Teppo Jussmäki <jussmaki@fastmail.fm>.
Tested by Teppo Jussmäki <jussmaki@fastmail.fm>.
Ben Pfaff [Tue, 21 May 2013 06:49:54 +0000 (23:49 -0700)]
DELETE VARIABLES: Fix crash with FILTER.
FILTER has the surprising property that it introduces a temporary
transformation, even if proc_make_temporary_transformations_permanent()
was previously called. This causes a crash if the procedure implementation
really relies on there being no temporary transformations.
This commit fixes the problem in the procedures I was able to identify as
having it, adds a comment to proc_make_temporary_transformations_permanent()
to make it a little less likely to happen again, and adds a test
specifically to check for regression on DELETE VARIABLES.
Reported by John Darrington.
Bug #38843.
Ben Pfaff [Tue, 21 May 2013 05:20:18 +0000 (22:20 -0700)]
REGRESSION: Avoid use-after-free error with TEMPORARY and SAVE.
This should fix the use-after-free error, although I am not sure whether it
makes REGRESSION do exactly what it should do.
Bug #38787.
Ben Pfaff [Tue, 21 May 2013 05:14:54 +0000 (22:14 -0700)]
DESCRIPTIVES: Avoid use-after-free with TEMPORARY and Z scores.
This is not an ideal fix, but it avoids the use-after-free error that we
have had until now.
Bug #38786.
Ben Pfaff [Tue, 21 May 2013 05:54:31 +0000 (22:54 -0700)]
FLIP: Fix use-after-free and double frees with temporary transformations.
I originally thought this was a bug in FLIP, but it turned out that in
fact we just hadn't ever really tested
proc_make_temporary_transformations_permanent() properly with actual
transformations, and especially with adding a transformation after calling
proc_make_temporary_transformations_permanent().
The modified test should avoid regression for the bug.
Bug #38832.
Ben Pfaff [Tue, 21 May 2013 05:35:35 +0000 (22:35 -0700)]
DESCRIPTIVES: Fix a pair of memory leaks.
John Darrington [Mon, 20 May 2013 07:30:52 +0000 (09:30 +0200)]
Work around change in signature of the switch page callback in GtkNoteBook
John Darrington [Mon, 20 May 2013 05:00:49 +0000 (07:00 +0200)]
Fix constness problem in spreadsheet reader dialog
John Darrington [Sun, 19 May 2013 09:40:02 +0000 (11:40 +0200)]
version.c: Make the build date/time independent of locale and timezone
John Darrington [Sun, 19 May 2013 05:20:52 +0000 (07:20 +0200)]
Remove unused function
John Darrington [Sat, 18 May 2013 17:06:55 +0000 (19:06 +0200)]
Implement import dialog to import spreadsheet files.
Reviewed-by: Ben Pfaff
John Darrington [Fri, 17 May 2013 14:24:31 +0000 (16:24 +0200)]
Sort items in datasheets dropdown box.
Before this change, the values in the data sheets dropdown
box appeared in a non-deterministic order (the order in
the underlying hash), which was inconvenient to users.
This change produces the values in sorted order.
Closes bug #38921
John Darrington [Fri, 17 May 2013 08:08:49 +0000 (10:08 +0200)]
Documentation: Explain more emphatically that UPDATE/MATCH/ADD do not mutate input files.
Closes bug #38682.
John Darrington [Fri, 17 May 2013 07:55:21 +0000 (09:55 +0200)]
Cairo output: Add a bit of horizontal between table columns.
Fixes bug #34798
John Darrington [Wed, 15 May 2013 17:09:11 +0000 (19:09 +0200)]
Spreadsheet Import Dialog: Implement reset button
John Darrington [Wed, 15 May 2013 17:02:45 +0000 (19:02 +0200)]
Merge remote branch 'origin/master' into import-gui
Conflicts:
src/ui/gui/page-assistant.c
John Darrington [Wed, 15 May 2013 17:00:37 +0000 (19:00 +0200)]
Import Assistant: Fix broken reset buttons
John Darrington [Wed, 15 May 2013 16:55:29 +0000 (18:55 +0200)]
Import Assistant: Fix broken reset buttons
John Darrington [Tue, 14 May 2013 17:05:20 +0000 (19:05 +0200)]
Merge remote branch 'origin/master' into import-gui
John Darrington [Tue, 14 May 2013 11:00:37 +0000 (13:00 +0200)]
Avoid use of deprecated GtkNotebookPage
John Darrington [Tue, 14 May 2013 09:52:27 +0000 (11:52 +0200)]
PsppireButtonBox: Do not use the GtkBoxChild structure.
Avoid using Gtk features which are (soon to be) deprecated.
John Darrington [Tue, 14 May 2013 04:46:57 +0000 (06:46 +0200)]
Merge remote branch 'origin/master' into import-gui
John Darrington [Mon, 13 May 2013 17:10:29 +0000 (19:10 +0200)]
PsppSheetViewColumn: Remove inappropriate #ifndef
John Darrington [Mon, 13 May 2013 07:30:30 +0000 (09:30 +0200)]
Replaced some obsolete GTK symbols with the recommended modern ones
John Darrington [Mon, 13 May 2013 06:44:20 +0000 (08:44 +0200)]
GtkXPaned: Whitespace changes only
John Darrington [Mon, 13 May 2013 07:29:25 +0000 (09:29 +0200)]
Avoid compiler warning
John Darrington [Sun, 12 May 2013 13:40:36 +0000 (15:40 +0200)]
Update INSTALL file
John Darrington [Sun, 12 May 2013 05:41:49 +0000 (07:41 +0200)]
Updated localisations from translation-project.org
John Darrington [Sat, 11 May 2013 07:39:08 +0000 (09:39 +0200)]
Merge branch 'master' into import-gui
John Darrington [Sat, 11 May 2013 07:31:12 +0000 (09:31 +0200)]
Made _xml_char_to_int less prone to crashing
John Darrington [Sat, 11 May 2013 07:21:01 +0000 (09:21 +0200)]
Gnumeric Reader: Use symbolic value instead of literal integer
John Darrington [Sat, 11 May 2013 07:31:12 +0000 (09:31 +0200)]
Made _xml_char_to_int less prone to crashing
John Darrington [Sat, 11 May 2013 07:21:01 +0000 (09:21 +0200)]
Gnumeric Reader: Use symbolic value instead of literal integer
John Darrington [Sat, 11 May 2013 05:21:46 +0000 (07:21 +0200)]
Merge remote branch 'origin/master' into import-gui
John Darrington [Fri, 10 May 2013 11:46:13 +0000 (13:46 +0200)]
Fix corner case in calculation of trimmed mean.
The calculation of the trimmed mean was not quite correct. This
change fixes it, and adds a test.
Reported by: Olaf Nöhring.
John Darrington [Thu, 9 May 2013 17:39:15 +0000 (19:39 +0200)]
Merge branch 'master' into import-gui
Conflicts:
src/ui/gui/psppire-cell-renderer-button.c