Please send PSPP bug reports to bug-gnu-pspp@gnu.org.
-Changes from 0.10.2 to 0.10.5-pre3:
+Changes from 0.10.2 to 0.10.4
* The REGRESSION command now has a /ORIGIN subcommand to perform
regression through the origin.
* The FACTOR command can now analyse matrix files prepared with MATRIX DATA.
+ * The FACTOR command can now print the anti-image matrices.
+
* The MATRIX DATA command has been added.
* Some inappropriate properties in selection dialogs have been corrected.
* Graphical user interface changes:
+ ** The code implementing the sheet rendering has been removed. Instead we
+ use a third party library: spread-sheet-widget.
+
** There is a new menu: Edit|Options
** The Non Parametric Statistics Menu has a new item: "K Independent Samples".
+ ** Dialog boxes can now be canceled using the <Escape> key.
+
* The AUTORECODE command now accepts an optional / before INTO.
* The short form of the VECTOR command can now create string variables.
+ * Bug fixes, including fixes for CVE-2017-10791 and CVE-2017-10792.
+
Changes from 0.10.1 to 0.10.2:
* CROSSTABS implements a new COUNT subcommand to round case or cell
+ dnl PSPP - a program for statistical analysis.
+ dnl Copyright (C) 2017 Free Software Foundation, Inc.
+ dnl
+ dnl This program is free software: you can redistribute it and/or modify
+ dnl it under the terms of the GNU General Public License as published by
+ dnl the Free Software Foundation, either version 3 of the License, or
+ dnl (at your option) any later version.
+ dnl
+ dnl This program is distributed in the hope that it will be useful,
+ dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
+ dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ dnl GNU General Public License for more details.
+ dnl
+ dnl You should have received a copy of the GNU General Public License
+ dnl along with this program. If not, see <http://www.gnu.org/licenses/>.
+ dnl
dnl Process this file with autoconf to produce a configure script.
dnl Initialize.
AC_PREREQ(2.63)
- AC_INIT([GNU PSPP], [0.10.5pre1], [bug-gnu-pspp@gnu.org], [pspp])
-AC_INIT([GNU PSPP], [0.10.5-pre3], [bug-gnu-pspp@gnu.org], [pspp])
++AC_INIT([GNU PSPP], [0.10.4], [bug-gnu-pspp@gnu.org], [pspp])
AC_CONFIG_AUX_DIR([build-aux])
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_TESTDIR([tests])
PKG_CHECK_MODULES([GTKSOURCEVIEW], [gtksourceview-3.0 >= 3.4.2], [],
[PSPP_REQUIRED_PREREQ([gtksourceview 3.0 version 3.4.2 or later (or use --without-gui)])])
- PKG_CHECK_MODULES([GLIB], [glib-2.0 >= 2.32], [],
- [PSPP_REQUIRED_PREREQ([glib 2.0 version 2.32 or later (or use --without-gui)])])
+ PKG_CHECK_MODULES([GLIB], [glib-2.0 >= 2.44], [],
+ [PSPP_REQUIRED_PREREQ([glib 2.0 version 2.44 or later (or use --without-gui)])])
+
+ PKG_CHECK_MODULES([SPREAD_SHEET_WIDGET], [spread-sheet-widget >= 0.0], [],
+ [PSPP_REQUIRED_PREREQ([spread-sheet-widget 0.0 (or use --without-gui)])])
AC_ARG_VAR([GLIB_GENMARSHAL])
AC_CHECK_PROGS([GLIB_GENMARSHAL], [glib-genmarshal])
+ # PSPP - a program for statistical analysis.
+ # Copyright (C) 2017 Free Software Foundation, Inc.
+ #
+ # This program is free software: you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+ # the Free Software Foundation, either version 3 of the License, or
+ # (at your option) any later version.
+ #
+ # This program is distributed in the hope that it will be useful,
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ # GNU General Public License for more details.
+ #
+ # You should have received a copy of the GNU General Public License
+ # along with this program. If not, see <http://www.gnu.org/licenses/>.
+ #
## Process this file with automake to produce Makefile.in -*- makefile -*-
include $(top_srcdir)/lib/linreg/automake.mk
include $(top_srcdir)/lib/tukey/automake.mk
-
-if HAVE_GUI
-include $(top_srcdir)/lib/gtk-contrib/automake.mk
-endif
+ # PSPP - a program for statistical analysis.
+ # Copyright (C) 2017 Free Software Foundation, Inc.
+ #
+ # This program is free software: you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+ # the Free Software Foundation, either version 3 of the License, or
+ # (at your option) any later version.
+ #
+ # This program is distributed in the hope that it will be useful,
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ # GNU General Public License for more details.
+ #
+ # You should have received a copy of the GNU General Public License
+ # along with this program. If not, see <http://www.gnu.org/licenses/>.
+ #
## Process this file with automake to produce Makefile.in -*- makefile -*-
UI_FILES = \
src/ui/gui/marshaller-list \
src/ui/gui/pspplogo.svg
+src_ui_gui_psppire_CPPFLAGS=
if HAVE_GUI
-bin_PROGRAMS += src/ui/gui/psppire
-noinst_PROGRAMS += src/ui/gui/spreadsheet-test
+bin_PROGRAMS += src/ui/gui/psppire
+noinst_PROGRAMS += src/ui/gui/spreadsheet-test
-src_ui_gui_psppire_CFLAGS = $(GTK_CFLAGS) $(GTKSOURCEVIEW_CFLAGS) -Wall -DGDK_MULTIHEAD_SAFE=1
-src_ui_gui_spreadsheet_test_CFLAGS = $(GTK_CFLAGS) -Wall -DGDK_MULTIHEAD_SAFE=1
+src_ui_gui_psppire_CFLAGS = $(GTK_CFLAGS) $(GTKSOURCEVIEW_CFLAGS) $(SPREAD_SHEET_WIDGET_CFLAGS) -Wall -DGDK_MULTIHEAD_SAFE=1
+src_ui_gui_spreadsheet_test_CFLAGS = $(GTK_CFLAGS) -Wall -DGDK_MULTIHEAD_SAFE=1
src_ui_gui_psppire_LDFLAGS = \
src_ui_gui_psppire_LDADD = \
- lib/gtk-contrib/libxpaned.a \
src/ui/libuicommon.la \
src/libpspp.la \
src/libpspp-core.la \
$(GTK_LIBS) \
$(GTHREAD_LIBS) \
$(GTKSOURCEVIEW_LIBS) \
+ $(SPREAD_SHEET_WIDGET_LIBS) \
$(CAIRO_LIBS) \
$(LIBINTL) \
$(GSL_LIBS)
dist_src_ui_gui_psppire_DATA = \
$(UI_FILES) \
- $(top_srcdir)/src/ui/gui/pspp.lang \
- $(top_srcdir)/src/ui/gui/psppire.gtkrc
+ $(top_srcdir)/src/ui/gui/pspp.lang
src_ui_gui_psppire_SOURCES = \
- src/ui/gui/pspp-sheet-private.h \
- src/ui/gui/pspp-sheet-selection.c \
- src/ui/gui/pspp-sheet-selection.h \
- src/ui/gui/pspp-sheet-view-column.c \
- src/ui/gui/pspp-sheet-view-column.h \
- src/ui/gui/pspp-sheet-view.c \
- src/ui/gui/pspp-sheet-view.h \
- src/ui/gui/pspp-widget-facade.c \
- src/ui/gui/pspp-widget-facade.h \
- src/ui/gui/psppire-button-editable.c \
- src/ui/gui/psppire-button-editable.h \
- src/ui/gui/psppire-cell-renderer-button.c \
- src/ui/gui/psppire-cell-renderer-button.h \
src/ui/gui/psppire-dialog.c \
src/ui/gui/psppire-keypad.c \
src/ui/gui/psppire-selector.c \
src/ui/gui/psppire-conf.h \
src/ui/gui/psppire-data-editor.c \
src/ui/gui/psppire-data-editor.h \
- src/ui/gui/psppire-data-sheet.c \
- src/ui/gui/psppire-data-sheet.h \
src/ui/gui/psppire-data-store.c \
src/ui/gui/psppire-data-store.h \
src/ui/gui/psppire-data-window.c \
src/ui/gui/psppire-dict.h \
src/ui/gui/psppire-dictview.c \
src/ui/gui/psppire-dictview.h \
- src/ui/gui/psppire-empty-list-store.c \
- src/ui/gui/psppire-empty-list-store.h \
src/ui/gui/psppire-encoding-selector.c \
src/ui/gui/psppire-encoding-selector.h \
src/ui/gui/psppire-format.c \
src/ui/gui/psppire-select-dest.h \
src/ui/gui/psppire-syntax-window.c \
src/ui/gui/psppire-syntax-window.h \
+ src/ui/gui/psppire-delimited-text.c \
+ src/ui/gui/psppire-delimited-text.h \
+ src/ui/gui/psppire-text-file.c \
+ src/ui/gui/psppire-text-file.h \
src/ui/gui/psppire-val-chooser.c \
src/ui/gui/psppire-val-chooser.h \
src/ui/gui/psppire-value-entry.c \
src/ui/gui/psppire-value-entry.h \
src/ui/gui/psppire-var-ptr.c \
src/ui/gui/psppire-var-ptr.h \
- src/ui/gui/psppire-var-sheet.c \
- src/ui/gui/psppire-var-sheet.h \
+ src/ui/gui/psppire-data-sheet.c \
+ src/ui/gui/psppire-data-sheet.h \
+ src/ui/gui/psppire-variable-sheet.c \
+ src/ui/gui/psppire-variable-sheet.h \
+ src/ui/gui/psppire-var-sheet-header.h \
+ src/ui/gui/psppire-var-sheet-header.c \
src/ui/gui/psppire-window.c \
src/ui/gui/psppire-window.h \
src/ui/gui/psppire-window-base.c \
src/ui/gui/var-display.h \
src/ui/gui/var-type-dialog.c \
src/ui/gui/var-type-dialog.h \
+ src/ui/gui/value-variant.c \
+ src/ui/gui/value-variant.h \
src/ui/gui/widget-io.c \
src/ui/gui/widget-io.h \
src/ui/gui/widgets.c \
CLEANFILES += src/ui/gui/psppire-marshal.c src/ui/gui/psppire-marshal.h \
src/ui/gui/resources.c $(nodist_src_ui_gui_psppire_DATA)
+
endif HAVE_GUI
#ensure the installcheck passes even if there is no X server available
DISPLAY=/invalid/port $(MAKE) $(AM_MAKEFLAGS) installcheck-binPROGRAMS
# <gtk/gtk.h> wrapper
-src_ui_gui_psppire_CPPFLAGS = $(AM_CPPFLAGS) -Isrc/ui/gui/include
+src_ui_gui_psppire_CPPFLAGS += $(AM_CPPFLAGS) -Isrc/ui/gui/include
BUILT_SOURCES += src/ui/gui/include/gtk/gtk.h
src/ui/gui/include/gtk/gtk.h: src/ui/gui/include/gtk/gtk.in.h
@$(MKDIR_P) src/ui/gui/include/gtk
<?xml version="1.0" encoding="UTF-8"?>
+ <!-- PSPP - a program for statistical analysis. -->
+ <!-- Copyright (C) 2017 Free Software Foundation, Inc. -->
+
+ <!-- This program is free software: you can redistribute it and/or modify -->
+ <!-- it under the terms of the GNU General Public License as published by -->
+ <!-- the Free Software Foundation, either version 3 of the License, or -->
+ <!-- (at your option) any later version. -->
+
+ <!-- This program is distributed in the hope that it will be useful, -->
+ <!-- but WITHOUT ANY WARRANTY; without even the implied warranty of -->
+ <!-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -->
+ <!-- GNU General Public License for more details. -->
+
+ <!-- You should have received a copy of the GNU General Public License -->
+ <!-- along with this program. If not, see <http://www.gnu.org/licenses/>. -->
+
<!-- Generated with glade 3.18.3 -->
<interface>
<requires lib="gtk+" version="3.4.2"/>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="orientation">vertical</property>
<property name="position">94</property>
+ <property name="wide-handle">True</property>
<child>
<object class="GtkFrame" id="frame4">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="margin_start">12</property>
+ <property name="margin-bottom">12</property>
<child>
<placeholder/>
</child>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="label_xalign">0</property>
<property name="shadow_type">none</property>
+ <property name="margin_top">12</property>
<child>
<object class="GtkScrolledWindow" id="data-scroller">
<property name="visible">True</property>
+ /*
+ PSPP - a program for statistical analysis.
+ Copyright (C) 2017 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
#include <config.h>
#include <gtksourceview/gtksource.h>
#include "widgets.h"
+#include "gettext.h"
#include "psppire-dialog.h"
#include "psppire-selector.h"
}
+static void
+tx_string_to_double (const GValue *src, GValue *dest)
+{
+ const gchar *str = g_value_get_string (src);
+ gdouble dble = g_strtod (str, NULL);
+ g_value_set_double (dest, dble);
+}
+
+
+static void
+tx_string_to_int (const GValue *src, GValue *dest)
+{
+ const gchar *str = g_value_get_string (src);
+ gint x = atoi (str);
+ g_value_set_int (dest, x);
+}
+
+static void
+enum_to_string (const GValue *src, GValue *dest)
+{
+ gint n = g_value_get_enum (src);
+ GType t = G_VALUE_TYPE (src);
+ GEnumClass *ec = g_type_class_ref (t);
+ GEnumValue *ev = g_enum_get_value (ec, n);
+
+ g_value_set_string (dest, gettext (ev->value_nick));
+}
+
+
+
+GType align_enum_type;
+GType measure_enum_type;
+GType role_enum_type;
+
+
+extern const GEnumValue align[];
+extern const GEnumValue measure[];
+extern const GEnumValue role[];
+
+
+
+static void
+preregister_misc (void)
+{
+ align_enum_type = g_enum_register_static ("PsppAlignment", align);
+ measure_enum_type = g_enum_register_static ("PsppMeasure", measure);
+ role_enum_type = g_enum_register_static ("PsppRole", role);
+
+ g_value_register_transform_func (G_TYPE_STRING, G_TYPE_DOUBLE, tx_string_to_double);
+ g_value_register_transform_func (G_TYPE_STRING, G_TYPE_INT, tx_string_to_int);
+
+ g_value_register_transform_func (measure_enum_type, G_TYPE_STRING, enum_to_string);
+ g_value_register_transform_func (align_enum_type, G_TYPE_STRING, enum_to_string);
+ g_value_register_transform_func (role_enum_type, G_TYPE_STRING, enum_to_string);
+}
+
/* Any custom widgets which are to be used in GtkBuilder ui files
need to be preregistered, otherwise GtkBuilder refuses to
psppire_means_layer_get_type ();
preregister_actions ();
+ preregister_misc ();
/* This seems to be necessary on Cygwin.
It ought not to be necessary. Having it here can't do any harm. */