pspp
11 years agoPerl Module: Avoid forcing scalar value into a pointer. 20120912030512/pspp
John Darrington [Wed, 12 Sep 2012 07:26:21 +0000 (09:26 +0200)]
Perl Module: Avoid forcing scalar value into a pointer.

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

Reviewed-By: Ben Pfaff
11 years agoUpdate widgets.c from psppsheet branch 20120826000503/pspp 20120910030509/pspp 20120911030519/pspp
John Darrington [Sat, 25 Aug 2012 16:58:31 +0000 (18:58 +0200)]
Update widgets.c from psppsheet branch

11 years agoFix memory leak in sys-file-reader.c 20120822000503/pspp 20120823000504/pspp 20120824000503/pspp 20120825000503/pspp
John Darrington [Wed, 22 Aug 2012 04:46:18 +0000 (06:46 +0200)]
Fix memory leak in sys-file-reader.c

11 years agoref count the linreg structure so as to avoid double free problems 20120821000505/pspp
John Darrington [Mon, 20 Aug 2012 19:32:11 +0000 (21:32 +0200)]
ref count the linreg structure so as to avoid double free problems

11 years agosys-file-reader: Fix setjmp() technicality. 20120820000504/pspp
Ben Pfaff [Mon, 20 Aug 2012 07:00:33 +0000 (00:00 -0700)]
sys-file-reader: Fix setjmp() technicality.

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

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

11 years agosys-file-reader: Fix memory leak.
Ben Pfaff [Mon, 20 Aug 2012 06:59:47 +0000 (23:59 -0700)]
sys-file-reader: Fix memory leak.

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

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

11 years agomissing-val-dialog: Convert to a GObject.
Ben Pfaff [Sun, 19 Aug 2012 18:36:16 +0000 (11:36 -0700)]
missing-val-dialog: Convert to a GObject.

11 years agomissing-val-dialog: Avoid destroying uninitialized data.
Ben Pfaff [Sun, 19 Aug 2012 18:41:25 +0000 (11:41 -0700)]
missing-val-dialog: Avoid destroying uninitialized data.

If text_to_value() fails for low_val, then this code would still
destroy high_val, even though high_val hadn't been initialized,
thus accessing indeterminate data.

This also eliminates some redundancy in the code.

11 years agogui: Rename var-sheet-dialogs.ui to missing-val-dialog.ui.
Ben Pfaff [Sat, 18 Aug 2012 22:31:09 +0000 (15:31 -0700)]
gui: Rename var-sheet-dialogs.ui to missing-val-dialog.ui.

The msising value dialog is the only dialog left in this UI file.

11 years agopsppire-dialog: Add "acceptable" predicate.
Ben Pfaff [Sun, 19 Aug 2012 17:30:36 +0000 (10:30 -0700)]
psppire-dialog: Add "acceptable" predicate.

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

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

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

11 years agoval-labs-dialog, var-type-dialog: Make these dialogs modal.
Ben Pfaff [Sun, 19 Aug 2012 18:36:42 +0000 (11:36 -0700)]
val-labs-dialog, var-type-dialog: Make these dialogs modal.

I missed this in the initial conversion.

11 years agoval-labs-dialog: Remove unused 'window' member.
Ben Pfaff [Sun, 19 Aug 2012 17:30:53 +0000 (10:30 -0700)]
val-labs-dialog: Remove unused 'window' member.

11 years agopsppire-var-sheet: Remove unneeded #include from header.
Ben Pfaff [Sat, 18 Aug 2012 19:28:37 +0000 (12:28 -0700)]
psppire-var-sheet: Remove unneeded #include from header.

11 years agoval-labs-dialog: Convert to a GObject.
Ben Pfaff [Sat, 18 Aug 2012 19:26:03 +0000 (12:26 -0700)]
val-labs-dialog: Convert to a GObject.

11 years agogui: Factor new text_to_value__() function out of text_to_value().
Ben Pfaff [Sat, 18 Aug 2012 19:17:01 +0000 (12:17 -0700)]
gui: Factor new text_to_value__() function out of text_to_value().

I intend to use this in an upcoming commit.

11 years agovar-type-dialog: Fix memory leak.
Ben Pfaff [Sat, 18 Aug 2012 19:24:21 +0000 (12:24 -0700)]
var-type-dialog: Fix memory leak.

11 years agoFixed memory leak in FACTOR 20120815000501/pspp 20120816000504/pspp 20120817000503/pspp 20120818000505/pspp
John Darrington [Wed, 15 Aug 2012 05:03:56 +0000 (07:03 +0200)]
Fixed memory leak in FACTOR

11 years agoFix leaks in REGRESSION
John Darrington [Tue, 14 Aug 2012 19:49:26 +0000 (21:49 +0200)]
Fix leaks in REGRESSION

11 years agoFixed the remaining leaks in AUTORECODE
John Darrington [Tue, 14 Aug 2012 18:11:09 +0000 (20:11 +0200)]
Fixed the remaining leaks in AUTORECODE

11 years agoFix leaks in MEANS command
John Darrington [Mon, 13 Aug 2012 19:13:56 +0000 (21:13 +0200)]
Fix leaks in MEANS command

11 years agofix some of the leaks in the AUTORECODE command 20120813000504/pspp 20120814000503/pspp
John Darrington [Sun, 12 Aug 2012 17:51:19 +0000 (19:51 +0200)]
fix some of the leaks in the AUTORECODE command

11 years agoFixed remaining leaks in ONEWAY
John Darrington [Sun, 12 Aug 2012 14:29:38 +0000 (16:29 +0200)]
Fixed remaining leaks in ONEWAY

11 years agoFix memory leaks in ONEWAY command
John Darrington [Sun, 12 Aug 2012 11:33:09 +0000 (13:33 +0200)]
Fix memory leaks in ONEWAY command

11 years agovar-type-dialog: Convert to a GObject.
Ben Pfaff [Thu, 9 Aug 2012 06:27:32 +0000 (23:27 -0700)]
var-type-dialog: Convert to a GObject.

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

11 years agosrc/math/categoricals.c: Remove inappropriate const qualifier 20120811000504/pspp
John Darrington [Sat, 11 Aug 2012 06:15:59 +0000 (08:15 +0200)]
src/math/categoricals.c: Remove inappropriate const qualifier

11 years agovariable: Skip callback if new format is same as old format. 20120809000508/pspp 20120810000503/pspp
Ben Pfaff [Thu, 9 Aug 2012 06:17:36 +0000 (23:17 -0700)]
variable: Skip callback if new format is same as old format.

Seems fairly worthwhile.

11 years agoFixed one of the leaks in MEANS 20120808000503/pspp
John Darrington [Sun, 5 Aug 2012 16:00:36 +0000 (18:00 +0200)]
Fixed one of the leaks in MEANS

11 years agoFix leaks in RELIABILITY command 20120806000503/pspp 20120807000505/pspp
John Darrington [Sun, 5 Aug 2012 14:57:04 +0000 (16:57 +0200)]
Fix leaks in RELIABILITY command

11 years agoFixed leak in Chi-Squared test 20120804000503/pspp 20120805000504/pspp
John Darrington [Sat, 4 Aug 2012 05:26:07 +0000 (07:26 +0200)]
Fixed leak in Chi-Squared test

11 years agocategoricals.c (struct payload): Rename destroy to calculate
John Darrington [Sat, 4 Aug 2012 05:04:47 +0000 (07:04 +0200)]
categoricals.c (struct payload): Rename destroy to calculate

11 years agoONEWAY: call categoricals_done only once
John Darrington [Sat, 4 Aug 2012 04:48:30 +0000 (06:48 +0200)]
ONEWAY: call categoricals_done only once

11 years agoMake categoricals own its interactions
John Darrington [Fri, 3 Aug 2012 19:35:11 +0000 (21:35 +0200)]
Make categoricals own its interactions

11 years agoFix leak in render-test 20120803000505/pspp
John Darrington [Thu, 2 Aug 2012 18:54:18 +0000 (20:54 +0200)]
Fix leak in render-test

11 years agosys-file-reader.c: Fix leak in parse_mrsets 20120802000504/pspp
John Darrington [Wed, 1 Aug 2012 19:22:11 +0000 (21:22 +0200)]
sys-file-reader.c: Fix leak in parse_mrsets

11 years agoods-reader: Fix ods_file_casereader_destroy() call in open function. 20120801000505/pspp
Ben Pfaff [Wed, 1 Aug 2012 05:55:30 +0000 (22:55 -0700)]
ods-reader: Fix ods_file_casereader_destroy() call in open function.

zreader is a "struct zip_reader *" but ods_file_casereader_destroy()
takes a "struct casereader *".  However ods_file_casereader_destroy()
doesn't actually use that argument so we might as well pass NULL.

11 years agoFix leak in psppire-lex-reader.c
John Darrington [Tue, 31 Jul 2012 17:38:51 +0000 (19:38 +0200)]
Fix leak in psppire-lex-reader.c

11 years agoFACTOR: Fix warning about discarding const qualifier. 20120731000506/pspp
Ben Pfaff [Tue, 31 Jul 2012 06:16:39 +0000 (23:16 -0700)]
FACTOR: Fix warning about discarding const qualifier.

11 years agovar-type-dialog: Change entries to spin buttons, add validation.
Ben Pfaff [Mon, 30 Jul 2012 06:56:09 +0000 (23:56 -0700)]
var-type-dialog: Change entries to spin buttons, add validation.

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

11 years agovar-type-dialog: Reduce redundancy further.
Ben Pfaff [Mon, 30 Jul 2012 06:09:09 +0000 (23:09 -0700)]
var-type-dialog: Reduce redundancy further.

set_format_from_treeview() and set_format_type_from_treeview() were
mostly common code.

11 years agovar-type-dialog: Reduce redundancy.
Ben Pfaff [Sat, 28 Jul 2012 21:18:40 +0000 (14:18 -0700)]
var-type-dialog: Reduce redundancy.

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

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

11 years agovar-type-dialog: Properly adjust formats when switching buttons.
Ben Pfaff [Fri, 27 Jul 2012 06:21:54 +0000 (23:21 -0700)]
var-type-dialog: Properly adjust formats when switching buttons.

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

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

11 years agoFixed a second ONEWAY leak 20120730000505/pspp
John Darrington [Sun, 29 Jul 2012 18:59:12 +0000 (20:59 +0200)]
Fixed a second ONEWAY leak

11 years agoFix one of the leaks in ONEWAY
John Darrington [Sun, 29 Jul 2012 18:54:16 +0000 (20:54 +0200)]
Fix one of the leaks in ONEWAY

11 years agoFix memory leak in Chisquare
John Darrington [Sun, 29 Jul 2012 13:12:26 +0000 (15:12 +0200)]
Fix memory leak in Chisquare

11 years agoFix memory leak in AGGREGATE command
John Darrington [Sun, 29 Jul 2012 12:49:32 +0000 (14:49 +0200)]
Fix memory leak in AGGREGATE command

11 years agoFix memory leak in dictionary.c
John Darrington [Sun, 29 Jul 2012 11:37:41 +0000 (13:37 +0200)]
Fix memory leak in dictionary.c

11 years agoFix leaks in ODS reader
John Darrington [Sun, 29 Jul 2012 09:22:13 +0000 (11:22 +0200)]
Fix leaks in ODS reader

11 years agoFixed a memory leak in sparse-xarray-test.c
John Darrington [Sun, 29 Jul 2012 06:05:00 +0000 (08:05 +0200)]
Fixed a memory leak in sparse-xarray-test.c

11 years agoREADME.Git - Update the gnulib commit number to include memory leak fix
John Darrington [Sun, 29 Jul 2012 04:55:14 +0000 (06:55 +0200)]
README.Git - Update the gnulib commit number to include memory leak fix

11 years agoFixed some of the leaks in REGRESSION 20120729000504/pspp
John Darrington [Sat, 28 Jul 2012 16:27:22 +0000 (18:27 +0200)]
Fixed some of the leaks in REGRESSION

11 years agoFixed memory leaks in FACTOR
John Darrington [Sat, 28 Jul 2012 15:00:32 +0000 (17:00 +0200)]
Fixed memory leaks in FACTOR

11 years agoFix leak in u8-istream-test.c
John Darrington [Sat, 28 Jul 2012 11:13:08 +0000 (13:13 +0200)]
Fix leak in u8-istream-test.c

11 years agoFix typo in include-path.c which was causing memory leaks.
John Darrington [Sat, 28 Jul 2012 10:44:26 +0000 (12:44 +0200)]
Fix typo in include-path.c which was causing memory leaks.

11 years agoFix memory leak in encoding-guesser-test
John Darrington [Sat, 28 Jul 2012 08:33:44 +0000 (10:33 +0200)]
Fix memory leak in encoding-guesser-test

11 years agoFix memory leak in format-guesser-test.c
John Darrington [Sat, 28 Jul 2012 07:52:46 +0000 (09:52 +0200)]
Fix memory leak in format-guesser-test.c

11 years agoFix memory leak in datasheet-test.c
John Darrington [Sat, 28 Jul 2012 07:52:09 +0000 (09:52 +0200)]
Fix memory leak in datasheet-test.c

11 years agodict_clone: Fix memory leak. 20120728000505/pspp
John Darrington [Fri, 27 Jul 2012 19:59:54 +0000 (21:59 +0200)]
dict_clone: Fix memory leak.

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

Reviewed-by: Ben Pfaff.
11 years agodatasehhet.c: Fix memory leak 20120724000504/pspp 20120725000503/pspp 20120726000503/pspp 20120727000502/pspp
John Darrington [Mon, 23 Jul 2012 20:45:57 +0000 (22:45 +0200)]
datasehhet.c: Fix memory leak

11 years agoscan-test.c: Fix memory leak 20120723000505/pspp
John Darrington [Sun, 22 Jul 2012 16:26:06 +0000 (18:26 +0200)]
scan-test.c: Fix memory leak

11 years agoFixed memory leaks coming from file-handle-def.c
John Darrington [Sun, 22 Jul 2012 16:20:36 +0000 (18:20 +0200)]
Fixed memory leaks coming from file-handle-def.c

11 years agovar-type-dialog: Use fmt_date_template() to reduce duplication. 20120718000506/pspp 20120719000503/pspp 20120720000504/pspp 20120721000505/pspp 20120722000503/pspp
Ben Pfaff [Tue, 17 Jul 2012 06:44:52 +0000 (23:44 -0700)]
var-type-dialog: Use fmt_date_template() to reduce duplication.

I believe that it should be possible to merge more code together
later.

11 years agoformat: Make fmt_date_template() human-friendly, respect field width.
Ben Pfaff [Tue, 17 Jul 2012 06:36:30 +0000 (23:36 -0700)]
format: Make fmt_date_template() human-friendly, respect field width.

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

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

11 years agovar-type-dialog: Use G_TYPE_INT to store an int.
Ben Pfaff [Tue, 17 Jul 2012 05:28:44 +0000 (22:28 -0700)]
var-type-dialog: Use G_TYPE_INT to store an int.

It seems more straightforward to store an int by value than by
pointer.

11 years agovar-type-dialog: Fix possible memory leaks.
Ben Pfaff [Tue, 17 Jul 2012 05:28:14 +0000 (22:28 -0700)]
var-type-dialog: Fix possible memory leaks.

gtk_tree_model_get_value() documentation says:

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

but none of the users in this file did that.

11 years agovar-type-dialog: Avoid string copy setting up currency treeview.
Ben Pfaff [Tue, 17 Jul 2012 05:20:42 +0000 (22:20 -0700)]
var-type-dialog: Avoid string copy setting up currency treeview.

The return value of fmt_name() is perfectly suitable here.

11 years agoFixed leak in aggregate dialog 20120717000504/pspp
John Darrington [Mon, 16 Jul 2012 20:02:45 +0000 (22:02 +0200)]
Fixed leak in aggregate dialog

11 years agoPsppireWindow and PsppireDialog: Use correct the parent structures.
John Darrington [Mon, 16 Jul 2012 19:10:40 +0000 (21:10 +0200)]
PsppireWindow and PsppireDialog: Use correct the parent structures.

This change makes the structure declarations agree with the class definition.

11 years agoGET DATA: Fix memory leak 20120716000503/pspp
John Darrington [Sun, 15 Jul 2012 12:59:30 +0000 (14:59 +0200)]
GET DATA: Fix memory leak

11 years agoFix memory leak in odt driver
John Darrington [Sun, 15 Jul 2012 12:59:11 +0000 (14:59 +0200)]
Fix memory leak in odt driver

11 years agoFix some of the memory leaks in MEANS
John Darrington [Sun, 15 Jul 2012 09:19:44 +0000 (11:19 +0200)]
Fix some of the memory leaks in MEANS

11 years agoDO REPEAT: Fix memory leak
John Darrington [Sun, 15 Jul 2012 09:09:06 +0000 (11:09 +0200)]
DO REPEAT: Fix memory leak

11 years agotext-data-import-dialog: Convert input lines to UTF-8 upon read. 20120715000502/pspp
Ben Pfaff [Sat, 14 Jul 2012 18:17:59 +0000 (11:17 -0700)]
text-data-import-dialog: Convert input lines to UTF-8 upon read.

Otherwise we can try to display, e.g., ISO 8859-1 with Pango, which
only supports UTF-8, and we get a Gtk-CRITICAL as a result.

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

11 years agou8-istream: Retry read upon EINTR.
Ben Pfaff [Sat, 14 Jul 2012 18:17:07 +0000 (11:17 -0700)]
u8-istream: Retry read upon EINTR.

This seems unlikely to be a problem, since we're normally dealing
with regular files, for which reads are uninterruptible, but it
can't hurt.

11 years agoData file reader: Avoid crash after failing to open file
John Darrington [Sat, 14 Jul 2012 12:18:08 +0000 (14:18 +0200)]
Data file reader: Avoid crash after failing to open file

11 years agocairo.c (apply_options): Fix potential memory leak
John Darrington [Sat, 14 Jul 2012 11:42:00 +0000 (13:42 +0200)]
cairo.c (apply_options): Fix potential memory leak

This function may be called more than once.  So we need to deallocte the old values before
creating new ones

11 years agoREADME: Remove sentance about being first release with a GUI 20120714000503/pspp
John Darrington [Fri, 13 Jul 2012 17:06:02 +0000 (19:06 +0200)]
README: Remove sentance about being first release with a GUI

This is no longer true.

11 years agovar-type-dialog: Move UI into separate .ui file.
Ben Pfaff [Fri, 13 Jul 2012 06:41:52 +0000 (23:41 -0700)]
var-type-dialog: Move UI into separate .ui file.

Putting the UI for a .c file into its own .ui file seems like a good
practice.  It leads to fewer merge conflicts, for example.

11 years agovar-type-dialog: Avoid static variables.
Ben Pfaff [Fri, 13 Jul 2012 06:32:19 +0000 (23:32 -0700)]
var-type-dialog: Avoid static variables.

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

11 years agoPsppireVarStore: Fix memory leak 20120711000504/pspp 20120712000504/pspp 20120713000505/pspp
John Darrington [Tue, 10 Jul 2012 17:02:47 +0000 (19:02 +0200)]
PsppireVarStore: Fix memory leak

11 years agoPsppireDataEditor: No longer keep a reference to the data window.
John Darrington [Tue, 10 Jul 2012 16:41:31 +0000 (18:41 +0200)]
PsppireDataEditor: No longer keep a reference to the data window.

11 years agopsppire-window-base: Avoid memory leak in get_window_id(). 20120710000508/pspp
Ben Pfaff [Tue, 10 Jul 2012 04:54:39 +0000 (21:54 -0700)]
psppire-window-base: Avoid memory leak in get_window_id().

g_object_get() returns a string copy, so the caller has to free it,
but gtk_widget_get_name() gets the same string without a copy.

Found by valgrind.

11 years agopsppire-data-window: Destroy dataset from finalize.
Ben Pfaff [Tue, 10 Jul 2012 04:47:02 +0000 (21:47 -0700)]
psppire-data-window: Destroy dataset from finalize.

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

11 years agopsppire-data-window: Avoid reference leak to PsppireDict.
Ben Pfaff [Tue, 10 Jul 2012 04:36:31 +0000 (21:36 -0700)]
psppire-data-window: Avoid reference leak to PsppireDict.

psppire_var_store_new() takes its own reference to PsppireDict so
the original reference owned by psppire_data_window_finish_init()
wasn't getting tracked anywhere.

11 years agoFixed memory leak in cairo driver.
John Darrington [Mon, 9 Jul 2012 20:44:13 +0000 (22:44 +0200)]
Fixed memory leak in cairo driver.

11 years agopsppire-data-editor: Unref old data_window upon change. 20120709000503/pspp
Ben Pfaff [Mon, 9 Jul 2012 06:27:52 +0000 (23:27 -0700)]
psppire-data-editor: Unref old data_window upon change.

Otherwise there's a reference leak.

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

11 years agopsppire-data-window: Delete dataset when closing window.
Ben Pfaff [Sun, 8 Jul 2012 06:44:37 +0000 (23:44 -0700)]
psppire-data-window: Delete dataset when closing window.

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

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

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

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

11 years agopsppire-var-store: Chain up to correct parent method from "dispose".
Ben Pfaff [Mon, 9 Jul 2012 06:04:49 +0000 (23:04 -0700)]
psppire-var-store: Chain up to correct parent method from "dispose".

I'm pretty sure that "dispose" should not chain up to "finalize".

11 years agopsppire-dict: Make PsppireDict not own its "struct dictionary".
Ben Pfaff [Sat, 7 Jul 2012 20:00:19 +0000 (13:00 -0700)]
psppire-dict: Make PsppireDict not own its "struct dictionary".

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

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

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

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

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

Reported by John Darrington.

11 years agogui: Fix Glib-GObject-WARNING when closing the active dataset.
Ben Pfaff [Mon, 9 Jul 2012 05:12:49 +0000 (22:12 -0700)]
gui: Fix Glib-GObject-WARNING when closing the active dataset.

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

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

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

11 years agopo: Update Slovenian translation from translationproject.org. 20120708000503/pspp
Ben Pfaff [Sat, 7 Jul 2012 17:28:47 +0000 (10:28 -0700)]
po: Update Slovenian translation from translationproject.org.

11 years agoFixed crash in two sample npar tests with (paired)
John Darrington [Fri, 6 Jul 2012 14:30:14 +0000 (16:30 +0200)]
Fixed crash in two sample npar tests with (paired)

This change fixes a bug where an assertion would
fire if a two sample npar test was given where
a variable appeared twice in a variable list.

11 years agoDocumentation: correct punctuation and grammar
John Darrington [Wed, 4 Jul 2012 20:28:25 +0000 (22:28 +0200)]
Documentation: correct punctuation and grammar

11 years agoNew Slovenian localisation from http://translationproject.org 20120702000514/pspp 20120703000504/pspp 20120704000504/pspp 20120705000505/pspp 20120706000503/pspp
John Darrington [Sun, 1 Jul 2012 11:25:31 +0000 (13:25 +0200)]
New Slovenian localisation from  translationproject.org

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

11 years agoReadme.Git: Update gnulib SHA to include fixes for windows tempfile issues 20120621000503/pspp 20120622000503/pspp 20120623000503/pspp 20120624000504/pspp 20120625000504/pspp 20120625203456/pspp 20120626000502/pspp 20120627000503/pspp 20120628000505/pspp 20120629000503/pspp 20120630000506/pspp 20120701000504/pspp
John Darrington [Wed, 20 Jun 2012 21:54:32 +0000 (23:54 +0200)]
Readme.Git: Update gnulib SHA to include fixes for windows tempfile issues

11 years agotext-data-import-dialog: Allow user to choose input encoding.
Ben Pfaff [Wed, 20 Jun 2012 06:09:25 +0000 (23:09 -0700)]
text-data-import-dialog: Allow user to choose input encoding.

Otherwise only automatically detected encodings can be used.

Debian bug #676371.
Reported-by: Gunther Furtado <gunfurtado@gmail.com>
11 years agoAdd ENCODING subcommand to several commands.
Ben Pfaff [Wed, 20 Jun 2012 05:43:24 +0000 (22:43 -0700)]
Add ENCODING subcommand to several commands.

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

Debian bug #676371.
Reported-by: Gunther Furtado <gunfurtado@gmail.com>
11 years agoline-reader: New library for reading a file line-by-line.
Ben Pfaff [Sat, 19 Mar 2011 23:26:55 +0000 (16:26 -0700)]
line-reader: New library for reading a file line-by-line.

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

11 years agoPRINT SPACE: Fix missing fh_unref() on error path.
Ben Pfaff [Tue, 17 Apr 2012 06:02:29 +0000 (23:02 -0700)]
PRINT SPACE: Fix missing fh_unref() on error path.

The first "return" in this function failed to unref the handle.

11 years agoext-array.c: Ensure that fseek is called before switching between read and write. 20120616000502/pspp 20120617000503/pspp 20120618000503/pspp 20120619000503/pspp 20120620000508/pspp
John Darrington [Fri, 15 Jun 2012 18:29:24 +0000 (20:29 +0200)]
ext-array.c: Ensure that fseek is called before switching between read and write.

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

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

Reviewed-by: Ben Pfaff
11 years agoCORRELATIONS: Fixed bug displaying non-sqaure correlation matrices 20120608060502/pspp 20120610000508/pspp 20120611000503/pspp 20120612000502/pspp 20120613000503/pspp 20120614000503/pspp 20120615000509/pspp
John Darrington [Thu, 7 Jun 2012 19:20:22 +0000 (21:20 +0200)]
CORRELATIONS: Fixed bug displaying non-sqaure correlation matrices

When CORRELATIONS was run using the WITH keyword, the wrong index
was calculated for the columns/rows - hence the program crashed.
This change fixes that.

Reported-by: Ebel Magnin