Merge remote-tracking branch 'origin/master' into sheet
authorJohn Darrington <john@darrington.wattle.id.au>
Thu, 3 Aug 2017 05:37:27 +0000 (07:37 +0200)
committerJohn Darrington <john@darrington.wattle.id.au>
Thu, 3 Aug 2017 05:37:27 +0000 (07:37 +0200)
270 files changed:
NEWS
README.Git
Smake
build-aux/automake.mk
configure.ac
doc/automake.mk
doc/bugs.texi
doc/combining.texi
doc/command-index.texi
doc/concept-index.texi
doc/data-io.texi
doc/data-selection.texi
doc/dev/spv-file-format.texi
doc/dev/spv-structure.eps [deleted file]
doc/dev/spv-structure.gv [deleted file]
doc/dev/spv-structure.pdf [deleted file]
doc/dev/system-file-format.texi
doc/expressions.texi
doc/fdl.texi
doc/files.texi
doc/flow-control.texi
doc/function-index.texi
doc/installing.texi
doc/introduction.texi
doc/invoking.texi
doc/language.texi
doc/license.texi
doc/not-implemented.texi
doc/pspp-convert.texi
doc/pspp-dev.texi
doc/pspp-dump-sav.texi
doc/pspp.texi
doc/regression.texi
doc/statistics.texi
doc/transformation.texi
doc/tutorial.texi
doc/utilities.texi
doc/variables.texi
examples/automake.mk
glade/automake.mk
glade/psppire.xml
lib/automake.mk
lib/linreg/automake.mk
lib/tukey/automake.mk
perl-module/PSPP.xs
perl-module/automake.mk
perl-module/ppport.h
po/automake.mk
po/de.po
src/automake.mk
src/data/automake.mk
src/data/calendar.h
src/data/sys-file-encoding.c
src/data/sys-file-reader.c
src/language/automake.mk
src/language/control/automake.mk
src/language/control/control-stack.c
src/language/data-io/automake.mk
src/language/data-io/matrix-data.c
src/language/dictionary/automake.mk
src/language/expressions/automake.mk
src/language/expressions/generate.pl
src/language/expressions/helpers.h
src/language/lexer/automake.mk
src/language/stats/automake.mk
src/language/stats/chart-category.h
src/language/stats/factor.c
src/language/tests/automake.mk
src/language/utilities/automake.mk
src/language/xforms/automake.mk
src/libpspp/array.h
src/libpspp/automake.mk
src/libpspp/zip-reader.c
src/math/automake.mk
src/math/linreg.c
src/math/wilcoxon-sig.h
src/output/automake.mk
src/ui/automake.mk
src/ui/gui/aggregate.ui
src/ui/gui/automake.mk
src/ui/gui/autorecode.ui
src/ui/gui/barchart.ui
src/ui/gui/binomial.ui
src/ui/gui/chi-square.ui
src/ui/gui/comments.ui
src/ui/gui/compute.ui
src/ui/gui/correlation.ui
src/ui/gui/count.ui
src/ui/gui/crosstabs.ui
src/ui/gui/data-editor.ui
src/ui/gui/descriptives.ui
src/ui/gui/entry-dialog.ui
src/ui/gui/examine.ui
src/ui/gui/factor.ui
src/ui/gui/find.ui
src/ui/gui/frequencies.ui
src/ui/gui/goto-case.ui
src/ui/gui/histogram.ui
src/ui/gui/icons/automake.mk
src/ui/gui/indep-samples.ui
src/ui/gui/k-independent.ui
src/ui/gui/k-means.ui
src/ui/gui/k-related.ui
src/ui/gui/ks-one-sample.ui
src/ui/gui/logistic.ui
src/ui/gui/means.ui
src/ui/gui/missing-val-dialog.ui
src/ui/gui/oneway.ui
src/ui/gui/options.ui
src/ui/gui/output-window.ui
src/ui/gui/paired-samples.ui
src/ui/gui/psppire-buttonbox.c
src/ui/gui/rank.ui
src/ui/gui/recode.ui
src/ui/gui/regression.ui
src/ui/gui/reliability.ui
src/ui/gui/roc.ui
src/ui/gui/runs.ui
src/ui/gui/scatterplot.ui
src/ui/gui/select-cases.ui
src/ui/gui/sort.ui
src/ui/gui/split-file.ui
src/ui/gui/syntax-editor.ui
src/ui/gui/t-test.ui
src/ui/gui/text-data-import.ui
src/ui/gui/transpose.ui
src/ui/gui/univariate.ui
src/ui/gui/val-labs-dialog.ui
src/ui/gui/var-display.c
src/ui/gui/var-type-dialog.ui
src/ui/gui/variable-info.ui
src/ui/gui/weight.ui
src/ui/gui/widgets.c
src/ui/terminal/automake.mk
tests/atlocal.in
tests/automake.mk
tests/coverage.sh
tests/data/CVE-2017-10791.sav [new file with mode: 0644]
tests/data/CVE-2017-10792.sav [new file with mode: 0644]
tests/data/calendar.at
tests/data/data-in.at
tests/data/data-out.at
tests/data/datasheet-test.at
tests/data/dictionary.at
tests/data/encrypted-file.at
tests/data/file.at
tests/data/format-guesser.at
tests/data/pc+-file-reader.at
tests/data/por-file.at
tests/data/sys-file-reader.at
tests/data/sys-file.at
tests/language/command.at
tests/language/control/do-if.at
tests/language/control/do-repeat.at
tests/language/control/loop.at
tests/language/control/temporary.at
tests/language/data-io/add-files.at
tests/language/data-io/data-list.at
tests/language/data-io/data-reader.at
tests/language/data-io/dataset.at
tests/language/data-io/file-handle.at
tests/language/data-io/get-data-psql.at
tests/language/data-io/get-data-spreadsheet.at
tests/language/data-io/get-data-txt.at
tests/language/data-io/get.at
tests/language/data-io/inpt-pgm.at
tests/language/data-io/list.at
tests/language/data-io/match-files.at
tests/language/data-io/matrix-data.at
tests/language/data-io/print-space.at
tests/language/data-io/print.at
tests/language/data-io/save-translate.at
tests/language/data-io/save.at
tests/language/data-io/update.at
tests/language/dictionary/attributes.at
tests/language/dictionary/delete-variables.at
tests/language/dictionary/formats.at
tests/language/dictionary/missing-values.at
tests/language/dictionary/mrsets.at
tests/language/dictionary/rename-variables.at
tests/language/dictionary/sort-variables.at
tests/language/dictionary/split-file.at
tests/language/dictionary/sys-file-info.at
tests/language/dictionary/value-labels.at
tests/language/dictionary/variable-display.at
tests/language/dictionary/vector.at
tests/language/dictionary/weight.at
tests/language/expressions/evaluate.at
tests/language/expressions/parse.at
tests/language/lexer/command-name.at
tests/language/lexer/lexer.at
tests/language/lexer/q2c.at
tests/language/lexer/scan.at
tests/language/lexer/segment.at
tests/language/lexer/variable-parser.at
tests/language/stats/aggregate.at
tests/language/stats/autorecode.at
tests/language/stats/correlations.at
tests/language/stats/crosstabs.at
tests/language/stats/descriptives.at
tests/language/stats/examine.at
tests/language/stats/factor.at
tests/language/stats/flip.at
tests/language/stats/frequencies.at
tests/language/stats/glm.at
tests/language/stats/graph.at
tests/language/stats/logistic.at
tests/language/stats/means.at
tests/language/stats/npar.at
tests/language/stats/oneway.at
tests/language/stats/quick-cluster.at
tests/language/stats/rank.at
tests/language/stats/regression.at
tests/language/stats/reliability.at
tests/language/stats/roc.at
tests/language/stats/sort-cases.at
tests/language/stats/t-test.at
tests/language/utilities/cache.at
tests/language/utilities/cd.at
tests/language/utilities/date.at
tests/language/utilities/insert.at
tests/language/utilities/permissions.at
tests/language/utilities/set.at
tests/language/utilities/show.at
tests/language/utilities/title.at
tests/language/xforms/compute.at
tests/language/xforms/count.at
tests/language/xforms/recode.at
tests/language/xforms/sample.at
tests/language/xforms/select-if.at
tests/libpspp/abt.at
tests/libpspp/bt.at
tests/libpspp/encoding-guesser.at
tests/libpspp/float-format.at
tests/libpspp/heap.at
tests/libpspp/hmap.at
tests/libpspp/hmapx.at
tests/libpspp/i18n.at
tests/libpspp/line-reader.at
tests/libpspp/ll.at
tests/libpspp/llx.at
tests/libpspp/range-map.at
tests/libpspp/range-set.at
tests/libpspp/range-tower.at
tests/libpspp/sparse-array.at
tests/libpspp/sparse-xarray-test.at
tests/libpspp/str.at
tests/libpspp/string-map.at
tests/libpspp/string-set.at
tests/libpspp/stringi-map.at
tests/libpspp/stringi-set.at
tests/libpspp/tower.at
tests/libpspp/u8-istream.at
tests/libpspp/zip.at
tests/math/chart-geometry.at
tests/math/moments.at
tests/math/randist.at
tests/output/ascii.at
tests/output/charts.at
tests/output/html.at
tests/output/output.at
tests/output/paper-size.at
tests/output/render.at
tests/output/tables.at
tests/perl-module.at
tests/testsuite.in
tests/ui/syntax-gen-test.c
tests/ui/syntax-gen.at
tests/ui/terminal/main.at
utilities/automake.mk

diff --git a/NEWS b/NEWS
index ab6ae5daf3e473e8086b95ce4875e710a7002896..f253c7b279338489f8bc171ec8c3679de466be77 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -11,6 +11,8 @@ Changes from 0.10.2 to 0.10.4
 
  * 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.
@@ -38,10 +40,14 @@ Changes from 0.10.2 to 0.10.4
 
  ** 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
index 123665095b0e9a0f3d623251e414cf8c5385146b..46bc0818eb00e5b5a613828e52e7ca0eb702691b 100644 (file)
@@ -36,11 +36,14 @@ This version of PSPP should work with the Gnulib commit shown below.
 Gnulib does not maintain a stable API or ABI, so it is possible that
 PSPP will not work with older or newer versions of Gnulib.
 
-       commit baef0a4b9433d00e59c586b9eaad67d8461d7324
-       Author: Karl Berry <karl@freefriends.org>
-       Date:   Tue Jun 14 09:05:27 2016 -0700
+       commit 418a494eaac2dbec290de5991059bc9b33dc7df1
+       Author: John E. Malmberg <wb8tyw@gmail.com>
+       Date:   Sat Jul 15 23:11:44 2017 +0200
 
-           autoupdate
+           sys_socket: Add support for OpenVMS.
+
+           * lib/sys_socket.in.h [__VMS]: Define CMSG_SPACE, CMSG_LEN.
+           * doc/posix-headers/sys_socket.texi: Mention OpenVMS issues.
 
 To clone Gnulib into a directory named "gnulib" using Git, and then
 check out this particular commit, run these commands:
diff --git a/Smake b/Smake
index 99cde1e742e14dcecba1caba5df27213088acfac..91b4230f5cc2b040165449d769e8ef3fd4e5c17c 100644 (file)
--- a/Smake
+++ b/Smake
@@ -1,5 +1,23 @@
 # -*- makefile -*-
 
+# 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/>.
+# 
+
+
 all: everything
 
 # Adjust these to reflect where you've installed gnulib.
index bfd8326ba36a89525a463a57d322e8a9353b4409..ac778c47e0879dbc99280858a184c41502bd0b0b 100644 (file)
@@ -1,3 +1,19 @@
+# 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 -*-
 
 EXTRA_DIST += build-aux/svg2png build-aux/icon-list
index 492cdd3085efccf7e8b610ca0b68c5f0d9dac4f8..6e7984bf988889a7ad6f495cc5009d37df95ec54 100644 (file)
@@ -1,8 +1,24 @@
+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.4], [bug-gnu-pspp@gnu.org], [pspp])
 AC_CONFIG_AUX_DIR([build-aux])
 AC_CONFIG_HEADERS([config.h])
 AC_CONFIG_TESTDIR([tests])
index 28866ca2e9196eb46143842cb7b1d3a95ba24483..c571a236d2fc240d8bd841a2ade937ae2791158d 100644 (file)
@@ -45,20 +45,6 @@ doc_pspp_dev_TEXINFOS = doc/version-dev.texi \
        doc/dev/encrypted-file-wrappers.texi \
        doc/dev/q2c.texi
 
-if HAVE_DOT
-$(PDFS): doc/dev/spv-structure.pdf
-$(srcdir)/doc/dev/spv-structure.pdf: doc/dev/spv-structure.gv
-       dot -Tpdf < $< > $@
-
-$(DVIS): doc/dev/spv-structure.eps
-$(srcdir)/doc/dev/spv-structure.eps: doc/dev/spv-structure.gv
-       dot -Teps < $< > $@
-endif
-EXTRA_DIST += \
-       doc/dev/spv-structure.gv \
-       doc/dev/spv-structure.pdf \
-       doc/dev/spv-structure.eps
-
 dist_man_MANS += doc/pspp.1 \
                  doc/psppire.1
 
index 67b10498bee31192ab70a79b6d35ab928ccc51f1..e5600411180584955eacaf3bdee7a74837157d6c 100644 (file)
@@ -1,3 +1,12 @@
+@c PSPP - a program for statistical analysis.
+@c Copyright (C) 2017 Free Software Foundation, Inc.
+@c Permission is granted to copy, distribute and/or modify this document
+@c under the terms of the GNU Free Documentation License, Version 1.3
+@c or any later version published by the Free Software Foundation;
+@c with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
+@c A copy of the license is included in the section entitled "GNU
+@c Free Documentation License".
+@c
 @node Bugs
 @chapter Bugs
 
index da0a5ea999d522e2fbf399e42d6ac07e96374472..ad2ed03e3fddfe0929167db1540aa61066174e90 100644 (file)
@@ -1,3 +1,12 @@
+@c PSPP - a program for statistical analysis.
+@c Copyright (C) 2017 Free Software Foundation, Inc.
+@c Permission is granted to copy, distribute and/or modify this document
+@c under the terms of the GNU Free Documentation License, Version 1.3
+@c or any later version published by the Free Software Foundation;
+@c with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
+@c A copy of the license is included in the section entitled "GNU
+@c Free Documentation License".
+@c
 @node Combining Data Files
 @chapter Combining Data Files
 
index d26f9074704f2ac3024871f07403aae4e80e069f..626a61727b0ced3bb5c00b3ab0ce8ee3d0628d18 100644 (file)
@@ -1,3 +1,12 @@
+@c PSPP - a program for statistical analysis.
+@c Copyright (C) 2017 Free Software Foundation, Inc.
+@c Permission is granted to copy, distribute and/or modify this document
+@c under the terms of the GNU Free Documentation License, Version 1.3
+@c or any later version published by the Free Software Foundation;
+@c with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
+@c A copy of the license is included in the section entitled "GNU
+@c Free Documentation License".
+@c
 @node Command Index
 @chapter Command Index
 @printindex vr
index 29d8a624d2cbae8b329e57aabd438eb081b45473..cf3288d9a1bb4bcee441ce358e5d4f24913714c3 100644 (file)
@@ -1,3 +1,12 @@
+@c PSPP - a program for statistical analysis.
+@c Copyright (C) 2017 Free Software Foundation, Inc.
+@c Permission is granted to copy, distribute and/or modify this document
+@c under the terms of the GNU Free Documentation License, Version 1.3
+@c or any later version published by the Free Software Foundation;
+@c with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
+@c A copy of the license is included in the section entitled "GNU
+@c Free Documentation License".
+@c
 @node Concept Index
 @chapter Concept Index
 @printindex cp
index a5ba26f0186eace4fed20f708ae4f9b802916c71..9341a58c8a794a06edf59cf1c9615b546dd38220 100644 (file)
@@ -1,3 +1,12 @@
+@c PSPP - a program for statistical analysis.
+@c Copyright (C) 2017 Free Software Foundation, Inc.
+@c Permission is granted to copy, distribute and/or modify this document
+@c under the terms of the GNU Free Documentation License, Version 1.3
+@c or any later version published by the Free Software Foundation;
+@c with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
+@c A copy of the license is included in the section entitled "GNU
+@c Free Documentation License".
+@c
 @c (modify-syntax-entry ?_ "w")
 @c (modify-syntax-entry ?' "'")
 @c (modify-syntax-entry ?@ "'")
@@ -966,10 +975,11 @@ active dataset.
 @display
 MATRIX DATA
         VARIABLES = @var{columns}
-        [eFILE='@var{file_name}'| INLINE @}
+        [FILE='@var{file_name}'| INLINE @}
         [/FORMAT= [@{LIST | FREE@}]
                   [@{UPPER | LOWER | FULL@}]
                   [@{DIAGONAL | NODIAGONAL@}]]
+        [/N= @var{n}]
         [/SPLIT= @var{split_variables}].
 @end display
 
@@ -1049,6 +1059,40 @@ single line.  If you pass the keyword @var{FREE} to @subcmd{FORMAT}
 then the data may be data for several matrix rows may be specified on
 the same line, or a single row may be split across lines.
 
+The @subcmd{N} subcommand may be used to specify the number
+of valid cases for each variable.  It should not be used if the
+data contains a record whose ROWTYPE_ column is @samp{N} or @samp{N_VECTOR}.
+It implies a @samp{N} record whose values are all @var{n}.
+That is to say,
+@example
+matrix data
+    variables = rowtype_  var01 TO var04
+    /format = upper nodiagonal
+    /n = 99.
+begin data
+mean 34 35 36 37
+sd   22 11 55 66
+corr 9 8 7
+corr 6 5
+corr 4
+end data.
+@end example
+produces an effect identical to
+@example
+matrix data
+    variables = rowtype_  var01 TO var04
+    /format = upper nodiagonal
+begin data
+n    99 99 99 99
+mean 34 35 36 37
+sd   22 11 55 66
+corr 9 8 7
+corr 6 5
+corr 4
+end data.
+@end example
+
+
 The @subcmd{SPLIT} is used to indicate that variables are to be
 considered as split variables.  For example, the following
 defines two matrices using the variable @samp{S1} to distinguish
index a8cb12d95364d95c0525ec06974cac9c7981fdfc..9d8cbbf2f51d61dfa796fa0f0b65e6527a6a0a06 100644 (file)
@@ -1,3 +1,12 @@
+@c PSPP - a program for statistical analysis.
+@c Copyright (C) 2017 Free Software Foundation, Inc.
+@c Permission is granted to copy, distribute and/or modify this document
+@c under the terms of the GNU Free Documentation License, Version 1.3
+@c or any later version published by the Free Software Foundation;
+@c with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
+@c A copy of the license is included in the section entitled "GNU
+@c Free Documentation License".
+@c
 @node Data Selection
 @chapter Selecting data for analysis
 
index ee99c24051c9eddff1b14ceb1220956e45e3131f..379f6988f7238675fbe959ef871e3949c8633fca 100644 (file)
@@ -1,5 +1,5 @@
 @node SPSS Viewer File Format
-@chapter SPSS Viewer File Format
+@appendix SPSS Viewer File Format
 
 SPSS Viewer or @file{.spv} files, here called SPV files, are written
 by SPSS 16 and later to represent the contents of its output editor.
@@ -80,13 +80,18 @@ their exact names do not matter to readers as long as they are unique.
 @node SPV Structure Member Format
 @section Structure Member Format
 
+A structure member lays out the high-level structure for a group of
+output items such as heading, tables, and charts.  Structure members
+do not include the details of tables and charts but instead refer to
+them by their member names.
+
 Structure members' XML files claim conformance with a collection of
 XML Schemas.  These schemas are distributed, under a nonfree license,
 with SPSS binaries.  Fortunately, the schemas are not necessary to
-understand the structure members.  To a degree, the schemas can even
+understand the structure members.  The schemas can even
 be deceptive because they document elements and attributes that are
 not in the corpus and do not document elements and attributes that are
-commonly found there.
+commonly found in the corpus.
 
 Structure members use a different XML namespace for each schema, but
 these namespaces are not entirely consistent.  In some SPV files, for
@@ -98,7 +103,78 @@ not resolvable to obtain the schemas themselves.
 
 One may ignore all of the above in interpreting a structure member.
 The actual XML has a simple and straightforward form that does not
-require a reader to take schemas or namespaces into account.
+require a reader to take schemas or namespaces into account.  A
+structure member's root is @code{heading} element, which contains
+@code{heading} or @code{container} elements (or a mix), forming a
+tree.  In turn, @code{container} holds a @code{label} and one more
+child, usually @code{text} or @code{table}.
+
+The following diagram shows the hierarchy within an SPV structure
+member more precisely.  Names represent elements and <text> and
+<cdata> represent plain text and CDATA, respectively.  Edges point
+from parent to child.  Unlabeled edges indicate that the child appears
+exactly once; edges labeled with *, zero or more times; edges labeled
+with ?, zero or one times.  Where possible, child elements are shown
+in the order they actually appear within a parent element.
+
+@example
+@group
+heading
+  +--?--> pageSetup
+  |         +--> pageHeader +--> pageParagraph --> text --> <cdata>
+  |         +--> pageFooter +--> pageParagraph --> text --> <cdata>
+  +-----> label --?--> <text>
+  +--*--> heading
+  +--*--> container
+             +-----> label --?--> <text>
+             +--?--> text ---> html --> <cdata>
+             +--?--> table
+             |         +--?-- tableProperties
+             |         |        +--> generalProperties
+             |         |        +--> footnoteProperties
+             |         |        +--> cellFormatProperties
+             |         |        |      +--> caption -------> style
+             |         |        |      +--> footnotes -----> style
+             |         |        |      +--> rowLabelse ----> style
+             |         |        |      +--> columnLabels --> style
+             |         |        |      +--> data ----------> style
+             |         |        |      +--> layers --------> style
+             |         |        |      +--> title ---------> style
+             |         |        |      +--> cornerLabels --> style
+             |         |        +--> borderProperties
+             |         |        |      +--> topInnerFrame
+             |         |        |      +--> rightInnerFrame
+             |         |        |      +--> horizontalDimensionBorderColumns
+             |         |        |      +--> horizontalDimensionBorderRows
+             |         |        |      +--> horizontalCategoryBorderColumns
+             |         |        |      +--> leftInnerFrame
+             |         |        |      +--> verticalDimensionBorderRows
+             |         |        |      +--> titleLayerSeparator
+             |         |        |      +--> verticalCategoryBorderRows
+             |         |        |      +--> topOuterFrame
+             |         |        |      +--> bottomInnerFrame
+             |         |        |      +--> leftOuterFrame
+             |         |        |      +--> dataAreaTop
+             |         |        |      +--> verticalDimensionBorderColumns
+             |         |        |      +--> dataAreaLeft
+             |         |        |      +--> horizontalCategoryBorderRows
+             |         |        |      +--> bottomOuterFrame
+             |         |        |      +--> rightOuterFrame
+             |         |        |      +--> verticalCategoryBorderColumns
+             |         |        +--> printingProperties
+             |         +----- tableStructure
+             |                  +--?--> path ------> <text>
+             |                  +-----> dataPath --> <text>
+             +--?--> graph
+             |         +--?--> dataPath --> <text>
+             |         +-----> path ------> <text>
+             +--?--> model
+                       +--?--> ViZml --> <text>
+                       +--?--> path ---> <text>
+                       +--?--> pmmlContainerPath ---> <text>
+                       +--?--> statsContainerPath --> <text>
+@end group
+@end example
 
 The elements found in structure members are documented below.  For
 each element, we note the possible parent elements and the element's
@@ -128,45 +204,75 @@ A choice between @var{a} and @var{b}.
 Zero or more @var{x}.
 @end table
 
-@ifnottex
-For a diagram illustrating the hierarchy of elements within an SPV
-structure member, please refer to a PDF version of the manual.
-@end ifnottex
+The following example shows the contents of a typical structure member
+for a @cmd{DESCRIPTIVES} procedure.  A real structure member is not
+indented.  This example also omits most attributes, all XML namespace
+information, and the CSS from the embedded HTML:
 
-@iftex
-The following diagram shows the hierarchy of elements within an SPV
-structure member.  Edges point from parent to child elements.
-Unlabeled edges indicate that the child appears exactly once; edges
-labeled with *, zero or more times; edges labeled with ?, zero or one
-times.
-@center @image{dev/spv-structure, 5in}
-@end iftex
+@example
+<?xml version="1.0" encoding="utf-8"?>
+<heading>
+  <label>Output</label>
+  <heading commandName="Descriptives">
+    <label>Descriptives</label>
+    <container>
+      <label>Title</label>
+      <text commandName="Descriptives" type="title">
+        <html lang="en">
+<![CDATA[<head><style type="text/css">...</style></head><BR>Descriptives]]>
+        </html>
+      </text>
+    </container>
+    <container visibility="hidden">
+      <label>Notes</label>
+      <table commandName="Descriptives" subType="Notes" type="note">
+        <tableStructure>
+          <dataPath>00000000001_lightNotesData.bin</dataPath>
+        </tableStructure>
+      </table>
+    </container>
+    <container>
+      <label>Descriptive Statistics</label>
+      <table commandName="Descriptives" subType="Descriptive Statistics"
+             type="table">
+        <tableStructure>
+          <dataPath>00000000002_lightTableData.bin</dataPath>
+        </tableStructure>
+      </table>
+    </container>
+  </heading>
+</heading>
+@end example
 
 @menu
-* SPV heading Element::
-* SPV label Element::
-* SPV container Element::
-* SPV text Element (Inside @code{container})::
-* SPV html Element::
-* SPV table Element::
-* SPV tableStructure Element::
-* SPV dataPath Element::
-* SPV pageSetup Element::
-* SPV pageHeader and pageFooter Elements::
-* SPV pageParagraph Element::
-* SPV @code{text} Element (Inside @code{pageParagraph})::
+* SPV Structure heading Element::
+* SPV Structure label Element::
+* SPV Structure container Element::
+* SPV Structure text Element (Inside @code{container})::
+* SPV Structure html Element::
+* SPV Structure table Element::
+* SPV Structure tableStructure Element::
+* SPV Structure graph Element::
+* SPV Structure model Element::
+* SPV Structure dataPath and path Elements::
+* SPV Structure pageSetup Element::
+* SPV Structure pageHeader and pageFooter Elements::
+* SPV Structure pageParagraph Element::
+* SPV Structure @code{text} Element (Inside @code{pageParagraph})::
 @end menu
 
-@node SPV heading Element
+@node SPV Structure heading Element
 @subsection The @code{heading} Element
 
 Parent: Document root or @code{heading} @*
-Contents: [@code{pageSetup}] @code{label} (@code{container} @math{|} @code{heading})*
+Contents: @code{pageSetup}? @code{label} (@code{container} @math{|} @code{heading})*
 
 The root of a structure member is a @code{heading}, which represents a
 section of output beginning with a title (the @code{label}) and
 ordinarily followed by content containers or further nested
-(sub)-sections of output.
+(sub)-sections of output.  Unlike heading elements in HTML and other
+common document formats, which precede the content that they head,
+@code{heading} contains the elements that appear below the heading.
 
 The document root heading, only, may also contain a @code{pageSetup}
 element.
@@ -194,7 +300,7 @@ file.
 
 @defvr {Optional} @code{creation-date-time}
 The date and time at which the SPV file was written, in a
-locale-specific format, e.g. @code{Friday, May 16, 2014 6:47:37 PM
+locale-specific format, e.g.@: @code{Friday, May 16, 2014 6:47:37 PM
 PDT} or @code{lunedì 17 marzo 2014 3.15.48 CET} or even @code{Friday,
 December 5, 2014 5:00:19 o'clock PM EST}.
 @end defvr
@@ -234,7 +340,7 @@ The output language, e.g.@: @code{en}, @code{it}, @code{es},
 @code{de}, @code{pt-BR}.
 @end defvr
 
-@node SPV label Element
+@node SPV Structure label Element
 @subsection The @code{label} Element
 
 Parent: @code{heading} or @code{container} @*
@@ -250,16 +356,16 @@ often very generic, especially within a @code{container}, e.g.@:
 according to the output language, e.g.@: in Italian a frequency table
 procedure is labeled ``Frequenze''.
 
-The corpus contains one example of an empty label, one that contains
+The corpus contains a few examples of empty labels, ones that contain
 no text.
 
 This element has no attributes.
 
-@node SPV container Element
+@node SPV Structure container Element
 @subsection The @code{container} Element
 
 Parent: @code{heading} @*
-Contents: @code{label} [@code{table} @math{|} @code{text}]
+Contents: @code{label} (@code{table} @math{|} @code{text} @math{|} @code{graph} @math{|} @code{model})
 
 A @code{container} serves to label a @code{table} or a @code{text}
 item.
@@ -282,7 +388,7 @@ The width of the container in the form @code{@var{n}px}, e.g.@:
 @code{1097px}.
 @end defvr
 
-@node SPV text Element (Inside @code{container})
+@node SPV Structure text Element (Inside @code{container})
 @subsection The @code{text} Element (Inside @code{container})
 
 Parent: @code{container} @*
@@ -308,14 +414,14 @@ of where @code{commandName} is present but set to the empty string.
 As on the @code{heading} element.
 @end defvr
 
-@node SPV html Element
+@node SPV Structure html Element
 @subsection The @code{html} Element
 
 Parent: @code{text} @*
 Contents: CDATA
 
 The CDATA contains an HTML document.  In some cases, the document
-starts with @code{<html>} and ends with @code{</html}; in others the
+starts with @code{<html>} and ends with @code{</html>}; in others the
 @code{html} element is implied.  Generally the HTML includes a
 @code{head} element with a CSS stylesheet.  The HTML body often begins
 with @code{<BR>}.  The actual content ranges from trivial to simple:
@@ -327,7 +433,7 @@ This element has the following attributes.
 This always contains @code{en} in the corpus.
 @end defvr
 
-@node SPV table Element
+@node SPV Structure table Element
 @subsection The @code{table} Element
 
 Parent: @code{container} @*
@@ -361,7 +467,7 @@ As on the @code{heading} element.  In the corpus, this is only present
 for version 21 and up and always includes all 8 digits.
 @end defvr
 
-@node SPV tableStructure Element
+@node SPV Structure tableStructure Element
 @subsection The @code{tableStructure} Element
 
 Parent: @code{table} @*
@@ -369,18 +475,68 @@ Contents: @code{dataPath}
 
 This element has no attributes.
 
-@node SPV dataPath Element
-@subsection The @code{dataPath} Element
+@node SPV Structure graph Element
+@subsection The @code{graph} Element
+
+Parent: @code{container} @*
+Contents: @code{dataPath}? @code{path}
+
+This element represents a graph.  The @code{dataPath} and @code{path}
+elements name the Zip members that give the details of the graph.
+Normally, both elements are present; there is only one counterexample
+in the corpus.
+
+@node SPV Structure model Element
+@subsection The @code{model} Element
+
+Parent: @code{container} @*
+Contents: (@code{ViZml}? @code{path}) @math{|} (@code{pmmlContainerPath} @code{statsContainerPath})
+
+This element represents a model.  The @code{dataPath} and @code{path}
+elements name the Zip members that give the details of the model.
+Normally, both elements are present; there is only one counterexample
+in the corpus.
+
+The details are unexplored.  The @code{ViZml} element contains base-64
+encoded text, that decodes to a binary format with some embedded text
+strings, and @code{path} names an Zip member that contains XML.
+Alternatively, @code{pmmlContainerPath} and @code{statsContainerPath}
+name Zip members with @file{.scf} extension.
 
-Parent: @code{tableStructure} @*
+@node SPV Structure dataPath and path Elements
+@subsection The @code{dataPath} and @code{path} Elements
+
+Parent: @code{tableStructure} or @code{graph} or @code{model} @*
 Contents: text
 
-Contains the name of the Zip member that holds the table details,
-e.g.@: @code{0000000001437_lightTableData.bin}.
+These element contain the name of the Zip members that hold details
+for a container.  For tables:
 
-This element has no attributes.
+@itemize @bullet
+@item
+When a ``light'' format is used, only @code{dataPath} is present, and
+it names a @file{.bin} member of the Zip file that has @code{light} in
+its name, e.g.@: @code{0000000001437_lightTableData.bin} (@pxref{SPV
+Light Detail Member Format}).
 
-@node SPV pageSetup Element
+@item
+When the legacy format is used, both are present.  In this case,
+@code{dataPath} names a Zip member with a legacy binary format that
+contains relevant data (@pxref{SPV Legacy Detail Member Binary
+Format}), and @code{path} names a Zip member that uses an XML format
+(@pxref{SPV Legacy Detail Member XML Format}).
+@end itemize
+
+Graphs normally follow the legacy approach described above.  The
+corpus contains one example of a graph with @code{path} but not
+@code{dataPath}.  The reason is unexplored.
+
+Models use @code{path} but not @code{dataPath}.  @xref{SPV Structure
+graph Element}, for more information.
+
+These elements have no attributes.
+
+@node SPV Structure pageSetup Element
 @subsection The @code{pageSetup} Element
 
 Parent: @code{heading} @*
@@ -419,7 +575,7 @@ Always @code{0deg}.
 Always @code{12pt}.
 @end defvr
 
-@node SPV pageHeader and pageFooter Elements
+@node SPV Structure pageHeader and pageFooter Elements
 @subsection The @code{pageHeader} and @code{pageFooter} Elements
 
 Parent: @code{pageSetup} @*
@@ -427,7 +583,7 @@ Contents: @code{pageParagraph}*
 
 This element has no attributes.
 
-@node SPV pageParagraph Element
+@node SPV Structure pageParagraph Element
 @subsection The @code{pageParagraph} Element
 
 Parent: @code{pageHeader} or @code{pageFooter} @*
@@ -437,11 +593,11 @@ Text to go at the top or bottom of a page, respectively.
 
 This element has no attributes.
 
-@node SPV @code{text} Element (Inside @code{pageParagraph})
+@node SPV Structure @code{text} Element (Inside @code{pageParagraph})
 @subsection The @code{text} Element (Inside @code{pageParagraph})
 
 Parent: @code{pageParagraph} @*
-Contents: [CDATA]
+Contents: CDATA?
 
 This @code{text} element is nested inside a @code{pageParagraph}.  There
 is a different @code{text} element that is nested inside a
@@ -451,7 +607,7 @@ The element is either empty, or contains CDATA that holds almost-XHTML
 text: in the corpus, either an @code{html} or @code{p} element.  It is
 @emph{almost}-XHTML because the @code{html} element designates the
 default namespace as
-@code{http://xml.spss.com/spss/viewer/viewer-tree} instead of an XHTML
+@indicateurl{http://xml.spss.com/spss/viewer/viewer-tree} instead of an XHTML
 namespace, and because the CDATA can contain substitution variables:
 @code{&[Page]} for the page number and @code{&[PageTitle]} for the
 page title.
@@ -488,25 +644,46 @@ across multiple lines.  Break points are chosen for aesthetics only
 and have no semantic significance.
 
 @item 00, 01, @dots{}, ff.
-Bytes with fixed values are written in hexadecimal:
+A bytes with a fixed value, written as a pair of hexadecimal digits.
 
 @item i0, i1, @dots{}, i9, i10, i11, @dots{}
-32-bit integers with fixed values are written in decimal, prefixed by
+@itemx b0, b1, @dots{}, b9, b10, b11, @dots{}
+A 32-bit integer in little-endian or big-endian byte order,
+respectively, with a fixed value, written in decimal, prefixed by
 @samp{i}.
 
 @item byte
-An arbitrary byte.
+A byte.
+
+@item bool
+A byte with value 0 or 1.
+
+@item int16
+@itemx be16
+A 16-bit integer in little-endian or big-endian byte order,
+respectively.
 
 @item int
-An arbitrary 32-bit integer.
+@itemx be32
+A 32-bit integer in little-endian or big-endian byte order,
+respectively.
+
+@item int64
+@itemx be64
+A 64-bit integer in little-endian or big-endian byte order,
+respectively.
 
 @item double
-An arbitrary 64-bit IEEE floating-point number.
+A 64-bit IEEE floating-point number.
+
+@item float
+A 32-bit IEEE floating-point number.
 
 @item string
-A 32-bit integer followed by the specified number of bytes of
-character data.  (The encoding is indicated by the Formats
-nonterminal.)
+@itemx bestring
+A 32-bit integer, in little-endian or big-endian byte order,
+respectively, followed by the specified number of bytes of character
+data.  (The encoding is indicated by the Formats nonterminal.)
 
 @item @var{x}?
 @var{x} is optional, e.g.@: 00? is an optional zero byte.
@@ -540,15 +717,20 @@ In a version 1 @file{.bin} member, @var{x}; in version 3, nothing.
 In a version 3 @file{.bin} member, @var{x}; in version 1, nothing.
 @end table
 
-All integer and floating-point values in this format use little-endian
-byte order.
+Little-endian byte order is far more common in this format, but a few
+pieces of the format use big-endian byte order.
 
 A ``light'' detail member @file{.bin} consists of a number of sections
 concatenated together, terminated by a byte 01:
 
 @cartouche
 @format
-LightMember @result{} Header Title Caption Footnotes Fonts Formats Dimensions Data 01
+LightMember @result{}
+    Header Title
+    Caption Footnotes
+    Fonts Borders PrintSettings TableSettings Formats
+    Dimensions Data
+    01
 @end format
 @end cartouche
 
@@ -557,9 +739,12 @@ The following sections go into more detail.
 @menu
 * SPV Light Member Header::
 * SPV Light Member Title::
-* PSV Light Member Caption::
+* SPV Light Member Caption::
 * SPV Light Member Footnotes::
 * SPV Light Member Fonts::
+* SPV Light Member Borders::
+* SPV Light Member Print Settings::
+* SPV Light Member Table Settings::
 * SPV Light Member Formats::
 * SPV Light Member Dimensions::
 * SPV Light Member Categories::
@@ -571,15 +756,22 @@ The following sections go into more detail.
 @node SPV Light Member Header
 @subsection Header
 
-An SPV file begins with an 39-byte header:
+An SPV light member begins with a 39-byte header:
 
 @cartouche
 @format
 Header @result{}
     01 00
     (i1 @math{|} i3)[@t{version}]
-    01 (00 @math{|} 01) byte*21 00 00
-    int[@t{table-id}] byte*4
+    bool
+    bool[@t{show-numeric-markers}]
+    bool[@t{rotate-inner-column-labels}]
+    bool[@t{rotate-outer-row-labels}]
+    bool
+    int
+    int[@t{min-column-width}] int[@t{max-column-width}]
+    int[@t{min-row-width}] int[@t{max-row-width}]
+    int64[@t{table-id}]
 @end format
 @end cartouche
 
@@ -588,10 +780,29 @@ some of the other data in the member.  We will refer to ``version 1''
 and ``version 3'' later on and use v1(@dots{}) and v3(@dots{}) for
 version-specific formatting (as described previously).
 
+If @code{show-numeric-markers} is 1, footnote markers are shown as
+numbers, starting from 1; otherwise, they are shown as letters,
+starting from @samp{a}.
+
+If @code{rotate-inner-column-labels} is 1, then column labels closest
+to the data are rotated to be vertical; otherwise, they are shown
+in the normal way.
+
+If @code{rotate-outer-row-labels} is 1, then row labels farthest from
+the data are rotated to be vertical; otherwise, they are shown in the
+normal way.
+
 @code{table-id} is a binary version of the @code{tableId} attribute in
 the structure member that refers to the detail member.  For example,
-if @code{tableId} is @code{-4154297861994971133}, then @code{table-id}
-would be 0xdca00003.
+if @code{tableId} is @code{-4122591256483201023}, then @code{table-id}
+would be 0xc6c99d183b300001.
+
+@code{min-column-width} is the minimum width that a column will be
+assigned automatically.  @code{max-column-width} is the maximum width
+that a column will be assigned to accommodate a long column label.
+@code{min-row-width} and @code{max-row-width} are a similar range for
+the width of row labels.  All of these measurements are in 1/96 inch
+units.
 
 The meaning of the other variable parts of the header is not known.
 
@@ -603,7 +814,7 @@ The meaning of the other variable parts of the header is not known.
 Title @result{}
     Value[@t{title1}] 01?
     Value[@t{c}] 01? 31
-    Value[@t{title2}] 01? 00? 58
+    Value[@t{title2}] 01?
 @end format
 @end cartouche
 
@@ -617,16 +828,20 @@ appropriate for presentation, and localized to the user's language,
 well formatted.  For example, for a frequency table, @code{title1} and
 @code{title2} name the variable and @code{c} is simply ``Frequencies''.
 
-@node PSV Light Member Caption
+@node SPV Light Member Caption
 @subsection Caption
 
 @cartouche
 @format
-Caption @result{} 58 @math{|} 31 Value[@t{caption}]
+Caption @result{} Caption1 Caption2
+Caption1 @result{} 31 Value @math{|} 58
+Caption2 @result{} 31 Value @math{|} 58
 @end format
 @end cartouche
 
-The @code{caption}, if presented, is shown below the table.
+The Caption, if present, is shown below the table.  Caption2 is
+normally present.  Caption1 is only rarely nonempty; it might reflect
+user editing of the caption.
 
 @node SPV Light Member Footnotes
 @subsection Footnotes
@@ -648,19 +863,18 @@ Each footnote has @code{text} and an optional customer @code{marker}
 @format
 Fonts @result{} 00 Font*8
 Font @result{}
-    byte[@t{index}] 31 string[@t{typeface}] 00 00
-    (10 @math{|} 20 @math{|} 40 @math{|} 50 @math{|} 70 @math{|} 80)[@t{f1}] 41
-    (i0 @math{|} i1 @math{|} i2)[@t{f2}] 00
-    (i0 @math{|} i2 @math{|} i64173)[@t{f3}]
-    (i0 @math{|} i1 @math{|} i2 @math{|} i3)[@t{f4}]
-    string[@t{fgcolor}] string[@t{bgcolor}] i0 i0 00
-    v3(int[@t{f5}] int[@t{f6}] int[@t{f7}] int[@t{f8}]))
+    byte[@t{index}] 31
+    string[@t{typeface}] float[@t{size}] int[@t{style}] bool[@t{underline}]
+    int[@t{halign}] int[@t{valign}]
+    string[@t{fgcolor}] string[@t{bgcolor}]
+    byte[@t{alternate}] string[@t{altfg}] string[@t{altbg}]
+    v3(int[@t{left-margin}] int[@t{right-margin}] int[@t{top-margin}] int[@t{bottom-margin}])
 @end format
 @end cartouche
 
 Each Font represents the font style for a different element, in the
-following order: title, caption, footnote, row labels, column labels,
-corner labels, data, and layers.
+following order: title, caption, footer, corner, column
+labels, row labels, data, and layers.
 
 @code{index} is the 1-based index of the Font, i.e. 1 for the first
 Font, through 8 for the final Font.
@@ -669,34 +883,217 @@ Font, through 8 for the final Font.
 is @code{SansSerif} in over 99% of instances and @code{Times New
 Roman} in the rest.
 
+@code{size} is the size of the font, in points.  The most common size
+in the corpus is 12 points.
+
+@code{style} is a bit mask.  Bit 0 (with value 1) is set for bold, bit
+1 (with value 2) is set for italic.
+
+@code{underline} is 1 if the font is underlined, 0 otherwise.
+
+@code{halign} specifies horizontal alignment: 0 for center, 2 for
+left, 4 for right, 61453 for decimal, 64173 for mixed.  Mixed
+alignment varies according to type: string data is left-justified,
+numbers and most other formats are right-justified.
+
+@code{valign} specifies vertical alignment: 0 for center, 1 for top, 3
+for bottom.
+
 @code{fgcolor} and @code{bgcolor} are the foreground color and
 background color, respectively.  In the corpus, these are always
 @code{#000000} and @code{#ffffff}, respectively.
 
-The meaning of the remaining data is unknown.  It seems likely to
-include font sizes, horizontal and vertical alignment, attributes such
-as bold or italic, and margins.
-
-The table below lists the values observed in the corpus.  When a cell
-contains a single value, then 99@math{+}% of the corpus contains that value.
-When a cell contains a pair of values, then the first value is seen in
-about two-thirds of the corpus and the second value in about the
-remaining one-third.  In fonts that include multiple pairs, values are
-correlated, that is, for font 3, f5 = 24, f6 = 24, f7 = 2 appears
-about two-thirds of the time, as does the combination of f4 = 0, f6 =
-10 for font 7.
-
-@multitable {font} {40} {f2} {64173} {0/1} {24/11} {10/11} {2/3} {f8}
-@headitem font @tab f1 @tab f2 @tab f3 @tab f4 @tab f5 @tab f6 @tab f7 @tab f8
-@item 1 @tab 40 @tab 1 @tab     0 @tab   0 @tab 8 @tab 10/11 @tab   1 @tab 8
-@item 2 @tab 40 @tab 0 @tab     2 @tab   1 @tab 8 @tab 10/11 @tab   1 @tab 1
-@item 3 @tab 40 @tab 0 @tab     2 @tab 1 @tab 24/11 @tab 24/ 8 @tab 2/3 @tab 4
-@item 4 @tab 40 @tab 0 @tab     2 @tab   3 @tab 8 @tab 10/11 @tab   1 @tab 1
-@item 5 @tab 40 @tab 0 @tab     0 @tab   1 @tab 8 @tab 10/11 @tab   1 @tab 4
-@item 6 @tab 40 @tab 0 @tab     2 @tab   1 @tab 8 @tab 10/11 @tab   1 @tab 4
-@item 7 @tab 40 @tab 0 @tab 64173 @tab 0/1 @tab 8 @tab 10/11 @tab   1 @tab 1
-@item 8 @tab 40 @tab 0 @tab     2 @tab   3 @tab 8 @tab 10/11 @tab   1  @tab 4
-@end multitable
+@code{alternate} is 01 if rows should alternate colors, 00 if all rows
+should be the same color.  When @code{alternate} is 01, @code{altfg}
+and @code{altbg} specify the colors for the alternate rows.
+
+@code{left-margin}, @code{right-margin}, @code{top-margin}, and
+@code{bottom-margin} are measured in multiples of 1/96 inch.
+
+@node SPV Light Member Borders
+@subsection Borders
+
+@cartouche
+@format
+Borders @result{}
+    b1[@t{endian}]
+    be32[@t{n-borders}] Border*[@t{n-borders}]
+    bool[@t{show-grid-lines}]
+    00 00 00
+
+Border @result{}
+    be32[@t{border-type}]
+    be32[@t{stroke-type}]
+    be32[@t{color}]
+@end format
+@end cartouche
+
+The Borders reflect how borders between regions are drawn.
+
+The fixed value of @code{endian} can be used to validate the
+endianness.
+
+@code{show-grid-lines} is 1 to draw grid lines, otherwise 0.
+
+Each Border describes one kind of border.  @code{n-borders} seems to
+always be 19.  Each @code{border-type} appears once (although in an
+unpredictable order) and correspond to the following borders:
+
+@table @asis
+@item 0
+Title.
+@item 1@dots{}4
+Left, top, right, and bottom outer frame.
+@item 5@dots{}8
+Left, top, right, and bottom inner frame.
+@item 9, 10
+Left and top of data area.
+@item 11, 12
+Horizontal and vertical dimension rows.
+@item 13, 14
+Horizontal and vertical dimension columns.
+@item 15, 16
+Horizontal and vertical category rows.
+@item 17, 18
+Horizontal and vertical category columns.
+@end table
+
+@code{stroke-type} describes how a border is drawn, as one of:
+
+@table @asis
+@item 0
+No line.
+@item 1
+Solid line.
+@item 2
+Dashed line.
+@item 3
+Thick line.
+@item 4
+Thin line.
+@item 5
+Double line.
+@end table
+
+@code{color} is an RGB color.  Bits 24--31 are alpha, bits 16--23 are
+red, 8--15 are green, 0--7 are blue.  An alpha of 255 indicates an
+opaque color, therefore opaque black is 0xff000000.
+
+@node SPV Light Member Print Settings
+@subsection Print Settings
+
+@cartouche
+@format
+PrintSettings @result{}
+    b1[@t{endian}]
+    bool[@t{all-layers}]
+    bool[@t{paginate-layers}]
+    bool[@t{fit-width}]
+    bool[@t{fit-length}]
+    bool[@t{top-continuation}]
+    bool[@t{bottom-continuation}]
+    be32[@t{n-orphan-lines}]
+    bestring[@t{continuation-string}]
+@end format
+@end cartouche
+
+The PrintSettings reflect settings for printing.  The fixed value of
+@code{endian} can be used to validate the endianness.
+
+@code{all-layers} is 1 to print all layers, 0 to print only the
+visible layers.
+
+@code{paginate-layers} is 1 to print each layer at the start of a new
+page, 0 otherwise.  (This setting is honored only @code{all-layers} is
+1, since otherwise only one layer is printed.)
+
+@code{fit-width} and @code{fit-length} control whether the table is
+shrunk to fit within a page's width or length, respectively.
+
+@code{n-orphan-lines} is the minimum number of rows or columns to put
+in one part of a table that is broken across pages.
+
+If @code{top-continuation} is 1, then @code{continuation-string} is
+printed at the top of a page when a table is broken across pages for
+printing; similarly for @code{bottom-continuation} and the bottom of a
+page.  Usually, @code{continuation-string} is empty.
+
+@node SPV Light Member Table Settings
+@subsection Table Settings
+
+@cartouche
+@format
+TableSettings @result{}
+    be32[@t{endian}]
+    be32
+    be32[@t{current-layer}]
+    bool[@t{omit-empty}]
+    bool[@t{show-row-labels-in-corner}]
+    bool[@t{show-alphabetic-markers}]
+    bool[@t{footnote-marker-position}]
+    v3(
+      byte
+      count(
+        Breakpoints[@t{row-breaks}] Breakpoints[@t{column-breaks}]
+        Keeps[@t{row-keeps}] Keeps[@t{column-keeps}]
+        PointKeeps[@t{row-keeps}] PointKeeps[@t{column-keeps}]
+      )
+      bestring[@t{notes}]
+      bestring[@t{table-look}]
+      00...
+    )
+
+Breakpoints @result{} be32[@t{n-breaks}] be32*[@t{n-breaks}]
+
+Keeps @result{} be32[@t{n-keeps}] Keep*@t{n-keeps}
+Keep @result{} be32[@t{offset}] be[@t{n}]
+
+PointKeeps @result{} be32[@t{n-point-keeps}] PointKeep*@t{n-point-keeps}
+PointKeep @result{} be32[@t{offset}] be32 be32
+
+@end format
+@end cartouche
+
+The TableSettings reflect display settings.  The fixed value of
+@code{endian} can be used to validate the endianness.
+
+@code{current-layer} is the displayed layer.
+
+If @code{omit-empty} is 1, empty rows or columns (ones with nothing in
+any cell) are hidden; otherwise, they are shown.
+
+If @code{show-row-labels-in-corner} is 1, then row labels are shown in
+the upper left corner; otherwise, they are shown nested.
+
+If @code{show-alphabetic-markers} is 1, markers are shown as letters
+(e.g. @samp{a}, @samp{b}, @samp{c}, @dots{}); otherwise, they are
+shown as numbers starting from 1.
+
+When @code{footnote-marker-position} is 1, footnote markers are shown
+as superscripts, otherwise as subscripts.
+
+The Breakpoints are rows or columns after which there is a page break;
+for example, a row break of 1 requests a page break after the second
+row.  Usually no breakpoints are specified, indicating that page
+breaks should be selected automatically.
+
+The Keeps are ranges of rows or columns to be kept together without a
+page break; for example, a row Keep with @code{offset} 1 and @code{n}
+10 requests that the 10 rows starting with the second row be kept
+together.  Usually no Keeps are specified.
+
+The PointKeeps seem to be generated automatically based on
+user-specified Keeps.  They seems to indicate a conversion from rows
+or columns to pixel or point offsets.
+
+@code{notes} is a text string that contains user-specified notes.  It
+is displayed when the user hovers the cursor over the table, like
+``alt text'' on a webpage.  It is not printed.  It is usually empty.
+
+@code{table-look} is the name of a SPSS ``TableLook'' table style,
+such as ``Default'' or ``Academic''; it is often empty.
+
+TableSettings ends with an arbitrary number of null bytes.
 
 @node SPV Light Member Formats
 @subsection Formats
@@ -704,55 +1101,73 @@ about two-thirds of the time, as does the combination of f4 = 0, f6 =
 @cartouche
 @format
 Formats @result{}
-    int[@t{n1}] byte*[@t{n1}]
-    int[@t{n2}] byte*[@t{n2}]
-    int[@t{n3}] byte*[@t{n3}]
-    int[@t{n4}] int*[@t{n4}]
+    int[@t{n-widths}] int*[@t{n-widths}]
     string[@t{encoding}]
-    (i0 @math{|} i-1) (00 @math{|} 01) 00 (00 @math{|} 01)
-    int
+    int[@t{current-layer}]
+    bool[@t{digit-grouping}] bool[@t{leading-zero}] bool
+    int[@t{epoch}]
     byte[@t{decimal}] byte[@t{grouping}]
-    int[@t{n-ccs}] string*[@t{n-ccs}]
-    v1(i0)
-    v3(count(count(X5) count(X6)))
-
-X5 @result{} byte*33 int[@t{n}] int*[@t{n}]
-X6 @result{}
+    CustomCurrency
+    count(
+      v1(X0?)
+      v3(count(X1 count(X2)) count(X3))
+
+X0 @result{}
+    byte*14
+    string[@t{command}] string[@t{command-local}]
+    string[@t{language}] string[@t{charset}] string[@t{locale}]
+    bool 00 bool bool
+    int[@t{epoch}]
+    byte[@t{decimal}] byte[@t{grouping}]
+    CustomCurrency
+    byte[@t{missing}] bool
+
+X1 @result{}
+    byte*2
+    byte[@t{lang}]
+    byte[@t{variable-mode}]
+    byte[@t{value-mode}]
+    int*2
+    00*17
+    bool
+    01
+X2 @result{}
+    int[@t{n-heights}] int*[@t{n-heights}]
+    int[@t{n-style-map}] BlankMap*[@t{n-style-map}]
+    int[@t{n-styles}] StylePair*[@t{n-styles}]
+    count((i0 i0)?)
+StyleMap @result{} int64[@t{cell-index}] int16[@t{style-index}]
+X3 @result{}
     01 00 (03 @math{|} 04) 00 00 00
-    string[@t{command}] string[@t{subcommand}]
+    string[@t{command}] string[@t{command-local}]
     string[@t{language}] string[@t{charset}] string[@t{locale}]
-    (00 @math{|} 01) 00 (00 @math{|} 01) (00 @math{|} 01)
-    int
+    bool 00 bool bool
+    int[@t{epoch}]
     byte[@t{decimal}] byte[@t{grouping}]
-    byte*8 01
-    (string[@t{dataset}] string[@t{datafile}] i0 int i0)?
-    int[@t{n-ccs}] string*[@t{n-ccs}]
-    2e (00 @math{|} 01) (i2000000 i0)?
+    double[@t{small}] 01
+    (string[@t{dataset}] string[@t{datafile}] i0 int[@t{date}] i0)?
+    CustomCurrency
+    byte[@t{missing}] bool (i2000000 i0)?
+
+CustomCurrency @result{} int[@t{n-ccs}] string*[@t{n-ccs}]
 @end format
 @end cartouche
 
-In every example in the corpus, @code{n1} is 240.  The meaning of the
-bytes that follow it is unknown.
-
-In every example in the corpus, @code{n2} is 18 and the bytes that
-follow it are @code{00 00 00 01 00 00 00 00 00 00 00 00 00 02 00 00 00
-00}.  The meaning of these bytes is unknown.
-
-In every example in the corpus for version 1, @code{n3} is 16 and the
-bytes that follow it are @code{00 00 00 01 00 00 00 01 00 00 00 00 01
-01 01 01}.  In version 3, observed @code{n3} varies from 117 to 150,
-and its bytes include a 1-byte count at offset 0x34.  When the count
-is nonzero, a text string of that length at offset 0x35 is the name of
-a ``TableLook'', e.g. ``Default'' or ``Academic''.
-
-Observed values of @code{n4} vary from 0 to 17.  Out of 7,060 examples
-in the corpus, it is nonzero only 36 times.
+If @code{n-widths} is nonzero, then the accompanying integers are
+column widths as manually adjusted by the user.  (Row heights are
+computed automatically based on the widths.)
 
 @code{encoding} is a character encoding, usually a Windows code page
 such as @code{en_US.windows-1252} or @code{it_IT.windows-1252}.  The
 rest of the character strings in the member use this encoding.  The
 encoding string is itself encoded in US-ASCII.
 
+@code{epoch} is the year that starts the epoch.  A 2-digit year is
+interpreted as belonging to the 100 years beginning at the epoch.  The
+default epoch year is 69 years prior to the current year; thus, in
+2017 this field by default contains 1948.  In the corpus, @code{epoch}
+ranges from 1943 to 1948, plus some contain -1.
+
 @code{decimal} is the decimal point character.  The observed values
 are @samp{.} and @samp{,}.
 
@@ -761,11 +1176,37 @@ are @samp{.} and @samp{,}.
 @samp{'} (apostrophe), @samp{ } (space), and zero (presumably
 indicating that digits should not be grouped).
 
+@code{command} describes the statistical procedure that generated the
+output, in English.  It is not necessarily the literal syntax name of
+the procedure: for example, NPAR TESTS becomes ``Nonparametric
+Tests.''  @code{command-local} is the procedure's name, translated
+into the output language; it is often empty and, when it is not,
+sometimes the same as @code{command}.
+
+@code{dataset} is the name of the dataset analyzed to produce the
+output, e.g.@: @code{DataSet1}, and @code{datafile} the name of the
+file it was read from, e.g.@: @file{C:\Users\foo\bar.sav}.  The latter
+is sometimes the empty string.
+
+@code{date} is a date, as seconds since the epoch, i.e.@: since
+January 1, 1970.  Pivot tables within an SPV files often have dates a
+few minutes apart, so this is probably a creation date for the tables
+rather than for the file.
+
+Sometimes @code{dataset}, @code{datafile}, and @code{date} are present
+and other times they are absent.  The reader can distinguish by
+assuming that they are present and then checking whether the
+presumptive @code{dataset} contains a null byte (a valid string never
+will).
+
 @code{n-ccs} is observed as either 0 or 5.  When it is 5, the
 following strings are CCA through CCE format strings.  @xref{Custom
 Currency Formats,,, pspp, PSPP}.  Most commonly these are all
 @code{-,,,} but other strings occur.
 
+@code{missing} is the character used to indicate that a cell contains
+a missing value.  It is always observed as @samp{.}.
+
 @node SPV Light Member Dimensions
 @subsection Dimensions
 
@@ -775,30 +1216,34 @@ the categories associated with each dimension.
 @cartouche
 @format
 Dimensions @result{} int[@t{n-dims}] Dimension*[@t{n-dims}]
-Dimension @result{} Value[@t{name}] DimUnknown int[@t{n-categories}] Category*[@t{n-categories}]
-DimUnknown @result{}
+Dimension @result{} Value[@t{name}] DimProperties int[@t{n-categories}] Category*[@t{n-categories}]
+DimProperties @result{}
     byte[@t{d1}]
     (00 @math{|} 01 @math{|} 02)[@t{d2}]
     (i0 @math{|} i2)[@t{d3}]
-    (00 @math{|} 01)[@t{d4}]
-    (00 @math{|} 01)[@t{d5}]
-    01
-    int[@t{d6}]
+    bool[@t{show-dim-label}]
+    bool[@t{hide-all-labels}]
+    01 int[@t{dim-index}]
 @end format
 @end cartouche
 
 @code{name} is the name of the dimension, e.g. @code{Variables},
 @code{Statistics}, or a variable name.
 
+The meanings of @code{d1}, @code{d2}, and @code{d3} are unknown.
 @code{d1} is usually 0 but many other values have been observed.
 
-@code{d3} is 2 over 99% of the time.
+If @code{show-dim-label} is 01, the pivot table displays a label for
+the dimension itself.  Because usually the group and category labels
+are enough explanation, it is usually 00.
 
-@code{d5} is 0 over 99% of the time.
+If @code{hide-all-labels} is 01, the pivot table omits all labels for
+the dimension, including group and category labels.  It is usually 00.
+When @code{hide-all-labels} is 01, @code{show-dim-label} is ignored.
 
-@code{d6} is either -1 or the 0-based index of the dimension, e.g.@: 0
-for the first dimension, 1 for the second, and so on.  The latter is
-the case 98% of the time in the corpus.
+@code{dim-index} is usually the 0-based index of the dimension, e.g.@:
+0 for the first dimension, 1 for the second, and so on.  Sometimes it
+is -1.  There is no visible difference.
 
 @node SPV Light Member Categories
 @subsection Categories
@@ -809,23 +1254,26 @@ are really categories; the others just serve as grouping constructs.
 @cartouche
 @format
 Category @result{} Value[@t{name}] (Leaf @math{|} Group)
-Leaf @result{} 00 00 00 i2 int[@t{index}] i0
+Leaf @result{} 00 00 00 i2 int[@t{cat-index}] i0
 Group @result{}
-    (00 @math{|} 01)[@t{merge}] 00 01 (i0 @math{|} i2)[@t{data}]
+    bool[@t{merge}] 00 01 (i0 @math{|} i2)[@t{data}]
     i-1 int[@t{n-subcategories}] Category*[@t{n-subcategories}]
 @end format
 @end cartouche
 
 @code{name} is the name of the category (or group).
 
-A Leaf represents a leaf category.  The Leaf's @code{index} is a
+A Leaf represents a leaf category.  The Leaf's @code{cat-index} is a
 nonnegative integer less than @code{n-categories} in the Dimension in
-which the Category is nested (directly or indirectly).
+which the Category is nested (directly or indirectly).  These
+categories represent the original order in which the categories were
+sorted; if the user sorted or rearranged the categories, then the
+order of categories in the file reflects that without changing the
+@code{cat-index} values.
 
-A Group represents a Group of nested categories.  Usually a Group
-contains at least one Category, so that @code{n-subcategories} is
-positive, but a few Groups with @code{n-subcategories} 0 has been
-observed.
+A Group is a group of nested categories.  Usually a Group contains at
+least one Category, so that @code{n-subcategories} is positive, but a
+few Groups with @code{n-subcategories} 0 has been observed.
 
 If a Group's @code{merge} is 00, the most common value, then the group
 is really a distinct group that should be represented as such in the
@@ -851,23 +1299,23 @@ The final part of an SPV light member contains the actual data.
 Data @result{}
     int[@t{layers}] int[@t{rows}] int[@t{columns}] int*[@t{n-dimensions}]
     int[@t{n-data}] Datum*[@t{n-data}]
-Datum @result{} int64[@t{index}] v3(00?) Value
+Datum @result{} int64[@t{index}] v1(00?) Value
 @end format
 @end cartouche
 
-The values of @code{layers}, @code{rows}, and @code{columns} each
-specifies the number of dimensions displayed in layers, rows, and
+The values of @code{n-layers}, @code{n-rows}, and @code{n-columns}
+each specifies the number of dimensions displayed in layers, rows, and
 columns, respectively.  Any of them may be zero.  Their values sum to
 @code{n-dimensions} from Dimensions (@pxref{SPV Light Member
 Dimensions}).
 
 The @code{n-dimensions} integers are a permutation of the 0-based
-dimension numbers.  The first @code{layers} integers specify each of
-the dimensions represented by layers, the next @code{rows} integers
+dimension numbers.  The first @code{n-layers} integers specify each of
+the dimensions represented by layers, the next @code{n-rows} integers
 specify the dimensions represented by rows, and the final
-@code{columns} integers specify the dimensions represented by columns.
-When there is more than one dimension of a given kind, the inner
-dimensions are given first.
+@code{n-columns} integers specify the dimensions represented by
+columns.  When there is more than one dimension of a given kind, the
+inner dimensions are given first.
 
 The format of a Datum varies slightly from version 1 to version 3: in
 version 1 it allows for an extra optional 00 byte.
@@ -887,6 +1335,7 @@ for each @math{i} from 0 to @math{d - 1}:
 For example, suppose there are 3 dimensions with 3, 4, and 5
 categories, respectively.  The datum at coordinates (1, 2, 3) has
 index @math{5 \times (4 \times (3 \times 0 + 1) + 2) + 3 = 33}.
+Within a given dimension, the index is the @code{cat-index} in a Leaf.
 
 @node SPV Light Member Value
 @subsection Value
@@ -901,7 +1350,7 @@ RawValue @result{}
     01 ValueMod int[@t{format}] double[@t{x}]
   @math{|} 02 ValueMod int[@t{format}] double[@t{x}]
     string[@t{varname}] string[@t{vallab}] (01 @math{|} 02 @math{|} 03)
-  @math{|} 03 string[@t{local}] ValueMod string[@t{id}] string[@t{c}] (00 @math{|} 01)[@t{type}]
+  @math{|} 03 string[@t{local}] ValueMod string[@t{id}] string[@t{c}] bool[@t{type}]
   @math{|} 04 ValueMod int[@t{format}] string[@t{vallab}] string[@t{varname}]
     (01 @math{|} 02 @math{|} 03) string[@t{s}]
   @math{|} 05 ValueMod string[@t{varname}] string[@t{varlabel}] (01 @math{|} 02 @math{|} 03)
@@ -1056,35 +1505,61 @@ A ValueMod can specify special modifications to a Value.
 ValueMod @result{}
     31 i0 (i0 @math{|} i1 string[@t{subscript}])
     v1(00 (i1 @math{|} i2) 00 00 int 00 00)
-    v3(count(FormatString Style ValueModUnknown))
-  @math{|} 31 i1 int[@t{footnote-number}] Format
-  @math{|} 31 i2 (00 @math{|} 01 @math{|} 02) 00 (i1 @math{|} i2 @math{|} i3) Format
-  @math{|} 31 i3 00 00 01 00 i2 Format
+    v3(count(FormatString StylePair))
+  @math{|} 31 int[@t{n-refs}] int16*[@t{n-refs}] Format
   @math{|} 58
-Style @result{} 58 @math{|} 31 01? 00? 00? 00? 01 string[@t{fgcolor}] string[@t{bgcolor}] string[@t{typeface}] byte
+
 Format @result{} 00 00 count(FormatString Style 58)
-FormatString @result{} count((i0 (58 @math{|} 31 string))?)
-ValueModUnknown @result{} 58 @math{|} 31 i0 i0 i0 i0 01 00 (01 @math{|} 02 @math{|} 08) 00 08 00 0a 00)
+FormatString @result{} count((count((i0 58)?) (58 @math{|} 31 string))?)
+
+StylePair @result{}
+    (31 Style | 58)
+    (31 Style2 | 58)
+
+Style @result{}
+    bool[@t{bold}] bool[@t{italic}] bool[@t{underline}] bool[@t{show}]
+    string[@t{fgcolor}] string[@t{bgcolor}]
+    string[@t{typeface}] byte[@t{size}]
+
+Style2 @result{}
+    int[@t{halign}] int[@t{valign}] double[@t{offset}]
+    int16[@t{left-margin}] int16[@t{right-margin}]
+    int16[@t{top-margin}] int16[@t{bottom-margin}]
 @end format
 @end cartouche
 
-The @code{footnote-number}, if present, specifies a footnote that the
-Value references.  The footnote's marker is shown appended to the main
-text of the Value, as a superscript.
+A ValueMod that begins with ``31 i0'' specifies a string to append to
+the main text of the Value, as a subscript.  The subscript text is a
+brief indicator, e.g.@: @samp{a} or @samp{a,b}, with its meaning
+indicated by the table caption.  In this usage, subscripts are similar
+to footnotes.  One apparent difference is that a Value can only
+reference one footnote but a subscript can list more than one letter.
 
-The @code{subscript}, if present, specifies a string to append to the
-main text of the Value, as a subscript.  The subscript text is a brief
-indicator, e.g.@: @samp{a} or @samp{a,b}, with its meaning indicated
-by the table caption.  In this usage, subscripts are similar to
-footnotes; one apparent difference is that a Value can only reference
-one footnote but a subscript can list more than one letter.
+A ValueMod that begins with 31 followed by a nonzero ``int'' specifies
+a footnote or footnotes that the Value references.  Footnote markers
+are shown appended to the main text of the Value, as superscripts.
 
 The Format, if present, is a format string for substitutions using the
 syntax explained previously.  It appears to be an English-language
 version of the localized format string in the Value in which the
 Format is nested.
 
-The Style, if present, changes the style for this individual Value.
+Style and Style2, if present, change the style for this individual
+Value.  @code{bold}, @code{italic}, and @code{underline} control the
+particular style.  @code{fgcolor} and @code{bgcolor} are strings, such
+as @code{#ffffff}.  The @code{size} is a font size in units of 1/96
+inch.
+
+@code{halign} is 0 for center, 2 for left, 4 for right, 6 for decimal,
+0xffffffad for mixed.  For decimal alignment, @code{offset} is the
+decimal point's offset from the right side of the cell, in units of
+1/72 inch.
+
+@code{valign} specifies vertical alignment: 0 for center, 1 for top, 3
+for bottom.
+
+@code{left-margin}, @code{right-margin}, @code{top-margin}, and
+@code{bottom-margin} are in units of 1/72 inch.
 
 @node SPV Legacy Detail Member Binary Format
 @section Legacy Detail Member Binary Format
@@ -1092,8 +1567,9 @@ The Style, if present, changes the style for this individual Value.
 Whereas the light binary format represents everything about a given
 pivot table, the legacy binary format conceptually consists of a
 number of named sources, each of which consists of a number of named
-series, each of which is a 1-dimensional array of numbers or strings
-or a mix.  Thus, the legacy binary member format is quite simple.
+variables, each of which is a 1-dimensional array of numbers or
+strings or a mix.  Thus, the legacy binary member format is quite
+simple.
 
 This section uses the same context-free grammar notation as in the
 previous section, with the following additions:
@@ -1140,18 +1616,19 @@ The following sections go into more detail.
 @cartouche
 @format
 Metadata @result{}
-    int[@t{per-series}] int[@t{n-series}] int[@t{offset}]
+    int[@t{n-data}] int[@t{n-variables}] int[@t{offset}]
     vAF(byte*32[@t{source-name}])
     vB0(byte*64[@t{source-name}] int[@t{x}])
 @end format
 @end cartouche
 
-A data source consists of @code{n-series} series of data, with
-@code{per-series} data values per series.
+A data source has @code{n-variables} variables, each with
+@code{n-data} data values.
 
 @code{source-name} is a 32- or 64-byte string padded on the right with
-zero bytes.  The names that appear in the corpus are very generic,
-usually @code{tableData} or @code{source0}.
+zero bytes.  The names that appear in the corpus are very generic:
+usually @code{tableData} for pivot table data or @code{source0} for
+chart data.
 
 A given Metadata's @code{offset} is the offset, in bytes, from the
 beginning of the member to the start of the corresponding Data.  This
@@ -1166,26 +1643,25 @@ The meaning of @code{x} in version 0xb0 is unknown.
 
 @cartouche
 @format
-Data @result{} NumericData StringData?
-NumericData @result{} NumericSeries*[@t{n-series}]
-NumericSeries @result{} byte*288[@t{series-name}] double*[@t{per-series}]
+Data @result{} NumericData*[@t{n-variables}] StringData?
+NumericData @result{} byte*288[@t{variable-name}] double*[@t{n-data}]
 @end format
 @end cartouche
 
 Data follow the Metadata in the legacy binary format, with sources in
-the same order.  Each NumericSeries begins with a @code{series-name}
+the same order.  Each NumericSeries begins with a @code{variable-name}
 that generally indicates its role in the pivot table, e.g.@: ``cell'',
 ``cellFormat'', ``dimension0categories'', ``dimension0group0'',
-followed by the numeric data, one double per element in the series.  A
-double with the maximum negative double @code{-DBL_MAX} represents the
-system-missing value SYSMIS.
+followed by the numeric data, one double per datum.  A double with the
+maximum negative double @code{-DBL_MAX} represents the system-missing
+value SYSMIS.
 
 @cartouche
 @format
 StringData @result{} i1 string[@t{source-name}] Pairs Labels
 
-Pairs @result{} int[@t{n-string-series}] PairSeries*[@t{n-string-series}]
-PairSeries @result{} string[@t{pair-series-name}] int[@t{n-pairs}] Pair*[@t{n-pairs}]
+Pairs @result{} int[@t{n-string-vars}] PairSeries*[@t{n-string-vars}]
+PairVar @result{} string[@t{pair-var-name}] int[@t{n-pairs}] Pair*[@t{n-pairs}]
 Pair @result{} int[@t{i}] int[@t{j}]
 
 Labels @result{} int[@t{n-labels}] Label*[@t{n-labels}]
@@ -1195,23 +1671,23 @@ Label @result{} int[@t{frequency}] int[@t{s}]
 
 A source may include a mix of numeric and string data values.  When a
 source includes any string data, the data values that are strings are
-set to SYSMIS in the NumericSeries, and StringData follows the
+set to SYSMIS in the NumericData, and StringData follows the
 NumericData.  A source that contains no string data omits the
 StringData.  To reliably determine whether a source includes
 StringData, the reader should check whether the offset following the
-NumericData is the offset of the next series, as indicated by its
+NumericData is the offset of the next source, as indicated by its
 Metadata (or the end of the member, in the case of the last source).
 
 StringData repeats the name of the source (from Metadata).
 
-The string data overlays the numeric data.  @code{n-string-series} is
-the number of series within the source that include string data.  More
-precisely, it is the 1-based index of the last series in the source
+The string data overlays the numeric data.  @code{n-string-vars} is
+the number of variables in the source that include string data.  More
+precisely, it is the 1-based index of the last variable in the source
 that includes any string data; thus, it would be 4 if there are 5
-series and only the fourth one includes string data.
+variables and only the fourth one includes string data.
 
-Each PairSeries consists a sequence of 0 or more Pair nonterminals,
-each of which maps from a 0-based index within series @code{i} to a
+Each PairVar consists a sequence of 0 or more Pair nonterminals, each
+of which maps from a 0-based index within variable @code{i} to a
 0-based label index @code{j}, e.g.@: pair @code{i} = 2, @code{j} = 3,
 means that the third data value (with value SYSMIS) is to be replaced
 by the string of the fourth Label.
@@ -1225,3 +1701,1270 @@ label is the string @code{s}.  Each label also includes a
 @section Legacy Detail Member XML Format
 
 This format is still under investigation.
+
+The design of the detail XML format is not what one would end up with
+for describing pivot tables.  This is because it is a special case
+of a much more general format (``visualization XML'' or ``VizML'')
+that can describe a wide range of visualizations.  Most of this
+generality is overkill for tables, and so we end up with a funny
+subset of a general-purpose format.
+
+The important elements of the detail XML format are:
+
+@itemize @bullet
+@item
+Variables.  Variables in detail XML roughly correspond to the
+dimensions in a light detail member.  There is one variable for each
+dimension, plus one variable for each level of labeling along an axis.
+
+The bulk of variables are defined with @code{sourceVariable} elements.
+The data for these variables comes from the associated
+@code{tableData.bin} member.  Some variables are defined, with
+@code{derivedVariable} elements, as a constant or in terms of a
+mapping function from a source variable.
+
+@item
+Assignment of variables to axes.  A variable can appear as columns, or
+rows, or layers.  The @code{faceting} element and its sub-elements
+describe this assignment.
+@end itemize
+
+All elements have an optional @code{id} attribute.  In practice many
+elements are assigned @code{id} attributes that are never referenced.
+
+@menu
+* SPV Detail visualization Element::
+* SPV Detail userSource Element::
+* SPV Detail sourceVariable Element::
+* SPV Detail derivedVariable Element::
+* SPV Detail extension Element::
+* SPV Detail graph Element::
+* SPV Detail location Element::
+* SPV Detail coordinates Element::
+* SPV Detail faceting Element::
+* SPV Detail facetLayout Element::
+* SPV Detail style Element::
+@end menu
+
+@node SPV Detail visualization Element
+@subsection The @code{visualization} Element
+
+@format
+Parent: Document root
+Contents:
+     extension?
+     userSource
+     (sourceVariable @math{|} derivedVariable)@math{+}
+     graph
+     labelFrame@math{+}
+     container?
+     style@math{+}
+     layerController?
+@end format
+
+This element has the following attributes.
+
+@defvr {Required} creator
+The version of the software that created this SPV file, as a string of
+the form @code{xxyyzz}, which represents software version xx.yy.zz,
+e.g.@: @code{160001} is version 16.0.1.  The corpus includes major
+versions 16 through 19.
+@end defvr
+
+@defvr {Required} date
+The date on the which the file was created, as a string of the form
+@code{YYYY-MM-DD}.
+@end defvr
+
+@defvr {Required} lang
+The locale used for output, in Windows format, which is similar to the
+format used in Unix with the underscore replaced by a hyphen, e.g.@:
+@code{en-US}, @code{en-GB}, @code{el-GR}, @code{sr-Cryl-RS}.
+@end defvr
+
+@defvr {Required} name
+The title of the pivot table, localized to the output language.
+@end defvr
+
+@defvr {Required} style
+The @code{id} of a @code{style} element (@pxref{SPV Detail style
+Element}).  This is the base style for the entire pivot table.  In
+every example in the corpus, the value is @code{visualizationStyle}
+and the corresponding @code{style} element has no attributes other
+than @code{id}.
+@end defvr
+
+@defvr {Required} type
+A floating-point number.  The meaning is unknown.
+@end defvr
+
+@defvr {Required} version
+The visualization schema version number.  In the corpus, the value is
+one of 2.4, 2.5, 2.7, and 2.8.
+@end defvr
+
+@node SPV Detail userSource Element
+@subsection The @code{userSource} Element
+
+Parent: @code{visualization} @*
+Contents:
+
+This element has the following attributes.
+
+@defvr {Optional} missing
+Always @code{listwise}.
+@end defvr
+
+@node SPV Detail sourceVariable Element
+@subsection The @code{sourceVariable} Element
+
+Parent: @code{visualization} @*
+Contents: @code{extension}* (@code{format} @math{|} @code{stringFormat})?
+
+This element defines a variable whose values can be used elsewhere in
+the visualization.  It ties this element's @code{id} to a variable
+from the @file{tableData.bin} member that corresponds to this
+@file{.xml}.
+
+This element has the following attributes.
+
+@defvr {Required} categorical
+Always set to @code{true}.
+@end defvr
+
+@defvr {Required} source
+Always set to @code{tableData}, the @code{source-name} in the
+corresponding @file{tableData.bin} member (@pxref{SPV Legacy Member
+Metadata}).
+@end defvr
+
+@defvr {Required} sourceName
+The name of a variable within the source, the @code{variable-name} in
+the corresponding @file{tableData.bin} member (@pxref{SPV Legacy
+Member Data}).
+@end defvr
+
+@defvr {Optional} dependsOn
+The @code{variable-name} of a variable linked to this one, so that a
+viewer can work with them together.  For a group variable, this is the
+name of the corresponding categorical variable.
+@end defvr
+
+@defvr {Optional} label
+The variable label, if any
+@end defvr
+
+@defvr {Optional} labelVariable
+The @code{variable-name} of a variable whose string values correspond
+one-to-one with the values of this variable and are suitable for use
+as value labels.
+@end defvr
+
+@node SPV Detail derivedVariable Element
+@subsection The @code{derivedVariable} Element
+
+Parent: @code{visualization} @*
+Contents: @code{extension}* (@code{format} @math{|} @code{stringFormat} @code{valueMapEntry}*)
+
+Like @code{sourceVariable}, this element defines a variable whose
+values can be used elsewhere in the visualization.  Instead of being
+read from a data source, the variable's data are defined by a
+mathematical expression.
+
+This element has the following attributes.
+
+@defvr {Required} categorical
+Always set to @code{true}.
+@end defvr
+
+@defvr {Required} value
+An expression that defines the variable's value.  In theory this could
+be an arbitrary expression in terms of constants, functions, and other
+variables, e.g.@: @math{(@var{var1} + @var{var2}) / 2}.  In practice,
+the corpus contains only the following forms of expressions:
+
+@table @code
+@item constant(@var{number})
+@itemx constant(@var{variable})
+A constant.  The meaning when a variable is named is unknown.
+Sometimes the ``variable name'' has spaces in it.
+
+@item map(@var{variable})
+Transforms the values in the named @var{variable} using the
+@code{valueMapEntry}s contained within the element.
+@end table
+@end defvr
+
+@defvr {Optional} dependsOn
+The @code{variable-name} of a variable linked to this one, so that a
+viewer can work with them together.  For a group variable, this is the
+name of the corresponding categorical variable.
+@end defvr
+
+@menu
+* SPV Detail valueMapEntry Element::
+@end menu
+
+@node SPV Detail valueMapEntry Element
+@subsubsection The @code{valueMapEntry} Element
+
+Parent: @code{derivedVariable} @*
+Contents: empty
+
+A @code{valueMapEntry} element defines a mapping from one or more
+values of a source expression to a target value.  (In the corpus, the
+source expression is always just the name of a variable.)  Each target
+value requires a separate @code{valueMapEntry}.  If multiple source
+values map to the same target value, they can be combined or separate.
+
+@code{valueMapEntry} has the following attributes.
+
+@defvr {Required} from
+A source value, or multiple source values separated by semicolons,
+e.g.@: @code{0} or @code{13;14;15;16}.
+@end defvr
+
+@defvr {Required} to
+The target value.
+@end defvr
+
+@node SPV Detail extension Element
+@subsection The @code{extension} Element
+
+This is a general-purpose ``extension'' element.  Readers that don't
+understand a given extension should be able to safely ignore it.  The
+attributes on this element, and their meanings, vary based on the
+context.  Each known usage is described separately below.  The current
+extensions use attributes exclusively, without any nested elements.
+
+@subsubheading @code{visualization} Parent Element
+
+With @code{visualization} as its parent element, @code{extension} has
+the following attributes.
+
+@defvr {Optional} numRows
+An integer that presumably defines the number of rows in the displayed
+pivot table.
+@end defvr
+
+@defvr {Optional} showGridline
+Always set to @code{false} in the corpus.
+@end defvr
+
+@defvr {Optional} minWidthSet
+@defvrx {Optional} maxWidthSet
+Always set to @code{true} in the corpus.
+@end defvr
+
+@subsubheading @code{container} Parent Element
+
+With @code{container} as its parent element, @code{extension} has the
+following attributes.
+
+@defvr {Required} combinedFootnotes
+Always set to @code{true} in the corpus.
+@end defvr
+
+@subsubheading @code{sourceVariable} and @code{derivedVariable} Parent Element
+
+With @code{sourceVariable} or @code{derivedVariable} as its parent
+element, @code{extension} has the following attributes.  A given
+parent element often contains several @code{extension} elements that
+specify the meaning of the source data's variables or sources, e.g.@:
+
+@example
+<extension from="0" helpId="corrected_model"/>
+<extension from="3" helpId="error"/>
+<extension from="4" helpId="total_9"/>
+<extension from="5" helpId="corrected_total"/>
+@end example
+
+@defvr {Required} from
+An integer or a name like ``dimension0''.
+@end defvr
+
+@defvr {Required} helpId
+An identifier.
+@end defvr
+
+@node SPV Detail graph Element
+@subsection The @code{graph} Element
+
+Parent: @code{visualization} @*
+Contents: @code{location}@math{+} @code{coordinates} @code{faceting} @code{facetLayout} @code{interval}
+
+@code{graph} has the following attributes.
+
+@defvr {Required} cellStyle
+@defvrx {Required} style
+Each of these is the @code{id} of a @code{style} element (@pxref{SPV
+Detail style Element}).  The former is the default style for
+individual cells, the latter for the entire table.
+@end defvr
+
+@node SPV Detail location Element
+@subsection The @code{location} Element
+
+Parent: @code{graph} @*
+Contents: empty
+
+Each instance of this element specifies where some part of the table
+frame is located.  All the examples in the corpus have four instances
+of this element, one for each of the parts @code{height},
+@code{width}, @code{left}, and @code{top}.  Some examples in the
+corpus add a fifth for part @code{bottom}, even though it is not clear
+how all of @code{top}, @code{bottom}, and @code{heigth} can be honored
+at the same time.  In any case, @code{location} seems to have little
+importance in representing tables; a reader can safely ignore it.
+
+@defvr {Required} part
+One of @code{height}, @code{width}, @code{top}, @code{bottom}, or
+@code{left}.  Presumably @code{right} is acceptable as well but the
+corpus contains no examples.
+@end defvr
+
+@defvr {Required} method
+How the location is determined:
+
+@table @code
+@item sizeToContent
+Based on the natural size of the table.  Observed only for
+parts @code{height} and @code{width}.
+
+@item attach
+Based on the location specified in @code{target}.  Observed only for
+parts @code{top} and @code{bottom}.
+
+@item fixed
+Using the value in @code{value}.  Observed only for parts @code{top},
+@code{bottom}, and @code{left}.
+
+@item same
+Same as the specified @code{target}.  Observed only for part
+@code{left}.
+@end table
+@end defvr
+
+@defvr {Optional} min
+Minimum size.  Only observed with value @code{100pt}.  Only observed
+for part @code{width}.
+@end defvr
+
+@defvr {Dependent} target
+Required when @code{method} is @code{attach} or @code{same}, not
+observed otherwise.  This is the ID of an element to attach to.
+Observed with the ID of @code{title}, @code{footnote}, @code{graph},
+and other elements.
+@end defvr
+
+@defvr {Dependent} value
+Required when @code{method} is @code{fixed}, not observed otherwise.
+Observed values are @code{0%}, @code{0px}, @code{1px}, and @code{3px}
+on parts @code{top} and @code{left}, and @code{100%} on part
+@code{bottom}.
+@end defvr
+
+@node SPV Detail coordinates Element
+@subsection The @code{coordinates} Element
+
+Parent: @code{graph} @*
+Contents: empty
+
+This element is always present and always empty, with no attributes
+(except @code{id}).
+
+@node SPV Detail faceting Element
+@subsection The @code{faceting} Element
+
+Parent: @code{graph} @*
+Contents: @code{cross} @code{layer}*
+
+The @code{faceting} element describes the row, column, and layer
+structure of the table.  Its @code{cross} child determines the row and
+column structure, and each @code{layer} child (if any) represents a
+layer.
+
+@code{faceting} has no attributes (other than @code{id}).
+
+@subsubheading The @code{cross} Element
+
+Parent: @code{faceting} @*
+Contents: @code{nest} @code{nest}
+
+The @code{cross} element describes the row and column structure of the
+table.  It has exactly two @code{nest} children, the first of which
+describes the table's rows and the second the table's columns.
+
+@code{cross} has no attributes (other than @code{id}).
+
+@subsubheading The @code{nest} Element
+
+Parent: @code{cross} @*
+Contents: @code{variableReference}@math{+}
+
+A given @code{nest} usually consists of one or more dimensions, each
+of which is represented by @code{variableReference} child elements.
+Minimally, a dimension has two @code{variableReference} children, one
+for the categories, one for the data, e.g.:
+
+@example
+<nest>
+  <variableReference ref="dimension0categories"/>
+  <variableReference ref="dimension0"/>
+</nest>
+@end example
+
+@noindent
+Groups of categories introduce additional variable references, e.g.@:
+
+@example
+<nest>
+  <variableReference ref="dimension0categories"/>
+  <variableReference ref="dimension0group0"/>
+  <variableReference ref="dimension0"/>
+</nest>
+@end example
+
+@noindent
+Grouping can be hierarchical, e.g.@:
+
+@example
+<nest>
+  <variableReference ref="dimension0categories"/>
+  <variableReference ref="dimension0group1"/>
+  <variableReference ref="dimension0group0"/>
+  <variableReference ref="dimension0"/>
+</nest>
+@end example
+
+@noindent
+XXX what are group maps?
+
+@example
+<nest id="nest_1973">
+  <variableReference ref="dimension1categories"/>
+  <variableReference ref="dimension1group1map"/>
+  <variableReference ref="dimension1group0map"/>
+  <variableReference ref="dimension1"/>
+</nest>
+<nest>
+  <variableReference ref="dimension0categories"/>
+  <variableReference ref="dimension0group0map"/>
+  <variableReference ref="dimension0"/>
+</nest>
+@end example
+
+@noindent
+A @code{nest} can contain multiple dimensions:
+
+@example
+<nest>
+  <variableReference ref="dimension1categories"/>
+  <variableReference ref="dimension1group0"/>
+  <variableReference ref="dimension1"/>
+  <variableReference ref="dimension0categories"/>
+  <variableReference ref="dimension0"/>
+</nest>
+@end example
+
+One @code{nest} within a given @code{cross} may have no dimensions, in
+which case it still has one @code{variableReference} child, which
+references a @code{derivedVariable} whose @code{value} attribute is
+@code{constant(0)}.  In the corpus, such a @code{derivedVariable} has
+@code{row} or @code{column}, respectively, as its @code{id}.
+
+@code{nest} has no attributes (other than @code{id}).
+
+@subsubheading The @code{variableReference} Element
+
+Parent: @code{nest} @*
+Contents: empty
+
+@code{variableReference} has one attribute.
+
+@defvr {Required} ref
+The @code{id} of a @code{sourceVariable} or @code{derivedVariable}
+element.
+@end defvr
+
+@subsubheading The @code{layer} Element
+
+Parent: @code{faceting} @*
+Contents: empty
+
+Each layer is represented by a pair of @code{layer} elements.  The
+first of this pair is for a category variable, the second for the data
+variable, e.g.:
+
+@example
+<layer value="0" variable="dimension0categories" visible="true"/>
+<layer value="dimension0" variable="dimension0" visible="false"/>
+@end example
+
+@noindent
+@code{layer} has the following attributes.
+
+@defvr {Required} variable
+The @code{id} of a @code{sourceVariable} or @code{derivedVariable}
+element.
+@end defvr
+
+@defvr {Required} value
+The value to select.  For a category variable, this is always
+@code{0}; for a data variable, it is the same as the @code{variable}
+attribute.
+@end defvr
+
+@defvr {Optional} visible
+Whether the layer is visible.  Generally, category layers are visible
+and data layers are not, but sometimes this attribute is omitted.
+@end defvr
+
+@defvr {Optional} method
+When present, this is always @code{nest}.
+@end defvr
+
+@node SPV Detail facetLayout Element
+@subsection The @code{facetLayout} Element
+
+Parent: @code{graph} @*
+Contents: @code{tableLayout} @code{facetLevel}@math{+} @code{setCellProperties}*
+
+@subsubheading The @code{tableLayout} Element
+
+Parent: @code{facetLayout} @*
+Contents: empty
+
+@defvr {Required} verticalTitlesInCorner
+Always set to @code{true}.
+@end defvr
+
+@defvr {Optional} style
+The @code{id} of a @code{style} element.
+@end defvr
+
+@defvr {Optional} fitCells
+Always set to @code{ticks}.
+@end defvr
+
+@subsubheading The @code{facetLevel} Element
+
+Parent: @code{facetLayout} @*
+Contents: @code{axis}
+
+Each @code{facetLevel} describes a @code{variableReference} or
+@code{layer}, and a table has one @code{facetLevel} element for
+each such element.  For example, an SPV detail member that contains
+four @code{variableReference} elements and two @code{layer} elements
+will contain six @code{facetLevel} elements.
+
+In the corpus, @code{facetLevel} elements and the elements that they
+describe are always in the same order.  The correspondence may also be
+observed in two other ways.  First, one may use the @code{level}
+attribute, described below.  Second, in the corpus, a
+@code{facetLevel} always has an @code{id} that is the same as the
+@code{id} of the element it describes with @code{_facetLevel}
+appended.  One should not formally rely on this, of course, but it is
+usefully indicative.
+
+@defvr {Required} level
+A 1-based index into the @code{variableReference} and @code{layer}
+elements, e.g.@: a @code{facetLayout} with a @code{level} of 1
+describes the first @code{variableReference} in the SPV detail member,
+and in a member with four @code{variableReference} elements, a
+@code{facetLayout} with a @code{level} of 5 describes the first
+@code{layer} in the member.
+@end defvr
+
+@defvr {Required} gap
+Always observed as @code{0pt}.
+@end defvr
+
+@subsubheading The @code{axis} Element
+
+Parent: @code{facetLevel} @*
+Contents: @code{label}? @code{majorTicks}
+
+@defvr {Attribute} style
+The @code{id} of a @code{style} element.
+@end defvr
+
+@subsubheading The @code{label} Element
+
+Parent: @code{axis} or @code{labelFrame} @*
+Contents: @code{text}@math{+} @math{|} @code{descriptionGroup}
+
+This element represents a label on some aspect of the table.  For example,
+the table's title is a @code{label}.
+
+The contents of the label can be one or more @code{text} elements or a
+@code{descriptionGroup}.
+
+@defvr {Attribute} style
+@defvrx {Optional} textFrameStyle
+Each of these is the @code{id} of a @code{style} element.
+@code{style} is the style of the label text, @code{textFrameStyle} the
+style for the frame around the label.
+@end defvr
+
+@defvr {Optional} purpose
+The kind of entity being labeled, one of @code{title},
+@code{subTitle}, @code{layer}, or @code{footnote}.
+@end defvr
+
+@subsubheading The @code{descriptionGroup} Element
+
+Parent: @code{label} @*
+Contents: (@code{description} @math{|} @code{text})@math{+}
+
+A @code{descriptionGroup} concatenates one or more elements to form a
+label.  Each element can be a @code{text} element, which contains
+literal text, or a @code{description} element that substitutes a value
+or a variable name.
+
+@defvr {Attribute} target
+The @code{id} of an element being described.  In the corpus, this is
+always @code{faceting}.
+@end defvr
+
+@defvr {Attribute} separator
+A string to separate the description of multiple groups, if the
+@code{target} has more than one.  In the corpus, this is always a
+new-line.
+@end defvr
+
+Typical contents for a @code{descriptionGroup} are a value by itself:
+@example
+<description name="value"/>
+@end example
+@noindent or a variable and its value, separated by a colon:
+@example
+<description name="variable"/><text>:</text><description name="value"/>
+@end example
+
+@subsubheading The @code{description} Element
+
+Parent: @code{descriptionGroup} @*
+Contents: empty
+
+A @code{description} is like a macro that expands to some property of
+the target of its parent @code{descriptionGroup}.
+
+@defvr {Attribute} name
+The name of the property.  Only @code{variable} and @code{value}
+appear in the corpus.
+@end defvr
+
+@subsubheading The @code{majorTicks} Element
+
+Parent: @code{axis} @*
+Contents: @code{gridline}?
+
+@defvr {Attribute} labelAngle
+@defvrx {Attribute} length
+Both always defined to @code{0}.
+@end defvr
+
+@defvr {Attribute} style
+@defvrx {Attribute} tickFrameStyle
+Each of these is the @code{id} of a @code{style} element.
+@code{style} is the style of the tick labels, @code{tickFrameStyle}
+the style for the frames around the labels.
+@end defvr
+
+@subsubheading The @code{gridline} Element
+
+Parent: @code{majorTicks} @*
+Contents: empty
+
+Represents ``gridlines,'' which for a table represents the lines
+between the rows or columns of a table (XXX?).
+
+@defvr {Attribute} style
+The style for the gridline.
+@end defvr
+
+@defvr {Attribute} zOrder
+Observed as a number between 28 and 31.  Does not seem to be
+important.
+@end defvr
+
+@subsubheading The @code{setCellProperties} Element
+
+Parent: @code{facetLayout} @*
+Contents: @code{setMetaData} @code{setStyle}* @code{setFormat}@math{+} @code{union}?
+
+This element sets style properties of cells designated by the
+@code{target} attribute of its child elements, as further restricted
+by the optional @code{union} element if present.  The @code{target}
+values often used, e.g.@: @code{graph} or @code{labeling}, actually
+affect every cell, so the @code{union} element is a useful
+restriction.
+
+@defvr {Optional} applyToConverse
+If present, always @code{true}.  This appears to invert the meaning of
+the @code{target} of sub-elements: the selected cells are the ones
+@emph{not} designated by @code{target}.  This is confusing, given the
+additional restrictions of @code{union}, but in the corpus
+@code{applyToConverse} is never present along with @code{union}.
+@end defvr
+
+@subsubheading The @code{setMetaData} Element
+
+Parent: @code{setCellProperties} @*
+Contents: empty
+
+This element is not known to have any visible effect.
+
+@defvr {Required} target
+The @code{id} of an element whose metadata is to be set.  In the
+corpus, this is always @code{graph}, the @code{id} used for the
+@code{graph} element.
+@end defvr
+
+@defvr {Required} key
+@defvrx {Required} value
+A key-value pair to set for the target.
+
+In the corpus, @code{key} is @code{cellPropId} or, rarely,
+@code{diagProps}, and @code{value} is always the @code{id} of the
+parent @code{setCellProperties}.
+@end defvr
+
+@subsubheading The @code{setStyle} Element
+
+Parent: @code{setCellProperties} @*
+Contents: empty
+
+This element associates a style with the target.
+
+@defvr {Required} target
+The @code{id} of an element whose style is to be set.  In the corpus,
+this is always the @code{id} of an @code{interval}, @code{labeling},
+or, rarely, @code{graph} element.
+@end defvr
+
+@defvr {Required} style
+The @code{id} of a @code{style} element that identifies the style to
+set on the target.
+@end defvr
+
+@subsubheading The @code{setFormat} Element
+
+@format
+Parent: @code{setCellProperties}
+Contents:
+    @code{format}
+  @math{|} @code{numberFormat}
+  @math{|} @code{stringFormat}@math{+}
+  @math{|} @code{dateTimeFormat}
+@end format
+
+This element sets the format of the target, ``format'' in this case
+meaning the SPSS print format for a variable.
+
+The details of this element vary depending on the schema version, as
+declared in the root @code{visualization} element's @code{version}
+attribute (@pxref{SPV Detail visualization Element}).  In version 2.5
+and earlier, @code{setFormat} contains one of a number of child
+elements that correspond to the different varieties of print formats.
+In version 2.7 and later, @code{setFormat} instead always contains a
+@code{format} element.
+
+XXX reinvestigate the above claim about versions: it appears to be
+incorrect.
+
+The @code{setFormat} element itself has the following attributes.
+
+@defvr {Required} target
+The @code{id} of an element whose style is to be set.  In the corpus,
+this is always the @code{id} of an @code{majorTicks} or
+@code{labeling} element.
+@end defvr
+
+@defvr {Optional} reset
+If this is @code{true}, this format overrides the target's previous
+format.  If it is @code{false}, the adds to the previous format.  In
+the corpus this is always @code{true}.  The default behavior is
+unknown.
+@end defvr
+
+@menu
+* SPV Detail format Element::
+* SPV Detail numberFormat Element::
+* SPV Detail stringFormat Element::
+* SPV Detail dateTimeFormat Element::
+* SPV Detail affix Element::
+* SPV Detail relabel Element::
+* SPV Detail union Element::
+@end menu
+
+@node SPV Detail format Element
+@subsubsection The @code{format} Element
+
+Parent: @code{sourceVariable}, @code{derivedVariable}, @code{formatMapping}, @code{labeling}, @code{formatMapping}, @code{setFormat} @*
+Contents: (@code{affix}@math{+} @math{|} @code{relabel}@math{+})?
+
+This element appears only in schema version 2.7 (@pxref{SPV Detail
+visualization Element}).
+
+This element determines a format, equivalent to an SPSS print format.
+
+@subsubheading Attributes for All Formats
+
+These attributes apply to all kinds of formats.  The most important of
+these attributes determines the high-level kind of formatting in use:
+
+@defvr {Optional} baseFormat
+Either @code{dateTime} or @code{elapsedTime}.  When this attribute is
+omitted, this element is a numeric or string format.
+@end defvr
+
+@noindent
+Whether, in the corpus, other attributes are always present (``yes''),
+never present (``no''), or sometimes present (``opt'') depends on
+@code{baseFormat}:
+
+@multitable {maximumFractionDigits} {@code{dateTime}} {@code{elapsedTime}} {number} {string}
+@headitem Attribute @tab @code{dateTime} @tab @code{elapsedTime} @tab number @tab string
+@item errorCharacter        @tab yes @tab yes @tab yes @tab opt
+@item @w{ }
+@item separatorChars        @tab yes @tab  no @tab  no @tab no
+@item @w{ }
+@item mdyOrder              @tab yes @tab  no @tab  no @tab no
+@item @w{ }
+@item showYear              @tab yes @tab  no @tab  no @tab no
+@item yearAbbreviation      @tab yes @tab  no @tab  no @tab no
+@item @w{ }
+@item showMonth             @tab yes @tab  no @tab  no @tab no
+@item monthFormat           @tab yes @tab  no @tab  no @tab no
+@item @w{ }
+@item showDay               @tab yes @tab opt @tab  no @tab no
+@item dayPadding            @tab yes @tab opt @tab  no @tab no
+@item dayOfMonthPadding     @tab yes @tab  no @tab  no @tab no
+@item dayType               @tab yes @tab  no @tab  no @tab no
+@item @w{ }
+@item showHour              @tab yes @tab opt @tab  no @tab no
+@item hourFormat            @tab yes @tab opt @tab  no @tab no
+@item hourPadding           @tab yes @tab yes @tab  no @tab no
+@item @w{ }
+@item showMinute            @tab yes @tab yes @tab  no @tab no
+@item minutePadding         @tab yes @tab yes @tab  no @tab no
+@item @w{ }
+@item showSecond            @tab yes @tab yes @tab  no @tab no
+@item secondPadding         @tab  no @tab yes @tab  no @tab no
+@item @w{ }
+@item showMillis            @tab  no @tab yes @tab  no @tab no
+@item @w{ }
+@item minimumIntegerDigits  @tab  no @tab  no @tab yes @tab no
+@item maximumFractionDigits @tab  no @tab yes @tab yes @tab no
+@item minimumFractionDigits @tab  no @tab yes @tab yes @tab no
+@item useGrouping           @tab  no @tab opt @tab yes @tab no
+@item scientific            @tab  no @tab  no @tab yes @tab no
+@item small                 @tab  no @tab  no @tab opt @tab no
+@item suffix                @tab  no @tab  no @tab opt @tab no
+@item @w{ }
+@item tryStringsAsNumbers   @tab  no @tab  no @tab  no @tab yes
+@item @w{ }
+@end multitable
+
+@defvr {Attribute} errorCharacter
+A character that replaces the formatted value when it cannot otherwise
+be represented in the given format.  Always @samp{*}.
+@end defvr
+
+@subsubheading Date and Time Attributes
+
+These attributes are used with @code{dateTime} and @code{elapsedTime}
+formats or both.
+
+@defvr {Attribute} separatorChars
+Exactly four characters.  In order, these are used for: decimal point,
+grouping, date separator, time separator.  Always @samp{.,-:}.
+@end defvr
+
+@defvr {Attribute} mdyOrder
+Within a date, the order of the days, months, and years.
+@code{dayMonthYear} is the only observed value, but one would expect
+that @code{monthDayYear} and @code{yearMonthDay} to be reasonable as
+well.
+@end defvr
+
+@defvr {Attribute} showYear
+@defvrx {Attribute} yearAbbreviation
+Whether to include the year and, if so, whether the year should be
+shown abbreviated, that is, with only 2 digits.  Each is @code{true}
+or @code{false}; only values of @code{true} and @code{false},
+respectively, have been observed.
+@end defvr
+
+@defvr {Attribute} showMonth
+@defvrx {Attribute} monthFormat
+Whether to include the month (@code{true} or @code{false}) and, if so,
+how to format it.  @code{monthFormat} is one of the following:
+
+@table @code
+@item long
+The full name of the month, e.g.@: in an English locale,
+@code{September}.
+
+@item short
+The abbreviated name of the month, e.g.@: in an English locale,
+@code{Sep}.
+
+@item number
+The number representing the month, e.g.@: 9 for September.
+
+@item paddedNumber
+A two-digit number representing the month, e.g.@: 09 for September.
+@end table
+
+Only values of @code{true} and @code{short}, respectively, have been
+observed.
+@end defvr
+
+@defvr {Attribute} dayPadding
+@defvrx {Attribute} dayOfMonthPadding
+@defvrx {Attribute} hourPadding
+@defvrx {Attribute} minutePadding
+@defvrx {Attribute} secondPadding
+These attributes presumably control whether each field in the output
+is padded with spaces to its maximum width, but the details are not
+understood.  The only observed value for any of these attributes is
+@code{true}.
+@end defvr
+
+@defvr {Attribute} showDay
+@defvrx {Attribute} showHour
+@defvrx {Attribute} showMinute
+@defvrx {Attribute} showSecond
+@defvrx {Attribute} showMillis
+These attributes presumably control whether each field is displayed
+in the output, but the details are not understood.  The only
+observed value for any of these attributes is @code{true}.
+@end defvr
+
+@defvr {Attribute} dayType
+This attribute is always @code{month} in the corpus, specifying that
+the day of the month is to be displayed; a value of @code{year} is
+supposed to indicate that the day of the year, where 1 is January 1,
+is to be displayed instead.
+@end defvr
+
+@defvr {Attribute} hourFormat
+@code{hourFormat}, if present, is one of:
+
+@table @code
+@item AMPM
+The time is displayed with an @code{am} or @code{pm} suffix, e.g.@:
+@code{10:15pm}.
+
+@item AS_24
+The time is displayed in a 24-hour format, e.g.@: @code{22:15}.
+
+This is the only value observed in the corpus.
+
+@item AS_12
+The time is displayed in a 12-hour format, without distinguishing
+morning or evening, e.g.@: @code{10;15}.
+@end table
+
+@code{hourFormat} is sometimes present for @code{elapsedTime} formats,
+which is confusing since a time duration does not have a concept of AM
+or PM.  This might indicate a bug in the code that generated the XML
+in the corpus, or it might indicate that @code{elapsedTime} is
+sometimes used to format a time of day.
+@end defvr
+
+@subsubheading Numeric Attributes
+
+These attributes are used for formats when @code{baseFormat} is
+@code{number}.  Attributes @code{maximumFractionDigits}, and
+@code{minimumFractionDigits}, and @code{useGrouping} are also used
+when @code{baseFormat} is @code{elapsedTime}.
+
+@defvr {Attribute} minimumIntegerDigits
+Minimum number of digits to display before the decimal point.  Always
+observed as @code{0}.
+@end defvr
+
+@defvr {Attribute} maximumFractionDigits
+@defvrx {Attribute} maximumFractionDigits
+Maximum or minimum, respectively, number of digits to display after
+the decimal point.  The observed values of each attribute range from 0
+to 9.
+@end defvr
+
+@defvr {Attribute} useGrouping
+Whether to use the grouping character to group digits in large
+numbers.  It would make sense for the grouping character to come from
+the @code{separatorChars} attribute, but that attribute is only
+present when @code{baseFormat} is @code{dateTime} or
+@code{elapsedTime}, in the corpus at least.  Perhaps that is because
+this attribute has only been observed as @code{false}.
+@end defvr
+
+@defvr {Attribute} scientific
+This attribute controls when and whether the number is formatted in
+scientific notation.  It takes the following values:
+
+@table @code
+@item onlyForSmall
+Use scientific notation only when the number's magnitude is smaller
+than the value of the @code{small} attribute.
+
+@item whenNeeded
+Use scientific notation when the number will not otherwise fit in the
+available space.
+
+@item true
+Always use scientific notation.  Not observed in the corpus.
+
+@item false
+Never use scientific notation.  A number that won't otherwise fit will
+be replaced by an error indication (see the @code{errorCharacter}
+attribute).  Not observed in the corpus.
+@end table
+@end defvr
+
+@defvr {Optional} small
+Only present when the @code{scientific} attribute is
+@code{onlyForSmall}, this is a numeric magnitude below which the
+number will be formatted in scientific notation.  The values @code{0}
+and @code{0.0001} have been observed.  The value @code{0} seems like a
+pathological choice, since no real number has a magnitude less than 0;
+perhaps in practice such a choice is equivalent to setting
+@code{scientific} to @code{false}.
+@end defvr
+
+@defvr {Optional} prefix
+@defvrx {Optional} suffix
+Specifies a prefix or a suffix to apply to the formatted number.  Only
+@code{suffix} has been observed, with value @samp{%}.
+@end defvr
+
+@subsubheading String Attributes
+
+These attributes are used for formats when @code{baseFormat} is
+@code{string}.
+
+@defvr {Attribute} tryStringsAsNumbers
+When this is @code{true}, it is supposed to indicate that string
+values should be parsed as numbers and then displayed according to
+numeric formatting rules.  However, in the corpus it is always
+@code{false}.
+@end defvr
+
+@node SPV Detail numberFormat Element
+@subsubsection The @code{numberFormat} Element
+
+Parent: @code{setFormat} @*
+Contents: @code{affix}@math{+}
+
+This element appears only in schema version 2.5 and earlier
+(@pxref{SPV Detail visualization Element}).  Possibly this element
+could also contain @code{relabel} elements in a more diverse corpus.
+
+This element has the following attributes.
+
+@defvr {Attribute} maximumFractionDigits
+@defvrx {Attribute} minimumFractionDigits
+@defvrx {Attribute} minimumIntegerDigits
+@defvrx {Optional} scientific
+@defvrx {Optional} small
+@defvrx {Optional} suffix
+@defvrx {Optional} useGroupging
+The syntax and meaning of these attributes is the same as on the
+@code{format} element for a numeric format.  @pxref{SPV Detail format
+Element}.
+@end defvr
+
+@node SPV Detail stringFormat Element
+@subsubsection The @code{stringFormat} Element
+
+Parent: @code{setFormat} @*
+Contents: (@code{affix}@math{+} @math{|} @code{relabel}@math{+})?
+
+This element appears only in schema version 2.5 and earlier
+(@pxref{SPV Detail visualization Element}).
+
+This element has no attributes.
+
+@node SPV Detail dateTimeFormat Element
+@subsubsection The @code{dateTimeFormat} Element
+
+Parent: @code{setFormat} @*
+Contents: empty
+
+This element appears only in schema version 2.5 and earlier
+(@pxref{SPV Detail visualization Element}).  Possibly this element
+could also contain @code{affix} and @code{relabel} elements in a more
+diverse corpus.
+
+The following attribute is required.
+
+@defvr {Attribute} baseFormat
+Either @code{dateTime} or @code{time}.
+@end defvr
+
+When @code{baseFormat} is @code{dateTime}, the following attributes
+are available.
+
+@defvr {Attribute} dayOfMonthPadding
+@defvrx {Attribute} dayPadding
+@defvrx {Attribute} dayType
+@defvrx {Attribute} hourFormat
+@defvrx {Attribute} hourPadding
+@defvrx {Attribute} mdyOrder
+@defvrx {Attribute} minutePadding
+@defvrx {Attribute} monthFormat
+@defvrx {Attribute} separatorChars
+@defvrx {Attribute} showDay
+@defvrx {Attribute} showHour
+@defvrx {Attribute} showMinute
+@defvrx {Attribute} showMonth
+@defvrx {Attribute} showSecond
+@defvrx {Attribute} showYear
+@defvrx {Attribute} yearAbbreviation
+The syntax and meaning of these attributes is the same as on the
+@code{format} element when that element's @code{baseFormat} is
+@code{dateTime}.  @pxref{SPV Detail format Element}.
+@end defvr
+
+When @code{baseFormat} is @code{time}, the following attributes are
+available.
+
+@defvr {Attribute} hourFormat
+@defvrx {Attribute} hourPadding
+@defvrx {Attribute} minutePadding
+@defvrx {Attribute} monthFormat
+@defvrx {Attribute} separatorChars
+@defvrx {Attribute} showDay
+@defvrx {Attribute} showHour
+@defvrx {Attribute} showMinute
+@defvrx {Attribute} showMonth
+@defvrx {Attribute} showSecond
+@defvrx {Attribute} showYear
+@defvrx {Attribute} yearAbbreviation
+The syntax and meaning of these attributes is the same as on the
+@code{format} element when that element's @code{baseFormat} is
+@code{elapsedTime}.  @pxref{SPV Detail format Element}.
+@end defvr
+
+@node SPV Detail affix Element
+@subsubsection The @code{affix} Element
+
+Parent: @code{format} or @code{numberFormat} or @code{stringFormat} @*
+Contents: empty
+
+Possibly this element could have @code{dateTimeFormat} as a parent in
+a more diverse corpus.
+
+This defines a suffix (or, theoretically, a prefix) for a formatted
+value.  It is used to insert a reference to a footnote.  It has the
+following attributes:
+
+@defvr {Attribute} definesReference
+This specifies the footnote number as a natural number: 1 for the
+first footnote, 2 for the second, and so on.
+@end defvr
+
+@defvr {Attribute} position
+Position for the footnote label.  Always @code{superscript}.
+@end defvr
+
+@defvr {Attribute} suffix
+Whether the affix is a suffix (@code{true}) or a prefix
+(@code{false}).  Always @code{true}.
+@end defvr
+
+@defvr {Attribute} value
+The text of the suffix or prefix.  Typically a letter, e.g.@: @code{a}
+for footnote 1, @code{b} for footnote 2, @enddots{}  The corpus
+contains other values: @code{*}, @code{**}, and a few that begin with
+at least one comma: @code{,b}, @code{,c}, @code{,,b}, and @code{,,c}.
+@end defvr
+
+@node SPV Detail relabel Element
+@subsubsection The @code{relabel} Element
+
+Parent: @code{format} or @code{stringFormat} @*
+Contents: empty
+
+Possibly this element could have @code{numberFormat} or
+@code{dateTimeFormat} as a parent in a more diverse corpus.
+
+This specifies how to display a given value.  It is used to implement
+value labels and to display the system-missing value in a
+human-readable way.  It has the following attributes:
+
+@defvr {Attribute} from
+The value to map.  In the corpus this is an integer or the
+system-missing value @code{-1.797693134862316E300}.
+@end defvr
+
+@defvr {Attribute} to
+The string to display in place of the value of @code{from}.  In the
+corpus this is a wide variety of value labels; the system-missing
+value is mapped to @samp{.}.
+@end defvr
+
+@node SPV Detail union Element
+@subsubsection The @code{union} Element
+
+Parent: @code{setCellProperties} @*
+Contents: @code{intersect}@math{+}
+
+This element represents a set of cells, computed as the union of the
+sets represented by each of its children.
+
+@subsubheading The @code{intersect} Element
+
+Parent: @code{union} @*
+Contents: @code{where}@math{+} @math{|} @code{intersectWhere}?
+
+This element represents a set of cells, computed as the intersection
+of the sets represented by each of its children.
+
+Of the two possible children, in the corpus @code{where} is far more
+common, appearing thousands of times, whereas @code{intersectWhere}
+only appears 4 times.
+
+Most @code{intersect} elements have two or more children.
+
+@subsubheading The @code{where} Element
+
+Parent: @code{intersect} @*
+Contents: empty
+
+This element represents the set of cells in which the value of a
+specified variable falls within a specified set.
+
+@defvr {Attribute} variable
+The @code{id} of a variable, e.g.@: @code{dimension0categories} or
+@code{dimension0group0map}.
+@end defvr
+
+@defvr {Attribute} include
+A value, or multiple values separated by semicolons,
+e.g.@: @code{0} or @code{13;14;15;16}.
+@end defvr
+
+@subsubheading The @code{intersectWhere} Element
+
+Parent: @code{intersect} @*
+Contents: empty
+
+The meaning of this element is unknown.
+
+@defvr {Attribute} variable
+@defvrx {Attribute} variable2
+The meaning of these attributes is unknown.  In the four examples in
+the corpus they always take the values @code{dimension2categories} and
+@code{dimension0categories}, respectively.
+@end defvr
+
+@node SPV Detail style Element
+@subsection The @code{style} Element
+
+TBD.
diff --git a/doc/dev/spv-structure.eps b/doc/dev/spv-structure.eps
deleted file mode 100644 (file)
index af2e21e..0000000
+++ /dev/null
@@ -1,626 +0,0 @@
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: graphviz version 2.38.0 (20140413.2041)
-%%Title: spv_structure
-%%Pages: 1
-%%BoundingBox: 36 36 517 487
-%%EndComments
-save
-%%BeginProlog
-/DotDict 200 dict def
-DotDict begin
-
-/setupLatin1 {
-mark
-/EncodingVector 256 array def
- EncodingVector 0
-
-ISOLatin1Encoding 0 255 getinterval putinterval
-EncodingVector 45 /hyphen put
-
-% Set up ISO Latin 1 character encoding
-/starnetISO {
-        dup dup findfont dup length dict begin
-        { 1 index /FID ne { def }{ pop pop } ifelse
-        } forall
-        /Encoding EncodingVector def
-        currentdict end definefont
-} def
-/Times-Roman starnetISO def
-/Times-Italic starnetISO def
-/Times-Bold starnetISO def
-/Times-BoldItalic starnetISO def
-/Helvetica starnetISO def
-/Helvetica-Oblique starnetISO def
-/Helvetica-Bold starnetISO def
-/Helvetica-BoldOblique starnetISO def
-/Courier starnetISO def
-/Courier-Oblique starnetISO def
-/Courier-Bold starnetISO def
-/Courier-BoldOblique starnetISO def
-cleartomark
-} bind def
-
-%%BeginResource: procset graphviz 0 0
-/coord-font-family /Times-Roman def
-/default-font-family /Times-Roman def
-/coordfont coord-font-family findfont 8 scalefont def
-
-/InvScaleFactor 1.0 def
-/set_scale {
-       dup 1 exch div /InvScaleFactor exch def
-       scale
-} bind def
-
-% styles
-/solid { [] 0 setdash } bind def
-/dashed { [9 InvScaleFactor mul dup ] 0 setdash } bind def
-/dotted { [1 InvScaleFactor mul 6 InvScaleFactor mul] 0 setdash } bind def
-/invis {/fill {newpath} def /stroke {newpath} def /show {pop newpath} def} bind def
-/bold { 2 setlinewidth } bind def
-/filled { } bind def
-/unfilled { } bind def
-/rounded { } bind def
-/diagonals { } bind def
-/tapered { } bind def
-
-% hooks for setting color 
-/nodecolor { sethsbcolor } bind def
-/edgecolor { sethsbcolor } bind def
-/graphcolor { sethsbcolor } bind def
-/nopcolor {pop pop pop} bind def
-
-/beginpage {   % i j npages
-       /npages exch def
-       /j exch def
-       /i exch def
-       /str 10 string def
-       npages 1 gt {
-               gsave
-                       coordfont setfont
-                       0 0 moveto
-                       (\() show i str cvs show (,) show j str cvs show (\)) show
-               grestore
-       } if
-} bind def
-
-/set_font {
-       findfont exch
-       scalefont setfont
-} def
-
-% draw text fitted to its expected width
-/alignedtext {                 % width text
-       /text exch def
-       /width exch def
-       gsave
-               width 0 gt {
-                       [] 0 setdash
-                       text stringwidth pop width exch sub text length div 0 text ashow
-               } if
-       grestore
-} def
-
-/boxprim {                             % xcorner ycorner xsize ysize
-               4 2 roll
-               moveto
-               2 copy
-               exch 0 rlineto
-               0 exch rlineto
-               pop neg 0 rlineto
-               closepath
-} bind def
-
-/ellipse_path {
-       /ry exch def
-       /rx exch def
-       /y exch def
-       /x exch def
-       matrix currentmatrix
-       newpath
-       x y translate
-       rx ry scale
-       0 0 1 0 360 arc
-       setmatrix
-} bind def
-
-/endpage { showpage } bind def
-/showpage { } def
-
-/layercolorseq
-       [       % layer color sequence - darkest to lightest
-               [0 0 0]
-               [.2 .8 .8]
-               [.4 .8 .8]
-               [.6 .8 .8]
-               [.8 .8 .8]
-       ]
-def
-
-/layerlen layercolorseq length def
-
-/setlayer {/maxlayer exch def /curlayer exch def
-       layercolorseq curlayer 1 sub layerlen mod get
-       aload pop sethsbcolor
-       /nodecolor {nopcolor} def
-       /edgecolor {nopcolor} def
-       /graphcolor {nopcolor} def
-} bind def
-
-/onlayer { curlayer ne {invis} if } def
-
-/onlayers {
-       /myupper exch def
-       /mylower exch def
-       curlayer mylower lt
-       curlayer myupper gt
-       or
-       {invis} if
-} def
-
-/curlayer 0 def
-
-%%EndResource
-%%EndProlog
-%%BeginSetup
-14 default-font-family set_font
-1 setmiterlimit
-% /arrowlength 10 def
-% /arrowwidth 5 def
-
-% make sure pdfmark is harmless for PS-interpreters other than Distiller
-/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse
-% make '<<' and '>>' safe on PS Level 1 devices
-/languagelevel where {pop languagelevel}{1} ifelse
-2 lt {
-    userdict (<<) cvn ([) cvn load put
-    userdict (>>) cvn ([) cvn load put
-} if
-
-%%EndSetup
-setupLatin1
-%%Page: 1 1
-%%PageBoundingBox: 36 36 517 487
-%%PageOrientation: Portrait
-0 0 1 beginpage
-gsave
-36 36 481 451 boxprim clip newpath
-1 1 set_scale 0 rotate 40 40 translate
-% heading
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-253.65 425 38.19 18 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-232.15 421.3 moveto 43 (heading) alignedtext
-grestore
-% heading->heading
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 288.31 432.87 moveto
-300.31 432.96 309.99 430.33 309.99 425 curveto
-309.99 421.33 305.41 418.95 298.65 417.84 curveto
-stroke
-0 0 0 edgecolor
-newpath 298.53 414.33 moveto
-288.31 417.13 lineto
-298.04 421.31 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 298.53 414.33 moveto
-288.31 417.13 lineto
-298.04 421.31 lineto
-closepath stroke
-0 0 0 edgecolor
-14 /Times-Roman set_font
-309.99 421.3 moveto 7 (*) alignedtext
-grestore
-% pageSetup
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-173.65 338 47.39 18 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-145.15 334.3 moveto 57 (pageSetup) alignedtext
-grestore
-% heading->pageSetup
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 238.6 408.01 moveto
-226.61 395.27 209.63 377.24 196.04 362.8 curveto
-stroke
-0 0 0 edgecolor
-newpath 198.3 360.09 moveto
-188.9 355.21 lineto
-193.2 364.89 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 198.3 360.09 moveto
-188.9 355.21 lineto
-193.2 364.89 lineto
-closepath stroke
-0 0 0 edgecolor
-14 /Times-Roman set_font
-218.65 377.8 moveto 7 (?) alignedtext
-grestore
-% label
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-269.65 251 27.9 18 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-256.15 247.3 moveto 27 (label) alignedtext
-grestore
-% heading->label
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 255.24 406.88 moveto
-258.02 377 263.77 315.11 267.11 279.27 curveto
-stroke
-0 0 0 edgecolor
-newpath 270.62 279.33 moveto
-268.06 269.05 lineto
-263.65 278.68 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 270.62 279.33 moveto
-268.06 269.05 lineto
-263.65 278.68 lineto
-closepath stroke
-grestore
-% container
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-325.65 338 43.59 18 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-300.15 334.3 moveto 51 (container) alignedtext
-grestore
-% heading->container
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 267.19 408.01 moveto
-277.88 395.39 292.97 377.57 305.15 363.2 curveto
-stroke
-0 0 0 edgecolor
-newpath 308.13 365.1 moveto
-311.92 355.21 lineto
-302.78 360.57 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 308.13 365.1 moveto
-311.92 355.21 lineto
-302.78 360.57 lineto
-closepath stroke
-0 0 0 edgecolor
-14 /Times-Roman set_font
-293.65 377.8 moveto 7 (*) alignedtext
-grestore
-% pageHeader
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-52.65 251 52.79 18 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-20.15 247.3 moveto 65 (pageHeader) alignedtext
-grestore
-% pageSetup->pageHeader
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 152.01 321.8 moveto
-132.89 308.37 104.8 288.63 83.35 273.57 curveto
-stroke
-0 0 0 edgecolor
-newpath 85.1 270.52 moveto
-74.91 267.64 lineto
-81.08 276.25 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 85.1 270.52 moveto
-74.91 267.64 lineto
-81.08 276.25 lineto
-closepath stroke
-grestore
-% pageFooter
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-173.65 251 50.09 18 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-143.15 247.3 moveto 61 (pageFooter) alignedtext
-grestore
-% pageSetup->pageFooter
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 173.65 319.8 moveto
-173.65 308.16 173.65 292.55 173.65 279.24 curveto
-stroke
-0 0 0 edgecolor
-newpath 177.15 279.18 moveto
-173.65 269.18 lineto
-170.15 279.18 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 177.15 279.18 moveto
-173.65 269.18 lineto
-170.15 279.18 lineto
-closepath stroke
-grestore
-% container->label
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 314.58 320.21 moveto
-306.37 307.74 295.05 290.56 285.82 276.56 curveto
-stroke
-0 0 0 edgecolor
-newpath 288.54 274.32 moveto
-280.12 267.9 lineto
-282.7 278.17 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 288.54 274.32 moveto
-280.12 267.9 lineto
-282.7 278.17 lineto
-closepath stroke
-grestore
-% table
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-397.65 251 27.9 18 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-384.15 247.3 moveto 27 (table) alignedtext
-grestore
-% container->table
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 339.53 320.61 moveto
-350.46 307.71 365.83 289.56 378.02 275.17 curveto
-stroke
-0 0 0 edgecolor
-newpath 380.98 277.09 moveto
-384.77 267.2 lineto
-375.64 272.56 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 380.98 277.09 moveto
-384.77 267.2 lineto
-375.64 272.56 lineto
-closepath stroke
-0 0 0 edgecolor
-14 /Times-Roman set_font
-365.65 290.8 moveto 7 (*) alignedtext
-grestore
-% text
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-281.65 91 27 18 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-271.15 87.3 moveto 21 (text) alignedtext
-grestore
-% container->text
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 322.55 319.77 moveto
-315.01 277.78 295.63 169.86 286.52 119.12 curveto
-stroke
-0 0 0 edgecolor
-newpath 289.95 118.43 moveto
-284.74 109.21 lineto
-283.06 119.67 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 289.95 118.43 moveto
-284.74 109.21 lineto
-283.06 119.67 lineto
-closepath stroke
-0 0 0 edgecolor
-14 /Times-Roman set_font
-302.65 203.8 moveto 7 (*) alignedtext
-grestore
-% tableStructure
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-413.65 164 59.59 18 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-375.65 160.3 moveto 76 (tableStructure) alignedtext
-grestore
-% table->tableStructure
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 400.88 232.8 moveto
-403.07 221.16 406.01 205.55 408.52 192.24 curveto
-stroke
-0 0 0 edgecolor
-newpath 412 192.65 moveto
-410.41 182.18 lineto
-405.12 191.36 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 412 192.65 moveto
-410.41 182.18 lineto
-405.12 191.36 lineto
-closepath stroke
-grestore
-% html
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-281.65 18 27.1 18 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-268.65 14.3 moveto 26 (html) alignedtext
-grestore
-% text->html
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 281.65 72.81 moveto
-281.65 64.79 281.65 55.05 281.65 46.07 curveto
-stroke
-0 0 0 edgecolor
-newpath 285.15 46.03 moveto
-281.65 36.03 lineto
-278.15 46.03 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 285.15 46.03 moveto
-281.65 36.03 lineto
-278.15 46.03 lineto
-closepath stroke
-grestore
-% dataPath
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-413.65 91 40.89 18 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-390.15 87.3 moveto 47 (dataPath) alignedtext
-grestore
-% tableStructure->dataPath
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 413.65 145.81 moveto
-413.65 137.79 413.65 128.05 413.65 119.07 curveto
-stroke
-0 0 0 edgecolor
-newpath 417.15 119.03 moveto
-413.65 109.03 lineto
-410.15 119.03 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 417.15 119.03 moveto
-413.65 109.03 lineto
-410.15 119.03 lineto
-closepath stroke
-grestore
-% pageParagraph
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-173.65 164 63.09 18 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-133.15 160.3 moveto 81 (pageParagraph) alignedtext
-grestore
-% pageHeader->pageParagraph
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 74.56 234.61 moveto
-93.59 221.24 121.37 201.72 142.68 186.75 curveto
-stroke
-0 0 0 edgecolor
-newpath 144.9 189.47 moveto
-151.08 180.85 lineto
-140.88 183.74 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 144.9 189.47 moveto
-151.08 180.85 lineto
-140.88 183.74 lineto
-closepath stroke
-0 0 0 edgecolor
-14 /Times-Roman set_font
-120.65 203.8 moveto 7 (*) alignedtext
-grestore
-% pageFooter->pageParagraph
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 173.65 232.8 moveto
-173.65 221.16 173.65 205.55 173.65 192.24 curveto
-stroke
-0 0 0 edgecolor
-newpath 177.15 192.18 moveto
-173.65 182.18 lineto
-170.15 192.18 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 177.15 192.18 moveto
-173.65 182.18 lineto
-170.15 192.18 lineto
-closepath stroke
-0 0 0 edgecolor
-14 /Times-Roman set_font
-173.65 203.8 moveto 7 (*) alignedtext
-grestore
-% pageParagraph->text
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 197.61 147.24 moveto
-214.44 136.18 236.98 121.37 254.47 109.86 curveto
-stroke
-0 0 0 edgecolor
-newpath 256.67 112.61 moveto
-263.11 104.19 lineto
-252.83 106.76 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 256.67 112.61 moveto
-263.11 104.19 lineto
-252.83 106.76 lineto
-closepath stroke
-grestore
-endpage
-showpage
-grestore
-%%PageTrailer
-%%EndPage: 1
-%%Trailer
-end
-restore
-%%EOF
diff --git a/doc/dev/spv-structure.gv b/doc/dev/spv-structure.gv
deleted file mode 100644 (file)
index 7807ab4..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-digraph spv_structure {
-   "heading" -> "pageSetup" [label="?"];
-   "heading" -> "label";
-   "heading" -> "container" [label="*"];
-   "heading" -> "heading" [label="*"];
-
-   "container" -> "label";
-   "container" -> "table" [label="*"];
-   "container" -> "text" [label="*"];
-
-   "text" -> "html";
-
-   "table" -> "tableStructure";
-
-   "tableStructure" -> "dataPath";
-
-   "pageSetup" -> "pageHeader";
-   "pageSetup" -> "pageFooter";
-
-   "pageHeader" -> "pageParagraph" [label="*"];
-
-   "pageFooter" -> "pageParagraph" [label="*"];
-
-   "pageParagraph" -> "text";
-}
diff --git a/doc/dev/spv-structure.pdf b/doc/dev/spv-structure.pdf
deleted file mode 100644 (file)
index b54a268..0000000
Binary files a/doc/dev/spv-structure.pdf and /dev/null differ
index 7cc0342c4cd81e966f45abbeafb9c65a3d2cce60..116fa6f787445fb5931e9ae2dafe87eb97782988 100644 (file)
@@ -222,6 +222,12 @@ pspp 0.1.4 - sparc-sun-solaris2.5.2}.  The string is truncated if it
 would be longer than 60 characters; otherwise it is padded on the right
 with spaces.
 
+The product name field allow readers to behave differently based on
+quirks in the way that particular software writes system files.
+@xref{Value Labels Records}, for the detail of the quirk that the PSPP
+system file reader tolerates in files written by ReadStat, which has
+@code{https://github.com/WizardMac/ReadStat} in @code{prod_name}.
+
 @anchor{layout_code}
 @item int32 layout_code;
 Normally set to 2, although a few system files have been spotted in
@@ -232,8 +238,8 @@ file's integer endianness (@pxref{System File Format}).
 Number of data elements per case.  This is the number of variables,
 except that long string variables add extra data elements (one for every
 8 characters after the first 8).  However, string variables do not
-contribute to this value beyond the first 255 bytes.   Further, system
-files written by some systems set this value to -1.  In general, it is
+contribute to this value beyond the first 255 bytes.   Further, some
+software always writes -1 or 0 in this field.  In general, it is
 unsafe for systems reading system files to rely upon this value.
 
 @item int32 compression;
@@ -524,6 +530,14 @@ numeric and short string variables only.  Long string variables may
 have value labels, but their value labels are recorded using a
 different record type (@pxref{Long String Value Labels Record}).
 
+ReadStat (@pxref{File Header Record}) writes value labels that label a
+single value more than once.  In more detail, it emits value labels
+whose values are longer than string variables' widths, that are
+identical in the actual width of the variable, e.g.@: labels for
+values @code{ABC123} and @code{ABC456} for a string variable with
+width 3.  For files written by this software, PSPP ignores such
+labels.
+
 The value label record has the following format:
 
 @example
@@ -605,7 +619,8 @@ char                lines[][80];
 Record type.  Always set to 6.
 
 @item int32 n_lines;
-Number of lines of documents present.
+Number of lines of documents present.  This should be greater than
+zero, but ReadStats writes system files with zero @code{n_lines}.
 
 @item char lines[][80];
 Document lines.  The number of elements is defined by @code{n_lines}.
@@ -1557,9 +1572,10 @@ value @var{code} - @var{bias}, where
 variable @code{bias} from the file header.  For example,
 code 105 with bias 100.0 (the normal value) indicates a numeric variable
 of value 5.
-One file has been seen written by SPSS 14 that contained such a code
-in a @emph{string} field with the value 0 (after the bias is
-subtracted) as a way of encoding null bytes.
+
+A code of 0 (after subtracting the bias) in a string field encodes
+null bytes.  This is unusual, since a string field normally encodes
+text data, but it exists in real system files.
 
 @item 252
 End of file.  This code may or may not appear at the end of the data
index 1141f3a53d723f0aba39d03b165447a961fd3d63..463d5988657e7c18cd0096266419395eced76225 100644 (file)
@@ -1,3 +1,12 @@
+@c PSPP - a program for statistical analysis.
+@c Copyright (C) 2017 Free Software Foundation, Inc.
+@c Permission is granted to copy, distribute and/or modify this document
+@c under the terms of the GNU Free Documentation License, Version 1.3
+@c or any later version published by the Free Software Foundation;
+@c with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
+@c A copy of the license is included in the section entitled "GNU
+@c Free Documentation License".
+@c
 @c Use @func when refering to a function.
 @c Use @deftypefn for their definitions 
 @macro func{NAME}
@@ -414,7 +423,11 @@ functions.  In particular, user-missing values for numeric variables
 are converted to system-missing values.
 
 @deftypefn {Function} {} MISSING (@var{expr})
-Returns 1 if @var{expr} has the system-missing value, 0 otherwise.
+When @var{expr} is simply the name of a numeric variable, returns 1 if
+the variable has the system-missing value or if it is user-missing.
+For any other value 0 is returned.
+If @var{expr} takes another form, the function returns 1 if the value is
+system-missing, 0 otherwise.
 @end deftypefn
 
 @deftypefn {Function} {} NMISS (@var{expr} [, @var{expr}]@dots{})
@@ -430,10 +443,7 @@ variable ranges using the @code{@var{var1} TO @var{var2}} syntax.
 @end deftypefn
 
 @deftypefn {Function} {} SYSMIS (@var{expr})
-When @var{expr} is simply the name of a numeric variable, returns 1 if
-the variable has the system-missing value, 0 if it is user-missing or
-not missing.  If given @var{expr} takes another form, results in 1 if
-the value is system-missing, 0 otherwise.
+Returns 1 if @var{expr} has the system-missing value, 0 otherwise.
 @end deftypefn
 
 @deftypefn {Function} {} VALUE (@var{variable})
index 8711c1ae04ca2761b9aa938f330fefd5116a0d12..47e8f19adbba061138d81667177e22002d5806d6 100644 (file)
@@ -1,3 +1,12 @@
+@c PSPP - a program for statistical analysis.
+@c Copyright (C) 2017 Free Software Foundation, Inc.
+@c Permission is granted to copy, distribute and/or modify this document
+@c under the terms of the GNU Free Documentation License, Version 1.3
+@c or any later version published by the Free Software Foundation;
+@c with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
+@c A copy of the license is included in the section entitled "GNU
+@c Free Documentation License".
+@c
 @node GNU Free Documentation License
 @appendix GNU Free Documentation License
 
index e3d2398eb9973d69587afed316c9c1d92bb607c3..f0b56aaf22dd49d61389efd62c4a4dae8071dc37 100644 (file)
@@ -1,3 +1,12 @@
+@c PSPP - a program for statistical analysis.
+@c Copyright (C) 2017 Free Software Foundation, Inc.
+@c Permission is granted to copy, distribute and/or modify this document
+@c under the terms of the GNU Free Documentation License, Version 1.3
+@c or any later version published by the Free Software Foundation;
+@c with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
+@c A copy of the license is included in the section entitled "GNU
+@c Free Documentation License".
+@c
 @node System and Portable File IO
 @chapter System and Portable File I/O
 
index fe81c94357c42a1b5b1bd1c6c4927a0dffba6424..04fd6c3c8fba4a1837c98deaeaac03078da766a4 100644 (file)
@@ -1,3 +1,12 @@
+@c PSPP - a program for statistical analysis.
+@c Copyright (C) 2017 Free Software Foundation, Inc.
+@c Permission is granted to copy, distribute and/or modify this document
+@c under the terms of the GNU Free Documentation License, Version 1.3
+@c or any later version published by the Free Software Foundation;
+@c with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
+@c A copy of the license is included in the section entitled "GNU
+@c Free Documentation License".
+@c
 
 @node Conditionals and Looping
 @chapter Conditional and Looping Constructs
index a41e60de1a3df93226c6c6c2037f126f9f4693e4..dc4083dfd7dc8e829bc19c63a6bd5d6a326135ea 100644 (file)
@@ -1,3 +1,12 @@
+@c PSPP - a program for statistical analysis.
+@c Copyright (C) 2017 Free Software Foundation, Inc.
+@c Permission is granted to copy, distribute and/or modify this document
+@c under the terms of the GNU Free Documentation License, Version 1.3
+@c or any later version published by the Free Software Foundation;
+@c with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
+@c A copy of the license is included in the section entitled "GNU
+@c Free Documentation License".
+@c
 @node Function Index
 @chapter Function Index
 @printindex fn
index 4482f42f97b96124a36c2d63816d9c88a9d6f4a5..9ce33b2238312ad9d5acbd60de9121aa04c6f2d8 100644 (file)
@@ -1,3 +1,12 @@
+@c PSPP - a program for statistical analysis.
+@c Copyright (C) 2017 Free Software Foundation, Inc.
+@c Permission is granted to copy, distribute and/or modify this document
+@c under the terms of the GNU Free Documentation License, Version 1.3
+@c or any later version published by the Free Software Foundation;
+@c with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
+@c A copy of the license is included in the section entitled "GNU
+@c Free Documentation License".
+@c
 @node Installation
 @appendix Installing @pspp{}
 @cindex installation
index 1516314ed28ba115bc35a88a87112224affad14f..3a6ca3bad593e2b0eb6a6d70181c766bab59a258 100644 (file)
@@ -1,3 +1,12 @@
+@c PSPP - a program for statistical analysis.
+@c Copyright (C) 2017 Free Software Foundation, Inc.
+@c Permission is granted to copy, distribute and/or modify this document
+@c under the terms of the GNU Free Documentation License, Version 1.3
+@c or any later version published by the Free Software Foundation;
+@c with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
+@c A copy of the license is included in the section entitled "GNU
+@c Free Documentation License".
+@c
 @node Introduction
 @chapter Introduction
 @cindex introduction
index ea839fb1feca9c7020947b7a9a54161cf5630c0a..bc53ae4dda457200180c13b5ed2f1d664856b057 100644 (file)
@@ -1,3 +1,12 @@
+@c PSPP - a program for statistical analysis.
+@c Copyright (C) 2017 Free Software Foundation, Inc.
+@c Permission is granted to copy, distribute and/or modify this document
+@c under the terms of the GNU Free Documentation License, Version 1.3
+@c or any later version published by the Free Software Foundation;
+@c with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
+@c A copy of the license is included in the section entitled "GNU
+@c Free Documentation License".
+@c
 @node Invoking PSPP
 @chapter Invoking @command{pspp}
 @cindex invocation
index e344de301919fd1c3e9a405dcffbcc49e42cdbf5..6d5ebf25d6b797369cdc018181a1317cd54cdba7 100644 (file)
@@ -1,3 +1,12 @@
+@c PSPP - a program for statistical analysis.
+@c Copyright (C) 2017 Free Software Foundation, Inc.
+@c Permission is granted to copy, distribute and/or modify this document
+@c under the terms of the GNU Free Documentation License, Version 1.3
+@c or any later version published by the Free Software Foundation;
+@c with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
+@c A copy of the license is included in the section entitled "GNU
+@c Free Documentation License".
+@c
 @node Language
 @chapter The @pspp{} language
 @cindex language, @pspp{}
index e3dfdc0b4cffe2365d0029f1a3a35f6c234ac6e3..ab7a30cf3eac24c41ffc4884c8e2e260fb04f8c2 100644 (file)
@@ -1,3 +1,12 @@
+@c PSPP - a program for statistical analysis.
+@c Copyright (C) 2017 Free Software Foundation, Inc.
+@c Permission is granted to copy, distribute and/or modify this document
+@c under the terms of the GNU Free Documentation License, Version 1.3
+@c or any later version published by the Free Software Foundation;
+@c with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
+@c A copy of the license is included in the section entitled "GNU
+@c Free Documentation License".
+@c
 @node License
 @chapter Your rights and obligations
 @cindex license
index 5a858d0314d14aaf47884fb533b11d1982a62200..f58e3faa8b7968d2819e912b53fd78a3693df18e 100644 (file)
@@ -1,3 +1,12 @@
+@c PSPP - a program for statistical analysis.
+@c Copyright (C) 2017 Free Software Foundation, Inc.
+@c Permission is granted to copy, distribute and/or modify this document
+@c under the terms of the GNU Free Documentation License, Version 1.3
+@c or any later version published by the Free Software Foundation;
+@c with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
+@c A copy of the license is included in the section entitled "GNU
+@c Free Documentation License".
+@c
 @node Not Implemented
 @chapter Not Implemented
 
index 3719de224c44dcb5fb1af537a417969e33c491a5..aad7e74d9e0d7636302a2a2941c81735d8f98373 100644 (file)
@@ -1,3 +1,12 @@
+@c PSPP - a program for statistical analysis.
+@c Copyright (C) 2017 Free Software Foundation, Inc.
+@c Permission is granted to copy, distribute and/or modify this document
+@c under the terms of the GNU Free Documentation License, Version 1.3
+@c or any later version published by the Free Software Foundation;
+@c with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
+@c A copy of the license is included in the section entitled "GNU
+@c Free Documentation License".
+@c
 @node Invoking pspp-convert
 @chapter Invoking @command{pspp-convert}
 @cindex Invocation
index a1c623ce03e887f1175290210925607889afc2d7..1570271a222e0936fc69b43241d85a740fba976e 100644 (file)
@@ -1,4 +1,13 @@
 \input texinfo @c -*- texinfo -*-
+@c PSPP - a program for statistical analysis.
+@c Copyright (C) 2017 Free Software Foundation, Inc.
+@c Permission is granted to copy, distribute and/or modify this document
+@c under the terms of the GNU Free Documentation License, Version 1.3
+@c or any later version published by the Free Software Foundation;
+@c with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
+@c A copy of the license is included in the section entitled "GNU
+@c Free Documentation License".
+
 @c %**start of header
 @setfilename pspp-dev.info
 @settitle PSPP
index 951a79d776d901b07311d1f7a5ff8543f428ef3d..1758288fe92a9ae4d9b6535fe7eb6c97e0c07702 100644 (file)
@@ -1,3 +1,12 @@
+@c PSPP - a program for statistical analysis.
+@c Copyright (C) 2017 Free Software Foundation, Inc.
+@c Permission is granted to copy, distribute and/or modify this document
+@c under the terms of the GNU Free Documentation License, Version 1.3
+@c or any later version published by the Free Software Foundation;
+@c with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
+@c A copy of the license is included in the section entitled "GNU
+@c Free Documentation License".
+@c
 @node Invoking pspp-dump-sav
 @chapter Invoking @command{pspp-dump-sav}
 @cindex Invocation
index 7c7c4da6eff18daf213c70c12ab104257f0936ce..2e8b8f43f28cb065b73dd6a6c3bbb9a5cc5fa3fe 100644 (file)
@@ -1,4 +1,13 @@
 \input texinfo @c -*- texinfo -*-
+@c PSPP - a program for statistical analysis.
+@c Copyright (C) 2017 Free Software Foundation, Inc.
+@c Permission is granted to copy, distribute and/or modify this document
+@c under the terms of the GNU Free Documentation License, Version 1.3
+@c or any later version published by the Free Software Foundation;
+@c with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
+@c A copy of the license is included in the section entitled "GNU
+@c Free Documentation License".
+
 @c %**start of header
 @setfilename pspp.info
 @settitle PSPP
index 9a159014d005b3d1900645dfff0ef85bd783027f..9f236b8ea0e60fdc09eb8586ebf54f9578961234 100644 (file)
@@ -1,3 +1,12 @@
+@c PSPP - a program for statistical analysis.
+@c Copyright (C) 2017 Free Software Foundation, Inc.
+@c Permission is granted to copy, distribute and/or modify this document
+@c under the terms of the GNU Free Documentation License, Version 1.3
+@c or any later version published by the Free Software Foundation;
+@c with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
+@c A copy of the license is included in the section entitled "GNU
+@c Free Documentation License".
+@c
 @node REGRESSION
 @section REGRESSION
 
index b5026e7b2c61c2d648f8bb09b1dcadffd31e4194..c46189bd0709394fe2552ee9783915126c9442a3 100644 (file)
@@ -1,3 +1,12 @@
+@c PSPP - a program for statistical analysis.
+@c Copyright (C) 2017 Free Software Foundation, Inc.
+@c Permission is granted to copy, distribute and/or modify this document
+@c under the terms of the GNU Free Documentation License, Version 1.3
+@c or any later version published by the Free Software Foundation;
+@c with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
+@c A copy of the license is included in the section entitled "GNU
+@c Free Documentation License".
+@c
 @node Statistics
 @chapter Statistics
 
@@ -798,7 +807,7 @@ FACTOR  @{
 
         [ /ROTATION=@{VARIMAX, EQUAMAX, QUARTIMAX, PROMAX[(@var{k})], NOROTATE@}]
 
-        [ /PRINT=[INITIAL] [EXTRACTION] [ROTATION] [UNIVARIATE] [CORRELATION] [COVARIANCE] [DET] [KMO] [SIG] [ALL] [DEFAULT] ]
+        [ /PRINT=[INITIAL] [EXTRACTION] [ROTATION] [UNIVARIATE] [CORRELATION] [COVARIANCE] [DET] [KMO] [AIC] [SIG] [ALL] [DEFAULT] ]
 
         [ /PLOT=[EIGEN] ]
 
@@ -825,7 +834,7 @@ individual data cases.  Typically the matrix file will have been generated by
 If specified, @subcmd{MATRIX IN} must be followed by @samp{COV} or @samp{CORR},
 then by @samp{=} and @var{file_spec} all in parentheses.
 @var{file_spec} may either be an asterisk, which indicates the currently loaded
-dataset, or it may be a filename to be loaded. @xref{MATRIX DATA} for the expected
+dataset, or it may be a filename to be loaded. @xref{MATRIX DATA}, for the expected
 format of the file.
 
 The @subcmd{/EXTRACTION} subcommand is used to specify the way in which factors (components) are extracted from the data.
@@ -862,6 +871,8 @@ The @subcmd{/PRINT} subcommand may be used to select which features of the analy
       The covariance matrix is printed.
 @item @subcmd{DET}
       The determinant of the correlation or covariance matrix is printed.
+@item @subcmd{AIC}
+      The anti-image covariance and anti-image correlation matrices are printed.
 @item @subcmd{KMO}
       The Kaiser-Meyer-Olkin measure of sampling adequacy and the Bartlett test of sphericity is printed.
 @item @subcmd{SIG}
index 1ca2d22b297ba0727c1d089532ad3ac9312a14f4..03d697913676b280c0c9d676454e4a7797512835 100644 (file)
@@ -1,3 +1,12 @@
+@c PSPP - a program for statistical analysis.
+@c Copyright (C) 2017 Free Software Foundation, Inc.
+@c Permission is granted to copy, distribute and/or modify this document
+@c under the terms of the GNU Free Documentation License, Version 1.3
+@c or any later version published by the Free Software Foundation;
+@c with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
+@c A copy of the license is included in the section entitled "GNU
+@c Free Documentation License".
+@c
 @node Data Manipulation
 @chapter Data transformations
 @cindex transformations
index 65fcbbfa1ab25b212f0bffa9930424746000dbe0..b76d8bf838ab1b50de389fa346cd39beead8a41d 100644 (file)
@@ -1,3 +1,12 @@
+@c PSPP - a program for statistical analysis.
+@c Copyright (C) 2017 Free Software Foundation, Inc.
+@c Permission is granted to copy, distribute and/or modify this document
+@c under the terms of the GNU Free Documentation License, Version 1.3
+@c or any later version published by the Free Software Foundation;
+@c with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
+@c A copy of the license is included in the section entitled "GNU
+@c Free Documentation License".
+@c
 @alias prompt = sansserif
 
 @include tut.texi
index 2d22f2bba77763eb1757444e9345a33b0bd25bee..c2dba0e4799653cba2f1a874c40b369a143b03a8 100644 (file)
@@ -1,3 +1,12 @@
+@c PSPP - a program for statistical analysis.
+@c Copyright (C) 2017 Free Software Foundation, Inc.
+@c Permission is granted to copy, distribute and/or modify this document
+@c under the terms of the GNU Free Documentation License, Version 1.3
+@c or any later version published by the Free Software Foundation;
+@c with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
+@c A copy of the license is included in the section entitled "GNU
+@c Free Documentation License".
+@c
 @node Utilities
 @chapter Utilities
 
index cc13e784de2e9732d028b4fa03077e2f75096aad..7f6d89bee25767996f904f29fbc32dcb0c9c7366 100644 (file)
@@ -1,3 +1,12 @@
+@c PSPP - a program for statistical analysis.
+@c Copyright (C) 2017 Free Software Foundation, Inc.
+@c Permission is granted to copy, distribute and/or modify this document
+@c under the terms of the GNU Free Documentation License, Version 1.3
+@c or any later version published by the Free Software Foundation;
+@c with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
+@c A copy of the license is included in the section entitled "GNU
+@c Free Documentation License".
+@c
 @node Variable Attributes
 @chapter Manipulating variables
 
index d2713adef42d0301dc64043c3bc05c0e45e4b936..15b984abc142d9ce110003482c845146661eae2b 100644 (file)
@@ -1,3 +1,19 @@
+# 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 -*-
 
 
index fd947f64d8da1353c6e07748fbbef39e1c12820d..0d6363e3c13a9b4104049e370d195fa1d3d163c4 100644 (file)
@@ -1,3 +1,19 @@
+# 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 -*-
 
 module_LTLIBRARIES = libglade-psppire.la
index a02d5fbc2b560c69f478a3190e91eecf95405b12..e03f2773418de83ee67985127977f005a649bbe6 100644 (file)
@@ -1,4 +1,21 @@
 <?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/>. -->
+
 <glade-catalog name="psppire" library="glade-psppire">
 
   <glade-widget-classes>
index 690304e73c5671d7832d2f74178dbcbb83ea2de1..dbda6b48a8f9222187ac5e6c2a4050deeba3dbce 100644 (file)
@@ -1,3 +1,19 @@
+# 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
index da4fe535d3956d8137c375925e858638f1930fea..9e4b6b24ed4fd68602c4f91e02e4e6e0e4ae619e 100644 (file)
@@ -1,3 +1,19 @@
+# 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 -*-
 
 noinst_LTLIBRARIES += lib/linreg/liblinreg.la
index 85bcd629d19245805c53872a7d1ba4ca680d74b2..b7852a2a1cb8e10e2c435cd9eb1edcd99e89ea66 100644 (file)
@@ -1,3 +1,19 @@
+# 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 -*-
 
 noinst_LTLIBRARIES += lib/tukey/libtukey.la
index 909ffe9e5324a500ff833f09d2e11a39e22d89af..74ea561170b00b3b16917aa8fe1c5a2c9fa24309 100644 (file)
@@ -17,6 +17,7 @@
    02110-1301, USA. */
 
 
+#undef VERSION
 #include <config.h>
 
 /* The Gnulib "strftime" module defines my_strftime in <config.h> for use by
index 92e9dcaf73c7570364b874473f9a326343122461..b995d036dff9131d33230572fbad943bfa5f17e4 100644 (file)
@@ -1,3 +1,19 @@
+# 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 -*-
 
 # PSPP
index 181fb2be58541fda5709d893eb082bfbb33dc6ff..1f009d9de9eabec4a1c2b2238792d0978b242820 100644 (file)
@@ -1,3 +1,21 @@
+/* 
+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/>.
+*/
+
 #if 0
 <<'SKIP';
 #endif
index 7c349f0af88f1da6e757504f78e36fdee6f8b978..df215288b732f76331204098c86c4d3c335e54d4 100644 (file)
@@ -1,3 +1,19 @@
+# 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 $(top_srcdir)/po/Makevars
 
 XGETTEXT=xgettext
index 45c324ee4c7050460fcb88d37f0aa30d48b68a1f..dc788e7ce4c7a57e1bd627d0e26d791e728e65d4 100644 (file)
--- a/po/de.po
+++ b/po/de.po
@@ -6,10 +6,10 @@
 # Bob Earl <Bob.Earl@gmx.net>, 2014 -
 msgid ""
 msgstr ""
-"Project-Id-Version: pspp 0.10.2\n"
+"Project-Id-Version: pspp 0.10.5pre1\n"
 "Report-Msgid-Bugs-To: pspp-dev@gnu.org\n"
 "POT-Creation-Date: 2015-06-19 20:56-0700\n"
-"PO-Revision-Date: 2016-11-09 17:19+0100\n"
+"PO-Revision-Date: 2017-06-14 09:54+0200\n"
 "Last-Translator: Bob Earl <Bob.Earl@gmx.net>\n"
 "Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
 "Language: de_DE\n"
@@ -21,7 +21,7 @@ msgstr ""
 "X-Poedit-SourceCharset: UTF-8\n"
 "X-Generator: Poedit 1.8.11\n"
 
-#: src/ui/gui/helper.c:203
+#: src/ui/gui/helper.c:210
 msgid "Sorry. The help system hasn't yet been implemented."
 msgstr "Entschuldigung. Das Hilfesystem wurde noch nicht implementiert."
 
@@ -84,8 +84,8 @@ msgstr "String"
 msgid "Numeric"
 msgstr "Numerisch"
 
-#: src/data/format.c:416 src/data/sys-file-reader.c:2196
-#: src/data/sys-file-reader.c:2198 src/language/xforms/recode.c:512
+#: src/data/format.c:416 src/data/sys-file-reader.c:2195
+#: src/data/sys-file-reader.c:2197 src/language/xforms/recode.c:512
 #: src/language/xforms/recode.c:513 src/language/xforms/recode.c:525
 #: src/language/xforms/recode.c:526
 #: src/language/dictionary/apply-dictionary.c:77
@@ -93,8 +93,8 @@ msgstr "Numerisch"
 msgid "numeric"
 msgstr "numerisch"
 
-#: src/data/format.c:416 src/data/sys-file-reader.c:2196
-#: src/data/sys-file-reader.c:2198 src/language/xforms/recode.c:512
+#: src/data/format.c:416 src/data/sys-file-reader.c:2195
+#: src/data/sys-file-reader.c:2197 src/language/xforms/recode.c:512
 #: src/language/xforms/recode.c:513 src/language/xforms/recode.c:525
 #: src/language/xforms/recode.c:526
 #: src/language/dictionary/apply-dictionary.c:77
@@ -143,69 +143,73 @@ msgstr "Bearbeiten"
 msgid "Remove"
 msgstr "Löschen"
 
-#: src/ui/gui/psppire-buttonbox.c:326
+#: src/ui/gui/psppire-buttonbox.c:322
 msgid "OK"
 msgstr "OK"
 
-#: src/ui/gui/psppire-buttonbox.c:334
+#: src/ui/gui/psppire-buttonbox.c:330
 msgid "Go To"
 msgstr "Gehe zu"
 
-#: src/ui/gui/psppire-buttonbox.c:342
+#: src/ui/gui/psppire-buttonbox.c:338
 msgid "Continue"
 msgstr "Weiter"
 
-#: src/ui/gui/psppire-buttonbox.c:354
+#: src/ui/gui/psppire-buttonbox.c:350
 #: src/ui/gui/psppire-import-assistant.c:938
 msgid "Paste"
 msgstr "Einfügen"
 
-#: src/ui/gui/psppire-buttonbox.c:360 src/ui/gui/psppire-data-window.c:490
-#: src/ui/gui/psppire-data-window.c:618
+#: src/ui/gui/psppire-buttonbox.c:356 src/ui/gui/psppire-data-window.c:533
+#: src/ui/gui/psppire-data-window.c:661
 #: src/ui/gui/psppire-dialog-action-aggregate.c:216
-#: src/ui/gui/psppire-output-window.c:356
-#: src/ui/gui/psppire-syntax-window.c:568 src/ui/gui/psppire-window.c:473
-#: src/ui/gui/psppire-window.c:652
+#: src/ui/gui/psppire-output-window.c:381
+#: src/ui/gui/psppire-syntax-window.c:559 src/ui/gui/psppire-window.c:472
+#: src/ui/gui/psppire-window.c:651
 msgid "Cancel"
 msgstr "Abbrechen"
 
-#: src/ui/gui/psppire-buttonbox.c:366
+#: src/ui/gui/psppire-buttonbox.c:362
 msgid "Close"
 msgstr "Schließen"
 
-#: src/ui/gui/psppire-buttonbox.c:373
+#: src/ui/gui/psppire-buttonbox.c:369
 #: src/ui/gui/psppire-import-assistant.c:939
 msgid "Reset"
 msgstr "Zurücksetzen"
 
-#: src/ui/gui/psppire-buttonbox.c:380
+#: src/ui/gui/psppire-buttonbox.c:376
 msgid "Help"
 msgstr "Hilfe"
 
-#: src/ui/gui/psppire-dictview.c:545 src/language/dictionary/split-file.c:82
+#: src/ui/gui/psppire-dictview.c:603 src/language/dictionary/split-file.c:82
 #: src/language/dictionary/sys-file-info.c:240
 #: src/language/dictionary/sys-file-info.c:440
 #: src/language/dictionary/sys-file-info.c:738
-#: src/language/stats/descriptives.c:1019
-#: src/language/data-io/data-parser.c:654
-#: src/language/data-io/data-parser.c:693 src/language/data-io/print.c:446
-#: src/ui/gui/psppire-var-sheet.c:1249
+#: src/language/stats/descriptives.c:1027
+#: src/language/data-io/data-parser.c:672
+#: src/language/data-io/data-parser.c:711 src/language/data-io/print.c:446
+#: src/ui/gui/psppire-var-sheet.c:1243
 msgid "Variable"
 msgstr "Variable"
 
-#: src/ui/gui/psppire-dictview.c:583
+#: src/ui/gui/psppire-dictview.c:640
 msgid "Prefer variable labels"
 msgstr "Variablenlabel verwenden"
 
-#: src/ui/gui/psppire-dictview.c:596
+#: src/ui/gui/psppire-dictview.c:654
+msgid "Default sort order"
+msgstr "Voreingestellte Sortierung"
+
+#: src/ui/gui/psppire-dictview.c:660
 msgid "Unsorted (dictionary order)"
 msgstr "Unsortiert (Codebuch)"
 
-#: src/ui/gui/psppire-dictview.c:602
+#: src/ui/gui/psppire-dictview.c:665
 msgid "Sort by name"
 msgstr "Sortieren nach Name"
 
-#: src/ui/gui/psppire-dictview.c:607
+#: src/ui/gui/psppire-dictview.c:670
 msgid "Sort by label"
 msgstr "Sortieren nach Label"
 
@@ -315,115 +319,115 @@ msgstr "Fehler beim Ã¶ffnen `%s' um dies als Systemdatei zu speichern: %s."
 msgid "An I/O error occurred writing CSV file `%s'."
 msgstr "Ein I/O Fehler ist beim Schreiben von CSV Datei `%s' aufgetreten."
 
-#: src/data/data-in.c:171
+#: src/data/data-in.c:175
 #, c-format
 msgid "Data is not valid as format %s: %s"
 msgstr "Daten sind nicht als Format %s gültig: %s"
 
-#: src/data/data-in.c:373 src/data/data-in.c:549
+#: src/data/data-in.c:377 src/data/data-in.c:553
 msgid "Field contents are not numeric."
 msgstr "Feldinhalte sind nicht numerisch."
 
-#: src/data/data-in.c:375 src/data/data-in.c:551
+#: src/data/data-in.c:379 src/data/data-in.c:555
 msgid "Number followed by garbage."
 msgstr "Zahl gefolgt von Müll."
 
-#: src/data/data-in.c:388
+#: src/data/data-in.c:392
 msgid "Invalid numeric syntax."
 msgstr "Ungültige numerische Syntax."
 
-#: src/data/data-in.c:396 src/data/data-in.c:567
+#: src/data/data-in.c:400 src/data/data-in.c:571
 msgid "Too-large number set to system-missing."
 msgstr "Zu große Zahl auf fehlend gesetzt."
 
-#: src/data/data-in.c:402 src/data/data-in.c:573
+#: src/data/data-in.c:406 src/data/data-in.c:577
 msgid "Too-small number set to zero."
 msgstr "Zu kleine Zahl auf Null gesetzt."
 
-#: src/data/data-in.c:422
+#: src/data/data-in.c:426
 msgid "All characters in field must be digits."
 msgstr "Alle Zeichen im Feld müssen Ziffern sein."
 
-#: src/data/data-in.c:441
+#: src/data/data-in.c:445
 msgid "Unrecognized character in field."
 msgstr "Unerkanntes Zeichen im Feld."
 
-#: src/data/data-in.c:462 src/data/data-in.c:725
+#: src/data/data-in.c:466 src/data/data-in.c:729
 msgid "Field must have even length."
 msgstr "Felder müssen gleiche Länge haben."
 
-#: src/data/data-in.c:464 src/data/data-in.c:728
+#: src/data/data-in.c:468 src/data/data-in.c:732
 msgid "Field must contain only hex digits."
 msgstr "Felder dürfen nur Hex-Zahlen enthalten."
 
-#: src/data/data-in.c:540
+#: src/data/data-in.c:544
 msgid "Invalid zoned decimal syntax."
 msgstr "Fehlerhaft aufgeteilte Syntax der Dezimalen."
 
-#: src/data/data-in.c:640 src/data/data-in.c:646
+#: src/data/data-in.c:644 src/data/data-in.c:650
 msgid "Invalid syntax for P field."
 msgstr "Ungültige Syntax für P Feld."
 
-#: src/data/data-in.c:764 src/data/data-in.c:810
+#: src/data/data-in.c:768 src/data/data-in.c:814
 msgid "Syntax error in date field."
 msgstr "Syntaxfehler in Datum-Feld."
 
-#: src/data/data-in.c:779
+#: src/data/data-in.c:783
 #, c-format
 msgid "Day (%ld) must be between 1 and 31."
 msgstr "Tag (%ld) muss zwischen 1 und 31 liegen."
 
-#: src/data/data-in.c:824
+#: src/data/data-in.c:828
 msgid "Delimiter expected between fields in date."
 msgstr "Trennzeichen zwischen Feldern in Datum-Feld erwartet."
 
-#: src/data/data-in.c:898
+#: src/data/data-in.c:902
 msgid "Unrecognized month format.  Months may be specified as Arabic or Roman numerals or as at least 3 letters of their English names."
 msgstr "Unbekanntes Monatsformat. Monate müssen mit arabischen oder romanischen Zahlen oder mindestens den ersten 3 Buchstaben ihrer englischen Namen bezeichnet werden."
 
-#: src/data/data-in.c:925
+#: src/data/data-in.c:929
 #, c-format
 msgid "Year (%ld) must be between 1582 and 19999."
 msgstr "Jahr (%ld) muss zwischen 1582 und 19999 liegen."
 
-#: src/data/data-in.c:936
+#: src/data/data-in.c:940
 #, c-format
 msgid "Trailing garbage `%.*s' following date."
 msgstr "Nach dem Datum folgt Müll `%.*s'."
 
-#: src/data/data-in.c:950
+#: src/data/data-in.c:954
 msgid "Julian day must have exactly three digits."
 msgstr "Julianischer Tag muss exakt drei Ziffern haben."
 
-#: src/data/data-in.c:952
+#: src/data/data-in.c:956
 #, c-format
 msgid "Julian day (%ld) must be between 1 and 366."
 msgstr "Julianischer Tag (%ld) muss zwischen 1 und 366 liegen."
 
-#: src/data/data-in.c:976
+#: src/data/data-in.c:980
 #, c-format
 msgid "Quarter (%ld) must be between 1 and 4."
 msgstr "Quartal (%ld) muss zwischen 1 und 4 liegen."
 
-#: src/data/data-in.c:997
+#: src/data/data-in.c:1001
 #, c-format
 msgid "Week (%ld) must be between 1 and 53."
 msgstr "Woche (%ld) muss zwischen 1 und 53 liegen."
 
-#: src/data/data-in.c:1009
+#: src/data/data-in.c:1013
 msgid "Delimiter expected between fields in time."
 msgstr "Trennzeichen zwischen Feldern in Zeit erwartet."
 
-#: src/data/data-in.c:1029
+#: src/data/data-in.c:1033
 #, c-format
 msgid "Minute (%ld) must be between 0 and 59."
 msgstr "Minute (%ld) muss zwischen 0 und 59 liegen."
 
-#: src/data/data-in.c:1067
+#: src/data/data-in.c:1071
 msgid "Unrecognized weekday name.  At least the first two letters of an English weekday name must be specified."
 msgstr "Wochentagsname nicht erkannt. Mindestens die ersten zwei Buchstaben einer englischen Wochentagsbezeichnung müssen angegeben sein."
 
-#: src/data/data-in.c:1197
+#: src/data/data-in.c:1201
 #, c-format
 msgid "`%c' expected in date field."
 msgstr "`%c' erwartet im Datum-Feld."
@@ -490,33 +494,33 @@ msgstr "Kann %s nicht als %s neu Ã¶ffnen."
 msgid "Not opening pipe file `%s' because %s option set."
 msgstr "Die Ausgabedatei (pipe) `%s' wurde nicht geöffnet, weil die Option %s gesetzt ist."
 
-#: src/data/gnumeric-reader.c:36 src/data/ods-reader.c:41
+#: src/data/gnumeric-reader.c:37 src/data/ods-reader.c:41
 #, c-format
 msgid "Support for %s files was not compiled into this installation of PSPP"
 msgstr "Unterstützung für %s Dateien ist nicht in dieser PSPP Installation enthalten."
 
-#: src/data/gnumeric-reader.c:507 src/data/ods-reader.c:532
+#: src/data/gnumeric-reader.c:520 src/data/ods-reader.c:544
 #, c-format
 msgid "Cannot convert the value in the spreadsheet cell %s to format (%s): %s"
 msgstr "Der Wert in der Tabellenzelle %s kann nicht ins Format konvertiert werden (%s): %s"
 
-#: src/data/gnumeric-reader.c:530 src/data/ods-reader.c:587
+#: src/data/gnumeric-reader.c:543 src/data/ods-reader.c:599
 #, c-format
 msgid "There was a problem whilst reading the %s file `%s' (near line %d): `%s'"
 msgstr "Beim Lesen der %s Datei `%s' (ungefähr bei Zeile %d): `%s'"
 
-#: src/data/gnumeric-reader.c:625
+#: src/data/gnumeric-reader.c:638
 #, c-format
 msgid "The gnumeric file `%s' is encoded as %s instead of the usual UTF-8 encoding. Any non-ascii characters will be incorrectly imported."
 msgstr "Die Gnumeric-Datei `%s' ist mit %s kodiert, statt mit der Ã¼blichen UTF-8 Kodierung. Alle Nicht-ASCII-Zeichen werden fehlerhaft improtiert."
 
-#: src/data/gnumeric-reader.c:669 src/data/ods-reader.c:718
+#: src/data/gnumeric-reader.c:682 src/data/ods-reader.c:730
 #, c-format
 msgid "Invalid cell range `%s'"
 msgstr "Ungültiger Zellbereich `%s'"
 
-#: src/data/gnumeric-reader.c:841 src/data/ods-reader.c:746
-#: src/data/ods-reader.c:879
+#: src/data/gnumeric-reader.c:854 src/data/ods-reader.c:758
+#: src/data/ods-reader.c:891
 #, c-format
 msgid "Selected sheet or range of spreadsheet `%s' is empty."
 msgstr "Ausgewähltes Blatt oder Bereich der Tabelle `%s'  ist leer."
@@ -590,7 +594,7 @@ msgstr "Entferne %s: %s."
 msgid "%s is not a valid name for a multiple response set.  Multiple response set names must begin with `$'."
 msgstr "%s ist kein gültiger Name für ein Set von Mehrfachantworten.  Die Namen von Mehrfachantwort-Sets müssen mit `$' beginnen."
 
-#: src/data/ods-reader.c:639
+#: src/data/ods-reader.c:651
 #, c-format
 msgid "Cannot open %s as a OpenDocument file: %s"
 msgstr "Kann %s nicht als OpenDocument Datei Ã¶ffnen: %s"
@@ -606,7 +610,7 @@ msgstr "SPSS/PC+ Systemdatei"
 msgid "Error opening `%s' for reading as an SPSS/PC+ system file: %s."
 msgstr "Beim Ã–ffnen von `%s'  als SPSS/PC+ System-Datei ist ein Fehler aufgetreten: %s."
 
-#: src/data/pc+-file-reader.c:224 src/data/sys-file-reader.c:3490
+#: src/data/pc+-file-reader.c:224 src/data/sys-file-reader.c:3492
 #, c-format
 msgid "%s: stat failed (%s)."
 msgstr "%s: Stat ist fehlgeschlagen (%s)."
@@ -626,12 +630,12 @@ msgstr "Der Verzeichniseintrag ist für einen Eintrag der Länge %u Byte beim Of
 msgid "Directory fields have unexpected values (%u,%u)."
 msgstr "Die Verzeichnisfelder haben unerwartete Werte (%u,%u)."
 
-#: src/data/pc+-file-reader.c:372 src/data/sys-file-reader.c:680
+#: src/data/pc+-file-reader.c:372 src/data/sys-file-reader.c:679
 #, c-format
 msgid "Variable %zu"
 msgstr "Variable %zu"
 
-#: src/data/pc+-file-reader.c:380 src/data/sys-file-reader.c:688
+#: src/data/pc+-file-reader.c:380 src/data/sys-file-reader.c:687
 #, c-format
 msgid "Variable %zu Label"
 msgstr "Beschriftung der Variable %zu"
@@ -641,19 +645,19 @@ msgstr "Beschriftung der Variable %zu"
 msgid "Variable %zu Value Label %zu"
 msgstr "Variable %zu Wertelabel %zu"
 
-#: src/data/pc+-file-reader.c:388 src/data/sys-file-reader.c:698
+#: src/data/pc+-file-reader.c:388 src/data/sys-file-reader.c:697
 msgid "Creation Date"
 msgstr "Erstellungsdatum"
 
-#: src/data/pc+-file-reader.c:389 src/data/sys-file-reader.c:699
+#: src/data/pc+-file-reader.c:389 src/data/sys-file-reader.c:698
 msgid "Creation Time"
 msgstr "Erstellungszeit"
 
-#: src/data/pc+-file-reader.c:390 src/data/sys-file-reader.c:700
+#: src/data/pc+-file-reader.c:390 src/data/sys-file-reader.c:699
 msgid "Product"
 msgstr "Produkt"
 
-#: src/data/pc+-file-reader.c:391 src/data/sys-file-reader.c:701
+#: src/data/pc+-file-reader.c:391 src/data/sys-file-reader.c:700
 msgid "File Label"
 msgstr "Dateibezeichnung"
 
@@ -662,7 +666,7 @@ msgstr "Dateibezeichnung"
 msgid "Using default encoding %s to read this SPSS/PC+ system file.  For best results, specify an encoding explicitly.  Use SYSFILE INFO with ENCODING=\"DETECT\" to analyze the possible encodings."
 msgstr "Beim Einlesen der SPSS/PC+ Systemdatei wird die voreingestellte Zeichensatzkodierung %s verwendet. Um Ihre Ergebnisse noch weiter zu verbessern, sollten Sie einen Zeichensatz explizit festlegen.  Verwenden Sie den Befehl SYSFILE INFO mit dem Argument ENCODING=\"DETECT\", um die zur Verfügung stehenden Zeichensätze in Erfahren zu bringen."
 
-#: src/data/pc+-file-reader.c:483 src/data/sys-file-reader.c:914
+#: src/data/pc+-file-reader.c:483 src/data/sys-file-reader.c:913
 #, c-format
 msgid "Error closing system file `%s': %s."
 msgstr "Fehler beim schließen der Systemdatei `%s': %s."
@@ -746,12 +750,12 @@ msgstr "Die Variable %u hat den ungültigen Typ %<PRIu8>."
 msgid "Invalid weight index %u."
 msgstr "Ungültiger Gewichtungsindex %u."
 
-#: src/data/pc+-file-reader.c:857 src/data/sys-file-reader.c:1438
+#: src/data/pc+-file-reader.c:857 src/data/sys-file-reader.c:1437
 #, c-format
 msgid "Invalid variable name `%s'."
 msgstr "Ungültiger Variablenname `%s'."
 
-#: src/data/pc+-file-reader.c:865 src/data/sys-file-reader.c:1453
+#: src/data/pc+-file-reader.c:865 src/data/sys-file-reader.c:1452
 #, c-format
 msgid "Renaming variable with duplicate name `%s' to `%s'."
 msgstr "Variable mit doppeltem Namen wird von `%s' zu `%s' umbenannt."
@@ -761,7 +765,7 @@ msgstr "Variable mit doppeltem Namen wird von `%s' zu `%s' umbenannt."
 msgid "Cannot weight by string variable `%s'."
 msgstr "Gewichtung mit der Stringvariablen `%s' ist nicht möglich."
 
-#: src/data/pc+-file-reader.c:975 src/data/sys-file-reader.c:2713
+#: src/data/pc+-file-reader.c:975 src/data/sys-file-reader.c:2712
 msgid "File ends in partial case."
 msgstr "Datei endet in einem Fall."
 
@@ -770,36 +774,36 @@ msgstr "Datei endet in einem Fall."
 msgid "Case beginning at offset 0x%08x extends past end of data record at offset 0x%08x."
 msgstr "Der Fall, der am Offset 0x%08x beginnt, Ã¼berschreitet das Ende des Dateneintrags am Offset 0x%08x."
 
-#: src/data/pc+-file-reader.c:1000 src/data/sys-file-reader.c:2721
+#: src/data/pc+-file-reader.c:1000 src/data/sys-file-reader.c:2720
 #, c-format
 msgid "Error reading case from file %s."
 msgstr "Fehler beim lesen eines Falls aus Datei %s."
 
-#: src/data/pc+-file-reader.c:1116 src/data/sys-file-reader.c:2884
+#: src/data/pc+-file-reader.c:1116 src/data/sys-file-reader.c:2883
 #, c-format
 msgid "Possible compressed data corruption: string contains compressed integer (opcode %d)."
 msgstr "Komprimierte Daten sind möglicherweise nicht lesbar: Zeichenfolge enthält eine Integerzahl (opcode %d)."
 
-#: src/data/pc+-file-reader.c:1160 src/data/sys-file-reader.c:3179
+#: src/data/pc+-file-reader.c:1160 src/data/sys-file-reader.c:3181
 #, c-format
 msgid "`%s' near offset 0x%llx: "
 msgstr "`%s' nahe Offset 0x%llx: "
 
-#: src/data/pc+-file-reader.c:1163 src/data/sys-file-reader.c:3182
+#: src/data/pc+-file-reader.c:1163 src/data/sys-file-reader.c:3184
 #, c-format
 msgid "`%s': "
 msgstr "`%s': "
 
-#: src/data/pc+-file-reader.c:1219 src/data/sys-file-reader.c:3237
+#: src/data/pc+-file-reader.c:1219 src/data/sys-file-reader.c:3239
 #, c-format
 msgid "System error: %s."
 msgstr "System Fehler: %s."
 
-#: src/data/pc+-file-reader.c:1224 src/data/sys-file-reader.c:3242
+#: src/data/pc+-file-reader.c:1224 src/data/sys-file-reader.c:3244
 msgid "Unexpected end of file."
 msgstr "Unerwartetes Dateiende."
 
-#: src/data/pc+-file-reader.c:1309 src/data/sys-file-reader.c:3467
+#: src/data/pc+-file-reader.c:1309 src/data/sys-file-reader.c:3469
 #, c-format
 msgid "%s: seek failed (%s)."
 msgstr "%s: Suche ist fehlgeschlagen (%s)."
@@ -922,7 +926,7 @@ msgstr "Ungültige Variablenbreite %d."
 msgid "Invalid variable name `%s' in position %d."
 msgstr "Ungültiger Variablenname `%s' an Position %d. "
 
-#: src/data/por-file-reader.c:734 src/data/sys-file-reader.c:1445
+#: src/data/por-file-reader.c:734 src/data/sys-file-reader.c:1444
 #, c-format
 msgid "Bad width %d for variable %s."
 msgstr "Falsche Breite %d für Variable %s."
@@ -988,13 +992,13 @@ msgstr "Postgres Server hat die Version %s. Das Lesen von Versionen kleiner als
 msgid "Connection is unencrypted, but unencrypted connections have not been permitted."
 msgstr "Die Verbindung  ist unverschlüselt, aber es liegt keine Berechtigung für eine unverschlüsselte Verbindungen vor."
 
-#: src/data/psql-reader.c:319 src/data/psql-reader.c:344
-#: src/data/psql-reader.c:354
+#: src/data/psql-reader.c:324 src/data/psql-reader.c:349
+#: src/data/psql-reader.c:359
 #, c-format
 msgid "Error from psql source: %s."
 msgstr "Fehler aus psql Quelle: %s."
 
-#: src/data/psql-reader.c:449
+#: src/data/psql-reader.c:454
 #, c-format
 msgid "Unsupported OID %d.  SYSMIS values will be inserted."
 msgstr "Nicht unterstützter Object Identifier (OID) %d. Stattdessen wird SYSMIS eingefügt."
@@ -1015,477 +1019,477 @@ msgstr "%s: Benutzerdefinierte Währungsdefinition `%s' enthält nicht genau dre
 
 #. TRANSLATORS: this fragment will be interpolated into
 #. messages in fh_lock() that identify types of files.
-#: src/data/sys-file-reader.c:411 src/data/sys-file-writer.c:245
+#: src/data/sys-file-reader.c:410 src/data/sys-file-writer.c:245
 msgid "system file"
 msgstr "Systemdatei"
 
-#: src/data/sys-file-reader.c:418
+#: src/data/sys-file-reader.c:417
 #, c-format
 msgid "Error opening `%s' for reading as a system file: %s."
 msgstr "Beim Ã–ffnen von `%s'  als System-Datei ist ein Fehler aufgetreten: %s."
 
-#: src/data/sys-file-reader.c:495
+#: src/data/sys-file-reader.c:494
 msgid "Misplaced type 4 record."
 msgstr "Falsch gesetzter Typ 4 Eintrag."
 
-#: src/data/sys-file-reader.c:501
+#: src/data/sys-file-reader.c:500
 msgid "Duplicate type 6 (document) record."
 msgstr "Doppelter Typ 6 (Dokument) Eintrag."
 
-#: src/data/sys-file-reader.c:514 src/data/sys-file-reader.c:1363
+#: src/data/sys-file-reader.c:513 src/data/sys-file-reader.c:1362
 #, c-format
 msgid "Unrecognized record type 7, subtype %d.  For help, please send this file to %s and mention that you were using %s."
 msgstr "Eintrag vom Typ 7, Untertyp %d wurde nicht erkannt. Bitte schicken Sie eine Kopie dieser Datei an %s und geben Sie an, dass Sie %s verwendet haben."
 
-#: src/data/sys-file-reader.c:534
+#: src/data/sys-file-reader.c:533
 #, c-format
 msgid "Record type 7, subtype %d found here has the same type as the record found near offset 0x%llx.  For help, please send this file to %s and mention that you were using %s."
 msgstr "Der hier gefundene Eintrag vom Typ 7, Untertyp %d ist vom selben Type wie der Eintrag der in der Nähe des Offsets 0x%llx.  Bitte senden Sie eine Kopie dieser Datei an %s und geben Sie an, dass Sie %s verwendet haben."
 
-#: src/data/sys-file-reader.c:546
+#: src/data/sys-file-reader.c:545
 #, c-format
 msgid "Unrecognized record type %d."
 msgstr "Typ des Eintrags %d nicht erkannt."
 
-#: src/data/sys-file-reader.c:696
+#: src/data/sys-file-reader.c:695
 #, c-format
 msgid "Value Label %zu"
 msgstr "Wertelabel %zu"
 
-#: src/data/sys-file-reader.c:705
+#: src/data/sys-file-reader.c:704
 msgid "Extra Product Info"
 msgstr "Zusätzliche Produktinformation"
 
-#: src/data/sys-file-reader.c:718
+#: src/data/sys-file-reader.c:717
 #, c-format
 msgid "Document Line %zu"
 msgstr "Zeile imDokument %zu"
 
-#: src/data/sys-file-reader.c:726
+#: src/data/sys-file-reader.c:725
 #, c-format
 msgid "MRSET %zu"
 msgstr "MRSET %zu"
 
-#: src/data/sys-file-reader.c:728
+#: src/data/sys-file-reader.c:727
 #, c-format
 msgid "MRSET %zu Label"
 msgstr "MRSET %zu Label"
 
-#: src/data/sys-file-reader.c:733
+#: src/data/sys-file-reader.c:732
 #, c-format
 msgid "MRSET %zu Counted Value"
 msgstr "MRSET %zu Anzahl"
 
-#: src/data/sys-file-reader.c:772
+#: src/data/sys-file-reader.c:771
 #, c-format
 msgid "This system file does not indicate its own character encoding.  Using default encoding %s.  For best results, specify an encoding explicitly.  Use SYSFILE INFO with ENCODING=\"DETECT\" to analyze the possible encodings."
 msgstr "Diese Systemdatei enthält keine Angaben zur Kodierung des Zeichensatzes.  Es wird der voreingestellte Zeichensatz %s verwendet.  Um Ihre Ergebnisse noch weiter zu verbessern, sollten Sie einen Zeichensatz explizit festlegen.  Verwenden Sie den Befehl SYSFILE INFO mit dem Argument ENCODING=\"DETECT\", um die zur Verfügung stehenden Zeichensätze in Erfahren zu bringen."
 
-#: src/data/sys-file-reader.c:826
+#: src/data/sys-file-reader.c:825
 #, c-format
 msgid "Ignoring string variable `%s' set as weighting variable."
 msgstr "Die Stringvariable `%s' wird nicht als Gewichtungsvariable Ã¼bernommen."
 
-#: src/data/sys-file-reader.c:869
+#: src/data/sys-file-reader.c:868
 #, c-format
 msgid "File header claims %d variable positions but %zu were read from file."
 msgstr "Der Dateikopf legt %d Variablenpositionen fest, aber es wurden %zu Positionen ausgelesen."
 
-#: src/data/sys-file-reader.c:980 src/data/sys-file-reader.c:994
+#: src/data/sys-file-reader.c:979 src/data/sys-file-reader.c:993
 msgid "This is not an SPSS system file."
 msgstr "Dies ist keine SPSS System Datei."
 
-#: src/data/sys-file-reader.c:1049
+#: src/data/sys-file-reader.c:1048
 msgid "Compression bias is not the usual value of 100, or system file uses unrecognized floating-point format."
 msgstr "Der compression bias hat nicht den Ã¼blichen Wert von 100 oder die Systemdatei verwendet ein nicht erkanntes Format für Fließkommazahlen."
 
-#: src/data/sys-file-reader.c:1124
+#: src/data/sys-file-reader.c:1123
 msgid "Variable label indicator field is not 0 or 1."
 msgstr "Variablenindikator-Feld ist weder 0 noch 1."
 
-#: src/data/sys-file-reader.c:1137
+#: src/data/sys-file-reader.c:1136
 msgid "Numeric missing value indicator field is not -3, -2, 0, 1, 2, or 3."
 msgstr "Numerisches Feld für die Anzeige fehlender Werte ist nicht -3, -2, 0, 1, 2, oder 3."
 
-#: src/data/sys-file-reader.c:1147
+#: src/data/sys-file-reader.c:1146
 msgid "String missing value indicator field is not 0, 1, 2, or 3."
 msgstr "Wert für fehlende Daten ist nicht 0, 1, 2, oder 3."
 
-#: src/data/sys-file-reader.c:1174
+#: src/data/sys-file-reader.c:1173
 #, c-format
 msgid "Invalid number of labels %u."
 msgstr "Ungültige Anzahl von Beschriftungen %u."
 
-#: src/data/sys-file-reader.c:1207
+#: src/data/sys-file-reader.c:1206
 msgid "Variable index record (type 4) does not immediately follow value label record (type 3) as it should."
 msgstr "Der Eintrag des Variablenindex (Typ 4) folgt nicht direkt auf den Eintrag des Wertelabels (Typ 3) wie erforderlich."
 
-#: src/data/sys-file-reader.c:1219
+#: src/data/sys-file-reader.c:1218
 #, c-format
 msgid "Number of variables associated with a value label (%u) is not between 1 and the number of variables (%zu)."
 msgstr "Die Anzahl der Variablen, die mit einem Variablenlabel assoziiert wurden (%u) liegt nicht zwischen 1 und der Anzahl der Variablen (%zu)."
 
-#: src/data/sys-file-reader.c:1248
+#: src/data/sys-file-reader.c:1247
 #, c-format
 msgid "Number of document lines (%d) must be greater than 0 and less than %d."
 msgstr "Anzahl der Zeilen im Dokument (%d) muss größer als 0 und kleiner als %d sein."
 
-#: src/data/sys-file-reader.c:1337
+#: src/data/sys-file-reader.c:1336
 #, c-format
 msgid "Record type 7, subtype %d has bad size %u (expected %d)."
 msgstr "Eintrag vom Typ 7, Untertyp %d hat die falsche Größe %u (erwarteter Wert %d)."
 
-#: src/data/sys-file-reader.c:1341
+#: src/data/sys-file-reader.c:1340
 #, c-format
 msgid "Record type 7, subtype %d has bad count %u (expected %d)."
 msgstr "Eintrag vom Typ 7, Untertyp %d hat die falsche Anzahl %u (erwarteter Wert %d)."
 
-#: src/data/sys-file-reader.c:1525
+#: src/data/sys-file-reader.c:1524
 msgid "Missing string continuation record."
 msgstr "Fehlender Eintrag zur Fortführung der Zeichenfolge."
 
-#: src/data/sys-file-reader.c:1571
+#: src/data/sys-file-reader.c:1570
 #, c-format
 msgid "Variable %s with width %d has invalid print format 0x%x."
 msgstr "Variable %s mit Breite %d hat ein ungültiges Ausgabeformat 0x%x."
 
-#: src/data/sys-file-reader.c:1575
+#: src/data/sys-file-reader.c:1574
 #, c-format
 msgid "Variable %s with width %d has invalid write format 0x%x."
 msgstr "Variable %s mit Breite %d hat ein ungültiges Schreibformat 0x%x."
 
-#: src/data/sys-file-reader.c:1580
+#: src/data/sys-file-reader.c:1579
 msgid "Suppressing further invalid format warnings."
 msgstr "Weitere Warnungen zu ungültigen Formaten werden unterdrückt."
 
-#: src/data/sys-file-reader.c:1634
+#: src/data/sys-file-reader.c:1633
 #, c-format
 msgid "Floating-point representation indicated by system file (%d) differs from expected (%d)."
 msgstr "Die in der Systemdatei (%d) angegebene Fließkommadarstellung weicht vom erwarteten Format (%d) ab."
 
-#: src/data/sys-file-reader.c:1650
+#: src/data/sys-file-reader.c:1649
 #, c-format
 msgid "Integer format indicated by system file (%d) differs from expected (%d)."
 msgstr "Das in der Systemdatei (%d) angegebene Integerformat weicht vom erwarteten Format (%d) ab."
 
-#: src/data/sys-file-reader.c:1668 src/data/sys-file-reader.c:1674
+#: src/data/sys-file-reader.c:1667 src/data/sys-file-reader.c:1673
 #, c-format
 msgid "File specifies unexpected value %g (%a) as %s, instead of %g (%a)."
 msgstr "Die Datei legt unerwarteter Weise den Wert %g (%a) als %s fest anstatt %g (%a)."
 
-#: src/data/sys-file-reader.c:1683
+#: src/data/sys-file-reader.c:1682
 #, c-format
 msgid "File specifies unexpected value %g (%a) as %s, instead of %g (%a) or %g (%a)."
 msgstr "Die Datei legt unerwarteter Weise den Wert %g (%a) als %s fest anstatt %g (%a) oder %g (%a)."
 
-#: src/data/sys-file-reader.c:1735 src/data/sys-file-reader.c:1754
+#: src/data/sys-file-reader.c:1734 src/data/sys-file-reader.c:1753
 #, c-format
 msgid "Missing space following `%c' at offset %zu in MRSETS record."
 msgstr "Fehlendes Leezeichen nach `%c' beim Offset %zu in MRSETS Eintrag."
 
-#: src/data/sys-file-reader.c:1764
+#: src/data/sys-file-reader.c:1763
 #, c-format
 msgid "Unexpected label source value following `E' at offset %zu in MRSETS record."
 msgstr "Unerwarteter Wert für LABELSOURCE nach `E' beim Offset %zu in MRSETS Eintrag."
 
-#: src/data/sys-file-reader.c:1771
+#: src/data/sys-file-reader.c:1770
 #, c-format
 msgid "Missing `C', `D', or `E' at offset %zu in MRSETS record."
 msgstr "Fehlendes `C', `D', or `E' beim Offset %zu in MRSETS Eintrag."
 
-#: src/data/sys-file-reader.c:1798
+#: src/data/sys-file-reader.c:1797
 #, c-format
 msgid "Missing new-line parsing variable names at offset %zu in MRSETS record."
 msgstr "Fehlender Zeilenumbruch beim Einlesen der Variablennamen beim Offset %zu in MRSETS Eintrag."
 
-#: src/data/sys-file-reader.c:1833
+#: src/data/sys-file-reader.c:1832
 #, c-format
 msgid "Multiple response set name `%s' does not begin with `$'."
 msgstr "Name des Mehrfachantwort-Sets `%s' beginnt nicht mit `$'."
 
-#: src/data/sys-file-reader.c:1867
+#: src/data/sys-file-reader.c:1866
 #, c-format
 msgid "MRSET %s contains duplicate variable name %s."
 msgstr "MRSET %s enthält doppelten Variablennamen %s."
 
-#: src/data/sys-file-reader.c:1882
+#: src/data/sys-file-reader.c:1881
 #, c-format
 msgid "MRSET %s contains both string and numeric variables."
 msgstr "MRSET %s enthält sowohl Stringvariablen als auch numerische Variablen."
 
-#: src/data/sys-file-reader.c:1894
+#: src/data/sys-file-reader.c:1893
 #, c-format
 msgid "MRSET %s has no variables."
 msgstr "MRSET %s hat keine Variablen."
 
-#: src/data/sys-file-reader.c:1896
+#: src/data/sys-file-reader.c:1895
 #, c-format
 msgid "MRSET %s has only one variable."
 msgstr "MRSET %s hat nur eine Variable."
 
-#: src/data/sys-file-reader.c:1940
+#: src/data/sys-file-reader.c:1939
 #, c-format
 msgid "Extension 11 has bad count %u (for %zu variables)."
 msgstr "Erweiterung 11 hat die falsche Anzahl %u (für %zu Variablen)."
 
-#: src/data/sys-file-reader.c:1973
+#: src/data/sys-file-reader.c:1972
 #, c-format
 msgid "Invalid variable display parameters for variable %zu (%s).  Default parameters substituted."
 msgstr "Ungültige Parameter der Variablenanzeige für Variable %zu (%s). Voreingestellte Parameter werden eingesetzt."
 
-#: src/data/sys-file-reader.c:2068
+#: src/data/sys-file-reader.c:2067
 #, c-format
 msgid "Long variable mapping from %s to invalid variable name `%s'."
 msgstr "Zuordnung eines langen Variablennamens von %s zum ungültigen Namen `%s'."
 
-#: src/data/sys-file-reader.c:2079
+#: src/data/sys-file-reader.c:2078
 #, c-format
 msgid "Duplicate long variable name `%s'."
 msgstr "Doppelter langer Variablenname `%s'."
 
-#: src/data/sys-file-reader.c:2112
+#: src/data/sys-file-reader.c:2111
 #, c-format
 msgid "%s listed as string of invalid length %s in very long string record."
 msgstr "%s wird als String mit ungültiger Länge %s in einem sehr langen Stringeintrag verzeichnet."
 
-#: src/data/sys-file-reader.c:2123
+#: src/data/sys-file-reader.c:2122
 #, c-format
 msgid "%s listed in very long string record with width %s, which requires only one segment."
 msgstr "%s ist in einem sehr langen Stringeintrag mit Breite %s verzeichnet, welcher nur ein Segment benötigt."
 
-#: src/data/sys-file-reader.c:2131
+#: src/data/sys-file-reader.c:2130
 #, c-format
 msgid "Very long string %s overflows dictionary."
 msgstr "Sehr lange Zeichenfolge %s Ã¼bersteigt das Codebuch."
 
-#: src/data/sys-file-reader.c:2149
+#: src/data/sys-file-reader.c:2148
 #, c-format
 msgid "Very long string with width %ld has segment %d of width %d (expected %d)."
 msgstr "Sehr lange Zeichenfolge mit Breite %ld hat das Segment %d der Breite %d (erwartet wurde %d)."
 
-#: src/data/sys-file-reader.c:2192
+#: src/data/sys-file-reader.c:2191
 #, c-format
 msgid "Variables associated with value label are not all of identical type.  Variable %s is %s, but variable %s is %s."
 msgstr "Die mit dem Wertelabel verbundenen Variablen haben nicht alle den gleichen Typ.  Die Variable %s ist %s, aber die Variable %s ist %s."
 
-#: src/data/sys-file-reader.c:2212
+#: src/data/sys-file-reader.c:2211
 #, c-format
 msgid "Value labels may not be added to long string variables (e.g. %s) using records types 3 and 4."
 msgstr "Wertelabels dürfen nicht zu langen Stringvariablen hinzugefügt werden (z.B. %s), wenn Einträge des Typs 3 und 4 verwendet werden."
 
-#: src/data/sys-file-reader.c:2233
+#: src/data/sys-file-reader.c:2232
 #, c-format
 msgid "Duplicate value label for %g on %s."
 msgstr "Doppelte Wertebeschriftung für %g in %s."
 
-#: src/data/sys-file-reader.c:2237 src/data/sys-file-reader.c:2550
+#: src/data/sys-file-reader.c:2236 src/data/sys-file-reader.c:2549
 #, c-format
 msgid "Duplicate value label for `%.*s' on %s."
 msgstr "Doppelte Wertebeschriftung für `%.*s'  in %s."
 
-#: src/data/sys-file-reader.c:2264
+#: src/data/sys-file-reader.c:2263
 #, c-format
 msgid "Variable index %d not in valid range 1...%zu."
 msgstr "Variablenindex %d liegt nicht im gültigen Bereich 1...%zu."
 
-#: src/data/sys-file-reader.c:2273
+#: src/data/sys-file-reader.c:2272
 #, c-format
 msgid "Variable index %d refers to long string continuation."
 msgstr "Der Variablenindex %d verweist auf die Forsetzung einer langen Zeichenfolge."
 
-#: src/data/sys-file-reader.c:2309
+#: src/data/sys-file-reader.c:2308
 #, c-format
 msgid "Error parsing attribute value %s[%d]."
 msgstr "Fehler beim bearbeiten des Attribut-Wertes %s[%d]."
 
-#: src/data/sys-file-reader.c:2323
+#: src/data/sys-file-reader.c:2322
 #, c-format
 msgid "Attribute value %s[%d] is not quoted: %s."
 msgstr "Der Wert des Attributs %s[%d] wurde nicht in Anführungszeichen gesetzt: %s."
 
-#: src/data/sys-file-reader.c:2413
+#: src/data/sys-file-reader.c:2412
 #, c-format
 msgid "Invalid role for variable %s."
 msgstr "Ungültige Rolle für Variable `%s'."
 
-#: src/data/sys-file-reader.c:2422
+#: src/data/sys-file-reader.c:2421
 #, c-format
 msgid "%zu other variables had invalid roles."
 msgstr "%zu weitere Variablen hatten ungültige Rollen."
 
-#: src/data/sys-file-reader.c:2435
+#: src/data/sys-file-reader.c:2434
 #, c-format
 msgid "Extension record subtype %d ends unexpectedly."
 msgstr "Erweiterungseintrag des Untertyps %d endet unerwartet."
 
-#: src/data/sys-file-reader.c:2480
+#: src/data/sys-file-reader.c:2479
 #, c-format
 msgid "Ignoring long string value label record for unknown variable %s."
 msgstr "Langer String im Eintrag der Wertebezeichnung für die Variable %s wird ignoriert."
 
-#: src/data/sys-file-reader.c:2485
+#: src/data/sys-file-reader.c:2484
 #, c-format
 msgid "Ignoring long string value label record for numeric variable %s."
 msgstr "Langer String im Eintrag der Wertebezeichnung für die numerische Variable %s wird ignoriert."
 
-#: src/data/sys-file-reader.c:2492
+#: src/data/sys-file-reader.c:2491
 #, c-format
 msgid "Ignoring long string value label record for variable %s because the record's width (%d) does not match the variable's width (%d)."
 msgstr "Langer String im Eintrag der Wertebezeichnung für Variable %s wird ignoriert, weil die Breite des Eintrags (%d) nicht mit der Breite der Variable (%d) Ã¼bereinstimmt."
 
-#: src/data/sys-file-reader.c:2523
+#: src/data/sys-file-reader.c:2522
 #, c-format
 msgid "Ignoring long string value label %zu for variable %s, with width %d, that has bad value width %zu."
 msgstr "Langer String der Wertebezeichnung %zu für die Variable %s mit Breite %d hat die fehlerhafte Breite %zu und wird ignoriert."
 
-#: src/data/sys-file-reader.c:2596
+#: src/data/sys-file-reader.c:2595
 #, c-format
 msgid "Long string missing values record says variable %s has %d missing values, but only 1 to 3 missing values are allowed."
 msgstr "Langer String im Eintrag der fehlenden Werte besagt, dass die Variable %s %d fehlende Werte hat, es sind aber nur zwischen 1 und 3 fehlende Werte erlaubt."
 
-#: src/data/sys-file-reader.c:2606
+#: src/data/sys-file-reader.c:2605
 #, c-format
 msgid "Ignoring long string missing value record for unknown variable %s."
 msgstr "Langer String im Eintrag der fehlenden Werte für die unbekannte Variable %s wird ignoriert."
 
-#: src/data/sys-file-reader.c:2611
+#: src/data/sys-file-reader.c:2610
 #, c-format
 msgid "Ignoring long string missing value record for numeric variable %s."
 msgstr "Langer String im Eintrag der fehlenden Werte für die numerische Variable %s wird ignoriert."
 
-#: src/data/sys-file-reader.c:2636
+#: src/data/sys-file-reader.c:2635
 #, c-format
 msgid "Ignoring long string missing value %zu for variable %s, with width %d, that has bad value width %zu."
 msgstr "Langer String des fehlenden Wertes %zu für die Variable %s mit Breite %d hat die fehlerhafte Breite %zu und wird ignoriert."
 
-#: src/data/sys-file-reader.c:2691
+#: src/data/sys-file-reader.c:2690
 msgid "File ends in partial string value."
 msgstr "Datei endet innerhalb eines unvollständigen Falls."
 
-#: src/data/sys-file-reader.c:2830
+#: src/data/sys-file-reader.c:2829
 msgid "Possible compressed data corruption: compressed spaces appear in numeric field."
 msgstr "Komprimierte Daten sind möglicherweise nicht lesbar: kompriemierte Leerzeichen erscheinen in einem numerischen Feld."
 
-#: src/data/sys-file-reader.c:2981
+#: src/data/sys-file-reader.c:2980
 #, c-format
 msgid "Suppressed %d additional related warnings."
 msgstr "Weitere %d Warnungen, die damit in Verbindung stehen, werden unterdrückt."
 
-#: src/data/sys-file-reader.c:3027 src/data/sys-file-reader.c:3044
+#: src/data/sys-file-reader.c:3026 src/data/sys-file-reader.c:3043
 #, c-format
 msgid "Dictionary record refers to unknown variable %s."
 msgstr "Eintrag im Codebuch bezieht sich auf die unbekannte Variable %s."
 
-#: src/data/sys-file-reader.c:3106
+#: src/data/sys-file-reader.c:3105
 #, c-format
 msgid "Expecting digit at offset %zu in MRSETS record."
 msgstr "Beim Offset %zu im MRSETS Eintrag wurde eine Ziffer erwartet."
 
-#: src/data/sys-file-reader.c:3114
+#: src/data/sys-file-reader.c:3113
 #, c-format
 msgid "Expecting space at offset %zu in MRSETS record."
 msgstr "Beim Offset %zu im MRSETS Eintrag wurde ein Leerzeichen erwartet."
 
-#: src/data/sys-file-reader.c:3122
+#: src/data/sys-file-reader.c:3121
 #, c-format
 msgid "%zu-byte string starting at offset %zu exceeds record length %zu."
 msgstr "Die %zu-byte lange Zeichenfolge, die beim Offset %zu  beginnt, Ã¼berschreitet die Länge %zu."
 
-#: src/data/sys-file-reader.c:3132
+#: src/data/sys-file-reader.c:3131
 #, c-format
 msgid "Expecting space at offset %zu following %zu-byte string."
 msgstr "Beim Offset %zu nach der %zu-byte langen Zeichenfolge wurde ein Leerzeichen erwartet."
 
-#: src/data/sys-file-reader.c:3425
+#: src/data/sys-file-reader.c:3427
 #, c-format
 msgid "Wrong ZLIB data header offset %#llx (expected %#llx)."
 msgstr "Fehlerhafter Offset %#llx (erwartet wurde %#llx) im Kopf der ZLIB-Daten."
 
-#: src/data/sys-file-reader.c:3433
+#: src/data/sys-file-reader.c:3435
 #, c-format
 msgid "Impossible ZLIB trailer offset 0x%llx."
 msgstr "Offset 0x%llx im Nachspann der ZLIB-Daten ist nicht möglich."
 
-#: src/data/sys-file-reader.c:3440
+#: src/data/sys-file-reader.c:3442
 #, c-format
 msgid "Invalid ZLIB trailer length %lld."
 msgstr "Länge %lld des Nachspanns der ZLIB-Daten ist ungültig."
 
-#: src/data/sys-file-reader.c:3504
+#: src/data/sys-file-reader.c:3506
 #, c-format
 msgid "End of ZLIB trailer (0x%llx) is not file size (0x%llx)."
 msgstr "Das Ende des Nachspanns der ZLIB-Daten (0x%llx) stimmt nicht mit der Dateigröße (0x%llx) Ã¼berein."
 
-#: src/data/sys-file-reader.c:3514
+#: src/data/sys-file-reader.c:3516
 #, c-format
 msgid "ZLIB trailer bias (%lld) differs from file header bias (%.2f)."
 msgstr "Der Bias im Nachspann der ZLIB-Daten (%lld) unterscheidet sich vom Bias im Kopf der Datei (%.2f)."
 
-#: src/data/sys-file-reader.c:3524
+#: src/data/sys-file-reader.c:3526
 #, c-format
 msgid "ZLIB trailer \"zero\" field has nonzero value %lld."
 msgstr "Das Feld \"zero\" im Nachspann der ZLIB-Daten hat den von Null verschiedenen Wert %lld."
 
-#: src/data/sys-file-reader.c:3530
+#: src/data/sys-file-reader.c:3532
 #, c-format
 msgid "ZLIB trailer specifies unexpected %u-byte block size."
 msgstr "Der Nachspann der ZLIB-Daten legt die unerwartete Blockgröße von %u Bytes fest."
 
-#: src/data/sys-file-reader.c:3538
+#: src/data/sys-file-reader.c:3540
 #, c-format
 msgid "%lld-byte ZLIB trailer specifies %u data blocks (expected %lld)."
 msgstr "Der Nachspann der ZLIB-Daten der Größe %lld Bytes legt %u Datenblocks fest (erwartet wurde %lld)."
 
-#: src/data/sys-file-reader.c:3563
+#: src/data/sys-file-reader.c:3565
 #, c-format
 msgid "ZLIB block descriptor %u reported uncompressed data offset %#llx, when %#llx was expected."
 msgstr "Die Blockbeschreibung %u der ZLIB-Daten berichtet ein Offset der unkomprimierten Daten von %#llx, wobei %#llx erwartet wurde."
 
-#: src/data/sys-file-reader.c:3572
+#: src/data/sys-file-reader.c:3574
 #, c-format
 msgid "ZLIB block descriptor %u reported compressed data offset %#llx, when %#llx was expected."
 msgstr "Die Blockbeschreibung %u der ZLIB-Daten berichtet ein Offset der komprimierten Daten von %#llx, wobei %#llx erwartet wurde."
 
-#: src/data/sys-file-reader.c:3582
+#: src/data/sys-file-reader.c:3584
 #, c-format
 msgid "ZLIB block descriptor %u reported block size %#x, when %#x was expected."
 msgstr "Die Blockbeschreibung %u der ZLIB-Daten berichtet eine Blockgröße von %#x, wobei %#x erwartet wurde."
 
-#: src/data/sys-file-reader.c:3590
+#: src/data/sys-file-reader.c:3592
 #, c-format
 msgid "ZLIB block descriptor %u reported block size %#x, when at most %#x was expected."
 msgstr "Die Blockbeschreibung %u der ZLIB-Daten berichtet eine Blockgröße von %#x, wobei höchstens %#x erwartet wurde."
 
-#: src/data/sys-file-reader.c:3602
+#: src/data/sys-file-reader.c:3604
 #, c-format
 msgid "ZLIB block descriptor %u reports compressed size %u and uncompressed size %u."
 msgstr "Die Blockbeschreibung %u der ZLIB-Daten berichtet eine komprimierte Größe von %u und eine unkomprimierte Größe von %u."
 
-#: src/data/sys-file-reader.c:3614
+#: src/data/sys-file-reader.c:3616
 #, c-format
 msgid "ZLIB trailer is at offset %#llx but %#llx would be expected from block descriptors."
 msgstr "Der Nachspann der ZLIB-Daten liegt beim Offset %#llx, aber auf Grund der Blockbeschreibungen wurde %#llx erwartet."
 
-#: src/data/sys-file-reader.c:3633
+#: src/data/sys-file-reader.c:3635
 #, c-format
 msgid "ZLIB initialization failed (%s)."
 msgstr "Initialisierung von ZLIB ist fehlgeschlagen (%s)."
 
-#: src/data/sys-file-reader.c:3648
+#: src/data/sys-file-reader.c:3650
 #, c-format
 msgid "Inconsistency at end of ZLIB stream (%s)."
 msgstr "Am Ende des ZLIB-Datenstroms ist eine Inkonsistenz aufgetreten (%s)."
 
-#: src/data/sys-file-reader.c:3707
+#: src/data/sys-file-reader.c:3709
 #, c-format
 msgid "ZLIB stream inconsistency (%s)."
 msgstr "Im ZLIB-Datenstrom ist eine Inkonsistenz aufgetreten (%s)."
 
-#: src/data/sys-file-reader.c:3731
+#: src/data/sys-file-reader.c:3733
 msgid "Unexpected end of ZLIB compressed data."
 msgstr "Unerwartetes Ende der komprimierten ZLIB-Daten."
 
-#: src/data/sys-file-reader.c:3769
+#: src/data/sys-file-reader.c:3771
 msgid "SPSS System File"
 msgstr "SPSS Systemdatei"
 
@@ -1540,8 +1544,8 @@ msgstr "Skala"
 msgid "Input"
 msgstr "Eingabe"
 
-#. TRANSLATORS: This will form a filename.  Please avoid whitespace.
-#: src/data/variable.c:877 src/ui/gui/psppire-output-window.c:526
+#. TRANSLATORS: This will be part of a filename.  Please avoid whitespace.
+#: src/data/variable.c:877 src/ui/gui/psppire-output-window.c:581
 msgid "Output"
 msgstr "Ziel"
 
@@ -1733,7 +1737,7 @@ msgid "Syntax error at end of input"
 msgstr "Syntax Fehler am ende der Eingabe"
 
 #: src/language/lexer/lexer.c:419 src/language/xforms/select-if.c:60
-#: src/language/stats/autorecode.c:217 src/language/stats/npar.c:503
+#: src/language/stats/autorecode.c:218 src/language/stats/npar.c:503
 #: src/language/data-io/print-space.c:83
 msgid "expecting end of command"
 msgstr "erwarte Befehlsende"
@@ -1826,7 +1830,7 @@ msgstr "erwarte gültige Formatangabe"
 
 #: src/language/lexer/format-parser.c:116
 #: src/language/lexer/format-parser.c:143 src/language/utilities/output.c:154
-#: src/language/data-io/data-list.c:453 src/language/data-io/get-data.c:643
+#: src/language/data-io/data-list.c:453 src/language/data-io/get-data.c:638
 #: src/language/data-io/placement-parser.c:236
 #, c-format
 msgid "Unknown format type `%s'."
@@ -1924,11 +1928,11 @@ msgstr "Der numerische Suffix von `%s' ist größer als von TO unterstützt wird
 msgid "Scratch variables not allowed here."
 msgstr "Temporäre Variablen sind hier nicht erlaubt."
 
-#: src/language/lexer/variable-parser.c:500
+#: src/language/lexer/variable-parser.c:501
 msgid "Prefixes don't match in use of TO convention."
 msgstr "Die Prefixes stimmen nicht Ã¼berein, wie für den TO Befehl erforderlich."
 
-#: src/language/lexer/variable-parser.c:505
+#: src/language/lexer/variable-parser.c:506
 msgid "Bad bounds in use of TO convention."
 msgstr "Die Grenzen bei der Verwendung des TO Befehls sind nicht richtig angegeben."
 
@@ -2206,7 +2210,7 @@ msgstr "Das Codebuch des aktiven Datenblatts enthält keine Mehrfachantworten."
 msgid "Multiple Response Sets"
 msgstr "Mehrfachantworten-Sets"
 
-#: src/language/dictionary/mrsets.c:548 src/ui/gui/psppire-var-sheet.c:1368
+#: src/language/dictionary/mrsets.c:548 src/ui/gui/psppire-var-sheet.c:1359
 msgid "Name"
 msgstr "Name"
 
@@ -2230,7 +2234,7 @@ msgstr "Mehrfachantworten-Set für kategoriale Daten"
 #: src/language/dictionary/split-file.c:84
 #: src/language/dictionary/sys-file-info.c:444
 #: src/language/dictionary/sys-file-info.c:543
-#: src/ui/gui/psppire-var-sheet.c:1381 src/ui/gui/compute.ui:141
+#: src/ui/gui/psppire-var-sheet.c:1372 src/ui/gui/compute.ui:141
 msgid "Label"
 msgstr "Beschriftung"
 
@@ -2543,11 +2547,11 @@ msgstr "In der Langform des VECTOR Befehls müssen die Vektorbezeichnungen durch
 msgid "Vectors must have at least one element."
 msgstr "Vektoren müssen mindestens ein Element besitzen."
 
-#: src/language/dictionary/vector.c:152
+#: src/language/dictionary/vector.c:151
 msgid "expecting vector length"
 msgstr "erwarte Vektorlänge"
 
-#: src/language/dictionary/vector.c:172
+#: src/language/dictionary/vector.c:171
 #, c-format
 msgid "%s is an existing variable name."
 msgstr "%s ist ein existierender Variablenname"
@@ -2740,12 +2744,12 @@ msgstr "Die Wertargumente, die an die %s Funktion Ã¼bergeben wurden, sind nicht
 msgid "Variable name %s is not unique within the aggregate file dictionary, which contains the aggregate variables and the break variables."
 msgstr "Der Variablenname %s erscheint im aggregierten Codebuch der Datei, das die zusammengefassten Variablen und die Break-Variablen enthält, mehr als einmal."
 
-#: src/language/stats/autorecode.c:164
+#: src/language/stats/autorecode.c:165
 #, c-format
 msgid "Source variable count (%zu) does not match target variable count (%zu)."
 msgstr "Anzahl der Quellvariablen (%zu) stimmt nicht mit der Anzahl der Zielvariablen (%zu) Ã¼berein."
 
-#: src/language/stats/autorecode.c:176
+#: src/language/stats/autorecode.c:177
 #, c-format
 msgid "Target variable %s duplicates existing variable %s."
 msgstr "Zielvariable %s hat den selben Namen wie die existierende Variable %s."
@@ -2769,12 +2773,12 @@ msgstr "Gruppe2"
 
 #: src/language/stats/binomial.c:222 src/language/stats/chisquare.c:184
 #: src/language/stats/chisquare.c:246 src/language/stats/examine.c:1341
-#: src/language/stats/factor.c:1753 src/language/stats/frequencies.c:352
+#: src/language/stats/factor.c:1840 src/language/stats/frequencies.c:352
 #: src/language/stats/glm.c:865 src/language/stats/kruskal-wallis.c:325
-#: src/language/stats/logistic.c:1410 src/language/stats/mann-whitney.c:215
-#: src/language/stats/means.c:1080 src/language/stats/oneway.c:1006
+#: src/language/stats/logistic.c:1410 src/language/stats/mann-whitney.c:214
+#: src/language/stats/means.c:1076 src/language/stats/oneway.c:1006
 #: src/language/stats/oneway.c:1178 src/language/stats/reliability.c:584
-#: src/language/stats/regression.c:954 src/language/stats/sign.c:96
+#: src/language/stats/regression.c:980 src/language/stats/sign.c:96
 #: src/language/stats/wilcoxon.c:256
 #: src/ui/gui/psppire-dialog-action-crosstabs.c:91
 #: src/language/stats/crosstabs.q:907 src/language/stats/crosstabs.q:1252
@@ -2793,8 +2797,8 @@ msgstr "Kategorie"
 #: src/language/stats/friedman.c:276 src/language/stats/kruskal-wallis.c:273
 #: src/language/stats/ks-one-sample.c:293 src/language/stats/logistic.c:1404
 #: src/language/stats/jonckheere-terpstra.c:381
-#: src/language/stats/mann-whitney.c:217 src/language/stats/means.c:408
-#: src/language/stats/means.c:1089 src/language/stats/mcnemar.c:262
+#: src/language/stats/mann-whitney.c:216 src/language/stats/means.c:408
+#: src/language/stats/means.c:1085 src/language/stats/mcnemar.c:262
 #: src/language/stats/median.c:419 src/language/stats/npar-summary.c:123
 #: src/language/stats/oneway.c:1077 src/language/stats/reliability.c:587
 #: src/language/stats/sign.c:75 src/language/stats/t-test-indep.c:211
@@ -2833,20 +2837,20 @@ msgid "Expected N"
 msgstr "Erwartete N"
 
 #: src/language/stats/chisquare.c:170 src/language/stats/chisquare.c:213
-#: src/language/stats/regression.c:953
+#: src/language/stats/regression.c:979
 #: src/ui/gui/psppire-dialog-action-crosstabs.c:93
 msgid "Residual"
 msgstr "Residual"
 
 #: src/language/stats/chisquare.c:206 src/language/stats/cochran.c:161
 #: src/language/stats/median.c:320 src/language/stats/sign.c:63
-#: src/ui/gui/frequencies.ui:656
+#: src/ui/gui/frequencies.ui:658
 msgid "Frequencies"
 msgstr "Häufigkeiten"
 
 #: src/language/stats/chisquare.c:259 src/language/stats/cochran.c:215
 #: src/language/stats/friedman.c:273 src/language/stats/kruskal-wallis.c:343
-#: src/language/stats/mann-whitney.c:278 src/language/stats/mcnemar.c:242
+#: src/language/stats/mann-whitney.c:277 src/language/stats/mcnemar.c:242
 #: src/language/stats/median.c:409 src/language/stats/sign.c:115
 #: src/language/stats/wilcoxon.c:305
 msgid "Test Statistics"
@@ -2858,11 +2862,11 @@ msgid "Chi-Square"
 msgstr "Chi-Quadrat"
 
 #: src/language/stats/chisquare.c:274 src/language/stats/cochran.c:224
-#: src/language/stats/factor.c:2189 src/language/stats/friedman.c:286
+#: src/language/stats/factor.c:2372 src/language/stats/friedman.c:286
 #: src/language/stats/glm.c:761 src/language/stats/kruskal-wallis.c:349
 #: src/language/stats/logistic.c:1224 src/language/stats/median.c:428
 #: src/language/stats/oneway.c:983 src/language/stats/oneway.c:1390
-#: src/language/stats/regression.c:947 src/language/stats/t-test-indep.c:293
+#: src/language/stats/regression.c:973 src/language/stats/t-test-indep.c:293
 #: src/language/stats/t-test-one-sample.c:96
 #: src/language/stats/t-test-paired.c:306 src/language/stats/crosstabs.q:1312
 msgid "df"
@@ -2892,13 +2896,13 @@ msgstr "Misserfolg (%.*g)"
 msgid "Cochran's Q"
 msgstr "Cochrans Q"
 
-#: src/language/stats/correlations.c:97 src/language/stats/factor.c:2094
+#: src/language/stats/correlations.c:97 src/language/stats/factor.c:2277
 #: src/language/stats/npar-summary.c:109
 msgid "Descriptive Statistics"
 msgstr "Deskriptive Statistiken"
 
 #: src/language/stats/correlations.c:118 src/language/stats/descriptives.c:108
-#: src/language/stats/examine.c:890 src/language/stats/factor.c:2115
+#: src/language/stats/examine.c:890 src/language/stats/factor.c:2298
 #: src/language/stats/frequencies.c:141 src/language/stats/graph.c:212
 #: src/language/stats/ks-one-sample.c:302 src/language/stats/means.c:407
 #: src/language/stats/npar-summary.c:126 src/language/stats/oneway.c:1078
@@ -2912,7 +2916,7 @@ msgid "Mean"
 msgstr "Mittelwert"
 
 #: src/language/stats/correlations.c:119 src/language/stats/examine.c:982
-#: src/language/stats/factor.c:2116 src/language/stats/ks-one-sample.c:304
+#: src/language/stats/factor.c:2299 src/language/stats/ks-one-sample.c:304
 #: src/language/stats/means.c:409 src/language/stats/npar-summary.c:129
 #: src/language/stats/oneway.c:1079 src/language/stats/t-test-indep.c:213
 #: src/language/stats/t-test-one-sample.c:161
@@ -2921,7 +2925,7 @@ msgstr "Mittelwert"
 msgid "Std. Deviation"
 msgstr "Std. Abweichung"
 
-#: src/language/stats/correlations.c:192 src/language/stats/factor.c:1981
+#: src/language/stats/correlations.c:192 src/language/stats/factor.c:2068
 msgid "Correlations"
 msgstr "Korrelationen"
 
@@ -2936,7 +2940,7 @@ msgstr "Pearson Korrelation"
 msgid "Sig. (2-tailed)"
 msgstr "Sig. (2-seitig)"
 
-#: src/language/stats/correlations.c:222 src/language/stats/factor.c:1993
+#: src/language/stats/correlations.c:222 src/language/stats/factor.c:2080
 msgid "Sig. (1-tailed)"
 msgstr "Sig. (1-seitig)"
 
@@ -2948,11 +2952,11 @@ msgstr "Kreuzprodukte"
 msgid "Covariance"
 msgstr "Kovarianz"
 
-#: src/language/stats/correlations.c:310
+#: src/language/stats/correlations.c:311
 msgid "The data for the chosen variables are all missing or empty."
 msgstr "Die Daten der ausgewählten Variablen sind entweder alle fehlend oder leer."
 
-#: src/language/stats/correlations.c:466 src/language/stats/descriptives.c:374
+#: src/language/stats/correlations.c:467 src/language/stats/descriptives.c:382
 #: src/language/data-io/list.c:168
 msgid "No variables specified."
 msgstr "Keine Variablen angegeben."
@@ -3031,53 +3035,53 @@ msgstr "Maximum"
 msgid "Sum"
 msgstr "Summe"
 
-#: src/language/stats/descriptives.c:356
+#: src/language/stats/descriptives.c:364
 #, c-format
 msgid "Z-score variable name %s would be a duplicate variable name."
 msgstr "Z-Wert Variablenname %s wäre ein Duplikat."
 
-#: src/language/stats/descriptives.c:407
+#: src/language/stats/descriptives.c:415
 msgid "DESCRIPTIVES with Z scores ignores TEMPORARY.  Temporary transformations will be made permanent."
 msgstr "DESCRIPTIVES mit Z-Werten ignoriert TEMPORARY.  Temporäre Umformungen werden dauerhaft gemacht."
 
-#: src/language/stats/descriptives.c:484
+#: src/language/stats/descriptives.c:492
 msgid "expecting statistic name: reverting to default"
 msgstr "erwarte den Namen einer Statistik: Rückfall auf die Voreinstellung"
 
-#: src/language/stats/descriptives.c:567
+#: src/language/stats/descriptives.c:575
 msgid "Ran out of generic names for Z-score variables.  There are only 126 generic names: ZSC001-ZSC0999, STDZ01-STDZ09, ZZZZ01-ZZZZ09, ZQZQ01-ZQZQ09."
 msgstr "Es stehen nicht genügend generische Namen für Z-Wert Variablen zur Verfügung. Es gibt nur 126 generische Namen: ZSC001-ZSC0999, STDZ01-STDZ09, ZZZZ01-ZZZZ09, ZQZQ01-ZQZQ09."
 
-#: src/language/stats/descriptives.c:596
+#: src/language/stats/descriptives.c:604
 msgid "Mapping of variables to corresponding Z-scores."
 msgstr "Abbildung der Variablen auf die entsprechenden Z-Werte."
 
-#: src/language/stats/descriptives.c:600 src/language/stats/glm.c:755
+#: src/language/stats/descriptives.c:608 src/language/stats/glm.c:755
 msgid "Source"
 msgstr "Quelle"
 
-#: src/language/stats/descriptives.c:601
+#: src/language/stats/descriptives.c:609
 msgid "Target"
 msgstr "Ziel"
 
-#: src/language/stats/descriptives.c:673
+#: src/language/stats/descriptives.c:681
 msgid "Internal error processing Z scores"
 msgstr "Interner Fehler beim Verarbeiten der Z-Werte"
 
-#: src/language/stats/descriptives.c:771
+#: src/language/stats/descriptives.c:779
 #, c-format
 msgid "Z-score of %s"
 msgstr "Z-Wert von %s"
 
-#: src/language/stats/descriptives.c:1022
+#: src/language/stats/descriptives.c:1030
 msgid "Valid N"
 msgstr "Gültige N"
 
-#: src/language/stats/descriptives.c:1023
+#: src/language/stats/descriptives.c:1031
 msgid "Missing N"
 msgstr "Fehlende N"
 
-#: src/language/stats/descriptives.c:1051
+#: src/language/stats/descriptives.c:1059
 #, c-format
 msgid "Valid cases = %.*g; cases with missing value(s) = %.*g."
 msgstr "Gültige Fälle = %.*g; Fälle mit fehlenden Werten = %.*g."
@@ -3130,7 +3134,7 @@ msgstr "Deskriptive Statistiken"
 
 #: src/language/stats/examine.c:811 src/language/stats/oneway.c:1080
 #: src/language/stats/oneway.c:1388 src/language/stats/oneway.c:1599
-#: src/language/stats/roc.c:993 src/language/stats/regression.c:837
+#: src/language/stats/roc.c:993 src/language/stats/regression.c:856
 msgid "Std. Error"
 msgstr "Standardfehler"
 
@@ -3141,13 +3145,13 @@ msgstr "%g%% Konfidenzintervall für Mittelwert"
 
 #: src/language/stats/examine.c:915 src/language/stats/oneway.c:1089
 #: src/language/stats/oneway.c:1606 src/language/stats/roc.c:996
-#: src/language/stats/regression.c:855
+#: src/language/stats/regression.c:873
 msgid "Lower Bound"
 msgstr "Untere Grenze"
 
 #: src/language/stats/examine.c:928 src/language/stats/oneway.c:1090
 #: src/language/stats/oneway.c:1607 src/language/stats/roc.c:997
-#: src/language/stats/regression.c:856
+#: src/language/stats/regression.c:874
 msgid "Upper Bound"
 msgstr "Obere Grenze"
 
@@ -3169,7 +3173,7 @@ msgstr "Interquartilsabstand"
 msgid "Extreme Values"
 msgstr "Extremwerte"
 
-#: src/language/stats/examine.c:1132 src/language/stats/quick-cluster.c:591
+#: src/language/stats/examine.c:1132 src/language/stats/quick-cluster.c:588
 #: src/language/data-io/list.c:114
 msgid "Case Number"
 msgstr "Fallnummer"
@@ -3183,17 +3187,17 @@ msgid "Lowest"
 msgstr "Niedrigster"
 
 #: src/language/stats/examine.c:1311 src/language/stats/logistic.c:1394
-#: src/language/stats/means.c:1065 src/language/stats/reliability.c:552
+#: src/language/stats/means.c:1061 src/language/stats/reliability.c:552
 msgid "Case Processing Summary"
 msgstr "Zusammenfassung der Fallverarbeitung"
 
-#: src/language/stats/examine.c:1327 src/language/stats/means.c:1076
+#: src/language/stats/examine.c:1327 src/language/stats/means.c:1072
 #: src/language/stats/reliability.c:575 src/language/stats/crosstabs.q:904
 msgid "Cases"
 msgstr "Fälle"
 
 #: src/language/stats/examine.c:1331 src/language/stats/frequencies.c:1601
-#: src/language/stats/quick-cluster.c:641 src/language/stats/reliability.c:578
+#: src/language/stats/quick-cluster.c:638 src/language/stats/reliability.c:578
 #: src/language/stats/crosstabs.q:905
 msgid "Valid"
 msgstr "Gültig"
@@ -3205,7 +3209,7 @@ msgstr "Fehlende Werte"
 
 #: src/language/stats/examine.c:1348 src/language/stats/frequencies.c:295
 #: src/language/stats/frequencies.c:1500 src/language/stats/logistic.c:1405
-#: src/language/stats/means.c:1091 src/language/stats/crosstabs.q:915
+#: src/language/stats/means.c:1087 src/language/stats/crosstabs.q:915
 msgid "Percent"
 msgstr "Prozent"
 
@@ -3223,152 +3227,169 @@ msgstr "Perzentile müssen im Bereich (0, 100) liegen"
 msgid "%s and %s are mutually exclusive"
 msgstr "%s und %s schließen sich gegeseitig aus"
 
-#: src/language/stats/factor.c:1048
+#: src/language/stats/factor.c:1071
+#, c-format
+msgid "Matrix input for %s must be either COV or CORR"
+msgstr "Die Eingabe der Matrix für %s muss entweder Ã¼ber COV oder CORR erfolgen"
+
+#: src/language/stats/factor.c:1468
 msgid "Factor analysis on a single variable is not useful."
 msgstr "Faktorenanalyse einer einzelnen Variable ist nicht sinnvoll."
 
-#: src/language/stats/factor.c:1493
+#: src/language/stats/factor.c:1472
+msgid "Factor analysis without variables is not possible."
+msgstr "Eine Faktorenanalyse ohne Variablen ist nicht sinnvoll."
+
+#: src/language/stats/factor.c:1579
 msgid "Component Number"
 msgstr "Komponentennummer"
 
-#: src/language/stats/factor.c:1493
+#: src/language/stats/factor.c:1579
 msgid "Factor Number"
 msgstr "Faktorzahl"
 
-#: src/language/stats/factor.c:1524
+#: src/language/stats/factor.c:1610
 msgid "Communalities"
 msgstr "Kommunalitäten"
 
-#: src/language/stats/factor.c:1530
+#: src/language/stats/factor.c:1616
 msgid "Initial"
 msgstr "Ursprünglich"
 
-#: src/language/stats/factor.c:1533
+#: src/language/stats/factor.c:1619
 msgid "Extraction"
 msgstr "Extraktion"
 
-#: src/language/stats/factor.c:1598 src/language/stats/factor.c:1727
-#: src/language/stats/factor.c:1872
+#: src/language/stats/factor.c:1684 src/language/stats/factor.c:1814
+#: src/language/stats/factor.c:1959
 msgid "Component"
 msgstr "Komponente"
 
-#: src/language/stats/factor.c:1603 src/language/stats/factor.c:1729
-#: src/language/stats/factor.c:1874
+#: src/language/stats/factor.c:1689 src/language/stats/factor.c:1816
+#: src/language/stats/factor.c:1961
 msgid "Factor"
 msgstr "Faktor"
 
-#: src/language/stats/factor.c:1635
+#: src/language/stats/factor.c:1721
 #, c-format
 msgid "%d"
 msgstr "%d"
 
-#: src/language/stats/factor.c:1702
+#: src/language/stats/factor.c:1789
 msgid "Total Variance Explained"
 msgstr "Erklärte Gesamtvarianz"
 
-#: src/language/stats/factor.c:1734
+#: src/language/stats/factor.c:1821
 msgid "Initial Eigenvalues"
 msgstr "Ursprüngliche Eigenwerte"
 
-#: src/language/stats/factor.c:1740
+#: src/language/stats/factor.c:1827
 msgid "Extraction Sums of Squared Loadings"
 msgstr "Summe der quadrierten Ladungen der Extraktion"
 
-#: src/language/stats/factor.c:1747
+#: src/language/stats/factor.c:1834
 msgid "Rotation Sums of Squared Loadings"
 msgstr "Summe der quadrierten Ladungen der Rotation"
 
-#: src/language/stats/factor.c:1761
+#: src/language/stats/factor.c:1848
 #, no-c-format
 msgid "% of Variance"
 msgstr "% der Varianz"
 
-#: src/language/stats/factor.c:1762
+#: src/language/stats/factor.c:1849
 msgid "Cumulative %"
 msgstr "Kumuliert %"
 
-#: src/language/stats/factor.c:1787 src/language/stats/factor.c:1878
-#: src/language/stats/factor.c:1883
+#: src/language/stats/factor.c:1874 src/language/stats/factor.c:1965
+#: src/language/stats/factor.c:1970
 #, c-format
 msgid "%zu"
 msgstr "%zu"
 
-#: src/language/stats/factor.c:1847
+#: src/language/stats/factor.c:1934
 msgid "Factor Correlation Matrix"
 msgstr "Faktor-Korrelationsmatrix"
 
-#: src/language/stats/factor.c:1939
+#: src/language/stats/factor.c:2026
 msgid "Correlation Matrix"
 msgstr "Korrelationsmatrix"
 
-#: src/language/stats/factor.c:2013
+#: src/language/stats/factor.c:2100
 msgid "Determinant"
 msgstr "Determinante"
 
-#: src/language/stats/factor.c:2045
+#: src/language/stats/factor.c:2138
+msgid "Covariance Matrix"
+msgstr "Kovarianzmatrix"
+
+#: src/language/stats/factor.c:2211
 msgid "The dataset contains no complete observations. No analysis will be performed."
 msgstr "Der Datensatz enthält keine vollständigen Beobachtungen. Die Analyse wird nicht durchgeführt."
 
-#: src/language/stats/factor.c:2117
+#: src/language/stats/factor.c:2235
+msgid "The dataset has no complete covariance or correlation matrix."
+msgstr "Im Datensatz ist keine vollständige Kovarianz oder Korrelationsmatrix enthalten."
+
+#: src/language/stats/factor.c:2300
 msgid "Analysis N"
 msgstr "Analyse N"
 
-#: src/language/stats/factor.c:2154
+#: src/language/stats/factor.c:2337
 msgid "KMO and Bartlett's Test"
 msgstr "KMO und Bartlett's Test"
 
-#: src/language/stats/factor.c:2182
+#: src/language/stats/factor.c:2365
 msgid "Kaiser-Meyer-Olkin Measure of Sampling Adequacy"
 msgstr "Kaiser-Meyer-Olkin-Maß für Angemessenheit der Stichproben"
 
-#: src/language/stats/factor.c:2186
+#: src/language/stats/factor.c:2369
 msgid "Bartlett's Test of Sphericity"
 msgstr "Bartlett's Test auf Sphärizität"
 
-#: src/language/stats/factor.c:2188
+#: src/language/stats/factor.c:2371
 msgid "Approx. Chi-Square"
 msgstr "Geschätztes Chi-Quadrat"
 
-#: src/language/stats/factor.c:2190 src/language/stats/glm.c:764
+#: src/language/stats/factor.c:2373 src/language/stats/glm.c:764
 #: src/language/stats/logistic.c:1225 src/language/stats/oneway.c:986
 #: src/language/stats/oneway.c:1234 src/language/stats/oneway.c:1600
-#: src/language/stats/regression.c:841 src/language/stats/regression.c:950
+#: src/language/stats/regression.c:860 src/language/stats/regression.c:976
 #: src/language/stats/t-test-indep.c:291
 #: src/language/stats/t-test-paired.c:235
 msgid "Sig."
 msgstr "Sig."
 
-#: src/language/stats/factor.c:2231
+#: src/language/stats/factor.c:2416
 #, c-format
 msgid "The %s criteria result in zero factors extracted. Therefore no analysis will be performed."
 msgstr "Auf Grund des %s-Kriteriums konnten keine Faktoren extrahiert werden. Daher wird keine Analyse durchgeführt."
 
-#: src/language/stats/factor.c:2238
+#: src/language/stats/factor.c:2423
 #, c-format
 msgid "The %s criteria result in more factors than variables, which is not meaningful. No analysis will be performed."
 msgstr "Das %s-Kriterium führt zu mehr Faktoren als Variablen. Dies ist nicht sinnvoll. Die Analyse wird nicht durchgeführt."
 
-#: src/language/stats/factor.c:2330
+#: src/language/stats/factor.c:2515
 msgid "Component Matrix"
 msgstr "Komponentenmatrix"
 
-#: src/language/stats/factor.c:2330
+#: src/language/stats/factor.c:2515
 msgid "Factor Matrix"
 msgstr "Faktor Matrix"
 
-#: src/language/stats/factor.c:2335
+#: src/language/stats/factor.c:2520
 msgid "Pattern Matrix"
 msgstr "Mustermatrix"
 
-#: src/language/stats/factor.c:2342
+#: src/language/stats/factor.c:2527
 msgid "Structure Matrix"
 msgstr "Strukturmatrix"
 
-#: src/language/stats/factor.c:2343
+#: src/language/stats/factor.c:2528
 msgid "Rotated Component Matrix"
 msgstr "Rotierte Komponentenmatrix"
 
-#: src/language/stats/factor.c:2343
+#: src/language/stats/factor.c:2529
 msgid "Rotated Factor Matrix"
 msgstr "Rotierte Faktormatrix"
 
@@ -3488,12 +3509,12 @@ msgid "50 (Median)"
 msgstr "50 (Median)"
 
 #: src/language/stats/friedman.c:227 src/language/stats/kruskal-wallis.c:258
-#: src/language/stats/mann-whitney.c:198 src/language/stats/wilcoxon.c:226
+#: src/language/stats/mann-whitney.c:197 src/language/stats/wilcoxon.c:226
 msgid "Ranks"
 msgstr "Ränge"
 
 #: src/language/stats/friedman.c:238 src/language/stats/kruskal-wallis.c:272
-#: src/language/stats/mann-whitney.c:223 src/language/stats/wilcoxon.c:240
+#: src/language/stats/mann-whitney.c:222 src/language/stats/wilcoxon.c:240
 msgid "Mean Rank"
 msgstr "Durchschnittlicher Rang"
 
@@ -3519,12 +3540,12 @@ msgid "Type %s Sum of Squares"
 msgstr "Quadratsumme Typ %s"
 
 #: src/language/stats/glm.c:762 src/language/stats/oneway.c:984
-#: src/language/stats/regression.c:948
+#: src/language/stats/regression.c:974
 msgid "Mean Square"
 msgstr "Mittel der Quadrate"
 
 #: src/language/stats/glm.c:763 src/language/stats/oneway.c:985
-#: src/language/stats/regression.c:949 src/language/stats/t-test-indep.c:290
+#: src/language/stats/regression.c:975 src/language/stats/t-test-indep.c:290
 msgid "F"
 msgstr "F"
 
@@ -3532,7 +3553,7 @@ msgstr "F"
 msgid "Corrected Model"
 msgstr "Korrigiertes Modell"
 
-#: src/language/stats/glm.c:774 src/language/stats/regression.c:1001
+#: src/language/stats/glm.c:774 src/language/stats/regression.c:1027
 msgid "Model"
 msgstr "Modell"
 
@@ -3645,7 +3666,7 @@ msgstr "Kolmogorov-Smirnov Z"
 
 #: src/language/stats/ks-one-sample.c:399
 #: src/language/stats/jonckheere-terpstra.c:386
-#: src/language/stats/mann-whitney.c:294 src/language/stats/runs.c:402
+#: src/language/stats/mann-whitney.c:293 src/language/stats/runs.c:402
 #: src/language/stats/wilcoxon.c:319 src/language/stats/crosstabs.q:1314
 msgid "Asymp. Sig. (2-tailed)"
 msgstr "Asymp. Sig. (2-seitig)"
@@ -3703,7 +3724,7 @@ msgstr "Variablen in der Gleichung "
 msgid "Step 1"
 msgstr "Schritt 1"
 
-#: src/language/stats/logistic.c:1221 src/language/stats/regression.c:836
+#: src/language/stats/logistic.c:1221 src/language/stats/regression.c:855
 msgid "B"
 msgstr "B"
 
@@ -3830,29 +3851,29 @@ msgstr "Standardabweichung der J-T Statistik"
 msgid "Std. J-T Statistic"
 msgstr "Std. J-T Statistik"
 
-#: src/language/stats/mann-whitney.c:229 src/language/stats/wilcoxon.c:241
+#: src/language/stats/mann-whitney.c:228 src/language/stats/wilcoxon.c:241
 msgid "Sum of Ranks"
 msgstr "Summe der Ränge"
 
-#: src/language/stats/mann-whitney.c:291
+#: src/language/stats/mann-whitney.c:290
 msgid "Mann-Whitney U"
 msgstr "Mann-Whitney U"
 
-#: src/language/stats/mann-whitney.c:292
+#: src/language/stats/mann-whitney.c:291
 msgid "Wilcoxon W"
 msgstr "Wilcoxon W"
 
-#: src/language/stats/mann-whitney.c:293 src/language/stats/runs.c:399
+#: src/language/stats/mann-whitney.c:292 src/language/stats/runs.c:399
 #: src/language/stats/wilcoxon.c:318
 msgid "Z"
 msgstr "Z"
 
-#: src/language/stats/mann-whitney.c:298 src/language/stats/mcnemar.c:265
+#: src/language/stats/mann-whitney.c:297 src/language/stats/mcnemar.c:265
 #: src/language/stats/sign.c:134 src/language/stats/wilcoxon.c:323
 msgid "Exact Sig. (2-tailed)"
 msgstr "Exakte Sig. (2-seitig)"
 
-#: src/language/stats/mann-whitney.c:299 src/language/stats/mcnemar.c:271
+#: src/language/stats/mann-whitney.c:298 src/language/stats/mcnemar.c:271
 #: src/language/stats/sign.c:140 src/language/stats/wilcoxon.c:327
 msgid "Point Probability"
 msgstr "Punktwahrscheinlichkeit"
@@ -3893,21 +3914,21 @@ msgstr "Harmonisches Mittel"
 msgid "Geom. Mean"
 msgstr "Geom. Mittel"
 
-#: src/language/stats/means.c:1078
+#: src/language/stats/means.c:1074
 msgid "Included"
 msgstr "Eingeschlossen"
 
-#: src/language/stats/means.c:1079 src/language/stats/reliability.c:581
+#: src/language/stats/means.c:1075 src/language/stats/reliability.c:581
 msgid "Excluded"
 msgstr "Ausgeschlossen"
 
-#: src/language/stats/means.c:1121 src/language/stats/means.c:1130
-#: src/language/stats/means.c:1139
+#: src/language/stats/means.c:1117 src/language/stats/means.c:1126
+#: src/language/stats/means.c:1135
 #, c-format
 msgid "%g%%"
 msgstr "%g%%"
 
-#: src/language/stats/means.c:1171
+#: src/language/stats/means.c:1167
 msgid "Report"
 msgstr "Bericht"
 
@@ -4009,7 +4030,7 @@ msgstr "In der Liste der Kontraste %zu stimmt die Anzahl der Koeffizienten (%zu)
 msgid "Coefficients for contrast %zu do not total zero"
 msgstr "Die Koeffizienten für den Kontrast %zu addieren sich nicht zu Null auf."
 
-#: src/language/stats/oneway.c:982 src/language/stats/regression.c:946
+#: src/language/stats/oneway.c:982 src/language/stats/regression.c:972
 msgid "Sum of Squares"
 msgstr "Quadratsumme"
 
@@ -4057,7 +4078,7 @@ msgstr "Kontrast Tests"
 msgid "Value of Contrast"
 msgstr "Kontrastwert"
 
-#: src/language/stats/oneway.c:1389 src/language/stats/regression.c:840
+#: src/language/stats/oneway.c:1389 src/language/stats/regression.c:859
 #: src/language/stats/t-test-indep.c:292
 #: src/language/stats/t-test-one-sample.c:95
 #: src/language/stats/t-test-paired.c:305
@@ -4101,37 +4122,37 @@ msgstr "(I - J)"
 msgid "%g%% Confidence Interval"
 msgstr "%g%% Konfidenzintervall"
 
-#: src/language/stats/quick-cluster.c:530
+#: src/language/stats/quick-cluster.c:527
 msgid "Final Cluster Centers"
 msgstr "Clusterzentren der Ausgangsklassifikation"
 
-#: src/language/stats/quick-cluster.c:534
+#: src/language/stats/quick-cluster.c:531
 msgid "Initial Cluster Centers"
 msgstr "Anfängliche Clusterzentren"
 
-#: src/language/stats/quick-cluster.c:537
-#: src/language/stats/quick-cluster.c:592
-#: src/language/stats/quick-cluster.c:629
+#: src/language/stats/quick-cluster.c:534
+#: src/language/stats/quick-cluster.c:589
+#: src/language/stats/quick-cluster.c:626
 msgid "Cluster"
 msgstr "Cluster"
 
-#: src/language/stats/quick-cluster.c:590
+#: src/language/stats/quick-cluster.c:587
 msgid "Cluster Membership"
 msgstr "Cluster-Zugehörigkeit"
 
-#: src/language/stats/quick-cluster.c:627
+#: src/language/stats/quick-cluster.c:624
 msgid "Number of Cases in each Cluster"
 msgstr "Anzahl der Fälle in jedem Cluster"
 
-#: src/language/stats/quick-cluster.c:747
+#: src/language/stats/quick-cluster.c:744
 msgid "The number of clusters must be positive"
 msgstr "Anzahl der Cluster muß positiv sein"
 
-#: src/language/stats/quick-cluster.c:763
+#: src/language/stats/quick-cluster.c:760
 msgid "The convergence criterium must be positive"
 msgstr "Das Konvergenzkriterium muss positiv sein"
 
-#: src/language/stats/quick-cluster.c:779
+#: src/language/stats/quick-cluster.c:776
 msgid "The number of iterations must be positive"
 msgstr "Anzahl der Iterationen muß positiv sein"
 
@@ -4338,84 +4359,89 @@ msgstr "Sensitivität"
 msgid "1 - Specificity"
 msgstr "1- Spezifität"
 
-#: src/language/stats/regression.c:376
+#: src/language/stats/regression.c:222 src/language/stats/regression.c:227
+#, c-format
+msgid "VARIABLES may not appear after %s"
+msgstr "VARIABLES darf nicht nach %s erscheinen"
+
+#: src/language/stats/regression.c:406
 msgid "REGRESSION with SAVE ignores TEMPORARY.  Temporary transformations will be made permanent."
 msgstr "REGRESSION mit SAVE ignoriert TEMPORARY.  Temporäre Umformungen werden dauerhaft gemacht."
 
-#: src/language/stats/regression.c:380
+#: src/language/stats/regression.c:410
 msgid "REGRESSION with SAVE ignores FILTER.  All cases will be processed."
 msgstr "REGRESSION mit SAVE ignoriert FILTER.  Es werden alle Fälle verarbeitet."
 
-#: src/language/stats/regression.c:515
+#: src/language/stats/regression.c:545
 msgid "The dependent variable is equal to the independent variable. The least squares line is therefore Y=X. Standard errors and related statistics may be meaningless."
 msgstr "Die abhängige Variable ist mit der unabhängigen Variable identisch. Die Regressionsgerade ist daher Y=X. Standardfehler und damit verbundene Statistiken sind eventuell aussagelos."
 
-#: src/language/stats/regression.c:699
+#: src/language/stats/regression.c:719
 msgid "No valid data found. This command was skipped."
 msgstr "Keine gültigen Daten gefunden. Dieser Befehl wird Ã¼bersprungen."
 
-#: src/language/stats/regression.c:784
+#: src/language/stats/regression.c:804
 #: src/ui/gui/psppire-dialog-action-regression.c:42
 msgid "R"
 msgstr "R"
 
-#: src/language/stats/regression.c:785
+#: src/language/stats/regression.c:805
 msgid "R Square"
 msgstr "R-Quadrat"
 
-#: src/language/stats/regression.c:786
+#: src/language/stats/regression.c:806
 msgid "Adjusted R Square"
 msgstr "Korrigiertes R-Quadrat"
 
-#: src/language/stats/regression.c:787
+#: src/language/stats/regression.c:807
 msgid "Std. Error of the Estimate"
 msgstr "Standardfehler des Schätzers "
 
-#: src/language/stats/regression.c:792
+#: src/language/stats/regression.c:812
 #, c-format
 msgid "Model Summary (%s)"
 msgstr "Modellzusammenfassung (%s)"
 
-#: src/language/stats/regression.c:835
+#: src/language/stats/regression.c:854
 msgid "Unstandardized Coefficients"
 msgstr "Unstandardisierte Koeffizienten"
 
-#: src/language/stats/regression.c:838
+#: src/language/stats/regression.c:857
 msgid "Standardized Coefficients"
 msgstr "Standardisierte Koeffizienten"
 
-#: src/language/stats/regression.c:839
+#: src/language/stats/regression.c:858
 msgid "Beta"
 msgstr "Beta"
 
-#: src/language/stats/regression.c:842
-msgid "(Constant)"
-msgstr "(Konstante)"
-
-#: src/language/stats/regression.c:853
+#: src/language/stats/regression.c:871
 #, c-format
 msgid "%g%% Confidence Interval for B"
 msgstr "%g%% Konfidenzintervall für B"
 
-#: src/language/stats/regression.c:917
+#: src/language/stats/regression.c:879
+msgid "(Constant)"
+msgstr "(Konstante)"
+
+#: src/language/stats/regression.c:942
 #, c-format
 msgid "Coefficients (%s)"
 msgstr "Koeffizienten (%s)"
 
-#: src/language/stats/regression.c:952 src/ui/gui/regression.ui:8
+#: src/language/stats/regression.c:978 src/ui/gui/regression.ui:8
 msgid "Regression"
 msgstr "Regression"
 
-#: src/language/stats/regression.c:975
+#: src/language/stats/regression.c:1001
 #, c-format
 msgid "ANOVA (%s)"
 msgstr "ANOVA (%s)"
 
-#: src/language/stats/regression.c:1002
+#: src/language/stats/regression.c:1028
 msgid "Covariances"
 msgstr "Kovarianzen"
 
-#: src/language/stats/regression.c:1017
+#: src/language/stats/regression.c:1043
 #, c-format
 msgid "Coefficient Correlations (%s)"
 msgstr "Korrelationen der Koeffizienten (%s)"
@@ -4693,12 +4719,12 @@ msgstr "Kodierung sollte bei Inline-Daten nicht angegeben werden. Diese wird Ã¼b
 msgid "The %s subcommand may be used only with %s."
 msgstr "Der Unterbefehl %s darf nur mit %s verwendet werden."
 
-#: src/language/data-io/data-list.c:284
+#: src/language/data-io/data-list.c:284 src/language/data-io/matrix-data.c:494
 msgid "At least one variable must be specified."
 msgstr "Es muss mindestens eine Variable angegeben werden."
 
 #: src/language/data-io/data-list.c:383 src/language/data-io/data-list.c:491
-#: src/language/data-io/get-data.c:667
+#: src/language/data-io/get-data.c:662
 #, c-format
 msgid "%s is a duplicate variable name."
 msgstr "Der Variablenname %s kommt doppelt vor."
@@ -4718,61 +4744,61 @@ msgstr "Es gibt bereits eine Stringvariable %s mit einer anderen Breite."
 msgid "Cannot place variable %s on record %d when RECORDS=%d is specified."
 msgstr "Die Variable %s kann nicht im EIntrag %d platziert werden, wenn RECORDS=%d angegeben wurde."
 
-#: src/language/data-io/data-parser.c:433
-#: src/language/data-io/data-parser.c:442
+#: src/language/data-io/data-parser.c:451
+#: src/language/data-io/data-parser.c:460
 msgid "Quoted string extends beyond end of line."
 msgstr "Eine Zeichenfolge in Anführungszeichen erstreckt sich Ã¼ber das Zeilenende hinaus."
 
-#: src/language/data-io/data-parser.c:468
+#: src/language/data-io/data-parser.c:486
 msgid "Missing delimiter following quoted string."
 msgstr "Fehlendes Trennzeichen nach einer Zeichenfolge in Anführungszeichen."
 
-#: src/language/data-io/data-parser.c:487
+#: src/language/data-io/data-parser.c:505
 #, c-format
 msgid "Data for variable %s is not valid as format %s: %s"
 msgstr "Die Daten für die Variable %s sind im Format %s ungültig: %s"
 
-#: src/language/data-io/data-parser.c:516
+#: src/language/data-io/data-parser.c:534
 #, c-format
 msgid "Partial case of %d of %d records discarded."
 msgstr "Ein Teil des Falles %d mit %d Einträgen wurde verworfen."
 
-#: src/language/data-io/data-parser.c:572
+#: src/language/data-io/data-parser.c:590
 #, c-format
 msgid "Partial case discarded.  The first variable missing was %s."
 msgstr "Ein Teil des Falles wurde verworfen.  Die erste fehlende Variable ist %s."
 
-#: src/language/data-io/data-parser.c:614
+#: src/language/data-io/data-parser.c:632
 #, c-format
 msgid "Missing value(s) for all variables from %s onward.  These will be filled with the system-missing value or blanks, as appropriate."
 msgstr "Fehlender Wert oder Werte für alle Variablen ab %s.  Diese werden mit system-fehlenden Werten oder Leerzeichen aufgefüllt, je nachdem was jeweils angebracht erscheint."
 
-#: src/language/data-io/data-parser.c:635
+#: src/language/data-io/data-parser.c:653
 msgid "Record ends in data not part of any field."
 msgstr "Eintrag endet mit Daten nicht nicht Teil eines Feldes sind."
 
-#: src/language/data-io/data-parser.c:655 src/language/data-io/print.c:447
+#: src/language/data-io/data-parser.c:673 src/language/data-io/print.c:447
 msgid "Record"
 msgstr "Datensatz"
 
-#: src/language/data-io/data-parser.c:656 src/language/data-io/print.c:448
-#: src/ui/gui/psppire-var-sheet.c:1389
+#: src/language/data-io/data-parser.c:674 src/language/data-io/print.c:448
+#: src/ui/gui/psppire-var-sheet.c:1380
 msgid "Columns"
 msgstr "Spalten"
 
-#: src/language/data-io/data-parser.c:657
-#: src/language/data-io/data-parser.c:694 src/language/data-io/print.c:449
+#: src/language/data-io/data-parser.c:675
+#: src/language/data-io/data-parser.c:712 src/language/data-io/print.c:449
 msgid "Format"
 msgstr "Format"
 
-#: src/language/data-io/data-parser.c:675
+#: src/language/data-io/data-parser.c:693
 #, c-format
 msgid "Reading %d record from %s."
 msgid_plural "Reading %d records from %s."
 msgstr[0] "%d Eintrag wird von %s gelesen."
 msgstr[1] "%d Einträge werden von %s gelesen."
 
-#: src/language/data-io/data-parser.c:709
+#: src/language/data-io/data-parser.c:727
 #, c-format
 msgid "Reading free-form data from %s."
 msgstr "Unformatierte Daten werden aus %s gelesen."
@@ -4903,46 +4929,51 @@ msgstr "es wurde ein Dateinname oder ein Identifikator erwartet"
 msgid "Handle for %s not allowed here."
 msgstr "Identifikator für %s ist hier nicht erlaubt."
 
-#: src/language/data-io/get-data.c:138
+#: src/language/data-io/get-data.c:108 src/output/measure.c:262
+#, c-format
+msgid "error reading file `%s'"
+msgstr "Fehler beim Lesen der Datei `%s'"
+
+#: src/language/data-io/get-data.c:127
 #, c-format
 msgid "Unsupported TYPE %s."
 msgstr "TYPE %s wird nicht unterstützt."
 
-#: src/language/data-io/get-data.c:289
+#: src/language/data-io/get-data.c:278
 msgid "The sheet index must be greater than or equal to 1"
 msgstr "Die Nummer des Datenblatts muss größer oder gleich 1 sein"
 
-#: src/language/data-io/get-data.c:296 src/language/data-io/get-data.c:319
-#: src/language/data-io/get-data.c:338
+#: src/language/data-io/get-data.c:285 src/language/data-io/get-data.c:308
+#: src/language/data-io/get-data.c:327
 #, c-format
 msgid "%s must be followed by either \"%s\" or \"%s\"."
 msgstr "Nach %s muss entweder von \"%s\" oder \"%s\" folgen."
 
-#: src/language/data-io/get-data.c:368
+#: src/language/data-io/get-data.c:357
 #, c-format
 msgid "%s is allowed only with %s arrangement, but %s arrangement was stated or implied earlier in this command."
 msgstr "%s ist nur in Verbindung mit /ARRAGEMENT=%s erlaubt, aber es wurde entweder explizit oder implizit in diesem Befehl an früherer Stelle festegelegt, dass /ARRAGEMENT=%s sein soll."
 
-#: src/language/data-io/get-data.c:452 src/language/data-io/get-data.c:490
+#: src/language/data-io/get-data.c:441 src/language/data-io/get-data.c:479
 #, c-format
 msgid "Value of %s must be 1 or greater."
 msgstr "Der Wert von %s muss 1 oder mehr betragen."
 
-#: src/language/data-io/get-data.c:515
+#: src/language/data-io/get-data.c:504
 msgid "Ignoring obsolete IMPORTCASES subcommand.  (N OF CASES or SAMPLE may be used to substitute.)"
 msgstr "Der Unterbefehl IMPORTCASES wird ignoriert (ersatzweise können Sie die Befehle N OF CASES oder SAMPLE verwenden)."
 
-#: src/language/data-io/get-data.c:562
+#: src/language/data-io/get-data.c:551
 msgid "In compatible syntax mode, the QUALIFIER string must contain exactly one character."
 msgstr "Im Modus Kompatible Syntax muss der String QUALIFIER genau ein Zeichen enthalten."
 
-#: src/language/data-io/get-data.c:594
+#: src/language/data-io/get-data.c:583
 #: src/language/data-io/placement-parser.c:406
 #, c-format
 msgid "The record number specified, %ld, is at or before the previous record, %d.  Data fields must be listed in order of increasing record number."
 msgstr "Die angegebene Nummer des Eintrags, %ld, liegt beim oder vor dem vorhergehenden Eintrag, %d. Datenfelder müssen in aufsteigender Reihenfolge aufgelistet werden."
 
-#: src/language/data-io/get-data.c:603
+#: src/language/data-io/get-data.c:592
 #, c-format
 msgid "The record number specified, %ld, exceeds the number of records per case specified on FIXCASE, %d."
 msgstr "Die angegebene Nummer des Eintrags, %ld, Ã¼bersteigt die Anzahl der Einträge pro Fall, %d, die mit FIXCASE festgelegt wurde."
@@ -5054,6 +5085,27 @@ msgid_plural "Writing %zu records."
 msgstr[0] "%zu Eintrag wird geschrieben."
 msgstr[1] "%zu Einträge werden geschrieben."
 
+#: src/language/data-io/matrix-data.c:176
+#, c-format
+msgid "There are %d variable declared but the data has at least %d matrix rows."
+msgstr "Es wurden %d Variablen spezifiziert, in den Daten sind aber mindestens %d Matrix-Zeilen enthalten."
+
+#: src/language/data-io/matrix-data.c:484
+msgid "FORMAT = FULL and FORMAT = NODIAGONAL are mutually exclusive."
+msgstr "FORMAT = FULL und FORMAT = NODIAGONAL schließen sich gegeseitig aus."
+
+#: src/language/data-io/matrix-reader.c:98
+#: src/language/data-io/matrix-reader.c:114
+#, c-format
+msgid "Matrix dataset lacks a variable called %s."
+msgstr "Im Matrix-Datensatz fehlt die Variable %s."
+
+#: src/language/data-io/matrix-reader.c:105
+#: src/language/data-io/matrix-reader.c:121
+#, c-format
+msgid "Matrix dataset variable %s should be of string type."
+msgstr "Die Variable %s im Matrix-Datensatz sollte vom Typ String sein."
+
 #: src/language/data-io/save-translate.c:170
 #: src/language/data-io/save-translate.c:185
 #, c-format
@@ -5392,36 +5444,36 @@ msgstr "Anzahl der Warnmeldungen (%d) hat die Grenze (%d) Ã¼berschritten.  Verar
 msgid "Errors (%d) exceed limit (%d).  Syntax processing will be halted."
 msgstr "Anzahl der Fehler (%d) hat die Grenze (%d) Ã¼berschritten.  Verarbeitung der Syntax wird angehalten."
 
-#: src/libpspp/zip-reader.c:85
+#: src/libpspp/zip-reader.c:86
 #, c-format
 msgid "Unsupported compression type (%d)"
 msgstr "Komprimierungstyp (%d) wird nicht unterstützt"
 
-#: src/libpspp/zip-reader.c:211
+#: src/libpspp/zip-reader.c:212
 #, c-format
 msgid "Corrupt file at 0x%llx: Expected %<PRIx32>; got %<PRIx32>"
 msgstr "Fehlerhafte Datei an der Stelle 0x%llx: erwartet %<PRIx32>; gefunden %<PRIx32>"
 
-#: src/libpspp/zip-reader.c:335
+#: src/libpspp/zip-reader.c:337
 msgid "Cannot find central directory"
 msgstr "Das Hauptverzeichnis konnte nicht gefunden werden."
 
-#: src/libpspp/zip-reader.c:344
+#: src/libpspp/zip-reader.c:346
 #, c-format
 msgid "Failed to seek to end of central directory record: %s"
 msgstr "Fehler bei der Suche nach dem Ende des Hauptverzeichnis-Eintrags: %s"
 
-#: src/libpspp/zip-reader.c:370
+#: src/libpspp/zip-reader.c:372
 #, c-format
 msgid "Failed to seek to central directory: %s"
 msgstr "Fehler bei der Suche nach dem Hauptverzeichnis: %s"
 
-#: src/libpspp/zip-reader.c:425
+#: src/libpspp/zip-reader.c:427
 #, c-format
 msgid "Failed to seek to start of member `%s': %s"
 msgstr "Fehler bei der Suche des Anfangs des Elements `%s': %s"
 
-#: src/libpspp/zip-reader.c:456
+#: src/libpspp/zip-reader.c:458
 #, c-format
 msgid "Name mismatch in zip archive. Central directory says `%s'; local file header says `%s'"
 msgstr "Diskrepanz zwischen den Namen im Zip-Archiv. Das Hauptverzeichnis besagt `%s'; der lokale Dateikopf besagt `%s'"
@@ -5574,11 +5626,6 @@ msgstr "Unbekannter Papiertyp `%.*s'"
 msgid "error opening input file `%s'"
 msgstr "Fehler beim Ã–ffnen der Eingabedatei `%s'"
 
-#: src/output/measure.c:262
-#, c-format
-msgid "error reading file `%s'"
-msgstr "Fehler beim Lesen der Datei `%s'"
-
 #: src/output/measure.c:279
 #, c-format
 msgid "file `%s' does not state a paper size"
@@ -5672,7 +5719,7 @@ msgstr "Das angegebene Seitenformat ist nicht groß genug um in der Standardschr
 msgid "error drawing output for %s driver: %s"
 msgstr "Fehler beim Zeichnen der Ausgabe für den Treiber %s: %s"
 
-#: src/output/cairo.c:1468
+#: src/output/cairo.c:1469
 #, c-format
 msgid "error writing output file `%s': %s"
 msgstr "Fehler beim Schreiben der Ausgabedatei `%s': %s"
@@ -5784,7 +5831,7 @@ msgstr "%s: die Ausgabeoption `=' fehlt"
 msgid "%s: output option specified more than once"
 msgstr "%s: die Ausgabeoption wurde mehr als einmal angegeben"
 
-#: src/ui/terminal/terminal-opts.c:173
+#: src/ui/terminal/terminal-opts.c:172
 #, c-format
 msgid ""
 "PSPP, a program for statistical analysis of sampled data.\n"
@@ -5857,11 +5904,6 @@ msgstr ""
 "\n"
 "Argumente ohne Optionen werden als Syntaxdateien interpretiert und ausgeführt.\n"
 
-#: src/ui/terminal/terminal.c:62
-#, c-format
-msgid "could not access definition for terminal `%s'"
-msgstr "Auf die Eigenschaften des Terminals `%s' konnte nicht zugegriffen werden."
-
 #: src/ui/gui/psppire-import-assistant.c:535
 #, c-format
 msgid "Could not open `%s'"
@@ -5891,8 +5933,8 @@ msgid "Importing Spreadsheet Data"
 msgstr "Einlesen von Tabellendokumenten"
 
 #: src/ui/gui/psppire-import-assistant.c:853
-#: src/ui/gui/psppire-data-window.c:512 src/ui/gui/psppire-syntax-window.c:581
-#: src/ui/gui/psppire-window.c:684
+#: src/ui/gui/psppire-data-window.c:555 src/ui/gui/psppire-syntax-window.c:572
+#: src/ui/gui/psppire-window.c:683
 msgid "All Files"
 msgstr "Alle Dateien"
 
@@ -5997,15 +6039,15 @@ msgstr "Der Feldinhalt `%.*s' kann nicht als Format %s geparst werden: %s"
 msgid "This input line has too few separators to fill in this field."
 msgstr "Diese Datenzeile besitzt zu wenig Trennzeichen um dieses Feld zu füllen."
 
-#: src/ui/gui/psppire-import-assistant.c:1881
+#: src/ui/gui/psppire-import-assistant.c:1887
 msgid "Choose Separators"
 msgstr "Trennzeichen auswählen"
 
-#: src/ui/gui/psppire-import-assistant.c:2106
+#: src/ui/gui/psppire-import-assistant.c:2112
 msgid "An error occurred reading the spreadsheet file."
 msgstr "Beim Schreiben des Tabellendokuments ist ein Fehler aufgetreten."
 
-#: src/ui/gui/psppire-import-assistant.c:2161
+#: src/ui/gui/psppire-import-assistant.c:2167
 msgid "Adjust Variable Formats"
 msgstr "Einstellen des Variablenformates"
 
@@ -6031,85 +6073,39 @@ msgstr ""
 "Olaf Nöhring\n"
 "Bob Earl"
 
-#: src/ui/gui/help-menu.c:173
+#: src/ui/gui/help-menu.c:174
 #, c-format
 msgid "Help path conversion error: %s"
 msgstr "Fehler bei der Konvertierung des Hilfe-Pfades: %s"
 
-#: src/ui/gui/help-menu.c:202
+#: src/ui/gui/help-menu.c:203
 #, c-format
 msgid "Cannot open reference manual via yelp: %s. Cannot open via html: %s with uri: %s The PSSP manual is also available at %s"
 msgstr "Das Referenzhandbuch kann nicht mit yelp geöffnet werden: %s. Das Handbuch kann auch nicht als html geöffnet werden: %s mit URI: %s Das PSPP Benutzerhandbuch ist auch unter %s verfügbar"
 
-#: src/ui/gui/help-menu.c:227
+#: src/ui/gui/help-menu.c:228
 msgid "_Help"
 msgstr "_Hilfe"
 
-#: src/ui/gui/help-menu.c:230
+#: src/ui/gui/help-menu.c:231
 msgid "_About"
 msgstr "_Ãœber"
 
-#: src/ui/gui/help-menu.c:231
+#: src/ui/gui/help-menu.c:232
 msgid "_Reference Manual"
 msgstr "_Handbuch inkl. Befehlsreferenz"
 
-#: src/ui/gui/main.c:96
-#, c-format
-msgid ""
-"PSPPIRE, a GUI for PSPP, a program for statistical analysis of sampled data.\n"
-"Usage: %s [OPTION]... FILE\n"
-"\n"
-"Arguments to long options also apply to equivalent short options.\n"
-"\n"
-"GUI options:\n"
-"  -q, --no-splash           don't show splash screen during startup\n"
-"\n"
-"%sLanguage options:\n"
-"  -I, --include=DIR         append DIR to search path\n"
-"  -I-, --no-include         clear search path\n"
-"  -a, --algorithm={compatible|enhanced}\n"
-"                            set to `compatible' if you want output\n"
-"                            calculated from broken algorithms\n"
-"  -x, --syntax={compatible|enhanced}\n"
-"                            set to `compatible' to disable PSPP extensions\n"
-"  -i, --interactive         interpret syntax in interactive mode\n"
-"  -s, --safer               don't allow some unsafe operations\n"
-"Default search path: %s\n"
-"\n"
-"Informative output:\n"
-"  -h, --help                display this help and exit\n"
-"  -V, --version             output version information and exit\n"
-"\n"
-"A non-option argument is interpreted as a data file in .sav or .zsav or .por\n"
-"format or a syntax file to load.\n"
-msgstr ""
-"PSPPIRE, eine grafische Oberfläche für PSPP, ein Programm zur statistischen Analyse von Stichprobendaten.\n"
-"Befehl: %s [OPTION]... DATEI\n"
-"\n"
-"Die gezeigten Argumente für die Langform der Optionen finden auch in der entsprechenden Kurzform der Optionen Anwendung.\n"
-"\n"
-"GUI Optionen:\n"
-"  -q, --no-splash           Begrüßungsbildschirm soll beim Start nicht gezeigt werden\n"
-"\n"
-"%sSprachoptionen:\n"
-"  -I, --include=VERZEICHNIS         füge das VERZEICHNIS dem Suchpfad hinzu\n"
-"  -I-, --no-include         Löschung des Suchpfads\n"
-"  -a, --algorithm={compatible|enhanced}\n"
-"                            auf `compatible' setzen, um auch von fehlerhaften\n"
-"                            Algorithmen Ausgaben erzeugen zu lassen\n"
-"  -x, --syntax={compatible|enhanced}\n"
-"                            auf `compatible' setzen, um PSPP-Erweiterungen auszuschalten\n"
-"  -i, --interactive         interpretiere die Syntax im interaktiven Modus\n"
-"  --syntax-encoding=KODIERUNG  legt die Kodierung der Syntaxdatei fest\n"
-"  -s, --safer               unterbindet unsichere Operationen\n"
-"Voreigestellter Suchpfad: %s\n"
-"\n"
-"Information:\n"
-"  -h, --help                Anzeige dieses Hilfetextes\n"
-"  -V, --version             Anzeige der Versionsinformationen\n"
-"\n"
-"Ein Argument ohne Optionen wird als Datendatei im .sav oder .zsav Format interpretiert\n"
-"oder als Syntaxdatei, die ausgeführt wird.\n"
+#: src/ui/gui/main.c:271
+msgid "Show version information and exit"
+msgstr "Zeige die Versionsinformation und beende die Anwendung"
+
+#: src/ui/gui/main.c:295
+msgid "Do not display the splash screen"
+msgstr "Zeige den Startbildschirm nicht an"
+
+#: src/ui/gui/main.c:297
+msgid "Do not attempt single instance negotiation"
+msgstr "Versuche keine Aushandlung einer Single Instance"
 
 #: src/ui/gui/missing-val-dialog.c:214
 msgid "The maximum length of a missing value for a string variable is 8 in UTF-8."
@@ -6123,33 +6119,25 @@ msgstr "Es muss mindestens ein Wert angegeben werden."
 msgid "Incorrect range specification"
 msgstr "Ungültige Bereichsspezifikation"
 
-#: src/ui/gui/psppire.c:316
-msgid "_Reset"
-msgstr "_Zurücksetzen"
-
-#: src/ui/gui/psppire.c:317
-msgid "_Select"
-msgstr "A_swählen"
-
-#: src/ui/gui/psppire-data-editor.c:437
+#: src/ui/gui/psppire-data-editor.c:417
 #, c-format
 msgid "%'d case"
 msgid_plural "%'d cases"
 msgstr[0] "%'d Fall"
 msgstr[1] "%'d Fälle"
 
-#: src/ui/gui/psppire-data-editor.c:442
+#: src/ui/gui/psppire-data-editor.c:422
 #, c-format
 msgid "%'d variable"
 msgid_plural "%'d variables"
 msgstr[0] "%'d Variable"
 msgstr[1] "%'d Variablen"
 
-#: src/ui/gui/psppire-data-editor.c:733
+#: src/ui/gui/psppire-data-editor.c:715
 msgid "Data View"
 msgstr "Datenansicht"
 
-#: src/ui/gui/psppire-data-editor.c:746
+#: src/ui/gui/psppire-data-editor.c:728
 msgid "Variable View"
 msgstr "Variablenansicht"
 
@@ -6165,103 +6153,258 @@ msgstr "Geben Sie eine Zahl ein, um einen neuen Fall hinzuzufügen."
 msgid "Case"
 msgstr "Fall"
 
-#: src/ui/gui/psppire-data-store.c:550
-msgid "var"
-msgstr "var"
+#: src/ui/gui/psppire-data-sheet.c:1662 src/ui/gui/psppire-data-window.c:1303
+msgid "_Insert Case"
+msgstr "_Fall einfügen"
 
-#: src/ui/gui/psppire-data-window.c:169
+#: src/ui/gui/psppire-data-sheet.c:1663 src/ui/gui/psppire-data-window.c:1351
+msgid "Cl_ear Cases"
+msgstr "Fälle lös_chen"
+
+#: src/ui/gui/psppire-data-sheet.c:1678 src/ui/gui/psppire-data-window.c:1302
+#: src/ui/gui/psppire-var-sheet.c:944
+msgid "_Insert Variable"
+msgstr "Variable _einfügen"
+
+#: src/ui/gui/psppire-data-sheet.c:1679 src/ui/gui/psppire-var-sheet.c:945
+msgid "Cl_ear Variables"
+msgstr "Variabl_e löschen"
+
+#: src/ui/gui/psppire-data-sheet.c:1680
+msgid "Sort _Ascending"
+msgstr "_Aufsteigend"
+
+#: src/ui/gui/psppire-data-sheet.c:1681
+msgid "Sort _Descending"
+msgstr "A_bsteigend"
+
+#: src/ui/gui/psppire-data-window.c:212
 msgid "Transformations Pending"
 msgstr "Offene Transformationen werden ausgeführt"
 
-#: src/ui/gui/psppire-data-window.c:185
+#: src/ui/gui/psppire-data-window.c:228
 msgid "Filter off"
 msgstr "Keine Auswahl"
 
-#: src/ui/gui/psppire-data-window.c:197
+#: src/ui/gui/psppire-data-window.c:240
 #, c-format
 msgid "Filter by %s"
 msgstr "Ausgewählt nach %s"
 
-#: src/ui/gui/psppire-data-window.c:218
+#: src/ui/gui/psppire-data-window.c:261
 msgid "No Split"
 msgstr "Keine Aufteilung"
 
-#: src/ui/gui/psppire-data-window.c:227
+#: src/ui/gui/psppire-data-window.c:270
 msgid "Split by "
 msgstr "Aufgeteilt nach"
 
-#: src/ui/gui/psppire-data-window.c:255
+#: src/ui/gui/psppire-data-window.c:298
 msgid "Weights off"
 msgstr "Keine Gewichtung"
 
-#: src/ui/gui/psppire-data-window.c:267
+#: src/ui/gui/psppire-data-window.c:310
 #, c-format
 msgid "Weight by %s"
 msgstr "Gewichtet nach %s"
 
-#: src/ui/gui/psppire-data-window.c:487 src/ui/gui/psppire-data-window.c:491
+#: src/ui/gui/psppire-data-window.c:530 src/ui/gui/psppire-data-window.c:534
 #: src/ui/gui/psppire-dialog-action-aggregate.c:217
-#: src/ui/gui/psppire-output-window.c:357
-#: src/ui/gui/psppire-syntax-window.c:569 src/ui/gui/psppire-window.c:477
+#: src/ui/gui/psppire-output-window.c:382
+#: src/ui/gui/psppire-syntax-window.c:560 src/ui/gui/psppire-window.c:476
 #: src/ui/gui/aggregate.ui:549
 msgid "Save"
 msgstr "Speichern"
 
-#: src/ui/gui/psppire-data-window.c:497
+#: src/ui/gui/psppire-data-window.c:540
 #: src/ui/gui/psppire-dialog-action-aggregate.c:226
 msgid "System Files (*.sav)"
 msgstr "PSPP Systemdateien (*.sav)"
 
-#: src/ui/gui/psppire-data-window.c:502
+#: src/ui/gui/psppire-data-window.c:545
 #: src/ui/gui/psppire-dialog-action-aggregate.c:231
 msgid "Compressed System Files (*.zsav)"
 msgstr "Komprimierte PSPP Systemdateien (*.zsav)"
 
-#: src/ui/gui/psppire-data-window.c:507
+#: src/ui/gui/psppire-data-window.c:550
 #: src/ui/gui/psppire-dialog-action-aggregate.c:236
-#: src/ui/gui/psppire-window.c:673
+#: src/ui/gui/psppire-window.c:672
 msgid "Portable Files (*.por) "
 msgstr "Portable Dateien (*.por) "
 
-#: src/ui/gui/psppire-data-window.c:529
+#: src/ui/gui/psppire-data-window.c:572
 msgid "System File"
 msgstr "PSPP Systemdatei"
 
-#: src/ui/gui/psppire-data-window.c:536
+#: src/ui/gui/psppire-data-window.c:579
 msgid "Compressed System File"
 msgstr "Komprimierte PSPP Systemdatei"
 
-#: src/ui/gui/psppire-data-window.c:542
+#: src/ui/gui/psppire-data-window.c:585
 msgid "Portable File"
 msgstr "Portable Datei"
 
-#: src/ui/gui/psppire-data-window.c:545
+#: src/ui/gui/psppire-data-window.c:588
 msgid "Format:"
 msgstr "Format:"
 
-#: src/ui/gui/psppire-data-window.c:609
+#: src/ui/gui/psppire-data-window.c:652
 msgid "Delete Existing Dataset?"
 msgstr "Vorhandenes Datenblatt löschen?"
 
-#: src/ui/gui/psppire-data-window.c:613
+#: src/ui/gui/psppire-data-window.c:656
 #, c-format
 msgid "Renaming \"%s\" to \"%s\" will destroy the existing dataset named \"%s\".  Are you sure that you want to do this?"
 msgstr "Umbenennen von \"%s\" nach \"%s\" löscht das vorhandene Datenblatt \"%s\".  Sind Sie sicher, dass Sie das tun wollen?"
 
-#: src/ui/gui/psppire-data-window.c:619
+#: src/ui/gui/psppire-data-window.c:662
 msgid "Delete"
 msgstr "Löschen"
 
-#: src/ui/gui/psppire-data-window.c:641
+#: src/ui/gui/psppire-data-window.c:684
 #, c-format
 msgid "Please enter a new name for dataset \"%s\":"
 msgstr "Geben sie einen neuen Namen für das Datenblatt \"%s\" ein:"
 
-#: src/ui/gui/psppire-data-window.c:643
+#: src/ui/gui/psppire-data-window.c:686
 msgid "Rename Dataset"
 msgstr "Datenblatt umbenennen"
 
-#: src/ui/gui/psppire-data-window.c:1301
+#: src/ui/gui/psppire-data-window.c:1165 src/ui/gui/output-window.ui:52
+#: src/ui/gui/syntax-editor.ui:6
+msgid "_File"
+msgstr "_Datei"
+
+#: src/ui/gui/psppire-data-window.c:1169 src/ui/gui/syntax-editor.ui:9
+msgid "_New"
+msgstr "_Neu"
+
+#: src/ui/gui/psppire-data-window.c:1176
+msgid "_Syntax"
+msgstr "_Syntax"
+
+#: src/ui/gui/psppire-data-window.c:1179 src/ui/gui/data-editor.ui:161
+#: src/ui/gui/data-editor.ui:173
+msgid "_Data"
+msgstr "_Daten"
+
+#: src/ui/gui/psppire-data-window.c:1186 src/ui/gui/syntax-editor.ui:20
+msgid "_Open"
+msgstr "_Öffnen"
+
+#: src/ui/gui/psppire-data-window.c:1189
+msgid "_Import Data..."
+msgstr "Daten _importieren..."
+
+#: src/ui/gui/psppire-data-window.c:1197 src/ui/gui/logistic.ui:244
+#: src/ui/gui/regression.ui:50
+msgid "_Save..."
+msgstr "Speichern..."
+
+#: src/ui/gui/psppire-data-window.c:1200
+msgid "Save _As..."
+msgstr "Speichern _unter..."
+
+#: src/ui/gui/psppire-data-window.c:1203
+msgid "_Rename Dataset..."
+msgstr "_Datenblatt umbenennen..."
+
+#: src/ui/gui/psppire-data-window.c:1214
+msgid "_Display Data File Information"
+msgstr "_Informationen zur Arbeitsdatei anzeigen"
+
+#: src/ui/gui/psppire-data-window.c:1221
+msgid "Working File"
+msgstr "Arbeitsdatei"
+
+#: src/ui/gui/psppire-data-window.c:1223
+msgid "_External File..."
+msgstr "_Externe Datei..."
+
+#: src/ui/gui/psppire-data-window.c:1233
+msgid "_Recently Used Data"
+msgstr "_Zuletzt verwendete Daten"
+
+#: src/ui/gui/psppire-data-window.c:1234
+msgid "Recently Used _Files"
+msgstr "Z_uletzt verwendete Dateien"
+
+#: src/ui/gui/psppire-data-window.c:1281 src/ui/gui/output-window.ui:66
+#: src/ui/gui/syntax-editor.ui:43
+msgid "_Quit"
+msgstr "_Beenden"
+
+#: src/ui/gui/psppire-data-window.c:1298 src/ui/gui/output-window.ui:73
+#: src/ui/gui/syntax-editor.ui:50
+msgid "_Edit"
+msgstr "_Bearbeiten"
+
+#: src/ui/gui/psppire-data-window.c:1304
+msgid "_Go To Variable..."
+msgstr "_Gehe zu Variable..."
+
+#: src/ui/gui/psppire-data-window.c:1305
+msgid "_Go To Case..."
+msgstr "Gehe zu _Fall..."
+
+#: src/ui/gui/psppire-data-window.c:1327 src/ui/gui/syntax-editor.ui:53
+msgid "Cu_t"
+msgstr "_Schnittpunkt"
+
+#: src/ui/gui/psppire-data-window.c:1335 src/ui/gui/output-window.ui:80
+#: src/ui/gui/syntax-editor.ui:58
+msgid "_Copy"
+msgstr "_Kopieren"
+
+#: src/ui/gui/psppire-data-window.c:1341 src/ui/gui/syntax-editor.ui:63
+msgid "_Paste"
+msgstr "_Einfügen"
+
+#: src/ui/gui/psppire-data-window.c:1347
+msgid "Clear _Variables"
+msgstr "Variabl_e löschen"
+
+#: src/ui/gui/psppire-data-window.c:1360
+msgid "_Find..."
+msgstr "_Suchen..."
+
+#: src/ui/gui/psppire-data-window.c:1366 src/ui/gui/logistic.ui:229
+msgid "_Options..."
+msgstr "_Optionen..."
+
+#: src/ui/gui/psppire-data-window.c:1644
+msgid "Jump to variable"
+msgstr "Zu Variable springen"
+
+#: src/ui/gui/psppire-data-window.c:1657
+msgid "Jump to a case in the data sheet"
+msgstr "Gehe zu Fall"
+
+#: src/ui/gui/psppire-data-window.c:1671
+msgid "Search for values in the data"
+msgstr "Suche nach Werten im Datensatz"
+
+#: src/ui/gui/psppire-data-window.c:1683
+msgid "Create a new case at the current position"
+msgstr "An der aktuellen Stelle einen neuen Fall einfügen"
+
+#: src/ui/gui/psppire-data-window.c:1695
+msgid "Create a new variable at the current position"
+msgstr "An der aktuellen Stelle eine neue Variable einfügen"
+
+#: src/ui/gui/psppire-data-window.c:1709
+msgid "Split the active dataset"
+msgstr "Datei aufteilen"
+
+#: src/ui/gui/psppire-data-window.c:1721
+msgid "Weight cases by variable"
+msgstr "Fälle anhand einer Variable gewichten"
+
+#: src/ui/gui/psppire-data-window.c:1732
+msgid "Show/hide value labels"
+msgstr "Ein- / Ausblenden der Wertelabels"
+
+#: src/ui/gui/psppire-data-window.c:1875
 msgid "Data Editor"
 msgstr "Dateneditor"
 
@@ -6270,13 +6413,13 @@ msgid "Aggregate destination file"
 msgstr "Zusammenführende Zieldatei"
 
 #: src/ui/gui/psppire-dialog-action-autorecode.c:343
-#: src/ui/gui/psppire-dialog-action-recode.c:536
+#: src/ui/gui/psppire-dialog-action-recode.c:528
 #: src/ui/gui/psppire-dialog-action-recode-different.c:286
 msgid "New"
 msgstr "Neu"
 
 #: src/ui/gui/psppire-dialog-action-autorecode.c:357
-#: src/ui/gui/psppire-dialog-action-recode.c:528
+#: src/ui/gui/psppire-dialog-action-recode.c:520
 #: src/ui/gui/psppire-dialog-action-recode-different.c:299
 msgid "Old"
 msgstr "Alt"
@@ -6385,7 +6528,7 @@ msgid "Contrast %d of %d"
 msgstr "Kontraste %d von %d"
 
 #: src/ui/gui/psppire-dialog-action-paired.c:167 src/ui/gui/examine.ui:266
-#: src/ui/gui/indep-samples.ui:315 src/ui/gui/t-test.ui:276
+#: src/ui/gui/indep-samples.ui:318 src/ui/gui/t-test.ui:280
 msgid "O_ptions..."
 msgstr "_Optionen..."
 
@@ -6393,7 +6536,7 @@ msgstr "_Optionen..."
 msgid "Paired Samples T Test"
 msgstr "T-Test bei gepaarten Stichproben"
 
-#: src/ui/gui/psppire-dialog-action-recode-same.c:108 src/ui/gui/recode.ui:373
+#: src/ui/gui/psppire-dialog-action-recode-same.c:108 src/ui/gui/recode.ui:374
 msgid "Recode into Same Variables"
 msgstr "Umkodieren in dieselbe Variable "
 
@@ -6461,7 +6604,7 @@ msgid "%d thru %d"
 msgstr "%d bis %d"
 
 #: src/ui/gui/psppire-dialog-action-two-sample.c:186
-#: src/ui/gui/k-related.ui:181
+#: src/ui/gui/k-independent.ui:387 src/ui/gui/k-related.ui:180
 msgid "Test Type"
 msgstr "Testtyp"
 
@@ -6532,51 +6675,51 @@ msgstr "Weiter"
 msgid "Back"
 msgstr "Zurück"
 
-#: src/ui/gui/psppire-output-view.c:354
+#: src/ui/gui/psppire-output-view.c:366
 msgid "Message"
 msgstr "Nachricht"
 
-#: src/ui/gui/psppire-output-view.c:476
+#: src/ui/gui/psppire-output-view.c:488
 msgid "failed to create temporary directory during clipboard operation"
 msgstr "Erstellung eines temporären Verzeichnisses während einer Operation der Zwischenablage fehlgeschlagen"
 
-#: src/ui/gui/psppire-output-window.c:245
+#: src/ui/gui/psppire-output-window.c:270
 msgid "Infer file type from extension"
 msgstr "Dateityp aus Dateiendung bestimmen"
 
-#: src/ui/gui/psppire-output-window.c:246
+#: src/ui/gui/psppire-output-window.c:271
 msgid "PDF (*.pdf)"
 msgstr "PDF (*.pdf)"
 
-#: src/ui/gui/psppire-output-window.c:247
+#: src/ui/gui/psppire-output-window.c:272
 msgid "HTML (*.html)"
 msgstr "HTML (*.html)"
 
-#: src/ui/gui/psppire-output-window.c:248
+#: src/ui/gui/psppire-output-window.c:273
 msgid "OpenDocument (*.odt)"
 msgstr "OpenDocument (*.odt)"
 
-#: src/ui/gui/psppire-output-window.c:249
+#: src/ui/gui/psppire-output-window.c:274
 msgid "Text (*.txt)"
 msgstr "Text (*.txt)"
 
-#: src/ui/gui/psppire-output-window.c:250
+#: src/ui/gui/psppire-output-window.c:275
 msgid "Text [plain] (*.txt)"
 msgstr "Text [ohne Formatierung] (*.txt)"
 
-#: src/ui/gui/psppire-output-window.c:251
+#: src/ui/gui/psppire-output-window.c:276
 msgid "PostScript (*.ps)"
 msgstr "PostScript (*.ps)"
 
-#: src/ui/gui/psppire-output-window.c:252
+#: src/ui/gui/psppire-output-window.c:277
 msgid "Comma-Separated Values (*.csv)"
 msgstr "CSV Datei (*.csv)"
 
-#: src/ui/gui/psppire-output-window.c:353
+#: src/ui/gui/psppire-output-window.c:378
 msgid "Export Output"
 msgstr "Ausgabe exportieren"
 
-#: src/ui/gui/psppire-output-window.c:527
+#: src/ui/gui/psppire-output-window.c:582
 msgid "Output Viewer"
 msgstr "Ausgabeanzeige"
 
@@ -6584,24 +6727,24 @@ msgstr "Ausgabeanzeige"
 msgid "(empty)"
 msgstr "(leer)"
 
-#: src/ui/gui/psppire-syntax-window.c:544
+#: src/ui/gui/psppire-syntax-window.c:535
 #, c-format
 msgid "Saved file `%s'"
 msgstr "Gepeicherte Datei `%s'"
 
-#: src/ui/gui/psppire-syntax-window.c:565
+#: src/ui/gui/psppire-syntax-window.c:556
 msgid "Save Syntax"
 msgstr "Syntax speichern"
 
-#: src/ui/gui/psppire-syntax-window.c:575 src/ui/gui/psppire-window.c:678
+#: src/ui/gui/psppire-syntax-window.c:566 src/ui/gui/psppire-window.c:677
 msgid "Syntax Files (*.sps) "
 msgstr "Syntax Dateien  (*.sps) "
 
-#: src/ui/gui/psppire-syntax-window.c:879
+#: src/ui/gui/psppire-syntax-window.c:929
 msgid "Syntax Editor"
 msgstr "Syntax Editor"
 
-#: src/ui/gui/psppire-syntax-window.c:894
+#: src/ui/gui/psppire-syntax-window.c:949
 #, c-format
 msgid "Cannot load syntax file `%s'"
 msgstr "Die Syntax-Datei `%s' kann nicht geladen werden"
@@ -6638,63 +6781,63 @@ msgstr "Geben Sie einen Variablennamen ein, um eine neue Variable hinzuzufügen"
 msgid "{%s, %s}\n"
 msgstr "{%s,%s}\n"
 
-#: src/ui/gui/psppire-var-sheet.c:1374 src/language/stats/crosstabs.q:1390
+#: src/ui/gui/psppire-var-sheet.c:1365 src/language/stats/crosstabs.q:1390
 #: src/ui/gui/compute.ui:287
 msgid "Type"
 msgstr "Typ"
 
-#: src/ui/gui/psppire-var-sheet.c:1377 src/ui/gui/compute.ui:199
+#: src/ui/gui/psppire-var-sheet.c:1368 src/ui/gui/compute.ui:199
 msgid "Width"
 msgstr "Spaltenbreite"
 
-#: src/ui/gui/psppire-var-sheet.c:1379
+#: src/ui/gui/psppire-var-sheet.c:1370
 msgid "Decimals"
 msgstr "Dezimalstellen"
 
-#: src/ui/gui/psppire-var-sheet.c:1383 src/ui/gui/val-labs-dialog.ui:178
+#: src/ui/gui/psppire-var-sheet.c:1374 src/ui/gui/val-labs-dialog.ui:178
 msgid "Value Labels"
 msgstr "Wertelabels"
 
-#: src/ui/gui/psppire-var-sheet.c:1386 src/ui/gui/examine.ui:398
-#: src/ui/gui/t-test.ui:88
+#: src/ui/gui/psppire-var-sheet.c:1377 src/ui/gui/examine.ui:399
+#: src/ui/gui/t-test.ui:89
 msgid "Missing Values"
 msgstr "Fehlende Werte"
 
-#: src/ui/gui/psppire-var-sheet.c:1391
+#: src/ui/gui/psppire-var-sheet.c:1382
 msgid "Align"
 msgstr "Ausrichtung"
 
-#: src/ui/gui/psppire-var-sheet.c:1397
+#: src/ui/gui/psppire-var-sheet.c:1388
 msgid "Measure"
 msgstr "Messniveau"
 
-#: src/ui/gui/psppire-var-sheet.c:1403
+#: src/ui/gui/psppire-var-sheet.c:1394
 msgid "Role"
 msgstr "Rolle"
 
-#: src/ui/gui/psppire-window.c:458
+#: src/ui/gui/psppire-window.c:457
 #, c-format
 msgid "Save the changes to `%s' before closing?"
 msgstr "Änderungen an `%s'  vor dem Schließen speichern?"
 
-#: src/ui/gui/psppire-window.c:465
+#: src/ui/gui/psppire-window.c:464
 #, c-format
 msgid "If you don't save, changes from the last %ld seconds will be permanently lost."
 msgstr "Falls Sie nicht speichern, gehen die Ã„nderungen der letzten %ld Sekunden dauerhaft verloren."
 
-#: src/ui/gui/psppire-window.c:469
+#: src/ui/gui/psppire-window.c:468
 msgid "Close _without saving"
 msgstr "Schließen _ohne Speichern"
 
-#: src/ui/gui/psppire-window.c:649 src/ui/gui/psppire-window.c:653
+#: src/ui/gui/psppire-window.c:648 src/ui/gui/psppire-window.c:652
 msgid "Open"
 msgstr "Öffnen"
 
-#: src/ui/gui/psppire-window.c:658
+#: src/ui/gui/psppire-window.c:657
 msgid "Data and Syntax Files"
 msgstr "Daten- und Syntaxdateien"
 
-#: src/ui/gui/psppire-window.c:667
+#: src/ui/gui/psppire-window.c:666
 msgid "System Files (*.sav, *.zsav)"
 msgstr "PSPP Systemdateien (*.sav, *.zsav)"
 
@@ -6703,7 +6846,7 @@ msgstr "PSPP Systemdateien (*.sav, *.zsav)"
 msgid "Con_fidence Interval: %2d %%"
 msgstr "_Konfidenzintervall: %2d %%"
 
-#: src/ui/gui/val-labs-dialog.c:573
+#: src/ui/gui/val-labs-dialog.c:575
 #, c-format
 msgid "%s = `%s'"
 msgstr "%s = `%s'"
@@ -7176,11 +7319,11 @@ msgstr "_Leere Strings als benutzerdefiniert fehlend markieren"
 msgid "_Test Variable List:"
 msgstr "Test_variablen:"
 
-#: src/ui/gui/binomial.ui:144 src/ui/gui/chi-square.ui:266
+#: src/ui/gui/binomial.ui:144 src/ui/gui/chi-square.ui:265
 msgid "_Get from data"
 msgstr "Aus _den Daten ermitteln"
 
-#: src/ui/gui/binomial.ui:165 src/ui/gui/indep-samples.ui:133
+#: src/ui/gui/binomial.ui:165 src/ui/gui/indep-samples.ui:134
 msgid "_Cut point:"
 msgstr "_Trennwert:"
 
@@ -7212,31 +7355,31 @@ msgstr "_String"
 msgid "_Numeric"
 msgstr "_Numerisch"
 
-#: src/ui/gui/compute.ui:326
+#: src/ui/gui/compute.ui:327
 msgid "Compute Variable"
 msgstr "Variable berechnen"
 
-#: src/ui/gui/compute.ui:364
+#: src/ui/gui/compute.ui:365
 msgid "Target _Variable:"
 msgstr "Ziel_variable:"
 
-#: src/ui/gui/compute.ui:395
+#: src/ui/gui/compute.ui:396
 msgid "_Type & Label..."
-msgstr "Typ & _Label ..."
+msgstr "Typ & _Label..."
 
-#: src/ui/gui/compute.ui:452
+#: src/ui/gui/compute.ui:453
 msgid "="
 msgstr "="
 
-#: src/ui/gui/compute.ui:509
+#: src/ui/gui/compute.ui:510
 msgid "_Numeric Expressions:"
 msgstr "Numerischer _Ausdruck:"
 
-#: src/ui/gui/compute.ui:581
+#: src/ui/gui/compute.ui:582
 msgid "_Functions:"
 msgstr "_Funktionen:"
 
-#: src/ui/gui/compute.ui:661
+#: src/ui/gui/compute.ui:662
 msgid "_If..."
 msgstr "F_alls..."
 
@@ -7284,35 +7427,35 @@ msgstr "Kategorien-C_luster:"
 msgid "Bivariate Correlations"
 msgstr "Bivariate Korrelationen"
 
-#: src/ui/gui/correlation.ui:133
+#: src/ui/gui/correlation.ui:132
 msgid "Pearso_n"
 msgstr "_Pearson"
 
-#: src/ui/gui/correlation.ui:149
+#: src/ui/gui/correlation.ui:148
 msgid "_Kendall's tau-b"
 msgstr "_Kendalls Tau b"
 
-#: src/ui/gui/correlation.ui:165
+#: src/ui/gui/correlation.ui:164
 msgid "_Spearman"
 msgstr "_Spearman"
 
-#: src/ui/gui/correlation.ui:185
+#: src/ui/gui/correlation.ui:184
 msgid "Correlation Coefficients"
 msgstr "Korrelationskoeffizienten"
 
-#: src/ui/gui/correlation.ui:209
+#: src/ui/gui/correlation.ui:208
 msgid "_Two-tailed"
 msgstr "Z_weiseitig"
 
-#: src/ui/gui/correlation.ui:226
+#: src/ui/gui/correlation.ui:225
 msgid "One-tai_led"
 msgstr "E_inseitig"
 
-#: src/ui/gui/correlation.ui:247
+#: src/ui/gui/correlation.ui:246
 msgid "Test of Significance"
 msgstr "Signifikanztest"
 
-#: src/ui/gui/correlation.ui:260
+#: src/ui/gui/correlation.ui:259
 msgid "_Flag significant correlations"
 msgstr "Signifi_kante Korrelationen markieren"
 
@@ -7320,19 +7463,19 @@ msgstr "Signifi_kante Korrelationen markieren"
 msgid "Count Occurrences of Values within Cases"
 msgstr "Häufigkeiten von Werten in den Fällen zählen"
 
-#: src/ui/gui/count.ui:102
+#: src/ui/gui/count.ui:101
 msgid "Numeric _Variables:"
 msgstr "_Numerische Variablen:"
 
-#: src/ui/gui/count.ui:132
+#: src/ui/gui/count.ui:131
 msgid "_Target Variable:"
 msgstr "_Zielvariable:"
 
-#: src/ui/gui/count.ui:163
+#: src/ui/gui/count.ui:162
 msgid "Target _Label:"
 msgstr "Ziel_label:"
 
-#: src/ui/gui/count.ui:177
+#: src/ui/gui/count.ui:176
 msgid "_Define Values..."
 msgstr "_Werte definieren..."
 
@@ -7352,11 +7495,11 @@ msgstr "Datendateikommentare"
 msgid "Comments:"
 msgstr "Kommentare"
 
-#: src/ui/gui/comments.ui:89
+#: src/ui/gui/comments.ui:90
 msgid "Display comments in output"
 msgstr "Kommentare in der Ausgabe anzeigen"
 
-#: src/ui/gui/comments.ui:110
+#: src/ui/gui/comments.ui:111
 msgid "Column Number: 0"
 msgstr "Spaltennummer: 0"
 
@@ -7368,15 +7511,15 @@ msgstr "Kreuztabellen: Zellen anzeigen"
 msgid "Cell Display"
 msgstr "Anzeige in den Zellen"
 
-#: src/ui/gui/crosstabs.ui:81
+#: src/ui/gui/crosstabs.ui:82
 msgid "Crosstabs"
 msgstr "Kreuztabellen"
 
-#: src/ui/gui/crosstabs.ui:132
+#: src/ui/gui/crosstabs.ui:133
 msgid "_Rows"
 msgstr "_Reihen"
 
-#: src/ui/gui/crosstabs.ui:177
+#: src/ui/gui/crosstabs.ui:178
 msgid "_Columns"
 msgstr "S_palten"
 
@@ -7392,27 +7535,27 @@ msgstr "_Statistiken..."
 msgid "Ce_lls..."
 msgstr "_Zellen..."
 
-#: src/ui/gui/crosstabs.ui:330
+#: src/ui/gui/crosstabs.ui:331
 msgid "Crosstabs: Format"
 msgstr "Kreuztabellen: Format"
 
-#: src/ui/gui/crosstabs.ui:352
+#: src/ui/gui/crosstabs.ui:353
 msgid "Print tables"
 msgstr "Tabellen ausgeben"
 
-#: src/ui/gui/crosstabs.ui:368
+#: src/ui/gui/crosstabs.ui:369
 msgid "Pivot"
 msgstr "Pivottabelle"
 
-#: src/ui/gui/crosstabs.ui:384 src/ui/gui/sort.ui:141
+#: src/ui/gui/crosstabs.ui:385 src/ui/gui/sort.ui:141
 msgid "Ascending"
 msgstr "Aufsteigend"
 
-#: src/ui/gui/crosstabs.ui:435
+#: src/ui/gui/crosstabs.ui:437
 msgid "Crosstabs: Statistics"
 msgstr "Kreuztabellen: Statistiken"
 
-#: src/ui/gui/crosstabs.ui:478 src/ui/gui/oneway.ui:451
+#: src/ui/gui/crosstabs.ui:480 src/ui/gui/oneway.ui:452
 msgid "Statistics"
 msgstr "Statistiken"
 
@@ -7436,111 +7579,44 @@ msgstr "Erwartete Werte:"
 msgid "Test _Variables"
 msgstr "_Testvariablen:"
 
-#: src/ui/gui/chi-square.ui:283
+#: src/ui/gui/chi-square.ui:282
 msgid "Use _specified range"
 msgstr "_Angegebenen Bereich verwenden"
 
-#: src/ui/gui/chi-square.ui:308
+#: src/ui/gui/chi-square.ui:307
 msgid "_Lower:"
 msgstr "_Minimum:"
 
-#: src/ui/gui/chi-square.ui:322
+#: src/ui/gui/chi-square.ui:321
 msgid "_Upper:"
 msgstr "Ma_ximum:"
 
-#: src/ui/gui/chi-square.ui:366
+#: src/ui/gui/chi-square.ui:365
 msgid "Expected Range:"
 msgstr "Erwarteter Bereich:"
 
-#: src/ui/gui/data-sheet.ui:51 src/ui/gui/data-editor.ui:115
-#: src/ui/gui/output-window.ui:30 src/ui/gui/syntax-editor.ui:71
-#: src/ui/gui/var-sheet.ui:35
-msgid "_Edit"
-msgstr "_Bearbeiten"
-
-#: src/ui/gui/data-sheet.ui:57 src/ui/gui/var-sheet.ui:41
-msgid "Insert Variable"
-msgstr "Variable einfügen"
-
-#: src/ui/gui/data-sheet.ui:58 src/ui/gui/var-sheet.ui:42
-msgid "Create a new variable at the current position"
-msgstr "An der aktuellen Stelle eine neue Variable einfügen"
-
-#: src/ui/gui/data-sheet.ui:65
-msgid "Insert Case"
-msgstr "_Fall einfügen"
-
-#: src/ui/gui/data-sheet.ui:66
-msgid "Create a new case at the current position"
-msgstr "An der aktuellen Stelle einen neuen Fall einfügen"
-
-#: src/ui/gui/data-sheet.ui:73 src/ui/gui/var-sheet.ui:49
-msgid "Go To Variable..."
-msgstr "_Gehe zu Variable..."
-
-#: src/ui/gui/data-sheet.ui:74 src/ui/gui/data-editor.ui:530
-#: src/ui/gui/var-sheet.ui:50
-msgid "Jump to variable"
-msgstr "Zu Variable springen"
-
-#: src/ui/gui/data-sheet.ui:80
-msgid "Go To Case..."
-msgstr "Gehe zu Fall..."
-
-#: src/ui/gui/data-sheet.ui:82
-msgid "Jump to a case in the data sheet"
-msgstr "Gehe zu Fall"
-
-#: src/ui/gui/data-sheet.ui:107 src/ui/gui/var-sheet.ui:75
-msgid "Cl_ear Variables"
-msgstr "Variabl_e löschen"
-
-#: src/ui/gui/data-sheet.ui:108 src/ui/gui/var-sheet.ui:76
-msgid "Delete the variables at the selected position(s)"
-msgstr "Die ausgewählte(n) Variable(n) löschen"
-
-#: src/ui/gui/data-sheet.ui:116
-msgid "_Clear Cases"
-msgstr "Fälle lös_chen"
-
-#: src/ui/gui/data-sheet.ui:117
-msgid "Delete the cases at the selected position(s)"
-msgstr "Lösche Fälle in den/der ausgewählten Position(en)"
-
-#: src/ui/gui/data-sheet.ui:124
-msgid "_Find..."
-msgstr "_Suchen..."
-
-#: src/ui/gui/data-sheet.ui:131
-msgid "Sort _Ascending"
-msgstr "_Aufsteigend"
-
-#: src/ui/gui/data-sheet.ui:138
-msgid "Sort _Descending"
-msgstr "A_bsteigend"
-
-#: src/ui/gui/descriptives.ui:116 src/ui/gui/factor.ui:776
-#: src/ui/gui/recode.ui:619
+#: src/ui/gui/descriptives.ui:115 src/ui/gui/factor.ui:779
+#: src/ui/gui/recode.ui:621
 msgid "_Variables:"
 msgstr "_Variablen:"
 
-#: src/ui/gui/descriptives.ui:161
+#: src/ui/gui/descriptives.ui:160
 msgid "S_tatistics:"
 msgstr "_Statistiken:"
 
-#: src/ui/gui/descriptives.ui:215
+#: src/ui/gui/descriptives.ui:214
 msgid "_Exclude entire case if any selected variable is missing"
 msgstr "_Ausschluss des gesamten Falls, wenn eine der gewählten Variablen fehlt "
 
-#: src/ui/gui/descriptives.ui:232
+#: src/ui/gui/descriptives.ui:231
 msgid "_Include user-missing data in analysis"
 msgstr "_Benutzerdefiniert fehlende Werte in Analyse mit einschließen"
 
-#: src/ui/gui/descriptives.ui:249
+#: src/ui/gui/descriptives.ui:248
 msgid "Save _Z-scores of selected variables as new variables"
 msgstr "_Z-Werte der gewählten Variablen als neue Variablen speichern"
 
-#: src/ui/gui/descriptives.ui:271
+#: src/ui/gui/descriptives.ui:270
 msgid "Options:"
 msgstr "Optionen:"
 
@@ -7560,35 +7636,35 @@ msgstr "F_aktorenliste"
 msgid "_Dependent List:"
 msgstr "Liste der ab_hängigen Variablen"
 
-#: src/ui/gui/examine.ui:314
+#: src/ui/gui/examine.ui:315
 msgid "Explore: Options"
 msgstr "Explorative Datenanalyse: Optionen"
 
-#: src/ui/gui/examine.ui:337 src/ui/gui/t-test.ui:64
+#: src/ui/gui/examine.ui:338 src/ui/gui/t-test.ui:65
 msgid "Exclude cases _listwise"
 msgstr "_Listenweiser Fallausschluss"
 
-#: src/ui/gui/examine.ui:355
+#: src/ui/gui/examine.ui:356
 msgid "Exclude cases _pairwise"
 msgstr "_Paarweiser Fallausschluss"
 
-#: src/ui/gui/examine.ui:374
+#: src/ui/gui/examine.ui:375
 msgid "_Report values"
 msgstr "W_erte einbeziehen"
 
-#: src/ui/gui/examine.ui:430
+#: src/ui/gui/examine.ui:432
 msgid "Explore: Statistics"
 msgstr "Explorative Datenanalyse: Statistiken"
 
-#: src/ui/gui/examine.ui:448 src/ui/gui/oneway.ui:412
+#: src/ui/gui/examine.ui:450 src/ui/gui/oneway.ui:413
 msgid "_Descriptives"
 msgstr "_Deskriptive"
 
-#: src/ui/gui/examine.ui:465
+#: src/ui/gui/examine.ui:467
 msgid "_Extremes"
 msgstr "_Ausreißer"
 
-#: src/ui/gui/examine.ui:482
+#: src/ui/gui/examine.ui:484
 msgid "_Percentiles"
 msgstr "_Perzentile"
 
@@ -7628,71 +7704,71 @@ msgstr "Methode"
 msgid "_Display rotated solution"
 msgstr "_Rotierte Lösung anzeigen"
 
-#: src/ui/gui/factor.ui:164 src/ui/gui/factor.ui:563
+#: src/ui/gui/factor.ui:164 src/ui/gui/factor.ui:564
 msgid "Ma_ximum iterations for convergence:"
 msgstr "Ma_ximale Anzahl der Iterationsschritte für Konvergenz:"
 
-#: src/ui/gui/factor.ui:223 src/ui/gui/factor.ui:237
+#: src/ui/gui/factor.ui:224 src/ui/gui/factor.ui:238
 msgid "Principal Components Analysis"
 msgstr "Hauptkomponentenanalyse"
 
-#: src/ui/gui/factor.ui:228 src/ui/gui/factor.ui:240
+#: src/ui/gui/factor.ui:229 src/ui/gui/factor.ui:241
 msgid "Principal Axis Factoring"
 msgstr "Hauptachsen-Faktorenanalyse"
 
-#: src/ui/gui/factor.ui:246
+#: src/ui/gui/factor.ui:247
 msgid "Factor Analysis: Extraction"
 msgstr "Faktorenanalyse: Extraktion"
 
-#: src/ui/gui/factor.ui:271
+#: src/ui/gui/factor.ui:272
 msgid "_Method: "
 msgstr "_Methode:"
 
-#: src/ui/gui/factor.ui:326
+#: src/ui/gui/factor.ui:327
 msgid "Co_rrelation matrix"
 msgstr "_Korrelationsmatrix"
 
-#: src/ui/gui/factor.ui:342
+#: src/ui/gui/factor.ui:343
 msgid "Co_variance matrix"
 msgstr "Ko_varianzmatrix"
 
-#: src/ui/gui/factor.ui:363
+#: src/ui/gui/factor.ui:364
 msgid "Analyze"
 msgstr "Analysieren"
 
-#: src/ui/gui/factor.ui:388
+#: src/ui/gui/factor.ui:389
 msgid "_Unrotated factor solution"
 msgstr "Nicht _rotierte Faktorlösung"
 
-#: src/ui/gui/factor.ui:404
+#: src/ui/gui/factor.ui:405
 msgid "_Scree plot"
 msgstr "_Screeplot"
 
-#: src/ui/gui/factor.ui:424 src/ui/gui/histogram.ui:130 src/ui/gui/roc.ui:313
+#: src/ui/gui/factor.ui:425 src/ui/gui/histogram.ui:130 src/ui/gui/roc.ui:313
 msgid "Display"
 msgstr "Anzeige"
 
-#: src/ui/gui/factor.ui:507
+#: src/ui/gui/factor.ui:508
 msgid "_Number of factors:"
 msgstr "_Anzahl der Faktoren:"
 
-#: src/ui/gui/factor.ui:544
+#: src/ui/gui/factor.ui:545
 msgid "Extract"
 msgstr "Extrahieren"
 
-#: src/ui/gui/factor.ui:620
+#: src/ui/gui/factor.ui:622
 msgid "Factor Analysis"
 msgstr "Faktorenanalyse"
 
-#: src/ui/gui/factor.ui:651 src/ui/gui/data-editor.ui:312
+#: src/ui/gui/factor.ui:654 src/ui/gui/data-editor.ui:250
 msgid "_Descriptives..."
 msgstr "_Deskriptive Statistiken..."
 
-#: src/ui/gui/factor.ui:664
+#: src/ui/gui/factor.ui:667
 msgid "_Extraction..."
 msgstr "E_xtraktion..."
 
-#: src/ui/gui/factor.ui:678
+#: src/ui/gui/factor.ui:681
 msgid "_Rotations..."
 msgstr "Ro_tation..."
 
@@ -7744,7 +7820,7 @@ msgstr "_Niemals"
 msgid "If no _more than "
 msgstr "_Wenn nicht mehr als "
 
-#: src/ui/gui/frequencies.ui:112 src/ui/gui/frequencies.ui:435
+#: src/ui/gui/frequencies.ui:112 src/ui/gui/frequencies.ui:436
 msgid "100"
 msgstr "100"
 
@@ -7776,87 +7852,87 @@ msgstr "Ab_steigenden Häufigkeiten"
 msgid "Order by"
 msgstr "Sortieren nach"
 
-#: src/ui/gui/frequencies.ui:306
+#: src/ui/gui/frequencies.ui:307
 msgid "Frequencies: Charts"
 msgstr "Häufigkeiten: Diagramme"
 
-#: src/ui/gui/frequencies.ui:337
+#: src/ui/gui/frequencies.ui:338
 msgid "Scale:"
 msgstr "Skala:"
 
-#: src/ui/gui/frequencies.ui:347
+#: src/ui/gui/frequencies.ui:348
 msgid "_Frequencies"
 msgstr "_Häufigkeiten"
 
-#: src/ui/gui/frequencies.ui:364
+#: src/ui/gui/frequencies.ui:365
 msgid "_Percentages"
 msgstr "_Prozentwerte"
 
-#: src/ui/gui/frequencies.ui:388
+#: src/ui/gui/frequencies.ui:389
 msgid "Exclude values _below "
 msgstr "Ausschließen von Werten _unter "
 
-#: src/ui/gui/frequencies.ui:403
+#: src/ui/gui/frequencies.ui:404
 msgid "Exclude values _above "
 msgstr "Ausschließen von Werten _über "
 
-#: src/ui/gui/frequencies.ui:422 src/ui/gui/reliability.ui:212
+#: src/ui/gui/frequencies.ui:423 src/ui/gui/reliability.ui:211
 msgid "0"
 msgstr "0"
 
-#: src/ui/gui/frequencies.ui:450
+#: src/ui/gui/frequencies.ui:451
 msgid "<b>Chart Formatting</b>"
 msgstr "<b>Diagrammformat</b>"
 
-#: src/ui/gui/frequencies.ui:475
+#: src/ui/gui/frequencies.ui:476
 msgid "Draw _histograms"
 msgstr "_Histogramme zeichnen"
 
-#: src/ui/gui/frequencies.ui:491
+#: src/ui/gui/frequencies.ui:492
 msgid "Superimpose _normal curve"
 msgstr "_Normalverteilungskurve anzeigen"
 
-#: src/ui/gui/frequencies.ui:511
+#: src/ui/gui/frequencies.ui:512
 msgid "<b>Histograms</b>"
 msgstr "<b>Histogramme</b>"
 
-#: src/ui/gui/frequencies.ui:536
+#: src/ui/gui/frequencies.ui:537
 msgid "Draw _bar charts"
 msgstr "_Balkendiagramm zeichnen"
 
-#: src/ui/gui/frequencies.ui:556
+#: src/ui/gui/frequencies.ui:557
 msgid "<b>Bar Charts</b>"
 msgstr "<b>Balkendiagramme</b>"
 
-#: src/ui/gui/frequencies.ui:581
+#: src/ui/gui/frequencies.ui:582
 msgid "Draw _pie charts"
 msgstr "_Kreisdiagramm zeichnen"
 
-#: src/ui/gui/frequencies.ui:597
+#: src/ui/gui/frequencies.ui:598
 msgid "Include slices for _missing values"
 msgstr "_Segmente für fehlende Werte einfügen"
 
-#: src/ui/gui/frequencies.ui:617
+#: src/ui/gui/frequencies.ui:618
 msgid "<b>Pie Charts</b>"
 msgstr "<b>Kreisdiagramme</b>"
 
-#: src/ui/gui/frequencies.ui:705 src/ui/gui/rank.ui:471
+#: src/ui/gui/frequencies.ui:707 src/ui/gui/rank.ui:472
 msgid "_Variable(s):"
 msgstr "_Variable(n):"
 
-#: src/ui/gui/frequencies.ui:749
+#: src/ui/gui/frequencies.ui:751
 msgid "_Statistics:"
 msgstr "_Statistiken:"
 
-#: src/ui/gui/frequencies.ui:763
+#: src/ui/gui/frequencies.ui:765
 msgid "Include _missing values"
 msgstr "_Fehlende Werte mit einschließen"
 
-#: src/ui/gui/frequencies.ui:786
+#: src/ui/gui/frequencies.ui:788
 msgid "Ch_arts..."
 msgstr "_Diagramme..."
 
-#: src/ui/gui/frequencies.ui:801
+#: src/ui/gui/frequencies.ui:803
 msgid "Frequency _Tables..."
 msgstr "_Häufigkeitstabellen..."
 
@@ -7868,38 +7944,66 @@ msgstr "Histogramm"
 msgid "_Display normal curve"
 msgstr "_Normalverteilungskurve anzeigen"
 
-#: src/ui/gui/indep-samples.ui:9
+#: src/ui/gui/indep-samples.ui:9 src/ui/gui/k-independent.ui:19
 msgid "Define Groups"
 msgstr "Gruppenvariable"
 
-#: src/ui/gui/indep-samples.ui:58
+#: src/ui/gui/indep-samples.ui:59
 msgid "Group_2 value:"
 msgstr "Wert Gruppe_2:"
 
-#: src/ui/gui/indep-samples.ui:72
+#: src/ui/gui/indep-samples.ui:73
 msgid "Group_1 value:"
 msgstr "Wert Gruppe_1:"
 
-#: src/ui/gui/indep-samples.ui:173
+#: src/ui/gui/indep-samples.ui:174
 msgid "_Use specified values:"
 msgstr "_Angegebene Werte verwenden:"
 
-#: src/ui/gui/indep-samples.ui:241
+#: src/ui/gui/indep-samples.ui:243
 msgid "Independent-Samples T Test"
 msgstr "T-Test bei unabhängigen Stichproben"
 
-#: src/ui/gui/indep-samples.ui:300
+#: src/ui/gui/indep-samples.ui:303
 msgid "_Define Groups..."
 msgstr "Gruppen _definieren"
 
-#: src/ui/gui/indep-samples.ui:382 src/ui/gui/t-test.ui:191
+#: src/ui/gui/indep-samples.ui:385 src/ui/gui/t-test.ui:195
 msgid "_Test Variable(s):"
 msgstr "_Testvariable(n):"
 
-#: src/ui/gui/indep-samples.ui:435
+#: src/ui/gui/indep-samples.ui:438 src/ui/gui/k-independent.ui:148
 msgid "_Grouping Variable:"
 msgstr "_Gruppenvariable:"
 
+#: src/ui/gui/k-independent.ui:46
+msgid "_Upper limit:"
+msgstr "Ma_ximum:"
+
+#: src/ui/gui/k-independent.ui:60
+msgid "_Lower limit:"
+msgstr "_Minimum:"
+
+#: src/ui/gui/k-independent.ui:120
+msgid "Tests for Several Independent Samples"
+msgstr "Tests für  mehreren unabhängige Stichproben"
+
+#: src/ui/gui/k-independent.ui:191 src/ui/gui/ks-one-sample.ui:115
+msgid "Test _Variable List:"
+msgstr "_Testvariablen:"
+
+#: src/ui/gui/k-independent.ui:303
+msgid "_Define Groups"
+msgstr "Gruppenvariable"
+
+#: src/ui/gui/k-independent.ui:348
+msgid "_Kruskal-Wallis H"
+msgstr "_Kruskal-Wallis H"
+
+#: src/ui/gui/k-independent.ui:365 src/ui/gui/runs.ui:124
+msgid "_Median"
+msgstr "_Median"
+
 #: src/ui/gui/k-means.ui:8
 msgid "K-Means Cluster Analysis"
 msgstr "k-Means Clusteranalyse"
@@ -7912,43 +8016,39 @@ msgstr "Anzahl der Cluster:"
 msgid "Tests for Several Related Samples"
 msgstr "Tests für  mehreren verbundenen Stichproben"
 
-#: src/ui/gui/k-related.ui:97
+#: src/ui/gui/k-related.ui:96
 msgid "_Test Variables:"
 msgstr "Test_variablen:"
 
-#: src/ui/gui/k-related.ui:129
+#: src/ui/gui/k-related.ui:128
 msgid "_Friedman"
 msgstr "Frie_dman"
 
-#: src/ui/gui/k-related.ui:145
+#: src/ui/gui/k-related.ui:144
 msgid "_Kendall's W"
 msgstr "Kendall-_W"
 
-#: src/ui/gui/k-related.ui:161
+#: src/ui/gui/k-related.ui:160
 msgid "_Cochran's Q"
 msgstr "_Cochran-Q"
 
-#: src/ui/gui/ks-one-sample.ui:116
-msgid "Test _Variable List:"
-msgstr "_Testvariablen:"
-
-#: src/ui/gui/ks-one-sample.ui:148
+#: src/ui/gui/ks-one-sample.ui:147
 msgid "_Normal"
 msgstr "_Normalverteilung"
 
-#: src/ui/gui/ks-one-sample.ui:166
+#: src/ui/gui/ks-one-sample.ui:165
 msgid "_Poisson"
 msgstr "_Poisson"
 
-#: src/ui/gui/ks-one-sample.ui:183
+#: src/ui/gui/ks-one-sample.ui:182
 msgid "_Uniform"
 msgstr "_Gleichverteilung"
 
-#: src/ui/gui/ks-one-sample.ui:198
+#: src/ui/gui/ks-one-sample.ui:197
 msgid "_Exponential"
 msgstr "_Exponential"
 
-#: src/ui/gui/ks-one-sample.ui:217
+#: src/ui/gui/ks-one-sample.ui:216
 msgid "Test Distribution"
 msgstr "Zu testende Verteilung"
 
@@ -7972,24 +8072,15 @@ msgstr "_Maximale Anzahl der Iterationen:"
 msgid "Include _constant in model"
 msgstr "K_onstante in Modell einschließen"
 
-#: src/ui/gui/logistic.ui:201
+#: src/ui/gui/logistic.ui:202
 msgid "Logistic Regression"
 msgstr "Logistische Regression"
 
-#: src/ui/gui/logistic.ui:228
-msgid "_Options..."
-msgstr "_Optionen..."
-
-#: src/ui/gui/logistic.ui:243 src/ui/gui/regression.ui:50
-#: src/ui/gui/syntax-editor.ui:45
-msgid "_Save..."
-msgstr "Speichern..."
-
-#: src/ui/gui/logistic.ui:346 src/ui/gui/regression.ui:169
+#: src/ui/gui/logistic.ui:347 src/ui/gui/regression.ui:169
 msgid "_Dependent"
 msgstr "_Abhängige Variable"
 
-#: src/ui/gui/logistic.ui:394 src/ui/gui/regression.ui:216
+#: src/ui/gui/logistic.ui:395 src/ui/gui/regression.ui:216
 msgid "_Independent"
 msgstr "_Unabhängige Variable(n)"
 
@@ -8005,23 +8096,23 @@ msgstr "Liste der _abhänigen Variablen"
 msgid "_No missing values"
 msgstr "Kei_ne fehlenden Werte"
 
-#: src/ui/gui/missing-val-dialog.ui:119
+#: src/ui/gui/missing-val-dialog.ui:120
 msgid "_Discrete missing values"
 msgstr "_Einzelne fehlende Werte"
 
-#: src/ui/gui/missing-val-dialog.ui:155
+#: src/ui/gui/missing-val-dialog.ui:156
 msgid "_Low:"
 msgstr "_Kleinster Wert:"
 
-#: src/ui/gui/missing-val-dialog.ui:180
+#: src/ui/gui/missing-val-dialog.ui:181
 msgid "_High:"
 msgstr "_Größter Wert:"
 
-#: src/ui/gui/missing-val-dialog.ui:204
+#: src/ui/gui/missing-val-dialog.ui:205
 msgid "Di_screte value:"
 msgstr "Ein_zelner Wert:"
 
-#: src/ui/gui/missing-val-dialog.ui:228
+#: src/ui/gui/missing-val-dialog.ui:229
 msgid "_Range plus one optional discrete missing value"
 msgstr "_Bereich und einzelner fehlender Wert"
 
@@ -8041,27 +8132,71 @@ msgstr "Koeffizientensumme:"
 msgid "Contrast 1 of 1"
 msgstr "Kontrast 1 von 1"
 
-#: src/ui/gui/oneway.ui:215
+#: src/ui/gui/oneway.ui:216
 msgid "One-Way ANOVA"
 msgstr "Einfaktorielle ANOVA"
 
-#: src/ui/gui/oneway.ui:244
+#: src/ui/gui/oneway.ui:245
 msgid "_Factor:"
 msgstr "Fak_tor:"
 
-#: src/ui/gui/oneway.ui:287
+#: src/ui/gui/oneway.ui:288
 msgid "Dependent _Variable(s):"
 msgstr "_Abhängige Variable(n):"
 
-#: src/ui/gui/oneway.ui:429
+#: src/ui/gui/oneway.ui:430
 msgid "_Homogeneity"
 msgstr "_Homogenität"
 
-#: src/ui/gui/oneway.ui:471
+#: src/ui/gui/oneway.ui:472
 msgid "_Contrasts..."
 msgstr "_Kontraste..."
 
-#: src/ui/gui/paired-samples.ui:130
+#: src/ui/gui/options.ui:9
+msgid "Options Case"
+msgstr "Optionen"
+
+#: src/ui/gui/options.ui:39
+msgid "Display _Labels"
+msgstr "Zeige _Wertelabels"
+
+#: src/ui/gui/options.ui:55
+msgid "Display _Names"
+msgstr "Zeige _Namen"
+
+#: src/ui/gui/options.ui:83
+msgid "Sort by L_abel"
+msgstr "Sortieren nach L_abel"
+
+#: src/ui/gui/options.ui:99
+msgid "Sort by Na_me"
+msgstr "Sortieren nach Na_me"
+
+#: src/ui/gui/options.ui:115
+msgid "Do not S_ort"
+msgstr "Nicht S_ortieren"
+
+#: src/ui/gui/options.ui:143
+msgid "Variable Lists"
+msgstr "Variablenlisten"
+
+#: src/ui/gui/options.ui:168
+msgid "Ma_ximize"
+msgstr "Ma_ximieren"
+
+#: src/ui/gui/options.ui:183
+msgid "_Raise"
+msgstr "_Erhöhen"
+
+#: src/ui/gui/options.ui:198
+msgid "Aler_t"
+msgstr "_Warnung"
+
+#: src/ui/gui/options.ui:217
+msgid "Output Window Action"
+msgstr "Ausgabe Fenster"
+
+#: src/ui/gui/paired-samples.ui:131
 msgid "_Test Pair(s):"
 msgstr "_Variablenpaar(e):"
 
@@ -8121,79 +8256,75 @@ msgstr "_Van der Waerden"
 msgid "Proportion Estimation Formula"
 msgstr "Formel für Anteilsschätzung"
 
-#: src/ui/gui/rank.ui:351
+#: src/ui/gui/rank.ui:352
 msgid "Rank Cases"
 msgstr "Rangfolge bilden"
 
-#: src/ui/gui/rank.ui:416
+#: src/ui/gui/rank.ui:417
 msgid "_By:"
 msgstr "_Schritt:"
 
-#: src/ui/gui/rank.ui:577
+#: src/ui/gui/rank.ui:578
 msgid "_Smallest Value"
 msgstr "Kleinste_m Wert"
 
-#: src/ui/gui/rank.ui:595
+#: src/ui/gui/rank.ui:596
 msgid "_Largest Value"
 msgstr "_Größtem Wert"
 
-#: src/ui/gui/rank.ui:619
+#: src/ui/gui/rank.ui:620
 msgid "Assign rank 1 to:"
 msgstr "Rang 1 zuweisen:"
 
-#: src/ui/gui/rank.ui:638
+#: src/ui/gui/rank.ui:639
 msgid "_Display summary tables"
 msgstr "Z_usammenfassungen anzeigen"
 
-#: src/ui/gui/rank.ui:661
+#: src/ui/gui/rank.ui:662
 msgid "Rank T_ypes"
 msgstr "Rang_typen"
 
-#: src/ui/gui/rank.ui:676
+#: src/ui/gui/rank.ui:677
 msgid "_Ties..."
 msgstr "Rang_bedingungen"
 
-#: src/ui/gui/rank.ui:737
+#: src/ui/gui/rank.ui:739
 msgid "Rank Cases: Ties"
 msgstr "Rangfolge bilden: Rangbedienungen"
 
-#: src/ui/gui/rank.ui:768
+#: src/ui/gui/rank.ui:770
 msgid "_Mean"
 msgstr "_Mittelwert"
 
-#: src/ui/gui/rank.ui:786
+#: src/ui/gui/rank.ui:788
 msgid "_Low"
 msgstr "Mi_nimum"
 
-#: src/ui/gui/rank.ui:805
+#: src/ui/gui/rank.ui:807
 msgid "_High"
 msgstr "Ma_ximum"
 
-#: src/ui/gui/rank.ui:831
+#: src/ui/gui/rank.ui:833
 msgid "_Sequential ranks to unique values"
 msgstr "_Ränge fortlaufend vergeben"
 
-#: src/ui/gui/rank.ui:855
+#: src/ui/gui/rank.ui:857
 msgid "Rank Assigned to Ties"
 msgstr "Zugewiesener Rang bein Rangbedingungen"
 
-#: src/ui/gui/runs.ui:125
-msgid "_Median"
-msgstr "_Median"
-
-#: src/ui/gui/runs.ui:140
+#: src/ui/gui/runs.ui:139
 msgid "M_ean"
 msgstr "Mittel_wert"
 
-#: src/ui/gui/runs.ui:156
+#: src/ui/gui/runs.ui:155
 msgid "Mo_de"
 msgstr "Mo_dalwert"
 
-#: src/ui/gui/runs.ui:176
+#: src/ui/gui/runs.ui:175
 msgid "_Custom:"
 msgstr "_Benutzerdefiniert:"
 
-#: src/ui/gui/runs.ui:215
+#: src/ui/gui/runs.ui:214
 msgid "Cut Point"
 msgstr "Trennwert"
 
@@ -8277,23 +8408,23 @@ msgstr "Aus_gabe der Variablen als Strings"
 msgid "Width: "
 msgstr "Breite:"
 
-#: src/ui/gui/recode.ui:480
+#: src/ui/gui/recode.ui:482
 msgid "_Name:"
 msgstr "_Name:"
 
-#: src/ui/gui/recode.ui:508
+#: src/ui/gui/recode.ui:510
 msgid "La_bel:"
 msgstr "_Beschriftung:"
 
-#: src/ui/gui/recode.ui:537
+#: src/ui/gui/recode.ui:539
 msgid "Chan_ge"
 msgstr "_Ändern"
 
-#: src/ui/gui/recode.ui:565
+#: src/ui/gui/recode.ui:567
 msgid "Output Variable"
 msgstr "Ausgabevariable"
 
-#: src/ui/gui/recode.ui:639
+#: src/ui/gui/recode.ui:641
 msgid "Old and New Va_lues..."
 msgstr "Alte und neue _Werte"
 
@@ -8301,23 +8432,23 @@ msgstr "Alte und neue _Werte"
 msgid "S_tatistics..."
 msgstr "_Statistiken..."
 
-#: src/ui/gui/regression.ui:255
+#: src/ui/gui/regression.ui:256
 msgid "Regression: Save"
 msgstr "Lineare Regression: Speichern"
 
-#: src/ui/gui/regression.ui:272 src/ui/gui/univariate.ui:26
+#: src/ui/gui/regression.ui:273 src/ui/gui/univariate.ui:26
 msgid "_Predicted values"
 msgstr "_Vorhergesagte Werte"
 
-#: src/ui/gui/regression.ui:289 src/ui/gui/univariate.ui:43
+#: src/ui/gui/regression.ui:290 src/ui/gui/univariate.ui:43
 msgid "_Residuals"
 msgstr "_Residuen"
 
-#: src/ui/gui/regression.ui:332
+#: src/ui/gui/regression.ui:334
 msgid "Regression: Statistics"
 msgstr "Lineare Regression: Statistiken"
 
-#: src/ui/gui/regression.ui:373 src/ui/gui/univariate.ui:126
+#: src/ui/gui/regression.ui:375 src/ui/gui/univariate.ui:127
 msgid "S_tatistics"
 msgstr "_Statistiken"
 
@@ -8329,19 +8460,19 @@ msgstr "Alpha"
 msgid "Reliability Analysis"
 msgstr "Reliabilitätsanalyse"
 
-#: src/ui/gui/reliability.ui:129
+#: src/ui/gui/reliability.ui:128
 msgid "_Items:"
 msgstr "I_tems:"
 
-#: src/ui/gui/reliability.ui:151
+#: src/ui/gui/reliability.ui:150
 msgid "_Model: "
 msgstr "_Modell:\t"
 
-#: src/ui/gui/reliability.ui:197
+#: src/ui/gui/reliability.ui:196
 msgid "_Variables in first split:"
 msgstr "_Variablen in der ersten Hälfte:"
 
-#: src/ui/gui/reliability.ui:244
+#: src/ui/gui/reliability.ui:243
 msgid "Show _descriptives for scale if item is deleted"
 msgstr "_Deskriptive Statistiken für Skala anzeigen, wenn das Item gelöscht wurde"
 
@@ -8401,63 +8532,63 @@ msgstr "Letzter Fall"
 msgid "Observation"
 msgstr "Beobachtung"
 
-#: src/ui/gui/select-cases.ui:144
+#: src/ui/gui/select-cases.ui:145
 msgid "Select Cases"
 msgstr "Fälle auswählen"
 
-#: src/ui/gui/select-cases.ui:296
+#: src/ui/gui/select-cases.ui:297
 msgid "Use filter variable"
 msgstr "Filtervariable verwenden"
 
-#: src/ui/gui/select-cases.ui:363
+#: src/ui/gui/select-cases.ui:364
 msgid "Based on time or case range"
 msgstr "Nach Zeit oder Fallbereich"
 
-#: src/ui/gui/select-cases.ui:378
+#: src/ui/gui/select-cases.ui:379
 msgid "Range..."
 msgstr "Bereich..."
 
-#: src/ui/gui/select-cases.ui:427
+#: src/ui/gui/select-cases.ui:428
 msgid "Random sample of cases"
 msgstr "Zufallsstichprobe aus den Fällen"
 
-#: src/ui/gui/select-cases.ui:443
+#: src/ui/gui/select-cases.ui:444
 msgid "Sample..."
 msgstr "Stichprobe..."
 
-#: src/ui/gui/select-cases.ui:491
+#: src/ui/gui/select-cases.ui:492
 msgid "If condition is satisfied"
 msgstr "Wenn Bedingung erfüllt ist"
 
-#: src/ui/gui/select-cases.ui:506
+#: src/ui/gui/select-cases.ui:507
 msgid "If..."
 msgstr "Falls..."
 
-#: src/ui/gui/select-cases.ui:550
+#: src/ui/gui/select-cases.ui:551
 msgid "All Cases"
 msgstr "Alle Fälle"
 
-#: src/ui/gui/select-cases.ui:564
+#: src/ui/gui/select-cases.ui:565
 msgid "Select"
 msgstr "Auswahl"
 
-#: src/ui/gui/select-cases.ui:591
+#: src/ui/gui/select-cases.ui:592
 msgid "Filtered"
 msgstr "Filtern"
 
-#: src/ui/gui/select-cases.ui:608
+#: src/ui/gui/select-cases.ui:609
 msgid "Deleted"
 msgstr "Löschen"
 
-#: src/ui/gui/select-cases.ui:630
+#: src/ui/gui/select-cases.ui:631
 msgid "Unselected Cases Are"
 msgstr "Nicht gewählte Fälle"
 
-#: src/ui/gui/select-cases.ui:676
+#: src/ui/gui/select-cases.ui:678
 msgid "Select Cases: Random Sample"
 msgstr "Fälle auswählen: Zufallsstichprobe"
 
-#: src/ui/gui/select-cases.ui:738
+#: src/ui/gui/select-cases.ui:740
 msgid "Sample Size"
 msgstr "Stichprobengröße"
 
@@ -8465,15 +8596,15 @@ msgstr "Stichprobengröße"
 msgid "Options"
 msgstr "Optionen"
 
-#: src/ui/gui/t-test.ui:46
+#: src/ui/gui/t-test.ui:47
 msgid "Exclude cases _analysis by analysis"
 msgstr "Fallau_sschluss Test für Test"
 
-#: src/ui/gui/t-test.ui:130
+#: src/ui/gui/t-test.ui:132
 msgid "One - Sample T Test"
 msgstr "T-Test bei einer Stichprobe"
 
-#: src/ui/gui/t-test.ui:245
+#: src/ui/gui/t-test.ui:249
 msgid "Test _Value: "
 msgstr "Test_wert:"
 
@@ -8607,19 +8738,19 @@ msgstr "Variable(n):"
 msgid "Univariate: Save"
 msgstr "Univariat: Speichern"
 
-#: src/ui/gui/univariate.ui:86
+#: src/ui/gui/univariate.ui:87
 msgid "Univariate: Statistics"
 msgstr "Univariat: Statistiken"
 
-#: src/ui/gui/univariate.ui:160
+#: src/ui/gui/univariate.ui:162
 msgid "Univariate"
 msgstr "Univariat"
 
-#: src/ui/gui/univariate.ui:264
+#: src/ui/gui/univariate.ui:265
 msgid "_Dependent Variable"
 msgstr "_Abhängige Variable"
 
-#: src/ui/gui/univariate.ui:312
+#: src/ui/gui/univariate.ui:313
 msgid "_Fixed Factors"
 msgstr "F_este Faktoren"
 
@@ -8627,363 +8758,309 @@ msgstr "F_este Faktoren"
 msgid "Value Label:"
 msgstr "Wertelabel:"
 
-#: src/ui/gui/data-editor.ui:9 src/ui/gui/output-window.ui:9
-#: src/ui/gui/syntax-editor.ui:10
-msgid "_File"
-msgstr "_Datei"
-
-#: src/ui/gui/data-editor.ui:15 src/ui/gui/syntax-editor.ui:17
-msgid "_New..."
-msgstr "_Neu..."
-
-#: src/ui/gui/data-editor.ui:23 src/ui/gui/syntax-editor.ui:24
-msgid "_Syntax"
-msgstr "_Syntax"
-
-#: src/ui/gui/data-editor.ui:30 src/ui/gui/data-editor.ui:156
-#: src/ui/gui/data-editor.ui:169 src/ui/gui/syntax-editor.ui:31
-msgid "_Data"
-msgstr "_Daten"
-
-#: src/ui/gui/data-editor.ui:37 src/ui/gui/syntax-editor.ui:38
-msgid "_Open..."
-msgstr "Ö_ffnen..."
-
-#: src/ui/gui/data-editor.ui:44
-msgid "I_mport Data..."
-msgstr "Daten importieren..."
-
-#: src/ui/gui/data-editor.ui:51
-msgid "_Rename Dataset..."
-msgstr "_Datenblatt umbenennen..."
-
-#: src/ui/gui/data-editor.ui:59
-msgid "_Save"
-msgstr "Speichern"
-
-#: src/ui/gui/data-editor.ui:67 src/ui/gui/syntax-editor.ui:52
-msgid "Save _As..."
-msgstr "Speichern _unter..."
-
-#: src/ui/gui/data-editor.ui:74
-msgid "D_isplay Data File Information"
-msgstr "_Informationen zur Arbeitsdatei anzeigen"
+#: src/ui/gui/data-editor.ui:17
+msgid "Information Area"
+msgstr "Informationsbereich"
 
-#: src/ui/gui/data-editor.ui:81
-msgid "Working File"
-msgstr "Arbeitsdatei"
+#: src/ui/gui/data-editor.ui:39
+msgid "Case Counter Area"
+msgstr "Status der verarbeiteten Fälle"
 
-#: src/ui/gui/data-editor.ui:88
-msgid "External File..."
-msgstr "Externe Datei..."
+#: src/ui/gui/data-editor.ui:64
+msgid "Filter Use Status Area"
+msgstr "Status der Fallauswahl"
 
-#: src/ui/gui/data-editor.ui:95
-msgid "Recently Used Da_ta"
-msgstr "_Zuletzt verwendete Daten"
+#: src/ui/gui/data-editor.ui:90
+msgid "Weight Status Area"
+msgstr "Status der Fallgewichtung"
 
-#: src/ui/gui/data-editor.ui:102
-msgid "Recently Used _Files"
-msgstr "Z_uletzt verwendete Dateien"
+#: src/ui/gui/data-editor.ui:116
+msgid "Split File Status Area"
+msgstr "Status der Dateiaufteilung"
 
-#: src/ui/gui/data-editor.ui:121
+#: src/ui/gui/data-editor.ui:138
 msgid "_View"
 msgstr "A_nsicht"
 
-#: src/ui/gui/data-editor.ui:128
+#: src/ui/gui/data-editor.ui:141
 msgid "_Status Bar"
 msgstr "_Statusleiste"
 
-#: src/ui/gui/data-editor.ui:135
+#: src/ui/gui/data-editor.ui:147
 msgid "_Font..."
 msgstr "S_chriftart..."
 
-#: src/ui/gui/data-editor.ui:142
+#: src/ui/gui/data-editor.ui:151
 msgid "_Grid Lines"
 msgstr "_Gitterlinien"
 
-#: src/ui/gui/data-editor.ui:148
+#: src/ui/gui/data-editor.ui:155
 msgid "Value _Labels"
 msgstr "_Wertelabels"
 
-#: src/ui/gui/data-editor.ui:149
-msgid "Show/hide value labels"
-msgstr "Ein- / Ausblenden der Wertelabels"
-
-#: src/ui/gui/data-editor.ui:162
+#: src/ui/gui/data-editor.ui:166
 msgid "_Variables"
 msgstr "V_ariablen"
 
-#: src/ui/gui/data-editor.ui:174
+#: src/ui/gui/data-editor.ui:176
 msgid "_Sort Cases..."
 msgstr "Fälle s_ortieren..."
 
-#: src/ui/gui/data-editor.ui:178
-msgid "Sort cases in the active dataset"
-msgstr "Sortieren der Fälle im aktiven Datenblatt"
-
-#: src/ui/gui/data-editor.ui:186
+#: src/ui/gui/data-editor.ui:180
 msgid "_Transpose..."
 msgstr "Trans_ponieren..."
 
-#: src/ui/gui/data-editor.ui:187
-msgid "Transpose the cases with the variables"
-msgstr "Transponiert die Fälle mit den Variablen"
-
-#: src/ui/gui/data-editor.ui:195
+#: src/ui/gui/data-editor.ui:184
 msgid "_Aggregate..."
 msgstr "_Aggregieren..."
 
-#: src/ui/gui/data-editor.ui:196
-msgid "Aggregate the case values into a new variable"
-msgstr "Zusammenführung der Werte in einer neuen Variable"
-
-#: src/ui/gui/data-editor.ui:203
+#: src/ui/gui/data-editor.ui:190
 msgid "S_plit File..."
 msgstr "Datei aufte_ilen..."
 
-#: src/ui/gui/data-editor.ui:204
-msgid "Split the active dataset"
-msgstr "Datei aufteilen"
-
-#: src/ui/gui/data-editor.ui:212
+#: src/ui/gui/data-editor.ui:194
 msgid "Select _Cases..."
 msgstr "Fälle au_swählen..."
 
-#: src/ui/gui/data-editor.ui:213
-msgid "Choose a subset of cases for analysis"
-msgstr "Wählen Sie einen Teil der Fälle zur Analyse aus"
-
-#: src/ui/gui/data-editor.ui:220
+#: src/ui/gui/data-editor.ui:198
 msgid "_Weight Cases..."
 msgstr "Fä_lle gewichten..."
 
-#: src/ui/gui/data-editor.ui:222
-msgid "Weight cases by variable"
-msgstr "Fälle anhand einer Variable gewichten"
-
-#: src/ui/gui/data-editor.ui:229
+#: src/ui/gui/data-editor.ui:204
 msgid "_Transform"
 msgstr "T_ransformieren"
 
-#: src/ui/gui/data-editor.ui:236
+#: src/ui/gui/data-editor.ui:207
 msgid "_Compute..."
 msgstr "Varia_ble berechnen..."
 
-#: src/ui/gui/data-editor.ui:244
+#: src/ui/gui/data-editor.ui:211
 msgid "Cou_nt..."
 msgstr "Werte in Fällen _zählen..."
 
-#: src/ui/gui/data-editor.ui:252
+#: src/ui/gui/data-editor.ui:215
 msgid "Ran_k Cases..."
 msgstr "Ran_gfolge bilden..."
 
-#: src/ui/gui/data-editor.ui:260
+#: src/ui/gui/data-editor.ui:219
 msgid "Auto_matic Recode..."
 msgstr "_Automatisches Umkodieren..."
 
-#: src/ui/gui/data-editor.ui:268
+#: src/ui/gui/data-editor.ui:225
 msgid "Recode into _Same Variables..."
 msgstr "Umko_dieren in dieselbe Variable..."
 
-#: src/ui/gui/data-editor.ui:276
+#: src/ui/gui/data-editor.ui:229
 msgid "Recode into _Different Variables..."
 msgstr "_Umkodieren in andere Variable..."
 
-#: src/ui/gui/data-editor.ui:283
+#: src/ui/gui/data-editor.ui:235
 msgid "_Run Pending Transforms"
 msgstr "Offene _Transformationen ausführen"
 
-#: src/ui/gui/data-editor.ui:291
+#: src/ui/gui/data-editor.ui:241
 msgid "_Analyze"
 msgstr "Anal_ysieren"
 
-#: src/ui/gui/data-editor.ui:297
+#: src/ui/gui/data-editor.ui:244
 msgid "_Descriptive Statistics"
 msgstr "D_eskriptive Statistiken"
 
-#: src/ui/gui/data-editor.ui:305
+#: src/ui/gui/data-editor.ui:246
 msgid "_Frequencies..."
 msgstr "_Häufigkeiten..."
 
-#: src/ui/gui/data-editor.ui:319
+#: src/ui/gui/data-editor.ui:254
 msgid "_Explore..."
 msgstr "_Explorative Datenanalyse..."
 
-#: src/ui/gui/data-editor.ui:326
+#: src/ui/gui/data-editor.ui:258
 msgid "_Crosstabs..."
 msgstr "_Kreuztabellen..."
 
-#: src/ui/gui/data-editor.ui:332
+#: src/ui/gui/data-editor.ui:263
 msgid "Compare _Means"
 msgstr "_Mittelwerte vergleichen"
 
-#: src/ui/gui/data-editor.ui:340
+#: src/ui/gui/data-editor.ui:265
 msgid "_Means..."
 msgstr "_Mittelwerte..."
 
-#: src/ui/gui/data-editor.ui:347
+#: src/ui/gui/data-editor.ui:269
 msgid "_One Sample T Test..."
 msgstr "T-Te_st bei einer Stichprobe..."
 
-#: src/ui/gui/data-editor.ui:354
+#: src/ui/gui/data-editor.ui:273
 msgid "_Independent Samples T Test..."
 msgstr "_T-Test bei unabhängigen Stichproben..."
 
-#: src/ui/gui/data-editor.ui:361
+#: src/ui/gui/data-editor.ui:277
 msgid "_Paired Samples T Test..."
 msgstr "T-Test bei gepaarten Stich_proben..."
 
-#: src/ui/gui/data-editor.ui:368
-msgid "One Way _ANOVA..."
-msgstr "Einf_aktorielle ANOVA..."
+#: src/ui/gui/data-editor.ui:281
+msgid "_One Way _ANOVA..."
+msgstr "Einfaktorielle _ANOVA..."
 
-#: src/ui/gui/data-editor.ui:375
+#: src/ui/gui/data-editor.ui:286
 msgid "_Univariate Analysis..."
 msgstr "_Univariate Analyse..."
 
-#: src/ui/gui/data-editor.ui:383
+#: src/ui/gui/data-editor.ui:290
 msgid "Bivariate _Correlation..."
 msgstr "Bivariate _Korrelationen..."
 
-#: src/ui/gui/data-editor.ui:391
+#: src/ui/gui/data-editor.ui:294
 msgid "_K-Means Cluster..."
 msgstr "k-Means Clusteranalyse..."
 
-#: src/ui/gui/data-editor.ui:399
-msgid "Factor _Analysis..."
-msgstr "Faktorenanalyse..."
+#: src/ui/gui/data-editor.ui:298
+msgid "_Factor Analysis..."
+msgstr "_Faktorenanalyse..."
 
-#: src/ui/gui/data-editor.ui:407
+#: src/ui/gui/data-editor.ui:302
 msgid "Re_liability..."
 msgstr "Re_liabilitätsanalyse..."
 
-#: src/ui/gui/data-editor.ui:414
+#: src/ui/gui/data-editor.ui:306
 msgid "_Regression"
 msgstr "_Regression"
 
-#: src/ui/gui/data-editor.ui:422
+#: src/ui/gui/data-editor.ui:309
 msgid "_Linear..."
 msgstr "_Linear..."
 
-#: src/ui/gui/data-editor.ui:429
+#: src/ui/gui/data-editor.ui:313
 msgid "_Binary Logistic..."
 msgstr "_Binär Logistisch..."
 
-#: src/ui/gui/data-editor.ui:435
+#: src/ui/gui/data-editor.ui:319
 msgid "_Non-Parametric Statistics"
 msgstr "_Nichtparametrische Tests"
 
-#: src/ui/gui/data-editor.ui:443
-msgid "_Chi-Square..."
+#: src/ui/gui/data-editor.ui:322
+msgid "_Chi Square..."
 msgstr "_Chi-Quadrat..."
 
-#: src/ui/gui/data-editor.ui:450
+#: src/ui/gui/data-editor.ui:326
 msgid "_Binomial..."
 msgstr "_Binominal..."
 
-#: src/ui/gui/data-editor.ui:457
-msgid "R_uns..."
+#: src/ui/gui/data-editor.ui:330
+msgid "_Runs..."
 msgstr "R_uns-Test..."
 
-#: src/ui/gui/data-editor.ui:464
-msgid "1-Sample _K-S..."
+#: src/ui/gui/data-editor.ui:334
+msgid "_1 Sample K-S..."
 msgstr "K-S Test bei einer Stichprobe..."
 
-#: src/ui/gui/data-editor.ui:471
-msgid "2 _Related Samples..."
+#: src/ui/gui/data-editor.ui:338
+msgid "_2 Related Samples..."
 msgstr "Zwei _verbundene Stichproben..."
 
-#: src/ui/gui/data-editor.ui:478
-msgid "K Related _Samples..."
+#: src/ui/gui/data-editor.ui:342
+msgid "_K Related Samples..."
 msgstr "K ver_bundene Stichproben..."
 
-#: src/ui/gui/data-editor.ui:485
+#: src/ui/gui/data-editor.ui:346
+msgid "K _Independent Samples..."
+msgstr "K _unabhängige Stichproben..."
+
+#: src/ui/gui/data-editor.ui:352
 msgid "ROC Cur_ve..."
 msgstr "ROC-Kur_ve..."
 
-#: src/ui/gui/data-editor.ui:492
+#: src/ui/gui/data-editor.ui:358
 msgid "_Graphs"
 msgstr "_Diagramme"
 
-#: src/ui/gui/data-editor.ui:499
+#: src/ui/gui/data-editor.ui:361
 msgid "_Scatterplot"
 msgstr "_Scatterplot"
 
-#: src/ui/gui/data-editor.ui:507
+#: src/ui/gui/data-editor.ui:365
 msgid "_Histogram"
 msgstr "_Histogramm"
 
-#: src/ui/gui/data-editor.ui:515
+#: src/ui/gui/data-editor.ui:369
 msgid "_Barchart"
 msgstr "_Balkendiagramm"
 
-#: src/ui/gui/data-editor.ui:522
+#: src/ui/gui/data-editor.ui:375
 msgid "_Utilities"
 msgstr "E_xtras"
 
-#: src/ui/gui/data-editor.ui:529
+#: src/ui/gui/data-editor.ui:378
 msgid "_Variables..."
 msgstr "_Variablen..."
 
-#: src/ui/gui/data-editor.ui:538
+#: src/ui/gui/data-editor.ui:382
 msgid "Data File _Comments..."
 msgstr "Datendateikommentare..."
 
-#: src/ui/gui/data-editor.ui:682
-msgid "Information Area"
-msgstr "Informationsbereich"
-
-#: src/ui/gui/data-editor.ui:704
-msgid "Case Counter Area"
-msgstr "Status der verarbeiteten Fälle"
-
-#: src/ui/gui/data-editor.ui:729
-msgid "Filter Use Status Area"
-msgstr "Status der Fallauswahl"
-
-#: src/ui/gui/data-editor.ui:755
-msgid "Weight Status Area"
-msgstr "Status der Fallgewichtung"
-
-#: src/ui/gui/data-editor.ui:781
-msgid "Split File Status Area"
-msgstr "Status der Dateiaufteilung"
-
-#: src/ui/gui/output-window.ui:16 src/ui/gui/syntax-editor.ui:59
+#: src/ui/gui/output-window.ui:55
 msgid "_Print..."
 msgstr "_Drucken..."
 
-#: src/ui/gui/output-window.ui:24
+#: src/ui/gui/output-window.ui:60
 msgid "_Export..."
 msgstr "_Exportieren..."
 
-#: src/ui/gui/output-window.ui:37
+#: src/ui/gui/output-window.ui:76
 msgid "Select _All"
 msgstr "_Alles auswählen"
 
-#: src/ui/gui/output-window.ui:44
-msgid "_Copy"
-msgstr "_Kopieren"
+#: src/ui/gui/syntax-editor.ui:11
+msgid "Syntax"
+msgstr "Syntax"
 
-#: src/ui/gui/syntax-editor.ui:119
+#: src/ui/gui/syntax-editor.ui:15
+msgid "Data"
+msgstr "Daten"
+
+#: src/ui/gui/syntax-editor.ui:25
+msgid "_Save"
+msgstr "Speichern"
+
+#: src/ui/gui/syntax-editor.ui:30
+msgid "Save _As"
+msgstr "Speichern _unter..."
+
+#: src/ui/gui/syntax-editor.ui:37
+msgid "_Print"
+msgstr "_Drucken"
+
+#: src/ui/gui/syntax-editor.ui:68
+msgid "_Delete"
+msgstr "_Löschen"
+
+#: src/ui/gui/syntax-editor.ui:74
+msgid "_Undo"
+msgstr "_Rückgängig"
+
+#: src/ui/gui/syntax-editor.ui:78
+msgid "_Redo"
+msgstr "_Wiederherstellen"
+
+#: src/ui/gui/syntax-editor.ui:84
 msgid "_Run"
 msgstr "_Ausführen"
 
-#: src/ui/gui/syntax-editor.ui:126
-msgid "All"
-msgstr "Alles"
+#: src/ui/gui/syntax-editor.ui:87
+msgid "_All"
+msgstr "_Alle"
 
-#: src/ui/gui/syntax-editor.ui:133
-msgid "Selection"
-msgstr "Auswahl"
+#: src/ui/gui/syntax-editor.ui:91
+msgid "_Selection"
+msgstr "_Auswahl"
 
-#: src/ui/gui/syntax-editor.ui:140
-msgid "Current Line"
-msgstr "Aktuelle Zeile"
+#: src/ui/gui/syntax-editor.ui:95
+msgid "_Current Line"
+msgstr "Aktuelle _Zeile"
 
-#: src/ui/gui/syntax-editor.ui:148
-msgid "To End"
-msgstr "Bis Ende"
+#: src/ui/gui/syntax-editor.ui:100
+msgid "_To End"
+msgstr "_Bis Ende"
 
 #: src/ui/gui/var-type-dialog.ui:83
 msgid "Scientific notation"
@@ -9037,6 +9114,95 @@ msgstr "Statistische Software"
 msgid "Analyze statistical data with a free alternative to SPSS"
 msgstr "Analyse statistischer Daten mit einer freien Alternative zu SPSS"
 
+#~ msgid "could not access definition for terminal `%s'"
+#~ msgstr "Auf die Eigenschaften des Terminals `%s' konnte nicht zugegriffen werden."
+
+#~ msgid ""
+#~ "PSPPIRE, a GUI for PSPP, a program for statistical analysis of sampled data.\n"
+#~ "Usage: %s [OPTION]... FILE\n"
+#~ "\n"
+#~ "Arguments to long options also apply to equivalent short options.\n"
+#~ "\n"
+#~ "GUI options:\n"
+#~ "  -q, --no-splash           don't show splash screen during startup\n"
+#~ "\n"
+#~ "%sLanguage options:\n"
+#~ "  -I, --include=DIR         append DIR to search path\n"
+#~ "  -I-, --no-include         clear search path\n"
+#~ "  -a, --algorithm={compatible|enhanced}\n"
+#~ "                            set to `compatible' if you want output\n"
+#~ "                            calculated from broken algorithms\n"
+#~ "  -x, --syntax={compatible|enhanced}\n"
+#~ "                            set to `compatible' to disable PSPP extensions\n"
+#~ "  -i, --interactive         interpret syntax in interactive mode\n"
+#~ "  -s, --safer               don't allow some unsafe operations\n"
+#~ "Default search path: %s\n"
+#~ "\n"
+#~ "Informative output:\n"
+#~ "  -h, --help                display this help and exit\n"
+#~ "  -V, --version             output version information and exit\n"
+#~ "\n"
+#~ "A non-option argument is interpreted as a data file in .sav or .zsav or .por\n"
+#~ "format or a syntax file to load.\n"
+#~ msgstr ""
+#~ "PSPPIRE, eine grafische Oberfläche für PSPP, ein Programm zur statistischen Analyse von Stichprobendaten.\n"
+#~ "Befehl: %s [OPTION]... DATEI\n"
+#~ "\n"
+#~ "Die gezeigten Argumente für die Langform der Optionen finden auch in der entsprechenden Kurzform der Optionen Anwendung.\n"
+#~ "\n"
+#~ "GUI Optionen:\n"
+#~ "  -q, --no-splash           Begrüßungsbildschirm soll beim Start nicht gezeigt werden\n"
+#~ "\n"
+#~ "%sSprachoptionen:\n"
+#~ "  -I, --include=VERZEICHNIS         füge das VERZEICHNIS dem Suchpfad hinzu\n"
+#~ "  -I-, --no-include         Löschung des Suchpfads\n"
+#~ "  -a, --algorithm={compatible|enhanced}\n"
+#~ "                            auf `compatible' setzen, um auch von fehlerhaften\n"
+#~ "                            Algorithmen Ausgaben erzeugen zu lassen\n"
+#~ "  -x, --syntax={compatible|enhanced}\n"
+#~ "                            auf `compatible' setzen, um PSPP-Erweiterungen auszuschalten\n"
+#~ "  -i, --interactive         interpretiere die Syntax im interaktiven Modus\n"
+#~ "  --syntax-encoding=KODIERUNG  legt die Kodierung der Syntaxdatei fest\n"
+#~ "  -s, --safer               unterbindet unsichere Operationen\n"
+#~ "Voreigestellter Suchpfad: %s\n"
+#~ "\n"
+#~ "Information:\n"
+#~ "  -h, --help                Anzeige dieses Hilfetextes\n"
+#~ "  -V, --version             Anzeige der Versionsinformationen\n"
+#~ "\n"
+#~ "Ein Argument ohne Optionen wird als Datendatei im .sav oder .zsav Format interpretiert\n"
+#~ "oder als Syntaxdatei, die ausgeführt wird.\n"
+
+#~ msgid "_Reset"
+#~ msgstr "_Zurücksetzen"
+
+#~ msgid "_Select"
+#~ msgstr "A_swählen"
+
+#~ msgid "var"
+#~ msgstr "var"
+
+#~ msgid "Delete the variables at the selected position(s)"
+#~ msgstr "Die ausgewählte(n) Variable(n) löschen"
+
+#~ msgid "Delete the cases at the selected position(s)"
+#~ msgstr "Lösche Fälle in den/der ausgewählten Position(en)"
+
+#~ msgid "_Open..."
+#~ msgstr "Ö_ffnen..."
+
+#~ msgid "Transpose the cases with the variables"
+#~ msgstr "Transponiert die Fälle mit den Variablen"
+
+#~ msgid "Aggregate the case values into a new variable"
+#~ msgstr "Zusammenführung der Werte in einer neuen Variable"
+
+#~ msgid "Choose a subset of cases for analysis"
+#~ msgstr "Wählen Sie einen Teil der Fälle zur Analyse aus"
+
+#~ msgid "All"
+#~ msgstr "Alles"
+
 #~ msgid "expecting number or data string"
 #~ msgstr "erwarte Zahl oder Zeichenkette"
 
index efbdf720126cfdb0b8b1e13ffa7d1b3a4ae487e7..20a3cc052bafacc27e40e239dce180b6397756a9 100644 (file)
@@ -1,3 +1,19 @@
+# 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 -*-
 
 # PSPP
index 8031de188a707523142fa90af350a94cb8078f16..1572eea83e9a51fca409f2194aefd2015737415c 100644 (file)
@@ -1,3 +1,19 @@
+# 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/>.
+# 
 noinst_LTLIBRARIES += src/data/libdata.la
 
 src_data_libdata_la_CPPFLAGS = $(LIBXML2_CFLAGS) $(PG_CFLAGS) $(AM_CPPFLAGS) 
index 5535690447ee1c55f24dc3383bca27ddb6aa8931..ce6d3a314126226cfd56ba82721e64f000ecc83d 100644 (file)
@@ -1,3 +1,21 @@
+/* 
+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/>.
+*/
+
 #ifndef CALENDAR_H
 #define CALENDAR_H 1
 
index 5138e84ba3e854a2fbcbb93cebe2f258c99dcba0..37e989b43f332029aa23afb8f19b72502f3aca6b 100644 (file)
@@ -1,3 +1,21 @@
+/* 
+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/>.
+*/
+
 /* -*- mode: c; buffer-read-only: t -*-
 
    Generated by sys-file-encoding.pl.  Do not modify!
index b49ccf785675639aa48dffd77a279e1e1d501a82..9d7e392d01ca1b23c51e50d8ccc60ce214c44917 100644 (file)
@@ -203,6 +203,7 @@ struct sfm_reader
     size_t sfm_var_cnt;         /* Number of variables. */
     int case_cnt;               /* Number of cases */
     const char *encoding;       /* String encoding. */
+    bool written_by_readstat; /* From https://github.com/WizardMac/ReadStat? */
 
     /* Decompression. */
     enum any_compression compression;
@@ -282,7 +283,7 @@ static bool read_variable_record (struct sfm_reader *,
                                   struct sfm_var_record *);
 static bool read_value_label_record (struct sfm_reader *,
                                      struct sfm_value_label_record *);
-static struct sfm_document_record *read_document_record (struct sfm_reader *);
+static bool read_document_record (struct sfm_reader *);
 static bool read_extension_record (struct sfm_reader *, int subtype,
                                    struct sfm_extension_record **);
 static bool skip_extension_record (struct sfm_reader *, int subtype);
@@ -500,8 +501,7 @@ read_record (struct sfm_reader *r, int type,
           sys_error (r, r->pos, _("Duplicate type 6 (document) record."));
           return false;
         }
-      r->document = read_document_record (r);
-      return r->document != NULL;
+      return read_document_record (r);
 
     case 7:
       if (!read_int (r, &subtype))
@@ -523,7 +523,7 @@ read_record (struct sfm_reader *r, int type,
              18.  I'm surprised that SPSS puts up with this. */
           struct sfm_extension_record *ext;
           bool ok = read_extension_record (r, subtype, &ext);
-          if (ok)
+          if (ok && ext)
             ll_push_tail (&r->var_attrs, &ext->ll);
           return ok;
         }
@@ -862,7 +862,7 @@ sfm_decode (struct any_reader *r_, const char *encoding,
      amount that the header claims.  SPSS version 13 gets this
      wrong when very long strings are involved, so don't warn in
      that case. */
-  if (r->header.nominal_case_size != -1
+  if (r->header.nominal_case_size > 0
       && r->header.nominal_case_size != r->n_vars
       && r->info.version_major != 13)
     sys_warn (r, -1, _("File header claims %d variable positions but "
@@ -968,6 +968,8 @@ read_header (struct sfm_reader *r, struct any_read_info *info,
   if (!read_string (r, header->magic, sizeof header->magic)
       || !read_string (r, header->eye_catcher, sizeof header->eye_catcher))
     return false;
+  r->written_by_readstat = strstr (header->eye_catcher,
+                                   "https://github.com/WizardMac/ReadStat");
 
   if (!strcmp (ASCII_MAGIC, header->magic)
       || !strcmp (EBCDIC_MAGIC, header->magic))
@@ -1229,33 +1231,35 @@ read_value_label_record (struct sfm_reader *r,
   return true;
 }
 
-/* Reads a document record from R and returns it. */
-static struct sfm_document_record *
+/* Reads a document record from R.  Returns true if successful, false on
+   error. */
+static bool
 read_document_record (struct sfm_reader *r)
 {
-  struct sfm_document_record *record;
   int n_lines;
-
-  record = pool_malloc (r->pool, sizeof *record);
-  record->pos = r->pos;
-
   if (!read_int (r, &n_lines))
-    return NULL;
-  if (n_lines <= 0 || n_lines >= INT_MAX / DOC_LINE_LENGTH)
+    return false;
+  else if (n_lines == 0)
+    return true;
+  else if (n_lines < 0 || n_lines >= INT_MAX / DOC_LINE_LENGTH)
     {
-      sys_error (r, record->pos,
+      sys_error (r, r->pos,
                  _("Number of document lines (%d) "
                    "must be greater than 0 and less than %d."),
                  n_lines, INT_MAX / DOC_LINE_LENGTH);
-      return NULL;
+      return false;
     }
 
+  struct sfm_document_record *record;
+  record = pool_malloc (r->pool, sizeof *record);
+  record->pos = r->pos;
   record->n_lines = n_lines;
   record->documents = pool_malloc (r->pool, DOC_LINE_LENGTH * n_lines);
   if (!read_bytes (r, record->documents, DOC_LINE_LENGTH * n_lines))
-    return NULL;
+    return false;
 
-  return record;
+  r->document = record;
+  return true;
 }
 
 static bool
@@ -2227,7 +2231,15 @@ parse_value_labels (struct sfm_reader *r, struct dictionary *dict,
 
           if (!var_add_value_label (var, &value, utf8_labels[j]))
             {
-              if (var_is_numeric (var))
+              if (r->written_by_readstat)
+                {
+                  /* Ignore the problem.  ReadStat is buggy and emits value
+                     labels whose values are longer than string variables'
+                     widths, that are identical in the actual width of the
+                     variable, e.g. both values "ABC123" and "ABC456" for a
+                     string variable with width 3. */
+                }
+              else if (var_is_numeric (var))
                 sys_warn (r, record->pos,
                           _("Duplicate value label for %g on %s."),
                           value.f, var_get_name (var));
@@ -2463,7 +2475,8 @@ parse_long_string_value_labels (struct sfm_reader *r,
       ofs += 4;
 
       /* Parse variable name, width, and number of labels. */
-      if (!check_overflow (r, record, ofs, var_name_len + 8))
+      if (!check_overflow (r, record, ofs, var_name_len)
+          || !check_overflow (r, record, ofs, var_name_len + 8))
         return;
       var_name = recode_string_pool ("UTF-8", dict_encoding,
                                      (const char *) record->data + ofs,
@@ -2581,7 +2594,8 @@ parse_long_string_missing_values (struct sfm_reader *r,
       ofs += 4;
 
       /* Parse variable name. */
-      if (!check_overflow (r, record, ofs, var_name_len + 1))
+      if (!check_overflow (r, record, ofs, var_name_len)
+          || !check_overflow (r, record, ofs, var_name_len + 1))
         return;
       var_name = recode_string_pool ("UTF-8", dict_encoding,
                                      (const char *) record->data + ofs,
index 7e684a7f6a2e3cfa6df71fefd48b6ac415289e5c..cc90ade4dca679a56d7d0e3bb8bdd2e393e605d5 100644 (file)
@@ -1,3 +1,19 @@
+# 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)/src/language/lexer/automake.mk
index 11c5fdc3d05a24b462bcef36adff693628608ec9..3c12497885af377014d7c4b1bb19c84868ca1b3c 100644 (file)
@@ -1,3 +1,19 @@
+# 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 -*-
 
 
index f806c7803a5e01c7962ea5e1706f85329182e37b..b6a405485eba40c6c563954db775a1a1f1fe73fc 100644 (file)
@@ -1,3 +1,21 @@
+/* 
+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 "language/control/control-stack.h"
index 5579b819127a371be8ab16040df91ed98942d27e..2d839991ccd22a4df571367e8a0b676f9144da2b 100644 (file)
@@ -1,3 +1,19 @@
+# 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 -*-
 
 language_data_io_sources = \
index 752a0be3d26105c5930aa8e1b15b0b093ffcebd1..609e5eb1fd5156365093ac9c70851ab2dbcfce5b 100644 (file)
@@ -77,6 +77,7 @@ struct matrix_format
   int n_continuous_vars;
   struct variable **split_vars;
   size_t n_split_vars;
+  long n;
 };
 
 /*
@@ -206,6 +207,24 @@ preprocess (struct casereader *casereader0, const struct dictionary *dict, void
   const int idx = var_get_dict_index (mformat->varname);
   row = 0;
 
+  if (mformat->n >= 0)
+    {
+      int col;
+      struct ccase *outcase = case_create (proto);
+      union value *v = case_data_rw (outcase, mformat->rowtype);
+      uint8_t *n = value_str_rw (v, ROWTYPE_WIDTH);
+      strncpy ((char *) n, "N        ", ROWTYPE_WIDTH);
+      blank_varname_column (outcase, mformat->varname);
+      for (col = 0; col < mformat->n_continuous_vars; ++col)
+       {
+         union value *dest_val =
+           case_data_rw_idx (outcase,
+                             1 + col + var_get_dict_index (mformat->varname));
+         dest_val->f = mformat->n;
+       }
+      casewriter_write (writer, outcase);
+    }
+
   prev_split_hash = 1;
   n_splits = 0;
   for (; (c = casereader_read (casereader0)) != NULL; prev_case = c)
@@ -225,12 +244,23 @@ preprocess (struct casereader *casereader0, const struct dictionary *dict, void
        }
 
       prev_split_hash = split_hash;
-
       case_unref (prev_case);
-      struct ccase *outcase = case_create (proto);
-      case_copy (outcase, 0, c, 0, caseproto_get_n_widths (proto));
       const union value *v = case_data (c, mformat->rowtype);
       const char *val = (const char *) value_str (v, ROWTYPE_WIDTH);
+      if (mformat->n >= 0)
+       {
+         if (0 == strncasecmp (val, "n       ", ROWTYPE_WIDTH) ||
+             0 == strncasecmp (val, "n_vector", ROWTYPE_WIDTH))
+           {
+             msg (SW,
+                  _("The N subcommand was specified, but a N record was also found in the data.  The N record will be ignored."));
+             continue;
+           }
+       }
+
+      struct ccase *outcase = case_create (proto);
+      case_copy (outcase, 0, c, 0, caseproto_get_n_widths (proto));
+
       if (0 == strncasecmp (val, "corr    ", ROWTYPE_WIDTH) ||
          0 == strncasecmp (val, "cov     ", ROWTYPE_WIDTH))
        {
@@ -336,6 +366,7 @@ cmd_matrix (struct lexer *lexer, struct dataset *ds)
   mformat.diagonal = DIAGONAL;
   mformat.n_split_vars = 0;
   mformat.split_vars = NULL;
+  mformat.n = -1;
 
   dict = (in_input_program ()
           ? dataset_dict (ds)
@@ -406,7 +437,22 @@ cmd_matrix (struct lexer *lexer, struct dataset *ds)
       if (! lex_force_match (lexer, T_SLASH))
        goto error;
 
-      if (lex_match_id (lexer, "FORMAT"))
+      if (lex_match_id (lexer, "N"))
+       {
+         lex_match (lexer, T_EQUALS);
+
+         if (! lex_force_int (lexer))
+           goto error;
+
+         mformat.n = lex_integer (lexer);
+         if (mformat.n < 0)
+           {
+             msg (SE, _("%s must not be negative."), "N");
+             goto error;
+           }
+         lex_get (lexer);
+       }
+      else if (lex_match_id (lexer, "FORMAT"))
        {
          lex_match (lexer, T_EQUALS);
 
index b1fe0bf6c72308746771833151f087ebf132e70e..dbb7ec446f8fab6a16a5db228b4edd3a213c3f02 100644 (file)
@@ -1,3 +1,19 @@
+# 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 -*-
 
 language_dictionary_sources = \
index 58e64327e7b4264127546793ed21b8a6338e7fb6..5039c12247d683fc5e195182ea1df315724b5214 100644 (file)
@@ -1,3 +1,19 @@
+# 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 -*-
 
 language_expressions_sources = \
index 9d1e50245d64d6174c3c6c55bf2db9b515976f6d..1b821c412d57b92882cfe632ffde455f674b074a 100644 (file)
@@ -1,3 +1,19 @@
+# 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/>.
+# 
 use strict;
 use warnings 'all';
 
index 8646233b66814338c57def027912d5d718243038..84ba8616bd02aa962957ecc162952cc48260d7a7 100644 (file)
@@ -1,3 +1,21 @@
+/* 
+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/>.
+*/
+
 #ifndef EXPRESSIONS_HELPERS_H
 #define EXPRESSIONS_HELPERS_H
 
index 7313e08597f8f32259f0d33e3619d22e371aead6..05b7d55d0e15e2b4f1c36800c9616d304bbf9ef2 100644 (file)
@@ -1,3 +1,19 @@
+# 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 -*-
 
 
index 6388e148d6a2c809d9d81d1ca49be27ebe07ea1e..33d9cd4c622265e2365ef562b1b0cd97b1155838 100644 (file)
@@ -1,3 +1,19 @@
+# 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 -*-
 
 AM_CPPFLAGS += -I$(top_srcdir)/src/language/stats
index 8693920444587e68c8f0a0afe972ede08141c528..0ec56b9b31b18f30797fd1337e422cd07afb72dc 100644 (file)
@@ -1,3 +1,21 @@
+/* 
+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/>.
+*/
+
 #ifndef BARCHART_DEF_H
 #define BARCHART_DEF_H 1
 
index fc3eb5b4d279446d7057559a707a664d3298e2a8..095d98ff35c5c0c290bae9cc3c6ab45f1fdd9afb 100644 (file)
@@ -243,6 +243,8 @@ struct idata
 
   double detR;  /* The determinant of the correlation matrix */
 
+  gsl_matrix *ai_cov; /* The anti-image covariance matrix */
+  gsl_matrix *ai_cor; /* The anti-image correlation matrix */
   struct covariance *cvm;
 };
 
@@ -266,36 +268,32 @@ idata_free (struct idata *id)
   gsl_vector_free (id->msr);
   gsl_vector_free (id->eval);
   gsl_matrix_free (id->evec);
+  gsl_matrix_free (id->ai_cov);
+  gsl_matrix_free (id->ai_cor);
 
   free (id);
 }
 
-
-static gsl_matrix *
-anti_image (const gsl_matrix *m)
+/* Return the sum of squares of all the elements in row J excluding column J */
+static double
+ssq_row_od_n (const gsl_matrix *m, int j)
 {
-  int i, j;
-  gsl_matrix *a;
+  int i;
+  double ss = 0;
   assert (m->size1 == m->size2);
 
-  a = gsl_matrix_alloc (m->size1, m->size2);
+  assert (j < m->size1);
 
   for (i = 0; i < m->size1; ++i)
     {
-      for (j = 0; j < m->size2; ++j)
-       {
-         double *p = gsl_matrix_ptr (a, i, j);
-         *p = gsl_matrix_get (m, i, j);
-         *p /= gsl_matrix_get (m, i, i);
-         *p /= gsl_matrix_get (m, j, j);
-       }
+      if (i == j ) continue;
+      ss += pow2 (gsl_matrix_get (m, i, j));
     }
 
-  return a;
+  return ss;
 }
 
-
-/* Return the sum of all the elements excluding row N */
+/* Return the sum of squares of all the elements excluding row N */
 static double
 ssq_od_n (const gsl_matrix *m, int n)
 {
@@ -307,9 +305,9 @@ ssq_od_n (const gsl_matrix *m, int n)
 
   for (i = 0; i < m->size1; ++i)
     {
-      if (i == n ) continue;
       for (j = 0; j < m->size2; ++j)
        {
+         if (i == j) continue;
          ss += pow2 (gsl_matrix_get (m, i, j));
        }
     }
@@ -318,6 +316,58 @@ ssq_od_n (const gsl_matrix *m, int n)
 }
 
 
+static gsl_matrix *
+anti_image_corr (const gsl_matrix *m, const struct idata *idata)
+{
+  int i, j;
+  gsl_matrix *a;
+  assert (m->size1 == m->size2);
+
+  a = gsl_matrix_alloc (m->size1, m->size2);
+
+  for (i = 0; i < m->size1; ++i)
+    {
+      for (j = 0; j < m->size2; ++j)
+        {
+          double *p = gsl_matrix_ptr (a, i, j);
+          *p = gsl_matrix_get (m, i, j);
+          *p /= sqrt (gsl_matrix_get (m, i, i) *
+                      gsl_matrix_get (m, j, j));
+        }
+    }
+
+  for (i = 0; i < m->size1; ++i)
+    {
+      double r = ssq_row_od_n (idata->mm.corr, i);
+      double u = ssq_row_od_n (a, i);
+      gsl_matrix_set (a, i, i, r / (r + u));
+    }
+
+  return a;
+}
+
+static gsl_matrix *
+anti_image_cov (const gsl_matrix *m)
+{
+  int i, j;
+  gsl_matrix *a;
+  assert (m->size1 == m->size2);
+
+  a = gsl_matrix_alloc (m->size1, m->size2);
+
+  for (i = 0; i < m->size1; ++i)
+    {
+      for (j = 0; j < m->size2; ++j)
+       {
+         double *p = gsl_matrix_ptr (a, i, j);
+         *p = gsl_matrix_get (m, i, j);
+         *p /= gsl_matrix_get (m, i, i);
+         *p /= gsl_matrix_get (m, j, j);
+       }
+    }
+
+  return a;
+}
 
 #if 0
 static void
@@ -1365,10 +1415,11 @@ cmd_factor (struct lexer *lexer, struct dataset *ds)
              else if (lex_match_id (lexer, "INV"))
                {
                }
+#endif
              else if (lex_match_id (lexer, "AIC"))
                {
+                 factor.print |= PRINT_AIC;
                }
-#endif
              else if (lex_match_id (lexer, "SIG"))
                {
                  factor.print |= PRINT_SIG;
@@ -1981,6 +2032,81 @@ show_factor_correlation (const struct cmd_factor * factor, const gsl_matrix *fcm
   tab_submit (t);
 }
 
+static void
+show_aic (const struct cmd_factor *factor, const struct idata *idata)
+{
+  struct tab_table *t ;
+  size_t i;
+
+  const int heading_rows = 1;
+  const int heading_columns = 2;
+
+  const int nc = heading_columns + factor->n_vars;
+  const int nr = heading_rows + 2 * factor->n_vars;
+
+  if ((factor->print & PRINT_AIC) == 0)
+    return;
+
+  t = tab_create (nc, nr);
+
+  tab_title (t, _("Anti-Image Matrices"));
+
+  tab_hline (t, TAL_1, 0, nc - 1, heading_rows);
+
+  tab_headers (t, heading_columns, 0, heading_rows, 0);
+
+  tab_vline (t, TAL_2, 2, 0, nr - 1);
+
+  /* Outline the box */
+  tab_box (t,
+          TAL_2, TAL_2,
+          -1, -1,
+          0, 0,
+          nc - 1, nr - 1);
+
+  /* Vertical lines */
+  tab_box (t,
+          -1, -1,
+          -1, TAL_1,
+          heading_columns, 0,
+          nc - 1, nr - 1);
+
+
+  for (i = 0; i < factor->n_vars; ++i)
+    tab_text (t, heading_columns + i, 0, TAT_TITLE, var_to_string (factor->vars[i]));
+
+  tab_text (t, 0, heading_rows, TAT_TITLE, _("Anti-image Covariance"));
+  tab_hline (t, TAL_1, 0, nc - 1, heading_rows + factor->n_vars);
+  tab_text (t, 0, heading_rows + factor->n_vars, TAT_TITLE, _("Anti-image Correlation"));
+
+  for (i = 0; i < factor->n_vars; ++i)
+    {
+      tab_text (t, 1, i + heading_rows, TAT_TITLE,
+               var_to_string (factor->vars[i]));
+
+      tab_text (t, 1, factor->n_vars + i + heading_rows, TAT_TITLE,
+               var_to_string (factor->vars[i]));
+    }
+
+  for (i = 0; i < factor->n_vars; ++i)
+    {
+      int j;
+      for (j = 0; j < factor->n_vars; ++j)
+       {
+         tab_double (t, heading_columns + i, heading_rows + j, 0,
+                     gsl_matrix_get (idata->ai_cov, i, j), NULL, RC_OTHER);
+       }
+
+
+      for (j = 0; j < factor->n_vars; ++j)
+       {
+         tab_double (t, heading_columns + i, factor->n_vars + heading_rows + j, 0,
+                     gsl_matrix_get (idata->ai_cor, i, j), NULL, RC_OTHER);
+       }
+    }
+
+  tab_submit (t);
+}
 
 static void
 show_correlation_matrix (const struct cmd_factor *factor, const struct idata *idata)
@@ -2245,6 +2371,25 @@ do_factor_by_matrix (const struct cmd_factor *factor, struct idata *idata)
   else
     idata->analysis_matrix = idata->mm.cov;
 
+  gsl_matrix *r_inv;
+  r_inv  = clone_matrix (idata->mm.corr);
+  gsl_linalg_cholesky_decomp (r_inv);
+  gsl_linalg_cholesky_invert (r_inv);
+
+  idata->ai_cov = anti_image_cov (r_inv);
+  idata->ai_cor = anti_image_corr (r_inv, idata);
+
+  int i;
+  double sum_ssq_r = 0;
+  double sum_ssq_a = 0;
+  for (i = 0; i < r_inv->size1; ++i)
+    {
+      sum_ssq_r += ssq_od_n (idata->mm.corr, i);
+      sum_ssq_a += ssq_od_n (idata->ai_cor, i);
+    }
+
+  gsl_matrix_free (r_inv);
+
   if (factor->print & PRINT_DETERMINANT
       || factor->print & PRINT_KMO)
     {
@@ -2315,9 +2460,6 @@ do_factor_by_matrix (const struct cmd_factor *factor, struct idata *idata)
   if (factor->print & PRINT_KMO)
     {
       int i;
-      double sum_ssq_r = 0;
-      double sum_ssq_a = 0;
-
       double df = factor->n_vars * (factor->n_vars - 1) / 2;
 
       double w = 0;
@@ -2331,25 +2473,11 @@ do_factor_by_matrix (const struct cmd_factor *factor, struct idata *idata)
       const int nr = heading_rows + 4;
       const int nc = heading_columns + 1;
 
-      gsl_matrix *a, *x;
+
 
       struct tab_table *t = tab_create (nc, nr);
       tab_title (t, _("KMO and Bartlett's Test"));
 
-      x  = clone_matrix (idata->mm.corr);
-      gsl_linalg_cholesky_decomp (x);
-      gsl_linalg_cholesky_invert (x);
-
-      a = anti_image (x);
-
-      for (i = 0; i < x->size1; ++i)
-       {
-         sum_ssq_r += ssq_od_n (x, i);
-         sum_ssq_a += ssq_od_n (a, i);
-       }
-
-      gsl_matrix_free (a);
-      gsl_matrix_free (x);
 
       tab_headers (t, heading_columns, 0, heading_rows, 0);
 
@@ -2488,9 +2616,9 @@ do_factor_by_matrix (const struct cmd_factor *factor, struct idata *idata)
       }
 
 
+    show_aic (factor, idata);
     show_communalities (factor, initial_communalities, extracted_communalities);
 
-
     if ( factor->rotation != ROT_NONE)
       {
        rotated_factors = gsl_matrix_calloc (factor_matrix->size1, factor_matrix->size2);
index 429c770975e98c16999f62e787a5c23e9ff70df1..2996615a3f3c32a163afa1299f724a9917d2caf3 100644 (file)
@@ -1,3 +1,19 @@
+# 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 -*-
 
 language_tests_sources = \
index 1c745b2b7ff0b1a6997d88ed8645a1f8c26e4688..4228eaa7a0d6e9566569c217e5ba7abff188bcf3 100644 (file)
@@ -1,3 +1,19 @@
+# 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 -*-
 
 
index d0fe1cb6c03596a990cf26abacee9a5c7abd420b..3256ca9752a0f8e33a11a2c9c0644568f531a82d 100644 (file)
@@ -1,3 +1,19 @@
+# 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 -*-
 
 
index dc17fbd7ef56fdd3f8b1a44c532fb9c964c28c90..fbebd56835f0ba59bf4afc522e17f7240e7e1c50 100644 (file)
@@ -1,3 +1,21 @@
+/* 
+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/>.
+*/
+
 #ifndef ALGORITHM_H
 #define ALGORITHM_H 1
 
index 0892a481c865e22af3fbff2490efccb7b3796680..b68fce0d5227797084a24a420a917e6fc5b4b8cc 100644 (file)
@@ -1,3 +1,19 @@
+# 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 -*-
 
 
index 13986cbeca21ac51ce6ef856cb37c1f70d6ff1e2..4810ae53378c4dda4b98426f809002c4f1c3ad1e 100644 (file)
@@ -378,7 +378,7 @@ zip_reader_create (const char *filename, struct string *errs)
   zr->members = xcalloc (zr->n_members, sizeof (*zr->members));
   memset (zr->members, 0, zr->n_members * sizeof (*zr->members));
 
-  zr->filename = strdup (filename);
+  zr->filename = xstrdup (filename);
 
   return zr;
 }
index cdcc2c8cb79355d6434a32a6019f21aa6edc3851..36e1f5e3043e8e8acf2b4c0b709235a4abde2c63 100644 (file)
@@ -1,3 +1,19 @@
+# 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 -*-
 
 
index be330bc40e211daa701243815e95072591c1b968..d1e0dae980e1e12c03e312b0fcbf7fd6139b6fb7 100644 (file)
@@ -275,7 +275,7 @@ linreg_predict (const struct linreg *c, const double *vals, size_t n_vals)
   size_t j;
   double result;
 
-  assert (n_vals = c->n_coeffs);
+  assert (n_vals == c->n_coeffs);
   if (vals == NULL || c == NULL)
     {
       return GSL_NAN;
@@ -322,6 +322,7 @@ linreg_set_indep_variable_mean (struct linreg *c, size_t j, double m)
   gsl_vector_set (c->indep_means, j, m);
 }
 
+#if 0
 static void
 linreg_fit_qr (const gsl_matrix *cov, struct linreg *l)
 {
@@ -415,6 +416,7 @@ linreg_fit_qr (const gsl_matrix *cov, struct linreg *l)
   gsl_matrix_free (xtx);
   gsl_vector_free (params);
 }
+#endif
 
 #define REG_LARGE_DATA 1000
 
@@ -432,6 +434,9 @@ linreg_fit (const gsl_matrix *cov, struct linreg *l)
 
   l->sst = gsl_matrix_get (cov, cov->size1 - 1, cov->size2 - 1);
 
+#if 0
+  /*  This QR decomposition path seems to produce the incorrect
+      values.  See https://savannah.gnu.org/bugs/?51373  */
   if ((l->n_obs * l->n_obs > l->n_indeps) && (l->n_obs > REG_LARGE_DATA))
     {
       /*
@@ -440,6 +445,7 @@ linreg_fit (const gsl_matrix *cov, struct linreg *l)
       linreg_fit_qr (cov, l);
     }
   else
+#endif    
     {
       gsl_matrix *params = gsl_matrix_calloc (cov->size1, cov->size2);
       gsl_matrix_memcpy (params, cov);
index 07eba552b20aeb7437b93df9199641f9c4c7ecb9..92f19065796f0abb3d25f89b30472e1620b0429b 100644 (file)
@@ -1,3 +1,21 @@
+/* 
+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/>.
+*/
+
 #ifndef WX_MP_SR
 #define WX_MP_SR 1
 
index 04fddfd94230e625106ca7ba26950dbf17a1d7b4..7e2a9afe6ce78ae5179f0cbac86d067ff65fbda2 100644 (file)
@@ -1,3 +1,19 @@
+# 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 -*-
 
 noinst_LTLIBRARIES += src/output/liboutput.la 
index 6f4dd6ce728bf2fd2185067123fe0bb3cd5dc1f1..4836caa926add7f6ad6cd104a0bc7cdae74fff33 100644 (file)
@@ -1,3 +1,19 @@
+# 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)/src/ui/terminal/automake.mk
index f42f8cba3cbef63ab0028a11461ff5aa99ae9b2a..850ef0161e8b5e58ee20163bb915c372a31d7aaf 100644 (file)
@@ -1,4 +1,20 @@
 <?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"/>
index d302f5b258bed2f81855eb14cf1947010935024f..1877263b73eac257ef0354d5f8bdfba91c752b40 100644 (file)
@@ -1,3 +1,19 @@
+# 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 = \
index d03a4d6273f08c1a244ff8156123d3efc69398d4..cf6d095cda42330c6211265e72dbdb2449b19a26 100644 (file)
@@ -1,4 +1,20 @@
 <?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"/>
index c7b8d0d66cc201dd433029ecdf74cc5243b438f2..2ffac33ced32b6b3a1da695e5c4033f0a2eb52de 100644 (file)
@@ -1,4 +1,20 @@
 <?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"/>
index f84d1f0b11b39d0a60184e8d6baf60912ce82426..40e972be7f5c36cd8f1139ac040b35ea66f68601 100644 (file)
@@ -1,4 +1,20 @@
 <?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"/>
index 3dd34d323f9897258639a03c247bb9bd1f9dbcac..f57db45a49f6637965b37a3f3cb5297d2a448362 100644 (file)
@@ -1,4 +1,20 @@
 <?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"/>
index 2803ed666f1b5a32849e55442b8d7b31f54ba3a6..95aec4e924266833eea78df654034b05aa30d69c 100644 (file)
@@ -1,4 +1,20 @@
 <?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"/>
index 45a39b09758e7d09ceadce7fa04d34e149815eca..18bd8ff119574c603ad1d891e32e0502bfb95922 100644 (file)
@@ -1,4 +1,20 @@
 <?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"/>
index 0fe16d23c558c33c437a87ceda3e2ba6ffcf3139..37161b5517c805189a4a9a4b82a2b0c7f04d1ebb 100644 (file)
@@ -1,4 +1,20 @@
 <?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"/>
index d9ed2bd2517e013013aaaac0a1b5ed47301cd2b8..70189e5ebedfd33d50471b5b147ac2f36b42a0f3 100644 (file)
@@ -1,4 +1,20 @@
 <?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"/>
index d949ac372d665d6a351fa6d7b77fa9e79d2c3bb3..233657a6c164845491330745637ee5fe457f4927 100644 (file)
@@ -1,4 +1,20 @@
 <?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"/>
index 0a5430f4d423bc221076c10815d3780686251d1d..214af79738740740d0cdcbce05bbcc78df811a8a 100644 (file)
@@ -1,4 +1,20 @@
-<?xml version="1.0"?>
+<?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/>. -->
+
 <interface>
   <!-- interface-requires gtk+ 2.6 -->
   <!-- interface-naming-policy toplevel-contextual -->
index ee8373d2cbfadb9ebf8f54094fd8407d511980f2..c63aa4cf86fb827d4fdb49a253aa9d655aebdcf0 100644 (file)
@@ -1,4 +1,20 @@
 <?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"/>
index b45582b1ab81ce7d778ebd0af7416d23d5aeced0..e914ce1a11f6f23a308960d96eb931987696716b 100644 (file)
@@ -1,4 +1,20 @@
 <?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"/>
index c51244d343999126ab20aac7446ee7b87db45fdb..5c7824371ce0f13f79f1eb9c38044d3dd4321881 100644 (file)
@@ -1,4 +1,20 @@
 <?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"/>
index c20349e487a44fc3e4ebcdd049ef45fa4a190ff1..445d5b20398d0f16a1e48f158c86e3d56f5fe6ce 100644 (file)
@@ -1,4 +1,20 @@
 <?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"/>
index 8f2aab877ccaf752751fae3dd97195c5e5577cf2..ac05b5961d025603274de846c16d20b31c56539a 100644 (file)
@@ -1,4 +1,20 @@
 <?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"/>
index 82957f32fd4386de5f11456fdbad0cb4c9193068..03dabe55a6d0a2631ff5acdda354a7afd8c2aeb7 100644 (file)
@@ -1,4 +1,20 @@
 <?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"/>
index 1a48ec260bd671f5c8cb5e16ab42eccdb3e5ad02..79490b7a0c94386cadcb7875bf75ae57f4937424 100644 (file)
@@ -1,4 +1,20 @@
 <?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"/>
index 4e374e2dafb8446168125360c559644284f1f0e0..e4c0313b3da73976cd6a2add240120197a48f761 100644 (file)
@@ -1,4 +1,20 @@
 <?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"/>
index 7aee3f34248325ab54bb5df34ecd3f744dddfa34..d3eb0ef1b7b6e2130277d5864e4ec460986bf4a8 100644 (file)
@@ -1,3 +1,19 @@
+# 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/>.
+# 
 EXTRA_DIST += $(icons) $(icon_srcs) src/ui/gui/icons/COPYING_CCBYSA3
 
 include $(top_srcdir)/src/ui/gui/icons/manifest
index 69cfb67a5e16c88d23d737d493ac7d71e8719edf..f42973e172e448403dff9971f9c855c09c287e16 100644 (file)
@@ -1,4 +1,20 @@
 <?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"/>
index 60ed0957e1c894a1b48206a2bd815eb3d7e33fef..8b1ffb28366598335369d258bcdfff012a9085cc 100644 (file)
@@ -1,4 +1,20 @@
 <?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"/>
index 06a5021c5d49987ede03ae08f60a1510a2d88422..838199228b662528f926436957b149adb5be7f03 100644 (file)
@@ -1,4 +1,20 @@
 <?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"/>
index ab52a5db5bf65dc7a191b81d93f3201c5ae52c4f..3c9ad814e15836cfe24e730b00b0fdf72170fa49 100644 (file)
@@ -1,4 +1,20 @@
 <?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"/>
index e7bb2e07eb6cf9e6bbb983d406e430212f96b6eb..9b5a1dc6cd1750ec2ff80ca98d33decc33c008e4 100644 (file)
@@ -1,4 +1,20 @@
 <?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"/>
index b226eedb352e3bea0fd1a36661fab2d348b9dacc..94f7449bc300c82ca02dc02959e32b7d1cfb5879 100644 (file)
@@ -1,4 +1,20 @@
 <?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"/>
index 17391912319790c139d3326739f0209a4b498d18..e277e4357966f31efa45aa5e4a85c1630176a4da 100644 (file)
@@ -1,4 +1,20 @@
 <?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"/>
index b9360fb196b798e5b891d312dff8adf3132d159c..09db6398e3ba9899f2f767cd459c1912470243fc 100644 (file)
@@ -1,4 +1,20 @@
 <?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"/>
index 02720a42eca9ef2cbe8afd3712c8a5ef6dfe36df..615ba2f38027fd1c89a5d2a6d5b77d6b01515c86 100644 (file)
@@ -1,4 +1,20 @@
 <?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"/>
index 75e827fcf357ffd7d7ad269d7461a1e3b2f79315..3a15821edd1c8e1db44dbbaa6691da7cb01f9743 100644 (file)
@@ -1,4 +1,20 @@
 <?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"/>
index faa85b27c3aca1f0bca02626b533bf826e58276b..f23dfd68b67ab9f2acb260851db7c6f197ec9315 100644 (file)
@@ -1,4 +1,20 @@
 <?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.0"/>
index 46c0b6dd31e7f817db588fe961468bbf1414cdbc..cf59479fd32a3163570d33ac762d7e45fd51292f 100644 (file)
@@ -1,4 +1,20 @@
 <?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"/>
index 87989cf12bfc76e4a6ccf8f57714afea41a93437..087c105587f7e2c83b7c237208bd01a8bd8ad0fa 100644 (file)
@@ -301,19 +301,37 @@ on_validity_change (GtkWidget *toplevel, gboolean valid, gpointer data)
   gtk_widget_set_sensitive (GTK_WIDGET (bb->button[PSPPIRE_BUTTON_CONTINUE]), valid);
 }
 
+static gboolean
+on_key_press (GtkWidget *w, GdkEventKey *e, gpointer ud)
+{
+  PsppireButtonbox *bb = PSPPIRE_BUTTONBOX (ud);
+  if (e->keyval == GDK_KEY_Escape)
+    {
+      g_signal_emit_by_name (bb->button[PSPPIRE_BUTTON_CANCEL], "activate");
+      g_signal_emit_by_name (bb->button[PSPPIRE_BUTTON_CLOSE], "activate");
+    }
+  return FALSE;
+}
+
+
 static void
 on_realize (GtkWidget *buttonbox, gpointer data)
 {
   GtkWidget *toplevel = gtk_widget_get_toplevel (buttonbox);
 
-  if ( PSPPIRE_IS_DIALOG (toplevel))
+  if (PSPPIRE_IS_DIALOG (toplevel))
     {
       g_signal_connect (toplevel, "validity-changed",
                        G_CALLBACK (on_validity_change), buttonbox);
+
+      g_signal_connect (toplevel, "key-press-event",
+                       G_CALLBACK (on_key_press), buttonbox);
     }
+
   set_default (PSPPIRE_BUTTONBOX (buttonbox));
 }
 
+
 static void
 psppire_button_box_init (PsppireButtonbox *bb)
 {
index b1afc0e4c30c0f084e79d9048eb06e93214d6574..5c18d592f9d88a49cf93ea4ec927c70e86ec060e 100644 (file)
@@ -1,4 +1,20 @@
 <?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"/>
index ee31002c81970731e580d929f8399ddf22ec75fa..77f101c4bb4dbfdb9a4c9f1bb33401f7dc242b25 100644 (file)
@@ -1,4 +1,20 @@
 <?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"/>
index d7aa7d1867e07cff64fdb92fb334ba84560409b4..00b552e00ce183370bc2c4c96e1818f084082169 100644 (file)
@@ -1,4 +1,20 @@
 <?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"/>
index 76b75fc84e84f6731acef180047f4bed84a48c2f..4d739749c8266bc0c36ed2337e05aedab60dfd72 100644 (file)
@@ -1,4 +1,20 @@
 <?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"/>
index f08322ff12b59607cd47d1be6dfa25545d4b9a1d..92258c64f9772a6cabaee4a91bf323b4e2ff4663 100644 (file)
@@ -1,4 +1,20 @@
 <?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"/>
index b0ece16a6a3a947e8a3cbd731b51956f32c8e606..3300bf653a9bfb25606bd6989009403170c8044f 100644 (file)
@@ -1,4 +1,20 @@
 <?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"/>
index 6cc59b288251dbe7e2b2b8a956301107650f393b..f460a1c01d420f843781df3b8a9a4698598d8b10 100644 (file)
@@ -1,4 +1,20 @@
 <?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"/>
index 6eb7bda8a3a2dd50500c4df872e032b1e4727c52..518ec4a6c13e8af6336fe7908fcfcb6084e5686a 100644 (file)
@@ -1,4 +1,20 @@
 <?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"/>
index 6773c33932cf5728beb3bba8c4dc1d9d4b1416f8..37f6885937f48c69fc07fdea1356e46817521548 100644 (file)
@@ -1,4 +1,20 @@
 <?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"/>
index dde80d624fa4e55c0b42bb288be53d1a996f3389..c59700c34b9361efb51042170780880fbb6f50bf 100644 (file)
@@ -1,4 +1,20 @@
 <?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"/>
index a8451e0ef51323fc60137d713ea761ee4b04b6c5..56423ea70b6857c3bd4339d19ab54b3ea615d1f4 100644 (file)
@@ -1,4 +1,20 @@
-<?xml version="1.0"?>
+<?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/>. -->
+
 <!--*- mode: xml -*-->
 <interface>
   <menu id="syntax-window-menu">
index f9a56e8e9396cb16f39d89dc896048a64433bf78..8f29347dba9bbac27ce9df124e547ee74f5062e2 100644 (file)
@@ -1,4 +1,20 @@
 <?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"/>
index e7ee2d369c370709d78a2e6289e310af495c282b..86e6f39906e27603569e501cb0f33edca4e6ccda 100644 (file)
@@ -1,4 +1,20 @@
 <?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"/>
index 3b62febd03781b9fe80d1b45ae6e97f1bab9ea48..09a76d1e0b477fbc633b275d20b99b4e4a5e67e3 100644 (file)
@@ -1,4 +1,20 @@
 <?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"/>
index e4b05a8ec85f57ba43b5feff2102219782c7e403..031a776ded9bca0cb4c45f76f4031f575e14a87b 100644 (file)
@@ -1,4 +1,20 @@
 <?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"/>
index e3dbc185ec2e989d25522cea959df9a45f1108e1..12767198c4a1ec24bedc108128ae144c5130ef8f 100644 (file)
@@ -1,4 +1,20 @@
 <?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"/>
index f779f4b1c15cca22d08b54e694506a6c373ccb99..086b5d618421c96e91f1f53d0664050e59eb37fa 100644 (file)
@@ -1,3 +1,21 @@
+/* 
+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 "var-display.h"
 
index 69383b49dfeab11576ecfc97fb4336806134c515..c47f623118bceb12bbe64bfdc33922ccccc32513 100644 (file)
@@ -1,4 +1,20 @@
 <?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"/>
index 761c297b87bbf34ead14c53371937bad272b9266..3135c1d026a957ae8fc5caf9d819fd8dbcdda240 100644 (file)
@@ -1,4 +1,20 @@
 <?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"/>
index 9ee4e46ef3844aa20de780b2c4e1101b521a5384..6f2faa7eba8288db91207989ac8f09cfc630da7c 100644 (file)
@@ -1,4 +1,20 @@
 <?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"/>
index 6878fa0fe547ee0db128cd1cc85aeecd38d08b07..26a5dac4fd33f79c30545d1d3dae304727c71bdd 100644 (file)
@@ -1,3 +1,21 @@
+/* 
+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>
index 4180591f1a667e2bdb9a3edc36aa425f3615cd88..2a3c33966f96dd23e3d6a7e422fd1a21a9426fbb 100644 (file)
@@ -1,3 +1,19 @@
+# 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 -*-
 
 noinst_LTLIBRARIES += src/ui/terminal/libui.la
index f011d0849b59671a5770d52af50bcd09010c7669..38679c050c1c63f8f5dceb1d540fdab8eeffc404 100644 (file)
@@ -1,5 +1,23 @@
 # -*- shell-script -*-
 
+# 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/>.
+# 
+
+
 # Variables used internally by the testsuite.
 EXEEXT='@EXEEXT@'
 GNM_READ_SUPPORT='@GNM_READ_SUPPORT@'
index 0f297f7ca095b2c9853fa392a9fafb90c6980b6c..31fddffddb7c3c1840bc87bfd0e65d013e474619 100644 (file)
@@ -1,3 +1,19 @@
+# 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 -*-
 
 check_PROGRAMS += \
@@ -245,6 +261,8 @@ tests_ui_syntax_gen_test_LDADD = \
 
 EXTRA_DIST += \
        tests/coverage.sh \
+       tests/data/CVE-2017-10791.sav \
+       tests/data/CVE-2017-10792.sav \
        tests/data/bcd-in.expected.cmp.gz \
        tests/data/binhex-in.expected.cmp.gz \
        tests/data/binhex-out.expected.gz \
index 3a210783c2fed0b507cd50f67c12aa23119c7ee0..7a47296c8da0cd3bc1e7f02285332f096e74ef4d 100755 (executable)
@@ -1,5 +1,22 @@
 #!/bin/sh
 
+# 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/>.
+# 
+
 # This little script can be used in conjunction with gcov to see how well 
 # the regression test suite is covering the PSPP code.
 # 
diff --git a/tests/data/CVE-2017-10791.sav b/tests/data/CVE-2017-10791.sav
new file mode 100644 (file)
index 0000000..6462081
Binary files /dev/null and b/tests/data/CVE-2017-10791.sav differ
diff --git a/tests/data/CVE-2017-10792.sav b/tests/data/CVE-2017-10792.sav
new file mode 100644 (file)
index 0000000..e36df43
Binary files /dev/null and b/tests/data/CVE-2017-10792.sav differ
index 4b64ecdc1a108c9f58b9e41e25ca83724fe95f7b..4520858ef57f135a305081de9e09e5ad6f9b98f3 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([calendar])
 
 AT_SETUP([epoch])
index 0c3a1837911fb5149808216f6dfe7233a83583d4..dfdf37ef1fb6b04258451551a307fd679313f863 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([data input (data-in)])
 
 m4_divert_push([PREPARE_TESTS])
index 2ff7a2646ddcc6db99401dc6c43e03d4447049dc..f84e144928e74fbf1ef87eecb6c28fa5b4b71056 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([data output (data-out)])
 
 AT_SETUP([numeric format output])
index 6f2f0e137b96e8ec8d98ed78c6fa7c3a654b51d5..0b24cfa821de68acf280d536f0e584f9383de01a 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([datasheet])
 
 m4_define([DATASHEET_TEST],
index 85ea5281bc4d451e629d5faa60e54df15d79581f..bc14638dfb498297834964baf1e636bd29b4bd1f 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([dictionary])
 
 AT_SETUP([dictionary case-insensitivity])
index 15a5ce219e8a41c7b8a7fc676b94f86a068d5117..cfad7e05e22d32aeb778b802866869716a762db7 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([encrypted files])
 
 AT_SETUP([decrypt an encrypted system file])
index bccdf003c5af250136e2abc4f387769814c8f870..686984046aaefdffabf7f82d30c1c89cf693bd12 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([files handling])
 
 AT_SETUP([Write error - directory exists])
index 764d0f1668f942205b9b80b8a960af83f388e241..f5df6efe806c3e9236018be4c8b92a614da0a21c 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([format guesser])
 
 AT_SETUP([format guesser])
index a968e5dac02b9682cb55df6b36f9bf9a1a2e1d32..2e032cdfb6a46fecaf6ed169fdbc717aed9cbd82 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([SPSS/PC+ file reader - positive])
 
 AT_SETUP([variable labels and missing values])
index c23a047f31c88a7f7b02760b692e76faa1e0f238..d7ba8048650e9d3f382ab87f906424bc72185cfc 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([portable files])
 
 AT_SETUP([overwriting portable file])
index a00ef2b46ce7a376f48b4ce102a0a996e019fdd7..be4782284c0ef8c0a87d0994088c0fd7fe00e34c 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([system file reader - positive])
 
 AT_SETUP([variable labels and missing values])
@@ -568,6 +584,53 @@ num1
 done
 AT_CLEANUP
 
+AT_SETUP([empty document record])
+AT_KEYWORDS([sack synthetic system file positive])
+AT_DATA([sys-file.sack], [dnl
+dnl File header.
+"$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
+2; dnl Layout code
+1; dnl Nominal case size
+0; dnl Not compressed
+0; dnl Not weighted 
+1; dnl 1 case.
+100.0; dnl Bias.
+"01 Jan 11"; "20:53:52"; s64 "PSPP synthetic test file";
+i8 0 *3;
+
+dnl Numeric variable, no label or missing values.
+2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
+
+dnl Machine integer info record.
+7; 3; 4; 8; 1; 2; 3; -1; 1; 1; ENDIAN; 1252;
+
+dnl Document record.
+6; 0;
+
+dnl Character encoding record.
+7; 20; 1; 12; "windows-1252";
+
+dnl Dictionary termination record.
+999; 0;
+
+dnl Data.
+1.0;
+])
+for variant in be le; do
+  AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
+  AT_DATA([sys-file.sps], [dnl
+GET FILE='sys-file.sav'.
+LIST.
+])
+  AT_CHECK([pspp -o pspp.csv sys-file.sps])
+  AT_CHECK([cat pspp.csv], [0], [dnl
+Table: Data List
+num1
+1
+])
+done
+AT_CLEANUP
+
 AT_SETUP([multiple response sets])
 AT_KEYWORDS([sack synthetic system file positive])
 AT_DATA([sys-file.sack], [dnl
@@ -2197,36 +2260,6 @@ done
 AT_CLEANUP
 
 
-AT_SETUP([empty document record])
-AT_KEYWORDS([sack synthetic system file negative])
-AT_DATA([sys-file.sack], [dnl
-dnl File header.
-"$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
-2; 2; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
-
-dnl Numeric variable, no label or missing values.
-2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
-
-dnl Empty document record.
-6; >>0<<;
-
-dnl Dictionary termination record.
-999; 0;
-
-dnl Data.
-1.0;
-])
-for variant in be le; do
-  AT_CHECK([sack --$variant sys-file.sack > sys-file.sav])
-  AT_DATA([sys-file.sps], [dnl
-GET FILE='sys-file.sav'.
-])
-  AT_CHECK([pspp -O format=csv sys-file.sps], [1], [dnl
-error: `sys-file.sav' near offset 0xd4: Number of document lines (0) must be greater than 0 and less than 26843545.
-])
-done
-AT_CLEANUP
-
 AT_SETUP([extension record too large])
 AT_KEYWORDS([sack synthetic system file negative])
 AT_DATA([sys-file.sack], [dnl
@@ -3873,3 +3906,29 @@ for variant in be le; do
 ])
 done
 AT_CLEANUP
+
+# CVE-2017-10791.
+# See also https://bugzilla.redhat.com/show_bug.cgi?id=1467004.
+# See also https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=866890.
+# See also https://security-tracker.debian.org/tracker/CVE-2017-10791.
+# Found by team OWL337, using the collAFL fuzzer.
+AT_SETUP([integer overflows in long string missing values])
+AT_KEYWORDS([system file negative])
+cp $top_srcdir/tests/data/CVE-2017-10791.sav .
+AT_CHECK([pspp-convert -O csv -e ASCII CVE-2017-10791.sav -], [0], [], [dnl
+`CVE-2017-10791.sav' near offset 0x217: Extension record subtype 21 ends unexpectedly.
+])
+AT_CLEANUP
+
+# CVE-2017-10792.
+# See also https://bugzilla.redhat.com/show_bug.cgi?id=1467005.
+# See also https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=866890.
+# See also https://security-tracker.debian.org/tracker/CVE-2017-10792.
+# Reported by team OWL337, with fuzzer collAFL.
+AT_SETUP([null dereference skipping bad extension record 18])
+AT_KEYWORDS([system file negative])
+cp $top_srcdir/tests/data/CVE-2017-10792.sav .
+AT_CHECK([pspp-convert -O csv -e ASCII CVE-2017-10792.sav -], [0], [], [dnl
+`CVE-2017-10792.sav' near offset 0x1c0: Record type 7, subtype 18 has bad size 4 (expected 1).
+])
+AT_CLEANUP
index 3e1fbb1fac91449fe193115cba107024d3566e5e..6e49b783c4eaa29665cf24373c3c626a743f293a 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([system files])
 
 # Also tests that long variable names are preserved by SAVE and GET.
index 442355dbb63b1b2ba95cd17833ef9713392b79eb..476c8e71e8dda02bc934903aa362f1a7a96ed361 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([command parser])
 
 dnl Tests for a bug which crashed pspp when given certain invalid input.
index c4f9f0e483735951f844886df5a869889b5b5ca3..01dae0d904f03fbc6eb676a373f76acb4cf8fe72 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([DO IF])
 
 AT_SETUP([DO IF])
index 75c0e77a36e9b6aa056ecb488944c410e41da4f2..4afd5eaf52e5798c1dbc5a50a5d917277c224259 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([DO REPEAT])
 
 AT_SETUP([DO REPEAT -- simple])
index be214cce489e3ee52b4ff397585362cf53d22a52..60baac7e9c785af928ebbbc4488524008dba2e6b 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([LOOP])
 
 m4_define([LOOP_DATA], [dnl
index 5ec8bea55dc0240feb0670ce7a3f853aad7281b5..675ad777b615f04d08edda43d19ef7411d00b3b5 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([TEMPORARY])
 
 dnl Tests for a bug that manifested when all transformations are temporary.
index d6650819e0e35b88d376952014aa76a2eda67296..8131eb592d37138f1279c122f43eff89262ca22a 100644 (file)
@@ -1,4 +1,19 @@
-m4_define([CHECK_ADD_FILES],
+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 m4_define([CHECK_ADD_FILES],
   [AT_SETUP([ADD FILES -- $1 $2 with $3])
    AT_DATA([a.data], [dnl
 1aB
index d154fd97fe0af228b806be1a6f7303fc2d9362ed..5bfdb497b1f60b4fc4fa708ccfa28b2e1698f066 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([DATA LIST])
 
 AT_SETUP([DATA LIST LIST with empty fields])
index b9e7607595a2a2d5292d4972026d813c37d6fa8b..4ca00a6aa72822c53b98bd597c282bde3f7eb2ff 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([BEGIN DATA])
 
 # BEGIN DATA can run as a command in itself, or it can appear as part
index 7d5e928e359da06c6caa9dfa3e64348bab43a3f8..64139f9360732dc50059b379621725242bde0212 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([DATASET commands])
 
 AT_SETUP([DATASET COPY])
index add22d20eead14c53c3dce2e6f2fdbd25c0d2e68..2207513cb6713d247a606259bf13e64fe2806ecf 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([FILE HANDLE])
 
 AT_SETUP([FILE HANDLE])
index 692de0957b242bee86df49a0a0f388061547a77c..fc99babf348d49bdc4fc1f4367644e08460f21ec 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([GET DATA /TYPE=PSQL])
 
 m4_define([INIT_PSQL], 
index b6a18ddf2c5e5c21c8ace8b3295e7f2abf2b6d38..cc03ade98325186414404dd83ad6831b63b4b809 100644 (file)
@@ -1,4 +1,19 @@
-
+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 
 m4_define([SPREADSHEET_TEST_PREP],[dnl
  m4_if($1,[GNM],[dnl
     AT_CHECK([gzip -c $top_srcdir/tests/language/data-io/Book1.gnm.unzipped > Book1.gnumeric])dnl
index 3b45f4c2c0e5483442ea52b507b5d7925450b5a8..25d7d6b93dce48ad336fc9a22d1878568ef0a3e1 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([GET DATA /TYPE=TXT])
 
 dnl These tests exercise features of GET DATA /TYPE=TXT that
index 9f49b577447230a17511b40688316112f5c162ab..f4ce9ac8f0d102e812f2db762abe97d99159f892 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([GET])
 
 dnl Tests for a bug which caused the second procedure
index f5498855a75ea63365540ca45a00d71e7bcf8f87..a6ce23eefb3303c000a4312366e541f769c486ce 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([INPUT PROGRAM])
 
 dnl Tests for a bug which caused a crash when 
index 10bb52e92a6176027e7ca7cc08a808acb6308109..ccf03d66ff2d08025e33e1982debafc7d97bcea3 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([LIST])
 
 AT_SETUP([LIST plain cases])
index d83eec8e48d759c21549cb169dbf1cc776b2f04f..f1b13daecf236f4ea35eaab6dc3001ab919793d4 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([MATCH FILES])
 
 m4_define([PREPARE_MATCH_FILES],
index c015bca39f75b82863c7e88d8707cd8e2dd2ffc6..67a37872997eca03587bf641045b2ccfff028a1c 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([MATRIX DATA])
 
 AT_SETUP([Matrix data (lower file)])
@@ -426,4 +442,42 @@ factor matrix=in(corr = *)
 
 AT_CHECK([pspp -O format=csv data.pspp], [1], [ignore])
 
-AT_CLEANUP
\ No newline at end of file
+AT_CLEANUP
+
+
+
+
+AT_SETUP([Matrix data (N subcommand)])
+
+AT_DATA([matrix-data.pspp], [dnl
+matrix data
+    variables = rowtype_  var01 var02 var03 var04
+    /n = 99
+    /format = upper nodiagonal.
+begin data
+mean 34 35 36 37
+sd   22 11 55 66
+n_vector 1 2 3 4
+corr  9 8 7
+corr  6 5
+corr  4
+end data.
+
+list.
+])
+
+AT_CHECK([pspp -O format=csv matrix-data.pspp], [0], [dnl
+"matrix-data.pspp:12: warning: MATRIX DATA: The N subcommand was specified, but a N record was also found in the data.  The N record will be ignored."
+
+Table: Data List
+ROWTYPE_,VARNAME_,var01,var02,var03,var04
+N       ,,99.0000,99.0000,99.0000,99.0000
+mean    ,,34.0000,35.0000,36.0000,37.0000
+STDDEV  ,,22.0000,11.0000,55.0000,66.0000
+corr    ,var01,1.0000,9.0000,8.0000,7.0000
+corr    ,var02,9.0000,1.0000,6.0000,5.0000
+corr    ,var03,8.0000,6.0000,1.0000,4.0000
+corr    ,var04,7.0000,5.0000,4.0000,1.0000
+])
+
+AT_CLEANUP
index e2bd2ee0470f289906b77147c308224f9baea7fb..f3367f1b2e50883da524a4eccb494bc8ed12f71e 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([PRINT SPACE])
 
 AT_SETUP([PRINT SPACE without arguments])
index 04701f6ac79e243a66cbee9adf7a8b11cf59cb76..02c18c619f2e3513268291e9c283ec2ea758be87 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([PRINT and WRITE])
 
 dnl These tests check unusual aspects of the PRINT and WRITE
index 408a06bfc575e262de995a971b30d5e89f43ac6a..aca5b0ed2a82e382312e8e72475d5cdd496980d9 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([SAVE TRANSLATE /TYPE=CSV])
 
 m4_define([PREPARE_SAVE_TRANSLATE_CSV], [dnl
index 8e3a4860c73bfe5b5b24351a0567876b6876aa09..a2c005a93d57cb771adc240bd1501cc6991ac44b 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([IMPORT and EXPORT])
 
 AT_SETUP([IMPORT and EXPORT])
index 41ccf21043f3ff5d7f7df431b9420563149f227b..b2c7c482f232aba5616b44465893fd2bd3e55f33 100644 (file)
@@ -1,4 +1,19 @@
-m4_define([CHECK_UPDATE],
+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 m4_define([CHECK_UPDATE],
   [AT_SETUP([UPDATE $1 with $2])
    AT_DATA([a.data], [dnl
 1aB
index 492709a8752529607191b308d01ac752a468e231..8b9e7c96b701291cc79df34f2fb981235ce83423 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([VARIABLE ATTRIBUTES and DATAFILE ATTRIBUTES])
 
 AT_SETUP([VARIABLE ATTRIBUTES and DATAFILE ATTRIBUTES])
index 48bc40a69f5e41234a8ae00b07e420df22398aa4..9ced4d36e811524a378a4fbd7a05fcd7ca07aa2c 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([DELETE VARIABLES])
 
 dnl Checks for regressions against a crash reported in bug #38843.
index b1364f76f59434e6acebb94c7f3436383bab2008..aa391f2c8a4a56200ed49e3fcb3950ecd8dc7c12 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([FORMATS])
 
 AT_SETUP([FORMATS positive tests])
index d4a901658276385104a6bf51b5084c0504f8787d..8073ab79e1f1082a9ace2bd009222639774c4bd5 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([MISSING VALUES])
 
 AT_SETUP([MISSING VALUES valid cases])
index b69b91e1a425c96db4a427c41ebe9a9a78054215..49d9c7b215a56f68fc014df6ae0d14b38d39f529 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([MRSETS])
 
 m4_define([DEFINE_MRSETS_DATA],
index 4a887419674eb63b2ca67dc72113a62f03699cd7..53bec038232d2b0ce76abe72401c998e3e2c1ec3 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([RENAME VARIABLES])
 
 AT_SETUP([RENAME VARIABLES])
index 92b9ccb3b3e2657c608f226741a334f913811990..17d8017dc97c0f99ceab675e2e7b582efedd4db5 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([SORT VARIABLES])
 
 AT_SETUP([SORT VARIABLES])
index 83055bbf2103c6e39d9c6b73c362b1f16c8dd313..9538e714d89b652fd6b7c34d5c96b68c95c529d3 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([SPLIT FILE])
 
 AT_SETUP([SPLIT FILE - basic test])
index e822506b33dc743b6f11a1b134cd930f3c1184e2..ac8e8cd54a9de16f507cf6646418961d4aa3da2d 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([SYSFILE INFO])
 
 AT_SETUP([SYSFILE INFO])
index b3a2f8f8599391bdd2c3c5527cabaf2cea0c2ee4..60bbdc33401cd532f22d553d3b4a879ba489cff4 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([VALUE LABELS])
 
 AT_SETUP([VALUE LABELS date formats])
index 3bcbd8fc780308075a4e42940160dd34a08adaf5..16de8a2640fe3c2d0e7e44352654255757d3ca31 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([variable display attributes])
 
 AT_SETUP([variable display attribute commands])
index 36aed7a6cba953786ab48ba6928d8e8726655f0e..67fdee495f80d54ebd5afd7696d544c737d5a65b 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([VECTOR])
 
 AT_SETUP([VECTOR short form])
index a85347e516fff34da067dd0c2326270f00c31356..a0f3c53cd629312edcf7bf0e43e67e3f2c77820d 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([WEIGHT])
 
 AT_SETUP([WEIGHT])
index 15641d6073f5ae39e1d7d4b54cdf06d82f34fd1d..e2f70e09d3fd67ca7556f977ea70bda6da279261 100644 (file)
@@ -1,4 +1,19 @@
-m4_define([CHECK_EXPR_EVAL],
+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 m4_define([CHECK_EXPR_EVAL],
   [AT_SETUP([expressions - $1])
    AT_DATA([evaluate.sps],
      [set mxwarn 1000.
index 31791a41daa62072ab21c0c1a5736d537a8c919f..eadc30dd74afdd39bddcf980de5b049f92b3eaf9 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([expression parsing])
 
 AT_SETUP([parse expression with unknown variable crash])
index e0ecd59a991ef81c375125699ed2203da0c6e959..18a005ca230374e7e667052aaf63d016c95149a1 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([command name matching])
 \f
 AT_SETUP([single words])
index bd960710c47686a3ade9a2a02715dbef06829691..f13940bd6767d43585a4ce2887ef945b83c01bd8 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([lexer])
 
 AT_SETUP([lexer ignores initial @%:@! line])
index b9bc092aa3035115e1795bf4b8b1c035c1a17d8d..0b985e62801e9007aa6b75d221a85237222e1e12 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([q2c])
 
 AT_SETUP([q2c enforces mandatory subcommands])
index 50ee123df2395a28041722283f0d43bec097f957..a6b0e62881663c00ba87075203e08d067d3ef2c0 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([syntax scanning])
 m4_define([PSPP_CHECK_SCAN],
   [AT_CHECK([scan-test $1 input], [0], [expout])])
index 7d0f03aa33c8340370cd3db8b2358349759c6cdd..bd3bc38281ef9f15718092fb6bc013e64da0cf66 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([syntax segmentation])
 m4_define([PSPP_CHECK_SEGMENT],
   [AT_CHECK([segment-test $1 input], [0], [expout])
index 59609f0380d8908060a7deb2c5dad3e594576e4c..a7f792fb2ed598e7857d9eef5e05437a24ab6294 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([Variable parser])
 
 dnl This program tests that both long and short variable names are parsed OK.
index ae7a38ad8376129af2cbb8d7ea392dd28c9ee91b..976899b23386602b1d055e058dc4b856228fc7e6 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([AGGREGATE procedure])
 
 dnl CHECK_AGGREGATE(OUTFILE, SORT, MISSING)
index 52c56a8582ae2336bf9618cc14b116bc48d3be7c..5dfdf5250ec2efb85e3ca3beae1f553ba6afa75f 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([AUTORECODE procedure])
 
 AT_SETUP([AUTORECODE numbers and short strings])
index 1de7eed195f11c4a8ff2291f3dbd9e311c60e655..12819835d33dc72e7e207e7f4518f381f284b7b5 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([CORRELATIONS])
 
 AT_SETUP([CORRELATIONS -- unweighted])
index 9cd2a04f09d1f73d5a983f3bff026bf4bc51e0c0..6c34c68a436ad7fd6367da29354be1b0ba5ed024 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([CROSSTABS procedure])
 
 AT_SETUP([CROSSTABS integer mode crash])
index 9725cdae43fd2a4f9e2e58147d7062e3577da152..bc3bbb66d1ced6322116a9625feb53d2d2e3aab7 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([DESCRIPTIVES procedure])
 
 AT_SETUP([DESCRIPTIVES basics])
index 95889c50b4d97897cb832bab7ec42e321fc7eb53..6ccfac555a7d150a2d4e5f95d806c65bb3e1f361 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([EXAMINE])
 
 AT_SETUP([EXAMINE])
index 0b4565632604f5c187f5d82fb13ef362fcfa6572..ac29f50cfc4e024d3840dd1c43b3f2eec580bc0f 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([FACTOR procedure])
 
 AT_SETUP([FACTOR extraction=paf method=correlation])
@@ -2094,18 +2110,12 @@ end data.
 
 factor matrix in (cov = *)
     / method = covariance
-    / print = initial covariance kmo
+    / print = initial covariance
     / extraction = pc
     / rotation = norotate.
 ])
 
 AT_CHECK([pspp -O format=csv covariance-matrix.sps], [0], [dnl
-Table: KMO and Bartlett's Test
-Kaiser-Meyer-Olkin Measure of Sampling Adequacy,,.741
-Bartlett's Test of Sphericity,Approx. Chi-Square,104.810
-,df,28
-,Sig.,.000
-
 Table: Covariance Matrix
 ,var01,var02,var03,var04,var05,var06,var07,var08
 var01,32.490,1.539,-29.469,11.902,4.309,8.464,15.390,1.454
@@ -2254,10 +2264,6 @@ bnt_actws_56,.562
 AT_CLEANUP
 
 
-
-
-
-
 AT_SETUP([FACTOR bad input])
 
 dnl Test for a crash 
@@ -2289,3 +2295,107 @@ FACTOR MATRIX IN (CORR =!*)
 AT_CHECK([pspp -O format=csv bad-input.sps], [1], [ignore])
 
 AT_CLEANUP
+
+
+AT_SETUP([FACTOR anti-image matrix])
+
+AT_DATA([anti-image-matrix.sps], [dnl
+SET FORMAT=F20.3 .
+matrix data
+ variables = rowtype_ viq piq pa ran piatwr  piatc
+ / n = 476
+ / format = lower diagonal .
+begin data
+mean  96.88  100.51  -1.73  -0.94  -2.52 -1.85
+sd    10.97   11.19   1.19   0.88   0.85  0.97
+corr    1.00
+corr    0.38  1.00
+corr    0.26  0.24  1.00
+corr    0.16  0.17  0.34  1.00
+corr    0.25  0.07  0.46  0.38  1.00
+corr    0.37  0.22  0.39  0.30  0.59   1.00
+end data.
+
+factor matrix = in (cor = *) 
+ / analysis = viq piq pa ran piatwr piatc
+ / format = sort 
+ / extraction = pc
+ / rotation = norotate
+ / print = aic
+])
+
+AT_CHECK([pspp -O format=csv anti-image-matrix.sps], [0], [dnl
+Table: Anti-Image Matrices
+,,viq,piq,pa,ran,piatwr,piatc
+Anti-image Covariance,viq,.762,-.248,-.048,.008,-.031,-.143
+,piq,-.248,.807,-.117,-.081,.108,-.071
+,pa,-.048,-.117,.711,-.125,-.173,-.060
+,ran,.008,-.081,-.125,.808,-.143,-.035
+,piatwr,-.031,.108,-.173,-.143,.551,-.265
+,piatc,-.143,-.071,-.060,-.035,-.265,.581
+Anti-image Correlation,viq,.741,-.316,-.066,.011,-.048,-.215
+,piq,-.316,.624,-.154,-.100,.163,-.103
+,pa,-.066,-.154,.811,-.165,-.277,-.093
+,ran,.011,-.100,-.165,.825,-.214,-.051
+,piatwr,-.048,.163,-.277,-.214,.675,-.469
+,piatc,-.215,-.103,-.093,-.051,-.469,.729
+
+Table: Component Matrix
+,Component,,,,
+,1,2,3,4,5
+piatc,.774,.122,-.368,.365,-.322
+piatwr,.754,.418,.442,.219,-.115
+pa,.707,.124,-.117,-.161,.256
+piq,.456,-.733,.122,-.289,-.377
+viq,.589,-.539,.033,.298,.457
+ran,.592,.262,-.069,-.638,.096
+])
+
+AT_CLEANUP
+
+
+AT_SETUP([FACTOR Kaiser-Meyer-Olkin])
+
+AT_DATA([kmo.sps], [dnl
+SET FORMAT=F20.3 .
+matrix data
+ variables = rowtype_ viq piq pa ran piatwr  piatc
+ / n = 476
+ / format = lower diagonal .
+begin data
+mean  96.88  100.51  -1.73  -0.94  -2.52 -1.85
+sd    10.97   11.19   1.19   0.88   0.85  0.97
+corr    1.00
+corr    0.38  1.00
+corr    0.26  0.24  1.00
+corr    0.16  0.17  0.34  1.00
+corr    0.25  0.07  0.46  0.38  1.00
+corr    0.37  0.22  0.39  0.30  0.59   1.00
+end data.
+
+factor matrix = in (cor = *) 
+ / analysis = viq piq pa ran piatwr piatc
+ / extraction = pc
+ / rotation = norotate
+ / print = kmo
+])
+
+AT_CHECK([pspp -O format=csv kmo.sps], [0], [dnl
+Table: KMO and Bartlett's Test
+Kaiser-Meyer-Olkin Measure of Sampling Adequacy,,.730
+Bartlett's Test of Sphericity,Approx. Chi-Square,602.673
+,df,15
+,Sig.,.000
+
+Table: Component Matrix
+,Component,,,,
+,1,2,3,4,5
+viq,.589,-.539,.033,.298,.457
+piq,.456,-.733,.122,-.289,-.377
+pa,.707,.124,-.117,-.161,.256
+ran,.592,.262,-.069,-.638,.096
+piatwr,.754,.418,.442,.219,-.115
+piatc,.774,.122,-.368,.365,-.322
+])
+
+AT_CLEANUP
index cd9ee98cfa306bb48f9a2773d22f7867353a6510..06fb969fa56c7406cd8a5606beab21ccf7bba988 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([FLIP command])
 
 AT_SETUP([FLIP with NEWNAMES])
index e90d2d0ad0e7aed7dca84d0161968d428561cf79..cf7913b40d57e8d4509f2b2b38da2437f8411679 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([FREQUENCIES procedure])
 
 AT_SETUP([FREQUENCIES string variable])
index 2ac5909fead71bcccace5230b33f0d698f8a91db..bbc343bc50443abaa5aaf99fbae4b5263fac25f0 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([GLM procedure])
 
 AT_SETUP([GLM latin square design])
index f9daa69cbb2f89d53415021ca2777e7f6d506354..5fc6f82cc4118bac91b8050944e3917cb871157c 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([GRAPH])
 
 AT_SETUP([GRAPH simple scatterplot])
index b7285e26d1e3f17ba28bc51d8c359cd24c8ccd2d..3d7ae76c38de9de5ac8635edea76e58799fc3b37 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([LOGISTIC REGRESSION])
 
 dnl These examples are adapted from
index 0d990f85b125deaf82326b29e75366b8d6b64dd9..aa59242d5c3a5b50c7e9203ae1020c88a71fbfe6 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([MEANS procedure])
 
 AT_SETUP([MEANS simple example])
index 1fb9e669497d53f8681829fd8cc5664aba327228..24a8cce65956b07353806a964b1af51944fc257d 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([NPAR TESTS])
 
 AT_SETUP([NPAR TESTS BINOMIAL P < 0.5; N1/N2 < 1])
index a53dfcdd4dea0ae7e285f241c8a58ee4392bedef..6cec7597497aa48aae862d25a9149d3b7689e1f8 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([ONEWAY procedure])
 
 AT_SETUP([ONEWAY basic operation])
index fd327f5c9a8bcddb097602082f775bf7c839c526..d547dc765630bb970d8c8836c9eaa1eb48d62207 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([QUICK CLUSTER])
 
 AT_SETUP([QUICK CLUSTER with small data set])
index 2b909b9e54ac5c5f87aac2dd173efa39c9f7ae94..589375b67bee32ff09ad2225d25c9d89c0c80101 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([RANK])
 
 AT_SETUP([RANK simple case with defaults])
index d2e99344efe0503324fee80bc36ad0952e0ba380..7461a45a033739431b5f6c77c7491a0836f6a27a 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([LINEAR REGRESSION])
 
 AT_SETUP([LINEAR REGRESSION - basic])
index 9c5d41378e44427cc800539347e6183a9a184155..be203415813530a46c0f938cad56e36983296e95 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([RELIABILITY])
 
 AT_SETUP([RELIABILITY])
index 458edbc45ab5580dbc9e08fb6279cd453d96c567..34c5b0011fb04b3276144ba339ba26db21e019e7 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([ROC])
 
 AT_SETUP([ROC, free distribution])
index b000cb56ef36d24b5f2f0fd059a1757be04ad1ef..4f6492d964b932868f9517bad8505f36b5ffa057 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([SORT CASES])
 
 m4_divert_push([PREPARE_TESTS])
index 1203a5f39355967fb8522c7c5539677e62256eb5..46492319cf04ccb623fe95a0829ec0727c1f23b1 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([T-TEST])
 
 AT_SETUP([T-TEST /PAIRS])
index 2edda09d0facdc502323545691967d8044b1595f..bb0f208d9ad5b089d53602dbc978715c5a1e2e73 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([CACHE])
 
 AT_SETUP([CACHE])
index f56f1b88e1a79698d8ea63057969f459021713da..c120bbd9ddceafb245e8c4f1c555a6ac1e1dd217 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([CD])
 
 AT_SETUP([CD])
index ab1ca12b73c64af81576efeedf3a77c68010a053..2b5b9032d5091ffd5199e19a530357e289038ef4 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([USE])
 
 AT_SETUP([USE ALL])
index 8ae9f3eb5196cb2744efd00e26a41b9ab4282392..a7a24fbf1d3a515c39fbcfc2866a8221483cde4b 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([INSERT])
 
 dnl Create a file "batch.sps" that is valid syntax only in batch mode.
index 56698c337cadf61f8a6303a2f09d8fc93f44fea9..a6610dab955ac04e68d78be3811dede13c72e48c 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([PERMISSIONS])
 
 AT_SETUP([PERMISSIONS])
index ef31c836c887b397b58448ab7b01c1a7c69a05c6..059fdfbbc34a6f83a68639c97685be70de6cffed 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([SET])
 
 # This crashed older versions of PSPP (bug #30682).
index ad3ebc0c7429f2b35f9f11e82058e437c0c60d5b..e934d59b5d9a93539f55f6af085abbc5379c9e37 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([SHOW])
 
 AT_SETUP([SHOW N])
index cd954f24bc4517f4c41d3ae64e05620ffd843ab8..bd8318ffb9d20495f04a7c8c3e08fdc34b25c4a7 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([TITLE and related commands])
 
 AT_SETUP([FILE LABEL and (ADD) DOCUMENT])
index f992d0ea29e4b3a272f27af77a3546ba227b01d8..85e52caffd40edbf0f220ea587619cfb6efc3e15 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([COMPUTE transformation])
 
 AT_SETUP([COMPUTE crash with SAVE])
index eacf505d6b3d9de067eea52076b5ba3593d9dac9..d6a1f67d5bf82faa3254e7e23197d84b6975845f 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([COUNT])
 
 AT_SETUP([COUNT -- numeric data])
index d2290d75823c188e828ee35cb7f8e70e07919ff9..05f2ef64db57da4b03dd5908b510ecb9f52fae3b 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([RECODE transformation])
 
 m4_define([RECODE_SAMPLE_DATA],
index 912fb4f6a6ca4d4efb80ef185f7680d6524f3e96..4024a922660f437702a560365c0f0effeacfb7dc 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([SAMPLE])
 
 AT_SETUP([SAMPLE])
index 44ac01d4ad9aeb97dadcc37a442647d1464fe7c8..27dd9ab78fb801dd56eaa2884af8c3d807a59393 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([FILTER])
 
 AT_SETUP([FILTER])
index deb694638b2f78d38b2bf7e7dac0b9e796394093..df4b34a8b2e6b730a0f5f320006f9c975f368db2 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([Augmented binary tree (ABT) library])
 
 m4_define([CHECK_ABT],
index 62eb80f5cbcd2de215260366a9ce07251d41b1b8..838364184bcec66730c934c9e4649758986b21d4 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([Balanced tree (BT) library])
 
 m4_define([CHECK_BT],
index e969a48aca8319236488678c902caaec16fdcd87..1c7af5b70993a627525c069bab64d46dcabaad88 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([encoding guesser])
 
 AT_SETUP([ASCII])
index e84166c15f54c65f41af80fb0f719bd4189f36ea..c65a09bc19d14a52174979472b35cc7b88b061b5 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([floating point formats])
 
 AT_SETUP([floating point format conversions])
index 14dd3a682e30090c50ebda2d259ae7658d73c46b..d9041a622a9a3528afba1af0fa245b2ad5f248c4 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([Heap library])
 
 m4_define([CHECK_HEAP],
index feb69bf0c07978a32e471122220de99b89e73951..e36d8d8a79bdab9b0cbb866d0763b9723d4c661f 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([Hash map (hmap) library])
 
 m4_define([CHECK_HMAP],
index 2e2dec46873d662e6b88e36a9ade2784ce6150af..034963ff6dd3b03f97b439969ae346439385e3be 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([Hash map of pointers (hmapx) library])
 
 m4_define([CHECK_HMAPX],
index 9f73f597b0b9855458ba1ea4ba44f0e53bbb6a6e..78b86fd7540213901328682979b225d4e24ac5b6 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([i18n recoding])
 
 # CHECK_I18N_RECODE([TITLE], [FROM-CODING], [TO-CODING],
index 29cff4d792b75a2c22f8551af6ef0e9bcf829c39..30870d1feb276ad711dfd8da857682346fc4b227 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([line_reader])
 
 AT_SETUP([read ASCII])
index d382012ff079bd1337c69477430164705b61af5f..36c9f51b7ebd4475064245a98e683fcfb6ec82bc 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([doubly linked list (ll) library])
 
 m4_define([CHECK_LL],
index 973f9258f007d324cca21482334c736fc3594222..7b7507296fcb63d4fe485732e1e57610b9197a87 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([doubly linked list of pointers (llx) library])
 
 m4_define([CHECK_LLX],
index d414f50af132014841f12d1f067988681d041772..d31d08cf3cf11d878fd672c9e1893f5070ec1502 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([range map library])
 
 m4_define([CHECK_RANGE_MAP],
index 35eed8c7d297fbfc69fa0b79bb436a4f5bc8fca5..cb29ae6d5a3bbeec91ef11a699f1921966f1c6de 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([range set library])
 
 m4_define([CHECK_RANGE_SET],
index 77fccf2175d3b9211e4015b73138a198a128efc9..981b0ba8bf041953a5890a1ca57007de21fd7600 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([range tower library])
 
 m4_define([CHECK_RANGE_TOWER],
index ac2abef9a92a3661f431a789544d450a0bf5eab0..83ff809fb7b12d5f3b4733699b05efed47330454 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([sparse array library])
 
 m4_define([CHECK_SPARSE_ARRAY],
index e759180889aa92c6176a5b02b58c7feb314cfa35..76f0c3362d46a6fe5995132754cd1a14ae509c1a 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([sparse external arrays])
 
 m4_divert_push([PREPARE_TESTS])
index 83ccc958511119d207930888595d0eda0efd0208..c132a94d58d0176c9f5480f05f346d544958e75c 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([string library])
 
 AT_SETUP([26-adic string formatting])
index 0c1dbc9ab12c673746e8b7423ac119d4abf2b399..5732ec75352f910a591b2c3e5cce83e2e8eefedb 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([string map library])
 
 m4_define([CHECK_STRING_MAP],
index d782e9b0f579263973ec600a4617f9a3e163d488..ee22ccebc1ba1c040b92bb144c96692f09099af6 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([string set library])
 
 m4_define([CHECK_STRING_SET],
index c14f0e6f65f83cd0c81b31c657d5decaa6fc46a5..61a916dd2542cdc4d0371fd23880811bb231c10a 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([case-insensitive string map library])
 
 m4_define([CHECK_STRINGI_MAP],
index b38e8479a5c328123c1d1155ad882148f51ca3fb..16594c0be5a9e48f77c26e8edc644490def982b7 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([case-insensitive string set library])
 
 m4_define([CHECK_STRINGI_SET],
index c4d6f8208c325e22397e6b701231fb7b4591c739..ae89b5b2c009da970ea472256c8decfcc9d5a4f6 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([tower library])
 
 m4_define([CHECK_TOWER],
index 5b5b4e006e64e81760680a39f868f854b1c8c480..9b1bafcd3928101ad3347cac821877170d4d2fe4 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([u8_istream])
 
 AT_SETUP([read ASCII])
index 55bf563f1b66441d31155c6426e713164ae6da9a..a2f9d6f17993a875340484d0bfd67a482a25b989 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([zip])
 
 AT_SETUP([Basic zip - unzip test])
@@ -21,13 +37,13 @@ while test $s -le 8192 ; do
         names="$names $bn";
 done
 
-(cd $dir1 && $abs_top_builddir/tests/libpspp/zip-test w foo.zip $names)
+(cd $dir1 && zip-test w foo.zip $names)
 
 
 mkdir -p $dir2
 cp $dir1/foo.zip $dir2
 cd $dir2 
-$abs_top_builddir/tests/libpspp/zip-test r foo.zip $names
+zip-test r foo.zip $names
 
 # Compare the files to their originals
 for f in $names; do
index 5a7d858f3c2a1fcdda53cd81fec642dc3effb614..143d2147753777bd5c3bf82d68c1adc76114cdc7 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([Chart Geometry])
 
 AT_SETUP([Chart Scale])
index 774d17bdd988cd8825244ff6942e27c60466e04f..5552f434bf7669f3cd63ef7e71afdfdbd2039507 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([calculating moments])
 
 m4_define([MOMENTS_TESTCASES],
index afc1185640ef58afa8712f80c98c0eefc281d324..677bee812067dbcd72e7a7d6eb8d0dfbca5778ba 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([random distributions])
 
 m4_divert_push([PREPARE_TESTS])
index d606e6ed884eb0e6efbd509738b11e787073cffa..dfdd4b649721341422d376a542cc2b1b8b04f890 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([ASCII driver -- rendering corner cases])
 
 AT_SETUP([ASCII driver overwriting single-width text])
index 59ad8ca319a9584780ea0e36572d0538ad274865..28d5ac672e53c481742c35001fc2fa1489f663d6 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([CHARTS Rudimentary run tests])
 
 dnl Check that the charts work
index 9a048caadfb04309c78fd66402e8dd544ab4f55f..973ba08433ec22e0d6987f6f9f634fadac7f555c 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([HTML driver])
 
 AT_SETUP([HTML bug])
index f6351a4e9bca09436da57785856361b67f5138c7..bb97e011db8c00979531a6c56e9e0c3af5383621 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([output drivers])
 
 m4_define([OUTPUT_UNWRITABLE_DIR],
index 2ae4cdc1db81396921f8dcbb956d5faa74ba1337..5b811c45552dcd2765db102d372de1ba885d6878 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([output -- paper sizes])
 
 AT_SETUP([letter default paper size])
index 9aaef8cf8e702b3f8ca6d7ef9f9b2c0d1adc223c..b2c9731ce06ad32d8ae636cb55770e3e4b97b16a 100644 (file)
@@ -1,4 +1,19 @@
-# +-+---+-+-+-+
+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 # +-+---+-+-+-+
 # |a|bcd|e|f|i|
 # +-+-+-+-+g+-+
 # |j|m|nop|h|q|
index 1a7727fc2e515f331fd0bcc15f05fc100e55aafe..623d366c0cc1371e2a0ceb1d1ddbce5f26c44199 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([output -- tables])
 
 AT_SETUP([OUTPUT precision])
index 5424d10324b43cced565710b415258a5a789df28..c13a8b857a80bd4a31ea606b63a638b23984827e 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([Perl module tests])
 
 dnl This command can be used to run with the PSPP Perl module after it has been
index ef11e91931898359dfffadfaf847b7c1cd1642ca..ea502079b068fcd5d93d8c0747aa436da288460a 100644 (file)
@@ -1,3 +1,20 @@
+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 
+
 AT_INIT
 
 # Define SKIP_IF for compatibility with Autotest before 2.64
index 31dd8eb6b970bae82c64db151f94785e8f59291e..6177f0c3779fba191459ce8c759b4cff0ea38232 100644 (file)
@@ -1,3 +1,21 @@
+/* 
+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 "ui/syntax-gen.h"
index 6b0f768fe239af6a0d921322201bdac040e2ebe6..71dcb8857c9601d19a9ea6a4bba3ae6ee62e754a 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([SYNTAX GENERATOR])
 
 AT_SETUP([Syntax Generation - printf like])
index 128ad4182de1f199ce6beca5fea95d6cc8f2e7a8..a67447e48ebdc6f7796bde016f9859e486d72c62 100644 (file)
@@ -1,3 +1,19 @@
+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
 AT_BANNER([PSPP terminal UI])
 
 AT_SETUP([nonexistent syntax file crash])
index d6a720bb342a540c58bf406683f0dc50946b9acf..cbcf0ae2bb3350b3d2cb7dc60d1eabec40af6b54 100644 (file)
@@ -1,3 +1,19 @@
+# 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/>.
+# 
 bin_PROGRAMS += utilities/pspp-dump-sav
 dist_man_MANS += utilities/pspp-dump-sav.1
 utilities_pspp_dump_sav_SOURCES = \