pspp-builds.git
14 years agoFirst working version with Factor Rotations
John Darrington [Thu, 20 May 2010 12:41:32 +0000 (14:41 +0200)]
First working version with Factor Rotations

14 years agoUpdate manual's licence to FDL 1.3
John Darrington [Thu, 20 May 2010 15:15:18 +0000 (17:15 +0200)]
Update manual's licence to FDL 1.3

The copyright notice said that a copy of FDLv1.3 was included.
But infact it was an older version.  This change fixes that.

14 years agocairo: Implement xr_driver_destroy() and use it during printing.
Ben Pfaff [Thu, 20 May 2010 14:22:52 +0000 (07:22 -0700)]
cairo: Implement xr_driver_destroy() and use it during printing.

This function was omitted by oversight earlier.

14 years agoREADME.Git: Update to newest Gnulib.
Ben Pfaff [Thu, 20 May 2010 03:59:28 +0000 (20:59 -0700)]
README.Git: Update to newest Gnulib.

This should fix build failures on OpenSUSE, OpenBSD, and possibly on other
platforms that have libintl but on which libintl does not contain a
definition of __printf__, by integrating the following commit:

    commit a43e24168368619e2d51fe7a37abc4969d7a87fe
    Author: Bruno Haible <bruno@clisp.org>
    Date:   Sun May 16 14:16:03 2010 +0200

        Fix collision between gnulib's and libintl's printf replacements.

14 years agoImplemented the Binomial Test dialog box.
John Darrington [Wed, 19 May 2010 15:27:51 +0000 (17:27 +0200)]
Implemented the Binomial Test dialog box.

14 years agoFixed bug parsing binomial test.
John Darrington [Wed, 19 May 2010 14:31:08 +0000 (16:31 +0200)]
Fixed bug parsing binomial test.

The NPAR TEST /BINOMIAL subcommand was supposed
to take a default P value.  But it didn't work.
This change fixes that problem.

14 years agoAdded an implementation of the Chi-Square dialog box
John Darrington [Wed, 19 May 2010 12:06:36 +0000 (14:06 +0200)]
Added an implementation of the Chi-Square dialog box

14 years agoAdd stock items to output viewer menuitems
John Darrington [Wed, 19 May 2010 06:57:04 +0000 (08:57 +0200)]
Add stock items to output viewer menuitems

14 years agoRemoved diagnostic messages from print operation callbacks
John Darrington [Wed, 19 May 2010 06:53:10 +0000 (08:53 +0200)]
Removed diagnostic messages from print operation callbacks

14 years agoMerge "paginate" branch into "master".
Ben Pfaff [Wed, 19 May 2010 05:05:52 +0000 (22:05 -0700)]
Merge "paginate" branch into "master".

This adds printing support to the PSPPIRE output viewer on the master
branch.

14 years agopsppire-axis: Use rint() instead of nearbyint(), for portability.
Ben Pfaff [Wed, 19 May 2010 04:35:05 +0000 (21:35 -0700)]
psppire-axis: Use rint() instead of nearbyint(), for portability.

rint() and nearbyint() are identical except that nearbyint() will not
raise the inexact result exception, which we don't care about.  OpenBSD
and probably other OSes have rint() but not nearbyint().

Perhaps a better fix would be to add a nearbyint module to Gnulib.

14 years agoAdded tests for the FACTOR command
John Darrington [Tue, 18 May 2010 15:31:46 +0000 (17:31 +0200)]
Added tests for the FACTOR command

14 years agocompiler: Fix SENTINEL macro in non-GCC case.
Ben Pfaff [Tue, 18 May 2010 04:46:41 +0000 (21:46 -0700)]
compiler: Fix SENTINEL macro in non-GCC case.

14 years agoRenamed function to reflect change of purpose from previous commit
John Darrington [Sun, 16 May 2010 11:30:38 +0000 (13:30 +0200)]
Renamed function to reflect change of purpose from previous commit

14 years agoPaste to a single common syntax window instead of a new one.
John Darrington [Sun, 16 May 2010 11:21:47 +0000 (13:21 +0200)]
Paste to a single common syntax window instead of a new one.

Previously, when a dialog box's "paste" button was pressed, a
new syntax window was created and the syntax pasted to it.  This
change alters that behaviour.  Now there is just one syntax window
that is used for all paste operations.  Fixes bug #27686

14 years agoExpanded comments to src/libpspp/i18n.[ch]
John Darrington [Sun, 16 May 2010 10:48:57 +0000 (12:48 +0200)]
Expanded comments to src/libpspp/i18n.[ch]

14 years agoUpdate nl.po from translationproject.org
John Darrington [Sat, 15 May 2010 12:26:38 +0000 (14:26 +0200)]
Update nl.po from translationproject.org

14 years agoTranslate the contents of frequencies and descriptives checkbox treeviews
John Darrington [Fri, 14 May 2010 16:20:48 +0000 (18:20 +0200)]
Translate the contents of frequencies and descriptives checkbox treeviews

Call gettext on the translatable strings which populate the
contents of "Statistics" treeviews in checkbox dialogs.
Thanks to Harry Thijssen for reporting this.

14 years agoMerge branch 'master' of ssh://jmd@git.sv.gnu.org/srv/git/pspp
John Darrington [Fri, 14 May 2010 13:29:37 +0000 (15:29 +0200)]
Merge branch 'master' of ssh://jmd@git.sv.gnu.org/srv/git/pspp

14 years agogui: Configure page setup when printing in the GUI.
Ben Pfaff [Thu, 13 May 2010 04:58:40 +0000 (21:58 -0700)]
gui: Configure page setup when printing in the GUI.

The page setup has to be passed down to the Cairo output driver or it
doesn't know how to paginate the output properly.

14 years agogui: Factor out creation of Cairo output driver in printing code.
Ben Pfaff [Thu, 13 May 2010 04:54:10 +0000 (21:54 -0700)]
gui: Factor out creation of Cairo output driver in printing code.

The following commit will add a lot more code here, so it's best to avoid
duplication.

14 years agocairo: Allow xr_driver_create()'s caller to usefully set more options.
Ben Pfaff [Thu, 13 May 2010 04:41:21 +0000 (21:41 -0700)]
cairo: Allow xr_driver_create()'s caller to usefully set more options.

Until now, xr_driver_create() has only parsed a few of the Cairo driver
options.  This commit makes it parse more of them, in preparation for
output viewer printing to set more of them.

14 years agocairo: Apply margins to pages added with xr_driver_next_page().
Ben Pfaff [Thu, 13 May 2010 04:25:37 +0000 (21:25 -0700)]
cairo: Apply margins to pages added with xr_driver_next_page().

This properly adds margins to pages printed by the GUI.

14 years agocairo: Remove write-only member 'file_type' from struct xr_driver.
Ben Pfaff [Thu, 13 May 2010 03:57:58 +0000 (20:57 -0700)]
cairo: Remove write-only member 'file_type' from struct xr_driver.

14 years agoUpgrade manuals' licenses to GFDL 1.3 and remove cover texts.
Ben Pfaff [Thu, 13 May 2010 03:17:37 +0000 (20:17 -0700)]
Upgrade manuals' licenses to GFDL 1.3 and remove cover texts.

This commit changes the licenses for the PSPP manual from GFDL version 1.1
(or later) to GFDL version 1.3 (or later).

Perhaps more importantly, it removes the Front-Cover Text and Back-Cover
Text, as permitted by the GNU guide for maintainers:

      Please adjust the list of invariant sections as appropriate for your
   manual.  If there are none, then say "with no Invariant Sections".  If
   your manual is not published by the FSF, and under 400 pages, you can
   omit both cover texts.

14 years agoCreated convenience function connect_action
John Darrington [Wed, 12 May 2010 08:42:52 +0000 (10:42 +0200)]
Created convenience function connect_action

A function to wrap the connection of "activate" signals.

14 years agoRemove unnecessary GtkAction * variables
John Darrington [Wed, 12 May 2010 08:00:38 +0000 (10:00 +0200)]
Remove unnecessary GtkAction * variables

14 years agoUse signal handlers with the window as the first argument where reasonable to do so
John Darrington [Tue, 11 May 2010 13:57:25 +0000 (15:57 +0200)]
Use signal handlers with the window as the first argument where reasonable to do so

14 years agoChange gpointer variable to PsppireDataWindow * in dialog function signatures
John Darrington [Tue, 11 May 2010 08:07:52 +0000 (10:07 +0200)]
Change gpointer variable to PsppireDataWindow * in dialog function signatures

14 years agoRemove unused GObject pointer from dialog functions and update signal connect functio...
John Darrington [Tue, 11 May 2010 07:29:37 +0000 (09:29 +0200)]
Remove unused GObject pointer from dialog functions and update signal connect functions accordingly

14 years agoWhitespace changes only
John Darrington [Tue, 11 May 2010 06:56:58 +0000 (08:56 +0200)]
Whitespace changes only

14 years agoRemove reference to gtk-builder-convert which is no longer distributed
John Darrington [Mon, 10 May 2010 18:27:20 +0000 (20:27 +0200)]
Remove reference to gtk-builder-convert which is no longer distributed

14 years agoConverted output-viewer from .glade to .ui
John Darrington [Mon, 10 May 2010 17:12:45 +0000 (19:12 +0200)]
Converted output-viewer from .glade to .ui

14 years agoConvert syntax-editor from .glade to .ui
John Darrington [Mon, 10 May 2010 17:02:41 +0000 (19:02 +0200)]
Convert syntax-editor from .glade to .ui

14 years agoRefactor the Help menu.
John Darrington [Mon, 10 May 2010 16:50:38 +0000 (18:50 +0200)]
Refactor the Help menu.

Instead of writing a help menu for each of the three main windows,
implement it once, and merge it into the menubars using GtkUIManager

14 years agoUpdated the po files
John Darrington [Sun, 9 May 2010 19:36:10 +0000 (21:36 +0200)]
Updated the po files

14 years agoAdded some missing translation tags
John Darrington [Sun, 9 May 2010 19:29:59 +0000 (21:29 +0200)]
Added some missing translation tags

14 years agoMove data sheet cases popup menu to GtkBuilder file
John Darrington [Sun, 9 May 2010 18:57:55 +0000 (20:57 +0200)]
Move data sheet cases popup menu to GtkBuilder file

14 years agoMove var sheet variables popup menu to GtkBuilder file
John Darrington [Sun, 9 May 2010 18:47:55 +0000 (20:47 +0200)]
Move var sheet variables popup menu to GtkBuilder file

14 years agoRemove property settings from psppire_data_window and put them into the GtkBuilder...
John Darrington [Sun, 9 May 2010 18:37:31 +0000 (20:37 +0200)]
Remove property settings from psppire_data_window and put them into the GtkBuilder file

14 years agoMove implementation of the datasheet variable popup menu to the GtkBuilder file
John Darrington [Sun, 9 May 2010 18:12:14 +0000 (20:12 +0200)]
Move implementation of the datasheet variable popup menu to the GtkBuilder file

14 years agoRemove the resolve_action function which is no longer needed
John Darrington [Sun, 9 May 2010 17:08:30 +0000 (19:08 +0200)]
Remove the resolve_action function which is no longer needed

14 years agoUse consistent orthography for "stock-id" property
John Darrington [Sun, 9 May 2010 16:58:25 +0000 (18:58 +0200)]
Use consistent orthography for "stock-id" property

14 years agoConvert data-editor.glade to data-editor.ui
John Darrington [Sun, 9 May 2010 16:07:25 +0000 (18:07 +0200)]
Convert data-editor.glade to data-editor.ui

14 years agoFirst attempt at a psppire print dialog.
John Darrington [Sun, 9 May 2010 10:43:34 +0000 (12:43 +0200)]
First attempt at a psppire print dialog.

It basically seems to work, but there are some issues with headers, and
charts are not getting rendered for some reason.

14 years agooutput: Refactor Cairo output driver to make printing via GTK+ practical.
Ben Pfaff [Sat, 8 May 2010 21:00:57 +0000 (14:00 -0700)]
output: Refactor Cairo output driver to make printing via GTK+ practical.

14 years agocairo: Update #include style.
Ben Pfaff [Fri, 7 May 2010 03:22:30 +0000 (20:22 -0700)]
cairo: Update #include style.

14 years agogui: Fix crash clicking on the upper-left corner of the data sheet.
Michel Boaventura [Sat, 8 May 2010 17:58:59 +0000 (10:58 -0700)]
gui: Fix crash clicking on the upper-left corner of the data sheet.

Bug #29659.

14 years agopsppire: Translate more GUI strings.
Michel Boaventura [Thu, 6 May 2010 07:11:44 +0000 (04:11 -0300)]
psppire: Translate more GUI strings.

There are a lot of strings that are not being translated, mainly
window titles.  This patch fixes most of them.

14 years agoIgnore additional files created by Gnulib.
Ben Pfaff [Fri, 7 May 2010 02:51:33 +0000 (19:51 -0700)]
Ignore additional files created by Gnulib.

14 years agoFix crash on variable type dialog custom currency display.
John Darrington [Thu, 6 May 2010 15:12:58 +0000 (17:12 +0200)]
Fix crash on variable type dialog custom currency display.

Fixed a bug where a null pointer dereference occured when
the user chose the custom currency button in the variable
type dialog.

14 years agoDon't convert values returned from gettext to UTF8.
John Darrington [Thu, 6 May 2010 07:21:07 +0000 (09:21 +0200)]
Don't convert values returned from gettext to UTF8.

Because we have called bind_text_domain_codeset, gettext always
returns strings in UTF8 encoding.  It's therefore not correct to
convert them again.  Thanks to Michel Boaventura for reporting
this problem.

14 years agopsppire: Translate all format type categories, not just some of them.
Michel Boaventura [Wed, 5 May 2010 16:48:03 +0000 (09:48 -0700)]
psppire: Translate all format type categories, not just some of them.

14 years agoCROSSTABS: Merge functions into cmd_crosstabs().
Ben Pfaff [Mon, 3 May 2010 04:05:42 +0000 (21:05 -0700)]
CROSSTABS: Merge functions into cmd_crosstabs().

It seems to me that this code is more straightforward if it is written as
a single function, instead of four functions, so this commit merges those
functions together.

14 years agoFREQUENCIES: Refactor and simplify percentiles calculations.
Ben Pfaff [Mon, 3 May 2010 04:05:00 +0000 (21:05 -0700)]
FREQUENCIES: Refactor and simplify percentiles calculations.

It always seemed to me that there was more code and more data for
calculating percentiles than was really needed.

14 years agoTake advantage of Gnulib configmake module.
Ben Pfaff [Mon, 3 May 2010 04:00:06 +0000 (21:00 -0700)]
Take advantage of Gnulib configmake module.

Gnulib provides the "configmake" module for discovering configuration
directories at build time.  PSPP already depends on this module indirectly,
so we might as well use it instead of defining our own variables in
Makefile.am and src/automake.mk.

(We can't replace INSTALLDIR by BINDIR because it is used under the
former name by the "relocatable-prog" module.)

14 years agoConvert syntax files to UTF-8 before loading them.
John Darrington [Sun, 2 May 2010 13:20:38 +0000 (15:20 +0200)]
Convert syntax files to UTF-8 before loading them.

Convert the contents of a syntax file to UTF-8 before loading
it into the syntax window. Fixes bug #29733
This change assumes that the files to be loaded are in the
encoding of the current locale.  If this assumption is not
true, then an error will be displayed and the file not loaded.

14 years agoUse ftello() and fseeko() instead of ftell() and fseek() everywhere.
Ben Pfaff [Sun, 2 May 2010 03:09:55 +0000 (20:09 -0700)]
Use ftello() and fseeko() instead of ftell() and fseek() everywhere.

Newer versions of glibc give annoying warnings on uses of ftell() and
fseek(), so use ftello() and fseeko() instead.

14 years agoImplement MRSETS command.
Ben Pfaff [Sun, 2 May 2010 02:09:04 +0000 (19:09 -0700)]
Implement MRSETS command.

Thanks to Tom Wilson <tom_wilson@mointel.com> for reporting the format of
the MRSETS record in system files, and to John Darrington for examples of
additional types of records.

14 years agodissect-sysfile: Print contents of extension records with unknown subtypes.
Ben Pfaff [Sat, 1 May 2010 05:14:32 +0000 (22:14 -0700)]
dissect-sysfile: Print contents of extension records with unknown subtypes.

14 years agoNew stringi_set functions.
Ben Pfaff [Mon, 26 Apr 2010 06:11:31 +0000 (23:11 -0700)]
New stringi_set functions.

14 years agoNew case-insensitive string map data structure.
Ben Pfaff [Mon, 26 Apr 2010 05:48:59 +0000 (22:48 -0700)]
New case-insensitive string map data structure.

14 years agoperl-module: Add --without-perl-module configure flag.
Ben Pfaff [Sat, 24 Apr 2010 18:32:44 +0000 (11:32 -0700)]
perl-module: Add --without-perl-module configure flag.

The built Perl module is not useful for cross-compilation.  By default it
is disabled for cross-compilation, but cross-compilation to Mingw32 is not
always detected as cross-compilation (since some Linux systems can run
Windows binaries directly, via Wine), so this option helps in such cases.

Reported by Michel Boaventura <michel.boaventura@gmail.com>.

14 years agocairo-chart: Fix Pango version check.
Ben Pfaff [Sat, 24 Apr 2010 18:18:30 +0000 (11:18 -0700)]
cairo-chart: Fix Pango version check.

There is no Pango version 2.22, but there is a 1.22.

Reported by Michel Boaventura <michel@michelboaventura.com>.

14 years agoDocument system file record type 7, subtype 16 as 64-bit number of cases.
Ben Pfaff [Thu, 22 Apr 2010 04:11:48 +0000 (21:11 -0700)]
Document system file record type 7, subtype 16 as 64-bit number of cases.

I found this record type and subtype in all .sav files written by SPSS 14
and later (and in one file written by SPSS 13).  After scratching my head
a bit I realized that it always contained the same value as the "ncases"
field in the top-level file header, but written as a 64-bit number.  So
presumably the purpose is to allow for a 64-bit count of cases.

14 years agointeger-format: Support 64-bit integers in integer_get().
Ben Pfaff [Thu, 22 Apr 2010 02:57:00 +0000 (19:57 -0700)]
integer-format: Support 64-bit integers in integer_get().

My guess is that this was just a typo from when I originally wrote this
function.

14 years agoperl-module: Avoid compiler warning from conflicting "my_strftime" macros.
Ben Pfaff [Wed, 21 Apr 2010 04:20:30 +0000 (21:20 -0700)]
perl-module: Avoid compiler warning from conflicting "my_strftime" macros.

Avoids the following warnings:

In file included from /usr/lib/perl/5.10/CORE/perl.h:953,
                 from PSPP.xs:23:
/usr/lib/perl/5.10/CORE/embed.h:2803:1: warning: "my_strftime" redefined
In file included from PSPP.xs:20:
/home/blp/pspp/output/_build/config.h:1968:1: warning: this is the location of the previous definition

14 years agoperl-module: Better document Perl module requirements.
Ben Pfaff [Tue, 20 Apr 2010 03:30:32 +0000 (20:30 -0700)]
perl-module: Better document Perl module requirements.

14 years agoconfigure: Improve check for PostgreSQL's libpq.
Ben Pfaff [Fri, 16 Apr 2010 05:23:09 +0000 (22:23 -0700)]
configure: Improve check for PostgreSQL's libpq.

Previously this test did not check that linking against libpq worked.
This commit fixes that.  Besides broken installations this also guards
against pg_config that is applicable to the host when cross-compiling to
Mingw, which doesn't always show up as cross-compiling since some systems
can still run the Mingw binaries if Wine is installed as a binary
interpreter for Windows executables.

This also fixes a minor issue where -lpq was being added to the default
LIBS as well as to PG_LIBS, which meant that every PSPP binary was being
linked against it, not just the ones that needed it (which were being
linked against it twice).

Problem reported by Michel Boaventura <michel@michelboaventura.com>.

14 years agoMove definition of UI_FILES out of HAVE_GUI.
Ben Pfaff [Fri, 16 Apr 2010 03:39:47 +0000 (20:39 -0700)]
Move definition of UI_FILES out of HAVE_GUI.

UI_FILES needs to be defined regardless of whether the GUI is being built,
because the .ui files are needed to generate pspp.pot.  (We don't want
pspp.pot to depend on whether the GUI is configured, either.)

Problem reported by Michel Boaventura <michel.boaventura@gmail.com>.

14 years agoconfigure.ac: Define DEPENDS_ON_LIBINTL if LIBINTL is nonempty.
Ben Pfaff [Sat, 27 Mar 2010 18:32:07 +0000 (11:32 -0700)]
configure.ac: Define DEPENDS_ON_LIBINTL if LIBINTL is nonempty.

This avoids a collision between the gnulib and libintl printf wrappers.
See http://permalink.gmane.org/gmane.comp.lib.gnulib.bugs/21139 for
more information.

Thanks to Michel Boaventura for reporting the problem and to Bruno Haible
for the fix.

14 years agoconfigure.ac: Restore use of AM_GNU_GETTEXT.
Ben Pfaff [Sat, 27 Mar 2010 18:30:01 +0000 (11:30 -0700)]
configure.ac: Restore use of AM_GNU_GETTEXT.

AM_GNU_GETTEXT is useful for its sophisticated support for finding the
libraries needed to use gettext, but it also calls AM_PO_SUBDIRS, which
we do not want because PSPP has its own "po" directory makefile support.

This commit reintroduces AM_GNU_GETTEXT but disables AM_PO_SUBDIRS by
declaring that we have already called it using AC_PROVIDE.  It also
adds a dummy Makefile.in to the "po" directory and an ABOUT-NLS file
because Automake requires both.

14 years agoperl-module: Fix missing data in PSPP code embedded in generate_sav_file.
Ben Pfaff [Thu, 15 Apr 2010 20:13:25 +0000 (13:13 -0700)]
perl-module: Fix missing data in PSPP code embedded in generate_sav_file.

14 years agoperl-module: Use Autotest for testing Perl.
Ben Pfaff [Thu, 15 Apr 2010 04:47:07 +0000 (21:47 -0700)]
perl-module: Use Autotest for testing Perl.

The output of the existing Perl test is difficult to understand, in my
opinion.  When everything goes right, it prints out plenty of stuff.
When something goes wrong, it prints more stuff, but that stuff usually
doesn't make it clear to me what went wrong or where.

Moving it into Autotest helps in two ways.  When everything goes right,
all you get is a clear summary that says that.  When something goes wrong,
you get clear log files that explain where.

(This commit actually duplicates the Perl module tests: it makes Autotest
copies of each of the individual tests, and Autotest also runs the
t/Pspp.t unit test.  The former are easier to understand; the latter is
what Perl hackers apparently expect to see.)

14 years agoperl-module: Use new var_get_encoding() function.
Ben Pfaff [Wed, 14 Apr 2010 04:18:37 +0000 (21:18 -0700)]
perl-module: Use new var_get_encoding() function.

14 years agoshort-names: Eliminate use of old hash table data structure.
Ben Pfaff [Mon, 12 Apr 2010 05:10:25 +0000 (22:10 -0700)]
short-names: Eliminate use of old hash table data structure.

14 years agoAGGREGATE: Convert tests to use Autotest.
Ben Pfaff [Tue, 13 Apr 2010 04:30:16 +0000 (21:30 -0700)]
AGGREGATE: Convert tests to use Autotest.

14 years agoDESCRIPTIVES: Convert tests to use Autotest.
Ben Pfaff [Tue, 13 Apr 2010 03:55:45 +0000 (20:55 -0700)]
DESCRIPTIVES: Convert tests to use Autotest.

14 years agoCOMPUTE: Convert tests to use Autotest.
Ben Pfaff [Tue, 13 Apr 2010 02:18:56 +0000 (19:18 -0700)]
COMPUTE: Convert tests to use Autotest.

14 years agoRECODE: Convert tests to use Autotest.
Ben Pfaff [Mon, 12 Apr 2010 22:49:20 +0000 (15:49 -0700)]
RECODE: Convert tests to use Autotest.

14 years agoAUTORECODE: Eliminate use of old hash table implementation.
Ben Pfaff [Sat, 3 Apr 2010 04:28:46 +0000 (21:28 -0700)]
AUTORECODE: Eliminate use of old hash table implementation.

14 years agoAUTORECODE: Use Autotest for test suite.
Ben Pfaff [Fri, 2 Apr 2010 23:53:07 +0000 (16:53 -0700)]
AUTORECODE: Use Autotest for test suite.

14 years agoAUTORECODE: Use "union value" instead of custom "union arc_value".
Ben Pfaff [Fri, 2 Apr 2010 23:48:55 +0000 (16:48 -0700)]
AUTORECODE: Use "union value" instead of custom "union arc_value".

These days "union value" has everything that AUTORECODE needs, so there is
no point in maintaining a local replacement for it.

14 years agoAUTORECODE: Fix indentation.
Ben Pfaff [Fri, 2 Apr 2010 14:51:25 +0000 (07:51 -0700)]
AUTORECODE: Fix indentation.

14 years agovariable-parser: Implement PV_NO_DUPLICATE.
Ben Pfaff [Sat, 3 Apr 2010 04:26:52 +0000 (21:26 -0700)]
variable-parser: Implement PV_NO_DUPLICATE.

Now that we have string_set, PV_NO_DUPLICATE is easy to implement, so
we might as well.

14 years agovariable-parser: Eliminate use of old hash table data structure.
Ben Pfaff [Fri, 2 Apr 2010 23:48:12 +0000 (16:48 -0700)]
variable-parser: Eliminate use of old hash table data structure.

14 years agoAdd case-insensitive string set.
Ben Pfaff [Sat, 3 Apr 2010 18:29:33 +0000 (11:29 -0700)]
Add case-insensitive string set.

14 years agovalue: New function value_clone_pool().
Ben Pfaff [Fri, 2 Apr 2010 23:47:14 +0000 (16:47 -0700)]
value: New function value_clone_pool().

14 years agodictionary: Use hmap instead of older hsh_table.
Ben Pfaff [Mon, 12 Apr 2010 04:45:16 +0000 (21:45 -0700)]
dictionary: Use hmap instead of older hsh_table.

The greatest benefit of this change is that it allows dict_lookup_var() to
avoid creating and destroying a whole variable just to look one up by name.

14 years agohmapx: New function hmapx_clear().
Ben Pfaff [Sun, 4 Apr 2010 19:51:08 +0000 (12:51 -0700)]
hmapx: New function hmapx_clear().

14 years agohmap: New function hmap_clear().
Ben Pfaff [Sun, 11 Apr 2010 20:04:37 +0000 (13:04 -0700)]
hmap: New function hmap_clear().

14 years agovariable: Remove unneeded assertions.
Ben Pfaff [Sat, 10 Apr 2010 03:55:25 +0000 (20:55 -0700)]
variable: Remove unneeded assertions.

These assertions are already effectively checked anyhow, since the program
will already segfault if passed a null pointer.

14 years agodictionary: Remove unneeded assertions.
Ben Pfaff [Sat, 10 Apr 2010 03:54:24 +0000 (20:54 -0700)]
dictionary: Remove unneeded assertions.

These assertions are already effectively checked anyhow, since the program
will already segfault if passed a null pointer.

14 years agovardict: Make vardict opaque to variable code.
Ben Pfaff [Sat, 10 Apr 2010 03:41:04 +0000 (20:41 -0700)]
vardict: Make vardict opaque to variable code.

14 years agoMake struct variable refer to struct vardict through a pointer.
Ben Pfaff [Fri, 9 Apr 2010 04:37:24 +0000 (21:37 -0700)]
Make struct variable refer to struct vardict through a pointer.

This will allow the dictionary to integrate struct vardict into itself in
an upcoming commit.

14 years agoMake "internal variables" part of a dictionary.
Ben Pfaff [Fri, 9 Apr 2010 04:06:43 +0000 (21:06 -0700)]
Make "internal variables" part of a dictionary.

The "internal variables" created by var_create_internal() are somewhat of
a nasty corner case in the PSPP dictionary and variable implementation,
because they are the only variables that have a case index and
dictionary index but do not belong to a dictionary.  This commit fixes
that wart, by putting internal variables in a dictionary that is used just
for them.  It adds an assertion to var_set_vardict() to ensure that this
is now an invariant property.

As part of the change, var_create_internal() is renamed
dict_Create_internal_var() and moved to dictionary.c, since it fits better
there.  Also, a new function dict_destroy_internal_var() must now be used
to destroy internal variables.

The dictionary indexes of internal variables are no longer unique
process-wide.  A previous commit eliminated the dependencies on this
property.

14 years agovariable: Introduce and use new function var_get_encoding().
Ben Pfaff [Fri, 9 Apr 2010 04:28:42 +0000 (21:28 -0700)]
variable: Introduce and use new function var_get_encoding().

These changes seem like slight cleanups since they eliminate a function
parameter in these cases.

14 years agodictionary: Fix memory leak in dict_set_encoding().
Ben Pfaff [Fri, 9 Apr 2010 04:12:02 +0000 (21:12 -0700)]
dictionary: Fix memory leak in dict_set_encoding().

If this function was called more than once for a given dictionary then all
but the final encoding name would be leaked.

14 years agodictionary: Fix potential access beyond allocated memory.
Ben Pfaff [Sat, 10 Apr 2010 04:45:50 +0000 (21:45 -0700)]
dictionary: Fix potential access beyond allocated memory.

This code replaces the dictionary's "var" array by another one, so it must
either update "var_cap" to the allocated size or allocate "var_cap" (not
"var_cnt") elements.  I chose the latter fix.

14 years agoGet rid of unnecessary uses of var_get_dict_index().
Ben Pfaff [Thu, 8 Apr 2010 05:12:07 +0000 (22:12 -0700)]
Get rid of unnecessary uses of var_get_dict_index().

Some code used the result of var_get_dict_index() on a pair of variables to
tell whether the variables are the same.  This is unnecessary: v1 == v2
works just as well.

Other code used the result of var_get_dict_index() as part of a hash value
computation.  This is reasonable, but it is even better just to hash the
pointer to the variable.