pspp
11 years agoMerge 'master' into 'psppsheet'. 20121113032021/pspp 20121114032001/pspp 20121115031953/pspp 20121116032036/pspp 20121117032022/pspp 20121118032021/pspp 20121119031957/pspp 20121120031954/pspp 20121121031958/pspp 20121122032007/pspp 20121123032005/pspp 20121124032004/pspp 20121125032007/pspp 20121126032010/pspp 20121127031956/pspp 20121128032039/pspp 20121129032043/pspp 20121130032031/pspp
Ben Pfaff [Mon, 12 Nov 2012 16:57:34 +0000 (08:57 -0800)]
Merge 'master' into 'psppsheet'.

11 years agoLogistic Regression: Added categorical variable support 20121112030504/pspp 20121113030502/pspp
John Darrington [Sun, 11 Nov 2012 13:19:05 +0000 (14:19 +0100)]
Logistic Regression: Added categorical variable support

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

11 years agopspp-sheet-view: Make Home and End go to left and right of sheet. 20121111031848/pspp 20121112032014/pspp
Ben Pfaff [Sat, 10 Nov 2012 22:12:49 +0000 (14:12 -0800)]
pspp-sheet-view: Make Home and End go to left and right of sheet.

Requested by rocko mazuki <rockorocko@gmail.com>.

11 years agopspp-sheet-view: Enable Home and End in sheet.
Ben Pfaff [Sat, 10 Nov 2012 22:11:55 +0000 (14:11 -0800)]
pspp-sheet-view: Enable Home and End in sheet.

However, they go to the top and bottom.

11 years agopspp-sheet-view: Refactor pspp_sheet_view_event().
Ben Pfaff [Sat, 10 Nov 2012 22:09:21 +0000 (14:09 -0800)]
pspp-sheet-view: Refactor pspp_sheet_view_event().

This form seems easier to extend to new key combinations that include
Cnotrol or Shift or Alt.

11 years agogui: Rename psppire_data_sheet_show_variable(). 20121109031952/pspp 20121110032021/pspp
Ben Pfaff [Fri, 9 Nov 2012 06:51:52 +0000 (22:51 -0800)]
gui: Rename psppire_data_sheet_show_variable().

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

11 years agopsppire-data-sheet: Set cursor on row in psppire_data_sheet_show_variable().
Ben Pfaff [Fri, 9 Nov 2012 06:51:08 +0000 (22:51 -0800)]
psppire-data-sheet: Set cursor on row in psppire_data_sheet_show_variable().

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

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

11 years agopsppire-button-editable: Fix infinite recursion in button-release-event.
Ben Pfaff [Fri, 9 Nov 2012 06:10:58 +0000 (22:10 -0800)]
psppire-button-editable: Fix infinite recursion in button-release-event.

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

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

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

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

Reported by John Darrington.

11 years agoCategoricals.c: Ensure that categories are processed order of their categorical varia... 20121109030502/pspp 20121110030502/pspp 20121111030502/pspp
John Darrington [Thu, 8 Nov 2012 13:33:51 +0000 (14:33 +0100)]
Categoricals.c: Ensure that categories are processed order of their categorical variable(s).

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

11 years agoCategoricals: Provide separate functions for effects and dummy coding. 20121107030502/pspp 20121108030503/pspp
John Darrington [Tue, 6 Nov 2012 19:50:33 +0000 (20:50 +0100)]
Categoricals: Provide separate functions for effects and dummy coding.

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

Conflicts:

src/language/stats/logistic.c

11 years agoFixed some compiler warnings, which arose from recent commits. 20121105030504/pspp 20121106030502/pspp
John Darrington [Sun, 4 Nov 2012 16:14:13 +0000 (17:14 +0100)]
Fixed some compiler warnings, which arose from recent commits.

11 years agoAdded mnemonics to rank types dialog 20121104030502/pspp
John Darrington [Sat, 3 Nov 2012 10:19:13 +0000 (11:19 +0100)]
Added mnemonics to rank types dialog

11 years agoAdded markup to GUI elements where necessary 20121103030503/pspp
John Darrington [Fri, 2 Nov 2012 15:33:06 +0000 (16:33 +0100)]
Added markup to GUI elements where necessary

11 years agoFix bug in parse_design_interaction.
John Darrington [Fri, 2 Nov 2012 14:36:00 +0000 (15:36 +0100)]
Fix bug in parse_design_interaction.

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

11 years agoCategoricals: Accept null pointer as subject.
John Darrington [Fri, 2 Nov 2012 14:31:45 +0000 (15:31 +0100)]
Categoricals: Accept null pointer as subject.

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

11 years agocateoricals.c categoricals.h clean up.
John Darrington [Fri, 2 Nov 2012 14:24:12 +0000 (15:24 +0100)]
cateoricals.c categoricals.h clean up.

Removed a prototype whose implementation no longer exists.
Added a few comments.
Whitespace changes.

11 years agoAdded mnemonic to t-test options dialog 20121102030504/pspp
John Darrington [Thu, 1 Nov 2012 21:30:53 +0000 (22:30 +0100)]
Added mnemonic to t-test options dialog

11 years agoAdded Mnemonics to the value chooser widget and to the recode dialog.
John Darrington [Thu, 1 Nov 2012 17:44:17 +0000 (18:44 +0100)]
Added Mnemonics to the value chooser widget and to the recode dialog.

11 years agoAdded markup to the spilt-file dialog 20121101030507/pspp
John Darrington [Thu, 1 Nov 2012 06:14:41 +0000 (07:14 +0100)]
Added markup to the spilt-file dialog

11 years agoCompute Dialog: Add mnemonics and focus widgets on activation. 20121031030502/pspp
John Darrington [Tue, 30 Oct 2012 18:22:47 +0000 (19:22 +0100)]
Compute Dialog: Add mnemonics and focus widgets on activation.

11 years agologistic.c: Fix read from uninitialised memory. 20121030030503/pspp
John Darrington [Tue, 30 Oct 2012 05:54:09 +0000 (06:54 +0100)]
logistic.c: Fix read from uninitialised memory.

Found-by valgrind.

11 years agopspp-sheet-view: Fix warning using arrow keys to navigate column buttons. 20121029032029/pspp 20121030031955/pspp 20121031031956/pspp 20121101032031/pspp 20121102032007/pspp 20121103032004/pspp 20121104032009/pspp 20121105032017/pspp 20121106032209/pspp 20121107031955/pspp 20121108032020/pspp
Ben Pfaff [Sun, 28 Oct 2012 20:22:33 +0000 (13:22 -0700)]
pspp-sheet-view: Fix warning using arrow keys to navigate column buttons.

Before this commit, clicking on a column head button in the data sheet,
then holding down the right arrow key until the data sheet began to scroll
right would often produce a warning of the form:

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

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

11 years agoMerge 'master' into 'psppsheet'.
Ben Pfaff [Sun, 28 Oct 2012 20:02:13 +0000 (13:02 -0700)]
Merge 'master' into 'psppsheet'.

11 years agopspp-sheet-view: Make Shift+Tab select only one cell when switching rows.
Ben Pfaff [Sun, 28 Oct 2012 20:01:47 +0000 (13:01 -0700)]
pspp-sheet-view: Make Shift+Tab select only one cell when switching rows.

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

Reported by John Darrington.

11 years agoMove function parse_design_interaction into variable-parser.c
John Darrington [Sun, 28 Oct 2012 09:16:01 +0000 (10:16 +0100)]
Move function parse_design_interaction into variable-parser.c

This function is (or will be) used by several procedures, so
make it public.

11 years agoglm.c: (lex_match_variable and parse_design_interaction) remove dependence on struct glm
John Darrington [Sun, 28 Oct 2012 08:36:35 +0000 (09:36 +0100)]
glm.c: (lex_match_variable and parse_design_interaction) remove dependence on struct glm

Made these functions independent of struct glm, so that they can potentially be reused
for other procedures.

11 years agoAnova Dialog: Fix widget associations 20121027030509/pspp 20121028030503/pspp 20121029030502/pspp
John Darrington [Sat, 27 Oct 2012 08:42:28 +0000 (10:42 +0200)]
Anova Dialog: Fix widget associations

11 years agologistic.c : Avoid compiler warnings
John Darrington [Sat, 27 Oct 2012 05:34:20 +0000 (07:34 +0200)]
logistic.c  : Avoid compiler warnings

11 years agoGUI: Added Mnemonic keys to Examine dialog
John Darrington [Sat, 27 Oct 2012 05:21:05 +0000 (07:21 +0200)]
GUI: Added Mnemonic keys to Examine dialog

11 years agogui: Make Tab, Shift+Tab skip row head and new-var columns in data sheet. 20121025032015/pspp 20121026032030/pspp 20121027032008/pspp 20121028032032/pspp
Ben Pfaff [Thu, 25 Oct 2012 06:24:25 +0000 (23:24 -0700)]
gui: Make Tab, Shift+Tab skip row head and new-var columns in data sheet.

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

Suggested by John Darrington.

11 years agoFirst attempt at a LOGISTIC REGRESSION command 20121025030511/pspp 20121026030503/pspp
John Darrington [Tue, 16 Oct 2012 18:41:44 +0000 (20:41 +0200)]
First attempt at a LOGISTIC REGRESSION command

11 years agoUpdated my entry in AUTHORS 20121018030506/pspp 20121019030515/pspp 20121020030503/pspp 20121021030504/pspp 20121022030502/pspp 20121023030502/pspp 20121024030503/pspp
John Darrington [Thu, 18 Oct 2012 09:28:44 +0000 (11:28 +0200)]
Updated my entry in AUTHORS

11 years agopsppire-data-sheet: Implement Edit|Paste. 20121015032559/pspp 20121016032601/pspp 20121017032604/pspp 20121018032547/pspp 20121019032041/pspp 20121020032030/pspp 20121021032034/pspp 20121022032020/pspp 20121023032020/pspp 20121024032018/pspp
Ben Pfaff [Mon, 15 Oct 2012 04:02:31 +0000 (21:02 -0700)]
psppire-data-sheet: Implement Edit|Paste.

This missing feature was reported by John Darrington.

11 years agopsppire-data-sheet: Implement Edit|Cut.
Ben Pfaff [Sun, 14 Oct 2012 21:32:05 +0000 (14:32 -0700)]
psppire-data-sheet: Implement Edit|Cut.

I overlooked this earlier.

Reported by John Darrington.

11 years agopsppire-var-sheet: Make clicking on Variables column select all data.
Ben Pfaff [Sun, 14 Oct 2012 18:45:36 +0000 (11:45 -0700)]
psppire-var-sheet: Make clicking on Variables column select all data.

This does what users expect in the variable sheet.

Reported by John Darrington.

11 years agopsppire-data-sheet: Make clicking on Cases column select all data.
Ben Pfaff [Sun, 14 Oct 2012 18:40:28 +0000 (11:40 -0700)]
psppire-data-sheet: Make clicking on Cases column select all data.

This does what users expect in the data sheet.

Reported by John Darrington.

11 years agopspp-sheet-view-column: Make clicking on a row head column select all data.
Ben Pfaff [Sun, 14 Oct 2012 18:36:13 +0000 (11:36 -0700)]
pspp-sheet-view-column: Make clicking on a row head column select all data.

This is what users typically expect: clicking on the upper-left of a
spreadsheet selects all of the cells in the spreadsheet.

11 years agopsppire-data-sheet: Use specific functions instead of g_object_set().
Ben Pfaff [Sun, 14 Oct 2012 18:35:06 +0000 (11:35 -0700)]
psppire-data-sheet: Use specific functions instead of g_object_set().

Using particular functions seems less error-prone, since it avoids the
possibility of misspelling a property name or getting their values' types
wrong.

11 years agopspp-sheet-view-column: Be consistent about use of !! for booleans.
Ben Pfaff [Sun, 14 Oct 2012 18:33:42 +0000 (11:33 -0700)]
pspp-sheet-view-column: Be consistent about use of !! for booleans.

When "x = !!x;" is used, there's no need to use "x?TRUE:FALSE" later,
since one knows that the value is already 0 or 1, but some code did this
anyway.

This is a cleanup only that should not change behavior.

11 years agodoc/introduction.texi: Update documentations introductory section 20121014030516/pspp 20121015030503/pspp 20121016030503/pspp 20121017030503/pspp
John Darrington [Sat, 13 Oct 2012 15:41:59 +0000 (17:41 +0200)]
doc/introduction.texi: Update documentations introductory section

11 years agodoc/automake.mk: Added a convenience rule for building all the documentation formats
John Darrington [Sat, 13 Oct 2012 14:46:22 +0000 (16:46 +0200)]
doc/automake.mk: Added a convenience rule for building all the documentation formats

11 years agodoc/automake.mk: Replace lines inadvertently removed by previous commit
John Darrington [Sat, 13 Oct 2012 13:22:38 +0000 (15:22 +0200)]
doc/automake.mk: Replace lines inadvertently removed by previous commit

11 years agodoc/automake.mk: Added further mutations to docbook xml to workaround makeinfo bugs
John Darrington [Sat, 13 Oct 2012 10:59:18 +0000 (12:59 +0200)]
doc/automake.mk: Added further mutations to docbook xml to workaround makeinfo bugs

11 years agodoc/automake.mk: New mutations to generated docbook xml to workaround makeinfo bugs
John Darrington [Sat, 13 Oct 2012 10:44:05 +0000 (12:44 +0200)]
doc/automake.mk: New mutations to generated docbook xml to workaround makeinfo bugs

11 years agoFix bug where, after double-clicking to switch sheet view, a spurious release event... 20121009032003/pspp 20121011032101/pspp 20121012032055/pspp 20121013032614/pspp 20121014032548/pspp
John Darrington [Mon, 8 Oct 2012 20:14:36 +0000 (22:14 +0200)]
Fix bug where, after double-clicking to switch sheet view, a spurious release event was processed.

From http://developer.gnome.org/gdk/2.24/gdk-Event-Structures.html#GdkEventButton

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

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

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

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

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

11 years agopsppire-data-editor: Keep value labels setting across Windows|Split.
Ben Pfaff [Mon, 8 Oct 2012 19:06:11 +0000 (12:06 -0700)]
psppire-data-editor: Keep value labels setting across Windows|Split.

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

11 years agoAvoid deprecated function: gtk_button_released 20121009030508/pspp 20121011030511/pspp 20121012030514/pspp 20121013030514/pspp
John Darrington [Mon, 8 Oct 2012 17:16:02 +0000 (19:16 +0200)]
Avoid deprecated function: gtk_button_released

11 years agoconfigure.ac: Increase pango minimum version from 1.20 to 1.22 20121005030505/pspp 20121006030503/pspp 20121007030505/pspp 20121008030504/pspp
Ben Pfaff [Fri, 5 Oct 2012 04:22:42 +0000 (21:22 -0700)]
configure.ac: Increase pango minimum version from 1.20 to 1.22

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

INSTALL already documented that Pango 1.22 or later was needed.

Reported by John Darrington.

11 years agotests: Better isolate search text in test of error reporting. 20121001030503/pspp 20121002030515/pspp 20121003030503/pspp 20121004030504/pspp
Ben Pfaff [Sun, 30 Sep 2012 19:29:33 +0000 (12:29 -0700)]
tests: Better isolate search text in test of error reporting.

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

Bug #37444.
Reported by Mindaugus.

11 years agoRemove variable assigned to but never used. 20121001031957/pspp 20121002032048/pspp 20121003032021/pspp 20121004032030/pspp 20121005032009/pspp 20121006032038/pspp 20121007032036/pspp 20121008032034/pspp
Ben Pfaff [Sun, 30 Sep 2012 18:29:46 +0000 (11:29 -0700)]
Remove variable assigned to but never used.

Found by GCC 4.7.

11 years agoMerge 'master' into 'psppsheet'.
Ben Pfaff [Sun, 30 Sep 2012 18:25:23 +0000 (11:25 -0700)]
Merge 'master' into 'psppsheet'.

11 years agoSuppress GCC 4.7 warnings by changes to code that make it less clear.
Ben Pfaff [Wed, 26 Sep 2012 04:18:32 +0000 (21:18 -0700)]
Suppress GCC 4.7 warnings by changes to code that make it less clear.

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

11 years agoSuppress GCC 4.7 warnings due to unimplemented features.
Ben Pfaff [Wed, 26 Sep 2012 04:20:09 +0000 (21:20 -0700)]
Suppress GCC 4.7 warnings due to unimplemented features.

GCC 4.7 complains that the variables removed by this commit are
assigned values that are not used.  Fair enough, so this commit
removes them.

11 years agognumeric-reader: Add cast to suppress warning.
Ben Pfaff [Wed, 26 Sep 2012 00:09:47 +0000 (17:09 -0700)]
gnumeric-reader: Add cast to suppress warning.

This suppresses a GCC warning for a mismatch between
xmlInputCloseCallback, which takes a "void *" parameter, and
gzclose(), which takes a "gzFile" (which is "struct gzFile_s *").

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

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

11 years agosplit-file-dialog: Add use of unused variable in split_file_dialog().
Ben Pfaff [Wed, 26 Sep 2012 00:03:10 +0000 (17:03 -0700)]
split-file-dialog: Add use of unused variable in split_file_dialog().

'selector' was assigned but never used, but here's a use.

Reported by GCC 4.7.

11 years agoSuppress warnings for suspicious use of "enum" constants.
Ben Pfaff [Wed, 26 Sep 2012 00:02:21 +0000 (17:02 -0700)]
Suppress warnings for suspicious use of "enum" constants.

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

11 years agogui: Check return value of gtk_tree_model_get_iter().
Ben Pfaff [Wed, 26 Sep 2012 00:00:34 +0000 (17:00 -0700)]
gui: Check return value of gtk_tree_model_get_iter().

In these two cases the return value was assigned to a variable but
never used.  This commit adds a check for the return value.

11 years agocairo: Avoid deprecated pango_cairo_font_map_create_context().
Ben Pfaff [Tue, 25 Sep 2012 22:54:43 +0000 (15:54 -0700)]
cairo: Avoid deprecated pango_cairo_font_map_create_context().

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

11 years agoRemove unused "finalize" functions.
Ben Pfaff [Tue, 25 Sep 2012 22:47:04 +0000 (15:47 -0700)]
Remove unused "finalize" functions.

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

11 years agoRemove variables assigned to but never used.
Ben Pfaff [Tue, 25 Sep 2012 22:36:50 +0000 (15:36 -0700)]
Remove variables assigned to but never used.

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

Found by GCC 4.7.

11 years agoEXAMINE: Avoid useless call to casereader_count_cases().
Ben Pfaff [Tue, 25 Sep 2012 22:51:07 +0000 (15:51 -0700)]
EXAMINE: Avoid useless call to casereader_count_cases().

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

Reported by GCC 4.7.

11 years agoCROSSTABS: Fix bug in check for REPORT in general mode.
Ben Pfaff [Tue, 25 Sep 2012 23:59:04 +0000 (16:59 -0700)]
CROSSTABS: Fix bug in check for REPORT in general mode.

Found by GCC 4.7.

11 years agoexpressions: Fix coercion of numbers to booleans at top level.
Ben Pfaff [Tue, 25 Sep 2012 22:14:50 +0000 (15:14 -0700)]
expressions: Fix coercion of numbers to booleans at top level.

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

This commit fixes both problems and adds a test.

Found by GCC 4.7 report of a type mismatch.

11 years agogtk.h wrapper: Added *_set_realized and set_mapped 20120921030501/pspp 20120922030504/pspp 20120923030504/pspp 20120924030504/pspp 20120927030501/pspp 20120928030503/pspp 20120929030503/pspp 20120930030503/pspp
John Darrington [Thu, 20 Sep 2012 11:14:55 +0000 (13:14 +0200)]
gtk.h wrapper: Added *_set_realized and set_mapped

We are using these functions, but they are not defined for older gtk versions.

11 years agosrc/data/data-out.c: Added assertion to catch negative values
John Darrington [Thu, 20 Sep 2012 09:22:12 +0000 (11:22 +0200)]
src/data/data-out.c: Added assertion to catch negative values

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

11 years agoAdded keybindings to move to the extremities of the sheet. 20120913030507/pspp 20120914030504/pspp 20120915030505/pspp
John Darrington [Wed, 12 Sep 2012 18:38:23 +0000 (20:38 +0200)]
Added keybindings to move to the extremities of the sheet.

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

This behaviour is consistent with other software.

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 agopsppire-cell-renderer: Fix behavior of repeated clicks on a button. 20120911031925/pspp 20120912031918/pspp 20120913031857/pspp 20120914031922/pspp 20120915031925/pspp 20120921032038/pspp 20120922031949/pspp 20120923031953/pspp 20120924032009/pspp 20120927032112/pspp 20120928032019/pspp 20120929032021/pspp 20120930032025/pspp
Ben Pfaff [Mon, 3 Sep 2012 05:21:09 +0000 (22:21 -0700)]
psppire-cell-renderer: Fix behavior of repeated clicks on a button.

I'm not sure why I thought this code was necessary.  Removing it
fixes the problem, which John Darrington reported as:

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

11 years agopsppire-var-sheet: Allow adjusting width of string variables.
Ben Pfaff [Sun, 2 Sep 2012 18:07:59 +0000 (11:07 -0700)]
psppire-var-sheet: Allow adjusting width of string variables.

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

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

11 years agovar-type-dialog: Adjust packing parameters 20120826001913/pspp
John Darrington [Sat, 25 Aug 2012 17:12:43 +0000 (19:12 +0200)]
var-type-dialog: Adjust packing parameters

11 years agoMerge branch 'master' into psppsheet
John Darrington [Sat, 25 Aug 2012 17:01:45 +0000 (19:01 +0200)]
Merge branch 'master' into psppsheet

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 agowidgets: Insert (void) cast in call, to suppress GCC warning. 20120820001828/pspp 20120821001934/pspp 20120822001826/pspp 20120823001911/pspp 20120824001952/pspp 20120825001851/pspp
Ben Pfaff [Sun, 19 Aug 2012 20:19:39 +0000 (13:19 -0700)]
widgets: Insert (void) cast in call, to suppress GCC warning.

Otherwise GCC tells me that the call has no effect.

11 years agowidgets: #include missing header file.
Ben Pfaff [Sun, 19 Aug 2012 20:19:17 +0000 (13:19 -0700)]
widgets: #include missing header file.

It didn't build for me otherwise.

11 years agopsppire-cell-renderer-button: Avoid use-after-free with popup dialog.
Ben Pfaff [Sun, 19 Aug 2012 20:18:56 +0000 (13:18 -0700)]
psppire-cell-renderer-button: Avoid use-after-free with popup dialog.

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

11 years agoMerge 'master' into 'psppsheet'.
Ben Pfaff [Sun, 19 Aug 2012 20:16:05 +0000 (13:16 -0700)]
Merge 'master' into 'psppsheet'.

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.