pspp
12 years agoImplemented the POSTHOC subcommand for the ONEWAY command.
John Darrington [Fri, 1 Jul 2011 18:04:58 +0000 (20:04 +0200)]
Implemented the POSTHOC subcommand for the ONEWAY command.

Currently, only LSD, Tukey, Bonferroni, Scheffe, Games-Howell
and Sidak are supported. These are presented as Multiple
Comparisons - the Homogeneous Subsets are not yet implemented.

12 years agoFix bug where recent data files were not added
John Darrington [Fri, 1 Jul 2011 16:43:58 +0000 (18:43 +0200)]
Fix bug where recent data files were not added

12 years agoReplace the t-test paired options dialog with a simpler implementation.
John Darrington [Fri, 1 Jul 2011 16:41:05 +0000 (18:41 +0200)]
Replace the t-test paired options dialog with a simpler implementation.

This makes use of some commonality with the npar 2 sample related dialog.

12 years agoAdd the /BLANK subcommand to AUTORECODE
John Darrington [Fri, 1 Jul 2011 16:40:30 +0000 (18:40 +0200)]
Add the /BLANK subcommand to AUTORECODE

12 years agoImplement dialog box for the non-parametric 2-related-samples tests
John Darrington [Fri, 1 Jul 2011 16:39:55 +0000 (18:39 +0200)]
Implement dialog box for the non-parametric 2-related-samples tests

12 years agoMove the glade definition for the paired samples dialog box to its own file
John Darrington [Fri, 1 Jul 2011 16:39:40 +0000 (18:39 +0200)]
Move the glade definition for the paired samples dialog box to its own file

12 years agoAdded COUNT dialog box. Addresses one part of bug #29869
John Darrington [Fri, 1 Jul 2011 16:39:25 +0000 (18:39 +0200)]
Added COUNT dialog box. Addresses one part of bug #29869

12 years agoNew widget PsppireValChooser.
John Darrington [Fri, 1 Jul 2011 16:39:10 +0000 (18:39 +0200)]
New widget PsppireValChooser.

This widget provides a user interface allowing the user to input the
a value, or range of values.  This was previously done "by hand" in
the recode dialog, but was awkward to maintain, and clumsy.  Upcoming
dialogs will need something very similar. So now seemed like a good
time to encapsulate it.

12 years agoUse variable labels in DESCRIPTIVES output. Fixes bug #31565
John Darrington [Fri, 1 Jul 2011 16:38:56 +0000 (18:38 +0200)]
Use variable labels in DESCRIPTIVES output.  Fixes bug #31565

12 years agoAvoid GtkCritical in recode dialog
John Darrington [Fri, 1 Jul 2011 16:38:05 +0000 (18:38 +0200)]
Avoid GtkCritical in recode dialog

12 years agoFix incorrect conditional
John Darrington [Fri, 1 Jul 2011 16:37:51 +0000 (18:37 +0200)]
Fix incorrect conditional

12 years agoFix GUI issues in K-Related NPAR dialog box.
John Darrington [Fri, 1 Jul 2011 16:37:39 +0000 (18:37 +0200)]
Fix GUI issues in K-Related NPAR dialog box.

12 years agoMark get_rule function as inline.
John Darrington [Fri, 1 Jul 2011 16:21:47 +0000 (18:21 +0200)]
Mark get_rule function as inline.

12 years agoUse greater-than-or-equal to sign instead of '>='.
John Darrington [Fri, 1 Jul 2011 16:21:32 +0000 (18:21 +0200)]
Use greater-than-or-equal to sign instead of '>='.

Now that the "ascii" driver supports non-ascii, we can use these
unicode characters to give more elegent output.

12 years agoImplemented the McNemar test. Closes bug #33242
John Darrington [Fri, 1 Jul 2011 16:21:13 +0000 (18:21 +0200)]
Implemented the McNemar test.  Closes bug #33242

12 years agoFix bugs deleting temporary files and their containing directory.
John Darrington [Fri, 1 Jul 2011 16:20:42 +0000 (18:20 +0200)]
Fix bugs deleting temporary files and their containing directory.

The clean_temp module provided by gnulib doesn't cleanup on program
exit.  We must do that ourselves.  Secondly, the close_temp_file function
was supposed to remove the file, but didn't do that.  Thirdly, files
were not being registered with the clean_temp module on creation.
This change fixes these problems.

12 years agoMake the value labels dialog resizable
John Darrington [Fri, 1 Jul 2011 16:19:39 +0000 (18:19 +0200)]
Make the value labels dialog resizable

12 years agoReplace deprecated function call
John Darrington [Fri, 1 Jul 2011 16:19:16 +0000 (18:19 +0200)]
Replace deprecated function call

12 years agoRemove action member from PsppireSelector
John Darrington [Fri, 1 Jul 2011 16:18:59 +0000 (18:18 +0200)]
Remove action member from PsppireSelector

12 years agoReplace some deprecated GTK macros
John Darrington [Fri, 1 Jul 2011 16:18:45 +0000 (18:18 +0200)]
Replace some deprecated GTK macros

12 years agoChange the order of the reported NPAR values in two sample related tests.
John Darrington [Fri, 1 Jul 2011 16:18:27 +0000 (18:18 +0200)]
Change the order of the reported NPAR values in two sample related tests.

This change makes the order of the reported values follow the order in
which they were entered in the syntax.  The changes to the tests affect
only the order.  The numbers are unchanged.

12 years agoRemove duplicated functions
John Darrington [Fri, 1 Jul 2011 16:01:27 +0000 (18:01 +0200)]
Remove duplicated functions

12 years agoRemove unused functions
John Darrington [Fri, 1 Jul 2011 16:01:11 +0000 (18:01 +0200)]
Remove unused functions

12 years agoFilter the data file list by mime type instead of file extension
John Darrington [Fri, 1 Jul 2011 16:00:49 +0000 (18:00 +0200)]
Filter the data file list by mime type instead of file extension

12 years agoSet the show-tips property on the recent chooser menus
John Darrington [Fri, 1 Jul 2011 16:00:32 +0000 (18:00 +0200)]
Set the show-tips property on the recent chooser menus

12 years agoUse local include paths instead of relative to $top_builddir/src
John Darrington [Fri, 1 Jul 2011 16:00:14 +0000 (18:00 +0200)]
Use local include paths instead of relative to $top_builddir/src

The old method appeared not to work with some gcc versions.

12 years agoReplace some obsolete Gtk macro calls
John Darrington [Fri, 1 Jul 2011 15:59:10 +0000 (17:59 +0200)]
Replace some obsolete Gtk macro calls

12 years agoFix building when readline library is not present
John Darrington [Fri, 1 Jul 2011 15:58:33 +0000 (17:58 +0200)]
Fix building when readline library is not present

12 years agoAdded support to read OpenDocument spreadsheet files
John Darrington [Fri, 1 Jul 2011 15:27:26 +0000 (17:27 +0200)]
Added support to read OpenDocument spreadsheet files

12 years agoImplemented a zip-writer to correspond to zip-reader
John Darrington [Fri, 1 Jul 2011 15:22:02 +0000 (17:22 +0200)]
Implemented a zip-writer to correspond to zip-reader

12 years agoPerl Module - Add function to count cases in a reader.
John Darrington [Fri, 1 Jul 2011 15:04:50 +0000 (17:04 +0200)]
Perl Module - Add function to count cases in a reader.

Closes bug #33381

12 years agoRemove some files which are no longer used
John Darrington [Fri, 1 Jul 2011 14:48:32 +0000 (16:48 +0200)]
Remove some files which are no longer used

12 years agoFix bug parsing T-TEST
John Darrington [Fri, 1 Jul 2011 14:48:19 +0000 (16:48 +0200)]
Fix bug parsing T-TEST

12 years agoRe-implemented the T-TEST command and the levene calculation.
John Darrington [Fri, 1 Jul 2011 14:47:33 +0000 (16:47 +0200)]
Re-implemented the T-TEST command and the levene calculation.

Also updated the ONEWAY command to use the new levene test.
The changes to t-test.at in this changeset affect only whitespace
or the order of reported significance.  The numbers remain unchanged.

12 years agoFixed the categoricals such that now both GLM and ONEWAY work
John Darrington [Mon, 27 Jun 2011 10:58:48 +0000 (12:58 +0200)]
Fixed the categoricals such that now both GLM and ONEWAY work

12 years agoGLM: Add unimplemented subcommands, and add a test.
John Darrington [Mon, 27 Jun 2011 07:13:11 +0000 (09:13 +0200)]
GLM: Add unimplemented subcommands, and add a test.

This change adds a basic GLM test for the "Latin Square" use case.
It also implements the more common subcommands that might occur in
a real life example of such usage.  The /DESIGN subcommand differs
slightly from spss.  In spss, it is optional, and if given can be
empty.  In this change, /DESIGN is mandatory and may not be empty.
The rational for that, is that spss's default is to include interactions
for all the factors.  We don't (yet) support interactions, so it's
better to refuse to run a syntax which relies upon the default
rather than to run it with different semantics.

12 years agoFirst working GLM command
John Darrington [Sun, 26 Jun 2011 20:25:55 +0000 (22:25 +0200)]
First working GLM command

12 years agoAdded type 3 sums of squares to GLM 20110625030504/pspp 20110626030505/pspp 20110627030508/pspp 20110628030505/pspp 20110629030502/pspp 20110630030506/pspp 20110701030505/pspp
Jason H Stover [Fri, 24 Jun 2011 14:05:51 +0000 (10:05 -0400)]
Added type 3 sums of squares to GLM

12 years agogui: Move some formatting functions into PSPP core. 20110624030506/pspp
Ben Pfaff [Tue, 21 Jun 2011 14:00:33 +0000 (07:00 -0700)]
gui: Move some formatting functions into PSPP core.

12 years agogui: Strip numerics and strings differently in value_to_text().
Ben Pfaff [Tue, 14 Jun 2011 02:17:27 +0000 (19:17 -0700)]
gui: Strip numerics and strings differently in value_to_text().

Otherwise a long string value that only contains a few
characters followed by all spaces is hard to read.

12 years agogui: Eliminate some dependencies on the dictionary.
Ben Pfaff [Sat, 11 Jun 2011 17:40:43 +0000 (10:40 -0700)]
gui: Eliminate some dependencies on the dictionary.

Previously all of the dialog boxes used by the variable sheet
kept around a pointer to the dictionary solely to obtain the
dictionary's encoding.  Previous commits have eliminated that
use, so this commit gets rid of the dictionary members.

12 years agogui: Simplify value_to_text() parameters.
Ben Pfaff [Tue, 21 Jun 2011 02:06:11 +0000 (19:06 -0700)]
gui: Simplify value_to_text() parameters.

Both the format and the dictionary can be inferred from the
variable being formatted in every case in the tree but one, so
use that as the calling convention.  In the one remaining case,
it's just as easy to call data_out() directly.

12 years agogui: Consistently use print format instead of write format.
Ben Pfaff [Sat, 11 Jun 2011 16:42:22 +0000 (09:42 -0700)]
gui: Consistently use print format instead of write format.

In syntax, only the WRITE command uses write formats.  Other
commands all use print formats.  I don't see why the GUI should
act differently.

12 years agogui: Drop 'dict' parameter from text_to_value().
Ben Pfaff [Sat, 11 Jun 2011 04:55:47 +0000 (21:55 -0700)]
gui: Drop 'dict' parameter from text_to_value().

This parameter is used only to obtain the dictionary's
encoding, which may also be obtained through the variable.

12 years agosys-file-reader: Reduce invalid format from error to warning. 20110623030506/pspp
Ben Pfaff [Thu, 23 Jun 2011 05:13:40 +0000 (22:13 -0700)]
sys-file-reader: Reduce invalid format from error to warning.

gaby jongenelen <geebie21@gmail.com> provided a .sav file
written by "MS Windows Release 13.0 spssio32.dll" that had
zeros in the "write" format field for several numeric
variables.  Until now, PSPP treated this as an error and
rejected the file.  This commit changes the error to a warning
and suppresses the diagnostic entirely for this case of a
zero value.

12 years agosys-file-writer: Write identical sets of value labels only once. 20110618030505/pspp 20110619030505/pspp 20110620030503/pspp 20110621030504/pspp 20110622030502/pspp
Ben Pfaff [Sat, 18 Jun 2011 05:21:38 +0000 (22:21 -0700)]
sys-file-writer: Write identical sets of value labels only once.

The .sav file format can save space by writing a single set of
value labels once and assigning it to multiple variables.  PSPP
has never taken advantage of this, instead writing the value
labels for each variable separately.  This commit adopts the
strategy for avoiding duplicates apparently used by SPSS, based
on observing a .sav file that had many groups of variables with
the same labels.

Thanks to Curt Reinhold <Curt.Reinhold@psychonomics.de> for
providing the .sav file that led to this discovery.

12 years agovariable: Do not trim trailing whitespace from variable labels.
Ben Pfaff [Sat, 18 Jun 2011 05:18:27 +0000 (22:18 -0700)]
variable: Do not trim trailing whitespace from variable labels.

Until now, PSPP has trimmed trailing whitespace from variable
labels.  SPSS does not do this, which led to gratuitous changes
in variable labels when reading and then writing back a .sav
file, so this commit stops stripping trailing whitespace from
variable labels.

Thanks to Curt Reinhold <Curt.Reinhold@psychonomics.de> for
providing the .sav file that led to this discovery.

12 years agosys-file-writer: Omit empty multiple response sets records.
Ben Pfaff [Sat, 18 Jun 2011 05:16:44 +0000 (22:16 -0700)]
sys-file-writer: Omit empty multiple response sets records.

Multiple response sets are divided into two records in a .sav
file: one record with subtype 7 and one with subtype 19.  PSPP
was incorrectly writing both records even if one of them was
empty.  This commit makes it omit the empty record.

Thanks to Curt Reinhold <Curt.Reinhold@psychonomics.de> for
providing the .sav file that led to this discovery.

12 years agosys-file-writer: Write variable names in mrsets in lowercase.
Ben Pfaff [Sat, 18 Jun 2011 05:12:45 +0000 (22:12 -0700)]
sys-file-writer: Write variable names in mrsets in lowercase.

SPSS appears to write the short names of the variables in a
multiple response set in lowercase, so this commit make PSPP
do the same.

Thanks to Curt Reinhold <Curt.Reinhold@psychonomics.de> for
providing the .sav file that led to this discovery.

12 years agosys-file-reader, sys-file-writer: Use codepage numbers. 20110617030506/pspp
Ben Pfaff [Thu, 16 Jun 2011 06:13:12 +0000 (23:13 -0700)]
sys-file-reader, sys-file-writer: Use codepage numbers.

PSPP has had a library for converting between encoding names
and codepage numbers for a while, but the system file reader
and writer code has not taken advantage of it.  This commit
make them use it.

12 years agoUpdate code that assumed a dictionary's encoding could be NULL.
Ben Pfaff [Thu, 16 Jun 2011 06:08:13 +0000 (23:08 -0700)]
Update code that assumed a dictionary's encoding could be NULL.

Until recently, I think, it was possible for dict_get_encoding()
to return NULL.  It is no longer possible as far as I can see,
so this commit adds a comment that says so to the definition
of dict_get_encoding().  It also updates a few callers that
had checks for null pointers.

12 years agosys-file-writer: Write encoding names in all-uppercase. 20110616030507/pspp
Ben Pfaff [Thu, 16 Jun 2011 05:15:10 +0000 (22:15 -0700)]
sys-file-writer: Write encoding names in all-uppercase.

SPSS appears to write encoding names in all-upperacse, so PSPP
should too.

12 years agosys-file-writer: Put long variable name in variable attributes.
Ben Pfaff [Thu, 16 Jun 2011 01:55:54 +0000 (18:55 -0700)]
sys-file-writer: Put long variable name in variable attributes.

Otherwise, PSPP cannot read back .sav files that it writes, if
they contain variable attributes for variables with long names.

Thanks to Curt Reinhold <Curt.Reinhold@psychonomics.de> for
providing the .sav file that led to this discovery and to John
Darrington for helping to investigate.

12 years agoCD: Fix a bug and add a regression test. 20110615030502/pspp
Ben Pfaff [Wed, 15 Jun 2011 05:38:13 +0000 (22:38 -0700)]
CD: Fix a bug and add a regression test.

12 years agoGET DATA /TYPE=TXT: Also allow full format to be specified.
Ben Pfaff [Wed, 15 Jun 2011 05:10:24 +0000 (22:10 -0700)]
GET DATA /TYPE=TXT: Also allow full format to be specified.

The implementation of fixed-format mode only allowed a format
type (e.g. DOLLAR) to be specified.  SPSS also allowed a full
format specification (e.g. DOLLAR12.2), so this implements that
feature.

Reported-by: Ronaldo Baltar <ronaldo.baltar@gmail.com>
12 years agotests: Remove unused old shell-based test files. 20110527030503/pspp 20110528030502/pspp 20110529030503/pspp 20110530030505/pspp 20110531030503/pspp 20110601030502/pspp 20110602030504/pspp 20110604030501/pspp 20110605030503/pspp 20110606030503/pspp 20110607030504/pspp 20110608030502/pspp 20110609030504/pspp 20110610030503/pspp 20110611030504/pspp 20110612030504/pspp 20110613030503/pspp 20110614030503/pspp
Ben Pfaff [Thu, 26 May 2011 17:48:09 +0000 (10:48 -0700)]
tests: Remove unused old shell-based test files.

Somehow I forgot to delete these when I switched everything over
to use Autotest.  Nothing refers to them any longer.

12 years agogui: Clean generated gtk.h wrapper on "make clean". 20110526030508/pspp
Ben Pfaff [Thu, 26 May 2011 04:31:33 +0000 (21:31 -0700)]
gui: Clean generated gtk.h wrapper on "make clean".

Fixes "make distcheck".

Reported by John Darrington.

13 years agogui: Fix temporary filtering by a variable's value. 20110514030504/pspp 20110515030504/pspp 20110516030504/pspp 20110517030504/pspp 20110518030503/pspp 20110519030505/pspp 20110520030502/pspp 20110521030504/pspp 20110522030504/pspp 20110523030503/pspp 20110524030503/pspp 20110525030502/pspp
Ben Pfaff [Sat, 14 May 2011 03:56:05 +0000 (20:56 -0700)]
gui: Fix temporary filtering by a variable's value.

Problem reported by Mindaugus.
Bug #33088.

13 years agogui: Make AGGREGATE dialog initially show all of the right pane.
Ben Pfaff [Fri, 13 May 2011 05:10:07 +0000 (22:10 -0700)]
gui: Make AGGREGATE dialog initially show all of the right pane.

The AGGREGATE dialog initially had a very narrow left pane, so
commit 2e6cffa44ef5 "Aggregate dialog: Initialize HPane widget width
on opening" added a callback function to adjust the position of the
divider between the panes to half the window's width.  But this
happens after the window has been laid out, which means that unless
the window is very wide to begin with, it will cause part of the
right pane to disappear.

I was able to get more consistently good results by forcing a minimum
width for the left pane with a width_request, and making the right
pane shrinkable below the minimum size needed to show all of it.  A
final tweak was to make the left pane automatically grow with the
window.

If you've already used the Aggregate dialog then your preferences for
the window size have been saved, so for testing this it is best to
remove $HOME/.config/psppire before each experiment.

Bug #31126.

13 years agoSORT CASES: Don't delete filtered-out cases. 20110513030505/pspp
Ben Pfaff [Fri, 13 May 2011 05:55:29 +0000 (22:55 -0700)]
SORT CASES: Don't delete filtered-out cases.

This was first noticed by users in the GUI, but it is a problem with
the implementation of SORT CASES, not a problem with the GUI.

Bug #33089.
Thanks to Mindaugus for reporting the problem.

13 years agogui: Make File|Recent Files remember the correct encoding.
Ben Pfaff [Thu, 12 May 2011 05:36:45 +0000 (22:36 -0700)]
gui: Make File|Recent Files remember the correct encoding.

It's no good to have File|Open... able to open a file in any encoding
if later pulling up the same file with File|Recent Files screws that
up, so this commit fixes the problem by noting the charset in the
file's mime-type.

13 years agogui: Recode syntax files on load and save.
Ben Pfaff [Fri, 13 May 2011 04:07:12 +0000 (21:07 -0700)]
gui: Recode syntax files on load and save.

This adds a new widget that allows an encoding to be selected to the
File|Open dialog box, as well as to the File|Save As... dialog box
for syntax files only.  Files are recoded to UTF-8 on load and back
to the original encoding on save.

File|Recent Files doesn't yet properly save the encoding information.
That's coming up in the next commit.

Bug #33254.
Thanks to John Darrington for reporting this problem.

13 years agogui: Refactor checking for .sav and .por suffixes.
Ben Pfaff [Thu, 12 May 2011 05:38:57 +0000 (22:38 -0700)]
gui: Refactor checking for .sav and .por suffixes.

It seems reasonable to allow, e.g., .Sav as well as .SAV and .sav, so
this does that.  It also splits name_has_suffix() into smaller
pieces that will individually be used in an upcoming commit.

13 years agogui: Move null_if_empty_param() from psppire-window to helper.
Ben Pfaff [Thu, 12 May 2011 05:27:00 +0000 (22:27 -0700)]
gui: Move null_if_empty_param() from psppire-window to helper.

An upcoming commit will introduce a new user of this function in a
different source file, so it seems best to have this defined in a
common header file.

13 years agoi18n: New function is_encoding_supported().
Ben Pfaff [Thu, 12 May 2011 05:25:35 +0000 (22:25 -0700)]
i18n: New function is_encoding_supported().

This will be used for the first time in an upcoming commit.

13 years agoencoding-guesser: New function encoding_guess_whole_file().
Ben Pfaff [Thu, 12 May 2011 05:24:59 +0000 (22:24 -0700)]
encoding-guesser: New function encoding_guess_whole_file().

This will be used for the first time in an upcoming commit.

13 years agopspp-dump-sav: Add #include <limits.h> to get INT_MAX definition. 20110512030504/pspp
Ben Pfaff [Thu, 12 May 2011 03:21:38 +0000 (20:21 -0700)]
pspp-dump-sav: Add #include <limits.h> to get INT_MAX definition.

Problem reported by Harry Thijssen <pspp@sjpaes.nl>.

13 years agoconfigure: Use $LIB<x> for linking a program, not $LTLIB<x>.
Ben Pfaff [Thu, 12 May 2011 02:31:22 +0000 (19:31 -0700)]
configure: Use $LIB<x> for linking a program, not $LTLIB<x>.

The gettext manual says:

     `@LIBINTL@' is for use without `libtool', `@LTLIBINTL@' is for
     use with `libtool'

It has similar wording for libiconv.

Since there's lots of libtool-related stuff in the PSPP makefiles, I
assumed that PSPP needed $LTLIB<x>.  But it now appears that this is
only correct for linking a libtool library, not for linking a
program that links against libtool libraries.

On GNU/Linux, both $LIB<x> and $LTLIB<x> expand to the empty string,
so I couldn't tell from experimenting there.

This should fix link failures with Mingw, reported by Harry Thijssen
<pspp@sjpaes.nl>.

13 years agopspp-dump-sav: Add GNU standards compliant command line interface. 20110511030502/pspp
Ben Pfaff [Wed, 11 May 2011 05:21:59 +0000 (22:21 -0700)]
pspp-dump-sav: Add GNU standards compliant command line interface.

13 years agopspp-dump-sav: Do not mark any strings for translation.
Ben Pfaff [Wed, 11 May 2011 05:14:23 +0000 (22:14 -0700)]
pspp-dump-sav: Do not mark any strings for translation.

The pspp-dump-sav program is a debugging tool not intended for common
use by end users, so it seems better to avoid burdening translators
with its strings.

13 years agopspp-dump-sav: Update #include syntax to current style.
Ben Pfaff [Wed, 11 May 2011 04:58:34 +0000 (21:58 -0700)]
pspp-dump-sav: Update #include syntax to current style.

13 years agodissect-sysfile: Move to new "utilities" directory as "pspp-dump-sav".
Ben Pfaff [Wed, 11 May 2011 04:35:44 +0000 (21:35 -0700)]
dissect-sysfile: Move to new "utilities" directory as "pspp-dump-sav".

This utility comes in handy from time to time working with end users,
so I think it's best to start installing it with the other binaries,
instead of hiding it in the "tests" directory and having to explain
where to find it.

13 years agoAutomatically link every program against libintl and libiconv.
Ben Pfaff [Tue, 10 May 2011 22:57:44 +0000 (15:57 -0700)]
Automatically link every program against libintl and libiconv.

On glibc systems, libiconv and libintl are both built into libc.  That
means that it's very easy to forget to link programs against them,
because it still builds OK on GNU/Linux.  However, on other systems
they are usually separate libraries and forgetting to link against
them breaks the build.

This commit switches from previous PSPP practice, in which these
libraries were linked explicitly to every binary that requires them,
to a simplified practice where they are in LIBS so that every binary
is automatically linked to them.  This has no disadvantage on
GNU/Linux, our primary target, and the advantage that on other targets
PSPP works more consistently.

13 years agogui: Get rid of the_recent_manager global.
Ben Pfaff [Tue, 10 May 2011 05:42:37 +0000 (22:42 -0700)]
gui: Get rid of the_recent_manager global.

The GTK+ function gtk_recent_manager_get_default() is documented to
return a singleton.  We might as well take advantage of that instead
of caching its return value and passing it around.

13 years agopo: Update Dutch translation from translation-project.org.
Ben Pfaff [Tue, 10 May 2011 23:00:32 +0000 (16:00 -0700)]
po: Update Dutch translation from translation-project.org.

13 years agogui: Delete now-incorrect advice to translators. 20110510030502/pspp
Ben Pfaff [Tue, 10 May 2011 04:42:06 +0000 (21:42 -0700)]
gui: Delete now-incorrect advice to translators.

The string to which the advice applied was deleted, but the comment
was mistakenly left behind.

13 years agogui: Make File|Recently Used Data behave like File|Open.
Ben Pfaff [Mon, 9 May 2011 04:52:08 +0000 (21:52 -0700)]
gui: Make File|Recently Used Data behave like File|Open.

File|Open opens a new dataset if the current one is non-empty.  Due
to an oversight, File|Recently Used Data always replaced the current
dataset.  This commit makes File|Recently Used Data work just like
File|Open.

13 years agogui: Remove redundant call to psppire_window_set_title().
Ben Pfaff [Mon, 9 May 2011 04:38:41 +0000 (21:38 -0700)]
gui: Remove redundant call to psppire_window_set_title().

13 years agogui: Make File|Open open multiple datasets by default.
Ben Pfaff [Mon, 9 May 2011 04:17:51 +0000 (21:17 -0700)]
gui: Make File|Open open multiple datasets by default.

This is what I always intended to make File|Open do, and in fact I
had implemented it that way, but I screwed up in rebasing and forgot
to fix it before my final push.

13 years agopsppire-sheet: Avoid CRITICAL unselecting range before window created.
Ben Pfaff [Mon, 9 May 2011 04:24:17 +0000 (21:24 -0700)]
psppire-sheet: Avoid CRITICAL unselecting range before window created.

Without this change, File|Open that opens a new datasheet yields:

Gdk-CRITICAL **: gdk_window_invalidate_rect_full: assertion
`GDK_IS_WINDOW (window)' failed

I'm not 100% certain that this is the correct fix--perhaps the client
is at fault for calling this function before a window exists?--but it
does avoid the message.

13 years agogui: Avoid creating empty output window at startup time.
Ben Pfaff [Sun, 8 May 2011 05:03:31 +0000 (22:03 -0700)]
gui: Avoid creating empty output window at startup time.

Reported by Harry Thijssen.
Bug #33234.

13 years agogui: Label message output items in the output viewer treeview. 20110508030508/pspp 20110509030503/pspp
Ben Pfaff [Sun, 8 May 2011 05:02:25 +0000 (22:02 -0700)]
gui: Label message output items in the output viewer treeview.

Until now, messages (such as errors and warnings) simply had blank
lines in the output viewer summary treeview.  This made for funny gaps
and a generally puzzling appearance.  This fixes the problem.

13 years agogui: Only unselect range from first data sheet when data changes.
Ben Pfaff [Sat, 7 May 2011 21:19:12 +0000 (14:19 -0700)]
gui: Only unselect range from first data sheet when data changes.

commit 5080068 "gui: Unselect data in data editor when the datasheet
is replaced" unselected all the data in each of the possible four
datasheets (supposing that the "split" view is selected), but if the
"split" view is not in effect then three of the data sheets don't have
windows and this results in "Gdk-CRITICAL **:
gdk_window_invalidate_rect_full: assertion `GDK_IS_WINDOW (window)'
failed".

This commit switches to unselecting the range only from the first data
sheet, which seems to be just as effective at solving the original
problem and does not cause Gdk-CRITICAL messages.

13 years agoext-array: Speed up with unlocked versions of I/O functions.
Ben Pfaff [Sat, 7 May 2011 20:02:34 +0000 (13:02 -0700)]
ext-array: Speed up with unlocked versions of I/O functions.

In my tests this reduced a 2.0 second run to only 1.5 seconds.

Bug #33260.

13 years agotemp-file: Use 64 kB buffer for temporary files.
Ben Pfaff [Sat, 7 May 2011 20:01:02 +0000 (13:01 -0700)]
temp-file: Use 64 kB buffer for temporary files.

Generally PSPP uses temporary files because it has a lot of data to
write to them.  The default glibc buffer is only 4 kB.  In my tests
using a 64 kB reduced runtime from 2.5 seconds to 2.0 seconds, but
increasing the buffer to 1 MB had no additional effect, so 64 kB is a
reasonable choice.

Bug #33260.

13 years agocairo: Left-justify text items rendered in the GUI.
Ben Pfaff [Sat, 7 May 2011 18:55:22 +0000 (11:55 -0700)]
cairo: Left-justify text items rendered in the GUI.

Otherwise multi-line syntax comes out right-justified, which looks
really funny.

Bug #33261.

13 years agogui: Use GTK+ accessor functions instead of deprecated macros.
Ben Pfaff [Sat, 7 May 2011 17:35:47 +0000 (10:35 -0700)]
gui: Use GTK+ accessor functions instead of deprecated macros.

These are now available on all GTK+ versions due to the <gtk/gtk.h>
wrapper added in the previous commit.

13 years agogui: Add <gtk/gtk.h> wrapper with functions from GTK+ 2.18 and 2.20.
Ben Pfaff [Sat, 7 May 2011 17:25:44 +0000 (10:25 -0700)]
gui: Add <gtk/gtk.h> wrapper with functions from GTK+ 2.18 and 2.20.

Suggested by John Darrington.

13 years agodataset: Fix memory leak.
Ben Pfaff [Sat, 7 May 2011 16:37:00 +0000 (09:37 -0700)]
dataset: Fix memory leak.

Reported by John Darrington.

13 years agogui: Add workaround for GTK+ 2.20 crash at startup.
Ben Pfaff [Sat, 7 May 2011 16:32:09 +0000 (09:32 -0700)]
gui: Add workaround for GTK+ 2.20 crash at startup.

Based on this patch against Inkscape:
https://launchpadlibrarian.net/60175914/copy_renamed_icons.patch

Reported by Fredrik Clementz.
With input from John Darrington and Harry Thijssen.
Tested by Mindaugus.
Bug #31511.

13 years agogui: Provide substitute for gtk_widget_get_realized() for GTK+ < 2.20. 20110507030503/pspp
Ben Pfaff [Sat, 7 May 2011 03:56:18 +0000 (20:56 -0700)]
gui: Provide substitute for gtk_widget_get_realized() for GTK+ < 2.20.

Problem reported by "Mindaugas Baranauskas" <embar@super.lt>.

13 years agopo: Update Dutch translation from translation-project.org.
Ben Pfaff [Fri, 6 May 2011 16:03:28 +0000 (09:03 -0700)]
po: Update Dutch translation from translation-project.org.

13 years agoUpdated the Lithuanian translation from http://translationproject.org. 20110506030503/pspp
Ben Pfaff [Fri, 6 May 2011 03:05:18 +0000 (20:05 -0700)]
Updated the Lithuanian translation from translationproject.org.

13 years agointern: Fix GCC warning. 20110505030505/pspp
Ben Pfaff [Thu, 5 May 2011 04:16:39 +0000 (21:16 -0700)]
intern: Fix GCC warning.

Otherwise, GCC issues the following warning:

intern.c:83: warning: comparison of distinct pointer types lacks a
cast.

13 years agogui: Unselect data in data editor when the datasheet is replaced.
Ben Pfaff [Wed, 4 May 2011 04:30:01 +0000 (21:30 -0700)]
gui: Unselect data in data editor when the datasheet is replaced.

The active cell in the PsppireSheet remembers its contents even if
the whole sheet gets replaced, so we have to unselect the cell when
this happens to avoid replacing the cell's contents by whatever was
there before.

Bug #30502.
Thanks to Michel Boaventura for reporting the problem and John
Darrington for diagnosing it.

13 years agoIncrement version to 0.7.8 to send to Translation Project.
Ben Pfaff [Thu, 5 May 2011 01:51:34 +0000 (18:51 -0700)]
Increment version to 0.7.8 to send to Translation Project.

13 years agopsql-reader: Fix build when PostgreSQL is installed. 20110504030502/pspp
Ben Pfaff [Wed, 4 May 2011 04:53:17 +0000 (21:53 -0700)]
psql-reader: Fix build when PostgreSQL is installed.

Problem reported by "Mindaugas Baranauskas" <embar@super.lt>.

13 years agoNEWS: Consolidate post-0.6.2 NEWS.
Ben Pfaff [Wed, 4 May 2011 04:10:10 +0000 (21:10 -0700)]
NEWS: Consolidate post-0.6.2 NEWS.

Suggested by John Darrington.

13 years agogui: Change View|Data and View|Variables to radio button menu items.
Ben Pfaff [Sun, 1 May 2011 05:30:28 +0000 (22:30 -0700)]
gui: Change View|Data and View|Variables to radio button menu items.

I didn't know what View|Variables did until I tried it, at which
point I was surprised that it changed into View|Data.  I think that
a pair of radio button menu items better communicates the intent.
Also, this situation seems to fit well what the GNOME Human Interface
Guidelines say about radio button menu items:

    Radio button menu items show which of two or more
    mutually-exclusive settings are currently selected, and allow
    the user to choose a different setting by selecting its menu
    item.

    * If you need to offer a choice of two mutually-exclusive
      settings to the user, use a group of two radio button items
      instead of a single check box menu item if the settings are
      not clearly opposites. For example, represent View as Icons
      and View as List as two radio button items.

13 years agogui: Add ellipsis to menu items that require further input.
Ben Pfaff [Sun, 1 May 2011 05:00:33 +0000 (22:00 -0700)]
gui: Add ellipsis to menu items that require further input.

The GNOME Human Interface Guidelines say:

    Label the menu item with a trailing ellipsis ("...") only if
    the command requires further input from the user before it
    can be performed. Do not add an ellipsis to items that only
    present a confirmation dialog (such as Delete), or that do
    not require further input (such as Properties, Preferences or
    About).

Most PSPPIRE menu items fit this description, so they should have
trailing ellipses, which this commit adds.

Some GTK+ programs use the Unicode HORIZONTAL ELLIPSIS (U+2026)
character instead of three periods in menu items.  In a quick check
on my own machine, however, three periods were over twice as common.
In an informal survey on pspp-dev, the best argument presented in
favor of one or the other was that three periods may be more familiar
for translators and thus cause less confusion in translation.