From: Ben Pfaff Date: Fri, 10 Oct 2008 05:49:13 +0000 (-0700) Subject: Merge commit 'origin/stable' X-Git-Tag: v0.7.1~50^2~39 X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=015e221b0f8578afee769528572c76387f26c629;hp=ff46735d4c81b49fa17c8bd26f3f5dd7bde9a15d;p=pspp-builds.git Merge commit 'origin/stable' Conflicts: tests/automake.mk --- diff --git a/INSTALL b/INSTALL index c07faa27..ea43342e 100644 --- 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 874106d6..bff9a787 100644 --- 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 11ab6daf..3994a302 100644 --- a/Smake +++ b/Smake @@ -46,6 +46,7 @@ GNULIB_MODULES = \ printf-posix \ printf-safe \ progname \ + regex \ relocatable-prog \ round \ snprintf \ diff --git a/acinclude.m4 b/acinclude.m4 index 11154ee3..75fcb0d0 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -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_MAX_INT(1,2);])], - [AC_LANG_SOURCE([#include - 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_MAX_INT(1,2);])], + [AC_LANG_SOURCE([#include + 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 diff --git a/doc/automake.mk b/doc/automake.mk index fa6e8b03..3445379a 100644 --- a/doc/automake.mk +++ b/doc/automake.mk @@ -62,3 +62,4 @@ uninstall-hook:: rm -f $(DESTDIR)$(infodir)/pspp.info.gz EXTRA_DIST += doc/OChangeLog +CLEANFILES += pspp-dev.dvi diff --git a/src/language/data-io/data-list.c b/src/language/data-io/data-list.c index ecb87d4a..7a2a074b 100644 --- a/src/language/data-io/data-list.c +++ b/src/language/data-io/data-list.c @@ -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); diff --git a/src/language/data-io/data-reader.c b/src/language/data-io/data-reader.c index 7fd722a8..24ddcf13 100644 --- a/src/language/data-io/data-reader.c +++ b/src/language/data-io/data-reader.c @@ -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. " diff --git a/src/language/lexer/automake.mk b/src/language/lexer/automake.mk index e0efbb66..0ce371af 100644 --- a/src/language/lexer/automake.mk +++ b/src/language/lexer/automake.mk @@ -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) diff --git a/src/language/stats/crosstabs.q b/src/language/stats/crosstabs.q index d49e3006..801b128b 100644 --- a/src/language/stats/crosstabs.q +++ b/src/language/stats/crosstabs.q @@ -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; } diff --git a/src/ui/gui/main.c b/src/ui/gui/main.c index 6d5f50e1..f68f2ad6 100644 --- a/src/ui/gui/main.c +++ b/src/ui/gui/main.c @@ -20,6 +20,7 @@ #include "progname.h" #include #include +#include #include #include @@ -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); diff --git a/tests/automake.mk b/tests/automake.mk index 2f876cfb..dfd49170 100644 --- a/tests/automake.mk +++ b/tests/automake.mk @@ -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) \ diff --git a/tests/bugs/crosstabs-crash.sh b/tests/bugs/crosstabs-crash.sh index 99ec07ca..eea89304 100755 --- a/tests/bugs/crosstabs-crash.sh +++ b/tests/bugs/crosstabs-crash.sh @@ -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 diff --git a/tests/bugs/crosstabs-crash2.sh b/tests/bugs/crosstabs-crash2.sh index 5866d0e5..060fa234 100755 --- a/tests/bugs/crosstabs-crash2.sh +++ b/tests/bugs/crosstabs-crash2.sh @@ -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 diff --git a/tests/command/longvars.sh b/tests/command/longvars.sh index 2a75f64b..49a7cd4c 100755 --- a/tests/command/longvars.sh +++ b/tests/command/longvars.sh @@ -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