Merge commit 'origin/stable'
authorBen Pfaff <blp@gnu.org>
Fri, 10 Oct 2008 05:49:13 +0000 (22:49 -0700)
committerBen Pfaff <blp@gnu.org>
Fri, 10 Oct 2008 05:49:13 +0000 (22:49 -0700)
Conflicts:

tests/automake.mk

14 files changed:
INSTALL
NEWS
Smake
acinclude.m4
doc/automake.mk
src/language/data-io/data-list.c
src/language/data-io/data-reader.c
src/language/lexer/automake.mk
src/language/stats/crosstabs.q
src/ui/gui/main.c
tests/automake.mk
tests/bugs/crosstabs-crash.sh
tests/bugs/crosstabs-crash2.sh
tests/command/longvars.sh

diff --git a/INSTALL b/INSTALL
index c07faa27841a284c8231fded9edd970e8755c0bd..ea43342eef7223bce3b2fcb76d5ba817166bf2fd 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -108,6 +108,19 @@ release.
   1. `cd' to the directory containing the package's source code and type
      `./configure' to configure the package for your system.
 
+     You may invoke `configure' with --help to see what options are
+     available.  The most common of these are listed under "Optional
+     Features", below.
+
+     If you installed some of the libraries that PSPP uses in a
+     non-standard location (on many systems, anywhere other than
+     /usr), you may need to provide some special flags to `configure'
+     to tell it where to find them.  For example, on GNU/Linux, if you
+     installed some libraries in /usr/local, then you need to invoke
+     it with at least the following options:
+
+       ./configure LDFLAGS='-L/usr/local/lib -Wl,-rpath,/usr/local/lib' CPPFLAGS='-I/usr/local/include'
+
      Running `configure' takes awhile.  While running, it prints some
      messages telling which features it is checking for.
 
diff --git a/NEWS b/NEWS
index 874106d6cf5d8517ddc505ec6d37867f6115fe17..bff9a7872848263511ca2ca50aad01a735680368 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,10 +1,63 @@
 PSPP NEWS -- history of user-visible changes.
-Time-stamp: <2008-06-04 21:27:06 blp>
-Copyright (C) 1996-9, 2000 Free Software Foundation, Inc.
+Time-stamp: <2008-10-09 21:32:07 blp>
+Copyright (C) 1996-9, 2000, 2008 Free Software Foundation, Inc.
 See the end for copying conditions.
 
 Please send PSPP bug reports to bug-gnu-pspp@gnu.org.
 
+Changes from 0.6.0 to 0.6.1:
+
+  * Statistical bug fixes:
+
+    - Report correct standardized regression coefficients in linear
+      regression output (bug #23567).
+
+  * Bug fixes that affect PSPP and PSPPIRE:
+
+    - Avoid crash with pie charts (bug #24014).
+
+    - Don't append % to count totals (bug #24003).
+
+    - Don't crash on bad input (bug #24031).
+
+    - Don't crash if "end data." is not left aligned (bug #24115).
+
+    - Change default workspace value to 64 MB, to avoid unnecessary
+      disk accesses on modern machines.
+
+  * PSPPIRE bug fixes:
+
+    - Add ".sav" or ".por" suffix to filename when saving with Save_As
+      (bug #23137).
+
+    - Make it possible to reopen the output window on Windows (bug
+      #24033).
+
+    - A POSIX regular expression library is now included and used
+      automatically if the host does not have one or has one that is
+      inadequate.
+
+  * Build fixes and changes:
+
+    - Work around bug in GSL that prevented build with recent GCC
+      versions without manually adding -fgnu89-inline to CFLAGS.
+
+    - Also warn about missing prerequisites as we encounter them (bug
+      #24445).
+
+    - Distribute necessary files to allow users working from the
+      distributed tarball to configure with --enable-gui-tools.
+
+    - Append $(EXEEXT_FOR_BUILD) to output file name when building
+      q2c, fixing build problems on Windows.
+
+    - GSL 1.8 or later is now required.
+
+    - Build errors with --enable-relocatable were fixed.
+
+  * The German translations were removed, since native German speakers
+    found them too poor to be useful.
+
 Changes from 0.4.0 to 0.6.0:
 
   * The PSPP license is now version 3 or later of the GNU General
diff --git a/Smake b/Smake
index 11ab6daf2d772ba3f39bcb4b91dcbecfca7e4dc6..3994a302b650b7d5c5f89a10db484b010adc1aa1 100644 (file)
--- a/Smake
+++ b/Smake
@@ -46,6 +46,7 @@ GNULIB_MODULES = \
        printf-posix \
        printf-safe \
        progname \
+       regex \
        relocatable-prog \
        round \
        snprintf \
index 11154ee37bfa7ac54f6411bce7ebb6e7b8a680fb..75fcb0d023d5e547b559afa9e7c9bf6a82f85694 100644 (file)
@@ -5,9 +5,11 @@ dnl with or without modifications, as long as this notice is preserved.
 
 dnl Prerequisites.
 
-dnl Instead of giving an error about each prerequisite as we encounter it, 
-dnl group them all together at the end of the run, to be user-friendly.
-AC_DEFUN([PSPP_REQUIRED_PREREQ], [pspp_required_prereqs="$pspp_required_prereqs
+dnl Summarize all the missing prerequisites at the end of the run to
+dnl increase user-friendliness.
+AC_DEFUN([PSPP_REQUIRED_PREREQ], 
+  [AC_MSG_WARN([You must install $1 before building PSPP.])
+pspp_required_prereqs="$pspp_required_prereqs
        $1"])
 AC_DEFUN([PSPP_OPTIONAL_PREREQ], [pspp_optional_prereqs="$pspp_optional_prereqs
        $1"])
@@ -68,10 +70,10 @@ AC_DEFUN([PSPP_LIBPLOT],
   fi
 ])
 
-dnl Check whether a C compiler option is accepted.
-dnl If so, add it to CFLAGS.
-dnl Example: PSPP_ENABLE_OPTION(-Wdeclaration-after-statement)
-AC_DEFUN([PSPP_ENABLE_OPTION],
+dnl PSPP_CHECK_CC_OPTION([OPTION], [ACTION-IF-ACCEPTED], [ACTION-IF-REJECTED])
+dnl Check whether the given C compiler OPTION is accepted.
+dnl If so, execute ACTION-IF-ACCEPTED, otherwise ACTION-IF-REJECTED.
+AC_DEFUN([PSPP_CHECK_CC_OPTION],
 [
   m4_define([pspp_cv_name], [pspp_cv_[]m4_translit([$1], [-], [_])])dnl
   AC_CACHE_CHECK([whether $CC accepts $1], [pspp_cv_name], 
@@ -80,10 +82,19 @@ AC_DEFUN([PSPP_ENABLE_OPTION],
      AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,)], [pspp_cv_name[]=yes], [pspp_cv_name[]=no])
      CFLAGS="$pspp_save_CFLAGS"])
   if test $pspp_cv_name = yes; then
-    CFLAGS="$CFLAGS $1"
+    m4_if([$2], [], [;], [$2])
+  else
+    m4_if([$3], [], [:], [$3])
   fi
 ])
 
+dnl PSPP_ENABLE_OPTION([OPTION])
+dnl Check whether the given C compiler OPTION is accepted.
+dnl If so, add it to CFLAGS.
+dnl Example: PSPP_ENABLE_OPTION([-Wdeclaration-after-statement])
+AC_DEFUN([PSPP_ENABLE_OPTION], 
+  [PSPP_CHECK_CC_OPTION([$1], [CFLAGS="$CFLAGS $1"])])
+
 dnl Check for readline and history libraries.
 
 dnl Modified for PSPP, based on readline.m4 serial 3 from
@@ -256,17 +267,19 @@ AC_DEFUN([PSPP_GSL_NEEDS_FGNU89_INLINE],
  # make sure that it has run by the time we run this test, otherwise we'll
  # get a false result.
  AC_REQUIRE([gl_INLINE])
- AC_CACHE_CHECK([whether GSL needs -fgnu89-inline to link],
-                pspp_cv_gsl_needs_fgnu89_inline, [
-               PSPP_LINK2_IFELSE(
-                 [AC_LANG_PROGRAM([#include <gsl/gsl_math.h>
-                                   ], [GSL_MAX_INT(1,2);])],
-                  [AC_LANG_SOURCE([#include <gsl/gsl_math.h>
-                                   void x (void) {}])],
-                  [pspp_cv_gsl_needs_fgnu89_inline=no],
-                 [pspp_cv_gsl_needs_fgnu89_inline=yes])])
- if test "$pspp_cv_gsl_needs_fgnu89_inline" = "yes"; then
-     CFLAGS="$CFLAGS -fgnu89-inline"
- fi
+ PSPP_CHECK_CC_OPTION(
+   [-fgnu89-inline],
+   [AC_CACHE_CHECK([whether GSL needs -fgnu89-inline to link],
+                   pspp_cv_gsl_needs_fgnu89_inline, [
+                   PSPP_LINK2_IFELSE(
+                     [AC_LANG_PROGRAM([#include <gsl/gsl_math.h>
+                                      ], [GSL_MAX_INT(1,2);])],
+                     [AC_LANG_SOURCE([#include <gsl/gsl_math.h>
+                                      void x (void) {}])],
+                     [pspp_cv_gsl_needs_fgnu89_inline=no],
+                     [pspp_cv_gsl_needs_fgnu89_inline=yes])])
+     if test "$pspp_cv_gsl_needs_fgnu89_inline" = "yes"; then
+        CFLAGS="$CFLAGS -fgnu89-inline"
+     fi])
 ])
 dnl acinclude.m4 ends here
index fa6e8b03df62305ee63049966df28d44aa9f7360..3445379a1ca756e00e62751623ab4759cdf12dc0 100644 (file)
@@ -62,3 +62,4 @@ uninstall-hook::
        rm -f $(DESTDIR)$(infodir)/pspp.info.gz
 
 EXTRA_DIST += doc/OChangeLog
+CLEANFILES += pspp-dev.dvi
index ecb87d4a61a779a98af86cc63ae8b896a1bf5ec1..7a2a074b59e763eebe322780c96e86f057991ed6 100644 (file)
@@ -282,7 +282,8 @@ cmd_data_list (struct lexer *lexer, struct dataset *ds)
 
  error:
   data_parser_destroy (parser);
-  dict_destroy (dict);
+  if (!in_input_program ())
+    dict_destroy (dict);
   fh_unref (fh);
   return CMD_CASCADING_FAILURE;
 }
@@ -404,7 +405,7 @@ parse_free (struct lexer *lexer, struct dictionary *dict,
 
       if (!parse_DATA_LIST_vars_pool (lexer, tmp_pool,
                                      &name, &name_cnt, PV_NONE))
-       return 0;
+       return false;
 
       if (lex_match (lexer, '('))
        {
@@ -435,7 +436,7 @@ parse_free (struct lexer *lexer, struct dictionary *dict,
          if (v == NULL)
            {
              msg (SE, _("%s is a duplicate variable name."), name[i]);
-             return 0;
+             return false;
            }
           var_set_both_formats (v, &output);
 
index 7fd722a81e3f9737a424f6dfb256c46d005d88c0..24ddcf13ec61cf6749c64cd63bfd4e03268cbeea 100644 (file)
@@ -187,6 +187,7 @@ read_inline_record (struct dfm_reader *r)
 
   if (!lex_get_line_raw (r->lexer))
     {
+      lex_discard_line (r->lexer);
       msg (SE, _("Unexpected end-of-file while reading data in BEGIN "
                  "DATA.  This probably indicates "
                  "a missing or misformatted END DATA command.  "
index e0efbb66b8c9bbf1d12b1f59485a20a6a5c295b4..0ce371afb8b6c37c36b81478c76108ec70eab3fb 100644 (file)
@@ -17,7 +17,7 @@ EXTRA_DIST += src/language/lexer/q2c.c
 
 src/language/lexer/q2c$(EXEEXT_FOR_BUILD): $(top_srcdir)/src/language/lexer/q2c.c 
        @$(MKDIR_P) `dirname $@`
-       $(CC_FOR_BUILD) $(top_srcdir)/src/language/lexer/q2c.c -o $(top_builddir)/src/language/lexer/q2c
+       $(CC_FOR_BUILD) $(top_srcdir)/src/language/lexer/q2c.c -o $(top_builddir)/src/language/lexer/q2c$(EXEEXT_FOR_BUILD)
 
 
 CLEANFILES += src/language/lexer/q2c$(EXEEXT_FOR_BUILD)
index d49e3006d9614aed22955aede20dfe3d76b5708a..801b128b8a4ad1c5e0398caa897a4cee0a869f08 100644 (file)
@@ -1861,7 +1861,6 @@ display_crosstabulation (void)
     tab_offset (table, -1, tab_row (table) - num_cells * n_rows);
     for (r = 0; r < n_rows; r++)
       {
-        char suffix = 0;
         bool mark_missing = false;
 
         if (cmd.miss == CRS_REPORT
@@ -1870,6 +1869,7 @@ display_crosstabulation (void)
 
         for (i = 0; i < num_cells; i++)
           {
+            char suffix = 0;
             double v;
 
             switch (cells[i])
@@ -1878,7 +1878,7 @@ display_crosstabulation (void)
                 v = row_tot[r];
                 break;
               case CRS_CL_ROW:
-                v = 100.;
+                v = 100.0;
                 suffix = '%';
                 break;
               case CRS_CL_COLUMN:
@@ -1916,7 +1916,6 @@ display_crosstabulation (void)
       {
        double ct = c < n_cols ? col_tot[c] : W;
         bool mark_missing = false;
-        char suffix = 0;
         int i;
 
         if (cmd.miss == CRS_REPORT && c < n_cols
@@ -1925,13 +1924,13 @@ display_crosstabulation (void)
 
         for (i = 0; i < num_cells; i++)
          {
+            char suffix = 0;
            double v;
 
            switch (cells[i])
              {
              case CRS_CL_COUNT:
                v = ct;
-                suffix = '%';
                break;
              case CRS_CL_ROW:
                v = ct / W * 100.;
@@ -1954,7 +1953,7 @@ display_crosstabulation (void)
                 NOT_REACHED ();
              }
 
-            format_cell_entry (table, c, i, v, suffix, mark_missing);
+           format_cell_entry (table, c, i, v, suffix, mark_missing);
          }
         last_row = i;
       }
index 6d5f50e1bf0df744b1d14722776cfab4ad4eff6e..f68f2ad66a24ab3b4a1f774594de76c783dc895a 100644 (file)
@@ -20,6 +20,7 @@
 #include "progname.h"
 #include <stdlib.h>
 #include <getopt.h>
+#include <gl/relocatable.h>
 
 #include <libpspp/version.h>
 #include <libpspp/copyleft.h>
@@ -45,7 +46,7 @@ create_splash_window (void)
   gtk_window_set_type_hint (GTK_WINDOW (splash),
                            GDK_WINDOW_TYPE_HINT_SPLASHSCREEN);
 
-  image = gtk_image_new_from_file (PKGDATADIR "/splash.png");
+  image = gtk_image_new_from_file (relocate (PKGDATADIR "/splash.png"));
 
   gtk_container_add (GTK_CONTAINER (splash), image);
 
index 2f876cfbefea879bed780a8a127584272e18f438..dfd49170a6d97337c548f9e8bb1c33d64b9eddc2 100644 (file)
@@ -293,7 +293,7 @@ tests_dissect_sysfile_SOURCES = \
        src/libpspp/float-format.c \
        tests/dissect-sysfile.c
 tests_dissect_sysfile_LDADD = gl/libgl.la @LIBINTL@
-tests_dissect_sysfile_CFLAGS = $(AM_CFLAGS)
+tests_dissect_sysfile_CPPFLAGS = $(AM_CPPFLAGS) -DINSTALLDIR=\"$(bindir)\"
 
 EXTRA_DIST += \
        $(dist_TESTS) \
index 99ec07cac271ebf44c7fbccd528ef9547122d144..eea89304599d63e3c7558ed21f9775f84f40c9f1 100755 (executable)
@@ -108,7 +108,7 @@ diff -b  -w $TEMPDIR/pspp.list - << EOF
 #           5.00#      .0|      .0|      .0|      .0|      .0|      .0|      .0|      .0#
 #           6.00#      .0|      .0|      .0|      .0|      .0|      .0|      .0|      .0#
 #           7.00#      .0|      .0|      .0|      .0|      .0|      .0|      .0|      .0#
-#Total          #     .0%|     .0%|     .0%|     .0%|    1.0%|     .0%|     .0%|    1.0%#
+#Total          #      .0|      .0|      .0|      .0|     1.0|      .0|      .0|     1.0#
 #===============#========#========#========#========#========#========#========#========#
 EOF
 if [ $? -ne 0 ] ; then fail ; fi
index 5866d0e58c584d5ca28f8a611dca22372c1094e7..060fa234378eaa0a926da02cf08d64d77a01a386 100755 (executable)
@@ -108,7 +108,7 @@ $TEMPDIR/crosstabs-crash2.sh.sps:6: warning: BEGIN DATA: Missing value(s) for al
 #           1.00#     1.0|      .0|      .0|     1.0|     2.0#
 #           2.00#      .0|      .0|     1.0|      .0|     1.0#
 #           3.00#      .0|     1.0|      .0|      .0|     1.0#
-#Total          #    1.0%|    1.0%|    1.0%|    1.0%|    4.0%#
+#Total          #     1.0|     1.0|     1.0|     1.0|     4.0#
 #===============#========#========#========#========#========#
 EOF
 if [ $? -ne 0 ] ; then fail ; fi
index 2a75f64b5e8ab629dfa50c556f8213c094184c26..49a7cd4c2a26c449034973e35e8f415fb7c5d0c3 100755 (executable)
@@ -119,7 +119,7 @@ AlphaBetaGamma        B        X Yabbadabbadoo
 #           5.00#      .0|      .0|      .0|      .0|      .0|      .0|      .0|      .0#
 #           6.00#      .0|      .0|      .0|      .0|      .0|      .0|      .0|      .0#
 #           7.00#      .0|      .0|      .0|      .0|      .0|      .0|      .0|      .0#
-#Total          #     .0%|     .0%|     .0%|     .0%|    1.0%|     .0%|     .0%|    1.0%#
+#Total          #      .0|      .0|      .0|      .0|     1.0|      .0|      .0|     1.0#
 #===============#========#========#========#========#========#========#========#========#
 EOF
 if [ $? -ne 0 ] ; then fail ; fi