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

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

12 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

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

12 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

12 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

12 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

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

12 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

12 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

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

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

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

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

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

12 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

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

12 years agoWorkaround runtime problem in cygwin 20120717001839/pspp 20120718001829/pspp 20120719001858/pspp 20120720001935/pspp 20120721002011/pspp 20120722001859/pspp 20120723001850/pspp 20120724002050/pspp 20120725002030/pspp 20120727001907/pspp 20120728001854/pspp 20120729001853/pspp 20120730001945/pspp 20120731001846/pspp 20120801001829/pspp 20120802002006/pspp 20120803001908/pspp 20120804001850/pspp 20120805001854/pspp 20120806001836/pspp 20120807001852/pspp 20120808001825/pspp 20120809001828/pspp 20120810001910/pspp 20120811001842/pspp 20120813001920/pspp 20120814001913/pspp 20120815001914/pspp 20120816002007/pspp 20120818002007/pspp
John Darrington [Mon, 16 Jul 2012 11:17:48 +0000 (13:17 +0200)]
Workaround runtime problem in cygwin

12 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

12 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

12 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

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

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

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

12 years agoFixed bug where psppire crashed after selecting custom currency type. 20120715002133/pspp 20120716001851/pspp
John Darrington [Sat, 14 Jul 2012 17:38:46 +0000 (19:38 +0200)]
Fixed bug where psppire crashed after selecting custom currency type.

Reviewed-by: Ben Pfaff
12 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

12 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

12 years agoPlug some memory leaks 20120714001927/pspp
John Darrington [Fri, 13 Jul 2012 19:51:57 +0000 (21:51 +0200)]
Plug some memory leaks

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

12 years agopsppire-button-editable.c: Move dispose to finalize
John Darrington [Fri, 13 Jul 2012 07:28:17 +0000 (09:28 +0200)]
psppire-button-editable.c: Move dispose to finalize

This function is releasing memory, so is inappropriate for dispose

12 years agopsppire-button-editable.c: Added stub for "editing-canceled" property
John Darrington [Fri, 13 Jul 2012 07:10:42 +0000 (09:10 +0200)]
psppire-button-editable.c: Added stub for "editing-canceled" property

We don't use this, but it avoids a GtkCritical saying that we haven't
implemented it.

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

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

12 years agopsppire-var-sheet: Refresh var sheet when variables change. 20120711001900/pspp 20120712001839/pspp 20120713001847/pspp
Ben Pfaff [Wed, 11 Jul 2012 05:08:25 +0000 (22:08 -0700)]
psppire-var-sheet: Refresh var sheet when variables change.

Otherwise changes made through popup dialogs in the variable sheet
don't necessarily show until the mouse moves across the row that
changed.

Reported by John Darrington.

12 years agoMerge "master" into "psppsheet" to obtain bug fixes from "master".
Ben Pfaff [Wed, 11 Jul 2012 04:48:01 +0000 (21:48 -0700)]
Merge "master" into "psppsheet" to obtain bug fixes from "master".

12 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

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

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

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

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

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

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

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

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

12 years agoMerge "master" into "psppsheet" to obtain bug fixes from "master". 20120709001830/pspp 20120710001843/pspp
Ben Pfaff [Mon, 9 Jul 2012 05:18:20 +0000 (22:18 -0700)]
Merge "master" into "psppsheet" to obtain bug fixes from "master".

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

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

12 years agoFix compiler warnings
John Darrington [Sun, 8 Jul 2012 10:39:12 +0000 (12:39 +0200)]
Fix compiler warnings

12 years agoPsppireDataEditor: Add comment emphasising lack of final unref of old_vbox_widget
John Darrington [Sun, 8 Jul 2012 10:25:26 +0000 (12:25 +0200)]
PsppireDataEditor: Add comment emphasising lack of final unref of old_vbox_widget

12 years agoPsppSheetView unrealize: Call parent method before any other operation
John Darrington [Sat, 7 Jul 2012 07:39:21 +0000 (09:39 +0200)]
PsppSheetView unrealize: Call parent method before any other operation

If this is not done, then gtk_widget_get_realized returns true, during
the unrealize execution, leading to mutual recursion.

12 years agoDelete module customentry
John Darrington [Sat, 7 Jul 2012 07:34:18 +0000 (09:34 +0200)]
Delete module customentry

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

12 years agoPsppireDataWindow: Deal with ui_manager in dispose routine
John Darrington [Sat, 7 Jul 2012 07:30:17 +0000 (09:30 +0200)]
PsppireDataWindow: Deal with ui_manager in dispose routine

12 years agoPsppSheetView resize handler: Do nothing if the widget is not realized
John Darrington [Sat, 7 Jul 2012 05:14:53 +0000 (07:14 +0200)]
PsppSheetView resize handler:  Do nothing if the widget is not realized

This seems to avoid the occasional GtkCritical that I get.

12 years agoReduce the flicker when redrawing the toolbar and menubar.
John Darrington [Thu, 5 Jul 2012 21:17:48 +0000 (23:17 +0200)]
Reduce the flicker when redrawing the toolbar and menubar.

12 years agopspp-sheet-view.c: Separate destroy method into finalize and dispose.
John Darrington [Thu, 5 Jul 2012 19:53:17 +0000 (21:53 +0200)]
pspp-sheet-view.c: Separate destroy method into finalize and dispose.

This still needs work to disentangle them completely, but I think this
is an improvement.

12 years agoPsppireDataStore: Move datasheet_destroy from dispose to finalize
John Darrington [Thu, 5 Jul 2012 18:33:58 +0000 (20:33 +0200)]
PsppireDataStore: Move datasheet_destroy from dispose to finalize

This actually destroys stuff, not merely unreffing.  So it belongs in finalize.

12 years agoPsppireVarSheet: Keep reference to the return value of _get_ui_manager
John Darrington [Thu, 5 Jul 2012 17:55:52 +0000 (19:55 +0200)]
PsppireVarSheet: Keep reference to the return value of _get_ui_manager

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

12 years agoPsppireVarSheet: Replace Destroy with Dispose
John Darrington [Thu, 5 Jul 2012 17:36:08 +0000 (19:36 +0200)]
PsppireVarSheet: Replace Destroy with Dispose

Also, use a statically allocated array for signal handler ids, since
it just complicates things to have a dynamically allocated one.

12 years agoPsppireCellRendererButton: Replace destroy with dispose
John Darrington [Thu, 5 Jul 2012 17:03:08 +0000 (19:03 +0200)]
PsppireCellRendererButton: Replace destroy with dispose

The destroy method did nothing except drop references, so was
appropriate for dispose.

12 years agoPsppireDataSheet: Reference handler improvements.
John Darrington [Thu, 5 Jul 2012 16:46:33 +0000 (18:46 +0200)]
PsppireDataSheet: Reference handler improvements.

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

12 years agopsppire-data-editor: Avoid ' modifier with g_string_append_printf(). 20120708001829/pspp
Ben Pfaff [Sat, 7 Jul 2012 18:39:47 +0000 (11:39 -0700)]
psppire-data-editor: Avoid ' modifier with g_string_append_printf().

On Windows, g_string_append_printf() does not understand the '
modifier, so use ds_put_format() instead, which does.

Reported by John Darrington.

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

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

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

12 years agoUse text_aa instead of solid black for sheet grid lines. 20120704001842/pspp 20120705001852/pspp 20120706001843/pspp
John Darrington [Tue, 3 Jul 2012 17:52:39 +0000 (19:52 +0200)]
Use text_aa instead of solid black for sheet grid lines.

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

12 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

12 years agopsppire-var-store: Remove. 20120625204929/pspp 20120626001903/pspp 20120627001918/pspp 20120628001950/pspp 20120629001900/pspp 20120630002026/pspp 20120701001910/pspp 20120702001907/pspp 20120703001900/pspp
Ben Pfaff [Tue, 27 Mar 2012 06:21:28 +0000 (23:21 -0700)]
psppire-var-store: Remove.

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

12 years agogoto-case-dialog: Avoid gtk critical for invalid case number.
Ben Pfaff [Fri, 23 Mar 2012 05:04:38 +0000 (22:04 -0700)]
goto-case-dialog: Avoid gtk critical for invalid case number.

I noticed this when Go To Case was invoked with an empty data
sheet, in which case the default case number is the invalid case
number 0.

12 years agogui: Speed up initial file load with many columns
Ben Pfaff [Sat, 12 Nov 2011 23:06:23 +0000 (15:06 -0800)]
gui: Speed up initial file load with many columns

This makes a huge difference in startup time when there are hundreds of
columns, by setting up the data sheet before showing the window that
contains it.

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

12 years agogtk-contrib: Remove GtkSheet-derived PsppireSheet.
Ben Pfaff [Tue, 20 Mar 2012 04:41:35 +0000 (21:41 -0700)]
gtk-contrib: Remove GtkSheet-derived PsppireSheet.

This code is no longer used.

12 years agogui: Redo var sheet, data sheet, text import with PsppSheetView.
Ben Pfaff [Tue, 24 Apr 2012 05:27:54 +0000 (22:27 -0700)]
gui: Redo var sheet, data sheet, text import with PsppSheetView.

This commit replaces the existing variable and data sheets in the
GUI by new ones based on PsppSheetView.

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

12 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

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

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

12 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
12 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
12 years agoExtract the independent samples gui from t-test.ui into its own file.
John Darrington [Sat, 2 Jun 2012 08:09:12 +0000 (10:09 +0200)]
Extract the independent samples gui from  t-test.ui into its own file.

This will benefit upcoming commits, since other (non t-test) guis are
very similar.

12 years agoRegression Dialog: Convert to PsppireDialogAction object 20120520030503/pspp 20120521030502/pspp 20120522030504/pspp 20120523030503/pspp 20120524030503/pspp 20120525030504/pspp 20120526030503/pspp 20120527030504/pspp 20120528030503/pspp 20120530030501/pspp 20120531030508/pspp 20120602060505/pspp 20120603060503/pspp 20120604060508/pspp 20120605060508/pspp 20120606060502/pspp
John Darrington [Sun, 20 May 2012 07:12:04 +0000 (09:12 +0200)]
Regression Dialog: Convert to PsppireDialogAction object

12 years agoT-TEST Independent Samples Dialog: Converted to a PsppireDialogAction object
John Darrington [Sat, 19 May 2012 09:55:12 +0000 (11:55 +0200)]
T-TEST Independent Samples Dialog: Converted to a PsppireDialogAction object

12 years agoAdd SET TVARS option. Closes bug #31566 20120515030501/pspp 20120516030503/pspp 20120517030502/pspp 20120518030503/pspp 20120519030503/pspp
John Darrington [Sun, 13 May 2012 20:25:39 +0000 (22:25 +0200)]
Add SET TVARS option. Closes bug #31566

12 years agoMinor documentation formatting changes
John Darrington [Wed, 9 May 2012 18:05:04 +0000 (20:05 +0200)]
Minor documentation formatting changes

12 years agoHISTOGRAMS: Fix bin width problems on large numbers of bins 20120510030503/pspp 20120511030508/pspp 20120512030503/pspp 20120513030508/pspp 20120514030504/pspp
John Darrington [Wed, 9 May 2012 19:21:01 +0000 (21:21 +0200)]
HISTOGRAMS: Fix bin width problems on large numbers of bins

12 years agoHistograms: Rotate labels when there are lots of bins
John Darrington [Wed, 9 May 2012 09:11:50 +0000 (11:11 +0200)]
Histograms: Rotate labels when there are lots of bins

12 years agoMove comment to correct function
John Darrington [Wed, 9 May 2012 06:43:49 +0000 (08:43 +0200)]
Move comment to correct function

12 years agoi18n: Set LC_COLLATE locale category based on system locale.
Ben Pfaff [Wed, 9 May 2012 05:04:47 +0000 (22:04 -0700)]
i18n: Set LC_COLLATE locale category based on system locale.

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

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

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

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

12 years agogui: Make lex_gtk_text_buffer_read() count bytes, not characters. 20120507030502/pspp 20120508030509/pspp 20120509030502/pspp
Ben Pfaff [Sun, 6 May 2012 15:06:57 +0000 (08:06 -0700)]
gui: Make lex_gtk_text_buffer_read() count bytes, not characters.

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

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

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

12 years agolexer: Check that 'read' function in lex_source returns valid value.
Ben Pfaff [Sun, 6 May 2012 05:07:34 +0000 (22:07 -0700)]
lexer: Check that 'read' function in lex_source returns valid value.

A 'read' function may only read as many bytes as the size of the
buffer passed into it, but the caller didn't check, which made an
actual violation of this invariant hard to diagnose.

12 years agoFrequencies.ui: Adjust widget packing properties. 20120506030509/pspp
John Darrington [Sat, 5 May 2012 18:41:25 +0000 (20:41 +0200)]
Frequencies.ui: Adjust widget packing properties.

Reported-by: Mindaugas.
12 years agofrequencies.ui: Reformat using glade-3
John Darrington [Sat, 5 May 2012 18:38:42 +0000 (20:38 +0200)]
frequencies.ui: Reformat using glade-3

12 years agoconfigure.ac: Link PSPPIRE explicitly against gthread.
Ben Pfaff [Sat, 5 May 2012 04:30:49 +0000 (21:30 -0700)]
configure.ac: Link PSPPIRE explicitly against gthread.

Seems to be required on OpenSUSE.

PSPPIRE does not make explicit use of threads, but it does use
GTimer.  Thus, it calls g_thread_init() because of the following
note in the documentation for GTimer:

    GTimer uses a higher-quality clock when thread support is
    available.  Therefore, calling g_thread_init() while timers
    are running may lead to unreliable results.  It is best to
    call g_thread_init() before starting any timers, if you are
    using threads at all.

Separately, the documentation for threads in Glib says:

    Calling g_thread_init() with a NULL argument is somewhat more
    relaxed.  You may call any other glib functions in the main
    thread before g_thread_init() as long as g_thread_init() is
    not called from a glib callback, or with any locks held.
    However, many libraries above glib does not support late
    initialization of threads, so doing this should be avoided if
    possible.

    Please note that since version 2.24 the GObject
    initialization function g_type_init() initializes threads
    (with a NULL argument), so most applications, including those
    using Gtk+ will run with threads enabled.  If you want a
    special thread implementation, make sure you call
    g_thread_init() before g_type_init() is called.

Taken together, it seems to imply that PSPPIRE should call
g_thread_init() before g_timer_new(), or the timer might be
unreliable because Glib would call it later for us.  But the
documentation doesn't seem entirely clear.

Reported by Mindaugas.
Bug #36396.

12 years agoMEANS: Use var_to_string instead of var_get_name for factor variable display 20120502030502/pspp 20120503030502/pspp 20120504030503/pspp 20120505030504/pspp
John Darrington [Tue, 1 May 2012 16:35:36 +0000 (18:35 +0200)]
MEANS: Use var_to_string instead of var_get_name for factor variable display

12 years agoFrequencies dialog: Add Mnemonics
John Darrington [Tue, 1 May 2012 12:17:27 +0000 (14:17 +0200)]
Frequencies dialog: Add Mnemonics

12 years agorange-tower-test: Fix test failures on 64-bit architectures.
Ben Pfaff [Tue, 1 May 2012 05:11:06 +0000 (22:11 -0700)]
range-tower-test: Fix test failures on 64-bit architectures.

Reported by 'gandalfar' on #pspp.

12 years agoIndependent T-TEST Dialog: Use PsppireValueEntry in the group value definition sub...
John Darrington [Sun, 29 Apr 2012 22:07:55 +0000 (00:07 +0200)]
Independent T-TEST Dialog: Use PsppireValueEntry in the group value definition sub-dialog

12 years agoConverted Factor Dialog to PsppireDialogAction class 20120430030504/pspp
John Darrington [Sun, 29 Apr 2012 05:56:07 +0000 (07:56 +0200)]
Converted Factor Dialog to PsppireDialogAction class

12 years agoConvert Rank Dialog to PsppireDialogAction 20120429030503/pspp
John Darrington [Sat, 28 Apr 2012 18:24:43 +0000 (20:24 +0200)]
Convert Rank Dialog to PsppireDialogAction

12 years agoUnref GtkBuilder objects when they are no longer required
John Darrington [Sat, 28 Apr 2012 14:11:10 +0000 (16:11 +0200)]
Unref GtkBuilder objects when they are no longer required