Added support for T-TEST where the group criteria is specified as a threshold
authorJohn Darrington <john@darrington.wattle.id.au>
Fri, 12 Mar 2004 08:42:03 +0000 (08:42 +0000)
committerJohn Darrington <john@darrington.wattle.id.au>
Fri, 12 Mar 2004 08:42:03 +0000 (08:42 +0000)
rather than two separate values.

13 files changed:
doc/ChangeLog
doc/pspp.texi
lib/dcdflib/ChangeLog
lib/dcdflib/dcdflib.c
po/en_GB.po
po/pspp.pot
src/ChangeLog
src/levene.c
src/t-test.h
src/t-test.q
tests/Makefile.am
tests/command/t-test-1-indep-val.sh [new file with mode: 0755]
tests/command/t-test-groups.sh

index dbf6547fb7d6b3c7b821966b11c759e31259768d..92684ec43da1600ec25f53ab6faa22f8fbc4fa2c 100644 (file)
@@ -1,3 +1,10 @@
+Fri Mar 12 16:33:12 WST 2004 John Darrington <john@darrington.wattle.id.au>
+
+       * Added indeces for the commands in the STATISTICS section
+
+       * Added notes on the T-TEST Independent samples command about
+       single values for the independent variable.
+       
 Tue Mar  9 22:34:17 2004  Ben Pfaff  <blp@gnu.org>
 
        * Updated.
 Tue Mar  9 22:34:17 2004  Ben Pfaff  <blp@gnu.org>
 
        * Updated.
index 564e36ec7d6e7d9d34235d96f57a4fe189f9d13e..509efa6da2fa461f255efa9d24d997fab0c5bbbb 100644 (file)
@@ -7484,6 +7484,7 @@ far.
 @node DESCRIPTIVES, FREQUENCIES, Statistics, Statistics
 @section DESCRIPTIVES
 
 @node DESCRIPTIVES, FREQUENCIES, Statistics, Statistics
 @section DESCRIPTIVES
 
+@vindex DESCRIPTIVES
 @display
 DESCRIPTIVES
         /VARIABLES=var_list
 @display
 DESCRIPTIVES
         /VARIABLES=var_list
@@ -7573,6 +7574,7 @@ respectively.
 @node FREQUENCIES, CROSSTABS, DESCRIPTIVES, Statistics
 @section FREQUENCIES
 
 @node FREQUENCIES, CROSSTABS, DESCRIPTIVES, Statistics
 @section FREQUENCIES
 
+@vindex FREQUENCIES
 @display
 FREQUENCIES
         /VARIABLES=var_list
 @display
 FREQUENCIES
         /VARIABLES=var_list
@@ -7675,6 +7677,7 @@ particular percentiles can be requested with the PERCENTILES subcommand.
 @node CROSSTABS, T-TEST, FREQUENCIES, Statistics
 @section CROSSTABS
 
 @node CROSSTABS, T-TEST, FREQUENCIES, Statistics
 @section CROSSTABS
 
+@vindex CROSSTABS
 @display
 CROSSTABS
         /TABLES=var_list BY var_list [BY var_list]@dots{}
 @display
 CROSSTABS
         /TABLES=var_list BY var_list [BY var_list]@dots{}
@@ -7859,9 +7862,9 @@ Fixes for any of these deficiencies would be welcomed.
 
 @node T-TEST, , CROSSTABS, Statistics
 @comment  node-name,  next,  previous,  up
 
 @node T-TEST, , CROSSTABS, Statistics
 @comment  node-name,  next,  previous,  up
-
 @section T-TEST
 
 @section T-TEST
 
+@vindex T-TEST
 @display
 T-TEST
         /MISSING=@{ANALYSIS,LISTWISE@} @{EXCLUDE,INCLUDE@}
 @display
 T-TEST
         /MISSING=@{ANALYSIS,LISTWISE@} @{EXCLUDE,INCLUDE@}
@@ -7941,12 +7944,21 @@ The @cmd{GROUPS} subcommand invokes Independent Samples mode or
 `Groups' mode. 
 This mode is used to test whether two groups of values have the
 same population mean.
 `Groups' mode. 
 This mode is used to test whether two groups of values have the
 same population mean.
+In this mode, you must also use the @cmd{/VARIABLES} subcommand to
+tell PSPP the dependent variables you wish to test.
+
 The variable given in the @cmd{GROUPS} subcommand is the independent
 variable which determines to which group the samples belong.
 The values in parentheses are the specific values of the independent
 variable for each group.
 The variable given in the @cmd{GROUPS} subcommand is the independent
 variable which determines to which group the samples belong.
 The values in parentheses are the specific values of the independent
 variable for each group.
-In this mode, you must also use the @cmd{/VARIABLES} subcommand to
-tell PSPP the dependent variables you wish to test.
+If the parentheses are omitted, and no values are given, the default values 
+of 1.0 and 2.0 are assumed.
+If only one value is given, then cases where the independent variable is
+less than  or equal to this value belong to the first group, and cases
+greater than this value belong to the second group.
+If only one value is given, then the independent variable must be
+numeric.
+
 
 @node Paired Samples Mode, , Independent Samples Mode, T-TEST
 @comment  node-name,  next,  previous,  up
 
 @node Paired Samples Mode, , Independent Samples Mode, T-TEST
 @comment  node-name,  next,  previous,  up
index 6cef35fccfedb03a607cd5cd65138aec774d0f3c..529c00ee95cab6249aa718cfb0e8dabe9ae642c6 100644 (file)
@@ -1,3 +1,10 @@
+Fri Mar 12 08:43:39 WST 2004 John Darrington <john@darrington.wattle.id.au>
+
+        * dcdflib.c: Removed the ftnstop function which called exit(1), on
+       certain error conditions.  Instead, E0000 now sets status to -999
+       and returns.
+
+       
 Sun Aug  9 11:16:26 1998  Ben Pfaff  <blp@gnu.org>
 
        * dcdflib.COPYING: Renamed COPYING.
 Sun Aug  9 11:16:26 1998  Ben Pfaff  <blp@gnu.org>
 
        * dcdflib.COPYING: Renamed COPYING.
index 91f606bc0b4828a324f358d56e2d521d271378ca..6be517e8881c5d52d6216e3903a7ba54bf075f2b 100644 (file)
@@ -2,6 +2,7 @@
 #include <stdlib.h>
 #include <math.h>
 #include "cdflib.h"
 #include <stdlib.h>
 #include <math.h>
 #include "cdflib.h"
+#include <assert.h>
 
 static void E0000(int,int*,double*,double*,unsigned long*,
                   unsigned long*,double*,double*,double*,
 
 static void E0000(int,int*,double*,double*,unsigned long*,
                   unsigned long*,double*,double*,double*,
@@ -6352,7 +6353,12 @@ static unsigned long qbdd,qcond,qdum1,qdum2,qincr,qlim,qok,qup;
 DINVR:
     if(*status > 0) goto S310;
     qcond = !qxmon(small,*x,big);
 DINVR:
     if(*status > 0) goto S310;
     qcond = !qxmon(small,*x,big);
-    if(qcond) ftnstop((char *) " SMALL, X, BIG not monotone in INVR");
+    if(qcond) 
+       {
+       *status = -999;
+       return;
+       }
+
     xsave = *x;
 /*
      See that SMALL and BIG bound the zero and set QINCR
     xsave = *x;
 /*
      See that SMALL and BIG bound the zero and set QINCR
@@ -6676,8 +6682,10 @@ void dstinv(double *zsmall,double *zbig,double *zabsst,
 **********************************************************************
 */
 {
 **********************************************************************
 */
 {
-    E0000(1,NULL,NULL,NULL,NULL,NULL,zabsst,zabsto,zbig,zrelst,zrelto,zsmall,
-    zstpmu);
+  int status=0;
+  E0000(1,&status,NULL,NULL,NULL,NULL,zabsst,zabsto,zbig,zrelst,zrelto,zsmall,
+       zstpmu);
+  assert(status == 0 );
 }
 double dt1(double *p,double *q,double *df)
 /*
 }
 double dt1(double *p,double *q,double *df)
 /*
@@ -9081,13 +9089,3 @@ long fifmod(long a,long b)
 {
   return a % b;
 }
 {
   return a % b;
 }
-/************************************************************************
-FTNSTOP:
-Prints msg to standard error and then exits
-************************************************************************/
-void ftnstop(char* msg)
-/* msg - error message */
-{
-  if (msg != NULL) fprintf(stderr,"%s\n",msg);
-  exit(EXIT_FAILURE); /* EXIT_FAILURE from stdlib.h, or use an int */
-}
index e87b4143ace1a4e1652582ec245bcacece28fcbd..43d5fa175a04022c070d54bb6782cadd018458f2 100644 (file)
@@ -6,8 +6,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PSPP 0.3.1\n"
 msgid ""
 msgstr ""
 "Project-Id-Version: PSPP 0.3.1\n"
-"Report-Msgid-Bugs-To: pspp-dev@gnu.org\n"
-"POT-Creation-Date: 2004-02-21 10:31+0800\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2004-03-12 16:21+0800\n"
 "PO-Revision-Date: 2004-01-23 13:04+0800\n"
 "Last-Translator: John Darrington <john@darrington.wattle.id.au>\n"
 "Language-Team: John Darrington <john@darrington.wattle.id.au>\n"
 "PO-Revision-Date: 2004-01-23 13:04+0800\n"
 "Last-Translator: John Darrington <john@darrington.wattle.id.au>\n"
 "Language-Team: John Darrington <john@darrington.wattle.id.au>\n"
@@ -16,56 +16,56 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n!=1);\n"
 
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n!=1);\n"
 
-#: src/aggregate.c:188 src/aggregate.c:229 src/data-list.c:1341
-#: src/data-list.c:1376 src/data-list.c:1389 src/data-list.c:1402
-#: src/data-list.c:1435
+#: src/aggregate.c:190 src/aggregate.c:231 src/data-list.c:1363
+#: src/data-list.c:1398 src/data-list.c:1411 src/data-list.c:1424
+#: src/data-list.c:1457
 #, c-format
 msgid "%s subcommand given multiple times."
 msgstr ""
 
 #, c-format
 msgid "%s subcommand given multiple times."
 msgstr ""
 
-#: src/aggregate.c:214
+#: src/aggregate.c:216
 msgid "while expecting COLUMNWISE"
 msgstr ""
 
 msgid "while expecting COLUMNWISE"
 msgstr ""
 
-#: src/aggregate.c:258
+#: src/aggregate.c:261
 msgid "BREAK subcommand not specified."
 msgstr ""
 
 msgid "BREAK subcommand not specified."
 msgstr ""
 
-#: src/aggregate.c:492
+#: src/aggregate.c:490
 msgid "expecting aggregation function"
 msgstr ""
 
 msgid "expecting aggregation function"
 msgstr ""
 
-#: src/aggregate.c:508
+#: src/aggregate.c:506
 #, c-format
 msgid "Unknown aggregation function %s."
 msgstr ""
 
 #, c-format
 msgid "Unknown aggregation function %s."
 msgstr ""
 
-#: src/aggregate.c:523
+#: src/aggregate.c:521
 msgid "expecting `('"
 msgstr ""
 
 msgid "expecting `('"
 msgstr ""
 
-#: src/aggregate.c:558
+#: src/aggregate.c:556
 #, c-format
 msgid "Missing argument %d to %s."
 msgstr ""
 
 #, c-format
 msgid "Missing argument %d to %s."
 msgstr ""
 
-#: src/aggregate.c:566
+#: src/aggregate.c:564
 #, c-format
 msgid "Arguments to %s must be of same type as source variables."
 msgstr ""
 
 #, c-format
 msgid "Arguments to %s must be of same type as source variables."
 msgstr ""
 
-#: src/aggregate.c:576 src/expr-prs.c:665
+#: src/aggregate.c:574 src/expr-prs.c:665
 msgid "expecting `)'"
 msgstr ""
 
 msgid "expecting `)'"
 msgstr ""
 
-#: src/aggregate.c:588 src/autorecode.c:110
+#: src/aggregate.c:586 src/autorecode.c:110
 #, c-format
 msgid ""
 "Number of source variables (%d) does not match number of target variables (%"
 "d)."
 msgstr ""
 
 #, c-format
 msgid ""
 "Number of source variables (%d) does not match number of target variables (%"
 "d)."
 msgstr ""
 
-#: src/aggregate.c:655
+#: src/aggregate.c:653
 #, c-format
 msgid ""
 "Variable name %s is not unique within the aggregate file dictionary, which "
 #, c-format
 msgid ""
 "Variable name %s is not unique within the aggregate file dictionary, which "
@@ -79,15 +79,15 @@ msgstr ""
 
 #: src/apply-dict.c:71 src/apply-dict.c:72 src/expr-prs.c:1128
 #: src/expr-prs.c:1473 src/expr-prs.c:1489 src/formats.c:103
 
 #: src/apply-dict.c:71 src/apply-dict.c:72 src/expr-prs.c:1128
 #: src/expr-prs.c:1473 src/expr-prs.c:1489 src/formats.c:103
-#: src/pfm-read.c:636 src/print.c:696 src/sfm-read.c:916 src/sfm-read.c:1042
-#: src/sfm-read.c:1043
+#: src/pfm-read.c:634 src/print.c:698 src/sfm-read.c:914 src/sfm-read.c:1040
+#: src/sfm-read.c:1041
 msgid "string"
 msgstr ""
 
 #: src/apply-dict.c:71 src/apply-dict.c:72 src/expr-prs.c:1128
 #: src/expr-prs.c:1470 src/expr-prs.c:1487 src/formats.c:103
 msgid "string"
 msgstr ""
 
 #: src/apply-dict.c:71 src/apply-dict.c:72 src/expr-prs.c:1128
 #: src/expr-prs.c:1470 src/expr-prs.c:1487 src/formats.c:103
-#: src/pfm-read.c:636 src/print.c:696 src/sfm-read.c:916 src/sfm-read.c:1042
-#: src/sfm-read.c:1043
+#: src/pfm-read.c:634 src/print.c:698 src/sfm-read.c:914 src/sfm-read.c:1040
+#: src/sfm-read.c:1041
 msgid "numeric"
 msgstr ""
 
 msgid "numeric"
 msgstr ""
 
@@ -216,18 +216,16 @@ msgstr ""
 msgid "Writing `%s': %s"
 msgstr ""
 
 msgid "Writing `%s': %s"
 msgstr ""
 
-#: src/ascii.c:1541 src/postscript.c:2095
+#: src/ascii.c:1543 src/postscript.c:2093
 #, c-format
 msgid "%s - Page %d"
 msgstr ""
 
 #, c-format
 msgid "%s - Page %d"
 msgstr ""
 
-#: src/autorecode.c:121 src/command.c:696 src/compute.c:283 correlations.c:308
-#: crosstabs.c:437 src/data-list.c:370 src/data-list.c:850
-#: src/data-list.c:1666 descript.c:458 src/do-if.c:264 file-handle.c:180
-#: file-handle.q:88 src/file-handle.q:88 frequencies.c:890 src/get.c:359
-#: src/lexer.c:387 list.c:208 src/loop.c:248 src/matrix-data.c:503 means.c:354
-#: src/print.c:336 src/print.c:1057 src/recode.c:408 src/sel-if.c:56
-#: src/sel-if.c:136 set.c:1656 t-test.c:275 src/vector.c:194
+#: src/autorecode.c:121 src/command.c:697 src/compute.c:293
+#: src/data-list.c:380 src/data-list.c:878 src/data-list.c:1690
+#: src/do-if.c:263 src/get.c:381 src/lexer.c:387 src/loop.c:241
+#: src/matrix-data.c:510 src/print.c:338 src/print.c:1060 src/recode.c:409
+#: src/sel-if.c:56 src/sel-if.c:138 src/vector.c:194 src/file-handle.q:88
 msgid "expecting end of command"
 msgstr ""
 
 msgid "expecting end of command"
 msgstr ""
 
@@ -242,7 +240,7 @@ msgid "Duplicate variable name %s among target variables."
 msgstr ""
 
 #: src/cmdline.c:112 src/cmdline.c:131 src/cmdline.c:143 src/command.c:196
 msgstr ""
 
 #: src/cmdline.c:112 src/cmdline.c:131 src/cmdline.c:143 src/command.c:196
-#: set.q:314 set.q:316 set.q:846 src/set.q:314 src/set.q:316 src/set.q:846
+#: src/set.q:315 src/set.q:317 src/set.q:857
 #, c-format
 msgid "%s is not yet implemented."
 msgstr ""
 #, c-format
 msgid "%s is not yet implemented."
 msgstr ""
@@ -326,7 +324,7 @@ msgstr ""
 msgid "This line does not begin with a valid command name."
 msgstr ""
 
 msgid "This line does not begin with a valid command name."
 msgstr ""
 
-#: src/command.c:214
+#: src/command.c:215
 #, c-format
 msgid ""
 "%s is not allowed (1) before a command to specify the input program, such as "
 #, c-format
 msgid ""
 "%s is not allowed (1) before a command to specify the input program, such as "
@@ -334,121 +332,101 @@ msgid ""
 "PROGRAM and END INPUT PROGRAM."
 msgstr ""
 
 "PROGRAM and END INPUT PROGRAM."
 msgstr ""
 
-#: src/command.c:218
+#: src/command.c:219
 #, c-format
 msgid "%s is not allowed within an input program."
 msgstr ""
 
 #, c-format
 msgid "%s is not allowed within an input program."
 msgstr ""
 
-#: src/command.c:219 src/command.c:220
+#: src/command.c:220 src/command.c:221
 #, c-format
 msgid "%s is only allowed within an input program."
 msgstr ""
 
 #, c-format
 msgid "%s is only allowed within an input program."
 msgstr ""
 
-#: src/command.c:229
+#: src/command.c:230
 #, c-format
 msgid "%s command beginning\n"
 msgstr ""
 
 #, c-format
 msgid "%s command beginning\n"
 msgstr ""
 
-#: src/command.c:265
+#: src/command.c:266
 #, c-format
 msgid ""
 "%s command completed\n"
 "\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "%s command completed\n"
 "\n"
 msgstr ""
 
-#: src/command.c:280
+#: src/command.c:281
 msgid "The identifier(s) specified do not form a valid command name:"
 msgstr ""
 
 msgid "The identifier(s) specified do not form a valid command name:"
 msgstr ""
 
-#: src/command.c:283
+#: src/command.c:284
 msgid "The identifier(s) specified do not form a complete command name:"
 msgstr ""
 
 msgid "The identifier(s) specified do not form a complete command name:"
 msgstr ""
 
-#: src/command.c:407
+#: src/command.c:408
 msgid ""
 "This command is not accepted in a syntax file.  Instead, use FINISH to "
 "terminate a syntax file."
 msgstr ""
 
 msgid ""
 "This command is not accepted in a syntax file.  Instead, use FINISH to "
 "terminate a syntax file."
 msgstr ""
 
-#: src/command.c:425
+#: src/command.c:426
 msgid ""
 "This command is not executed in interactive mode.  Instead, PSPP drops down "
 "to the command prompt.  Use EXIT if you really want to quit."
 msgstr ""
 
 msgid ""
 "This command is not executed in interactive mode.  Instead, PSPP drops down "
 "to the command prompt.  Use EXIT if you really want to quit."
 msgstr ""
 
-#: src/command.c:516
+#: src/command.c:517
 msgid "The sentinel may not be the empty string."
 msgstr ""
 
 msgid "The sentinel may not be the empty string."
 msgstr ""
 
-#: src/command.c:573
+#: src/command.c:574
 msgid "This command not allowed when the SAFER option is set."
 msgstr ""
 
 msgid "This command not allowed when the SAFER option is set."
 msgstr ""
 
-#: src/command.c:596
+#: src/command.c:597
 #, c-format
 msgid "Error removing `%s': %s."
 msgstr ""
 
 #, c-format
 msgid "Error removing `%s': %s."
 msgstr ""
 
-#: src/command.c:646
+#: src/command.c:647
 #, c-format
 msgid "Couldn't fork: %s."
 msgstr ""
 
 #, c-format
 msgid "Couldn't fork: %s."
 msgstr ""
 
-#: src/command.c:687
+#: src/command.c:688
 #, c-format
 msgid "Error executing command: %s."
 msgstr ""
 
 #, c-format
 msgid "Error executing command: %s."
 msgstr ""
 
-#: src/command.c:733
+#: src/command.c:734
 msgid "No operating system support for this command."
 msgstr ""
 
 msgid "No operating system support for this command."
 msgstr ""
 
-#: src/command.c:762
+#: src/command.c:763
 msgid "This command is not valid in a syntax file."
 msgstr ""
 
 msgid "This command is not valid in a syntax file."
 msgstr ""
 
-#: src/compute.c:140 src/compute.c:199
+#: src/compute.c:145 src/compute.c:209
 #, c-format
 msgid ""
 "When executing COMPUTE: SYSMIS is not a valid value as an index into vector %"
 "s."
 msgstr ""
 
 #, c-format
 msgid ""
 "When executing COMPUTE: SYSMIS is not a valid value as an index into vector %"
 "s."
 msgstr ""
 
-#: src/compute.c:143 src/compute.c:203
+#: src/compute.c:148 src/compute.c:213
 #, c-format
 msgid ""
 "When executing COMPUTE: %g is not a valid value as an index into vector %s."
 msgstr ""
 
 #, c-format
 msgid ""
 "When executing COMPUTE: %g is not a valid value as an index into vector %s."
 msgstr ""
 
-#: src/compute.c:342
+#: src/compute.c:355
 #, c-format
 msgid "There is no vector named %s."
 msgstr ""
 
 #, c-format
 msgid "There is no vector named %s."
 msgstr ""
 
-#: src/compute.c:450
+#: src/compute.c:461
 msgid "Extra characters after expression."
 msgstr ""
 
 msgid "Extra characters after expression."
 msgstr ""
 
-#: correlations.c:184 crosstabs.c:254 descript.c:225 means.c:269 t-test.c:191
-msgid "MISSING subcommand may be given only once."
-msgstr ""
-
-#: correlations.c:211
-msgid "PRINT subcommand may be given only once."
-msgstr ""
-
-#: correlations.c:238 crosstabs.c:304 descript.c:252 means.c:232
-msgid "FORMAT subcommand may be given only once."
-msgstr ""
-
-#: correlations.c:261
-msgid "MATRIX subcommand may be given only once."
-msgstr ""
-
-#: correlations.c:283 crosstabs.c:388 descript.c:332 means.c:327
-msgid "STATISTICS subcommand may be given only once."
-msgstr ""
-
 #: src/count.c:171
 msgid "Destination cannot be a string variable."
 msgstr ""
 #: src/count.c:171
 msgid "Destination cannot be a string variable."
 msgstr ""
@@ -460,303 +438,6 @@ msgid ""
 "as big as the number preceding THRU."
 msgstr ""
 
 "as big as the number preceding THRU."
 msgstr ""
 
-#: crosstabs.c:232 means.c:188
-msgid "VARIABLES subcommand may be given only once."
-msgstr ""
-
-#: crosstabs.c:279
-msgid "WRITE subcommand may be given only once."
-msgstr ""
-
-#: crosstabs.c:349 means.c:294
-msgid "CELLS subcommand may be given only once."
-msgstr ""
-
-#: crosstabs.q:257 src/crosstabs.q:257
-msgid ""
-"Missing mode REPORT not allowed in general mode.  Assuming MISSING=TABLE."
-msgstr ""
-
-#: crosstabs.q:267 src/crosstabs.q:267
-msgid "Write mode ALL not allowed in general mode.  Assuming WRITE=CELLS."
-msgstr ""
-
-#: crosstabs.q:327 src/crosstabs.q:327
-msgid "expecting BY"
-msgstr ""
-
-#: crosstabs.q:394 src/crosstabs.q:394
-msgid "VARIABLES must be specified before TABLES."
-msgstr ""
-
-#: crosstabs.q:431 src/crosstabs.q:431
-#, c-format
-msgid "Maximum value (%ld) less than minimum value (%ld)."
-msgstr ""
-
-#: crosstabs.q:865 src/crosstabs.q:865
-msgid "Summary."
-msgstr ""
-
-#: crosstabs.q:867 src/crosstabs.q:867
-msgid "Cases"
-msgstr ""
-
-#: crosstabs.q:868 src/crosstabs.q:868 frequencies.q:999 src/frequencies.q:999
-msgid "Valid"
-msgstr ""
-
-#: crosstabs.q:869 src/crosstabs.q:869 frequencies.q:1066
-#: src/frequencies.q:1066
-msgid "Missing"
-msgstr ""
-
-#: crosstabs.q:870 crosstabs.q:1073 crosstabs.q:1806 src/crosstabs.q:870
-#: src/crosstabs.q:1073 src/crosstabs.q:1806 frequencies.q:1075
-#: src/frequencies.q:1075
-msgid "Total"
-msgstr ""
-
-#: crosstabs.q:880 src/crosstabs.q:880 t-test.q:625 t-test.q:648 t-test.q:727
-#: t-test.q:1309 src/t-test.q:625 src/t-test.q:648 src/t-test.q:727
-#: src/t-test.q:1309
-msgid "N"
-msgstr ""
-
-#: crosstabs.q:881 src/crosstabs.q:881 frequencies.q:1003 frequencies.q:1004
-#: frequencies.q:1005 src/frequencies.q:1003 src/frequencies.q:1004
-#: src/frequencies.q:1005
-msgid "Percent"
-msgstr ""
-
-#: crosstabs.q:1123 src/crosstabs.q:1123
-msgid "count"
-msgstr ""
-
-#: crosstabs.q:1124 src/crosstabs.q:1124
-msgid "row %"
-msgstr ""
-
-#: crosstabs.q:1125 src/crosstabs.q:1125
-msgid "column %"
-msgstr ""
-
-#: crosstabs.q:1126 src/crosstabs.q:1126
-msgid "total %"
-msgstr ""
-
-#: crosstabs.q:1127 src/crosstabs.q:1127
-msgid "expected"
-msgstr ""
-
-#: crosstabs.q:1128 src/crosstabs.q:1128
-msgid "residual"
-msgstr ""
-
-#: crosstabs.q:1129 src/crosstabs.q:1129
-msgid "std. resid."
-msgstr ""
-
-#: crosstabs.q:1130 src/crosstabs.q:1130
-msgid "adj. resid."
-msgstr ""
-
-#: crosstabs.q:1163 crosstabs.q:1190 crosstabs.q:1210 crosstabs.q:1231
-#: src/crosstabs.q:1163 src/crosstabs.q:1190 src/crosstabs.q:1210
-#: src/crosstabs.q:1231
-msgid "Statistic"
-msgstr ""
-
-#: crosstabs.q:1164 crosstabs.q:1191 crosstabs.q:1211 crosstabs.q:1233
-#: src/crosstabs.q:1164 src/crosstabs.q:1191 src/crosstabs.q:1211
-#: src/crosstabs.q:1233 frequencies.q:1001 frequencies.q:1118
-#: src/frequencies.q:1001 src/frequencies.q:1118 src/sysfile-info.c:536
-#: src/vfm.c:1087
-msgid "Value"
-msgstr ""
-
-#: crosstabs.q:1165 src/crosstabs.q:1165 t-test.q:880 t-test.q:1081
-#: t-test.q:1193 src/t-test.q:880 src/t-test.q:1081 src/t-test.q:1193
-msgid "df"
-msgstr ""
-
-#: crosstabs.q:1167 src/crosstabs.q:1167
-msgid "Asymp. Sig. (2-sided)"
-msgstr ""
-
-#: crosstabs.q:1169 src/crosstabs.q:1169
-msgid "Exact. Sig. (2-sided)"
-msgstr ""
-
-#: crosstabs.q:1171 src/crosstabs.q:1171
-msgid "Exact. Sig. (1-sided)"
-msgstr ""
-
-#: crosstabs.q:1189 crosstabs.q:1230 src/crosstabs.q:1189 src/crosstabs.q:1230
-msgid "Category"
-msgstr ""
-
-#: crosstabs.q:1192 crosstabs.q:1234 src/crosstabs.q:1192 src/crosstabs.q:1234
-msgid "Asymp. Std. Error"
-msgstr ""
-
-#: crosstabs.q:1193 crosstabs.q:1235 src/crosstabs.q:1193 src/crosstabs.q:1235
-msgid "Approx. T"
-msgstr ""
-
-#: crosstabs.q:1194 crosstabs.q:1236 src/crosstabs.q:1194 src/crosstabs.q:1236
-msgid "Approx. Sig."
-msgstr ""
-
-#: crosstabs.q:1209 src/crosstabs.q:1209
-#, c-format
-msgid " 95%% Confidence Interval"
-msgstr ""
-
-#: crosstabs.q:1212 src/crosstabs.q:1212 t-test.q:884 t-test.q:1078
-#: t-test.q:1196 src/t-test.q:884 src/t-test.q:1078 src/t-test.q:1196
-msgid "Lower"
-msgstr ""
-
-#: crosstabs.q:1213 src/crosstabs.q:1213 t-test.q:885 t-test.q:1079
-#: t-test.q:1197 src/t-test.q:885 src/t-test.q:1079 src/t-test.q:1197
-msgid "Upper"
-msgstr ""
-
-#: crosstabs.q:1232 src/crosstabs.q:1232
-msgid "Type"
-msgstr ""
-
-#: crosstabs.q:1983 src/crosstabs.q:1983
-msgid "Pearson Chi-Square"
-msgstr ""
-
-#: crosstabs.q:1984 src/crosstabs.q:1984
-msgid "Likelihood Ratio"
-msgstr ""
-
-#: crosstabs.q:1985 src/crosstabs.q:1985
-msgid "Fisher's Exact Test"
-msgstr ""
-
-#: crosstabs.q:1986 src/crosstabs.q:1986
-msgid "Continuity Correction"
-msgstr ""
-
-#: crosstabs.q:1987 src/crosstabs.q:1987
-msgid "Linear-by-Linear Association"
-msgstr ""
-
-#: crosstabs.q:2024 crosstabs.q:2094 crosstabs.q:2153 src/crosstabs.q:2024
-#: src/crosstabs.q:2094 src/crosstabs.q:2153
-msgid "N of Valid Cases"
-msgstr ""
-
-#: crosstabs.q:2040 crosstabs.q:2169 src/crosstabs.q:2040 src/crosstabs.q:2169
-msgid "Nominal by Nominal"
-msgstr ""
-
-#: crosstabs.q:2041 crosstabs.q:2170 src/crosstabs.q:2041 src/crosstabs.q:2170
-msgid "Ordinal by Ordinal"
-msgstr ""
-
-#: crosstabs.q:2042 src/crosstabs.q:2042
-msgid "Interval by Interval"
-msgstr ""
-
-#: crosstabs.q:2043 src/crosstabs.q:2043
-msgid "Measure of Agreement"
-msgstr ""
-
-#: crosstabs.q:2048 src/crosstabs.q:2048
-msgid "Phi"
-msgstr ""
-
-#: crosstabs.q:2049 src/crosstabs.q:2049
-msgid "Cramer's V"
-msgstr ""
-
-#: crosstabs.q:2050 src/crosstabs.q:2050
-msgid "Contingency Coefficient"
-msgstr ""
-
-#: crosstabs.q:2051 src/crosstabs.q:2051
-msgid "Kendall's tau-b"
-msgstr ""
-
-#: crosstabs.q:2052 src/crosstabs.q:2052
-msgid "Kendall's tau-c"
-msgstr ""
-
-#: crosstabs.q:2053 src/crosstabs.q:2053
-msgid "Gamma"
-msgstr ""
-
-#: crosstabs.q:2054 src/crosstabs.q:2054
-msgid "Spearman Correlation"
-msgstr ""
-
-#: crosstabs.q:2055 src/crosstabs.q:2055
-msgid "Pearson's R"
-msgstr ""
-
-#: crosstabs.q:2056 src/crosstabs.q:2056
-msgid "Kappa"
-msgstr ""
-
-#: crosstabs.q:2126 src/crosstabs.q:2126
-#, c-format
-msgid "Odds Ratio for %s (%g / %g)"
-msgstr ""
-
-#: crosstabs.q:2129 src/crosstabs.q:2129
-#, c-format
-msgid "Odds Ratio for %s (%.*s / %.*s)"
-msgstr ""
-
-#: crosstabs.q:2137 src/crosstabs.q:2137
-#, c-format
-msgid "For cohort %s = %g"
-msgstr ""
-
-#: crosstabs.q:2140 src/crosstabs.q:2140
-#, c-format
-msgid "For cohort %s = %.*s"
-msgstr ""
-
-#: crosstabs.q:2171 src/crosstabs.q:2171
-msgid "Nominal by Interval"
-msgstr ""
-
-#: crosstabs.q:2176 src/crosstabs.q:2176
-msgid "Lambda"
-msgstr ""
-
-#: crosstabs.q:2177 src/crosstabs.q:2177
-msgid "Goodman and Kruskal tau"
-msgstr ""
-
-#: crosstabs.q:2178 src/crosstabs.q:2178
-msgid "Uncertainty Coefficient"
-msgstr ""
-
-#: crosstabs.q:2179 src/crosstabs.q:2179
-msgid "Somers' d"
-msgstr ""
-
-#: crosstabs.q:2180 src/crosstabs.q:2180
-msgid "Eta"
-msgstr ""
-
-#: crosstabs.q:2185 src/crosstabs.q:2185
-msgid "Symmetric"
-msgstr ""
-
-#: crosstabs.q:2186 crosstabs.q:2187 src/crosstabs.q:2186 src/crosstabs.q:2187
-#, c-format
-msgid "%s Dependent"
-msgstr ""
-
 #: src/data-in.c:69
 msgid "data-file error: "
 msgstr ""
 #: src/data-in.c:69
 msgid "data-file error: "
 msgstr ""
@@ -776,434 +457,430 @@ msgstr ""
 msgid ", field type %s) "
 msgstr ""
 
 msgid ", field type %s) "
 msgstr ""
 
-#: src/data-in.c:223
+#: src/data-in.c:225
 msgid "Field contents followed by garbage."
 msgstr ""
 
 msgid "Field contents followed by garbage."
 msgstr ""
 
-#: src/data-in.c:256
+#: src/data-in.c:258
 msgid "Overflow in floating-point constant."
 msgstr ""
 
 msgid "Overflow in floating-point constant."
 msgstr ""
 
-#: src/data-in.c:262
+#: src/data-in.c:264
 msgid "Underflow in floating-point constant."
 msgstr ""
 
 msgid "Underflow in floating-point constant."
 msgstr ""
 
-#: src/data-in.c:268
+#: src/data-in.c:270
 msgid "Field does not form a valid floating-point constant."
 msgstr ""
 
 msgid "Field does not form a valid floating-point constant."
 msgstr ""
 
-#: src/data-in.c:294
+#: src/data-in.c:296
 msgid "All characters in field must be digits."
 msgstr ""
 
 msgid "All characters in field must be digits."
 msgstr ""
 
-#: src/data-in.c:319
+#: src/data-in.c:321
 msgid "Unrecognized character in field."
 msgstr ""
 
 msgid "Unrecognized character in field."
 msgstr ""
 
-#: src/data-in.c:337 src/data-in.c:587
+#: src/data-in.c:339 src/data-in.c:589
 msgid "Field must have even length."
 msgstr ""
 
 msgid "Field must have even length."
 msgstr ""
 
-#: src/data-in.c:347 src/data-in.c:597
+#: src/data-in.c:349 src/data-in.c:599
 msgid "Field must contain only hex digits."
 msgstr ""
 
 msgid "Field must contain only hex digits."
 msgstr ""
 
-#: src/data-in.c:385
+#: src/data-in.c:387
 #, c-format
 msgid ""
 "Quality of zoned decimal (Z) input format code is suspect.  Check your "
 "results three times. Report bugs to %s."
 msgstr ""
 
 #, c-format
 msgid ""
 "Quality of zoned decimal (Z) input format code is suspect.  Check your "
 "results three times. Report bugs to %s."
 msgstr ""
 
-#: src/data-in.c:397
+#: src/data-in.c:399
 msgid "Zoned decimal field contains fewer than 2 characters."
 msgstr ""
 
 msgid "Zoned decimal field contains fewer than 2 characters."
 msgstr ""
 
-#: src/data-in.c:405
+#: src/data-in.c:407
 msgid "Bad sign byte in zoned decimal number."
 msgstr ""
 
 msgid "Bad sign byte in zoned decimal number."
 msgstr ""
 
-#: src/data-in.c:422
+#: src/data-in.c:424
 msgid "Format error in zoned decimal number."
 msgstr ""
 
 msgid "Format error in zoned decimal number."
 msgstr ""
 
-#: src/data-in.c:436
+#: src/data-in.c:438
 msgid "Error in syntax of zoned decimal number."
 msgstr ""
 
 msgid "Error in syntax of zoned decimal number."
 msgstr ""
 
-#: src/data-in.c:637
+#: src/data-in.c:639
 msgid "Unexpected end of field."
 msgstr ""
 
 msgid "Unexpected end of field."
 msgstr ""
 
-#: src/data-in.c:663
+#: src/data-in.c:665
 msgid "Digit expected in field."
 msgstr ""
 
 msgid "Digit expected in field."
 msgstr ""
 
-#: src/data-in.c:688
+#: src/data-in.c:690
 #, c-format
 msgid "Day (%ld) must be between 1 and 31."
 msgstr ""
 
 #, c-format
 msgid "Day (%ld) must be between 1 and 31."
 msgstr ""
 
-#: src/data-in.c:713
+#: src/data-in.c:715
 msgid "Delimiter expected between fields in date."
 msgstr ""
 
 msgid "Delimiter expected between fields in date."
 msgstr ""
 
-#: src/data-in.c:810
+#: src/data-in.c:812
 #, c-format
 msgid "Month (%ld) must be between 1 and 12."
 msgstr ""
 
 #, c-format
 msgid "Month (%ld) must be between 1 and 12."
 msgstr ""
 
-#: src/data-in.c:851
+#: src/data-in.c:853
 #, c-format
 msgid "Month (%s) must be between I and XII."
 msgstr ""
 
 #, c-format
 msgid "Month (%s) must be between I and XII."
 msgstr ""
 
-#: src/data-in.c:878
+#: src/data-in.c:880
 #, c-format
 msgid "Month name (%s...) is too long."
 msgstr ""
 
 #, c-format
 msgid "Month name (%s...) is too long."
 msgstr ""
 
-#: src/data-in.c:889
+#: src/data-in.c:891
 #, c-format
 msgid "Bad month name (%s)."
 msgstr ""
 
 #, c-format
 msgid "Bad month name (%s)."
 msgstr ""
 
-#: src/data-in.c:905
+#: src/data-in.c:907
 #, c-format
 msgid "Year (%ld) must be between 1582 and 19999."
 msgstr ""
 
 #, c-format
 msgid "Year (%ld) must be between 1582 and 19999."
 msgstr ""
 
-#: src/data-in.c:916
+#: src/data-in.c:918
 #, c-format
 msgid "Trailing garbage \"%s\" following date."
 msgstr ""
 
 #, c-format
 msgid "Trailing garbage \"%s\" following date."
 msgstr ""
 
-#: src/data-in.c:931
+#: src/data-in.c:933
 #, c-format
 msgid "Julian day (%d) must be between 1 and 366."
 msgstr ""
 
 #, c-format
 msgid "Julian day (%d) must be between 1 and 366."
 msgstr ""
 
-#: src/data-in.c:943
+#: src/data-in.c:945
 #, c-format
 msgid "Year (%d) must be between 1582 and 19999."
 msgstr ""
 
 #, c-format
 msgid "Year (%d) must be between 1582 and 19999."
 msgstr ""
 
-#: src/data-in.c:959
+#: src/data-in.c:961
 #, c-format
 msgid "Quarter (%ld) must be between 1 and 4."
 msgstr ""
 
 #, c-format
 msgid "Quarter (%ld) must be between 1 and 4."
 msgstr ""
 
-#: src/data-in.c:969
+#: src/data-in.c:971
 msgid "`Q' expected between quarter and year."
 msgstr ""
 
 msgid "`Q' expected between quarter and year."
 msgstr ""
 
-#: src/data-in.c:985
+#: src/data-in.c:987
 #, c-format
 msgid "Week (%ld) must be between 1 and 53."
 msgstr ""
 
 #, c-format
 msgid "Week (%ld) must be between 1 and 53."
 msgstr ""
 
-#: src/data-in.c:996
+#: src/data-in.c:998
 msgid "`WK' expected between week and year."
 msgstr ""
 
 msgid "`WK' expected between week and year."
 msgstr ""
 
-#: src/data-in.c:1019
+#: src/data-in.c:1021
 msgid "Delimiter expected between fields in time."
 msgstr ""
 
 msgid "Delimiter expected between fields in time."
 msgstr ""
 
-#: src/data-in.c:1031
+#: src/data-in.c:1033
 #, c-format
 msgid "Hour (%ld) must be positive."
 msgstr ""
 
 #, c-format
 msgid "Hour (%ld) must be positive."
 msgstr ""
 
-#: src/data-in.c:1043
+#: src/data-in.c:1045
 #, c-format
 msgid "Minute (%ld) must be between 0 and 59."
 msgstr ""
 
 #, c-format
 msgid "Minute (%ld) must be between 0 and 59."
 msgstr ""
 
-#: src/data-in.c:1090
+#: src/data-in.c:1092
 #, c-format
 msgid "Hour (%ld) must be between 0 and 23."
 msgstr ""
 
 #, c-format
 msgid "Hour (%ld) must be between 0 and 23."
 msgstr ""
 
-#: src/data-in.c:1104 src/data-in.c:1139
+#: src/data-in.c:1106 src/data-in.c:1141
 msgid "Day of the week expected in date value."
 msgstr ""
 
 msgid "Day of the week expected in date value."
 msgstr ""
 
-#: src/data-in.c:1190
+#: src/data-in.c:1192
 msgid "Date is not in valid range between 15 Oct 1582 and 31 Dec 19999."
 msgstr ""
 
 msgid "Date is not in valid range between 15 Oct 1582 and 31 Dec 19999."
 msgstr ""
 
-#: src/data-in.c:1512
+#: src/data-in.c:1514
 #, c-format
 msgid "Field too long (%d characters).  Truncated after character %d."
 msgstr ""
 
 #, c-format
 msgid "Field too long (%d characters).  Truncated after character %d."
 msgstr ""
 
-#: src/data-list.c:138
+#: src/data-list.c:139
 msgid ""
 "DATA LIST may not use a different file from that specified on its "
 "surrounding FILE TYPE."
 msgstr ""
 
 msgid ""
 "DATA LIST may not use a different file from that specified on its "
 "surrounding FILE TYPE."
 msgstr ""
 
-#: src/data-list.c:157
+#: src/data-list.c:158
 msgid "The END subcommand may only be specified once."
 msgstr ""
 
 msgid "The END subcommand may only be specified once."
 msgstr ""
 
-#: src/data-list.c:193
+#: src/data-list.c:194
 msgid "Only one of FIXED, FREE, or LIST may be specified."
 msgstr ""
 
 msgid "Only one of FIXED, FREE, or LIST may be specified."
 msgstr ""
 
-#: src/data-list.c:319 src/print.c:297
+#: src/data-list.c:327 src/print.c:299
 #, c-format
 msgid ""
 "The record number specified, %ld, is before the previous record, %d.  Data "
 "fields must be listed in order of increasing record number."
 msgstr ""
 
 #, c-format
 msgid ""
 "The record number specified, %ld, is before the previous record, %d.  Data "
 "fields must be listed in order of increasing record number."
 msgstr ""
 
-#: src/data-list.c:351 src/data-list.c:1655
+#: src/data-list.c:356 src/data-list.c:1679
 msgid ""
 "SPSS-like or FORTRAN-like format specification expected after variable names."
 msgstr ""
 
 msgid ""
 "SPSS-like or FORTRAN-like format specification expected after variable names."
 msgstr ""
 
-#: src/data-list.c:362 src/print.c:329
+#: src/data-list.c:367
+msgid "At least one variable must be specified."
+msgstr ""
+
+#: src/data-list.c:372 src/print.c:331
 msgid ""
 "Variables are specified on records that should not exist according to "
 "RECORDS subcommand."
 msgstr ""
 
 msgid ""
 "Variables are specified on records that should not exist according to "
 "RECORDS subcommand."
 msgstr ""
 
-#: src/data-list.c:394 src/data-list.c:407 src/print.c:506 src/print.c:519
+#: src/data-list.c:410 src/data-list.c:424 src/print.c:508 src/print.c:521
 msgid "Column positions for fields must be positive."
 msgstr ""
 
 msgid "Column positions for fields must be positive."
 msgstr ""
 
-#: src/data-list.c:412
+#: src/data-list.c:429
 msgid "The ending column for a field must be greater than the starting column."
 msgstr ""
 
 msgid "The ending column for a field must be greater than the starting column."
 msgstr ""
 
-#: src/data-list.c:436 src/print.c:547
+#: src/data-list.c:443 src/print.c:598
+#, c-format
+msgid "The %d columns %d-%d can't be evenly divided into %d fields."
+msgstr ""
+
+#: src/data-list.c:463 src/print.c:549
 msgid "A format specifier on this line has extra characters on the end."
 msgstr ""
 
 msgid "A format specifier on this line has extra characters on the end."
 msgstr ""
 
-#: src/data-list.c:451 src/print.c:563
+#: src/data-list.c:478 src/print.c:565
 msgid "The value for number of decimal places must be at least 1."
 msgstr ""
 
 msgid "The value for number of decimal places must be at least 1."
 msgstr ""
 
-#: src/data-list.c:465 src/print.c:576
+#: src/data-list.c:492 src/print.c:578
 #, c-format
 msgid "Input format %s doesn't accept decimal places."
 msgstr ""
 
 #, c-format
 msgid "Input format %s doesn't accept decimal places."
 msgstr ""
 
-#: src/data-list.c:486 src/print.c:596
-#, c-format
-msgid "The %d columns %d-%d can't be evenly divided into %d fields."
-msgstr ""
-
-#: src/data-list.c:528 src/data-list.c:625 src/data-list.c:829
+#: src/data-list.c:539 src/data-list.c:635 src/data-list.c:857
 #, c-format
 msgid "%s is a duplicate variable name."
 msgstr ""
 
 #, c-format
 msgid "%s is a duplicate variable name."
 msgstr ""
 
-#: src/data-list.c:533
+#: src/data-list.c:544
 #, c-format
 msgid "There is already a variable %s of a different type."
 msgstr ""
 
 #, c-format
 msgid "There is already a variable %s of a different type."
 msgstr ""
 
-#: src/data-list.c:540
+#: src/data-list.c:551
 #, c-format
 msgid "There is already a string variable %s of a different width."
 msgstr ""
 
 #, c-format
 msgid "There is already a string variable %s of a different width."
 msgstr ""
 
-#: src/data-list.c:614 src/print.c:685
+#: src/data-list.c:626
 msgid ""
 msgid ""
-"The number of format specifications exceeds the number of variable names "
-"given."
+"The number of format specifications exceeds the given number of variable "
+"names."
 msgstr ""
 
 msgstr ""
 
-#: src/data-list.c:702 src/print.c:769
+#: src/data-list.c:739 src/print.c:771
 msgid ""
 "There aren't enough format specifications to match the number of variable "
 "names given."
 msgstr ""
 
 msgid ""
 "There aren't enough format specifications to match the number of variable "
 "names given."
 msgstr ""
 
-#: src/data-list.c:736 src/data-list.c:877 descript.q:790 src/descript.q:790
-#: src/print.c:801 src/sysfile-info.c:135 src/sysfile-info.c:370
-#: src/vfm.c:1086
+#: src/data-list.c:768 src/data-list.c:899 src/print.c:803
+#: src/sysfile-info.c:135 src/sysfile-info.c:370 src/vfm.c:1148
+#: src/descript.q:791
 msgid "Variable"
 msgstr ""
 
 msgid "Variable"
 msgstr ""
 
-#: src/data-list.c:737 src/print.c:802
+#: src/data-list.c:769 src/print.c:804
 msgid "Record"
 msgstr ""
 
 msgid "Record"
 msgstr ""
 
-#: src/data-list.c:738 src/print.c:803
+#: src/data-list.c:770 src/print.c:805
 msgid "Columns"
 msgstr ""
 
 msgid "Columns"
 msgstr ""
 
-#: src/data-list.c:739 src/data-list.c:878 src/print.c:804
+#: src/data-list.c:771 src/data-list.c:900 src/print.c:806
 msgid "Format"
 msgstr ""
 
 msgid "Format"
 msgstr ""
 
-#: src/data-list.c:762
+#: src/data-list.c:791
 #, c-format
 msgid "Reading %d record from file %s."
 msgid_plural "Reading %d records from file %s."
 msgstr[0] ""
 msgstr[1] ""
 
 #, c-format
 msgid "Reading %d record from file %s."
 msgid_plural "Reading %d records from file %s."
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/data-list.c:765
+#: src/data-list.c:793
 #, c-format
 msgid "Reading %d record from the command file."
 msgid_plural "Reading %d records from the command file."
 msgstr[0] ""
 msgstr[1] ""
 
 #, c-format
 msgid "Reading %d record from the command file."
 msgid_plural "Reading %d records from the command file."
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/data-list.c:772 src/data-list.c:773
-msgid "Occurrence data specifications."
-msgstr ""
-
-#: src/data-list.c:901
+#: src/data-list.c:923
 #, c-format
 msgid "Reading free-form data from file %s."
 msgstr ""
 
 #, c-format
 msgid "Reading free-form data from file %s."
 msgstr ""
 
-#: src/data-list.c:902
+#: src/data-list.c:924
 msgid "Reading free-form data from the command file."
 msgstr ""
 
 msgid "Reading free-form data from the command file."
 msgstr ""
 
-#: src/data-list.c:953 src/matrix-data.c:935
+#: src/data-list.c:971 src/matrix-data.c:923
 msgid "Scope of string exceeds line."
 msgstr ""
 
 msgid "Scope of string exceeds line."
 msgstr ""
 
-#: src/data-list.c:1013
-msgid "Attempt to read past end of file."
-msgstr ""
-
-#: src/data-list.c:1042
-msgid "abort in write_case()\n"
-msgstr ""
-
-#: src/data-list.c:1070
+#: src/data-list.c:1039
 #, c-format
 msgid "Partial case of %d of %d records discarded."
 msgstr ""
 
 #, c-format
 msgid "Partial case of %d of %d records discarded."
 msgstr ""
 
-#: src/data-list.c:1119
+#: src/data-list.c:1090
 #, c-format
 msgid "Partial case discarded.  The first variable missing was %s."
 msgstr ""
 
 #, c-format
 msgid "Partial case discarded.  The first variable missing was %s."
 msgstr ""
 
-#: src/data-list.c:1160
+#: src/data-list.c:1133
 #, 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 ""
 
 #, 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 ""
 
-#: src/data-list.c:1331
+#: src/data-list.c:1210
+msgid "Attempt to read past end of file."
+msgstr ""
+
+#: src/data-list.c:1353
 msgid ""
 "REPEATING DATA must use the same file as its corresponding DATA LIST or FILE "
 "TYPE."
 msgstr ""
 
 msgid ""
 "REPEATING DATA must use the same file as its corresponding DATA LIST or FILE "
 "TYPE."
 msgstr ""
 
-#: src/data-list.c:1365
+#: src/data-list.c:1387
 #, c-format
 msgid "STARTS beginning column (%d) exceeds STARTS ending column (%d)."
 msgstr ""
 
 #, c-format
 msgid "STARTS beginning column (%d) exceeds STARTS ending column (%d)."
 msgstr ""
 
-#: src/data-list.c:1421
+#: src/data-list.c:1443
 #, c-format
 msgid "CONTINUED beginning column (%d) exceeds CONTINUED ending column (%d)."
 msgstr ""
 
 #, c-format
 msgid "CONTINUED beginning column (%d) exceeds CONTINUED ending column (%d)."
 msgstr ""
 
-#: src/data-list.c:1444
+#: src/data-list.c:1466
 #, c-format
 msgid "ID beginning column (%ld) must be positive."
 msgstr ""
 
 #, c-format
 msgid "ID beginning column (%ld) must be positive."
 msgstr ""
 
-#: src/data-list.c:1459
+#: src/data-list.c:1481
 #, c-format
 msgid "ID ending column (%ld) must be positive."
 msgstr ""
 
 #, c-format
 msgid "ID ending column (%ld) must be positive."
 msgstr ""
 
-#: src/data-list.c:1465
+#: src/data-list.c:1487
 #, c-format
 msgid "ID ending column (%ld) cannot be less than ID beginning column (%d)."
 msgstr ""
 
 #, c-format
 msgid "ID ending column (%ld) cannot be less than ID beginning column (%d)."
 msgstr ""
 
-#: src/data-list.c:1505
+#: src/data-list.c:1527
 msgid "Missing required specification STARTS."
 msgstr ""
 
 msgid "Missing required specification STARTS."
 msgstr ""
 
-#: src/data-list.c:1507
+#: src/data-list.c:1529
 msgid "Missing required specification OCCURS."
 msgstr ""
 
 msgid "Missing required specification OCCURS."
 msgstr ""
 
-#: src/data-list.c:1514
+#: src/data-list.c:1536
 msgid "ID specified without CONTINUED."
 msgstr ""
 
 msgid "ID specified without CONTINUED."
 msgstr ""
 
-#: src/data-list.c:1602
+#: src/data-list.c:1628
 msgid "String variable not allowed here."
 msgstr ""
 
 msgid "String variable not allowed here."
 msgstr ""
 
-#: src/data-list.c:1612
+#: src/data-list.c:1638
 #, c-format
 msgid "%s (%d) must be at least 1."
 msgstr ""
 
 #, c-format
 msgid "%s (%d) must be at least 1."
 msgstr ""
 
-#: src/data-list.c:1618
+#: src/data-list.c:1644
 #, c-format
 msgid "Variable or integer expected for %s."
 msgstr ""
 
 #, c-format
 msgid "Variable or integer expected for %s."
 msgstr ""
 
-#: src/data-list.c:1753
+#: src/data-list.c:1782
 #, c-format
 msgid "Encountered mismatched record ID \"%s\" expecting \"%s\"."
 msgstr ""
 
 #, c-format
 msgid "Encountered mismatched record ID \"%s\" expecting \"%s\"."
 msgstr ""
 
-#: src/data-list.c:1785
+#: src/data-list.c:1814
 #, c-format
 msgid ""
 "Variable %s starting in column %d extends beyond physical record length of %"
 "d."
 msgstr ""
 
 #, c-format
 msgid ""
 "Variable %s starting in column %d extends beyond physical record length of %"
 "d."
 msgstr ""
 
-#: src/data-list.c:1853
+#: src/data-list.c:1882
 #, c-format
 msgid "Invalid value %d for OCCURS."
 msgstr ""
 
 #, c-format
 msgid "Invalid value %d for OCCURS."
 msgstr ""
 
-#: src/data-list.c:1859
+#: src/data-list.c:1888
 #, c-format
 msgid "Beginning column for STARTS (%d) must be at least 1."
 msgstr ""
 
 #, c-format
 msgid "Beginning column for STARTS (%d) must be at least 1."
 msgstr ""
 
-#: src/data-list.c:1867
+#: src/data-list.c:1896
 #, c-format
 msgid "Ending column for STARTS (%d) is less than beginning column (%d)."
 msgstr ""
 
 #, c-format
 msgid "Ending column for STARTS (%d) is less than beginning column (%d)."
 msgstr ""
 
-#: src/data-list.c:1875
+#: src/data-list.c:1904
 #, c-format
 msgid "Invalid value %d for LENGTH."
 msgstr ""
 
 #, c-format
 msgid "Invalid value %d for LENGTH."
 msgstr ""
 
-#: src/data-list.c:1882
+#: src/data-list.c:1911
 #, c-format
 msgid "Beginning column for CONTINUED (%d) must be at least 1."
 msgstr ""
 
 #, c-format
 msgid "Beginning column for CONTINUED (%d) must be at least 1."
 msgstr ""
 
-#: src/data-list.c:1890
+#: src/data-list.c:1919
 #, c-format
 msgid "Ending column for CONTINUED (%d) is less than beginning column (%d)."
 msgstr ""
 
 #, c-format
 msgid "Ending column for CONTINUED (%d) is less than beginning column (%d)."
 msgstr ""
 
-#: src/data-list.c:1913
+#: src/data-list.c:1951
 #, c-format
 msgid ""
 "Number of repetitions specified on OCCURS (%d) exceed number of repetitions "
 "available in space on STARTS (%d), and CONTINUED not specified."
 msgstr ""
 
 #, c-format
 msgid ""
 "Number of repetitions specified on OCCURS (%d) exceed number of repetitions "
 "available in space on STARTS (%d), and CONTINUED not specified."
 msgstr ""
 
-#: src/data-list.c:1930
+#: src/data-list.c:1970
 #, c-format
 msgid "Unexpected end of file with %d repetitions remaining out of %d."
 msgstr ""
 #, c-format
 msgid "Unexpected end of file with %d repetitions remaining out of %d."
 msgstr ""
@@ -1255,266 +932,24 @@ msgid ""
 "Year %d cannot be represented in four digits for output formatting purposes."
 msgstr ""
 
 "Year %d cannot be represented in four digits for output formatting purposes."
 msgstr ""
 
-#: descript.c:283
-msgid "SAVE subcommand may be given only once."
+#: src/devind.c:136
+#, c-format
+msgid "DEVIND driver initializing as `%s'..."
 msgstr ""
 
 msgstr ""
 
-#: descript.c:297
-msgid "OPTIONS subcommand may be given only once."
+#: src/devind.c:218
+#, c-format
+msgid "Unknown configuration parameter `%s' for DEVIND device driver."
 msgstr ""
 
 msgstr ""
 
-#: descript.c:405
-msgid "SORT subcommand may be given only once."
+#: src/devind.c:240
+#, c-format
+msgid "DEVIND output driver: %s: %s"
 msgstr ""
 
 msgstr ""
 
-#: descript.q:151 src/descript.q:151 frequencies.q:94 src/frequencies.q:94
-#: t-test.q:626 t-test.q:649 t-test.q:726 t-test.q:1075 src/t-test.q:626
-#: src/t-test.q:649 src/t-test.q:726 src/t-test.q:1075
-msgid "Mean"
-msgstr ""
-
-#: descript.q:151 src/descript.q:151
-msgid "mean"
-msgstr ""
-
-#: descript.q:152 src/descript.q:152 frequencies.q:95 src/frequencies.q:95
-msgid "S.E. Mean"
-msgstr ""
-
-#: descript.q:152 src/descript.q:152
-msgid "S E Mean"
-msgstr ""
-
-#: descript.q:152 src/descript.q:152
-msgid "SE"
-msgstr ""
-
-#: descript.q:153 src/descript.q:153
-msgid "standard error of mean"
-msgstr ""
-
-#: descript.q:154 src/descript.q:154 frequencies.q:98 src/frequencies.q:98
-msgid "Std Dev"
-msgstr ""
-
-#: descript.q:154 src/descript.q:154
-msgid "SD"
-msgstr ""
-
-#: descript.q:155 src/descript.q:155
-msgid "standard deviation"
-msgstr ""
-
-#: descript.q:156 src/descript.q:156 frequencies.q:99 src/frequencies.q:99
-msgid "Variance"
-msgstr ""
-
-#: descript.q:157 src/descript.q:157
-msgid "Var"
-msgstr ""
-
-#: descript.q:157 src/descript.q:157
-msgid "variance"
-msgstr ""
-
-#: descript.q:158 src/descript.q:158 frequencies.q:100 src/frequencies.q:100
-msgid "Kurtosis"
-msgstr ""
-
-#: descript.q:159 src/descript.q:159
-msgid "Kurt"
-msgstr ""
-
-#: descript.q:159 src/descript.q:159
-msgid "kurtosis"
-msgstr ""
-
-#: descript.q:160 src/descript.q:160 frequencies.q:101 src/frequencies.q:101
-msgid "S.E. Kurt"
-msgstr ""
-
-#: descript.q:160 src/descript.q:160
-msgid "S E Kurt"
-msgstr ""
-
-#: descript.q:160 src/descript.q:160
-msgid "SEKurt"
-msgstr ""
-
-#: descript.q:161 src/descript.q:161
-msgid "standard error of kurtosis"
-msgstr ""
-
-#: descript.q:162 src/descript.q:162 frequencies.q:102 src/frequencies.q:102
-msgid "Skewness"
-msgstr ""
-
-#: descript.q:162 src/descript.q:162
-msgid "Skew"
-msgstr ""
-
-#: descript.q:163 src/descript.q:163
-msgid "skewness"
-msgstr ""
-
-#: descript.q:164 src/descript.q:164 frequencies.q:103 src/frequencies.q:103
-msgid "S.E. Skew"
-msgstr ""
-
-#: descript.q:164 src/descript.q:164
-msgid "S E Skew"
-msgstr ""
-
-#: descript.q:164 src/descript.q:164
-msgid "SESkew"
-msgstr ""
-
-#: descript.q:165 src/descript.q:165
-msgid "standard error of skewness"
-msgstr ""
-
-#: descript.q:166 src/descript.q:166 frequencies.q:104 src/frequencies.q:104
-msgid "Range"
-msgstr ""
-
-#: descript.q:166 src/descript.q:166
-msgid "Rng"
-msgstr ""
-
-#: descript.q:166 src/descript.q:166 src/sfm-read.c:1202
-msgid "range"
-msgstr ""
-
-#: descript.q:167 src/descript.q:167 frequencies.q:105 src/frequencies.q:105
-msgid "Minimum"
-msgstr ""
-
-#: descript.q:167 src/descript.q:167
-msgid "Min"
-msgstr ""
-
-#: descript.q:168 src/descript.q:168
-msgid "minimum"
-msgstr ""
-
-#: descript.q:169 src/descript.q:169 frequencies.q:106 src/frequencies.q:106
-msgid "Maximum"
-msgstr ""
-
-#: descript.q:169 src/descript.q:169
-msgid "Max"
-msgstr ""
-
-#: descript.q:170 src/descript.q:170
-msgid "maximum"
-msgstr ""
-
-#: descript.q:171 src/descript.q:171 frequencies.q:107 src/frequencies.q:107
-msgid "Sum"
-msgstr ""
-
-#: descript.q:171 src/descript.q:171
-msgid "sum"
-msgstr ""
-
-#: descript.q:212 src/descript.q:212 list.q:144 src/list.q:144
-msgid "No variables specified."
-msgstr ""
-
-#: descript.q:218 src/descript.q:218
-msgid "OPTIONS may not be used with SAVE, FORMAT, or MISSING."
-msgstr ""
-
-#: descript.q:280 src/descript.q:280
-#, c-format
-msgid "It's not possible to sort on `%s' without displaying `%s'."
-msgstr ""
-
-#: descript.q:294 src/descript.q:294
-msgid ""
-"At least one case in the data file had a weight value that was system-"
-"missing, zero, or negative.  These case(s) were ignored."
-msgstr ""
-
-#: descript.q:335 src/descript.q:335
-msgid ""
-"Names for z-score variables must be given for individual variables, not for "
-"groups of variables."
-msgstr ""
-
-#: descript.q:343 src/descript.q:343
-msgid "Name for z-score variable expected."
-msgstr ""
-
-#: descript.q:348 src/descript.q:348
-#, c-format
-msgid ""
-"Z-score variable name `%s' is a duplicate variable name with a current "
-"variable."
-msgstr ""
-
-#: descript.q:357 src/descript.q:357
-#, c-format
-msgid "Z-score variable name `%s' is used multiple times."
-msgstr ""
-
-#: descript.q:365 src/descript.q:365
-msgid "`)' expected after z-score variable name."
-msgstr ""
-
-#: descript.q:425 src/descript.q:425
-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 ""
-
-#: descript.q:454 src/descript.q:454
-msgid "Mapping of variables to corresponding Z-scores."
-msgstr ""
-
-#: descript.q:459 src/descript.q:459
-msgid "Source"
-msgstr ""
-
-#: descript.q:460 src/descript.q:460
-msgid "Target"
-msgstr ""
-
-#: descript.q:547 descript.q:553 src/descript.q:547 src/descript.q:553
-msgid "Z-score of "
-msgstr ""
-
-#: descript.q:794 src/descript.q:794
-msgid "Valid N"
-msgstr ""
-
-#: descript.q:795 src/descript.q:795
-msgid "Missing N"
-msgstr ""
-
-#: descript.q:822 src/descript.q:822
-#, c-format
-msgid "Valid cases = %g; cases with missing value(s) = %g."
-msgstr ""
-
-#: src/devind.c:136
-#, c-format
-msgid "DEVIND driver initializing as `%s'..."
-msgstr ""
-
-#: src/devind.c:218
-#, c-format
-msgid "Unknown configuration parameter `%s' for DEVIND device driver."
-msgstr ""
-
-#: src/devind.c:240
-#, c-format
-msgid "DEVIND output driver: %s: %s"
-msgstr ""
-
-#: src/devind.c:271
-#, c-format
-msgid "Cannot open first page on DEVIND device %s."
+#: src/devind.c:271
+#, c-format
+msgid "Cannot open first page on DEVIND device %s."
 msgstr ""
 
 #: src/dfm.c:74
 msgstr ""
 
 #: src/dfm.c:74
@@ -1613,43 +1048,43 @@ msgstr ""
 msgid "writing as a data file"
 msgstr ""
 
 msgid "writing as a data file"
 msgstr ""
 
-#: src/do-if.c:118
+#: src/do-if.c:117
 msgid "There is no DO IF to match with this ELSE IF."
 msgstr ""
 
 msgid "There is no DO IF to match with this ELSE IF."
 msgstr ""
 
-#: src/do-if.c:123
+#: src/do-if.c:122
 msgid "The ELSE command must follow all ELSE IF commands in a DO IF structure."
 msgstr ""
 
 msgid "The ELSE command must follow all ELSE IF commands in a DO IF structure."
 msgstr ""
 
-#: src/do-if.c:146
+#: src/do-if.c:145
 msgid "End of command expected."
 msgstr ""
 
 msgid "End of command expected."
 msgstr ""
 
-#: src/do-if.c:164
+#: src/do-if.c:163
 msgid "There is no DO IF to match with this ELSE."
 msgstr ""
 
 msgid "There is no DO IF to match with this ELSE."
 msgstr ""
 
-#: src/do-if.c:170
+#: src/do-if.c:169
 msgid ""
 "There may be at most one ELSE clause in each DO IF structure.  It must be "
 "the last clause."
 msgstr ""
 
 msgid ""
 "There may be at most one ELSE clause in each DO IF structure.  It must be "
 "the last clause."
 msgstr ""
 
-#: src/do-if.c:207
+#: src/do-if.c:206
 msgid "There is no DO IF to match with this END IF."
 msgstr ""
 
 msgid "There is no DO IF to match with this END IF."
 msgstr ""
 
-#: src/do-if.c:293
+#: src/do-if.c:294
 #, c-format
 msgid "DO IF %d: true\n"
 msgstr ""
 
 #, c-format
 msgid "DO IF %d: true\n"
 msgstr ""
 
-#: src/do-if.c:298
+#: src/do-if.c:299
 #, c-format
 msgid "DO IF %d: false\n"
 msgstr ""
 
 #, c-format
 msgid "DO IF %d: false\n"
 msgstr ""
 
-#: src/do-if.c:303
+#: src/do-if.c:304
 #, c-format
 msgid "DO IF %d: missing\n"
 msgstr ""
 #, c-format
 msgid "DO IF %d: missing\n"
 msgstr ""
@@ -1692,35 +1127,35 @@ msgstr ""
 msgid "installation error"
 msgstr ""
 
 msgid "installation error"
 msgstr ""
 
-#: src/expr-evl.c:1115
+#: src/expr-evl.c:1116
 msgid ""
 "A number being treated as a Boolean in an expression was found to have a "
 "value other than 0 (false), 1 (true), or the system-missing value.  The "
 "result was forced to 0."
 msgstr ""
 
 msgid ""
 "A number being treated as a Boolean in an expression was found to have a "
 "value other than 0 (false), 1 (true), or the system-missing value.  The "
 "result was forced to 0."
 msgstr ""
 
-#: src/expr-evl.c:1159
+#: src/expr-evl.c:1160
 #, c-format
 msgid ""
 "SYSMIS is not a valid index value for vector %s.  The result will be set to "
 "SYSMIS."
 msgstr ""
 
 #, c-format
 msgid ""
 "SYSMIS is not a valid index value for vector %s.  The result will be set to "
 "SYSMIS."
 msgstr ""
 
-#: src/expr-evl.c:1163
+#: src/expr-evl.c:1164
 #, c-format
 msgid ""
 "%g is not a valid index value for vector %s.  The result will be set to "
 "SYSMIS."
 msgstr ""
 
 #, c-format
 msgid ""
 "%g is not a valid index value for vector %s.  The result will be set to "
 "SYSMIS."
 msgstr ""
 
-#: src/expr-evl.c:1181
+#: src/expr-evl.c:1182
 #, c-format
 msgid ""
 "SYSMIS is not a valid index value for vector %s.  The result will be set to "
 "the empty string."
 msgstr ""
 
 #, c-format
 msgid ""
 "SYSMIS is not a valid index value for vector %s.  The result will be set to "
 "the empty string."
 msgstr ""
 
-#: src/expr-evl.c:1186
+#: src/expr-evl.c:1187
 #, c-format
 msgid ""
 "%g is not a valid index value for vector %s.  The result will be set to the "
 #, c-format
 msgid ""
 "%g is not a valid index value for vector %s.  The result will be set to the "
@@ -1749,7 +1184,7 @@ msgstr ""
 msgid "Second argument to %cTRIM() must be at least one character in length."
 msgstr ""
 
 msgid "Second argument to %cTRIM() must be at least one character in length."
 msgstr ""
 
-#: src/expr-opt.c:881
+#: src/expr-opt.c:880
 msgid ""
 "When optimizing a constant expression, an integer that was being used as an "
 "Boolean value was found to have a constant value other than 0, 1, or SYSMIS."
 msgid ""
 "When optimizing a constant expression, an integer that was being used as an "
 "Boolean value was found to have a constant value other than 0, 1, or SYSMIS."
@@ -1939,57 +1374,6 @@ msgstr ""
 msgid "postfix:"
 msgstr ""
 
 msgid "postfix:"
 msgstr ""
 
-#: file-handle.q:72 src/file-handle.q:72
-#, c-format
-msgid ""
-"File handle %s had already been defined to refer to file %s.  It is not "
-"possible to redefine a file handle within a session."
-msgstr ""
-
-#: file-handle.q:94 src/file-handle.q:94
-msgid "The FILE HANDLE required subcommand NAME is not present."
-msgstr ""
-
-#: file-handle.q:107 src/file-handle.q:107
-msgid ""
-"Fixed length records were specified on /RECFORM, but record length was not "
-"specified on /LRECL.  80-character records will be assumed."
-msgstr ""
-
-#: file-handle.q:114 src/file-handle.q:114
-#, c-format
-msgid ""
-"Record length (%ld) must be at least one byte.  80-character records will be "
-"assumed."
-msgstr ""
-
-#: file-handle.q:126 file-handle.q:140 src/file-handle.q:126
-#: src/file-handle.q:140
-#, c-format
-msgid ""
-"%s is not implemented, as the author doesn't know what it is supposed to "
-"do.  Send a note to %s."
-msgstr ""
-
-#: file-handle.q:147 file-handle.q:150 src/file-handle.q:147
-#: src/file-handle.q:150
-#, c-format
-msgid "%s is not implemented.  If you care, complain."
-msgstr ""
-
-#: file-handle.q:232 src/file-handle.q:232
-#, c-format
-msgid "File handle `%s' has not been previously declared on FILE HANDLE."
-msgstr ""
-
-#: file-handle.q:319 src/file-handle.q:319
-msgid "<Inline File>"
-msgstr ""
-
-#: file-handle.q:338 src/file-handle.q:338
-msgid "expecting a file name or handle"
-msgstr ""
-
 #: src/filename.c:221
 #, c-format
 msgid "Searching for `%s'..."
 #: src/filename.c:221
 #, c-format
 msgid "Searching for `%s'..."
@@ -2009,274 +1393,278 @@ msgstr ""
 msgid "Not opening pipe file `%s' because SAFER option set."
 msgstr ""
 
 msgid "Not opening pipe file `%s' because SAFER option set."
 msgstr ""
 
-#: src/file-type.c:125
+#: src/file-type.c:127
 msgid "MIXED, GROUPED, or NESTED expected."
 msgstr ""
 
 msgid "MIXED, GROUPED, or NESTED expected."
 msgstr ""
 
-#: src/file-type.c:148
+#: src/file-type.c:150
 msgid "The CASE subcommand is not valid on FILE TYPE MIXED."
 msgstr ""
 
 msgid "The CASE subcommand is not valid on FILE TYPE MIXED."
 msgstr ""
 
-#: src/file-type.c:166
+#: src/file-type.c:168
 msgid "WARN or NOWARN expected after WILD."
 msgstr ""
 
 msgid "WARN or NOWARN expected after WILD."
 msgstr ""
 
-#: src/file-type.c:174
+#: src/file-type.c:176
 msgid "The DUPLICATE subcommand is not valid on FILE TYPE MIXED."
 msgstr ""
 
 msgid "The DUPLICATE subcommand is not valid on FILE TYPE MIXED."
 msgstr ""
 
-#: src/file-type.c:188
+#: src/file-type.c:190
 msgid "DUPLICATE=CASE is only valid on FILE TYPE NESTED."
 msgstr ""
 
 msgid "DUPLICATE=CASE is only valid on FILE TYPE NESTED."
 msgstr ""
 
-#: src/file-type.c:197
+#: src/file-type.c:199
 #, c-format
 msgid "WARN%s expected after DUPLICATE."
 msgstr ""
 
 #, c-format
 msgid "WARN%s expected after DUPLICATE."
 msgstr ""
 
-#: src/file-type.c:198
+#: src/file-type.c:200
 msgid ", NOWARN, or CASE"
 msgstr ""
 
 msgid ", NOWARN, or CASE"
 msgstr ""
 
-#: src/file-type.c:199
+#: src/file-type.c:201
 msgid " or NOWARN"
 msgstr ""
 
 msgid " or NOWARN"
 msgstr ""
 
-#: src/file-type.c:207
+#: src/file-type.c:209
 msgid "The MISSING subcommand is not valid on FILE TYPE MIXED."
 msgstr ""
 
 msgid "The MISSING subcommand is not valid on FILE TYPE MIXED."
 msgstr ""
 
-#: src/file-type.c:219
+#: src/file-type.c:221
 msgid "WARN or NOWARN after MISSING."
 msgstr ""
 
 msgid "WARN or NOWARN after MISSING."
 msgstr ""
 
-#: src/file-type.c:227
+#: src/file-type.c:229
 msgid "ORDERED is only valid on FILE TYPE GROUPED."
 msgstr ""
 
 msgid "ORDERED is only valid on FILE TYPE GROUPED."
 msgstr ""
 
-#: src/file-type.c:238
+#: src/file-type.c:240
 msgid "YES or NO expected after ORDERED."
 msgstr ""
 
 msgid "YES or NO expected after ORDERED."
 msgstr ""
 
-#: src/file-type.c:244 src/file-type.c:547 src/get.c:343
+#: src/file-type.c:246 src/file-type.c:541 src/get.c:365
 msgid "while expecting a valid subcommand"
 msgstr ""
 
 msgid "while expecting a valid subcommand"
 msgstr ""
 
-#: src/file-type.c:251
+#: src/file-type.c:253
 msgid "The required RECORD subcommand was not present."
 msgstr ""
 
 msgid "The required RECORD subcommand was not present."
 msgstr ""
 
-#: src/file-type.c:259
+#: src/file-type.c:261
 msgid "The required CASE subcommand was not present."
 msgstr ""
 
 msgid "The required CASE subcommand was not present."
 msgstr ""
 
-#: src/file-type.c:265
+#: src/file-type.c:267
 msgid "CASE and RECORD must specify different variable names."
 msgstr ""
 
 msgid "CASE and RECORD must specify different variable names."
 msgstr ""
 
-#: src/file-type.c:314
+#: src/file-type.c:322
 msgid "Column value must be positive."
 msgstr ""
 
 msgid "Column value must be positive."
 msgstr ""
 
-#: src/file-type.c:329
+#: src/file-type.c:338
 msgid "Ending column precedes beginning column."
 msgstr ""
 
 msgid "Ending column precedes beginning column."
 msgstr ""
 
-#: src/file-type.c:348
+#: src/file-type.c:358
 msgid "Bad format specifier name."
 msgstr ""
 
 msgid "Bad format specifier name."
 msgstr ""
 
-#: src/file-type.c:409 src/file-type.c:568
+#: src/file-type.c:387 src/file-type.c:578
 msgid ""
 "This command may only appear within a FILE TYPE/END FILE TYPE structure."
 msgstr ""
 
 msgid ""
 "This command may only appear within a FILE TYPE/END FILE TYPE structure."
 msgstr ""
 
-#: src/file-type.c:416
+#: src/file-type.c:410
 msgid "OTHER may appear only on the last RECORD TYPE command."
 msgstr ""
 
 msgid "OTHER may appear only on the last RECORD TYPE command."
 msgstr ""
 
-#: src/file-type.c:426
+#: src/file-type.c:420
 msgid "No input commands (DATA LIST, REPEATING DATA) for above RECORD TYPE."
 msgstr ""
 
 msgid "No input commands (DATA LIST, REPEATING DATA) for above RECORD TYPE."
 msgstr ""
 
-#: src/file-type.c:480
+#: src/file-type.c:474
 msgid ""
 "The CASE subcommand is not allowed on the RECORD TYPE command for FILE TYPE "
 "MIXED."
 msgstr ""
 
 msgid ""
 "The CASE subcommand is not allowed on the RECORD TYPE command for FILE TYPE "
 "MIXED."
 msgstr ""
 
-#: src/file-type.c:490
+#: src/file-type.c:484
 msgid ""
 "No variable name may be specified for the CASE subcommand on RECORD TYPE."
 msgstr ""
 
 msgid ""
 "No variable name may be specified for the CASE subcommand on RECORD TYPE."
 msgstr ""
 
-#: src/file-type.c:498
+#: src/file-type.c:492
 msgid ""
 "The CASE column specification on RECORD TYPE must give a format specifier "
 "that is the same type as that of the CASE column specification given on FILE "
 "TYPE."
 msgstr ""
 
 msgid ""
 "The CASE column specification on RECORD TYPE must give a format specifier "
 "that is the same type as that of the CASE column specification given on FILE "
 "TYPE."
 msgstr ""
 
-#: src/file-type.c:514
+#: src/file-type.c:508
 msgid "WARN or NOWARN expected on DUPLICATE subcommand."
 msgstr ""
 
 msgid "WARN or NOWARN expected on DUPLICATE subcommand."
 msgstr ""
 
-#: src/file-type.c:528
+#: src/file-type.c:522
 msgid "WARN or NOWARN expected on MISSING subcommand."
 msgstr ""
 
 msgid "WARN or NOWARN expected on MISSING subcommand."
 msgstr ""
 
-#: src/file-type.c:541
+#: src/file-type.c:535
 msgid "YES or NO expected on SPREAD subcommand."
 msgstr ""
 
 msgid "YES or NO expected on SPREAD subcommand."
 msgstr ""
 
-#: src/file-type.c:581
+#: src/file-type.c:593
 msgid "No input commands (DATA LIST, REPEATING DATA) on above RECORD TYPE."
 msgstr ""
 
 msgid "No input commands (DATA LIST, REPEATING DATA) on above RECORD TYPE."
 msgstr ""
 
-#: src/file-type.c:588
+#: src/file-type.c:600
 msgid "No commands between FILE TYPE and END FILE TYPE."
 msgstr ""
 
 msgid "No commands between FILE TYPE and END FILE TYPE."
 msgstr ""
 
-#: src/file-type.c:654
+#: src/file-type.c:669
 #, c-format
 msgid "Unknown record type \"%.*s\"."
 msgstr ""
 
 #, c-format
 msgid "Unknown record type \"%.*s\"."
 msgstr ""
 
-#: src/file-type.c:678
+#: src/file-type.c:693
 #, c-format
 msgid "Unknown record type %g."
 msgstr ""
 
 #, c-format
 msgid "Unknown record type %g."
 msgstr ""
 
-#: src/flip.c:162
+#: src/flip.c:210
 #, c-format
 msgid "Could not create acceptable variant for variable %s."
 msgstr ""
 
 #, c-format
 msgid "Could not create acceptable variant for variable %s."
 msgstr ""
 
-#: src/flip.c:178
+#: src/flip.c:226
 msgid "Cannot create more than 99999 variable names."
 msgstr ""
 
 msgid "Cannot create more than 99999 variable names."
 msgstr ""
 
-#: src/flip.c:293
-#, c-format
-msgid "Error reading FLIP source file: %s."
-msgstr ""
-
-#: src/flip.c:380
+#: src/flip.c:270
 msgid "Could not create temporary file for FLIP."
 msgstr ""
 
 msgid "Could not create temporary file for FLIP."
 msgstr ""
 
-#: src/flip.c:390 src/flip.c:409
+#: src/flip.c:277 src/flip.c:339
 #, c-format
 msgid "Error writing FLIP file: %s."
 msgstr ""
 
 #, c-format
 msgid "Error writing FLIP file: %s."
 msgstr ""
 
-#: src/flip.c:445
-msgid "Error creating FLIP source file."
-msgstr ""
-
-#: src/flip.c:448
+#: src/flip.c:381
 #, c-format
 msgid "Error rewinding FLIP file: %s."
 msgstr ""
 
 #, c-format
 msgid "Error rewinding FLIP file: %s."
 msgstr ""
 
-#: src/flip.c:457
+#: src/flip.c:385
+msgid "Error creating FLIP source file."
+msgstr ""
+
+#: src/flip.c:394
 #, c-format
 msgid "Error reading FLIP file: %s."
 msgstr ""
 
 #, c-format
 msgid "Error reading FLIP file: %s."
 msgstr ""
 
-#: src/flip.c:469
+#: src/flip.c:406
 #, c-format
 msgid "Error seeking FLIP source file: %s."
 msgstr ""
 
 #, c-format
 msgid "Error seeking FLIP source file: %s."
 msgstr ""
 
-#: src/flip.c:474
+#: src/flip.c:411
 #, c-format
 msgid "Error writing FLIP source file: %s."
 msgstr ""
 
 #, c-format
 msgid "Error writing FLIP source file: %s."
 msgstr ""
 
-#: src/flip.c:482
+#: src/flip.c:422
 #, c-format
 msgid "Error rewind FLIP source file: %s."
 msgstr ""
 
 #, c-format
 msgid "Error rewind FLIP source file: %s."
 msgstr ""
 
-#: src/format.c:74
+#: src/flip.c:470
+#, c-format
+msgid "Error reading FLIP temporary file: %s."
+msgstr ""
+
+#: src/flip.c:473
+msgid "Unexpected end of file reading FLIP temporary file."
+msgstr ""
+
+#: src/format.c:69
 msgid "X and T format specifiers not allowed here."
 msgstr ""
 
 msgid "X and T format specifiers not allowed here."
 msgstr ""
 
-#: src/format.c:80
+#: src/format.c:76
 #, c-format
 #, c-format
-msgid "%s is not a valid data format."
+msgid "%.*s is not a valid data format."
 msgstr ""
 
 msgstr ""
 
-#: src/format.c:111
+#: src/format.c:127
 #, c-format
 msgid "Format %s may not be used as an input format."
 msgstr ""
 
 #, c-format
 msgid "Format %s may not be used as an input format."
 msgstr ""
 
-#: src/format.c:116
+#: src/format.c:132
 #, c-format
 msgid ""
 "Input format %s specifies a bad width %d.  Format %s requires a width "
 "between %d and %d."
 msgstr ""
 
 #, c-format
 msgid ""
 "Input format %s specifies a bad width %d.  Format %s requires a width "
 "between %d and %d."
 msgstr ""
 
-#: src/format.c:123
+#: src/format.c:139
 #, c-format
 msgid ""
 "Input format %s specifies an odd width %d, but format %s requires an even "
 "width between %d and %d."
 msgstr ""
 
 #, c-format
 msgid ""
 "Input format %s specifies an odd width %d, but format %s requires an even "
 "width between %d and %d."
 msgstr ""
 
-#: src/format.c:130
+#: src/format.c:146
 #, c-format
 msgid ""
 "Input format %s specifies a bad number of implied decimal places %d.  Input "
 "format %s allows up to 16 implied decimal places."
 msgstr ""
 
 #, c-format
 msgid ""
 "Input format %s specifies a bad number of implied decimal places %d.  Input "
 "format %s allows up to 16 implied decimal places."
 msgstr ""
 
-#: src/format.c:150
+#: src/format.c:169
 #, c-format
 msgid ""
 "Output format %s specifies a bad width %d.  Format %s requires a width "
 "between %d and %d."
 msgstr ""
 
 #, c-format
 msgid ""
 "Output format %s specifies a bad width %d.  Format %s requires a width "
 "between %d and %d."
 msgstr ""
 
-#: src/format.c:160
+#: src/format.c:179
 #, c-format
 msgid ""
 "Output format %s requires minimum width %d to allow %d decimal places.  Try %"
 "s%d.%d instead of %s."
 msgstr ""
 
 #, c-format
 msgid ""
 "Output format %s requires minimum width %d to allow %d decimal places.  Try %"
 "s%d.%d instead of %s."
 msgstr ""
 
-#: src/format.c:168
+#: src/format.c:187
 #, c-format
 msgid ""
 "Output format %s specifies an odd width %d, but output format %s requires an "
 "even width between %d and %d."
 msgstr ""
 
 #, c-format
 msgid ""
 "Output format %s specifies an odd width %d, but output format %s requires an "
 "even width between %d and %d."
 msgstr ""
 
-#: src/format.c:175
+#: src/format.c:194
 #, c-format
 msgid ""
 "Output format %s specifies a bad number of implied decimal places %d.  "
 "Output format %s allows a number of implied decimal places between 1 and 16."
 msgstr ""
 
 #, c-format
 msgid ""
 "Output format %s specifies a bad number of implied decimal places %d.  "
 "Output format %s allows a number of implied decimal places between 1 and 16."
 msgstr ""
 
-#: src/format.c:192
+#: src/format.c:211
 #, c-format
 msgid "Can't display a string variable of width %d with format specifier %s."
 msgstr ""
 
 #, c-format
 msgid "Can't display a string variable of width %d with format specifier %s."
 msgstr ""
 
-#: src/format.c:302
+#: src/format.c:329
 msgid "Format specifier expected."
 msgstr ""
 
 msgid "Format specifier expected."
 msgstr ""
 
-#: src/format.c:313
+#: src/format.c:340
 #, c-format
 msgid "Data format %s does not specify a width."
 msgstr ""
 
 #, c-format
 msgid "Data format %s does not specify a width."
 msgstr ""
 
-#: src/format.c:330
+#: src/format.c:357
 #, c-format
 msgid "Data format %s is not valid."
 msgstr ""
 #, c-format
 msgid "Data format %s is not valid."
 msgstr ""
@@ -2304,316 +1692,21 @@ msgstr ""
 msgid "  Name      Print         Write\n"
 msgstr ""
 
 msgid "  Name      Print         Write\n"
 msgstr ""
 
-#: frequencies.c:294
-msgid "ONEPAGE specifier of FORMAT subcommand requires an integer argument."
-msgstr ""
-
-#: frequencies.c:300
-msgid "Bad argument for ONEPAGE specifier of FORMAT subcommand."
-msgstr ""
-
-#: frequencies.c:306
-msgid "`)' expected after argument for ONEPAGE specifier of FORMAT."
+#: src/get.c:112
+#, c-format
+msgid "GET translation table from file to memory:\n"
 msgstr ""
 
 msgstr ""
 
-#: frequencies.c:318
-msgid "`(' expected after LIMIT specifier of FORMAT subcommand."
+#: src/get.c:117 src/get.c:1416
+#, c-format
+msgid "  %8s from %3d,%3d to %3d,%3d\n"
 msgstr ""
 
 msgstr ""
 
-#: frequencies.c:323
-msgid "LIMIT specifier of FORMAT subcommand requires an integer argument."
+#: src/get.c:371
+msgid "All variables deleted from system file dictionary."
 msgstr ""
 
 msgstr ""
 
-#: frequencies.c:329
-msgid "Bad argument for LIMIT specifier of FORMAT subcommand."
-msgstr ""
-
-#: frequencies.c:335
-msgid "`)' expected after argument for LIMIT specifier of FORMAT."
-msgstr ""
-
-#: frequencies.c:399
-msgid "`(' expected after MINIMUM specifier of BARCHART subcommand."
-msgstr ""
-
-#: frequencies.c:404
-msgid "Number expected after MINIMUM specifier of BARCHART subcommand."
-msgstr ""
-
-#: frequencies.c:411
-msgid "`)' expected after argument for MINIMUM specifier of BARCHART."
-msgstr ""
-
-#: frequencies.c:419
-msgid "`(' expected after MAXIMUM specifier of BARCHART subcommand."
-msgstr ""
-
-#: frequencies.c:424
-msgid "Number expected after MAXIMUM specifier of BARCHART subcommand."
-msgstr ""
-
-#: frequencies.c:431
-msgid "`)' expected after argument for MAXIMUM specifier of BARCHART."
-msgstr ""
-
-#: frequencies.c:442
-msgid "FREQ specifier of BARCHART subcommand requires an integer argument."
-msgstr ""
-
-#: frequencies.c:448
-msgid "Bad argument for FREQ specifier of BARCHART subcommand."
-msgstr ""
-
-#: frequencies.c:454
-msgid "`)' expected after argument for FREQ specifier of BARCHART."
-msgstr ""
-
-#: frequencies.c:466
-msgid "PERCENT specifier of BARCHART subcommand requires an integer argument."
-msgstr ""
-
-#: frequencies.c:472
-msgid "Bad argument for PERCENT specifier of BARCHART subcommand."
-msgstr ""
-
-#: frequencies.c:478
-msgid "`)' expected after argument for PERCENT specifier of BARCHART."
-msgstr ""
-
-#: frequencies.c:501
-msgid "`(' expected after MINIMUM specifier of HISTOGRAM subcommand."
-msgstr ""
-
-#: frequencies.c:506
-msgid "Number expected after MINIMUM specifier of HISTOGRAM subcommand."
-msgstr ""
-
-#: frequencies.c:513
-msgid "`)' expected after argument for MINIMUM specifier of HISTOGRAM."
-msgstr ""
-
-#: frequencies.c:521
-msgid "`(' expected after MAXIMUM specifier of HISTOGRAM subcommand."
-msgstr ""
-
-#: frequencies.c:526
-msgid "Number expected after MAXIMUM specifier of HISTOGRAM subcommand."
-msgstr ""
-
-#: frequencies.c:533
-msgid "`)' expected after argument for MAXIMUM specifier of HISTOGRAM."
-msgstr ""
-
-#: frequencies.c:544
-msgid "FREQ specifier of HISTOGRAM subcommand requires an integer argument."
-msgstr ""
-
-#: frequencies.c:550
-msgid "Bad argument for FREQ specifier of HISTOGRAM subcommand."
-msgstr ""
-
-#: frequencies.c:556
-msgid "`)' expected after argument for FREQ specifier of HISTOGRAM."
-msgstr ""
-
-#: frequencies.c:568
-msgid "PERCENT specifier of HISTOGRAM subcommand requires an integer argument."
-msgstr ""
-
-#: frequencies.c:574
-msgid "Bad argument for PERCENT specifier of HISTOGRAM subcommand."
-msgstr ""
-
-#: frequencies.c:580
-msgid "`)' expected after argument for PERCENT specifier of HISTOGRAM."
-msgstr ""
-
-#: frequencies.c:594
-msgid "`(' expected after INCREMENT specifier of HISTOGRAM subcommand."
-msgstr ""
-
-#: frequencies.c:599
-msgid "Number expected after INCREMENT specifier of HISTOGRAM subcommand."
-msgstr ""
-
-#: frequencies.c:605
-msgid "Bad argument for INCREMENT specifier of HISTOGRAM subcommand."
-msgstr ""
-
-#: frequencies.c:611
-msgid "`)' expected after argument for INCREMENT specifier of HISTOGRAM."
-msgstr ""
-
-#: frequencies.c:633
-msgid "`(' expected after MINIMUM specifier of HBAR subcommand."
-msgstr ""
-
-#: frequencies.c:638
-msgid "Number expected after MINIMUM specifier of HBAR subcommand."
-msgstr ""
-
-#: frequencies.c:645
-msgid "`)' expected after argument for MINIMUM specifier of HBAR."
-msgstr ""
-
-#: frequencies.c:653
-msgid "`(' expected after MAXIMUM specifier of HBAR subcommand."
-msgstr ""
-
-#: frequencies.c:658
-msgid "Number expected after MAXIMUM specifier of HBAR subcommand."
-msgstr ""
-
-#: frequencies.c:665
-msgid "`)' expected after argument for MAXIMUM specifier of HBAR."
-msgstr ""
-
-#: frequencies.c:676
-msgid "FREQ specifier of HBAR subcommand requires an integer argument."
-msgstr ""
-
-#: frequencies.c:682
-msgid "Bad argument for FREQ specifier of HBAR subcommand."
-msgstr ""
-
-#: frequencies.c:688
-msgid "`)' expected after argument for FREQ specifier of HBAR."
-msgstr ""
-
-#: frequencies.c:700
-msgid "PERCENT specifier of HBAR subcommand requires an integer argument."
-msgstr ""
-
-#: frequencies.c:706
-msgid "Bad argument for PERCENT specifier of HBAR subcommand."
-msgstr ""
-
-#: frequencies.c:712
-msgid "`)' expected after argument for PERCENT specifier of HBAR."
-msgstr ""
-
-#: frequencies.c:726
-msgid "`(' expected after INCREMENT specifier of HBAR subcommand."
-msgstr ""
-
-#: frequencies.c:731
-msgid "Number expected after INCREMENT specifier of HBAR subcommand."
-msgstr ""
-
-#: frequencies.c:737
-msgid "Bad argument for INCREMENT specifier of HBAR subcommand."
-msgstr ""
-
-#: frequencies.c:743
-msgid "`)' expected after argument for INCREMENT specifier of HBAR."
-msgstr ""
-
-#: frequencies.q:96 src/frequencies.q:96
-msgid "Median"
-msgstr ""
-
-#: frequencies.q:97 src/frequencies.q:97
-msgid "Mode"
-msgstr ""
-
-#: frequencies.q:268 src/frequencies.q:268
-msgid ""
-"At most one of BARCHART, HISTOGRAM, or HBAR should be given.  HBAR will be "
-"assumed.  Argument values will be given precedence increasing along the "
-"order given."
-msgstr ""
-
-#: frequencies.q:349 src/frequencies.q:349
-#, c-format
-msgid ""
-"MAX must be greater than or equal to MIN, if both are specified.  However, "
-"MIN was specified as %g and MAX as %g.  MIN and MAX will be ignored."
-msgstr ""
-
-#: frequencies.q:627 src/frequencies.q:627
-msgid ""
-"Upper limit of integer mode value range must be greater than lower limit."
-msgstr ""
-
-#: frequencies.q:639 src/frequencies.q:639
-#, c-format
-msgid "Variable %s specified multiple times on VARIABLES subcommand."
-msgstr ""
-
-#: frequencies.q:652 src/frequencies.q:652
-#, c-format
-msgid "Integer mode specified, but %s is not a numeric variable."
-msgstr ""
-
-#: frequencies.q:714 src/frequencies.q:714
-msgid "`)' expected after GROUPED interval list."
-msgstr ""
-
-#: frequencies.q:724 src/frequencies.q:724
-#, c-format
-msgid "Variables %s specified on GROUPED but not on VARIABLES."
-msgstr ""
-
-#: frequencies.q:727 src/frequencies.q:727
-#, c-format
-msgid "Variables %s specified multiple times on GROUPED subcommand."
-msgstr ""
-
-#: frequencies.q:787 src/frequencies.q:787
-msgid "Percentile list expected after PERCENTILES."
-msgstr ""
-
-#: frequencies.q:795 src/frequencies.q:795
-msgid "Percentiles must be greater than 0 and less than 100."
-msgstr ""
-
-#: frequencies.q:1000 frequencies.q:1090 frequencies.q:1091 frequencies.q:1121
-#: src/frequencies.q:1000 src/frequencies.q:1090 src/frequencies.q:1091
-#: src/frequencies.q:1121
-msgid "Cum"
-msgstr ""
-
-#: frequencies.q:1002 src/frequencies.q:1002
-msgid "Frequency"
-msgstr ""
-
-#: frequencies.q:1021 src/frequencies.q:1021
-msgid "Value Label"
-msgstr ""
-
-#: frequencies.q:1119 src/frequencies.q:1119
-msgid "Freq"
-msgstr ""
-
-#: frequencies.q:1120 frequencies.q:1122 src/frequencies.q:1120
-#: src/frequencies.q:1122
-msgid "Pct"
-msgstr ""
-
-#: frequencies.q:1277 src/frequencies.q:1277
-#, c-format
-msgid "No valid data for variable %s; statistics not displayed."
-msgstr ""
-
-#: frequencies.q:1300 src/frequencies.q:1300
-msgid "Percentile"
-msgstr ""
-
-#: src/get.c:110
-#, c-format
-msgid "GET translation table from file to memory:\n"
-msgstr ""
-
-#: src/get.c:115 src/get.c:1397
-#, c-format
-msgid "  %8s from %3d,%3d to %3d,%3d\n"
-msgstr ""
-
-#: src/get.c:349
-msgid "All variables deleted from system file dictionary."
-msgstr ""
-
-#: src/get.c:396
+#: src/get.c:418
 #, c-format
 msgid ""
 "Cannot rename %s as %s because there already exists a variable named %s.  To "
 #, c-format
 msgid ""
 "Cannot rename %s as %s because there already exists a variable named %s.  To "
@@ -2621,83 +1714,83 @@ msgid ""
 "as \"/RENAME (A=B)(B=C)(C=A)\", or equivalently, \"/RENAME (A B C=B C A)\"."
 msgstr ""
 
 "as \"/RENAME (A=B)(B=C)(C=A)\", or equivalently, \"/RENAME (A B C=B C A)\"."
 msgstr ""
 
-#: src/get.c:421
+#: src/get.c:443
 msgid "`=' expected after variable list."
 msgstr ""
 
 msgid "`=' expected after variable list."
 msgstr ""
 
-#: src/get.c:428
+#: src/get.c:450
 #, c-format
 msgid ""
 "Number of variables on left side of `=' (%d) does not match number of "
 "variables on right side (%d), in parenthesized group %d of RENAME subcommand."
 msgstr ""
 
 #, c-format
 msgid ""
 "Number of variables on left side of `=' (%d) does not match number of "
 "variables on right side (%d), in parenthesized group %d of RENAME subcommand."
 msgstr ""
 
-#: src/get.c:441
+#: src/get.c:463
 #, c-format
 msgid "Requested renaming duplicates variable name %s."
 msgstr ""
 
 #, c-format
 msgid "Requested renaming duplicates variable name %s."
 msgstr ""
 
-#: src/get.c:461
+#: src/get.c:483
 #, c-format
 msgid ""
 "\n"
 "Variables in dictionary:\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "\n"
 "Variables in dictionary:\n"
 msgstr ""
 
-#: src/get.c:582
+#: src/get.c:607
 msgid "The BY subcommand may be given once at most."
 msgstr ""
 
 msgid "The BY subcommand may be given once at most."
 msgstr ""
 
-#: src/get.c:649
+#: src/get.c:674
 msgid "The active file may not be specified more than once."
 msgstr ""
 
 msgid "The active file may not be specified more than once."
 msgstr ""
 
-#: src/get.c:658
+#: src/get.c:683
 msgid "Cannot specify the active file since no active file has been defined."
 msgstr ""
 
 msgid "Cannot specify the active file since no active file has been defined."
 msgstr ""
 
-#: src/get.c:690
+#: src/get.c:715
 msgid ""
 "IN, FIRST, and LAST subcommands may not occur before the first FILE or TABLE."
 msgstr ""
 
 msgid ""
 "IN, FIRST, and LAST subcommands may not occur before the first FILE or TABLE."
 msgstr ""
 
-#: src/get.c:722
+#: src/get.c:747
 #, c-format
 msgid "Multiple %s subcommands for a single FILE or TABLE."
 msgstr ""
 
 #, c-format
 msgid "Multiple %s subcommands for a single FILE or TABLE."
 msgstr ""
 
-#: src/get.c:732
+#: src/get.c:757
 #, c-format
 msgid "Duplicate variable name %s while creating %s variable."
 msgstr ""
 
 #, c-format
 msgid "Duplicate variable name %s while creating %s variable."
 msgstr ""
 
-#: src/get.c:746
+#: src/get.c:771
 msgid ""
 "RENAME, KEEP, and DROP subcommands may not occur before the first FILE or "
 "TABLE."
 msgstr ""
 
 msgid ""
 "RENAME, KEEP, and DROP subcommands may not occur before the first FILE or "
 "TABLE."
 msgstr ""
 
-#: src/get.c:770
+#: src/get.c:795
 msgid "The BY subcommand is required when a TABLE subcommand is given."
 msgstr ""
 
 msgid "The BY subcommand is required when a TABLE subcommand is given."
 msgstr ""
 
-#: src/get.c:791
+#: src/get.c:816
 #, c-format
 msgid "File %s lacks BY variable %s."
 msgstr ""
 
 #, c-format
 msgid "File %s lacks BY variable %s."
 msgstr ""
 
-#: src/get.c:1310
+#: src/get.c:1328
 #, c-format
 msgid ""
 "Variable %s in file %s (%s) has different type or width from the same "
 "variable in earlier file (%s)."
 msgstr ""
 
 #, c-format
 msgid ""
 "Variable %s in file %s (%s) has different type or width from the same "
 "variable in earlier file (%s)."
 msgstr ""
 
-#: src/get.c:1359
+#: src/get.c:1378
 msgid "expecting COMM or TAPE"
 msgstr ""
 
 msgid "expecting COMM or TAPE"
 msgstr ""
 
-#: src/get.c:1392
+#: src/get.c:1411
 #, c-format
 msgid "IMPORT translation table from file to memory:\n"
 msgstr ""
 #, c-format
 msgid "IMPORT translation table from file to memory:\n"
 msgstr ""
@@ -2717,7 +1810,7 @@ msgstr ""
 msgid "Opening `%s': %s."
 msgstr ""
 
 msgid "Opening `%s': %s."
 msgstr ""
 
-#: src/getline.c:330 src/html.c:330 src/postscript.c:1463
+#: src/getline.c:330 src/html.c:330 src/postscript.c:1461
 #, c-format
 msgid "Reading `%s': %s."
 msgstr ""
 #, c-format
 msgid "Reading `%s': %s."
 msgstr ""
@@ -2727,24 +1820,24 @@ msgstr ""
 msgid "Closing `%s': %s."
 msgstr ""
 
 msgid "Closing `%s': %s."
 msgstr ""
 
-#: src/glob.c:217
+#: src/glob.c:212
 msgid "data> "
 msgstr ""
 
 msgid "data> "
 msgstr ""
 
-#: src/glob.c:274
+#: src/glob.c:269
 msgid "Specify a terminal type with `setenv TERM <yourtype>'."
 msgstr ""
 
 msgid "Specify a terminal type with `setenv TERM <yourtype>'."
 msgstr ""
 
-#: src/glob.c:280
+#: src/glob.c:275
 msgid "Could not access the termcap data base."
 msgstr ""
 
 msgid "Could not access the termcap data base."
 msgstr ""
 
-#: src/glob.c:282
+#: src/glob.c:277
 #, c-format
 msgid "Terminal type `%s' is not defined."
 msgstr ""
 
 #, c-format
 msgid "Terminal type `%s' is not defined."
 msgstr ""
 
-#: src/glob.c:283
+#: src/glob.c:278
 msgid "Assuming screen of size 79x25."
 msgstr ""
 
 msgid "Assuming screen of size 79x25."
 msgstr ""
 
@@ -2896,16 +1989,6 @@ msgstr ""
 msgid "hash table:"
 msgstr ""
 
 msgid "hash table:"
 msgstr ""
 
-#: src/heap.c:167
-#, c-format
-msgid "bad ordering of keys %d and %d\n"
-msgstr ""
-
-#: src/heap.c:177
-#, c-format
-msgid "Heap contents:\n"
-msgstr ""
-
 #: src/html.c:66
 #, c-format
 msgid "HTML driver initializing as `%s'..."
 #: src/html.c:66
 #, c-format
 msgid "HTML driver initializing as `%s'..."
@@ -2927,11 +2010,11 @@ msgstr ""
 msgid "%s: %s: Opening HTML prologue..."
 msgstr ""
 
 msgid "%s: %s: Opening HTML prologue..."
 msgstr ""
 
-#: src/html.c:268 src/html.c:279 src/postscript.c:1355 src/postscript.c:1366
+#: src/html.c:268 src/html.c:279 src/postscript.c:1353 src/postscript.c:1364
 msgid "nobody"
 msgstr ""
 
 msgid "nobody"
 msgstr ""
 
-#: src/html.c:275 src/html.c:280 src/postscript.c:1362 src/postscript.c:1367
+#: src/html.c:275 src/html.c:280 src/postscript.c:1360 src/postscript.c:1365
 msgid "nowhere"
 msgstr ""
 
 msgid "nowhere"
 msgstr ""
 
@@ -2950,7 +2033,7 @@ msgstr ""
 msgid "HTML output driver: %s: %s"
 msgstr ""
 
 msgid "HTML output driver: %s: %s"
 msgstr ""
 
-#: src/html.c:402 list.q:259 src/list.q:259
+#: src/html.c:402 src/list.q:259
 #, c-format
 msgid "Cannot open first page on HTML device %s."
 msgstr ""
 #, c-format
 msgid "Cannot open first page on HTML device %s."
 msgstr ""
@@ -2959,31 +2042,31 @@ msgstr ""
 msgid "Unrecognized filename format."
 msgstr ""
 
 msgid "Unrecognized filename format."
 msgstr ""
 
-#: src/inpt-pgm.c:84
+#: src/inpt-pgm.c:86
 msgid "No matching INPUT PROGRAM command."
 msgstr ""
 
 msgid "No matching INPUT PROGRAM command."
 msgstr ""
 
-#: src/inpt-pgm.c:89
+#: src/inpt-pgm.c:91
 msgid ""
 "No data-input or transformation commands specified between INPUT PROGRAM and "
 "END INPUT PROGRAM."
 msgstr ""
 
 msgid ""
 "No data-input or transformation commands specified between INPUT PROGRAM and "
 "END INPUT PROGRAM."
 msgstr ""
 
-#: src/inpt-pgm.c:283 src/inpt-pgm.c:420
+#: src/inpt-pgm.c:295 src/inpt-pgm.c:438
 msgid ""
 "This command may only be executed between INPUT PROGRAM and END INPUT "
 "PROGRAM."
 msgstr ""
 
 msgid ""
 "This command may only be executed between INPUT PROGRAM and END INPUT "
 "PROGRAM."
 msgstr ""
 
-#: src/inpt-pgm.c:336
+#: src/inpt-pgm.c:351
 msgid "COLUMN subcommand multiply specified."
 msgstr ""
 
 msgid "COLUMN subcommand multiply specified."
 msgstr ""
 
-#: src/inpt-pgm.c:350
+#: src/inpt-pgm.c:365
 msgid "expecting file handle name"
 msgstr ""
 
 msgid "expecting file handle name"
 msgstr ""
 
-#: src/inpt-pgm.c:393
+#: src/inpt-pgm.c:410
 msgid ""
 "REREAD: Column numbers must be positive finite numbers.  Column set to 1."
 msgstr ""
 msgid ""
 "REREAD: Column numbers must be positive finite numbers.  Column set to 1."
 msgstr ""
@@ -3047,7 +2130,7 @@ msgstr ""
 msgid "The rest of this command has been discarded."
 msgstr ""
 
 msgid "The rest of this command has been discarded."
 msgstr ""
 
-#: src/lexer.c:842 src/print.c:1150
+#: src/lexer.c:842 src/print.c:1154
 #, c-format
 msgid "<ERROR>"
 msgstr ""
 #, c-format
 msgid "<ERROR>"
 msgstr ""
@@ -3093,323 +2176,228 @@ msgid ""
 "spaces."
 msgstr ""
 
 "spaces."
 msgstr ""
 
-#: list.c:131
-msgid "FROM specifier of CASES subcommand requires an integer argument."
-msgstr ""
-
-#: list.c:137
-msgid "Bad argument for FROM specifier of CASES subcommand."
-msgstr ""
-
-#: list.c:146
-msgid "BY specifier of CASES subcommand requires an integer argument."
-msgstr ""
-
-#: list.c:152
-msgid "Bad argument for BY specifier of CASES subcommand."
-msgstr ""
-
-#: list.c:162
-msgid "TO specifier of CASES subcommand requires an integer argument."
-msgstr ""
-
-#: list.c:168
-msgid "Bad argument for TO specifier of CASES subcommand."
-msgstr ""
-
-#: list.q:152 src/list.q:152
-#, c-format
-msgid ""
-"The first case (%ld) specified precedes the last case (%ld) specified.  The "
-"values will be swapped."
-msgstr ""
-
-#: list.q:160 src/list.q:160
-#, c-format
-msgid ""
-"The first case (%ld) to list is less than 1.  The value is being reset to 1."
-msgstr ""
-
-#: list.q:166 src/list.q:166
-#, c-format
-msgid ""
-"The last case (%ld) to list is less than 1.  The value is being reset to 1."
-msgstr ""
-
-#: list.q:172 src/list.q:172
-#, c-format
-msgid "The step value %ld is less than 1.  The value is being reset to 1."
-msgstr ""
-
-#: list.q:199 src/list.q:199
-msgid "`/FORMAT WEIGHT' specified, but weighting is not on."
-msgstr ""
-
-#: list.q:445 src/list.q:445
-msgid "Line"
-msgstr ""
-
-#: src/loop.c:201
+#: src/loop.c:194
 msgid "The index variable may not be a string variable."
 msgstr ""
 
 msgid "The index variable may not be a string variable."
 msgstr ""
 
-#: src/loop.c:316
+#: src/loop.c:309
 msgid "There is no LOOP command that corresponds to this END LOOP."
 msgstr ""
 
 msgid "There is no LOOP command that corresponds to this END LOOP."
 msgstr ""
 
-#: src/loop.c:516
+#: src/loop.c:512
 msgid ""
 "This command may only appear enclosed in a LOOP/END LOOP control structure."
 msgstr ""
 
 msgid ""
 "This command may only appear enclosed in a LOOP/END LOOP control structure."
 msgstr ""
 
-#: src/loop.c:522
+#: src/loop.c:518
 msgid "BREAK not enclosed in DO IF structure."
 msgstr ""
 
 msgid "BREAK not enclosed in DO IF structure."
 msgstr ""
 
-#: src/loop.c:599
+#: src/loop.c:596
 #, c-format
 msgid "%s without %s."
 msgstr ""
 
 #, c-format
 msgid "%s without %s."
 msgstr ""
 
-#: src/main.c:63
+#: src/main.c:71
 msgid "Error initializing output drivers."
 msgstr ""
 
 msgid "Error initializing output drivers."
 msgstr ""
 
-#: src/main.c:124
+#: src/main.c:132
 msgid "This command not executed."
 msgstr ""
 
 msgid "This command not executed."
 msgstr ""
 
-#: src/main.c:128
+#: src/main.c:136
 msgid ""
 "Skipping the rest of this command.  Part of this command may have been "
 "executed."
 msgstr ""
 
 msgid ""
 "Skipping the rest of this command.  Part of this command may have been "
 "executed."
 msgstr ""
 
-#: src/main.c:133
+#: src/main.c:141
 msgid ""
 "Skipping the rest of this command.  This command was fully executed up to "
 "this point."
 msgstr ""
 
 msgid ""
 "Skipping the rest of this command.  This command was fully executed up to "
 "this point."
 msgstr ""
 
-#: src/main.c:138
+#: src/main.c:146
 msgid ""
 "Trailing garbage was encountered following this command.  The command was "
 "fully executed to this point."
 msgstr ""
 
 msgid ""
 "Trailing garbage was encountered following this command.  The command was "
 "fully executed to this point."
 msgstr ""
 
-#: src/matrix-data.c:186
+#: src/matrix-data.c:191
 msgid "VARIABLES subcommand multiply specified."
 msgstr ""
 
 msgid "VARIABLES subcommand multiply specified."
 msgstr ""
 
-#: src/matrix-data.c:201
+#: src/matrix-data.c:206
 msgid "VARNAME_ cannot be explicitly specified on VARIABLES."
 msgstr ""
 
 msgid "VARNAME_ cannot be explicitly specified on VARIABLES."
 msgstr ""
 
-#: src/matrix-data.c:265
+#: src/matrix-data.c:271
 msgid "in FORMAT subcommand"
 msgstr ""
 
 msgid "in FORMAT subcommand"
 msgstr ""
 
-#: src/matrix-data.c:276
+#: src/matrix-data.c:282
 msgid "SPLIT subcommand multiply specified."
 msgstr ""
 
 msgid "SPLIT subcommand multiply specified."
 msgstr ""
 
-#: src/matrix-data.c:283
+#: src/matrix-data.c:289
 msgid "in SPLIT subcommand"
 msgstr ""
 
 msgid "in SPLIT subcommand"
 msgstr ""
 
-#: src/matrix-data.c:292
+#: src/matrix-data.c:298
 msgid "Split variable may not be named ROWTYPE_ or VARNAME_."
 msgstr ""
 
 msgid "Split variable may not be named ROWTYPE_ or VARNAME_."
 msgstr ""
 
-#: src/matrix-data.c:324
+#: src/matrix-data.c:331
 #, c-format
 msgid "Split variable %s is already another type."
 msgstr ""
 
 #, c-format
 msgid "Split variable %s is already another type."
 msgstr ""
 
-#: src/matrix-data.c:339
+#: src/matrix-data.c:346
 msgid "FACTORS subcommand multiply specified."
 msgstr ""
 
 msgid "FACTORS subcommand multiply specified."
 msgstr ""
 
-#: src/matrix-data.c:354
+#: src/matrix-data.c:361
 #, c-format
 msgid "Factor variable %s is already another type."
 msgstr ""
 
 #, c-format
 msgid "Factor variable %s is already another type."
 msgstr ""
 
-#: src/matrix-data.c:369
+#: src/matrix-data.c:376
 msgid "CELLS subcommand multiply specified."
 msgstr ""
 
 msgid "CELLS subcommand multiply specified."
 msgstr ""
 
-#: src/matrix-data.c:375 src/matrix-data.c:394
+#: src/matrix-data.c:382 src/matrix-data.c:401
 msgid "expecting positive integer"
 msgstr ""
 
 msgid "expecting positive integer"
 msgstr ""
 
-#: src/matrix-data.c:388
+#: src/matrix-data.c:395
 msgid "N subcommand multiply specified."
 msgstr ""
 
 msgid "N subcommand multiply specified."
 msgstr ""
 
-#: src/matrix-data.c:409
+#: src/matrix-data.c:416
 msgid "CONTENTS subcommand multiply specified."
 msgstr ""
 
 msgid "CONTENTS subcommand multiply specified."
 msgstr ""
 
-#: src/matrix-data.c:429
+#: src/matrix-data.c:436
 msgid "Nested parentheses not allowed."
 msgstr ""
 
 msgid "Nested parentheses not allowed."
 msgstr ""
 
-#: src/matrix-data.c:439
+#: src/matrix-data.c:446
 msgid "Mismatched right parenthesis (`(')."
 msgstr ""
 
 msgid "Mismatched right parenthesis (`(')."
 msgstr ""
 
-#: src/matrix-data.c:444
+#: src/matrix-data.c:451
 msgid "Empty parentheses not allowed."
 msgstr ""
 
 msgid "Empty parentheses not allowed."
 msgstr ""
 
-#: src/matrix-data.c:457 src/matrix-data.c:465
+#: src/matrix-data.c:464 src/matrix-data.c:472
 msgid "in CONTENTS subcommand"
 msgstr ""
 
 msgid "in CONTENTS subcommand"
 msgstr ""
 
-#: src/matrix-data.c:472
+#: src/matrix-data.c:479
 #, c-format
 msgid "Content multiply specified for %s."
 msgstr ""
 
 #, c-format
 msgid "Content multiply specified for %s."
 msgstr ""
 
-#: src/matrix-data.c:489
+#: src/matrix-data.c:496
 msgid "Missing right parenthesis."
 msgstr ""
 
 msgid "Missing right parenthesis."
 msgstr ""
 
-#: src/matrix-data.c:509
+#: src/matrix-data.c:516
 msgid "Missing VARIABLES subcommand."
 msgstr ""
 
 msgid "Missing VARIABLES subcommand."
 msgstr ""
 
-#: src/matrix-data.c:515
+#: src/matrix-data.c:522
 msgid ""
 "CONTENTS subcommand not specified: assuming file contains only CORR matrix."
 msgstr ""
 
 msgid ""
 "CONTENTS subcommand not specified: assuming file contains only CORR matrix."
 msgstr ""
 
-#: src/matrix-data.c:525
+#: src/matrix-data.c:532
 msgid ""
 "Missing CELLS subcommand.  CELLS is required when ROWTYPE_ is not given in "
 "the data and factors are present."
 msgstr ""
 
 msgid ""
 "Missing CELLS subcommand.  CELLS is required when ROWTYPE_ is not given in "
 "the data and factors are present."
 msgstr ""
 
-#: src/matrix-data.c:533
+#: src/matrix-data.c:540
 msgid "Split file values must be present in the data when ROWTYPE_ is present."
 msgstr ""
 
 msgid "Split file values must be present in the data when ROWTYPE_ is present."
 msgstr ""
 
-#: src/matrix-data.c:588
+#: src/matrix-data.c:595
 msgid "No continuous variables specified."
 msgstr ""
 
 msgid "No continuous variables specified."
 msgstr ""
 
-#: src/matrix-data.c:1002
+#: src/matrix-data.c:987
 #, c-format
 msgid "End of line expected %s while reading %s."
 msgstr ""
 
 #, c-format
 msgid "End of line expected %s while reading %s."
 msgstr ""
 
-#: src/matrix-data.c:1190
+#: src/matrix-data.c:1179
 #, c-format
 msgid "expecting value for %s %s"
 msgstr ""
 
 #, c-format
 msgid "expecting value for %s %s"
 msgstr ""
 
-#: src/matrix-data.c:1342
+#: src/matrix-data.c:1339
 #, c-format
 msgid "Syntax error expecting SPLIT FILE value %s."
 msgstr ""
 
 #, c-format
 msgid "Syntax error expecting SPLIT FILE value %s."
 msgstr ""
 
-#: src/matrix-data.c:1351
+#: src/matrix-data.c:1348
 #, c-format
 msgid "Expecting value %g for %s."
 msgstr ""
 
 #, c-format
 msgid "Expecting value %g for %s."
 msgstr ""
 
-#: src/matrix-data.c:1389 src/matrix-data.c:1823
+#: src/matrix-data.c:1387 src/matrix-data.c:1842
 #, c-format
 msgid "Syntax error expecting factor value %s."
 msgstr ""
 
 #, c-format
 msgid "Syntax error expecting factor value %s."
 msgstr ""
 
-#: src/matrix-data.c:1398
+#: src/matrix-data.c:1396
 #, c-format
 msgid "Syntax error expecting value %g for %s %s."
 msgstr ""
 
 #, c-format
 msgid "Syntax error expecting value %g for %s %s."
 msgstr ""
 
-#: src/matrix-data.c:1612
+#: src/matrix-data.c:1623
 #, c-format
 msgid "Syntax error %s expecting SPLIT FILE value."
 msgstr ""
 
 #, c-format
 msgid "Syntax error %s expecting SPLIT FILE value."
 msgstr ""
 
-#: src/matrix-data.c:1736
+#: src/matrix-data.c:1751
 #, c-format
 msgid ""
 "Expected %d lines of data for %s content; actually saw %d lines.  No data "
 "will be output for this content."
 msgstr ""
 
 #, c-format
 msgid ""
 "Expected %d lines of data for %s content; actually saw %d lines.  No data "
 "will be output for this content."
 msgstr ""
 
-#: src/matrix-data.c:1768
+#: src/matrix-data.c:1785
 #, c-format
 msgid "Multiply specified ROWTYPE_ %s."
 msgstr ""
 
 #, c-format
 msgid "Multiply specified ROWTYPE_ %s."
 msgstr ""
 
-#: src/matrix-data.c:1773
+#: src/matrix-data.c:1790
 #, c-format
 msgid "Syntax error %s expecting ROWTYPE_ string."
 msgstr ""
 
 #, c-format
 msgid "Syntax error %s expecting ROWTYPE_ string."
 msgstr ""
 
-#: src/matrix-data.c:1792
+#: src/matrix-data.c:1810
 #, c-format
 msgid "Syntax error %s."
 msgstr ""
 
 #, c-format
 msgid "Syntax error %s."
 msgstr ""
 
-#: src/matrix-data.c:1938
+#: src/matrix-data.c:1958
 #, c-format
 msgid "Duplicate specification for %s."
 msgstr ""
 
 #, c-format
 msgid "Duplicate specification for %s."
 msgstr ""
 
-#: src/matrix-data.c:1950
+#: src/matrix-data.c:1970
 #, c-format
 msgid "Too many rows of matrix data for %s."
 msgstr ""
 
 #, c-format
 msgid "Too many rows of matrix data for %s."
 msgstr ""
 
-#: src/matrix-data.c:1995
+#: src/matrix-data.c:2016
 #, c-format
 msgid "Syntax error expecting value for %s %s."
 msgstr ""
 
 #, c-format
 msgid "Syntax error expecting value for %s %s."
 msgstr ""
 
-#: means.c:210
-msgid "CROSSBREAK subcommand may be given only once."
-msgstr ""
-
-#: means.q:106 src/means.q:106
-msgid "Missing required subcommand TABLES."
-msgstr ""
-
-#: means.q:144 src/means.q:144
-msgid "TABLES or CROSSBREAK subcommand may not appear more than once."
-msgstr ""
-
-#: means.q:181 src/means.q:181
-#, c-format
-msgid ""
-"Variable %s specified on TABLES or CROSSBREAK, but not specified on "
-"VARIABLES."
-msgstr ""
-
-#: means.q:195 src/means.q:195
-#, c-format
-msgid "LOWEST and HIGHEST may not be used for independent variables (%s)."
-msgstr ""
-
-#: means.q:203 src/means.q:203
-#, c-format
-msgid ""
-"Independent variables (%s) may not have noninteger endpoints in their ranges."
-msgstr ""
-
-#: means.q:236 src/means.q:236
-msgid "VARIABLES must precede TABLES."
-msgstr ""
-
-#: means.q:293 src/means.q:293
-#, c-format
-msgid "Upper value (%g) is less than lower value (%g) on VARIABLES subcommand."
-msgstr ""
-
 #: src/mis-val.c:77
 msgid "`)' expected after value specification."
 msgstr ""
 #: src/mis-val.c:77
 msgid "`)' expected after value specification."
 msgstr ""
@@ -3574,12 +2562,12 @@ msgstr ""
 msgid "%s: Opening device description file..."
 msgstr ""
 
 msgid "%s: Opening device description file..."
 msgstr ""
 
-#: src/output.c:304 src/output.c:1164 src/postscript.c:1097
+#: src/output.c:304 src/output.c:1165 src/postscript.c:1097
 #, c-format
 msgid "Opening %s: %s."
 msgstr ""
 
 #, c-format
 msgid "Opening %s: %s."
 msgstr ""
 
-#: src/output.c:315 src/output.c:1175 src/postscript.c:1114
+#: src/output.c:315 src/output.c:1176 src/postscript.c:1112
 #, c-format
 msgid "Reading %s: %s."
 msgstr ""
 #, c-format
 msgid "Reading %s: %s."
 msgstr ""
@@ -3588,7 +2576,7 @@ msgstr ""
 msgid "Syntax error."
 msgstr ""
 
 msgid "Syntax error."
 msgstr ""
 
-#: src/output.c:347 src/postscript.c:1125
+#: src/output.c:347 src/postscript.c:1123
 #, c-format
 msgid "Closing %s: %s."
 msgstr ""
 #, c-format
 msgid "Closing %s: %s."
 msgstr ""
@@ -3616,112 +2604,112 @@ msgstr ""
 msgid "Syntax error in string constant."
 msgstr ""
 
 msgid "Syntax error in string constant."
 msgstr ""
 
-#: src/output.c:621
+#: src/output.c:622
 msgid "Syntax error in options."
 msgstr ""
 
 msgid "Syntax error in options."
 msgstr ""
 
-#: src/output.c:631
+#: src/output.c:632
 msgid "Syntax error in options (`=' expected)."
 msgstr ""
 
 msgid "Syntax error in options (`=' expected)."
 msgstr ""
 
-#: src/output.c:638
+#: src/output.c:639
 msgid "Syntax error in options (value expected after `=')."
 msgstr ""
 
 msgid "Syntax error in options (value expected after `=')."
 msgstr ""
 
-#: src/output.c:710
+#: src/output.c:711
 msgid "Driver name expected."
 msgstr ""
 
 msgid "Driver name expected."
 msgstr ""
 
-#: src/output.c:731
+#: src/output.c:732
 msgid "Class name expected."
 msgstr ""
 
 msgid "Class name expected."
 msgstr ""
 
-#: src/output.c:740
+#: src/output.c:741
 #, c-format
 msgid "Unknown output driver class `%s'."
 msgstr ""
 
 #, c-format
 msgid "Unknown output driver class `%s'."
 msgstr ""
 
-#: src/output.c:747
+#: src/output.c:748
 #, c-format
 msgid "Can't initialize output driver class `%s'."
 msgstr ""
 
 #, c-format
 msgid "Can't initialize output driver class `%s'."
 msgstr ""
 
-#: src/output.c:754
+#: src/output.c:755
 #, c-format
 msgid "Can't initialize output driver `%s' of class `%s'."
 msgstr ""
 
 #, c-format
 msgid "Can't initialize output driver `%s' of class `%s'."
 msgstr ""
 
-#: src/output.c:776
+#: src/output.c:777
 #, c-format
 msgid "Unknown device type `%s'."
 msgstr ""
 
 #, c-format
 msgid "Unknown device type `%s'."
 msgstr ""
 
-#: src/output.c:788
+#: src/output.c:789
 #, c-format
 msgid "Can't complete initialization of output driver `%s' of class `%s'."
 msgstr ""
 
 #, c-format
 msgid "Can't complete initialization of output driver `%s' of class `%s'."
 msgstr ""
 
-#: src/output.c:835
+#: src/output.c:836
 #, c-format
 msgid "Can't deinitialize output driver class `%s'."
 msgstr ""
 
 #, c-format
 msgid "Can't deinitialize output driver class `%s'."
 msgstr ""
 
-#: src/output.c:908
+#: src/output.c:909
 #, c-format
 msgid "Trying to find keyword `%s'...\n"
 msgstr ""
 
 #, c-format
 msgid "Trying to find keyword `%s'...\n"
 msgstr ""
 
-#: src/output.c:1025
+#: src/output.c:1026
 #, c-format
 msgid "Unit \"%s\" is unknown in dimension \"%s\"."
 msgstr ""
 
 #, c-format
 msgid "Unit \"%s\" is unknown in dimension \"%s\"."
 msgstr ""
 
-#: src/output.c:1040
+#: src/output.c:1041
 #, c-format
 msgid "Bad dimension \"%s\"."
 msgstr ""
 
 #, c-format
 msgid "Bad dimension \"%s\"."
 msgstr ""
 
-#: src/output.c:1066
+#: src/output.c:1067
 #, c-format
 msgid "`x' expected in paper size `%s'."
 msgstr ""
 
 #, c-format
 msgid "`x' expected in paper size `%s'."
 msgstr ""
 
-#: src/output.c:1076
+#: src/output.c:1077
 #, c-format
 msgid "Trailing garbage `%s' on paper size `%s'."
 msgstr ""
 
 #, c-format
 msgid "Trailing garbage `%s' on paper size `%s'."
 msgstr ""
 
-#: src/output.c:1125
+#: src/output.c:1126
 msgid "Paper size name must not be empty."
 msgstr ""
 
 msgid "Paper size name must not be empty."
 msgstr ""
 
-#: src/output.c:1156
+#: src/output.c:1157
 msgid "Cannot find `papersize' configuration file."
 msgstr ""
 
 msgid "Cannot find `papersize' configuration file."
 msgstr ""
 
-#: src/output.c:1160
+#: src/output.c:1161
 #, c-format
 msgid "%s: Opening paper size definition file..."
 msgstr ""
 
 #, c-format
 msgid "%s: Opening paper size definition file..."
 msgstr ""
 
-#: src/output.c:1202
+#: src/output.c:1203
 msgid "Syntax error in paper size definition."
 msgstr ""
 
 msgid "Syntax error in paper size definition."
 msgstr ""
 
-#: src/output.c:1231
+#: src/output.c:1232
 msgid "Paper size definition file read successfully."
 msgstr ""
 
 msgid "Paper size definition file read successfully."
 msgstr ""
 
-#: src/output.c:1233
+#: src/output.c:1234
 msgid "Error reading paper size definition file."
 msgstr ""
 
 msgid "Error reading paper size definition file."
 msgstr ""
 
-#: src/output.c:1302
+#: src/output.c:1303
 #, c-format
 msgid "Error closing page on %s device of %s class."
 msgstr ""
 
 #, c-format
 msgid "Error closing page on %s device of %s class."
 msgstr ""
 
-#: src/output.c:1306
+#: src/output.c:1307
 #, c-format
 msgid "Error opening page on %s device of %s class."
 msgstr ""
 #, c-format
 msgid "Error opening page on %s device of %s class."
 msgstr ""
@@ -3799,119 +2787,119 @@ msgstr ""
 msgid "Bad character in time."
 msgstr ""
 
 msgid "Bad character in time."
 msgstr ""
 
-#: src/pfm-read.c:622 src/pfm-read.c:631 src/sfm-read.c:900 src/sfm-read.c:910
+#: src/pfm-read.c:622 src/pfm-read.c:629 src/sfm-read.c:900 src/sfm-read.c:908
 #, c-format
 msgid "%s: Bad format specifier byte (%d)."
 msgstr ""
 
 #, c-format
 msgid "%s: Bad format specifier byte (%d)."
 msgstr ""
 
-#: src/pfm-read.c:633
+#: src/pfm-read.c:631
 #, c-format
 msgid "%s variable %s has %s format specifier %s."
 msgstr ""
 
 #, c-format
 msgid "%s variable %s has %s format specifier %s."
 msgstr ""
 
-#: src/pfm-read.c:634 src/print.c:608 src/sfm-read.c:914
+#: src/pfm-read.c:632 src/print.c:610 src/sfm-read.c:912
 msgid "String"
 msgstr ""
 
 msgid "String"
 msgstr ""
 
-#: src/pfm-read.c:634 src/print.c:608 src/sfm-read.c:914
+#: src/pfm-read.c:632 src/print.c:610 src/sfm-read.c:912
 msgid "Numeric"
 msgstr ""
 
 msgid "Numeric"
 msgstr ""
 
-#: src/pfm-read.c:673
+#: src/pfm-read.c:671
 msgid "Expected variable count record."
 msgstr ""
 
 msgid "Expected variable count record."
 msgstr ""
 
-#: src/pfm-read.c:677
+#: src/pfm-read.c:675
 #, c-format
 msgid "Invalid number of variables %d."
 msgstr ""
 
 #, c-format
 msgid "Invalid number of variables %d."
 msgstr ""
 
-#: src/pfm-read.c:687
+#: src/pfm-read.c:685
 #, c-format
 msgid "Unexpected flag value %d."
 msgstr ""
 
 #, c-format
 msgid "Unexpected flag value %d."
 msgstr ""
 
-#: src/pfm-read.c:701
+#: src/pfm-read.c:699
 #, c-format
 msgid "Weight variable name (%s) truncated."
 msgstr ""
 
 #, c-format
 msgid "Weight variable name (%s) truncated."
 msgstr ""
 
-#: src/pfm-read.c:716
+#: src/pfm-read.c:714
 msgid "Expected variable record."
 msgstr ""
 
 msgid "Expected variable record."
 msgstr ""
 
-#: src/pfm-read.c:722
+#: src/pfm-read.c:720
 #, c-format
 msgid "Invalid variable width %d."
 msgstr ""
 
 #, c-format
 msgid "Invalid variable width %d."
 msgstr ""
 
-#: src/pfm-read.c:740
+#: src/pfm-read.c:738
 #, c-format
 msgid "position %d: Variable name has %u characters."
 msgstr ""
 
 #, c-format
 msgid "position %d: Variable name has %u characters."
 msgstr ""
 
-#: src/pfm-read.c:744
+#: src/pfm-read.c:742
 #, c-format
 msgid "position %d: Variable name begins with invalid character."
 msgstr ""
 
 #, c-format
 msgid "position %d: Variable name begins with invalid character."
 msgstr ""
 
-#: src/pfm-read.c:748
+#: src/pfm-read.c:746
 #, c-format
 msgid "position %d: Variable name begins with lowercase letter %c."
 msgstr ""
 
 #, c-format
 msgid "position %d: Variable name begins with lowercase letter %c."
 msgstr ""
 
-#: src/pfm-read.c:761
+#: src/pfm-read.c:759
 #, c-format
 msgid "position %d: Variable name character %d is lowercase letter %c."
 msgstr ""
 
 #, c-format
 msgid "position %d: Variable name character %d is lowercase letter %c."
 msgstr ""
 
-#: src/pfm-read.c:771
+#: src/pfm-read.c:769
 #, c-format
 msgid "position %d: character `\\%03o' is not valid in a variable name."
 msgstr ""
 
 #, c-format
 msgid "position %d: character `\\%03o' is not valid in a variable name."
 msgstr ""
 
-#: src/pfm-read.c:782
+#: src/pfm-read.c:780
 #, c-format
 msgid "Duplicate variable name %s."
 msgstr ""
 
 #, c-format
 msgid "Duplicate variable name %s."
 msgstr ""
 
-#: src/pfm-read.c:826
+#: src/pfm-read.c:824
 #, c-format
 msgid "Bad missing values for %s."
 msgstr ""
 
 #, c-format
 msgid "Bad missing values for %s."
 msgstr ""
 
-#: src/pfm-read.c:849
+#: src/pfm-read.c:847
 #, c-format
 msgid "Weighting variable %s not present in dictionary."
 msgstr ""
 
 #, c-format
 msgid "Weighting variable %s not present in dictionary."
 msgstr ""
 
-#: src/pfm-read.c:922
+#: src/pfm-read.c:920
 #, c-format
 msgid "Unknown variable %s while parsing value labels."
 msgstr ""
 
 #, c-format
 msgid "Unknown variable %s while parsing value labels."
 msgstr ""
 
-#: src/pfm-read.c:925
+#: src/pfm-read.c:923
 #, c-format
 msgid ""
 "Cannot assign value labels to %s and %s, which have different variable types "
 "or widths."
 msgstr ""
 
 #, c-format
 msgid ""
 "Cannot assign value labels to %s and %s, which have different variable types "
 "or widths."
 msgstr ""
 
-#: src/pfm-read.c:958
+#: src/pfm-read.c:956
 #, c-format
 msgid "Duplicate label for value %g for variable %s."
 msgstr ""
 
 #, c-format
 msgid "Duplicate label for value %g for variable %s."
 msgstr ""
 
-#: src/pfm-read.c:961
+#: src/pfm-read.c:959
 #, c-format
 msgid "Duplicate label for value `%.*s' for variable %s."
 msgstr ""
 
 #, c-format
 msgid "Duplicate label for value `%.*s' for variable %s."
 msgstr ""
 
-#: src/pfm-read.c:1031
+#: src/pfm-read.c:1029
 msgid "End of file midway through case."
 msgstr ""
 
 msgid "End of file midway through case."
 msgstr ""
 
-#: src/pfm-read.c:1041
+#: src/pfm-read.c:1039
 msgid "reading as a portable file"
 msgstr ""
 
 msgid "reading as a portable file"
 msgstr ""
 
@@ -4039,118 +3027,124 @@ msgstr ""
 msgid "%s: %s: Opening PostScript encoding list file."
 msgstr ""
 
 msgid "%s: %s: Opening PostScript encoding list file."
 msgstr ""
 
-#: src/postscript.c:1127
+#: src/postscript.c:1125
 #, c-format
 msgid "%s: PostScript encoding list file read successfully."
 msgstr ""
 
 #, c-format
 msgid "%s: PostScript encoding list file read successfully."
 msgstr ""
 
-#: src/postscript.c:1141
+#: src/postscript.c:1139
 msgid "<<default encoding>>"
 msgstr ""
 
 msgid "<<default encoding>>"
 msgstr ""
 
-#: src/postscript.c:1299
+#: src/postscript.c:1297
 msgid ""
 "Cannot find PostScript prologue.  The use of `-vv' on the command line is "
 "suggested as a debugging aid."
 msgstr ""
 
 msgid ""
 "Cannot find PostScript prologue.  The use of `-vv' on the command line is "
 "suggested as a debugging aid."
 msgstr ""
 
-#: src/postscript.c:1304
+#: src/postscript.c:1302
 #, c-format
 msgid "%s: %s: Opening PostScript prologue..."
 msgstr ""
 
 #, c-format
 msgid "%s: %s: Opening PostScript prologue..."
 msgstr ""
 
-#: src/postscript.c:1476
+#: src/postscript.c:1474
 #, c-format
 msgid "%s: PostScript prologue read successfully."
 msgstr ""
 
 #, c-format
 msgid "%s: PostScript prologue read successfully."
 msgstr ""
 
-#: src/postscript.c:1480
+#: src/postscript.c:1478
 #, c-format
 msgid "%s: Error reading PostScript prologue."
 msgstr ""
 
 #, c-format
 msgid "%s: Error reading PostScript prologue."
 msgstr ""
 
-#: src/postscript.c:1650
+#: src/postscript.c:1648
 #, c-format
 msgid "PostScript output driver: %s: %s"
 msgstr ""
 
 #, c-format
 msgid "PostScript output driver: %s: %s"
 msgstr ""
 
-#: src/postscript.c:2334
+#: src/postscript.c:2332
 #, c-format
 msgid "PostScript driver: Cannot find encoding `%s' for PostScript font `%s'."
 msgstr ""
 
 #, c-format
 msgid "PostScript driver: Cannot find encoding `%s' for PostScript font `%s'."
 msgstr ""
 
-#: src/print.c:186
+#: src/print.c:188
 msgid "expecting a valid subcommand"
 msgstr ""
 
 msgid "expecting a valid subcommand"
 msgstr ""
 
-#: src/print.c:366 src/print.c:383
+#: src/print.c:368 src/print.c:385
 #, c-format
 msgid "%g is not a valid column location."
 msgstr ""
 
 #, c-format
 msgid "%g is not a valid column location."
 msgstr ""
 
-#: src/print.c:377
+#: src/print.c:379
 #, c-format
 msgid "Column location expected following `%d-'."
 msgstr ""
 
 #, c-format
 msgid "Column location expected following `%d-'."
 msgstr ""
 
-#: src/print.c:388
+#: src/print.c:390
 #, c-format
 msgid ""
 "%d-%ld is not a valid column range.  The second column must be greater than "
 "or equal to the first."
 msgstr ""
 
 #, c-format
 msgid ""
 "%d-%ld is not a valid column range.  The second column must be greater than "
 "or equal to the first."
 msgstr ""
 
-#: src/print.c:494
+#: src/print.c:496
 #, c-format
 msgid ""
 "%s is not of the same type as %s.  To specify variables of different types "
 "in the same variable list, use a FORTRAN-like format specifier."
 msgstr ""
 
 #, c-format
 msgid ""
 "%s is not of the same type as %s.  To specify variables of different types "
 "in the same variable list, use a FORTRAN-like format specifier."
 msgstr ""
 
-#: src/print.c:524
+#: src/print.c:526
 msgid ""
 "The ending column for a field must not be less than the starting column."
 msgstr ""
 
 msgid ""
 "The ending column for a field must not be less than the starting column."
 msgstr ""
 
-#: src/print.c:607
+#: src/print.c:609
 #, c-format
 msgid "%s variables cannot be displayed with format %s."
 msgstr ""
 
 #, c-format
 msgid "%s variables cannot be displayed with format %s."
 msgstr ""
 
-#: src/print.c:694
+#: src/print.c:687
+msgid ""
+"The number of format specifications exceeds the number of variable names "
+"given."
+msgstr ""
+
+#: src/print.c:696
 #, c-format
 msgid "Display format %s may not be used with a %s variable."
 msgstr ""
 
 #, c-format
 msgid "Display format %s may not be used with a %s variable."
 msgstr ""
 
-#: src/print.c:844
+#: src/print.c:846
 #, c-format
 msgid "Writing %3d records to file %s."
 msgstr ""
 
 #, c-format
 msgid "Writing %3d records to file %s."
 msgstr ""
 
-#: src/print.c:845
+#: src/print.c:847
 #, c-format
 msgid "Writing %3d records to the listing file."
 msgstr ""
 
 #, c-format
 msgid "Writing %3d records to the listing file."
 msgstr ""
 
-#: src/print.c:1039
+#: src/print.c:1042
 msgid "A file name or handle was expected in the OUTFILE subcommand."
 msgstr ""
 
 msgid "A file name or handle was expected in the OUTFILE subcommand."
 msgstr ""
 
-#: src/print.c:1091
+#: src/print.c:1095
 #, c-format
 msgid ""
 "The expression on PRINT SPACE evaluated to %d.  It's not possible to PRINT "
 "SPACE a negative number of lines."
 msgstr ""
 
 #, c-format
 msgid ""
 "The expression on PRINT SPACE evaluated to %d.  It's not possible to PRINT "
 "SPACE a negative number of lines."
 msgstr ""
 
-#: src/recode.c:287
+#: src/recode.c:288
 #, c-format
 msgid ""
 "%d variable(s) cannot be recoded into %d variable(s).  Specify the same "
 "number of variables as input and output variables."
 msgstr ""
 
 #, c-format
 msgid ""
 "%d variable(s) cannot be recoded into %d variable(s).  Specify the same "
 "number of variables as input and output variables."
 msgstr ""
 
-#: src/recode.c:301
+#: src/recode.c:302
 #, c-format
 msgid ""
 "There is no string variable named %s.  (All string variables specified on "
 #, c-format
 msgid ""
 "There is no string variable named %s.  (All string variables specified on "
@@ -4158,56 +3152,60 @@ msgid ""
 "variable.)"
 msgstr ""
 
 "variable.)"
 msgstr ""
 
-#: src/recode.c:310
+#: src/recode.c:311
 #, c-format
 msgid ""
 "Type mismatch between input and output variables.  Output variable %s is not "
 "a string variable, but all the input variables are string variables."
 msgstr ""
 
 #, c-format
 msgid ""
 "Type mismatch between input and output variables.  Output variable %s is not "
 "a string variable, but all the input variables are string variables."
 msgstr ""
 
-#: src/recode.c:329
+#: src/recode.c:330
 #, c-format
 msgid "Type mismatch after INTO: %s is not a numeric variable."
 msgstr ""
 
 #, c-format
 msgid "Type mismatch after INTO: %s is not a numeric variable."
 msgstr ""
 
-#: src/recode.c:359
+#: src/recode.c:360
 msgid ""
 "INTO must be used when the input values are numeric and output values are "
 "string."
 msgstr ""
 
 msgid ""
 "INTO must be used when the input values are numeric and output values are "
 "string."
 msgstr ""
 
-#: src/recode.c:367
+#: src/recode.c:368
 msgid ""
 "INTO must be used when the input values are string and output values are "
 "numeric."
 msgstr ""
 
 msgid ""
 "INTO must be used when the input values are string and output values are "
 "numeric."
 msgstr ""
 
-#: src/recode.c:501
+#: src/recode.c:493
+msgid "expecting output value"
+msgstr ""
+
+#: src/recode.c:507
 msgid ""
 "Inconsistent output types.  The output values must be all numeric or all "
 "string."
 msgstr ""
 
 msgid ""
 "Inconsistent output types.  The output values must be all numeric or all "
 "string."
 msgstr ""
 
-#: src/recode.c:552
+#: src/recode.c:558
 msgid "following LO THRU"
 msgstr ""
 
 msgid "following LO THRU"
 msgstr ""
 
-#: src/recode.c:568 src/recode.c:597
+#: src/recode.c:574 src/recode.c:603
 msgid "in source value"
 msgstr ""
 
 msgid "in source value"
 msgstr ""
 
-#: src/recode.c:610
+#: src/recode.c:616
 msgid ""
 "Keyword CONVERT may only be used with string input values and numeric output "
 "values."
 msgstr ""
 
 msgid ""
 "Keyword CONVERT may only be used with string input values and numeric output "
 "values."
 msgstr ""
 
-#: src/recode.c:866
+#: src/recode.c:876
 #, c-format
 msgid "!!END!!"
 msgstr ""
 
 #, c-format
 msgid "!!END!!"
 msgstr ""
 
-#: src/recode.c:887 src/recode.c:903
+#: src/recode.c:897 src/recode.c:913
 #, c-format
 msgid "!!ERROR!!"
 msgstr ""
 #, c-format
 msgid "!!ERROR!!"
 msgstr ""
@@ -4259,155 +3257,20 @@ msgstr ""
 msgid "Cannot sample %d observations from a population of %d."
 msgstr ""
 
 msgid "Cannot sample %d observations from a population of %d."
 msgstr ""
 
-#: src/sel-if.c:102
+#: src/sel-if.c:104
 msgid "The filter variable must be numeric."
 msgstr ""
 
 msgid "The filter variable must be numeric."
 msgstr ""
 
-#: src/sel-if.c:108
+#: src/sel-if.c:110
 msgid "The filter variable may not be scratch."
 msgstr ""
 
 msgid "The filter variable may not be scratch."
 msgstr ""
 
-#: src/sel-if.c:142
+#: src/sel-if.c:144
 msgid "Only last instance of this command is in effect."
 msgstr ""
 
 msgid "Only last instance of this command is in effect."
 msgstr ""
 
-#: set.c:640
-msgid "String for BLOCK must be one character long."
-msgstr ""
-
-#: set.c:658
-msgid "String for BOXSTRING must be 3 or 11 characters long."
-msgstr ""
-
-#: set.c:872
-msgid "String for ENDCMD must be one character long."
-msgstr ""
-
-#: set.c:1007
-msgid "String for HISTOGRAM must be one character long."
-msgstr ""
-
-#: set.c:1494
-msgid "String for SCRIPTTAB must be one character long."
-msgstr ""
-
-#: set.c:1529
-msgid "String for TB1 must be 3 or 11 characters long."
-msgstr ""
-
-#: set.q:216 set.q:219 set.q:237 set.q:306 set.q:312 set.q:320 set.q:327
-#: set.q:329 set.q:348 set.q:352 set.q:356 set.q:370 set.q:372 set.q:376
-#: set.q:694 set.q:775 set.q:856 src/set.q:216 src/set.q:219 src/set.q:237
-#: src/set.q:306 src/set.q:312 src/set.q:320 src/set.q:327 src/set.q:329
-#: src/set.q:348 src/set.q:352 src/set.q:356 src/set.q:370 src/set.q:372
-#: src/set.q:376 src/set.q:694 src/set.q:775 src/set.q:856
-#, c-format
-msgid "%s is obsolete."
-msgstr ""
-
-#: set.q:223 src/set.q:223
-msgid "Active file compression is not yet implemented (and probably won't be)."
-msgstr ""
-
-#: set.q:232 src/set.q:232
-msgid "CPI must be greater than 0."
-msgstr ""
-
-#: set.q:241 src/set.q:241
-msgid "LPI must be greater than 0."
-msgstr ""
-
-#: set.q:248 src/set.q:248
-msgid ""
-"CASE is not implemented and probably won't be.  If you care, complain about "
-"it."
-msgstr ""
-
-#: set.q:278 src/set.q:278
-#, c-format
-msgid "Value for MITERATE (%ld) must be greater than 0."
-msgstr ""
-
-#: set.q:286 src/set.q:286
-#, c-format
-msgid "Value for MNEST (%ld) must be greater than 0."
-msgstr ""
-
-#: set.q:294 src/set.q:294
-msgid "MXERRS must be at least 1."
-msgstr ""
-
-#: set.q:301 src/set.q:301
-msgid "MXLOOPS must be at least 1."
-msgstr ""
-
-#: set.q:390 src/set.q:390
-#, c-format
-msgid ""
-"CC%c: Length of custom currency string `%s' (%d) exceeds maximum length of "
-"16."
-msgstr ""
-
-#: set.q:412 src/set.q:412
-#, c-format
-msgid ""
-"CC%c: Custom currency string `%s' does not contain exactly three periods or "
-"commas (not both)."
-msgstr ""
-
-#: set.q:555 src/set.q:555
-msgid "LENGTH must be at least 1."
-msgstr ""
-
-#: set.q:592 src/set.q:592
-msgid "Missing identifier in RESULTS subcommand."
-msgstr ""
-
-#: set.q:603 src/set.q:603
-msgid "Unrecognized identifier in RESULTS subcommand."
-msgstr ""
-
-#: set.q:640 src/set.q:640
-msgid "WIDTH must be at least 1."
-msgstr ""
-
-#: set.q:663 src/set.q:663
-#, c-format
-msgid ""
-"FORMAT requires numeric output format as an argument.  Specified format %s "
-"is of type string."
-msgstr ""
-
-#: set.q:707 src/set.q:707
-msgid "Text color must be in range 0-15."
-msgstr "Text colour must be in range 0-15."
-
-#: set.q:720 src/set.q:720
-msgid "Background color must be in range 0-7."
-msgstr "Background colour must be in range 0-7."
-
-#: set.q:731 src/set.q:731
-msgid "Border color must be in range 0-7."
-msgstr "Border colour must be in range 0-7."
-
-#: set.q:787 src/set.q:787
-msgid "Lower window color must be between 0 and 6."
-msgstr "Lower window colour must be between 0 and 6."
-
-#: set.q:801 src/set.q:801
-msgid "Upper window color must be between 0 and 6."
-msgstr "Upper window colour must be between 0 and 6."
-
-#: set.q:813 src/set.q:813
-msgid "Frame color must be between 0 and 6."
-msgstr "Frame colour must be between 0 and 6."
-
-#: set.q:865 src/set.q:865
-msgid "Drive letter expected in WORKDEV subcommand."
-msgstr ""
-
-#: src/sfm-read.c:150
-msgid "corrupt system file: "
+#: src/sfm-read.c:150
+msgid "corrupt system file: "
 msgstr ""
 
 #: src/sfm-read.c:166 src/sfm-write.c:739
 msgstr ""
 
 #: src/sfm-read.c:166 src/sfm-write.c:739
@@ -4654,153 +3517,157 @@ msgid ""
 "file."
 msgstr ""
 
 "file."
 msgstr ""
 
-#: src/sfm-read.c:913
+#: src/sfm-read.c:911
 #, c-format
 msgid "%s: %s variable %s has %s format specifier %s."
 msgstr ""
 
 #, c-format
 msgid "%s: %s variable %s has %s format specifier %s."
 msgstr ""
 
-#: src/sfm-read.c:992
+#: src/sfm-read.c:990
 #, c-format
 msgid ""
 "%s: Variable index record (type 4) does not immediately follow value label "
 "record (type 3) as it should."
 msgstr ""
 
 #, c-format
 msgid ""
 "%s: Variable index record (type 4) does not immediately follow value label "
 "record (type 3) as it should."
 msgstr ""
 
-#: src/sfm-read.c:1002
+#: src/sfm-read.c:1000
 #, c-format
 msgid ""
 "%s: Number of variables associated with a value label (%d) is not between 1 "
 "and the number of variables (%d)."
 msgstr ""
 
 #, c-format
 msgid ""
 "%s: Number of variables associated with a value label (%d) is not between 1 "
 "and the number of variables (%d)."
 msgstr ""
 
-#: src/sfm-read.c:1018
+#: src/sfm-read.c:1016
 #, c-format
 msgid ""
 "%s: Variable index associated with value label (%d) is not between 1 and the "
 "number of values (%d)."
 msgstr ""
 
 #, c-format
 msgid ""
 "%s: Variable index associated with value label (%d) is not between 1 and the "
 "number of values (%d)."
 msgstr ""
 
-#: src/sfm-read.c:1025
+#: src/sfm-read.c:1023
 #, c-format
 msgid ""
 "%s: Variable index associated with value label (%d) refers to a continuation "
 "of a string variable, not to an actual variable."
 msgstr ""
 
 #, c-format
 msgid ""
 "%s: Variable index associated with value label (%d) refers to a continuation "
 "of a string variable, not to an actual variable."
 msgstr ""
 
-#: src/sfm-read.c:1029
+#: src/sfm-read.c:1027
 #, c-format
 msgid "%s: Value labels are not allowed on long string variables (%s)."
 msgstr ""
 
 #, c-format
 msgid "%s: Value labels are not allowed on long string variables (%s)."
 msgstr ""
 
-#: src/sfm-read.c:1039
+#: src/sfm-read.c:1037
 #, c-format
 msgid ""
 "%s: Variables associated with value label are not all of identical type.  "
 "Variable %s has %s type, but variable %s has %s type."
 msgstr ""
 
 #, c-format
 msgid ""
 "%s: Variables associated with value label are not all of identical type.  "
 "Variable %s has %s type, but variable %s has %s type."
 msgstr ""
 
-#: src/sfm-read.c:1079
+#: src/sfm-read.c:1077
 #, c-format
 msgid "%s: File contains duplicate label for value %g for variable %s."
 msgstr ""
 
 #, c-format
 msgid "%s: File contains duplicate label for value %g for variable %s."
 msgstr ""
 
-#: src/sfm-read.c:1082
+#: src/sfm-read.c:1080
 #, c-format
 msgid "%s: File contains duplicate label for value `%.*s' for variable %s."
 msgstr ""
 
 #, c-format
 msgid "%s: File contains duplicate label for value `%.*s' for variable %s."
 msgstr ""
 
-#: src/sfm-read.c:1119 src/sfm-read.c:1394
+#: src/sfm-read.c:1117 src/sfm-read.c:1392
 #, c-format
 msgid "%s: Reading system file: %s."
 msgstr ""
 
 #, c-format
 msgid "%s: Reading system file: %s."
 msgstr ""
 
-#: src/sfm-read.c:1121 src/sfm-read.c:1303 src/sfm-read.c:1344
+#: src/sfm-read.c:1119 src/sfm-read.c:1301 src/sfm-read.c:1342
 #, c-format
 msgid "%s: Unexpected end of file."
 msgstr ""
 
 #, c-format
 msgid "%s: Unexpected end of file."
 msgstr ""
 
-#: src/sfm-read.c:1139
+#: src/sfm-read.c:1137
 #, c-format
 msgid "%s: System file contains multiple type 6 (document) records."
 msgstr ""
 
 #, c-format
 msgid "%s: System file contains multiple type 6 (document) records."
 msgstr ""
 
-#: src/sfm-read.c:1144
+#: src/sfm-read.c:1142
 #, c-format
 msgid "%s: Number of document lines (%ld) must be greater than 0."
 msgstr ""
 
 #, c-format
 msgid "%s: Number of document lines (%ld) must be greater than 0."
 msgstr ""
 
-#: src/sfm-read.c:1168
+#: src/sfm-read.c:1166
 msgid "dictionary:\n"
 msgstr ""
 
 msgid "dictionary:\n"
 msgstr ""
 
-#: src/sfm-read.c:1176
+#: src/sfm-read.c:1174
 msgid "num"
 msgstr ""
 
 msgid "num"
 msgstr ""
 
-#: src/sfm-read.c:1177
+#: src/sfm-read.c:1175
 msgid "str"
 msgstr ""
 
 msgid "str"
 msgstr ""
 
-#: src/sfm-read.c:1180
+#: src/sfm-read.c:1178
 msgid "left"
 msgstr ""
 
 msgid "left"
 msgstr ""
 
-#: src/sfm-read.c:1180
+#: src/sfm-read.c:1178
 msgid "right"
 msgstr ""
 
 msgid "right"
 msgstr ""
 
-#: src/sfm-read.c:1186
+#: src/sfm-read.c:1184
 msgid "none"
 msgstr ""
 
 msgid "none"
 msgstr ""
 
-#: src/sfm-read.c:1190
+#: src/sfm-read.c:1188
 msgid "one"
 msgstr ""
 
 msgid "one"
 msgstr ""
 
-#: src/sfm-read.c:1194
+#: src/sfm-read.c:1192
 msgid "two"
 msgstr ""
 
 msgid "two"
 msgstr ""
 
-#: src/sfm-read.c:1198
+#: src/sfm-read.c:1196
 msgid "three"
 msgstr ""
 
 msgid "three"
 msgstr ""
 
-#: src/sfm-read.c:1206
+#: src/sfm-read.c:1200 src/descript.q:166
+msgid "range"
+msgstr ""
+
+#: src/sfm-read.c:1204
 msgid "low"
 msgstr ""
 
 msgid "low"
 msgstr ""
 
-#: src/sfm-read.c:1210
+#: src/sfm-read.c:1208
 msgid "high"
 msgstr ""
 
 msgid "high"
 msgstr ""
 
-#: src/sfm-read.c:1214
+#: src/sfm-read.c:1212
 msgid "range+1"
 msgstr ""
 
 msgid "range+1"
 msgstr ""
 
-#: src/sfm-read.c:1218
+#: src/sfm-read.c:1216
 msgid "low+1"
 msgstr ""
 
 msgid "low+1"
 msgstr ""
 
-#: src/sfm-read.c:1222
+#: src/sfm-read.c:1220
 msgid "high+1"
 msgstr ""
 
 msgid "high+1"
 msgstr ""
 
-#: src/sfm-read.c:1256
+#: src/sfm-read.c:1254
 #, c-format
 msgid "%s: Error reading file: %s."
 msgstr ""
 
 #, c-format
 msgid "%s: Error reading file: %s."
 msgstr ""
 
-#: src/sfm-read.c:1294
+#: src/sfm-read.c:1292
 #, c-format
 msgid "%s: Compressed data is corrupted.  Data ends partway through a case."
 msgstr ""
 
 #, c-format
 msgid "%s: Compressed data is corrupted.  Data ends partway through a case."
 msgstr ""
 
-#: src/sfm-read.c:1396
+#: src/sfm-read.c:1394
 #, c-format
 msgid "%s: Partial record at end of system file."
 msgstr ""
 
 #, c-format
 msgid "%s: Partial record at end of system file."
 msgstr ""
 
-#: src/sfm-read.c:1434
+#: src/sfm-read.c:1432
 msgid "reading as a system file"
 msgstr ""
 
 msgid "reading as a system file"
 msgstr ""
 
@@ -4837,138 +3704,69 @@ msgstr ""
 msgid "writing as a system file"
 msgstr ""
 
 msgid "writing as a system file"
 msgstr ""
 
-#: src/sort.c:123
+#: src/sort.c:122
 msgid "`A' or `D' expected inside parentheses."
 msgstr ""
 
 msgid "`A' or `D' expected inside parentheses."
 msgstr ""
 
-#: src/sort.c:129
+#: src/sort.c:127
 msgid "`)' expected."
 msgstr ""
 
 msgid "`)' expected."
 msgstr ""
 
-#: src/sort.c:455
-#, c-format
-msgid "%s: Cannot create temporary directory: %s."
-msgstr ""
-
-#: src/sort.c:479
+#: src/sort.c:418
 #, c-format
 #, c-format
-msgid "%s: Error removing directory for temporary files: %s."
+msgid "%s: Creating temporary directory: %s."
 msgstr ""
 
 msgstr ""
 
-#: src/sort.c:525
+#: src/sort.c:449
 #, c-format
 #, c-format
-msgid ""
-"Out of memory.  Could not allocate room for minimum of %d cases of %d bytes "
-"each.  (PSPP workspace is currently restricted to a maximum of %d KB.)"
+msgid "Generating temporary directory name failed: %s."
 msgstr ""
 
 msgstr ""
 
-#: src/sort.c:537
+#: src/sort.c:457
 #, c-format
 #, c-format
-msgid "allocated %d cases == %d bytes\n"
+msgid "Creating temporary directory failed: %s."
 msgstr ""
 
 msgstr ""
 
-#: src/sort.c:575
+#: src/sort.c:509
 #, c-format
 #, c-format
-msgid "%s: Error writing temporary file: %s."
+msgid "%s: Error removing directory for temporary files: %s."
 msgstr ""
 
 msgstr ""
 
-#: src/sort.c:587
+#: src/sort.c:538
 #, c-format
 #, c-format
-msgid "SORT: Closing handle %d."
+msgid "%s: Error opening temporary file for %s: %s."
 msgstr ""
 
 msgstr ""
 
-#: src/sort.c:593 src/sort.c:817
+#: src/sort.c:555
 #, c-format
 msgid "%s: Error closing temporary file: %s."
 msgstr ""
 
 #, c-format
 msgid "%s: Error closing temporary file: %s."
 msgstr ""
 
-#: src/sort.c:615 src/sort.c:631
-#, c-format
-msgid "SORT: %s: Opening for writing as run %d."
-msgstr ""
-
-#: src/sort.c:637
-#, c-format
-msgid "%s: Error opening temporary file for reading: %s."
-msgstr ""
-
-#: src/sort.c:663 src/sort.c:679
-#, c-format
-msgid "%s: Error creating temporary file: %s."
-msgstr ""
-
-#: src/sort.c:821 src/sort.c:982 src/sort.c:1032 src/sort.c:1201
-#: src/sort.c:1208
+#: src/sort.c:571
 #, c-format
 msgid "%s: Error removing temporary file: %s."
 msgstr ""
 
 #, c-format
 msgid "%s: Error removing temporary file: %s."
 msgstr ""
 
-#: src/sort.c:964
-msgid "merging runs"
-msgstr ""
-
-#: src/sort.c:972
-#, c-format
-msgid " into run %d(%d)\n"
-msgstr ""
-
-#: src/sort.c:991
-msgid "Out of memory expanding Huffman priority queue."
-msgstr ""
-
-#: src/sort.c:1043
-#, c-format
-msgid "%s: Error creating temporary file for merge: %s."
-msgstr ""
-
-#: src/sort.c:1070 src/sort.c:1128
-#, c-format
-msgid "%s: Error reading temporary file in merge: %s."
-msgstr ""
-
-#: src/sort.c:1073 src/sort.c:1132
-#, c-format
-msgid "%s: Unexpected end of temporary file in merge."
-msgstr ""
-
-#: src/sort.c:1098
-#, c-format
-msgid "%s: Error writing temporary file in merge: %s."
-msgstr ""
-
-#: src/sort.c:1148 src/sort.c:1181
-#, c-format
-msgid "%s: Error closing temporary file in merge: %s."
-msgstr ""
-
-#: src/sort.c:1153
-#, c-format
-msgid "%s: Error removing temporary file in merge: %s."
-msgstr ""
-
-#: src/sort.c:1252
-#, c-format
-msgid "%s: Cannot open sort result file: %s."
-msgstr ""
-
-#: src/sort.c:1263
+#: src/sort.c:587
 #, c-format
 #, c-format
-msgid "%s: Error reading sort result file: %s."
+msgid "%s: Error writing temporary file: %s."
 msgstr ""
 
 msgstr ""
 
-#: src/sort.c:1266
+#: src/sort.c:605
 #, c-format
 #, c-format
-msgid "%s: Unexpected end of sort result file: %s."
+msgid "%s: Error reading temporary file: %s."
 msgstr ""
 
 msgstr ""
 
-#: src/sort.c:1277
+#: src/sort.c:608
 #, c-format
 #, c-format
-msgid "%s: Error closing sort result file: %s."
+msgid "%s: Unexpected end of temporary file."
 msgstr ""
 
 msgstr ""
 
-#: src/sort.c:1281
+#: src/sort.c:798 src/sort.c:1033
 #, c-format
 #, c-format
-msgid "%s: Error removing sort result file: %s."
+msgid ""
+"Out of memory.  Could not allocate room for minimum of %d cases of %d bytes "
+"each.  (PSPP workspace is currently restricted to a maximum of %d KB.)"
 msgstr ""
 
 #: src/sysfile-info.c:97
 msgstr ""
 
 #: src/sysfile-info.c:97
@@ -5040,11 +3838,11 @@ msgstr ""
 msgid "off"
 msgstr ""
 
 msgid "off"
 msgstr ""
 
-#: src/sysfile-info.c:136 src/sysfile-info.c:377
+#: src/sysfile-info.c:136 src/sysfile-info.c:375
 msgid "Description"
 msgstr ""
 
 msgid "Description"
 msgstr ""
 
-#: src/sysfile-info.c:137 src/sysfile-info.c:374
+#: src/sysfile-info.c:137 src/sysfile-info.c:373
 msgid "Position"
 msgstr ""
 
 msgid "Position"
 msgstr ""
 
@@ -5072,34 +3870,40 @@ msgstr ""
 msgid "Documents in the active file:"
 msgstr ""
 
 msgid "Documents in the active file:"
 msgstr ""
 
-#: src/sysfile-info.c:379 src/sysfile-info.c:537 src/vfm.c:1088
+#: src/sysfile-info.c:377 src/sysfile-info.c:535 src/vfm.c:1150
 msgid "Label"
 msgstr ""
 
 msgid "Label"
 msgstr ""
 
-#: src/sysfile-info.c:451
+#: src/sysfile-info.c:449
 #, c-format
 msgid "Format: %s"
 msgstr ""
 
 #, c-format
 msgid "Format: %s"
 msgstr ""
 
-#: src/sysfile-info.c:458
+#: src/sysfile-info.c:456
 #, c-format
 msgid "Print Format: %s"
 msgstr ""
 
 #, c-format
 msgid "Print Format: %s"
 msgstr ""
 
-#: src/sysfile-info.c:461
+#: src/sysfile-info.c:459
 #, c-format
 msgid "Write Format: %s"
 msgstr ""
 
 #, c-format
 msgid "Write Format: %s"
 msgstr ""
 
-#: src/sysfile-info.c:469
+#: src/sysfile-info.c:467
 msgid "Missing Values: "
 msgstr ""
 
 msgid "Missing Values: "
 msgstr ""
 
-#: src/sysfile-info.c:593
+#: src/sysfile-info.c:534 src/vfm.c:1149 src/crosstabs.q:1158
+#: src/crosstabs.q:1185 src/crosstabs.q:1205 src/crosstabs.q:1227
+#: src/frequencies.q:1009 src/frequencies.q:1126
+msgid "Value"
+msgstr ""
+
+#: src/sysfile-info.c:591
 msgid "No vectors defined."
 msgstr ""
 
 msgid "No vectors defined."
 msgstr ""
 
-#: src/sysfile-info.c:608
+#: src/sysfile-info.c:606
 msgid "Vector"
 msgstr ""
 
 msgid "Vector"
 msgstr ""
 
@@ -5148,402 +3952,1183 @@ msgstr ""
 msgid "Document entered %s %02d:%02d:%02d by %s (%s):"
 msgstr ""
 
 msgid "Document entered %s %02d:%02d:%02d by %s (%s):"
 msgstr ""
 
-#: t-test.c:131
-msgid "GROUPS subcommand may be given only once."
+#: src/val-labs.c:138
+#, c-format
+msgid ""
+"It is not possible to assign value labels to long string variables such as %"
+"s."
 msgstr ""
 
 msgstr ""
 
-#: t-test.c:153
-msgid "TESTVAL subcommand may be given only once."
+#: src/val-labs.c:176
+msgid "String expected for value."
 msgstr ""
 
 msgstr ""
 
-#: t-test.c:240
-msgid "`(' expected after CIN specifier of CRITERIA subcommand."
+#: src/val-labs.c:185
+msgid "Number expected for value."
 msgstr ""
 
 msgstr ""
 
-#: t-test.c:245
-msgid "Number expected after CIN specifier of CRITERIA subcommand."
+#: src/val-labs.c:189
+#, c-format
+msgid "Value label `%g' is not integer."
 msgstr ""
 
 msgstr ""
 
-#: t-test.c:251
-msgid "Bad argument for CIN specifier of CRITERIA subcommand."
+#: src/val-labs.c:199
+msgid "Truncating value label to 60 characters."
 msgstr ""
 
 msgstr ""
 
-#: t-test.c:257
-msgid "`)' expected after argument for CIN specifier of CRITERIA."
+#: src/val-labs.c:220
+msgid "Value labels:"
 msgstr ""
 
 msgstr ""
 
-#: t-test.q:212 src/t-test.q:212
-msgid "TESTVAL, GROUPS and PAIRS subcommands are mutually exclusive."
+#: src/val-labs.c:237
+#, c-format
+msgid "    (no value labels)\n"
 msgstr ""
 
 msgstr ""
 
-#: t-test.q:229 src/t-test.q:229
-msgid "VARIABLES subcommand is not appropriate with PAIRS"
+#: src/var-labs.c:53
+msgid "String expected for variable label."
 msgstr ""
 
 msgstr ""
 
-#: t-test.q:327 t-test.q:399 src/t-test.q:327 src/t-test.q:399
-#, c-format
-msgid "`%s' is not a variable name"
+#: src/var-labs.c:59
+msgid "Truncating variable label to 120 characters."
 msgstr ""
 
 msgstr ""
 
-#: t-test.q:340 src/t-test.q:340
+#: src/var-labs.c:87
 #, c-format
 #, c-format
-msgid "Long string variable %s is not valid here."
-msgstr ""
-
-#: t-test.q:356 src/t-test.q:356
-msgid ""
-"When applying GROUPS to a string variable, at least one value must be "
-"specified."
+msgid "Variable labels:\n"
 msgstr ""
 
 msgstr ""
 
-#: t-test.q:434 src/t-test.q:434
+#: src/var-labs.c:94
 #, c-format
 #, c-format
-msgid ""
-"PAIRED was specified but the number of variables preceding WITH (%d) did not "
-"match the number following (%d)."
+msgid "(no variable label)"
 msgstr ""
 
 msgstr ""
 
-#: t-test.q:451 src/t-test.q:451
-msgid "At least two variables must be specified on PAIRS."
+#: src/vars-prs.c:49
+#, c-format
+msgid "%s is not a variable name."
 msgstr ""
 
 msgstr ""
 
-#: t-test.q:623 src/t-test.q:623
-msgid "One-Sample Statistics"
+#: src/vars-prs.c:101
+msgid "ordinary"
 msgstr ""
 
 msgstr ""
 
-#: t-test.q:627 t-test.q:650 t-test.q:728 t-test.q:1076 src/t-test.q:627
-#: src/t-test.q:650 src/t-test.q:728 src/t-test.q:1076
-msgid "Std. Deviation"
+#: src/vars-prs.c:103
+msgid "system"
 msgstr ""
 
 msgstr ""
 
-#: t-test.q:628 t-test.q:651 t-test.q:729 src/t-test.q:628 src/t-test.q:651
-#: src/t-test.q:729
-msgid "SE. Mean"
+#: src/vars-prs.c:105
+msgid "scratch"
 msgstr ""
 
 msgstr ""
 
-#: t-test.q:645 src/t-test.q:645
-msgid "Group Statistics"
+#: src/vars-prs.c:208
+#, c-format
+msgid "%s TO %s is not valid syntax since %s precedes %s in the dictionary."
 msgstr ""
 
 msgstr ""
 
-#: t-test.q:723 src/t-test.q:723
-msgid "Paired Sample Statistics"
+#: src/vars-prs.c:218
+#, c-format
+msgid ""
+"When using the TO keyword to specify several variables, both variables must "
+"be from the same variable dictionaries, of either ordinary, scratch, or "
+"system variables.  %s is a %s variable, whereas %s is %s."
 msgstr ""
 
 msgstr ""
 
-#: t-test.q:745 t-test.q:1110 t-test.q:1330 src/t-test.q:745 src/t-test.q:1110
-#: src/t-test.q:1330
+#: src/vars-prs.c:236
 #, c-format
 #, c-format
-msgid "Pair %d"
+msgid "Scratch variables (such as %s) are not allowed here."
 msgstr ""
 
 msgstr ""
 
-#: t-test.q:865 src/t-test.q:865
-msgid "Independent Samples Test"
+#: src/vars-prs.c:259
+#, c-format
+msgid ""
+"%s is not a numeric variable.  It will not be included in the variable list."
 msgstr ""
 
 msgstr ""
 
-#: t-test.q:873 src/t-test.q:873
-msgid "Levene's Test for Equality of Variances"
+#: src/vars-prs.c:262
+#, c-format
+msgid ""
+"%s is not a string variable.  It will not be included in the variable list."
 msgstr ""
 
 msgstr ""
 
-#: t-test.q:875 src/t-test.q:875
-msgid "t-test for Equality of Means"
+#: src/vars-prs.c:266
+#, c-format
+msgid ""
+"%s and %s are not the same type.  All variables in this variable list must "
+"be of the same type.  %s will be omitted from list."
 msgstr ""
 
 msgstr ""
 
-#: t-test.q:877 src/t-test.q:877
-msgid "F"
+#: src/vars-prs.c:271
+#, c-format
+msgid "Variable %s appears twice in variable list."
 msgstr ""
 
 msgstr ""
 
-#: t-test.q:878 t-test.q:1311 src/t-test.q:878 src/t-test.q:1311
-msgid "Sig."
+#: src/vars-prs.c:351
+msgid "incorrect use of TO convention"
 msgstr ""
 
 msgstr ""
 
-#: t-test.q:879 t-test.q:1080 t-test.q:1192 src/t-test.q:879 src/t-test.q:1080
-#: src/t-test.q:1192
-msgid "t"
+#: src/vars-prs.c:398
+msgid "Scratch variables not allowed here."
 msgstr ""
 
 msgstr ""
 
-#: t-test.q:881 t-test.q:1082 t-test.q:1194 src/t-test.q:881 src/t-test.q:1082
-#: src/t-test.q:1194
-msgid "Sig. (2-tailed)"
+#: src/vars-prs.c:420
+msgid "Prefixes don't match in use of TO convention."
 msgstr ""
 
 msgstr ""
 
-#: t-test.q:882 t-test.q:1195 src/t-test.q:882 src/t-test.q:1195
-msgid "Mean Difference"
+#: src/vars-prs.c:425
+msgid "Bad bounds in use of TO convention."
 msgstr ""
 
 msgstr ""
 
-#: t-test.q:883 src/t-test.q:883
-msgid "Std. Error Difference"
+#: src/vector.c:68
+#, c-format
+msgid "Vector name %s is given twice."
 msgstr ""
 
 msgstr ""
 
-#: t-test.q:888 t-test.q:1072 t-test.q:1187 src/t-test.q:888 src/t-test.q:1072
-#: src/t-test.q:1187
+#: src/vector.c:74
 #, c-format
 #, c-format
-msgid "%d%% Confidence Interval of the Difference"
+msgid "There is already a vector with name %s."
 msgstr ""
 
 msgstr ""
 
-#: t-test.q:922 src/t-test.q:922
-msgid "Equal variances assumed"
+#: src/vector.c:95
+msgid ""
+"A slash must be used to separate each vector specification when using the "
+"long form.  Commands such as VECTOR A,B=Q1 TO Q20 are not supported."
 msgstr ""
 
 msgstr ""
 
-#: t-test.q:937 src/t-test.q:937
-#, c-format
-msgid "Error calculating F statistic (cdff returned %d)."
+#: src/vector.c:129
+msgid "Vectors must have at least one element."
 msgstr ""
 
 msgstr ""
 
-#: t-test.q:960 t-test.q:980 t-test.q:1018 t-test.q:1030 t-test.q:1131
-#: t-test.q:1157 t-test.q:1237 t-test.q:1254 t-test.q:1345 src/t-test.q:960
-#: src/t-test.q:980 src/t-test.q:1018 src/t-test.q:1030 src/t-test.q:1131
-#: src/t-test.q:1157 src/t-test.q:1237 src/t-test.q:1254 src/t-test.q:1345
+#: src/vector.c:143
 #, c-format
 #, c-format
-msgid "Error calculating T statistic (cdft returned %d)."
+msgid "%s%d is too long for a variable name."
 msgstr ""
 
 msgstr ""
 
-#: t-test.q:994 src/t-test.q:994
-msgid "Equal variances not assumed"
-msgstr ""
+#: src/vector.c:181
+msgid ""
+"The syntax for this command does not match the expected syntax for either "
+"the long form or the short form of VECTOR."
+msgstr ""
+
+#: src/vfm.c:391
+msgid "<NOVAR>"
+msgstr ""
+
+#: src/vfm.c:554
+#, c-format
+msgid ""
+"An error occurred attempting to create a temporary file for use as the "
+"active file: %s."
+msgstr ""
+
+#: src/vfm.c:579
+#, c-format
+msgid ""
+"An error occurred while attempting to write to a temporary file used as the "
+"active file: %s."
+msgstr ""
+
+#: src/vfm.c:606
+#, c-format
+msgid ""
+"An error occurred while attempting to rewind a temporary file used as the "
+"active file: %s."
+msgstr ""
+
+#: src/vfm.c:651
+#, c-format
+msgid ""
+"An error occurred while attempting to read from a temporary file created for "
+"the active file: %s."
+msgstr ""
+
+#: src/vfm.c:755
+msgid "Virtual memory exhausted.  Writing active file to disk."
+msgstr ""
+
+#: src/vfm.c:758
+#, c-format
+msgid ""
+"Workspace limit of %d KB (%d cases at %d bytes each) overflowed.  Writing "
+"active file to disk."
+msgstr ""
+
+#: src/vfm.c:778 src/vfm.c:817
+#, c-format
+msgid ""
+"An error occurred while attempting to write to a temporary file created as "
+"the active file: %s."
+msgstr ""
+
+#: src/weight.c:54
+msgid "The weighting variable must be numeric."
+msgstr ""
+
+#: src/weight.c:59
+msgid "The weighting variable may not be scratch."
+msgstr ""
+
+#: src/crosstabs.q:251
+msgid ""
+"Missing mode REPORT not allowed in general mode.  Assuming MISSING=TABLE."
+msgstr ""
+
+#: src/crosstabs.q:261
+msgid "Write mode ALL not allowed in general mode.  Assuming WRITE=CELLS."
+msgstr ""
+
+#: src/crosstabs.q:321
+msgid "expecting BY"
+msgstr ""
+
+#: src/crosstabs.q:388
+msgid "VARIABLES must be specified before TABLES."
+msgstr ""
+
+#: src/crosstabs.q:425
+#, c-format
+msgid "Maximum value (%ld) less than minimum value (%ld)."
+msgstr ""
+
+#: src/crosstabs.q:859
+msgid "Summary."
+msgstr ""
+
+#: src/crosstabs.q:861
+msgid "Cases"
+msgstr ""
+
+#: src/crosstabs.q:862 src/frequencies.q:1007
+msgid "Valid"
+msgstr ""
+
+#: src/crosstabs.q:863 src/frequencies.q:1074
+msgid "Missing"
+msgstr ""
+
+#: src/crosstabs.q:864 src/crosstabs.q:1067 src/crosstabs.q:1800
+#: src/frequencies.q:1083
+msgid "Total"
+msgstr ""
+
+#: src/crosstabs.q:874 src/t-test.q:622 src/t-test.q:645 src/t-test.q:736
+#: src/t-test.q:1318
+msgid "N"
+msgstr ""
+
+#: src/crosstabs.q:875 src/frequencies.q:1011 src/frequencies.q:1012
+#: src/frequencies.q:1013
+msgid "Percent"
+msgstr ""
+
+#: src/crosstabs.q:1117
+msgid "count"
+msgstr ""
+
+#: src/crosstabs.q:1118
+msgid "row %"
+msgstr ""
+
+#: src/crosstabs.q:1119
+msgid "column %"
+msgstr ""
+
+#: src/crosstabs.q:1120
+msgid "total %"
+msgstr ""
+
+#: src/crosstabs.q:1121
+msgid "expected"
+msgstr ""
+
+#: src/crosstabs.q:1122
+msgid "residual"
+msgstr ""
+
+#: src/crosstabs.q:1123
+msgid "std. resid."
+msgstr ""
+
+#: src/crosstabs.q:1124
+msgid "adj. resid."
+msgstr ""
+
+#: src/crosstabs.q:1157 src/crosstabs.q:1184 src/crosstabs.q:1204
+#: src/crosstabs.q:1225
+msgid "Statistic"
+msgstr ""
+
+#: src/crosstabs.q:1159 src/t-test.q:889 src/t-test.q:1090 src/t-test.q:1202
+msgid "df"
+msgstr ""
+
+#: src/crosstabs.q:1161
+msgid "Asymp. Sig. (2-sided)"
+msgstr ""
+
+#: src/crosstabs.q:1163
+msgid "Exact. Sig. (2-sided)"
+msgstr ""
+
+#: src/crosstabs.q:1165
+msgid "Exact. Sig. (1-sided)"
+msgstr ""
+
+#: src/crosstabs.q:1183 src/crosstabs.q:1224
+msgid "Category"
+msgstr ""
+
+#: src/crosstabs.q:1186 src/crosstabs.q:1228
+msgid "Asymp. Std. Error"
+msgstr ""
+
+#: src/crosstabs.q:1187 src/crosstabs.q:1229
+msgid "Approx. T"
+msgstr ""
+
+#: src/crosstabs.q:1188 src/crosstabs.q:1230
+msgid "Approx. Sig."
+msgstr ""
+
+#: src/crosstabs.q:1203
+#, c-format
+msgid " 95%% Confidence Interval"
+msgstr ""
+
+#: src/crosstabs.q:1206 src/t-test.q:893 src/t-test.q:1087 src/t-test.q:1205
+msgid "Lower"
+msgstr ""
+
+#: src/crosstabs.q:1207 src/t-test.q:894 src/t-test.q:1088 src/t-test.q:1206
+msgid "Upper"
+msgstr ""
+
+#: src/crosstabs.q:1226
+msgid "Type"
+msgstr ""
+
+#: src/crosstabs.q:1976
+msgid "Pearson Chi-Square"
+msgstr ""
+
+#: src/crosstabs.q:1977
+msgid "Likelihood Ratio"
+msgstr ""
+
+#: src/crosstabs.q:1978
+msgid "Fisher's Exact Test"
+msgstr ""
+
+#: src/crosstabs.q:1979
+msgid "Continuity Correction"
+msgstr ""
+
+#: src/crosstabs.q:1980
+msgid "Linear-by-Linear Association"
+msgstr ""
+
+#: src/crosstabs.q:2017 src/crosstabs.q:2087 src/crosstabs.q:2146
+msgid "N of Valid Cases"
+msgstr ""
+
+#: src/crosstabs.q:2033 src/crosstabs.q:2162
+msgid "Nominal by Nominal"
+msgstr ""
+
+#: src/crosstabs.q:2034 src/crosstabs.q:2163
+msgid "Ordinal by Ordinal"
+msgstr ""
+
+#: src/crosstabs.q:2035
+msgid "Interval by Interval"
+msgstr ""
+
+#: src/crosstabs.q:2036
+msgid "Measure of Agreement"
+msgstr ""
+
+#: src/crosstabs.q:2041
+msgid "Phi"
+msgstr ""
+
+#: src/crosstabs.q:2042
+msgid "Cramer's V"
+msgstr ""
+
+#: src/crosstabs.q:2043
+msgid "Contingency Coefficient"
+msgstr ""
+
+#: src/crosstabs.q:2044
+msgid "Kendall's tau-b"
+msgstr ""
+
+#: src/crosstabs.q:2045
+msgid "Kendall's tau-c"
+msgstr ""
+
+#: src/crosstabs.q:2046
+msgid "Gamma"
+msgstr ""
+
+#: src/crosstabs.q:2047
+msgid "Spearman Correlation"
+msgstr ""
+
+#: src/crosstabs.q:2048
+msgid "Pearson's R"
+msgstr ""
+
+#: src/crosstabs.q:2049
+msgid "Kappa"
+msgstr ""
+
+#: src/crosstabs.q:2119
+#, c-format
+msgid "Odds Ratio for %s (%g / %g)"
+msgstr ""
+
+#: src/crosstabs.q:2122
+#, c-format
+msgid "Odds Ratio for %s (%.*s / %.*s)"
+msgstr ""
+
+#: src/crosstabs.q:2130
+#, c-format
+msgid "For cohort %s = %g"
+msgstr ""
+
+#: src/crosstabs.q:2133
+#, c-format
+msgid "For cohort %s = %.*s"
+msgstr ""
+
+#: src/crosstabs.q:2164
+msgid "Nominal by Interval"
+msgstr ""
+
+#: src/crosstabs.q:2169
+msgid "Lambda"
+msgstr ""
+
+#: src/crosstabs.q:2170
+msgid "Goodman and Kruskal tau"
+msgstr ""
+
+#: src/crosstabs.q:2171
+msgid "Uncertainty Coefficient"
+msgstr ""
+
+#: src/crosstabs.q:2172
+msgid "Somers' d"
+msgstr ""
+
+#: src/crosstabs.q:2173
+msgid "Eta"
+msgstr ""
+
+#: src/crosstabs.q:2178
+msgid "Symmetric"
+msgstr ""
+
+#: src/crosstabs.q:2179 src/crosstabs.q:2180
+#, c-format
+msgid "%s Dependent"
+msgstr ""
+
+#: src/descript.q:151 src/frequencies.q:94 src/t-test.q:623 src/t-test.q:646
+#: src/t-test.q:735 src/t-test.q:1084
+msgid "Mean"
+msgstr ""
+
+#: src/descript.q:151
+msgid "mean"
+msgstr ""
+
+#: src/descript.q:152 src/frequencies.q:95
+msgid "S.E. Mean"
+msgstr ""
+
+#: src/descript.q:152
+msgid "S E Mean"
+msgstr ""
+
+#: src/descript.q:152
+msgid "SE"
+msgstr ""
+
+#: src/descript.q:153
+msgid "standard error of mean"
+msgstr ""
+
+#: src/descript.q:154 src/frequencies.q:98
+msgid "Std Dev"
+msgstr ""
+
+#: src/descript.q:154
+msgid "SD"
+msgstr ""
+
+#: src/descript.q:155
+msgid "standard deviation"
+msgstr ""
+
+#: src/descript.q:156 src/frequencies.q:99
+msgid "Variance"
+msgstr ""
+
+#: src/descript.q:157
+msgid "Var"
+msgstr ""
+
+#: src/descript.q:157
+msgid "variance"
+msgstr ""
+
+#: src/descript.q:158 src/frequencies.q:100
+msgid "Kurtosis"
+msgstr ""
+
+#: src/descript.q:159
+msgid "Kurt"
+msgstr ""
+
+#: src/descript.q:159
+msgid "kurtosis"
+msgstr ""
+
+#: src/descript.q:160 src/frequencies.q:101
+msgid "S.E. Kurt"
+msgstr ""
+
+#: src/descript.q:160
+msgid "S E Kurt"
+msgstr ""
+
+#: src/descript.q:160
+msgid "SEKurt"
+msgstr ""
+
+#: src/descript.q:161
+msgid "standard error of kurtosis"
+msgstr ""
+
+#: src/descript.q:162 src/frequencies.q:102
+msgid "Skewness"
+msgstr ""
+
+#: src/descript.q:162
+msgid "Skew"
+msgstr ""
+
+#: src/descript.q:163
+msgid "skewness"
+msgstr ""
+
+#: src/descript.q:164 src/frequencies.q:103
+msgid "S.E. Skew"
+msgstr ""
+
+#: src/descript.q:164
+msgid "S E Skew"
+msgstr ""
+
+#: src/descript.q:164
+msgid "SESkew"
+msgstr ""
+
+#: src/descript.q:165
+msgid "standard error of skewness"
+msgstr ""
+
+#: src/descript.q:166 src/frequencies.q:104
+msgid "Range"
+msgstr ""
+
+#: src/descript.q:166
+msgid "Rng"
+msgstr ""
+
+#: src/descript.q:167 src/frequencies.q:105
+msgid "Minimum"
+msgstr ""
+
+#: src/descript.q:167
+msgid "Min"
+msgstr ""
+
+#: src/descript.q:168
+msgid "minimum"
+msgstr ""
+
+#: src/descript.q:169 src/frequencies.q:106
+msgid "Maximum"
+msgstr ""
+
+#: src/descript.q:169
+msgid "Max"
+msgstr ""
+
+#: src/descript.q:170
+msgid "maximum"
+msgstr ""
+
+#: src/descript.q:171 src/frequencies.q:107
+msgid "Sum"
+msgstr ""
+
+#: src/descript.q:171
+msgid "sum"
+msgstr ""
+
+#: src/descript.q:212 src/list.q:144
+msgid "No variables specified."
+msgstr ""
+
+#: src/descript.q:218
+msgid "OPTIONS may not be used with SAVE, FORMAT, or MISSING."
+msgstr ""
+
+#: src/descript.q:280
+#, c-format
+msgid "It's not possible to sort on `%s' without displaying `%s'."
+msgstr ""
+
+#: src/descript.q:294
+msgid ""
+"At least one case in the data file had a weight value that was system-"
+"missing, zero, or negative.  These case(s) were ignored."
+msgstr ""
+
+#: src/descript.q:335
+msgid ""
+"Names for z-score variables must be given for individual variables, not for "
+"groups of variables."
+msgstr ""
+
+#: src/descript.q:343
+msgid "Name for z-score variable expected."
+msgstr ""
+
+#: src/descript.q:348
+#, c-format
+msgid ""
+"Z-score variable name `%s' is a duplicate variable name with a current "
+"variable."
+msgstr ""
+
+#: src/descript.q:357
+#, c-format
+msgid "Z-score variable name `%s' is used multiple times."
+msgstr ""
+
+#: src/descript.q:365
+msgid "`)' expected after z-score variable name."
+msgstr ""
+
+#: src/descript.q:425
+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 ""
+
+#: src/descript.q:454
+msgid "Mapping of variables to corresponding Z-scores."
+msgstr ""
+
+#: src/descript.q:459
+msgid "Source"
+msgstr ""
+
+#: src/descript.q:460
+msgid "Target"
+msgstr ""
+
+#: src/descript.q:548 src/descript.q:554
+msgid "Z-score of "
+msgstr ""
+
+#: src/descript.q:795
+msgid "Valid N"
+msgstr ""
+
+#: src/descript.q:796
+msgid "Missing N"
+msgstr ""
+
+#: src/descript.q:823
+#, c-format
+msgid "Valid cases = %g; cases with missing value(s) = %g."
+msgstr ""
+
+#: src/file-handle.q:72
+#, c-format
+msgid ""
+"File handle %s had already been defined to refer to file %s.  It is not "
+"possible to redefine a file handle within a session."
+msgstr ""
+
+#: src/file-handle.q:94
+msgid "The FILE HANDLE required subcommand NAME is not present."
+msgstr ""
+
+#: src/file-handle.q:107
+msgid ""
+"Fixed length records were specified on /RECFORM, but record length was not "
+"specified on /LRECL.  80-character records will be assumed."
+msgstr ""
+
+#: src/file-handle.q:114
+#, c-format
+msgid ""
+"Record length (%ld) must be at least one byte.  80-character records will be "
+"assumed."
+msgstr ""
+
+#: src/file-handle.q:126 src/file-handle.q:140
+#, c-format
+msgid ""
+"%s is not implemented, as the author doesn't know what it is supposed to "
+"do.  Send a note to %s."
+msgstr ""
+
+#: src/file-handle.q:147 src/file-handle.q:150
+#, c-format
+msgid "%s is not implemented.  If you care, complain."
+msgstr ""
+
+#: src/file-handle.q:232
+#, c-format
+msgid "File handle `%s' has not been previously declared on FILE HANDLE."
+msgstr ""
+
+#: src/file-handle.q:319
+msgid "<Inline File>"
+msgstr ""
+
+#: src/file-handle.q:338
+msgid "expecting a file name or handle"
+msgstr ""
+
+#: src/frequencies.q:96
+msgid "Median"
+msgstr ""
+
+#: src/frequencies.q:97
+msgid "Mode"
+msgstr ""
+
+#: src/frequencies.q:268
+msgid ""
+"At most one of BARCHART, HISTOGRAM, or HBAR should be given.  HBAR will be "
+"assumed.  Argument values will be given precedence increasing along the "
+"order given."
+msgstr ""
+
+#: src/frequencies.q:349
+#, c-format
+msgid ""
+"MAX must be greater than or equal to MIN, if both are specified.  However, "
+"MIN was specified as %g and MAX as %g.  MIN and MAX will be ignored."
+msgstr ""
+
+#: src/frequencies.q:632
+msgid ""
+"Upper limit of integer mode value range must be greater than lower limit."
+msgstr ""
+
+#: src/frequencies.q:644
+#, c-format
+msgid "Variable %s specified multiple times on VARIABLES subcommand."
+msgstr ""
+
+#: src/frequencies.q:657
+#, c-format
+msgid "Integer mode specified, but %s is not a numeric variable."
+msgstr ""
+
+#: src/frequencies.q:719
+msgid "`)' expected after GROUPED interval list."
+msgstr ""
+
+#: src/frequencies.q:732
+#, c-format
+msgid "Variables %s specified on GROUPED but not on VARIABLES."
+msgstr ""
 
 
-#: t-test.q:1062 src/t-test.q:1062
-msgid "Paired Samples Test"
+#: src/frequencies.q:735
+#, c-format
+msgid "Variables %s specified multiple times on GROUPED subcommand."
 msgstr ""
 
 msgstr ""
 
-#: t-test.q:1065 src/t-test.q:1065
-msgid "Paired Differences"
+#: src/frequencies.q:795
+msgid "Percentile list expected after PERCENTILES."
 msgstr ""
 
 msgstr ""
 
-#: t-test.q:1077 src/t-test.q:1077
-msgid "Std. Error Mean"
+#: src/frequencies.q:803
+msgid "Percentiles must be greater than 0 and less than 100."
 msgstr ""
 
 msgstr ""
 
-#: t-test.q:1176 src/t-test.q:1176
-msgid "One-Sample Test"
+#: src/frequencies.q:1008 src/frequencies.q:1098 src/frequencies.q:1099
+#: src/frequencies.q:1129
+msgid "Cum"
 msgstr ""
 
 msgstr ""
 
-#: t-test.q:1181 src/t-test.q:1181
-#, c-format
-msgid "Test Value = %f"
+#: src/frequencies.q:1010
+msgid "Frequency"
 msgstr ""
 
 msgstr ""
 
-#: t-test.q:1306 src/t-test.q:1306
-msgid "Paired Samples Correlations"
+#: src/frequencies.q:1029
+msgid "Value Label"
 msgstr ""
 
 msgstr ""
 
-#: t-test.q:1310 src/t-test.q:1310
-msgid "Correlation"
+#: src/frequencies.q:1127
+msgid "Freq"
+msgstr ""
+
+#: src/frequencies.q:1128 src/frequencies.q:1130
+msgid "Pct"
 msgstr ""
 
 msgstr ""
 
-#: t-test.q:1333 src/t-test.q:1333
+#: src/frequencies.q:1285
 #, c-format
 #, c-format
-msgid "%s & %s"
+msgid "No valid data for variable %s; statistics not displayed."
 msgstr ""
 
 msgstr ""
 
-#: src/val-labs.c:138
+#: src/frequencies.q:1308
+msgid "Percentile"
+msgstr ""
+
+#: src/list.q:152
 #, c-format
 msgid ""
 #, c-format
 msgid ""
-"It is not possible to assign value labels to long string variables such as %"
-"s."
+"The first case (%ld) specified precedes the last case (%ld) specified.  The "
+"values will be swapped."
 msgstr ""
 
 msgstr ""
 
-#: src/val-labs.c:176
-msgid "String expected for value."
+#: src/list.q:160
+#, c-format
+msgid ""
+"The first case (%ld) to list is less than 1.  The value is being reset to 1."
 msgstr ""
 
 msgstr ""
 
-#: src/val-labs.c:185
-msgid "Number expected for value."
+#: src/list.q:166
+#, c-format
+msgid ""
+"The last case (%ld) to list is less than 1.  The value is being reset to 1."
 msgstr ""
 
 msgstr ""
 
-#: src/val-labs.c:189
+#: src/list.q:172
 #, c-format
 #, c-format
-msgid "Value label `%g' is not integer."
+msgid "The step value %ld is less than 1.  The value is being reset to 1."
 msgstr ""
 
 msgstr ""
 
-#: src/val-labs.c:199
-msgid "Truncating value label to 60 characters."
+#: src/list.q:199
+msgid "`/FORMAT WEIGHT' specified, but weighting is not on."
 msgstr ""
 
 msgstr ""
 
-#: src/val-labs.c:220
-msgid "Value labels:"
+#: src/list.q:445
+msgid "Line"
 msgstr ""
 
 msgstr ""
 
-#: src/val-labs.c:237
-#, c-format
-msgid "    (no value labels)\n"
+#: src/means.q:106
+msgid "Missing required subcommand TABLES."
 msgstr ""
 
 msgstr ""
 
-#: src/var-labs.c:53
-msgid "String expected for variable label."
+#: src/means.q:144
+msgid "TABLES or CROSSBREAK subcommand may not appear more than once."
 msgstr ""
 
 msgstr ""
 
-#: src/var-labs.c:59
-msgid "Truncating variable label to 120 characters."
+#: src/means.q:181
+#, c-format
+msgid ""
+"Variable %s specified on TABLES or CROSSBREAK, but not specified on "
+"VARIABLES."
 msgstr ""
 
 msgstr ""
 
-#: src/var-labs.c:87
+#: src/means.q:195
 #, c-format
 #, c-format
-msgid "Variable labels:\n"
+msgid "LOWEST and HIGHEST may not be used for independent variables (%s)."
 msgstr ""
 
 msgstr ""
 
-#: src/var-labs.c:94
+#: src/means.q:203
 #, c-format
 #, c-format
-msgid "(no variable label)"
+msgid ""
+"Independent variables (%s) may not have noninteger endpoints in their ranges."
 msgstr ""
 
 msgstr ""
 
-#: src/vars-prs.c:46
-#, c-format
-msgid "%s is not a variable name."
+#: src/means.q:236
+msgid "VARIABLES must precede TABLES."
 msgstr ""
 
 msgstr ""
 
-#: src/vars-prs.c:194
+#: src/means.q:293
 #, c-format
 #, c-format
-msgid "%s TO %s is not valid syntax since %s precedes %s in the dictionary."
+msgid "Upper value (%g) is less than lower value (%g) on VARIABLES subcommand."
 msgstr ""
 
 msgstr ""
 
-#: src/vars-prs.c:204
+#: src/set.q:217 src/set.q:220 src/set.q:238 src/set.q:307 src/set.q:313
+#: src/set.q:338 src/set.q:340 src/set.q:359 src/set.q:363 src/set.q:367
+#: src/set.q:381 src/set.q:383 src/set.q:387 src/set.q:705 src/set.q:786
+#: src/set.q:867
 #, c-format
 #, c-format
+msgid "%s is obsolete."
+msgstr ""
+
+#: src/set.q:224
+msgid "Active file compression is not yet implemented (and probably won't be)."
+msgstr ""
+
+#: src/set.q:233
+msgid "CPI must be greater than 0."
+msgstr ""
+
+#: src/set.q:242
+msgid "LPI must be greater than 0."
+msgstr ""
+
+#: src/set.q:249
 msgid ""
 msgid ""
-"When using the TO keyword to specify several variables, both variables must "
-"be from the same variable dictionaries, of either ordinary, scratch, or "
-"system variables.  %s is a %s variable, whereas %s is %s."
+"CASE is not implemented and probably won't be.  If you care, complain about "
+"it."
 msgstr ""
 
 msgstr ""
 
-#: src/vars-prs.c:222
+#: src/set.q:279
 #, c-format
 #, c-format
-msgid "Scratch variables (such as %s) are not allowed here."
+msgid "Value for MITERATE (%ld) must be greater than 0."
 msgstr ""
 
 msgstr ""
 
-#: src/vars-prs.c:245
+#: src/set.q:287
 #, c-format
 #, c-format
-msgid ""
-"%s is not a numeric variable.  It will not be included in the variable list."
+msgid "Value for MNEST (%ld) must be greater than 0."
 msgstr ""
 
 msgstr ""
 
-#: src/vars-prs.c:248
-#, c-format
-msgid ""
-"%s is not a string variable.  It will not be included in the variable list."
+#: src/set.q:295
+msgid "MXERRS must be at least 1."
+msgstr ""
+
+#: src/set.q:302
+msgid "MXLOOPS must be at least 1."
+msgstr ""
+
+#: src/set.q:323
+msgid "Workspace limit must be at least 1 MB."
 msgstr ""
 
 msgstr ""
 
-#: src/vars-prs.c:252
+#: src/set.q:401
 #, c-format
 msgid ""
 #, c-format
 msgid ""
-"%s and %s are not the same type.  All variables in this variable list must "
-"be of the same type.  %s will be omitted from list."
+"CC%c: Length of custom currency string `%s' (%d) exceeds maximum length of "
+"16."
 msgstr ""
 
 msgstr ""
 
-#: src/vars-prs.c:257
+#: src/set.q:423
 #, c-format
 #, c-format
-msgid "Variable %s appears twice in variable list."
+msgid ""
+"CC%c: Custom currency string `%s' does not contain exactly three periods or "
+"commas (not both)."
 msgstr ""
 
 msgstr ""
 
-#: src/vars-prs.c:334
-msgid "incorrect use of TO convention"
+#: src/set.q:566
+msgid "LENGTH must be at least 1."
 msgstr ""
 
 msgstr ""
 
-#: src/vars-prs.c:380
-msgid "Scratch variables not allowed here."
+#: src/set.q:603
+msgid "Missing identifier in RESULTS subcommand."
 msgstr ""
 
 msgstr ""
 
-#: src/vars-prs.c:402
-msgid "Prefixes don't match in use of TO convention."
+#: src/set.q:614
+msgid "Unrecognized identifier in RESULTS subcommand."
 msgstr ""
 
 msgstr ""
 
-#: src/vars-prs.c:407
-msgid "Bad bounds in use of TO convention."
+#: src/set.q:651
+msgid "WIDTH must be at least 1."
 msgstr ""
 
 msgstr ""
 
-#: src/vector.c:68
+#: src/set.q:674
 #, c-format
 #, c-format
-msgid "Vector name %s is given twice."
+msgid ""
+"FORMAT requires numeric output format as an argument.  Specified format %s "
+"is of type string."
 msgstr ""
 
 msgstr ""
 
-#: src/vector.c:74
-#, c-format
-msgid "There is already a vector with name %s."
+#: src/set.q:718
+msgid "Text color must be in range 0-15."
+msgstr "Text colour must be in range 0-15."
+
+#: src/set.q:731
+msgid "Background color must be in range 0-7."
+msgstr "Background colour must be in range 0-7."
+
+#: src/set.q:742
+msgid "Border color must be in range 0-7."
+msgstr "Border colour must be in range 0-7."
+
+#: src/set.q:798
+msgid "Lower window color must be between 0 and 6."
+msgstr "Lower window colour must be between 0 and 6."
+
+#: src/set.q:812
+msgid "Upper window color must be between 0 and 6."
+msgstr "Upper window colour must be between 0 and 6."
+
+#: src/set.q:824
+msgid "Frame color must be between 0 and 6."
+msgstr "Frame colour must be between 0 and 6."
+
+#: src/set.q:876
+msgid "Drive letter expected in WORKDEV subcommand."
 msgstr ""
 
 msgstr ""
 
-#: src/vector.c:95
-msgid ""
-"A slash must be used to separate each vector specification when using the "
-"long form.  Commands such as VECTOR A,B=Q1 TO Q20 are not supported."
+#: src/t-test.q:208
+msgid "TESTVAL, GROUPS and PAIRS subcommands are mutually exclusive."
 msgstr ""
 
 msgstr ""
 
-#: src/vector.c:129
-msgid "Vectors must have at least one element."
+#: src/t-test.q:225
+msgid "VARIABLES subcommand is not appropriate with PAIRS"
 msgstr ""
 
 msgstr ""
 
-#: src/vector.c:143
+#: src/t-test.q:317 src/t-test.q:396
 #, c-format
 #, c-format
-msgid "%s%d is too long for a variable name."
+msgid "`%s' is not a variable name"
 msgstr ""
 
 msgstr ""
 
-#: src/vector.c:181
+#: src/t-test.q:330
+#, c-format
+msgid "Long string variable %s is not valid here."
+msgstr ""
+
+#: src/t-test.q:347
 msgid ""
 msgid ""
-"The syntax for this command does not match the expected syntax for either "
-"the long form or the short form of VECTOR."
+"When applying GROUPS to a string variable, at least one value must be "
+"specified."
 msgstr ""
 
 msgstr ""
 
-#: src/vfm.c:291
+#: src/t-test.q:431
 #, c-format
 msgid ""
 #, c-format
 msgid ""
-"Workspace overflow predicted.  Max workspace is currently set to %d KB (%d "
-"cases at %d bytes each).  Paging active file to disk."
+"PAIRED was specified but the number of variables preceding WITH (%d) did not "
+"match the number following (%d)."
 msgstr ""
 
 msgstr ""
 
-#: src/vfm.c:366
-msgid "<NOVAR>"
+#: src/t-test.q:448
+msgid "At least two variables must be specified on PAIRS."
+msgstr ""
+
+#: src/t-test.q:620
+msgid "One-Sample Statistics"
+msgstr ""
+
+#: src/t-test.q:624 src/t-test.q:647 src/t-test.q:737 src/t-test.q:1085
+msgid "Std. Deviation"
+msgstr ""
+
+#: src/t-test.q:625 src/t-test.q:648 src/t-test.q:738
+msgid "SE. Mean"
+msgstr ""
+
+#: src/t-test.q:642
+msgid "Group Statistics"
 msgstr ""
 
 msgstr ""
 
-#: src/vfm.c:571
+#: src/t-test.q:732
+msgid "Paired Sample Statistics"
+msgstr ""
+
+#: src/t-test.q:754 src/t-test.q:1119 src/t-test.q:1339
 #, c-format
 #, c-format
-msgid ""
-"An error occurred attempting to create a temporary file for use as the "
-"active file: %s."
+msgid "Pair %d"
+msgstr ""
+
+#: src/t-test.q:874
+msgid "Independent Samples Test"
+msgstr ""
+
+#: src/t-test.q:882
+msgid "Levene's Test for Equality of Variances"
+msgstr ""
+
+#: src/t-test.q:884
+msgid "t-test for Equality of Means"
+msgstr ""
+
+#: src/t-test.q:886
+msgid "F"
+msgstr ""
+
+#: src/t-test.q:887 src/t-test.q:1320
+msgid "Sig."
+msgstr ""
+
+#: src/t-test.q:888 src/t-test.q:1089 src/t-test.q:1201
+msgid "t"
+msgstr ""
+
+#: src/t-test.q:890 src/t-test.q:1091 src/t-test.q:1203
+msgid "Sig. (2-tailed)"
+msgstr ""
+
+#: src/t-test.q:891 src/t-test.q:1204
+msgid "Mean Difference"
+msgstr ""
+
+#: src/t-test.q:892
+msgid "Std. Error Difference"
 msgstr ""
 
 msgstr ""
 
-#: src/vfm.c:589
+#: src/t-test.q:897 src/t-test.q:1081 src/t-test.q:1196
 #, c-format
 #, c-format
-msgid ""
-"An error occurred while attempting to read from a temporary file created for "
-"the active file: %s."
+msgid "%d%% Confidence Interval of the Difference"
+msgstr ""
+
+#: src/t-test.q:931
+msgid "Equal variances assumed"
 msgstr ""
 
 msgstr ""
 
-#: src/vfm.c:617
+#: src/t-test.q:946
 #, c-format
 #, c-format
-msgid ""
-"An error occurred while attempting to write to a temporary file used as the "
-"active file: %s."
+msgid "Error calculating F statistic (cdff returned %d)."
 msgstr ""
 
 msgstr ""
 
-#: src/vfm.c:631
+#: src/t-test.q:969 src/t-test.q:989 src/t-test.q:1027 src/t-test.q:1039
+#: src/t-test.q:1140 src/t-test.q:1166 src/t-test.q:1246 src/t-test.q:1263
+#: src/t-test.q:1354
 #, c-format
 #, c-format
-msgid ""
-"An error occurred while attempting to rewind a temporary file used as the "
-"active file: %s."
+msgid "Error calculating T statistic (cdft returned %d)."
 msgstr ""
 
 msgstr ""
 
-#: src/vfm.c:746
-msgid "Virtual memory exhausted.  Paging active file to disk."
+#: src/t-test.q:1003
+msgid "Equal variances not assumed"
 msgstr ""
 
 msgstr ""
 
-#: src/vfm.c:749
-#, c-format
-msgid ""
-"Workspace limit of %d KB (%d cases at %d bytes each) overflowed.  Paging "
-"active file to disk."
+#: src/t-test.q:1071
+msgid "Paired Samples Test"
+msgstr ""
+
+#: src/t-test.q:1074
+msgid "Paired Differences"
+msgstr ""
+
+#: src/t-test.q:1086
+msgid "Std. Error Mean"
 msgstr ""
 
 msgstr ""
 
-#: src/vfm.c:773 src/vfm.c:810
+#: src/t-test.q:1185
+msgid "One-Sample Test"
+msgstr ""
+
+#: src/t-test.q:1190
 #, c-format
 #, c-format
-msgid ""
-"An error occurred while attempting to write to a temporary file created as "
-"the active file, while paging to disk: %s."
+msgid "Test Value = %f"
 msgstr ""
 
 msgstr ""
 
-#: src/vfm.c:924
-msgid "transform: "
+#: src/t-test.q:1315
+msgid "Paired Samples Correlations"
 msgstr ""
 
 msgstr ""
 
-#: src/weight.c:61
-msgid "The weighting variable must be numeric."
+#: src/t-test.q:1319
+msgid "Correlation"
 msgstr ""
 
 msgstr ""
 
-#: src/weight.c:66
-msgid "The weighting variable may not be scratch."
+#: src/t-test.q:1342
+#, c-format
+msgid "%s & %s"
 msgstr ""
 msgstr ""
index ff35d1b659ef02bf15e22c26bfb8835e840f9026..d2a9fa36914314abf267649e22ba9eb5c0e408d3 100644 (file)
@@ -7,8 +7,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: pspp-dev@gnu.org\n"
-"POT-Creation-Date: 2004-02-21 10:31+0800\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2004-03-12 16:21+0800\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -17,56 +17,56 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
 
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
 
-#: src/aggregate.c:188 src/aggregate.c:229 src/data-list.c:1341
-#: src/data-list.c:1376 src/data-list.c:1389 src/data-list.c:1402
-#: src/data-list.c:1435
+#: src/aggregate.c:190 src/aggregate.c:231 src/data-list.c:1363
+#: src/data-list.c:1398 src/data-list.c:1411 src/data-list.c:1424
+#: src/data-list.c:1457
 #, c-format
 msgid "%s subcommand given multiple times."
 msgstr ""
 
 #, c-format
 msgid "%s subcommand given multiple times."
 msgstr ""
 
-#: src/aggregate.c:214
+#: src/aggregate.c:216
 msgid "while expecting COLUMNWISE"
 msgstr ""
 
 msgid "while expecting COLUMNWISE"
 msgstr ""
 
-#: src/aggregate.c:258
+#: src/aggregate.c:261
 msgid "BREAK subcommand not specified."
 msgstr ""
 
 msgid "BREAK subcommand not specified."
 msgstr ""
 
-#: src/aggregate.c:492
+#: src/aggregate.c:490
 msgid "expecting aggregation function"
 msgstr ""
 
 msgid "expecting aggregation function"
 msgstr ""
 
-#: src/aggregate.c:508
+#: src/aggregate.c:506
 #, c-format
 msgid "Unknown aggregation function %s."
 msgstr ""
 
 #, c-format
 msgid "Unknown aggregation function %s."
 msgstr ""
 
-#: src/aggregate.c:523
+#: src/aggregate.c:521
 msgid "expecting `('"
 msgstr ""
 
 msgid "expecting `('"
 msgstr ""
 
-#: src/aggregate.c:558
+#: src/aggregate.c:556
 #, c-format
 msgid "Missing argument %d to %s."
 msgstr ""
 
 #, c-format
 msgid "Missing argument %d to %s."
 msgstr ""
 
-#: src/aggregate.c:566
+#: src/aggregate.c:564
 #, c-format
 msgid "Arguments to %s must be of same type as source variables."
 msgstr ""
 
 #, c-format
 msgid "Arguments to %s must be of same type as source variables."
 msgstr ""
 
-#: src/aggregate.c:576 src/expr-prs.c:665
+#: src/aggregate.c:574 src/expr-prs.c:665
 msgid "expecting `)'"
 msgstr ""
 
 msgid "expecting `)'"
 msgstr ""
 
-#: src/aggregate.c:588 src/autorecode.c:110
+#: src/aggregate.c:586 src/autorecode.c:110
 #, c-format
 msgid ""
 "Number of source variables (%d) does not match number of target variables (%"
 "d)."
 msgstr ""
 
 #, c-format
 msgid ""
 "Number of source variables (%d) does not match number of target variables (%"
 "d)."
 msgstr ""
 
-#: src/aggregate.c:655
+#: src/aggregate.c:653
 #, c-format
 msgid ""
 "Variable name %s is not unique within the aggregate file dictionary, which "
 #, c-format
 msgid ""
 "Variable name %s is not unique within the aggregate file dictionary, which "
@@ -80,15 +80,15 @@ msgstr ""
 
 #: src/apply-dict.c:71 src/apply-dict.c:72 src/expr-prs.c:1128
 #: src/expr-prs.c:1473 src/expr-prs.c:1489 src/formats.c:103
 
 #: src/apply-dict.c:71 src/apply-dict.c:72 src/expr-prs.c:1128
 #: src/expr-prs.c:1473 src/expr-prs.c:1489 src/formats.c:103
-#: src/pfm-read.c:636 src/print.c:696 src/sfm-read.c:916 src/sfm-read.c:1042
-#: src/sfm-read.c:1043
+#: src/pfm-read.c:634 src/print.c:698 src/sfm-read.c:914 src/sfm-read.c:1040
+#: src/sfm-read.c:1041
 msgid "string"
 msgstr ""
 
 #: src/apply-dict.c:71 src/apply-dict.c:72 src/expr-prs.c:1128
 #: src/expr-prs.c:1470 src/expr-prs.c:1487 src/formats.c:103
 msgid "string"
 msgstr ""
 
 #: src/apply-dict.c:71 src/apply-dict.c:72 src/expr-prs.c:1128
 #: src/expr-prs.c:1470 src/expr-prs.c:1487 src/formats.c:103
-#: src/pfm-read.c:636 src/print.c:696 src/sfm-read.c:916 src/sfm-read.c:1042
-#: src/sfm-read.c:1043
+#: src/pfm-read.c:634 src/print.c:698 src/sfm-read.c:914 src/sfm-read.c:1040
+#: src/sfm-read.c:1041
 msgid "numeric"
 msgstr ""
 
 msgid "numeric"
 msgstr ""
 
@@ -217,18 +217,16 @@ msgstr ""
 msgid "Writing `%s': %s"
 msgstr ""
 
 msgid "Writing `%s': %s"
 msgstr ""
 
-#: src/ascii.c:1541 src/postscript.c:2095
+#: src/ascii.c:1543 src/postscript.c:2093
 #, c-format
 msgid "%s - Page %d"
 msgstr ""
 
 #, c-format
 msgid "%s - Page %d"
 msgstr ""
 
-#: src/autorecode.c:121 src/command.c:696 src/compute.c:283 correlations.c:308
-#: crosstabs.c:437 src/data-list.c:370 src/data-list.c:850
-#: src/data-list.c:1666 descript.c:458 src/do-if.c:264 file-handle.c:180
-#: file-handle.q:88 src/file-handle.q:88 frequencies.c:890 src/get.c:359
-#: src/lexer.c:387 list.c:208 src/loop.c:248 src/matrix-data.c:503 means.c:354
-#: src/print.c:336 src/print.c:1057 src/recode.c:408 src/sel-if.c:56
-#: src/sel-if.c:136 set.c:1656 t-test.c:275 src/vector.c:194
+#: src/autorecode.c:121 src/command.c:697 src/compute.c:293
+#: src/data-list.c:380 src/data-list.c:878 src/data-list.c:1690
+#: src/do-if.c:263 src/get.c:381 src/lexer.c:387 src/loop.c:241
+#: src/matrix-data.c:510 src/print.c:338 src/print.c:1060 src/recode.c:409
+#: src/sel-if.c:56 src/sel-if.c:138 src/vector.c:194 src/file-handle.q:88
 msgid "expecting end of command"
 msgstr ""
 
 msgid "expecting end of command"
 msgstr ""
 
@@ -243,7 +241,7 @@ msgid "Duplicate variable name %s among target variables."
 msgstr ""
 
 #: src/cmdline.c:112 src/cmdline.c:131 src/cmdline.c:143 src/command.c:196
 msgstr ""
 
 #: src/cmdline.c:112 src/cmdline.c:131 src/cmdline.c:143 src/command.c:196
-#: set.q:314 set.q:316 set.q:846 src/set.q:314 src/set.q:316 src/set.q:846
+#: src/set.q:315 src/set.q:317 src/set.q:857
 #, c-format
 msgid "%s is not yet implemented."
 msgstr ""
 #, c-format
 msgid "%s is not yet implemented."
 msgstr ""
@@ -327,7 +325,7 @@ msgstr ""
 msgid "This line does not begin with a valid command name."
 msgstr ""
 
 msgid "This line does not begin with a valid command name."
 msgstr ""
 
-#: src/command.c:214
+#: src/command.c:215
 #, c-format
 msgid ""
 "%s is not allowed (1) before a command to specify the input program, such as "
 #, c-format
 msgid ""
 "%s is not allowed (1) before a command to specify the input program, such as "
@@ -335,121 +333,101 @@ msgid ""
 "PROGRAM and END INPUT PROGRAM."
 msgstr ""
 
 "PROGRAM and END INPUT PROGRAM."
 msgstr ""
 
-#: src/command.c:218
+#: src/command.c:219
 #, c-format
 msgid "%s is not allowed within an input program."
 msgstr ""
 
 #, c-format
 msgid "%s is not allowed within an input program."
 msgstr ""
 
-#: src/command.c:219 src/command.c:220
+#: src/command.c:220 src/command.c:221
 #, c-format
 msgid "%s is only allowed within an input program."
 msgstr ""
 
 #, c-format
 msgid "%s is only allowed within an input program."
 msgstr ""
 
-#: src/command.c:229
+#: src/command.c:230
 #, c-format
 msgid "%s command beginning\n"
 msgstr ""
 
 #, c-format
 msgid "%s command beginning\n"
 msgstr ""
 
-#: src/command.c:265
+#: src/command.c:266
 #, c-format
 msgid ""
 "%s command completed\n"
 "\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "%s command completed\n"
 "\n"
 msgstr ""
 
-#: src/command.c:280
+#: src/command.c:281
 msgid "The identifier(s) specified do not form a valid command name:"
 msgstr ""
 
 msgid "The identifier(s) specified do not form a valid command name:"
 msgstr ""
 
-#: src/command.c:283
+#: src/command.c:284
 msgid "The identifier(s) specified do not form a complete command name:"
 msgstr ""
 
 msgid "The identifier(s) specified do not form a complete command name:"
 msgstr ""
 
-#: src/command.c:407
+#: src/command.c:408
 msgid ""
 "This command is not accepted in a syntax file.  Instead, use FINISH to "
 "terminate a syntax file."
 msgstr ""
 
 msgid ""
 "This command is not accepted in a syntax file.  Instead, use FINISH to "
 "terminate a syntax file."
 msgstr ""
 
-#: src/command.c:425
+#: src/command.c:426
 msgid ""
 "This command is not executed in interactive mode.  Instead, PSPP drops down "
 "to the command prompt.  Use EXIT if you really want to quit."
 msgstr ""
 
 msgid ""
 "This command is not executed in interactive mode.  Instead, PSPP drops down "
 "to the command prompt.  Use EXIT if you really want to quit."
 msgstr ""
 
-#: src/command.c:516
+#: src/command.c:517
 msgid "The sentinel may not be the empty string."
 msgstr ""
 
 msgid "The sentinel may not be the empty string."
 msgstr ""
 
-#: src/command.c:573
+#: src/command.c:574
 msgid "This command not allowed when the SAFER option is set."
 msgstr ""
 
 msgid "This command not allowed when the SAFER option is set."
 msgstr ""
 
-#: src/command.c:596
+#: src/command.c:597
 #, c-format
 msgid "Error removing `%s': %s."
 msgstr ""
 
 #, c-format
 msgid "Error removing `%s': %s."
 msgstr ""
 
-#: src/command.c:646
+#: src/command.c:647
 #, c-format
 msgid "Couldn't fork: %s."
 msgstr ""
 
 #, c-format
 msgid "Couldn't fork: %s."
 msgstr ""
 
-#: src/command.c:687
+#: src/command.c:688
 #, c-format
 msgid "Error executing command: %s."
 msgstr ""
 
 #, c-format
 msgid "Error executing command: %s."
 msgstr ""
 
-#: src/command.c:733
+#: src/command.c:734
 msgid "No operating system support for this command."
 msgstr ""
 
 msgid "No operating system support for this command."
 msgstr ""
 
-#: src/command.c:762
+#: src/command.c:763
 msgid "This command is not valid in a syntax file."
 msgstr ""
 
 msgid "This command is not valid in a syntax file."
 msgstr ""
 
-#: src/compute.c:140 src/compute.c:199
+#: src/compute.c:145 src/compute.c:209
 #, c-format
 msgid ""
 "When executing COMPUTE: SYSMIS is not a valid value as an index into vector %"
 "s."
 msgstr ""
 
 #, c-format
 msgid ""
 "When executing COMPUTE: SYSMIS is not a valid value as an index into vector %"
 "s."
 msgstr ""
 
-#: src/compute.c:143 src/compute.c:203
+#: src/compute.c:148 src/compute.c:213
 #, c-format
 msgid ""
 "When executing COMPUTE: %g is not a valid value as an index into vector %s."
 msgstr ""
 
 #, c-format
 msgid ""
 "When executing COMPUTE: %g is not a valid value as an index into vector %s."
 msgstr ""
 
-#: src/compute.c:342
+#: src/compute.c:355
 #, c-format
 msgid "There is no vector named %s."
 msgstr ""
 
 #, c-format
 msgid "There is no vector named %s."
 msgstr ""
 
-#: src/compute.c:450
+#: src/compute.c:461
 msgid "Extra characters after expression."
 msgstr ""
 
 msgid "Extra characters after expression."
 msgstr ""
 
-#: correlations.c:184 crosstabs.c:254 descript.c:225 means.c:269 t-test.c:191
-msgid "MISSING subcommand may be given only once."
-msgstr ""
-
-#: correlations.c:211
-msgid "PRINT subcommand may be given only once."
-msgstr ""
-
-#: correlations.c:238 crosstabs.c:304 descript.c:252 means.c:232
-msgid "FORMAT subcommand may be given only once."
-msgstr ""
-
-#: correlations.c:261
-msgid "MATRIX subcommand may be given only once."
-msgstr ""
-
-#: correlations.c:283 crosstabs.c:388 descript.c:332 means.c:327
-msgid "STATISTICS subcommand may be given only once."
-msgstr ""
-
 #: src/count.c:171
 msgid "Destination cannot be a string variable."
 msgstr ""
 #: src/count.c:171
 msgid "Destination cannot be a string variable."
 msgstr ""
@@ -461,303 +439,6 @@ msgid ""
 "as big as the number preceding THRU."
 msgstr ""
 
 "as big as the number preceding THRU."
 msgstr ""
 
-#: crosstabs.c:232 means.c:188
-msgid "VARIABLES subcommand may be given only once."
-msgstr ""
-
-#: crosstabs.c:279
-msgid "WRITE subcommand may be given only once."
-msgstr ""
-
-#: crosstabs.c:349 means.c:294
-msgid "CELLS subcommand may be given only once."
-msgstr ""
-
-#: crosstabs.q:257 src/crosstabs.q:257
-msgid ""
-"Missing mode REPORT not allowed in general mode.  Assuming MISSING=TABLE."
-msgstr ""
-
-#: crosstabs.q:267 src/crosstabs.q:267
-msgid "Write mode ALL not allowed in general mode.  Assuming WRITE=CELLS."
-msgstr ""
-
-#: crosstabs.q:327 src/crosstabs.q:327
-msgid "expecting BY"
-msgstr ""
-
-#: crosstabs.q:394 src/crosstabs.q:394
-msgid "VARIABLES must be specified before TABLES."
-msgstr ""
-
-#: crosstabs.q:431 src/crosstabs.q:431
-#, c-format
-msgid "Maximum value (%ld) less than minimum value (%ld)."
-msgstr ""
-
-#: crosstabs.q:865 src/crosstabs.q:865
-msgid "Summary."
-msgstr ""
-
-#: crosstabs.q:867 src/crosstabs.q:867
-msgid "Cases"
-msgstr ""
-
-#: crosstabs.q:868 src/crosstabs.q:868 frequencies.q:999 src/frequencies.q:999
-msgid "Valid"
-msgstr ""
-
-#: crosstabs.q:869 src/crosstabs.q:869 frequencies.q:1066
-#: src/frequencies.q:1066
-msgid "Missing"
-msgstr ""
-
-#: crosstabs.q:870 crosstabs.q:1073 crosstabs.q:1806 src/crosstabs.q:870
-#: src/crosstabs.q:1073 src/crosstabs.q:1806 frequencies.q:1075
-#: src/frequencies.q:1075
-msgid "Total"
-msgstr ""
-
-#: crosstabs.q:880 src/crosstabs.q:880 t-test.q:625 t-test.q:648 t-test.q:727
-#: t-test.q:1309 src/t-test.q:625 src/t-test.q:648 src/t-test.q:727
-#: src/t-test.q:1309
-msgid "N"
-msgstr ""
-
-#: crosstabs.q:881 src/crosstabs.q:881 frequencies.q:1003 frequencies.q:1004
-#: frequencies.q:1005 src/frequencies.q:1003 src/frequencies.q:1004
-#: src/frequencies.q:1005
-msgid "Percent"
-msgstr ""
-
-#: crosstabs.q:1123 src/crosstabs.q:1123
-msgid "count"
-msgstr ""
-
-#: crosstabs.q:1124 src/crosstabs.q:1124
-msgid "row %"
-msgstr ""
-
-#: crosstabs.q:1125 src/crosstabs.q:1125
-msgid "column %"
-msgstr ""
-
-#: crosstabs.q:1126 src/crosstabs.q:1126
-msgid "total %"
-msgstr ""
-
-#: crosstabs.q:1127 src/crosstabs.q:1127
-msgid "expected"
-msgstr ""
-
-#: crosstabs.q:1128 src/crosstabs.q:1128
-msgid "residual"
-msgstr ""
-
-#: crosstabs.q:1129 src/crosstabs.q:1129
-msgid "std. resid."
-msgstr ""
-
-#: crosstabs.q:1130 src/crosstabs.q:1130
-msgid "adj. resid."
-msgstr ""
-
-#: crosstabs.q:1163 crosstabs.q:1190 crosstabs.q:1210 crosstabs.q:1231
-#: src/crosstabs.q:1163 src/crosstabs.q:1190 src/crosstabs.q:1210
-#: src/crosstabs.q:1231
-msgid "Statistic"
-msgstr ""
-
-#: crosstabs.q:1164 crosstabs.q:1191 crosstabs.q:1211 crosstabs.q:1233
-#: src/crosstabs.q:1164 src/crosstabs.q:1191 src/crosstabs.q:1211
-#: src/crosstabs.q:1233 frequencies.q:1001 frequencies.q:1118
-#: src/frequencies.q:1001 src/frequencies.q:1118 src/sysfile-info.c:536
-#: src/vfm.c:1087
-msgid "Value"
-msgstr ""
-
-#: crosstabs.q:1165 src/crosstabs.q:1165 t-test.q:880 t-test.q:1081
-#: t-test.q:1193 src/t-test.q:880 src/t-test.q:1081 src/t-test.q:1193
-msgid "df"
-msgstr ""
-
-#: crosstabs.q:1167 src/crosstabs.q:1167
-msgid "Asymp. Sig. (2-sided)"
-msgstr ""
-
-#: crosstabs.q:1169 src/crosstabs.q:1169
-msgid "Exact. Sig. (2-sided)"
-msgstr ""
-
-#: crosstabs.q:1171 src/crosstabs.q:1171
-msgid "Exact. Sig. (1-sided)"
-msgstr ""
-
-#: crosstabs.q:1189 crosstabs.q:1230 src/crosstabs.q:1189 src/crosstabs.q:1230
-msgid "Category"
-msgstr ""
-
-#: crosstabs.q:1192 crosstabs.q:1234 src/crosstabs.q:1192 src/crosstabs.q:1234
-msgid "Asymp. Std. Error"
-msgstr ""
-
-#: crosstabs.q:1193 crosstabs.q:1235 src/crosstabs.q:1193 src/crosstabs.q:1235
-msgid "Approx. T"
-msgstr ""
-
-#: crosstabs.q:1194 crosstabs.q:1236 src/crosstabs.q:1194 src/crosstabs.q:1236
-msgid "Approx. Sig."
-msgstr ""
-
-#: crosstabs.q:1209 src/crosstabs.q:1209
-#, c-format
-msgid " 95%% Confidence Interval"
-msgstr ""
-
-#: crosstabs.q:1212 src/crosstabs.q:1212 t-test.q:884 t-test.q:1078
-#: t-test.q:1196 src/t-test.q:884 src/t-test.q:1078 src/t-test.q:1196
-msgid "Lower"
-msgstr ""
-
-#: crosstabs.q:1213 src/crosstabs.q:1213 t-test.q:885 t-test.q:1079
-#: t-test.q:1197 src/t-test.q:885 src/t-test.q:1079 src/t-test.q:1197
-msgid "Upper"
-msgstr ""
-
-#: crosstabs.q:1232 src/crosstabs.q:1232
-msgid "Type"
-msgstr ""
-
-#: crosstabs.q:1983 src/crosstabs.q:1983
-msgid "Pearson Chi-Square"
-msgstr ""
-
-#: crosstabs.q:1984 src/crosstabs.q:1984
-msgid "Likelihood Ratio"
-msgstr ""
-
-#: crosstabs.q:1985 src/crosstabs.q:1985
-msgid "Fisher's Exact Test"
-msgstr ""
-
-#: crosstabs.q:1986 src/crosstabs.q:1986
-msgid "Continuity Correction"
-msgstr ""
-
-#: crosstabs.q:1987 src/crosstabs.q:1987
-msgid "Linear-by-Linear Association"
-msgstr ""
-
-#: crosstabs.q:2024 crosstabs.q:2094 crosstabs.q:2153 src/crosstabs.q:2024
-#: src/crosstabs.q:2094 src/crosstabs.q:2153
-msgid "N of Valid Cases"
-msgstr ""
-
-#: crosstabs.q:2040 crosstabs.q:2169 src/crosstabs.q:2040 src/crosstabs.q:2169
-msgid "Nominal by Nominal"
-msgstr ""
-
-#: crosstabs.q:2041 crosstabs.q:2170 src/crosstabs.q:2041 src/crosstabs.q:2170
-msgid "Ordinal by Ordinal"
-msgstr ""
-
-#: crosstabs.q:2042 src/crosstabs.q:2042
-msgid "Interval by Interval"
-msgstr ""
-
-#: crosstabs.q:2043 src/crosstabs.q:2043
-msgid "Measure of Agreement"
-msgstr ""
-
-#: crosstabs.q:2048 src/crosstabs.q:2048
-msgid "Phi"
-msgstr ""
-
-#: crosstabs.q:2049 src/crosstabs.q:2049
-msgid "Cramer's V"
-msgstr ""
-
-#: crosstabs.q:2050 src/crosstabs.q:2050
-msgid "Contingency Coefficient"
-msgstr ""
-
-#: crosstabs.q:2051 src/crosstabs.q:2051
-msgid "Kendall's tau-b"
-msgstr ""
-
-#: crosstabs.q:2052 src/crosstabs.q:2052
-msgid "Kendall's tau-c"
-msgstr ""
-
-#: crosstabs.q:2053 src/crosstabs.q:2053
-msgid "Gamma"
-msgstr ""
-
-#: crosstabs.q:2054 src/crosstabs.q:2054
-msgid "Spearman Correlation"
-msgstr ""
-
-#: crosstabs.q:2055 src/crosstabs.q:2055
-msgid "Pearson's R"
-msgstr ""
-
-#: crosstabs.q:2056 src/crosstabs.q:2056
-msgid "Kappa"
-msgstr ""
-
-#: crosstabs.q:2126 src/crosstabs.q:2126
-#, c-format
-msgid "Odds Ratio for %s (%g / %g)"
-msgstr ""
-
-#: crosstabs.q:2129 src/crosstabs.q:2129
-#, c-format
-msgid "Odds Ratio for %s (%.*s / %.*s)"
-msgstr ""
-
-#: crosstabs.q:2137 src/crosstabs.q:2137
-#, c-format
-msgid "For cohort %s = %g"
-msgstr ""
-
-#: crosstabs.q:2140 src/crosstabs.q:2140
-#, c-format
-msgid "For cohort %s = %.*s"
-msgstr ""
-
-#: crosstabs.q:2171 src/crosstabs.q:2171
-msgid "Nominal by Interval"
-msgstr ""
-
-#: crosstabs.q:2176 src/crosstabs.q:2176
-msgid "Lambda"
-msgstr ""
-
-#: crosstabs.q:2177 src/crosstabs.q:2177
-msgid "Goodman and Kruskal tau"
-msgstr ""
-
-#: crosstabs.q:2178 src/crosstabs.q:2178
-msgid "Uncertainty Coefficient"
-msgstr ""
-
-#: crosstabs.q:2179 src/crosstabs.q:2179
-msgid "Somers' d"
-msgstr ""
-
-#: crosstabs.q:2180 src/crosstabs.q:2180
-msgid "Eta"
-msgstr ""
-
-#: crosstabs.q:2185 src/crosstabs.q:2185
-msgid "Symmetric"
-msgstr ""
-
-#: crosstabs.q:2186 crosstabs.q:2187 src/crosstabs.q:2186 src/crosstabs.q:2187
-#, c-format
-msgid "%s Dependent"
-msgstr ""
-
 #: src/data-in.c:69
 msgid "data-file error: "
 msgstr ""
 #: src/data-in.c:69
 msgid "data-file error: "
 msgstr ""
@@ -777,434 +458,430 @@ msgstr ""
 msgid ", field type %s) "
 msgstr ""
 
 msgid ", field type %s) "
 msgstr ""
 
-#: src/data-in.c:223
+#: src/data-in.c:225
 msgid "Field contents followed by garbage."
 msgstr ""
 
 msgid "Field contents followed by garbage."
 msgstr ""
 
-#: src/data-in.c:256
+#: src/data-in.c:258
 msgid "Overflow in floating-point constant."
 msgstr ""
 
 msgid "Overflow in floating-point constant."
 msgstr ""
 
-#: src/data-in.c:262
+#: src/data-in.c:264
 msgid "Underflow in floating-point constant."
 msgstr ""
 
 msgid "Underflow in floating-point constant."
 msgstr ""
 
-#: src/data-in.c:268
+#: src/data-in.c:270
 msgid "Field does not form a valid floating-point constant."
 msgstr ""
 
 msgid "Field does not form a valid floating-point constant."
 msgstr ""
 
-#: src/data-in.c:294
+#: src/data-in.c:296
 msgid "All characters in field must be digits."
 msgstr ""
 
 msgid "All characters in field must be digits."
 msgstr ""
 
-#: src/data-in.c:319
+#: src/data-in.c:321
 msgid "Unrecognized character in field."
 msgstr ""
 
 msgid "Unrecognized character in field."
 msgstr ""
 
-#: src/data-in.c:337 src/data-in.c:587
+#: src/data-in.c:339 src/data-in.c:589
 msgid "Field must have even length."
 msgstr ""
 
 msgid "Field must have even length."
 msgstr ""
 
-#: src/data-in.c:347 src/data-in.c:597
+#: src/data-in.c:349 src/data-in.c:599
 msgid "Field must contain only hex digits."
 msgstr ""
 
 msgid "Field must contain only hex digits."
 msgstr ""
 
-#: src/data-in.c:385
+#: src/data-in.c:387
 #, c-format
 msgid ""
 "Quality of zoned decimal (Z) input format code is suspect.  Check your "
 "results three times. Report bugs to %s."
 msgstr ""
 
 #, c-format
 msgid ""
 "Quality of zoned decimal (Z) input format code is suspect.  Check your "
 "results three times. Report bugs to %s."
 msgstr ""
 
-#: src/data-in.c:397
+#: src/data-in.c:399
 msgid "Zoned decimal field contains fewer than 2 characters."
 msgstr ""
 
 msgid "Zoned decimal field contains fewer than 2 characters."
 msgstr ""
 
-#: src/data-in.c:405
+#: src/data-in.c:407
 msgid "Bad sign byte in zoned decimal number."
 msgstr ""
 
 msgid "Bad sign byte in zoned decimal number."
 msgstr ""
 
-#: src/data-in.c:422
+#: src/data-in.c:424
 msgid "Format error in zoned decimal number."
 msgstr ""
 
 msgid "Format error in zoned decimal number."
 msgstr ""
 
-#: src/data-in.c:436
+#: src/data-in.c:438
 msgid "Error in syntax of zoned decimal number."
 msgstr ""
 
 msgid "Error in syntax of zoned decimal number."
 msgstr ""
 
-#: src/data-in.c:637
+#: src/data-in.c:639
 msgid "Unexpected end of field."
 msgstr ""
 
 msgid "Unexpected end of field."
 msgstr ""
 
-#: src/data-in.c:663
+#: src/data-in.c:665
 msgid "Digit expected in field."
 msgstr ""
 
 msgid "Digit expected in field."
 msgstr ""
 
-#: src/data-in.c:688
+#: src/data-in.c:690
 #, c-format
 msgid "Day (%ld) must be between 1 and 31."
 msgstr ""
 
 #, c-format
 msgid "Day (%ld) must be between 1 and 31."
 msgstr ""
 
-#: src/data-in.c:713
+#: src/data-in.c:715
 msgid "Delimiter expected between fields in date."
 msgstr ""
 
 msgid "Delimiter expected between fields in date."
 msgstr ""
 
-#: src/data-in.c:810
+#: src/data-in.c:812
 #, c-format
 msgid "Month (%ld) must be between 1 and 12."
 msgstr ""
 
 #, c-format
 msgid "Month (%ld) must be between 1 and 12."
 msgstr ""
 
-#: src/data-in.c:851
+#: src/data-in.c:853
 #, c-format
 msgid "Month (%s) must be between I and XII."
 msgstr ""
 
 #, c-format
 msgid "Month (%s) must be between I and XII."
 msgstr ""
 
-#: src/data-in.c:878
+#: src/data-in.c:880
 #, c-format
 msgid "Month name (%s...) is too long."
 msgstr ""
 
 #, c-format
 msgid "Month name (%s...) is too long."
 msgstr ""
 
-#: src/data-in.c:889
+#: src/data-in.c:891
 #, c-format
 msgid "Bad month name (%s)."
 msgstr ""
 
 #, c-format
 msgid "Bad month name (%s)."
 msgstr ""
 
-#: src/data-in.c:905
+#: src/data-in.c:907
 #, c-format
 msgid "Year (%ld) must be between 1582 and 19999."
 msgstr ""
 
 #, c-format
 msgid "Year (%ld) must be between 1582 and 19999."
 msgstr ""
 
-#: src/data-in.c:916
+#: src/data-in.c:918
 #, c-format
 msgid "Trailing garbage \"%s\" following date."
 msgstr ""
 
 #, c-format
 msgid "Trailing garbage \"%s\" following date."
 msgstr ""
 
-#: src/data-in.c:931
+#: src/data-in.c:933
 #, c-format
 msgid "Julian day (%d) must be between 1 and 366."
 msgstr ""
 
 #, c-format
 msgid "Julian day (%d) must be between 1 and 366."
 msgstr ""
 
-#: src/data-in.c:943
+#: src/data-in.c:945
 #, c-format
 msgid "Year (%d) must be between 1582 and 19999."
 msgstr ""
 
 #, c-format
 msgid "Year (%d) must be between 1582 and 19999."
 msgstr ""
 
-#: src/data-in.c:959
+#: src/data-in.c:961
 #, c-format
 msgid "Quarter (%ld) must be between 1 and 4."
 msgstr ""
 
 #, c-format
 msgid "Quarter (%ld) must be between 1 and 4."
 msgstr ""
 
-#: src/data-in.c:969
+#: src/data-in.c:971
 msgid "`Q' expected between quarter and year."
 msgstr ""
 
 msgid "`Q' expected between quarter and year."
 msgstr ""
 
-#: src/data-in.c:985
+#: src/data-in.c:987
 #, c-format
 msgid "Week (%ld) must be between 1 and 53."
 msgstr ""
 
 #, c-format
 msgid "Week (%ld) must be between 1 and 53."
 msgstr ""
 
-#: src/data-in.c:996
+#: src/data-in.c:998
 msgid "`WK' expected between week and year."
 msgstr ""
 
 msgid "`WK' expected between week and year."
 msgstr ""
 
-#: src/data-in.c:1019
+#: src/data-in.c:1021
 msgid "Delimiter expected between fields in time."
 msgstr ""
 
 msgid "Delimiter expected between fields in time."
 msgstr ""
 
-#: src/data-in.c:1031
+#: src/data-in.c:1033
 #, c-format
 msgid "Hour (%ld) must be positive."
 msgstr ""
 
 #, c-format
 msgid "Hour (%ld) must be positive."
 msgstr ""
 
-#: src/data-in.c:1043
+#: src/data-in.c:1045
 #, c-format
 msgid "Minute (%ld) must be between 0 and 59."
 msgstr ""
 
 #, c-format
 msgid "Minute (%ld) must be between 0 and 59."
 msgstr ""
 
-#: src/data-in.c:1090
+#: src/data-in.c:1092
 #, c-format
 msgid "Hour (%ld) must be between 0 and 23."
 msgstr ""
 
 #, c-format
 msgid "Hour (%ld) must be between 0 and 23."
 msgstr ""
 
-#: src/data-in.c:1104 src/data-in.c:1139
+#: src/data-in.c:1106 src/data-in.c:1141
 msgid "Day of the week expected in date value."
 msgstr ""
 
 msgid "Day of the week expected in date value."
 msgstr ""
 
-#: src/data-in.c:1190
+#: src/data-in.c:1192
 msgid "Date is not in valid range between 15 Oct 1582 and 31 Dec 19999."
 msgstr ""
 
 msgid "Date is not in valid range between 15 Oct 1582 and 31 Dec 19999."
 msgstr ""
 
-#: src/data-in.c:1512
+#: src/data-in.c:1514
 #, c-format
 msgid "Field too long (%d characters).  Truncated after character %d."
 msgstr ""
 
 #, c-format
 msgid "Field too long (%d characters).  Truncated after character %d."
 msgstr ""
 
-#: src/data-list.c:138
+#: src/data-list.c:139
 msgid ""
 "DATA LIST may not use a different file from that specified on its "
 "surrounding FILE TYPE."
 msgstr ""
 
 msgid ""
 "DATA LIST may not use a different file from that specified on its "
 "surrounding FILE TYPE."
 msgstr ""
 
-#: src/data-list.c:157
+#: src/data-list.c:158
 msgid "The END subcommand may only be specified once."
 msgstr ""
 
 msgid "The END subcommand may only be specified once."
 msgstr ""
 
-#: src/data-list.c:193
+#: src/data-list.c:194
 msgid "Only one of FIXED, FREE, or LIST may be specified."
 msgstr ""
 
 msgid "Only one of FIXED, FREE, or LIST may be specified."
 msgstr ""
 
-#: src/data-list.c:319 src/print.c:297
+#: src/data-list.c:327 src/print.c:299
 #, c-format
 msgid ""
 "The record number specified, %ld, is before the previous record, %d.  Data "
 "fields must be listed in order of increasing record number."
 msgstr ""
 
 #, c-format
 msgid ""
 "The record number specified, %ld, is before the previous record, %d.  Data "
 "fields must be listed in order of increasing record number."
 msgstr ""
 
-#: src/data-list.c:351 src/data-list.c:1655
+#: src/data-list.c:356 src/data-list.c:1679
 msgid ""
 "SPSS-like or FORTRAN-like format specification expected after variable names."
 msgstr ""
 
 msgid ""
 "SPSS-like or FORTRAN-like format specification expected after variable names."
 msgstr ""
 
-#: src/data-list.c:362 src/print.c:329
+#: src/data-list.c:367
+msgid "At least one variable must be specified."
+msgstr ""
+
+#: src/data-list.c:372 src/print.c:331
 msgid ""
 "Variables are specified on records that should not exist according to "
 "RECORDS subcommand."
 msgstr ""
 
 msgid ""
 "Variables are specified on records that should not exist according to "
 "RECORDS subcommand."
 msgstr ""
 
-#: src/data-list.c:394 src/data-list.c:407 src/print.c:506 src/print.c:519
+#: src/data-list.c:410 src/data-list.c:424 src/print.c:508 src/print.c:521
 msgid "Column positions for fields must be positive."
 msgstr ""
 
 msgid "Column positions for fields must be positive."
 msgstr ""
 
-#: src/data-list.c:412
+#: src/data-list.c:429
 msgid "The ending column for a field must be greater than the starting column."
 msgstr ""
 
 msgid "The ending column for a field must be greater than the starting column."
 msgstr ""
 
-#: src/data-list.c:436 src/print.c:547
+#: src/data-list.c:443 src/print.c:598
+#, c-format
+msgid "The %d columns %d-%d can't be evenly divided into %d fields."
+msgstr ""
+
+#: src/data-list.c:463 src/print.c:549
 msgid "A format specifier on this line has extra characters on the end."
 msgstr ""
 
 msgid "A format specifier on this line has extra characters on the end."
 msgstr ""
 
-#: src/data-list.c:451 src/print.c:563
+#: src/data-list.c:478 src/print.c:565
 msgid "The value for number of decimal places must be at least 1."
 msgstr ""
 
 msgid "The value for number of decimal places must be at least 1."
 msgstr ""
 
-#: src/data-list.c:465 src/print.c:576
+#: src/data-list.c:492 src/print.c:578
 #, c-format
 msgid "Input format %s doesn't accept decimal places."
 msgstr ""
 
 #, c-format
 msgid "Input format %s doesn't accept decimal places."
 msgstr ""
 
-#: src/data-list.c:486 src/print.c:596
-#, c-format
-msgid "The %d columns %d-%d can't be evenly divided into %d fields."
-msgstr ""
-
-#: src/data-list.c:528 src/data-list.c:625 src/data-list.c:829
+#: src/data-list.c:539 src/data-list.c:635 src/data-list.c:857
 #, c-format
 msgid "%s is a duplicate variable name."
 msgstr ""
 
 #, c-format
 msgid "%s is a duplicate variable name."
 msgstr ""
 
-#: src/data-list.c:533
+#: src/data-list.c:544
 #, c-format
 msgid "There is already a variable %s of a different type."
 msgstr ""
 
 #, c-format
 msgid "There is already a variable %s of a different type."
 msgstr ""
 
-#: src/data-list.c:540
+#: src/data-list.c:551
 #, c-format
 msgid "There is already a string variable %s of a different width."
 msgstr ""
 
 #, c-format
 msgid "There is already a string variable %s of a different width."
 msgstr ""
 
-#: src/data-list.c:614 src/print.c:685
+#: src/data-list.c:626
 msgid ""
 msgid ""
-"The number of format specifications exceeds the number of variable names "
-"given."
+"The number of format specifications exceeds the given number of variable "
+"names."
 msgstr ""
 
 msgstr ""
 
-#: src/data-list.c:702 src/print.c:769
+#: src/data-list.c:739 src/print.c:771
 msgid ""
 "There aren't enough format specifications to match the number of variable "
 "names given."
 msgstr ""
 
 msgid ""
 "There aren't enough format specifications to match the number of variable "
 "names given."
 msgstr ""
 
-#: src/data-list.c:736 src/data-list.c:877 descript.q:790 src/descript.q:790
-#: src/print.c:801 src/sysfile-info.c:135 src/sysfile-info.c:370
-#: src/vfm.c:1086
+#: src/data-list.c:768 src/data-list.c:899 src/print.c:803
+#: src/sysfile-info.c:135 src/sysfile-info.c:370 src/vfm.c:1148
+#: src/descript.q:791
 msgid "Variable"
 msgstr ""
 
 msgid "Variable"
 msgstr ""
 
-#: src/data-list.c:737 src/print.c:802
+#: src/data-list.c:769 src/print.c:804
 msgid "Record"
 msgstr ""
 
 msgid "Record"
 msgstr ""
 
-#: src/data-list.c:738 src/print.c:803
+#: src/data-list.c:770 src/print.c:805
 msgid "Columns"
 msgstr ""
 
 msgid "Columns"
 msgstr ""
 
-#: src/data-list.c:739 src/data-list.c:878 src/print.c:804
+#: src/data-list.c:771 src/data-list.c:900 src/print.c:806
 msgid "Format"
 msgstr ""
 
 msgid "Format"
 msgstr ""
 
-#: src/data-list.c:762
+#: src/data-list.c:791
 #, c-format
 msgid "Reading %d record from file %s."
 msgid_plural "Reading %d records from file %s."
 msgstr[0] ""
 msgstr[1] ""
 
 #, c-format
 msgid "Reading %d record from file %s."
 msgid_plural "Reading %d records from file %s."
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/data-list.c:765
+#: src/data-list.c:793
 #, c-format
 msgid "Reading %d record from the command file."
 msgid_plural "Reading %d records from the command file."
 msgstr[0] ""
 msgstr[1] ""
 
 #, c-format
 msgid "Reading %d record from the command file."
 msgid_plural "Reading %d records from the command file."
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/data-list.c:772 src/data-list.c:773
-msgid "Occurrence data specifications."
-msgstr ""
-
-#: src/data-list.c:901
+#: src/data-list.c:923
 #, c-format
 msgid "Reading free-form data from file %s."
 msgstr ""
 
 #, c-format
 msgid "Reading free-form data from file %s."
 msgstr ""
 
-#: src/data-list.c:902
+#: src/data-list.c:924
 msgid "Reading free-form data from the command file."
 msgstr ""
 
 msgid "Reading free-form data from the command file."
 msgstr ""
 
-#: src/data-list.c:953 src/matrix-data.c:935
+#: src/data-list.c:971 src/matrix-data.c:923
 msgid "Scope of string exceeds line."
 msgstr ""
 
 msgid "Scope of string exceeds line."
 msgstr ""
 
-#: src/data-list.c:1013
-msgid "Attempt to read past end of file."
-msgstr ""
-
-#: src/data-list.c:1042
-msgid "abort in write_case()\n"
-msgstr ""
-
-#: src/data-list.c:1070
+#: src/data-list.c:1039
 #, c-format
 msgid "Partial case of %d of %d records discarded."
 msgstr ""
 
 #, c-format
 msgid "Partial case of %d of %d records discarded."
 msgstr ""
 
-#: src/data-list.c:1119
+#: src/data-list.c:1090
 #, c-format
 msgid "Partial case discarded.  The first variable missing was %s."
 msgstr ""
 
 #, c-format
 msgid "Partial case discarded.  The first variable missing was %s."
 msgstr ""
 
-#: src/data-list.c:1160
+#: src/data-list.c:1133
 #, 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 ""
 
 #, 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 ""
 
-#: src/data-list.c:1331
+#: src/data-list.c:1210
+msgid "Attempt to read past end of file."
+msgstr ""
+
+#: src/data-list.c:1353
 msgid ""
 "REPEATING DATA must use the same file as its corresponding DATA LIST or FILE "
 "TYPE."
 msgstr ""
 
 msgid ""
 "REPEATING DATA must use the same file as its corresponding DATA LIST or FILE "
 "TYPE."
 msgstr ""
 
-#: src/data-list.c:1365
+#: src/data-list.c:1387
 #, c-format
 msgid "STARTS beginning column (%d) exceeds STARTS ending column (%d)."
 msgstr ""
 
 #, c-format
 msgid "STARTS beginning column (%d) exceeds STARTS ending column (%d)."
 msgstr ""
 
-#: src/data-list.c:1421
+#: src/data-list.c:1443
 #, c-format
 msgid "CONTINUED beginning column (%d) exceeds CONTINUED ending column (%d)."
 msgstr ""
 
 #, c-format
 msgid "CONTINUED beginning column (%d) exceeds CONTINUED ending column (%d)."
 msgstr ""
 
-#: src/data-list.c:1444
+#: src/data-list.c:1466
 #, c-format
 msgid "ID beginning column (%ld) must be positive."
 msgstr ""
 
 #, c-format
 msgid "ID beginning column (%ld) must be positive."
 msgstr ""
 
-#: src/data-list.c:1459
+#: src/data-list.c:1481
 #, c-format
 msgid "ID ending column (%ld) must be positive."
 msgstr ""
 
 #, c-format
 msgid "ID ending column (%ld) must be positive."
 msgstr ""
 
-#: src/data-list.c:1465
+#: src/data-list.c:1487
 #, c-format
 msgid "ID ending column (%ld) cannot be less than ID beginning column (%d)."
 msgstr ""
 
 #, c-format
 msgid "ID ending column (%ld) cannot be less than ID beginning column (%d)."
 msgstr ""
 
-#: src/data-list.c:1505
+#: src/data-list.c:1527
 msgid "Missing required specification STARTS."
 msgstr ""
 
 msgid "Missing required specification STARTS."
 msgstr ""
 
-#: src/data-list.c:1507
+#: src/data-list.c:1529
 msgid "Missing required specification OCCURS."
 msgstr ""
 
 msgid "Missing required specification OCCURS."
 msgstr ""
 
-#: src/data-list.c:1514
+#: src/data-list.c:1536
 msgid "ID specified without CONTINUED."
 msgstr ""
 
 msgid "ID specified without CONTINUED."
 msgstr ""
 
-#: src/data-list.c:1602
+#: src/data-list.c:1628
 msgid "String variable not allowed here."
 msgstr ""
 
 msgid "String variable not allowed here."
 msgstr ""
 
-#: src/data-list.c:1612
+#: src/data-list.c:1638
 #, c-format
 msgid "%s (%d) must be at least 1."
 msgstr ""
 
 #, c-format
 msgid "%s (%d) must be at least 1."
 msgstr ""
 
-#: src/data-list.c:1618
+#: src/data-list.c:1644
 #, c-format
 msgid "Variable or integer expected for %s."
 msgstr ""
 
 #, c-format
 msgid "Variable or integer expected for %s."
 msgstr ""
 
-#: src/data-list.c:1753
+#: src/data-list.c:1782
 #, c-format
 msgid "Encountered mismatched record ID \"%s\" expecting \"%s\"."
 msgstr ""
 
 #, c-format
 msgid "Encountered mismatched record ID \"%s\" expecting \"%s\"."
 msgstr ""
 
-#: src/data-list.c:1785
+#: src/data-list.c:1814
 #, c-format
 msgid ""
 "Variable %s starting in column %d extends beyond physical record length of %"
 "d."
 msgstr ""
 
 #, c-format
 msgid ""
 "Variable %s starting in column %d extends beyond physical record length of %"
 "d."
 msgstr ""
 
-#: src/data-list.c:1853
+#: src/data-list.c:1882
 #, c-format
 msgid "Invalid value %d for OCCURS."
 msgstr ""
 
 #, c-format
 msgid "Invalid value %d for OCCURS."
 msgstr ""
 
-#: src/data-list.c:1859
+#: src/data-list.c:1888
 #, c-format
 msgid "Beginning column for STARTS (%d) must be at least 1."
 msgstr ""
 
 #, c-format
 msgid "Beginning column for STARTS (%d) must be at least 1."
 msgstr ""
 
-#: src/data-list.c:1867
+#: src/data-list.c:1896
 #, c-format
 msgid "Ending column for STARTS (%d) is less than beginning column (%d)."
 msgstr ""
 
 #, c-format
 msgid "Ending column for STARTS (%d) is less than beginning column (%d)."
 msgstr ""
 
-#: src/data-list.c:1875
+#: src/data-list.c:1904
 #, c-format
 msgid "Invalid value %d for LENGTH."
 msgstr ""
 
 #, c-format
 msgid "Invalid value %d for LENGTH."
 msgstr ""
 
-#: src/data-list.c:1882
+#: src/data-list.c:1911
 #, c-format
 msgid "Beginning column for CONTINUED (%d) must be at least 1."
 msgstr ""
 
 #, c-format
 msgid "Beginning column for CONTINUED (%d) must be at least 1."
 msgstr ""
 
-#: src/data-list.c:1890
+#: src/data-list.c:1919
 #, c-format
 msgid "Ending column for CONTINUED (%d) is less than beginning column (%d)."
 msgstr ""
 
 #, c-format
 msgid "Ending column for CONTINUED (%d) is less than beginning column (%d)."
 msgstr ""
 
-#: src/data-list.c:1913
+#: src/data-list.c:1951
 #, c-format
 msgid ""
 "Number of repetitions specified on OCCURS (%d) exceed number of repetitions "
 "available in space on STARTS (%d), and CONTINUED not specified."
 msgstr ""
 
 #, c-format
 msgid ""
 "Number of repetitions specified on OCCURS (%d) exceed number of repetitions "
 "available in space on STARTS (%d), and CONTINUED not specified."
 msgstr ""
 
-#: src/data-list.c:1930
+#: src/data-list.c:1970
 #, c-format
 msgid "Unexpected end of file with %d repetitions remaining out of %d."
 msgstr ""
 #, c-format
 msgid "Unexpected end of file with %d repetitions remaining out of %d."
 msgstr ""
@@ -1256,266 +933,24 @@ msgid ""
 "Year %d cannot be represented in four digits for output formatting purposes."
 msgstr ""
 
 "Year %d cannot be represented in four digits for output formatting purposes."
 msgstr ""
 
-#: descript.c:283
-msgid "SAVE subcommand may be given only once."
+#: src/devind.c:136
+#, c-format
+msgid "DEVIND driver initializing as `%s'..."
 msgstr ""
 
 msgstr ""
 
-#: descript.c:297
-msgid "OPTIONS subcommand may be given only once."
+#: src/devind.c:218
+#, c-format
+msgid "Unknown configuration parameter `%s' for DEVIND device driver."
 msgstr ""
 
 msgstr ""
 
-#: descript.c:405
-msgid "SORT subcommand may be given only once."
+#: src/devind.c:240
+#, c-format
+msgid "DEVIND output driver: %s: %s"
 msgstr ""
 
 msgstr ""
 
-#: descript.q:151 src/descript.q:151 frequencies.q:94 src/frequencies.q:94
-#: t-test.q:626 t-test.q:649 t-test.q:726 t-test.q:1075 src/t-test.q:626
-#: src/t-test.q:649 src/t-test.q:726 src/t-test.q:1075
-msgid "Mean"
-msgstr ""
-
-#: descript.q:151 src/descript.q:151
-msgid "mean"
-msgstr ""
-
-#: descript.q:152 src/descript.q:152 frequencies.q:95 src/frequencies.q:95
-msgid "S.E. Mean"
-msgstr ""
-
-#: descript.q:152 src/descript.q:152
-msgid "S E Mean"
-msgstr ""
-
-#: descript.q:152 src/descript.q:152
-msgid "SE"
-msgstr ""
-
-#: descript.q:153 src/descript.q:153
-msgid "standard error of mean"
-msgstr ""
-
-#: descript.q:154 src/descript.q:154 frequencies.q:98 src/frequencies.q:98
-msgid "Std Dev"
-msgstr ""
-
-#: descript.q:154 src/descript.q:154
-msgid "SD"
-msgstr ""
-
-#: descript.q:155 src/descript.q:155
-msgid "standard deviation"
-msgstr ""
-
-#: descript.q:156 src/descript.q:156 frequencies.q:99 src/frequencies.q:99
-msgid "Variance"
-msgstr ""
-
-#: descript.q:157 src/descript.q:157
-msgid "Var"
-msgstr ""
-
-#: descript.q:157 src/descript.q:157
-msgid "variance"
-msgstr ""
-
-#: descript.q:158 src/descript.q:158 frequencies.q:100 src/frequencies.q:100
-msgid "Kurtosis"
-msgstr ""
-
-#: descript.q:159 src/descript.q:159
-msgid "Kurt"
-msgstr ""
-
-#: descript.q:159 src/descript.q:159
-msgid "kurtosis"
-msgstr ""
-
-#: descript.q:160 src/descript.q:160 frequencies.q:101 src/frequencies.q:101
-msgid "S.E. Kurt"
-msgstr ""
-
-#: descript.q:160 src/descript.q:160
-msgid "S E Kurt"
-msgstr ""
-
-#: descript.q:160 src/descript.q:160
-msgid "SEKurt"
-msgstr ""
-
-#: descript.q:161 src/descript.q:161
-msgid "standard error of kurtosis"
-msgstr ""
-
-#: descript.q:162 src/descript.q:162 frequencies.q:102 src/frequencies.q:102
-msgid "Skewness"
-msgstr ""
-
-#: descript.q:162 src/descript.q:162
-msgid "Skew"
-msgstr ""
-
-#: descript.q:163 src/descript.q:163
-msgid "skewness"
-msgstr ""
-
-#: descript.q:164 src/descript.q:164 frequencies.q:103 src/frequencies.q:103
-msgid "S.E. Skew"
-msgstr ""
-
-#: descript.q:164 src/descript.q:164
-msgid "S E Skew"
-msgstr ""
-
-#: descript.q:164 src/descript.q:164
-msgid "SESkew"
-msgstr ""
-
-#: descript.q:165 src/descript.q:165
-msgid "standard error of skewness"
-msgstr ""
-
-#: descript.q:166 src/descript.q:166 frequencies.q:104 src/frequencies.q:104
-msgid "Range"
-msgstr ""
-
-#: descript.q:166 src/descript.q:166
-msgid "Rng"
-msgstr ""
-
-#: descript.q:166 src/descript.q:166 src/sfm-read.c:1202
-msgid "range"
-msgstr ""
-
-#: descript.q:167 src/descript.q:167 frequencies.q:105 src/frequencies.q:105
-msgid "Minimum"
-msgstr ""
-
-#: descript.q:167 src/descript.q:167
-msgid "Min"
-msgstr ""
-
-#: descript.q:168 src/descript.q:168
-msgid "minimum"
-msgstr ""
-
-#: descript.q:169 src/descript.q:169 frequencies.q:106 src/frequencies.q:106
-msgid "Maximum"
-msgstr ""
-
-#: descript.q:169 src/descript.q:169
-msgid "Max"
-msgstr ""
-
-#: descript.q:170 src/descript.q:170
-msgid "maximum"
-msgstr ""
-
-#: descript.q:171 src/descript.q:171 frequencies.q:107 src/frequencies.q:107
-msgid "Sum"
-msgstr ""
-
-#: descript.q:171 src/descript.q:171
-msgid "sum"
-msgstr ""
-
-#: descript.q:212 src/descript.q:212 list.q:144 src/list.q:144
-msgid "No variables specified."
-msgstr ""
-
-#: descript.q:218 src/descript.q:218
-msgid "OPTIONS may not be used with SAVE, FORMAT, or MISSING."
-msgstr ""
-
-#: descript.q:280 src/descript.q:280
-#, c-format
-msgid "It's not possible to sort on `%s' without displaying `%s'."
-msgstr ""
-
-#: descript.q:294 src/descript.q:294
-msgid ""
-"At least one case in the data file had a weight value that was system-"
-"missing, zero, or negative.  These case(s) were ignored."
-msgstr ""
-
-#: descript.q:335 src/descript.q:335
-msgid ""
-"Names for z-score variables must be given for individual variables, not for "
-"groups of variables."
-msgstr ""
-
-#: descript.q:343 src/descript.q:343
-msgid "Name for z-score variable expected."
-msgstr ""
-
-#: descript.q:348 src/descript.q:348
-#, c-format
-msgid ""
-"Z-score variable name `%s' is a duplicate variable name with a current "
-"variable."
-msgstr ""
-
-#: descript.q:357 src/descript.q:357
-#, c-format
-msgid "Z-score variable name `%s' is used multiple times."
-msgstr ""
-
-#: descript.q:365 src/descript.q:365
-msgid "`)' expected after z-score variable name."
-msgstr ""
-
-#: descript.q:425 src/descript.q:425
-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 ""
-
-#: descript.q:454 src/descript.q:454
-msgid "Mapping of variables to corresponding Z-scores."
-msgstr ""
-
-#: descript.q:459 src/descript.q:459
-msgid "Source"
-msgstr ""
-
-#: descript.q:460 src/descript.q:460
-msgid "Target"
-msgstr ""
-
-#: descript.q:547 descript.q:553 src/descript.q:547 src/descript.q:553
-msgid "Z-score of "
-msgstr ""
-
-#: descript.q:794 src/descript.q:794
-msgid "Valid N"
-msgstr ""
-
-#: descript.q:795 src/descript.q:795
-msgid "Missing N"
-msgstr ""
-
-#: descript.q:822 src/descript.q:822
-#, c-format
-msgid "Valid cases = %g; cases with missing value(s) = %g."
-msgstr ""
-
-#: src/devind.c:136
-#, c-format
-msgid "DEVIND driver initializing as `%s'..."
-msgstr ""
-
-#: src/devind.c:218
-#, c-format
-msgid "Unknown configuration parameter `%s' for DEVIND device driver."
-msgstr ""
-
-#: src/devind.c:240
-#, c-format
-msgid "DEVIND output driver: %s: %s"
-msgstr ""
-
-#: src/devind.c:271
-#, c-format
-msgid "Cannot open first page on DEVIND device %s."
+#: src/devind.c:271
+#, c-format
+msgid "Cannot open first page on DEVIND device %s."
 msgstr ""
 
 #: src/dfm.c:74
 msgstr ""
 
 #: src/dfm.c:74
@@ -1614,43 +1049,43 @@ msgstr ""
 msgid "writing as a data file"
 msgstr ""
 
 msgid "writing as a data file"
 msgstr ""
 
-#: src/do-if.c:118
+#: src/do-if.c:117
 msgid "There is no DO IF to match with this ELSE IF."
 msgstr ""
 
 msgid "There is no DO IF to match with this ELSE IF."
 msgstr ""
 
-#: src/do-if.c:123
+#: src/do-if.c:122
 msgid "The ELSE command must follow all ELSE IF commands in a DO IF structure."
 msgstr ""
 
 msgid "The ELSE command must follow all ELSE IF commands in a DO IF structure."
 msgstr ""
 
-#: src/do-if.c:146
+#: src/do-if.c:145
 msgid "End of command expected."
 msgstr ""
 
 msgid "End of command expected."
 msgstr ""
 
-#: src/do-if.c:164
+#: src/do-if.c:163
 msgid "There is no DO IF to match with this ELSE."
 msgstr ""
 
 msgid "There is no DO IF to match with this ELSE."
 msgstr ""
 
-#: src/do-if.c:170
+#: src/do-if.c:169
 msgid ""
 "There may be at most one ELSE clause in each DO IF structure.  It must be "
 "the last clause."
 msgstr ""
 
 msgid ""
 "There may be at most one ELSE clause in each DO IF structure.  It must be "
 "the last clause."
 msgstr ""
 
-#: src/do-if.c:207
+#: src/do-if.c:206
 msgid "There is no DO IF to match with this END IF."
 msgstr ""
 
 msgid "There is no DO IF to match with this END IF."
 msgstr ""
 
-#: src/do-if.c:293
+#: src/do-if.c:294
 #, c-format
 msgid "DO IF %d: true\n"
 msgstr ""
 
 #, c-format
 msgid "DO IF %d: true\n"
 msgstr ""
 
-#: src/do-if.c:298
+#: src/do-if.c:299
 #, c-format
 msgid "DO IF %d: false\n"
 msgstr ""
 
 #, c-format
 msgid "DO IF %d: false\n"
 msgstr ""
 
-#: src/do-if.c:303
+#: src/do-if.c:304
 #, c-format
 msgid "DO IF %d: missing\n"
 msgstr ""
 #, c-format
 msgid "DO IF %d: missing\n"
 msgstr ""
@@ -1693,35 +1128,35 @@ msgstr ""
 msgid "installation error"
 msgstr ""
 
 msgid "installation error"
 msgstr ""
 
-#: src/expr-evl.c:1115
+#: src/expr-evl.c:1116
 msgid ""
 "A number being treated as a Boolean in an expression was found to have a "
 "value other than 0 (false), 1 (true), or the system-missing value.  The "
 "result was forced to 0."
 msgstr ""
 
 msgid ""
 "A number being treated as a Boolean in an expression was found to have a "
 "value other than 0 (false), 1 (true), or the system-missing value.  The "
 "result was forced to 0."
 msgstr ""
 
-#: src/expr-evl.c:1159
+#: src/expr-evl.c:1160
 #, c-format
 msgid ""
 "SYSMIS is not a valid index value for vector %s.  The result will be set to "
 "SYSMIS."
 msgstr ""
 
 #, c-format
 msgid ""
 "SYSMIS is not a valid index value for vector %s.  The result will be set to "
 "SYSMIS."
 msgstr ""
 
-#: src/expr-evl.c:1163
+#: src/expr-evl.c:1164
 #, c-format
 msgid ""
 "%g is not a valid index value for vector %s.  The result will be set to "
 "SYSMIS."
 msgstr ""
 
 #, c-format
 msgid ""
 "%g is not a valid index value for vector %s.  The result will be set to "
 "SYSMIS."
 msgstr ""
 
-#: src/expr-evl.c:1181
+#: src/expr-evl.c:1182
 #, c-format
 msgid ""
 "SYSMIS is not a valid index value for vector %s.  The result will be set to "
 "the empty string."
 msgstr ""
 
 #, c-format
 msgid ""
 "SYSMIS is not a valid index value for vector %s.  The result will be set to "
 "the empty string."
 msgstr ""
 
-#: src/expr-evl.c:1186
+#: src/expr-evl.c:1187
 #, c-format
 msgid ""
 "%g is not a valid index value for vector %s.  The result will be set to the "
 #, c-format
 msgid ""
 "%g is not a valid index value for vector %s.  The result will be set to the "
@@ -1750,7 +1185,7 @@ msgstr ""
 msgid "Second argument to %cTRIM() must be at least one character in length."
 msgstr ""
 
 msgid "Second argument to %cTRIM() must be at least one character in length."
 msgstr ""
 
-#: src/expr-opt.c:881
+#: src/expr-opt.c:880
 msgid ""
 "When optimizing a constant expression, an integer that was being used as an "
 "Boolean value was found to have a constant value other than 0, 1, or SYSMIS."
 msgid ""
 "When optimizing a constant expression, an integer that was being used as an "
 "Boolean value was found to have a constant value other than 0, 1, or SYSMIS."
@@ -1940,57 +1375,6 @@ msgstr ""
 msgid "postfix:"
 msgstr ""
 
 msgid "postfix:"
 msgstr ""
 
-#: file-handle.q:72 src/file-handle.q:72
-#, c-format
-msgid ""
-"File handle %s had already been defined to refer to file %s.  It is not "
-"possible to redefine a file handle within a session."
-msgstr ""
-
-#: file-handle.q:94 src/file-handle.q:94
-msgid "The FILE HANDLE required subcommand NAME is not present."
-msgstr ""
-
-#: file-handle.q:107 src/file-handle.q:107
-msgid ""
-"Fixed length records were specified on /RECFORM, but record length was not "
-"specified on /LRECL.  80-character records will be assumed."
-msgstr ""
-
-#: file-handle.q:114 src/file-handle.q:114
-#, c-format
-msgid ""
-"Record length (%ld) must be at least one byte.  80-character records will be "
-"assumed."
-msgstr ""
-
-#: file-handle.q:126 file-handle.q:140 src/file-handle.q:126
-#: src/file-handle.q:140
-#, c-format
-msgid ""
-"%s is not implemented, as the author doesn't know what it is supposed to "
-"do.  Send a note to %s."
-msgstr ""
-
-#: file-handle.q:147 file-handle.q:150 src/file-handle.q:147
-#: src/file-handle.q:150
-#, c-format
-msgid "%s is not implemented.  If you care, complain."
-msgstr ""
-
-#: file-handle.q:232 src/file-handle.q:232
-#, c-format
-msgid "File handle `%s' has not been previously declared on FILE HANDLE."
-msgstr ""
-
-#: file-handle.q:319 src/file-handle.q:319
-msgid "<Inline File>"
-msgstr ""
-
-#: file-handle.q:338 src/file-handle.q:338
-msgid "expecting a file name or handle"
-msgstr ""
-
 #: src/filename.c:221
 #, c-format
 msgid "Searching for `%s'..."
 #: src/filename.c:221
 #, c-format
 msgid "Searching for `%s'..."
@@ -2010,274 +1394,278 @@ msgstr ""
 msgid "Not opening pipe file `%s' because SAFER option set."
 msgstr ""
 
 msgid "Not opening pipe file `%s' because SAFER option set."
 msgstr ""
 
-#: src/file-type.c:125
+#: src/file-type.c:127
 msgid "MIXED, GROUPED, or NESTED expected."
 msgstr ""
 
 msgid "MIXED, GROUPED, or NESTED expected."
 msgstr ""
 
-#: src/file-type.c:148
+#: src/file-type.c:150
 msgid "The CASE subcommand is not valid on FILE TYPE MIXED."
 msgstr ""
 
 msgid "The CASE subcommand is not valid on FILE TYPE MIXED."
 msgstr ""
 
-#: src/file-type.c:166
+#: src/file-type.c:168
 msgid "WARN or NOWARN expected after WILD."
 msgstr ""
 
 msgid "WARN or NOWARN expected after WILD."
 msgstr ""
 
-#: src/file-type.c:174
+#: src/file-type.c:176
 msgid "The DUPLICATE subcommand is not valid on FILE TYPE MIXED."
 msgstr ""
 
 msgid "The DUPLICATE subcommand is not valid on FILE TYPE MIXED."
 msgstr ""
 
-#: src/file-type.c:188
+#: src/file-type.c:190
 msgid "DUPLICATE=CASE is only valid on FILE TYPE NESTED."
 msgstr ""
 
 msgid "DUPLICATE=CASE is only valid on FILE TYPE NESTED."
 msgstr ""
 
-#: src/file-type.c:197
+#: src/file-type.c:199
 #, c-format
 msgid "WARN%s expected after DUPLICATE."
 msgstr ""
 
 #, c-format
 msgid "WARN%s expected after DUPLICATE."
 msgstr ""
 
-#: src/file-type.c:198
+#: src/file-type.c:200
 msgid ", NOWARN, or CASE"
 msgstr ""
 
 msgid ", NOWARN, or CASE"
 msgstr ""
 
-#: src/file-type.c:199
+#: src/file-type.c:201
 msgid " or NOWARN"
 msgstr ""
 
 msgid " or NOWARN"
 msgstr ""
 
-#: src/file-type.c:207
+#: src/file-type.c:209
 msgid "The MISSING subcommand is not valid on FILE TYPE MIXED."
 msgstr ""
 
 msgid "The MISSING subcommand is not valid on FILE TYPE MIXED."
 msgstr ""
 
-#: src/file-type.c:219
+#: src/file-type.c:221
 msgid "WARN or NOWARN after MISSING."
 msgstr ""
 
 msgid "WARN or NOWARN after MISSING."
 msgstr ""
 
-#: src/file-type.c:227
+#: src/file-type.c:229
 msgid "ORDERED is only valid on FILE TYPE GROUPED."
 msgstr ""
 
 msgid "ORDERED is only valid on FILE TYPE GROUPED."
 msgstr ""
 
-#: src/file-type.c:238
+#: src/file-type.c:240
 msgid "YES or NO expected after ORDERED."
 msgstr ""
 
 msgid "YES or NO expected after ORDERED."
 msgstr ""
 
-#: src/file-type.c:244 src/file-type.c:547 src/get.c:343
+#: src/file-type.c:246 src/file-type.c:541 src/get.c:365
 msgid "while expecting a valid subcommand"
 msgstr ""
 
 msgid "while expecting a valid subcommand"
 msgstr ""
 
-#: src/file-type.c:251
+#: src/file-type.c:253
 msgid "The required RECORD subcommand was not present."
 msgstr ""
 
 msgid "The required RECORD subcommand was not present."
 msgstr ""
 
-#: src/file-type.c:259
+#: src/file-type.c:261
 msgid "The required CASE subcommand was not present."
 msgstr ""
 
 msgid "The required CASE subcommand was not present."
 msgstr ""
 
-#: src/file-type.c:265
+#: src/file-type.c:267
 msgid "CASE and RECORD must specify different variable names."
 msgstr ""
 
 msgid "CASE and RECORD must specify different variable names."
 msgstr ""
 
-#: src/file-type.c:314
+#: src/file-type.c:322
 msgid "Column value must be positive."
 msgstr ""
 
 msgid "Column value must be positive."
 msgstr ""
 
-#: src/file-type.c:329
+#: src/file-type.c:338
 msgid "Ending column precedes beginning column."
 msgstr ""
 
 msgid "Ending column precedes beginning column."
 msgstr ""
 
-#: src/file-type.c:348
+#: src/file-type.c:358
 msgid "Bad format specifier name."
 msgstr ""
 
 msgid "Bad format specifier name."
 msgstr ""
 
-#: src/file-type.c:409 src/file-type.c:568
+#: src/file-type.c:387 src/file-type.c:578
 msgid ""
 "This command may only appear within a FILE TYPE/END FILE TYPE structure."
 msgstr ""
 
 msgid ""
 "This command may only appear within a FILE TYPE/END FILE TYPE structure."
 msgstr ""
 
-#: src/file-type.c:416
+#: src/file-type.c:410
 msgid "OTHER may appear only on the last RECORD TYPE command."
 msgstr ""
 
 msgid "OTHER may appear only on the last RECORD TYPE command."
 msgstr ""
 
-#: src/file-type.c:426
+#: src/file-type.c:420
 msgid "No input commands (DATA LIST, REPEATING DATA) for above RECORD TYPE."
 msgstr ""
 
 msgid "No input commands (DATA LIST, REPEATING DATA) for above RECORD TYPE."
 msgstr ""
 
-#: src/file-type.c:480
+#: src/file-type.c:474
 msgid ""
 "The CASE subcommand is not allowed on the RECORD TYPE command for FILE TYPE "
 "MIXED."
 msgstr ""
 
 msgid ""
 "The CASE subcommand is not allowed on the RECORD TYPE command for FILE TYPE "
 "MIXED."
 msgstr ""
 
-#: src/file-type.c:490
+#: src/file-type.c:484
 msgid ""
 "No variable name may be specified for the CASE subcommand on RECORD TYPE."
 msgstr ""
 
 msgid ""
 "No variable name may be specified for the CASE subcommand on RECORD TYPE."
 msgstr ""
 
-#: src/file-type.c:498
+#: src/file-type.c:492
 msgid ""
 "The CASE column specification on RECORD TYPE must give a format specifier "
 "that is the same type as that of the CASE column specification given on FILE "
 "TYPE."
 msgstr ""
 
 msgid ""
 "The CASE column specification on RECORD TYPE must give a format specifier "
 "that is the same type as that of the CASE column specification given on FILE "
 "TYPE."
 msgstr ""
 
-#: src/file-type.c:514
+#: src/file-type.c:508
 msgid "WARN or NOWARN expected on DUPLICATE subcommand."
 msgstr ""
 
 msgid "WARN or NOWARN expected on DUPLICATE subcommand."
 msgstr ""
 
-#: src/file-type.c:528
+#: src/file-type.c:522
 msgid "WARN or NOWARN expected on MISSING subcommand."
 msgstr ""
 
 msgid "WARN or NOWARN expected on MISSING subcommand."
 msgstr ""
 
-#: src/file-type.c:541
+#: src/file-type.c:535
 msgid "YES or NO expected on SPREAD subcommand."
 msgstr ""
 
 msgid "YES or NO expected on SPREAD subcommand."
 msgstr ""
 
-#: src/file-type.c:581
+#: src/file-type.c:593
 msgid "No input commands (DATA LIST, REPEATING DATA) on above RECORD TYPE."
 msgstr ""
 
 msgid "No input commands (DATA LIST, REPEATING DATA) on above RECORD TYPE."
 msgstr ""
 
-#: src/file-type.c:588
+#: src/file-type.c:600
 msgid "No commands between FILE TYPE and END FILE TYPE."
 msgstr ""
 
 msgid "No commands between FILE TYPE and END FILE TYPE."
 msgstr ""
 
-#: src/file-type.c:654
+#: src/file-type.c:669
 #, c-format
 msgid "Unknown record type \"%.*s\"."
 msgstr ""
 
 #, c-format
 msgid "Unknown record type \"%.*s\"."
 msgstr ""
 
-#: src/file-type.c:678
+#: src/file-type.c:693
 #, c-format
 msgid "Unknown record type %g."
 msgstr ""
 
 #, c-format
 msgid "Unknown record type %g."
 msgstr ""
 
-#: src/flip.c:162
+#: src/flip.c:210
 #, c-format
 msgid "Could not create acceptable variant for variable %s."
 msgstr ""
 
 #, c-format
 msgid "Could not create acceptable variant for variable %s."
 msgstr ""
 
-#: src/flip.c:178
+#: src/flip.c:226
 msgid "Cannot create more than 99999 variable names."
 msgstr ""
 
 msgid "Cannot create more than 99999 variable names."
 msgstr ""
 
-#: src/flip.c:293
-#, c-format
-msgid "Error reading FLIP source file: %s."
-msgstr ""
-
-#: src/flip.c:380
+#: src/flip.c:270
 msgid "Could not create temporary file for FLIP."
 msgstr ""
 
 msgid "Could not create temporary file for FLIP."
 msgstr ""
 
-#: src/flip.c:390 src/flip.c:409
+#: src/flip.c:277 src/flip.c:339
 #, c-format
 msgid "Error writing FLIP file: %s."
 msgstr ""
 
 #, c-format
 msgid "Error writing FLIP file: %s."
 msgstr ""
 
-#: src/flip.c:445
-msgid "Error creating FLIP source file."
-msgstr ""
-
-#: src/flip.c:448
+#: src/flip.c:381
 #, c-format
 msgid "Error rewinding FLIP file: %s."
 msgstr ""
 
 #, c-format
 msgid "Error rewinding FLIP file: %s."
 msgstr ""
 
-#: src/flip.c:457
+#: src/flip.c:385
+msgid "Error creating FLIP source file."
+msgstr ""
+
+#: src/flip.c:394
 #, c-format
 msgid "Error reading FLIP file: %s."
 msgstr ""
 
 #, c-format
 msgid "Error reading FLIP file: %s."
 msgstr ""
 
-#: src/flip.c:469
+#: src/flip.c:406
 #, c-format
 msgid "Error seeking FLIP source file: %s."
 msgstr ""
 
 #, c-format
 msgid "Error seeking FLIP source file: %s."
 msgstr ""
 
-#: src/flip.c:474
+#: src/flip.c:411
 #, c-format
 msgid "Error writing FLIP source file: %s."
 msgstr ""
 
 #, c-format
 msgid "Error writing FLIP source file: %s."
 msgstr ""
 
-#: src/flip.c:482
+#: src/flip.c:422
 #, c-format
 msgid "Error rewind FLIP source file: %s."
 msgstr ""
 
 #, c-format
 msgid "Error rewind FLIP source file: %s."
 msgstr ""
 
-#: src/format.c:74
+#: src/flip.c:470
+#, c-format
+msgid "Error reading FLIP temporary file: %s."
+msgstr ""
+
+#: src/flip.c:473
+msgid "Unexpected end of file reading FLIP temporary file."
+msgstr ""
+
+#: src/format.c:69
 msgid "X and T format specifiers not allowed here."
 msgstr ""
 
 msgid "X and T format specifiers not allowed here."
 msgstr ""
 
-#: src/format.c:80
+#: src/format.c:76
 #, c-format
 #, c-format
-msgid "%s is not a valid data format."
+msgid "%.*s is not a valid data format."
 msgstr ""
 
 msgstr ""
 
-#: src/format.c:111
+#: src/format.c:127
 #, c-format
 msgid "Format %s may not be used as an input format."
 msgstr ""
 
 #, c-format
 msgid "Format %s may not be used as an input format."
 msgstr ""
 
-#: src/format.c:116
+#: src/format.c:132
 #, c-format
 msgid ""
 "Input format %s specifies a bad width %d.  Format %s requires a width "
 "between %d and %d."
 msgstr ""
 
 #, c-format
 msgid ""
 "Input format %s specifies a bad width %d.  Format %s requires a width "
 "between %d and %d."
 msgstr ""
 
-#: src/format.c:123
+#: src/format.c:139
 #, c-format
 msgid ""
 "Input format %s specifies an odd width %d, but format %s requires an even "
 "width between %d and %d."
 msgstr ""
 
 #, c-format
 msgid ""
 "Input format %s specifies an odd width %d, but format %s requires an even "
 "width between %d and %d."
 msgstr ""
 
-#: src/format.c:130
+#: src/format.c:146
 #, c-format
 msgid ""
 "Input format %s specifies a bad number of implied decimal places %d.  Input "
 "format %s allows up to 16 implied decimal places."
 msgstr ""
 
 #, c-format
 msgid ""
 "Input format %s specifies a bad number of implied decimal places %d.  Input "
 "format %s allows up to 16 implied decimal places."
 msgstr ""
 
-#: src/format.c:150
+#: src/format.c:169
 #, c-format
 msgid ""
 "Output format %s specifies a bad width %d.  Format %s requires a width "
 "between %d and %d."
 msgstr ""
 
 #, c-format
 msgid ""
 "Output format %s specifies a bad width %d.  Format %s requires a width "
 "between %d and %d."
 msgstr ""
 
-#: src/format.c:160
+#: src/format.c:179
 #, c-format
 msgid ""
 "Output format %s requires minimum width %d to allow %d decimal places.  Try %"
 "s%d.%d instead of %s."
 msgstr ""
 
 #, c-format
 msgid ""
 "Output format %s requires minimum width %d to allow %d decimal places.  Try %"
 "s%d.%d instead of %s."
 msgstr ""
 
-#: src/format.c:168
+#: src/format.c:187
 #, c-format
 msgid ""
 "Output format %s specifies an odd width %d, but output format %s requires an "
 "even width between %d and %d."
 msgstr ""
 
 #, c-format
 msgid ""
 "Output format %s specifies an odd width %d, but output format %s requires an "
 "even width between %d and %d."
 msgstr ""
 
-#: src/format.c:175
+#: src/format.c:194
 #, c-format
 msgid ""
 "Output format %s specifies a bad number of implied decimal places %d.  "
 "Output format %s allows a number of implied decimal places between 1 and 16."
 msgstr ""
 
 #, c-format
 msgid ""
 "Output format %s specifies a bad number of implied decimal places %d.  "
 "Output format %s allows a number of implied decimal places between 1 and 16."
 msgstr ""
 
-#: src/format.c:192
+#: src/format.c:211
 #, c-format
 msgid "Can't display a string variable of width %d with format specifier %s."
 msgstr ""
 
 #, c-format
 msgid "Can't display a string variable of width %d with format specifier %s."
 msgstr ""
 
-#: src/format.c:302
+#: src/format.c:329
 msgid "Format specifier expected."
 msgstr ""
 
 msgid "Format specifier expected."
 msgstr ""
 
-#: src/format.c:313
+#: src/format.c:340
 #, c-format
 msgid "Data format %s does not specify a width."
 msgstr ""
 
 #, c-format
 msgid "Data format %s does not specify a width."
 msgstr ""
 
-#: src/format.c:330
+#: src/format.c:357
 #, c-format
 msgid "Data format %s is not valid."
 msgstr ""
 #, c-format
 msgid "Data format %s is not valid."
 msgstr ""
@@ -2305,316 +1693,21 @@ msgstr ""
 msgid "  Name      Print         Write\n"
 msgstr ""
 
 msgid "  Name      Print         Write\n"
 msgstr ""
 
-#: frequencies.c:294
-msgid "ONEPAGE specifier of FORMAT subcommand requires an integer argument."
-msgstr ""
-
-#: frequencies.c:300
-msgid "Bad argument for ONEPAGE specifier of FORMAT subcommand."
-msgstr ""
-
-#: frequencies.c:306
-msgid "`)' expected after argument for ONEPAGE specifier of FORMAT."
+#: src/get.c:112
+#, c-format
+msgid "GET translation table from file to memory:\n"
 msgstr ""
 
 msgstr ""
 
-#: frequencies.c:318
-msgid "`(' expected after LIMIT specifier of FORMAT subcommand."
+#: src/get.c:117 src/get.c:1416
+#, c-format
+msgid "  %8s from %3d,%3d to %3d,%3d\n"
 msgstr ""
 
 msgstr ""
 
-#: frequencies.c:323
-msgid "LIMIT specifier of FORMAT subcommand requires an integer argument."
+#: src/get.c:371
+msgid "All variables deleted from system file dictionary."
 msgstr ""
 
 msgstr ""
 
-#: frequencies.c:329
-msgid "Bad argument for LIMIT specifier of FORMAT subcommand."
-msgstr ""
-
-#: frequencies.c:335
-msgid "`)' expected after argument for LIMIT specifier of FORMAT."
-msgstr ""
-
-#: frequencies.c:399
-msgid "`(' expected after MINIMUM specifier of BARCHART subcommand."
-msgstr ""
-
-#: frequencies.c:404
-msgid "Number expected after MINIMUM specifier of BARCHART subcommand."
-msgstr ""
-
-#: frequencies.c:411
-msgid "`)' expected after argument for MINIMUM specifier of BARCHART."
-msgstr ""
-
-#: frequencies.c:419
-msgid "`(' expected after MAXIMUM specifier of BARCHART subcommand."
-msgstr ""
-
-#: frequencies.c:424
-msgid "Number expected after MAXIMUM specifier of BARCHART subcommand."
-msgstr ""
-
-#: frequencies.c:431
-msgid "`)' expected after argument for MAXIMUM specifier of BARCHART."
-msgstr ""
-
-#: frequencies.c:442
-msgid "FREQ specifier of BARCHART subcommand requires an integer argument."
-msgstr ""
-
-#: frequencies.c:448
-msgid "Bad argument for FREQ specifier of BARCHART subcommand."
-msgstr ""
-
-#: frequencies.c:454
-msgid "`)' expected after argument for FREQ specifier of BARCHART."
-msgstr ""
-
-#: frequencies.c:466
-msgid "PERCENT specifier of BARCHART subcommand requires an integer argument."
-msgstr ""
-
-#: frequencies.c:472
-msgid "Bad argument for PERCENT specifier of BARCHART subcommand."
-msgstr ""
-
-#: frequencies.c:478
-msgid "`)' expected after argument for PERCENT specifier of BARCHART."
-msgstr ""
-
-#: frequencies.c:501
-msgid "`(' expected after MINIMUM specifier of HISTOGRAM subcommand."
-msgstr ""
-
-#: frequencies.c:506
-msgid "Number expected after MINIMUM specifier of HISTOGRAM subcommand."
-msgstr ""
-
-#: frequencies.c:513
-msgid "`)' expected after argument for MINIMUM specifier of HISTOGRAM."
-msgstr ""
-
-#: frequencies.c:521
-msgid "`(' expected after MAXIMUM specifier of HISTOGRAM subcommand."
-msgstr ""
-
-#: frequencies.c:526
-msgid "Number expected after MAXIMUM specifier of HISTOGRAM subcommand."
-msgstr ""
-
-#: frequencies.c:533
-msgid "`)' expected after argument for MAXIMUM specifier of HISTOGRAM."
-msgstr ""
-
-#: frequencies.c:544
-msgid "FREQ specifier of HISTOGRAM subcommand requires an integer argument."
-msgstr ""
-
-#: frequencies.c:550
-msgid "Bad argument for FREQ specifier of HISTOGRAM subcommand."
-msgstr ""
-
-#: frequencies.c:556
-msgid "`)' expected after argument for FREQ specifier of HISTOGRAM."
-msgstr ""
-
-#: frequencies.c:568
-msgid "PERCENT specifier of HISTOGRAM subcommand requires an integer argument."
-msgstr ""
-
-#: frequencies.c:574
-msgid "Bad argument for PERCENT specifier of HISTOGRAM subcommand."
-msgstr ""
-
-#: frequencies.c:580
-msgid "`)' expected after argument for PERCENT specifier of HISTOGRAM."
-msgstr ""
-
-#: frequencies.c:594
-msgid "`(' expected after INCREMENT specifier of HISTOGRAM subcommand."
-msgstr ""
-
-#: frequencies.c:599
-msgid "Number expected after INCREMENT specifier of HISTOGRAM subcommand."
-msgstr ""
-
-#: frequencies.c:605
-msgid "Bad argument for INCREMENT specifier of HISTOGRAM subcommand."
-msgstr ""
-
-#: frequencies.c:611
-msgid "`)' expected after argument for INCREMENT specifier of HISTOGRAM."
-msgstr ""
-
-#: frequencies.c:633
-msgid "`(' expected after MINIMUM specifier of HBAR subcommand."
-msgstr ""
-
-#: frequencies.c:638
-msgid "Number expected after MINIMUM specifier of HBAR subcommand."
-msgstr ""
-
-#: frequencies.c:645
-msgid "`)' expected after argument for MINIMUM specifier of HBAR."
-msgstr ""
-
-#: frequencies.c:653
-msgid "`(' expected after MAXIMUM specifier of HBAR subcommand."
-msgstr ""
-
-#: frequencies.c:658
-msgid "Number expected after MAXIMUM specifier of HBAR subcommand."
-msgstr ""
-
-#: frequencies.c:665
-msgid "`)' expected after argument for MAXIMUM specifier of HBAR."
-msgstr ""
-
-#: frequencies.c:676
-msgid "FREQ specifier of HBAR subcommand requires an integer argument."
-msgstr ""
-
-#: frequencies.c:682
-msgid "Bad argument for FREQ specifier of HBAR subcommand."
-msgstr ""
-
-#: frequencies.c:688
-msgid "`)' expected after argument for FREQ specifier of HBAR."
-msgstr ""
-
-#: frequencies.c:700
-msgid "PERCENT specifier of HBAR subcommand requires an integer argument."
-msgstr ""
-
-#: frequencies.c:706
-msgid "Bad argument for PERCENT specifier of HBAR subcommand."
-msgstr ""
-
-#: frequencies.c:712
-msgid "`)' expected after argument for PERCENT specifier of HBAR."
-msgstr ""
-
-#: frequencies.c:726
-msgid "`(' expected after INCREMENT specifier of HBAR subcommand."
-msgstr ""
-
-#: frequencies.c:731
-msgid "Number expected after INCREMENT specifier of HBAR subcommand."
-msgstr ""
-
-#: frequencies.c:737
-msgid "Bad argument for INCREMENT specifier of HBAR subcommand."
-msgstr ""
-
-#: frequencies.c:743
-msgid "`)' expected after argument for INCREMENT specifier of HBAR."
-msgstr ""
-
-#: frequencies.q:96 src/frequencies.q:96
-msgid "Median"
-msgstr ""
-
-#: frequencies.q:97 src/frequencies.q:97
-msgid "Mode"
-msgstr ""
-
-#: frequencies.q:268 src/frequencies.q:268
-msgid ""
-"At most one of BARCHART, HISTOGRAM, or HBAR should be given.  HBAR will be "
-"assumed.  Argument values will be given precedence increasing along the "
-"order given."
-msgstr ""
-
-#: frequencies.q:349 src/frequencies.q:349
-#, c-format
-msgid ""
-"MAX must be greater than or equal to MIN, if both are specified.  However, "
-"MIN was specified as %g and MAX as %g.  MIN and MAX will be ignored."
-msgstr ""
-
-#: frequencies.q:627 src/frequencies.q:627
-msgid ""
-"Upper limit of integer mode value range must be greater than lower limit."
-msgstr ""
-
-#: frequencies.q:639 src/frequencies.q:639
-#, c-format
-msgid "Variable %s specified multiple times on VARIABLES subcommand."
-msgstr ""
-
-#: frequencies.q:652 src/frequencies.q:652
-#, c-format
-msgid "Integer mode specified, but %s is not a numeric variable."
-msgstr ""
-
-#: frequencies.q:714 src/frequencies.q:714
-msgid "`)' expected after GROUPED interval list."
-msgstr ""
-
-#: frequencies.q:724 src/frequencies.q:724
-#, c-format
-msgid "Variables %s specified on GROUPED but not on VARIABLES."
-msgstr ""
-
-#: frequencies.q:727 src/frequencies.q:727
-#, c-format
-msgid "Variables %s specified multiple times on GROUPED subcommand."
-msgstr ""
-
-#: frequencies.q:787 src/frequencies.q:787
-msgid "Percentile list expected after PERCENTILES."
-msgstr ""
-
-#: frequencies.q:795 src/frequencies.q:795
-msgid "Percentiles must be greater than 0 and less than 100."
-msgstr ""
-
-#: frequencies.q:1000 frequencies.q:1090 frequencies.q:1091 frequencies.q:1121
-#: src/frequencies.q:1000 src/frequencies.q:1090 src/frequencies.q:1091
-#: src/frequencies.q:1121
-msgid "Cum"
-msgstr ""
-
-#: frequencies.q:1002 src/frequencies.q:1002
-msgid "Frequency"
-msgstr ""
-
-#: frequencies.q:1021 src/frequencies.q:1021
-msgid "Value Label"
-msgstr ""
-
-#: frequencies.q:1119 src/frequencies.q:1119
-msgid "Freq"
-msgstr ""
-
-#: frequencies.q:1120 frequencies.q:1122 src/frequencies.q:1120
-#: src/frequencies.q:1122
-msgid "Pct"
-msgstr ""
-
-#: frequencies.q:1277 src/frequencies.q:1277
-#, c-format
-msgid "No valid data for variable %s; statistics not displayed."
-msgstr ""
-
-#: frequencies.q:1300 src/frequencies.q:1300
-msgid "Percentile"
-msgstr ""
-
-#: src/get.c:110
-#, c-format
-msgid "GET translation table from file to memory:\n"
-msgstr ""
-
-#: src/get.c:115 src/get.c:1397
-#, c-format
-msgid "  %8s from %3d,%3d to %3d,%3d\n"
-msgstr ""
-
-#: src/get.c:349
-msgid "All variables deleted from system file dictionary."
-msgstr ""
-
-#: src/get.c:396
+#: src/get.c:418
 #, c-format
 msgid ""
 "Cannot rename %s as %s because there already exists a variable named %s.  To "
 #, c-format
 msgid ""
 "Cannot rename %s as %s because there already exists a variable named %s.  To "
@@ -2622,83 +1715,83 @@ msgid ""
 "as \"/RENAME (A=B)(B=C)(C=A)\", or equivalently, \"/RENAME (A B C=B C A)\"."
 msgstr ""
 
 "as \"/RENAME (A=B)(B=C)(C=A)\", or equivalently, \"/RENAME (A B C=B C A)\"."
 msgstr ""
 
-#: src/get.c:421
+#: src/get.c:443
 msgid "`=' expected after variable list."
 msgstr ""
 
 msgid "`=' expected after variable list."
 msgstr ""
 
-#: src/get.c:428
+#: src/get.c:450
 #, c-format
 msgid ""
 "Number of variables on left side of `=' (%d) does not match number of "
 "variables on right side (%d), in parenthesized group %d of RENAME subcommand."
 msgstr ""
 
 #, c-format
 msgid ""
 "Number of variables on left side of `=' (%d) does not match number of "
 "variables on right side (%d), in parenthesized group %d of RENAME subcommand."
 msgstr ""
 
-#: src/get.c:441
+#: src/get.c:463
 #, c-format
 msgid "Requested renaming duplicates variable name %s."
 msgstr ""
 
 #, c-format
 msgid "Requested renaming duplicates variable name %s."
 msgstr ""
 
-#: src/get.c:461
+#: src/get.c:483
 #, c-format
 msgid ""
 "\n"
 "Variables in dictionary:\n"
 msgstr ""
 
 #, c-format
 msgid ""
 "\n"
 "Variables in dictionary:\n"
 msgstr ""
 
-#: src/get.c:582
+#: src/get.c:607
 msgid "The BY subcommand may be given once at most."
 msgstr ""
 
 msgid "The BY subcommand may be given once at most."
 msgstr ""
 
-#: src/get.c:649
+#: src/get.c:674
 msgid "The active file may not be specified more than once."
 msgstr ""
 
 msgid "The active file may not be specified more than once."
 msgstr ""
 
-#: src/get.c:658
+#: src/get.c:683
 msgid "Cannot specify the active file since no active file has been defined."
 msgstr ""
 
 msgid "Cannot specify the active file since no active file has been defined."
 msgstr ""
 
-#: src/get.c:690
+#: src/get.c:715
 msgid ""
 "IN, FIRST, and LAST subcommands may not occur before the first FILE or TABLE."
 msgstr ""
 
 msgid ""
 "IN, FIRST, and LAST subcommands may not occur before the first FILE or TABLE."
 msgstr ""
 
-#: src/get.c:722
+#: src/get.c:747
 #, c-format
 msgid "Multiple %s subcommands for a single FILE or TABLE."
 msgstr ""
 
 #, c-format
 msgid "Multiple %s subcommands for a single FILE or TABLE."
 msgstr ""
 
-#: src/get.c:732
+#: src/get.c:757
 #, c-format
 msgid "Duplicate variable name %s while creating %s variable."
 msgstr ""
 
 #, c-format
 msgid "Duplicate variable name %s while creating %s variable."
 msgstr ""
 
-#: src/get.c:746
+#: src/get.c:771
 msgid ""
 "RENAME, KEEP, and DROP subcommands may not occur before the first FILE or "
 "TABLE."
 msgstr ""
 
 msgid ""
 "RENAME, KEEP, and DROP subcommands may not occur before the first FILE or "
 "TABLE."
 msgstr ""
 
-#: src/get.c:770
+#: src/get.c:795
 msgid "The BY subcommand is required when a TABLE subcommand is given."
 msgstr ""
 
 msgid "The BY subcommand is required when a TABLE subcommand is given."
 msgstr ""
 
-#: src/get.c:791
+#: src/get.c:816
 #, c-format
 msgid "File %s lacks BY variable %s."
 msgstr ""
 
 #, c-format
 msgid "File %s lacks BY variable %s."
 msgstr ""
 
-#: src/get.c:1310
+#: src/get.c:1328
 #, c-format
 msgid ""
 "Variable %s in file %s (%s) has different type or width from the same "
 "variable in earlier file (%s)."
 msgstr ""
 
 #, c-format
 msgid ""
 "Variable %s in file %s (%s) has different type or width from the same "
 "variable in earlier file (%s)."
 msgstr ""
 
-#: src/get.c:1359
+#: src/get.c:1378
 msgid "expecting COMM or TAPE"
 msgstr ""
 
 msgid "expecting COMM or TAPE"
 msgstr ""
 
-#: src/get.c:1392
+#: src/get.c:1411
 #, c-format
 msgid "IMPORT translation table from file to memory:\n"
 msgstr ""
 #, c-format
 msgid "IMPORT translation table from file to memory:\n"
 msgstr ""
@@ -2718,7 +1811,7 @@ msgstr ""
 msgid "Opening `%s': %s."
 msgstr ""
 
 msgid "Opening `%s': %s."
 msgstr ""
 
-#: src/getline.c:330 src/html.c:330 src/postscript.c:1463
+#: src/getline.c:330 src/html.c:330 src/postscript.c:1461
 #, c-format
 msgid "Reading `%s': %s."
 msgstr ""
 #, c-format
 msgid "Reading `%s': %s."
 msgstr ""
@@ -2728,24 +1821,24 @@ msgstr ""
 msgid "Closing `%s': %s."
 msgstr ""
 
 msgid "Closing `%s': %s."
 msgstr ""
 
-#: src/glob.c:217
+#: src/glob.c:212
 msgid "data> "
 msgstr ""
 
 msgid "data> "
 msgstr ""
 
-#: src/glob.c:274
+#: src/glob.c:269
 msgid "Specify a terminal type with `setenv TERM <yourtype>'."
 msgstr ""
 
 msgid "Specify a terminal type with `setenv TERM <yourtype>'."
 msgstr ""
 
-#: src/glob.c:280
+#: src/glob.c:275
 msgid "Could not access the termcap data base."
 msgstr ""
 
 msgid "Could not access the termcap data base."
 msgstr ""
 
-#: src/glob.c:282
+#: src/glob.c:277
 #, c-format
 msgid "Terminal type `%s' is not defined."
 msgstr ""
 
 #, c-format
 msgid "Terminal type `%s' is not defined."
 msgstr ""
 
-#: src/glob.c:283
+#: src/glob.c:278
 msgid "Assuming screen of size 79x25."
 msgstr ""
 
 msgid "Assuming screen of size 79x25."
 msgstr ""
 
@@ -2897,16 +1990,6 @@ msgstr ""
 msgid "hash table:"
 msgstr ""
 
 msgid "hash table:"
 msgstr ""
 
-#: src/heap.c:167
-#, c-format
-msgid "bad ordering of keys %d and %d\n"
-msgstr ""
-
-#: src/heap.c:177
-#, c-format
-msgid "Heap contents:\n"
-msgstr ""
-
 #: src/html.c:66
 #, c-format
 msgid "HTML driver initializing as `%s'..."
 #: src/html.c:66
 #, c-format
 msgid "HTML driver initializing as `%s'..."
@@ -2928,11 +2011,11 @@ msgstr ""
 msgid "%s: %s: Opening HTML prologue..."
 msgstr ""
 
 msgid "%s: %s: Opening HTML prologue..."
 msgstr ""
 
-#: src/html.c:268 src/html.c:279 src/postscript.c:1355 src/postscript.c:1366
+#: src/html.c:268 src/html.c:279 src/postscript.c:1353 src/postscript.c:1364
 msgid "nobody"
 msgstr ""
 
 msgid "nobody"
 msgstr ""
 
-#: src/html.c:275 src/html.c:280 src/postscript.c:1362 src/postscript.c:1367
+#: src/html.c:275 src/html.c:280 src/postscript.c:1360 src/postscript.c:1365
 msgid "nowhere"
 msgstr ""
 
 msgid "nowhere"
 msgstr ""
 
@@ -2951,7 +2034,7 @@ msgstr ""
 msgid "HTML output driver: %s: %s"
 msgstr ""
 
 msgid "HTML output driver: %s: %s"
 msgstr ""
 
-#: src/html.c:402 list.q:259 src/list.q:259
+#: src/html.c:402 src/list.q:259
 #, c-format
 msgid "Cannot open first page on HTML device %s."
 msgstr ""
 #, c-format
 msgid "Cannot open first page on HTML device %s."
 msgstr ""
@@ -2960,31 +2043,31 @@ msgstr ""
 msgid "Unrecognized filename format."
 msgstr ""
 
 msgid "Unrecognized filename format."
 msgstr ""
 
-#: src/inpt-pgm.c:84
+#: src/inpt-pgm.c:86
 msgid "No matching INPUT PROGRAM command."
 msgstr ""
 
 msgid "No matching INPUT PROGRAM command."
 msgstr ""
 
-#: src/inpt-pgm.c:89
+#: src/inpt-pgm.c:91
 msgid ""
 "No data-input or transformation commands specified between INPUT PROGRAM and "
 "END INPUT PROGRAM."
 msgstr ""
 
 msgid ""
 "No data-input or transformation commands specified between INPUT PROGRAM and "
 "END INPUT PROGRAM."
 msgstr ""
 
-#: src/inpt-pgm.c:283 src/inpt-pgm.c:420
+#: src/inpt-pgm.c:295 src/inpt-pgm.c:438
 msgid ""
 "This command may only be executed between INPUT PROGRAM and END INPUT "
 "PROGRAM."
 msgstr ""
 
 msgid ""
 "This command may only be executed between INPUT PROGRAM and END INPUT "
 "PROGRAM."
 msgstr ""
 
-#: src/inpt-pgm.c:336
+#: src/inpt-pgm.c:351
 msgid "COLUMN subcommand multiply specified."
 msgstr ""
 
 msgid "COLUMN subcommand multiply specified."
 msgstr ""
 
-#: src/inpt-pgm.c:350
+#: src/inpt-pgm.c:365
 msgid "expecting file handle name"
 msgstr ""
 
 msgid "expecting file handle name"
 msgstr ""
 
-#: src/inpt-pgm.c:393
+#: src/inpt-pgm.c:410
 msgid ""
 "REREAD: Column numbers must be positive finite numbers.  Column set to 1."
 msgstr ""
 msgid ""
 "REREAD: Column numbers must be positive finite numbers.  Column set to 1."
 msgstr ""
@@ -3048,7 +2131,7 @@ msgstr ""
 msgid "The rest of this command has been discarded."
 msgstr ""
 
 msgid "The rest of this command has been discarded."
 msgstr ""
 
-#: src/lexer.c:842 src/print.c:1150
+#: src/lexer.c:842 src/print.c:1154
 #, c-format
 msgid "<ERROR>"
 msgstr ""
 #, c-format
 msgid "<ERROR>"
 msgstr ""
@@ -3094,323 +2177,228 @@ msgid ""
 "spaces."
 msgstr ""
 
 "spaces."
 msgstr ""
 
-#: list.c:131
-msgid "FROM specifier of CASES subcommand requires an integer argument."
-msgstr ""
-
-#: list.c:137
-msgid "Bad argument for FROM specifier of CASES subcommand."
-msgstr ""
-
-#: list.c:146
-msgid "BY specifier of CASES subcommand requires an integer argument."
-msgstr ""
-
-#: list.c:152
-msgid "Bad argument for BY specifier of CASES subcommand."
-msgstr ""
-
-#: list.c:162
-msgid "TO specifier of CASES subcommand requires an integer argument."
-msgstr ""
-
-#: list.c:168
-msgid "Bad argument for TO specifier of CASES subcommand."
-msgstr ""
-
-#: list.q:152 src/list.q:152
-#, c-format
-msgid ""
-"The first case (%ld) specified precedes the last case (%ld) specified.  The "
-"values will be swapped."
-msgstr ""
-
-#: list.q:160 src/list.q:160
-#, c-format
-msgid ""
-"The first case (%ld) to list is less than 1.  The value is being reset to 1."
-msgstr ""
-
-#: list.q:166 src/list.q:166
-#, c-format
-msgid ""
-"The last case (%ld) to list is less than 1.  The value is being reset to 1."
-msgstr ""
-
-#: list.q:172 src/list.q:172
-#, c-format
-msgid "The step value %ld is less than 1.  The value is being reset to 1."
-msgstr ""
-
-#: list.q:199 src/list.q:199
-msgid "`/FORMAT WEIGHT' specified, but weighting is not on."
-msgstr ""
-
-#: list.q:445 src/list.q:445
-msgid "Line"
-msgstr ""
-
-#: src/loop.c:201
+#: src/loop.c:194
 msgid "The index variable may not be a string variable."
 msgstr ""
 
 msgid "The index variable may not be a string variable."
 msgstr ""
 
-#: src/loop.c:316
+#: src/loop.c:309
 msgid "There is no LOOP command that corresponds to this END LOOP."
 msgstr ""
 
 msgid "There is no LOOP command that corresponds to this END LOOP."
 msgstr ""
 
-#: src/loop.c:516
+#: src/loop.c:512
 msgid ""
 "This command may only appear enclosed in a LOOP/END LOOP control structure."
 msgstr ""
 
 msgid ""
 "This command may only appear enclosed in a LOOP/END LOOP control structure."
 msgstr ""
 
-#: src/loop.c:522
+#: src/loop.c:518
 msgid "BREAK not enclosed in DO IF structure."
 msgstr ""
 
 msgid "BREAK not enclosed in DO IF structure."
 msgstr ""
 
-#: src/loop.c:599
+#: src/loop.c:596
 #, c-format
 msgid "%s without %s."
 msgstr ""
 
 #, c-format
 msgid "%s without %s."
 msgstr ""
 
-#: src/main.c:63
+#: src/main.c:71
 msgid "Error initializing output drivers."
 msgstr ""
 
 msgid "Error initializing output drivers."
 msgstr ""
 
-#: src/main.c:124
+#: src/main.c:132
 msgid "This command not executed."
 msgstr ""
 
 msgid "This command not executed."
 msgstr ""
 
-#: src/main.c:128
+#: src/main.c:136
 msgid ""
 "Skipping the rest of this command.  Part of this command may have been "
 "executed."
 msgstr ""
 
 msgid ""
 "Skipping the rest of this command.  Part of this command may have been "
 "executed."
 msgstr ""
 
-#: src/main.c:133
+#: src/main.c:141
 msgid ""
 "Skipping the rest of this command.  This command was fully executed up to "
 "this point."
 msgstr ""
 
 msgid ""
 "Skipping the rest of this command.  This command was fully executed up to "
 "this point."
 msgstr ""
 
-#: src/main.c:138
+#: src/main.c:146
 msgid ""
 "Trailing garbage was encountered following this command.  The command was "
 "fully executed to this point."
 msgstr ""
 
 msgid ""
 "Trailing garbage was encountered following this command.  The command was "
 "fully executed to this point."
 msgstr ""
 
-#: src/matrix-data.c:186
+#: src/matrix-data.c:191
 msgid "VARIABLES subcommand multiply specified."
 msgstr ""
 
 msgid "VARIABLES subcommand multiply specified."
 msgstr ""
 
-#: src/matrix-data.c:201
+#: src/matrix-data.c:206
 msgid "VARNAME_ cannot be explicitly specified on VARIABLES."
 msgstr ""
 
 msgid "VARNAME_ cannot be explicitly specified on VARIABLES."
 msgstr ""
 
-#: src/matrix-data.c:265
+#: src/matrix-data.c:271
 msgid "in FORMAT subcommand"
 msgstr ""
 
 msgid "in FORMAT subcommand"
 msgstr ""
 
-#: src/matrix-data.c:276
+#: src/matrix-data.c:282
 msgid "SPLIT subcommand multiply specified."
 msgstr ""
 
 msgid "SPLIT subcommand multiply specified."
 msgstr ""
 
-#: src/matrix-data.c:283
+#: src/matrix-data.c:289
 msgid "in SPLIT subcommand"
 msgstr ""
 
 msgid "in SPLIT subcommand"
 msgstr ""
 
-#: src/matrix-data.c:292
+#: src/matrix-data.c:298
 msgid "Split variable may not be named ROWTYPE_ or VARNAME_."
 msgstr ""
 
 msgid "Split variable may not be named ROWTYPE_ or VARNAME_."
 msgstr ""
 
-#: src/matrix-data.c:324
+#: src/matrix-data.c:331
 #, c-format
 msgid "Split variable %s is already another type."
 msgstr ""
 
 #, c-format
 msgid "Split variable %s is already another type."
 msgstr ""
 
-#: src/matrix-data.c:339
+#: src/matrix-data.c:346
 msgid "FACTORS subcommand multiply specified."
 msgstr ""
 
 msgid "FACTORS subcommand multiply specified."
 msgstr ""
 
-#: src/matrix-data.c:354
+#: src/matrix-data.c:361
 #, c-format
 msgid "Factor variable %s is already another type."
 msgstr ""
 
 #, c-format
 msgid "Factor variable %s is already another type."
 msgstr ""
 
-#: src/matrix-data.c:369
+#: src/matrix-data.c:376
 msgid "CELLS subcommand multiply specified."
 msgstr ""
 
 msgid "CELLS subcommand multiply specified."
 msgstr ""
 
-#: src/matrix-data.c:375 src/matrix-data.c:394
+#: src/matrix-data.c:382 src/matrix-data.c:401
 msgid "expecting positive integer"
 msgstr ""
 
 msgid "expecting positive integer"
 msgstr ""
 
-#: src/matrix-data.c:388
+#: src/matrix-data.c:395
 msgid "N subcommand multiply specified."
 msgstr ""
 
 msgid "N subcommand multiply specified."
 msgstr ""
 
-#: src/matrix-data.c:409
+#: src/matrix-data.c:416
 msgid "CONTENTS subcommand multiply specified."
 msgstr ""
 
 msgid "CONTENTS subcommand multiply specified."
 msgstr ""
 
-#: src/matrix-data.c:429
+#: src/matrix-data.c:436
 msgid "Nested parentheses not allowed."
 msgstr ""
 
 msgid "Nested parentheses not allowed."
 msgstr ""
 
-#: src/matrix-data.c:439
+#: src/matrix-data.c:446
 msgid "Mismatched right parenthesis (`(')."
 msgstr ""
 
 msgid "Mismatched right parenthesis (`(')."
 msgstr ""
 
-#: src/matrix-data.c:444
+#: src/matrix-data.c:451
 msgid "Empty parentheses not allowed."
 msgstr ""
 
 msgid "Empty parentheses not allowed."
 msgstr ""
 
-#: src/matrix-data.c:457 src/matrix-data.c:465
+#: src/matrix-data.c:464 src/matrix-data.c:472
 msgid "in CONTENTS subcommand"
 msgstr ""
 
 msgid "in CONTENTS subcommand"
 msgstr ""
 
-#: src/matrix-data.c:472
+#: src/matrix-data.c:479
 #, c-format
 msgid "Content multiply specified for %s."
 msgstr ""
 
 #, c-format
 msgid "Content multiply specified for %s."
 msgstr ""
 
-#: src/matrix-data.c:489
+#: src/matrix-data.c:496
 msgid "Missing right parenthesis."
 msgstr ""
 
 msgid "Missing right parenthesis."
 msgstr ""
 
-#: src/matrix-data.c:509
+#: src/matrix-data.c:516
 msgid "Missing VARIABLES subcommand."
 msgstr ""
 
 msgid "Missing VARIABLES subcommand."
 msgstr ""
 
-#: src/matrix-data.c:515
+#: src/matrix-data.c:522
 msgid ""
 "CONTENTS subcommand not specified: assuming file contains only CORR matrix."
 msgstr ""
 
 msgid ""
 "CONTENTS subcommand not specified: assuming file contains only CORR matrix."
 msgstr ""
 
-#: src/matrix-data.c:525
+#: src/matrix-data.c:532
 msgid ""
 "Missing CELLS subcommand.  CELLS is required when ROWTYPE_ is not given in "
 "the data and factors are present."
 msgstr ""
 
 msgid ""
 "Missing CELLS subcommand.  CELLS is required when ROWTYPE_ is not given in "
 "the data and factors are present."
 msgstr ""
 
-#: src/matrix-data.c:533
+#: src/matrix-data.c:540
 msgid "Split file values must be present in the data when ROWTYPE_ is present."
 msgstr ""
 
 msgid "Split file values must be present in the data when ROWTYPE_ is present."
 msgstr ""
 
-#: src/matrix-data.c:588
+#: src/matrix-data.c:595
 msgid "No continuous variables specified."
 msgstr ""
 
 msgid "No continuous variables specified."
 msgstr ""
 
-#: src/matrix-data.c:1002
+#: src/matrix-data.c:987
 #, c-format
 msgid "End of line expected %s while reading %s."
 msgstr ""
 
 #, c-format
 msgid "End of line expected %s while reading %s."
 msgstr ""
 
-#: src/matrix-data.c:1190
+#: src/matrix-data.c:1179
 #, c-format
 msgid "expecting value for %s %s"
 msgstr ""
 
 #, c-format
 msgid "expecting value for %s %s"
 msgstr ""
 
-#: src/matrix-data.c:1342
+#: src/matrix-data.c:1339
 #, c-format
 msgid "Syntax error expecting SPLIT FILE value %s."
 msgstr ""
 
 #, c-format
 msgid "Syntax error expecting SPLIT FILE value %s."
 msgstr ""
 
-#: src/matrix-data.c:1351
+#: src/matrix-data.c:1348
 #, c-format
 msgid "Expecting value %g for %s."
 msgstr ""
 
 #, c-format
 msgid "Expecting value %g for %s."
 msgstr ""
 
-#: src/matrix-data.c:1389 src/matrix-data.c:1823
+#: src/matrix-data.c:1387 src/matrix-data.c:1842
 #, c-format
 msgid "Syntax error expecting factor value %s."
 msgstr ""
 
 #, c-format
 msgid "Syntax error expecting factor value %s."
 msgstr ""
 
-#: src/matrix-data.c:1398
+#: src/matrix-data.c:1396
 #, c-format
 msgid "Syntax error expecting value %g for %s %s."
 msgstr ""
 
 #, c-format
 msgid "Syntax error expecting value %g for %s %s."
 msgstr ""
 
-#: src/matrix-data.c:1612
+#: src/matrix-data.c:1623
 #, c-format
 msgid "Syntax error %s expecting SPLIT FILE value."
 msgstr ""
 
 #, c-format
 msgid "Syntax error %s expecting SPLIT FILE value."
 msgstr ""
 
-#: src/matrix-data.c:1736
+#: src/matrix-data.c:1751
 #, c-format
 msgid ""
 "Expected %d lines of data for %s content; actually saw %d lines.  No data "
 "will be output for this content."
 msgstr ""
 
 #, c-format
 msgid ""
 "Expected %d lines of data for %s content; actually saw %d lines.  No data "
 "will be output for this content."
 msgstr ""
 
-#: src/matrix-data.c:1768
+#: src/matrix-data.c:1785
 #, c-format
 msgid "Multiply specified ROWTYPE_ %s."
 msgstr ""
 
 #, c-format
 msgid "Multiply specified ROWTYPE_ %s."
 msgstr ""
 
-#: src/matrix-data.c:1773
+#: src/matrix-data.c:1790
 #, c-format
 msgid "Syntax error %s expecting ROWTYPE_ string."
 msgstr ""
 
 #, c-format
 msgid "Syntax error %s expecting ROWTYPE_ string."
 msgstr ""
 
-#: src/matrix-data.c:1792
+#: src/matrix-data.c:1810
 #, c-format
 msgid "Syntax error %s."
 msgstr ""
 
 #, c-format
 msgid "Syntax error %s."
 msgstr ""
 
-#: src/matrix-data.c:1938
+#: src/matrix-data.c:1958
 #, c-format
 msgid "Duplicate specification for %s."
 msgstr ""
 
 #, c-format
 msgid "Duplicate specification for %s."
 msgstr ""
 
-#: src/matrix-data.c:1950
+#: src/matrix-data.c:1970
 #, c-format
 msgid "Too many rows of matrix data for %s."
 msgstr ""
 
 #, c-format
 msgid "Too many rows of matrix data for %s."
 msgstr ""
 
-#: src/matrix-data.c:1995
+#: src/matrix-data.c:2016
 #, c-format
 msgid "Syntax error expecting value for %s %s."
 msgstr ""
 
 #, c-format
 msgid "Syntax error expecting value for %s %s."
 msgstr ""
 
-#: means.c:210
-msgid "CROSSBREAK subcommand may be given only once."
-msgstr ""
-
-#: means.q:106 src/means.q:106
-msgid "Missing required subcommand TABLES."
-msgstr ""
-
-#: means.q:144 src/means.q:144
-msgid "TABLES or CROSSBREAK subcommand may not appear more than once."
-msgstr ""
-
-#: means.q:181 src/means.q:181
-#, c-format
-msgid ""
-"Variable %s specified on TABLES or CROSSBREAK, but not specified on "
-"VARIABLES."
-msgstr ""
-
-#: means.q:195 src/means.q:195
-#, c-format
-msgid "LOWEST and HIGHEST may not be used for independent variables (%s)."
-msgstr ""
-
-#: means.q:203 src/means.q:203
-#, c-format
-msgid ""
-"Independent variables (%s) may not have noninteger endpoints in their ranges."
-msgstr ""
-
-#: means.q:236 src/means.q:236
-msgid "VARIABLES must precede TABLES."
-msgstr ""
-
-#: means.q:293 src/means.q:293
-#, c-format
-msgid "Upper value (%g) is less than lower value (%g) on VARIABLES subcommand."
-msgstr ""
-
 #: src/mis-val.c:77
 msgid "`)' expected after value specification."
 msgstr ""
 #: src/mis-val.c:77
 msgid "`)' expected after value specification."
 msgstr ""
@@ -3575,12 +2563,12 @@ msgstr ""
 msgid "%s: Opening device description file..."
 msgstr ""
 
 msgid "%s: Opening device description file..."
 msgstr ""
 
-#: src/output.c:304 src/output.c:1164 src/postscript.c:1097
+#: src/output.c:304 src/output.c:1165 src/postscript.c:1097
 #, c-format
 msgid "Opening %s: %s."
 msgstr ""
 
 #, c-format
 msgid "Opening %s: %s."
 msgstr ""
 
-#: src/output.c:315 src/output.c:1175 src/postscript.c:1114
+#: src/output.c:315 src/output.c:1176 src/postscript.c:1112
 #, c-format
 msgid "Reading %s: %s."
 msgstr ""
 #, c-format
 msgid "Reading %s: %s."
 msgstr ""
@@ -3589,7 +2577,7 @@ msgstr ""
 msgid "Syntax error."
 msgstr ""
 
 msgid "Syntax error."
 msgstr ""
 
-#: src/output.c:347 src/postscript.c:1125
+#: src/output.c:347 src/postscript.c:1123
 #, c-format
 msgid "Closing %s: %s."
 msgstr ""
 #, c-format
 msgid "Closing %s: %s."
 msgstr ""
@@ -3617,112 +2605,112 @@ msgstr ""
 msgid "Syntax error in string constant."
 msgstr ""
 
 msgid "Syntax error in string constant."
 msgstr ""
 
-#: src/output.c:621
+#: src/output.c:622
 msgid "Syntax error in options."
 msgstr ""
 
 msgid "Syntax error in options."
 msgstr ""
 
-#: src/output.c:631
+#: src/output.c:632
 msgid "Syntax error in options (`=' expected)."
 msgstr ""
 
 msgid "Syntax error in options (`=' expected)."
 msgstr ""
 
-#: src/output.c:638
+#: src/output.c:639
 msgid "Syntax error in options (value expected after `=')."
 msgstr ""
 
 msgid "Syntax error in options (value expected after `=')."
 msgstr ""
 
-#: src/output.c:710
+#: src/output.c:711
 msgid "Driver name expected."
 msgstr ""
 
 msgid "Driver name expected."
 msgstr ""
 
-#: src/output.c:731
+#: src/output.c:732
 msgid "Class name expected."
 msgstr ""
 
 msgid "Class name expected."
 msgstr ""
 
-#: src/output.c:740
+#: src/output.c:741
 #, c-format
 msgid "Unknown output driver class `%s'."
 msgstr ""
 
 #, c-format
 msgid "Unknown output driver class `%s'."
 msgstr ""
 
-#: src/output.c:747
+#: src/output.c:748
 #, c-format
 msgid "Can't initialize output driver class `%s'."
 msgstr ""
 
 #, c-format
 msgid "Can't initialize output driver class `%s'."
 msgstr ""
 
-#: src/output.c:754
+#: src/output.c:755
 #, c-format
 msgid "Can't initialize output driver `%s' of class `%s'."
 msgstr ""
 
 #, c-format
 msgid "Can't initialize output driver `%s' of class `%s'."
 msgstr ""
 
-#: src/output.c:776
+#: src/output.c:777
 #, c-format
 msgid "Unknown device type `%s'."
 msgstr ""
 
 #, c-format
 msgid "Unknown device type `%s'."
 msgstr ""
 
-#: src/output.c:788
+#: src/output.c:789
 #, c-format
 msgid "Can't complete initialization of output driver `%s' of class `%s'."
 msgstr ""
 
 #, c-format
 msgid "Can't complete initialization of output driver `%s' of class `%s'."
 msgstr ""
 
-#: src/output.c:835
+#: src/output.c:836
 #, c-format
 msgid "Can't deinitialize output driver class `%s'."
 msgstr ""
 
 #, c-format
 msgid "Can't deinitialize output driver class `%s'."
 msgstr ""
 
-#: src/output.c:908
+#: src/output.c:909
 #, c-format
 msgid "Trying to find keyword `%s'...\n"
 msgstr ""
 
 #, c-format
 msgid "Trying to find keyword `%s'...\n"
 msgstr ""
 
-#: src/output.c:1025
+#: src/output.c:1026
 #, c-format
 msgid "Unit \"%s\" is unknown in dimension \"%s\"."
 msgstr ""
 
 #, c-format
 msgid "Unit \"%s\" is unknown in dimension \"%s\"."
 msgstr ""
 
-#: src/output.c:1040
+#: src/output.c:1041
 #, c-format
 msgid "Bad dimension \"%s\"."
 msgstr ""
 
 #, c-format
 msgid "Bad dimension \"%s\"."
 msgstr ""
 
-#: src/output.c:1066
+#: src/output.c:1067
 #, c-format
 msgid "`x' expected in paper size `%s'."
 msgstr ""
 
 #, c-format
 msgid "`x' expected in paper size `%s'."
 msgstr ""
 
-#: src/output.c:1076
+#: src/output.c:1077
 #, c-format
 msgid "Trailing garbage `%s' on paper size `%s'."
 msgstr ""
 
 #, c-format
 msgid "Trailing garbage `%s' on paper size `%s'."
 msgstr ""
 
-#: src/output.c:1125
+#: src/output.c:1126
 msgid "Paper size name must not be empty."
 msgstr ""
 
 msgid "Paper size name must not be empty."
 msgstr ""
 
-#: src/output.c:1156
+#: src/output.c:1157
 msgid "Cannot find `papersize' configuration file."
 msgstr ""
 
 msgid "Cannot find `papersize' configuration file."
 msgstr ""
 
-#: src/output.c:1160
+#: src/output.c:1161
 #, c-format
 msgid "%s: Opening paper size definition file..."
 msgstr ""
 
 #, c-format
 msgid "%s: Opening paper size definition file..."
 msgstr ""
 
-#: src/output.c:1202
+#: src/output.c:1203
 msgid "Syntax error in paper size definition."
 msgstr ""
 
 msgid "Syntax error in paper size definition."
 msgstr ""
 
-#: src/output.c:1231
+#: src/output.c:1232
 msgid "Paper size definition file read successfully."
 msgstr ""
 
 msgid "Paper size definition file read successfully."
 msgstr ""
 
-#: src/output.c:1233
+#: src/output.c:1234
 msgid "Error reading paper size definition file."
 msgstr ""
 
 msgid "Error reading paper size definition file."
 msgstr ""
 
-#: src/output.c:1302
+#: src/output.c:1303
 #, c-format
 msgid "Error closing page on %s device of %s class."
 msgstr ""
 
 #, c-format
 msgid "Error closing page on %s device of %s class."
 msgstr ""
 
-#: src/output.c:1306
+#: src/output.c:1307
 #, c-format
 msgid "Error opening page on %s device of %s class."
 msgstr ""
 #, c-format
 msgid "Error opening page on %s device of %s class."
 msgstr ""
@@ -3800,119 +2788,119 @@ msgstr ""
 msgid "Bad character in time."
 msgstr ""
 
 msgid "Bad character in time."
 msgstr ""
 
-#: src/pfm-read.c:622 src/pfm-read.c:631 src/sfm-read.c:900 src/sfm-read.c:910
+#: src/pfm-read.c:622 src/pfm-read.c:629 src/sfm-read.c:900 src/sfm-read.c:908
 #, c-format
 msgid "%s: Bad format specifier byte (%d)."
 msgstr ""
 
 #, c-format
 msgid "%s: Bad format specifier byte (%d)."
 msgstr ""
 
-#: src/pfm-read.c:633
+#: src/pfm-read.c:631
 #, c-format
 msgid "%s variable %s has %s format specifier %s."
 msgstr ""
 
 #, c-format
 msgid "%s variable %s has %s format specifier %s."
 msgstr ""
 
-#: src/pfm-read.c:634 src/print.c:608 src/sfm-read.c:914
+#: src/pfm-read.c:632 src/print.c:610 src/sfm-read.c:912
 msgid "String"
 msgstr ""
 
 msgid "String"
 msgstr ""
 
-#: src/pfm-read.c:634 src/print.c:608 src/sfm-read.c:914
+#: src/pfm-read.c:632 src/print.c:610 src/sfm-read.c:912
 msgid "Numeric"
 msgstr ""
 
 msgid "Numeric"
 msgstr ""
 
-#: src/pfm-read.c:673
+#: src/pfm-read.c:671
 msgid "Expected variable count record."
 msgstr ""
 
 msgid "Expected variable count record."
 msgstr ""
 
-#: src/pfm-read.c:677
+#: src/pfm-read.c:675
 #, c-format
 msgid "Invalid number of variables %d."
 msgstr ""
 
 #, c-format
 msgid "Invalid number of variables %d."
 msgstr ""
 
-#: src/pfm-read.c:687
+#: src/pfm-read.c:685
 #, c-format
 msgid "Unexpected flag value %d."
 msgstr ""
 
 #, c-format
 msgid "Unexpected flag value %d."
 msgstr ""
 
-#: src/pfm-read.c:701
+#: src/pfm-read.c:699
 #, c-format
 msgid "Weight variable name (%s) truncated."
 msgstr ""
 
 #, c-format
 msgid "Weight variable name (%s) truncated."
 msgstr ""
 
-#: src/pfm-read.c:716
+#: src/pfm-read.c:714
 msgid "Expected variable record."
 msgstr ""
 
 msgid "Expected variable record."
 msgstr ""
 
-#: src/pfm-read.c:722
+#: src/pfm-read.c:720
 #, c-format
 msgid "Invalid variable width %d."
 msgstr ""
 
 #, c-format
 msgid "Invalid variable width %d."
 msgstr ""
 
-#: src/pfm-read.c:740
+#: src/pfm-read.c:738
 #, c-format
 msgid "position %d: Variable name has %u characters."
 msgstr ""
 
 #, c-format
 msgid "position %d: Variable name has %u characters."
 msgstr ""
 
-#: src/pfm-read.c:744
+#: src/pfm-read.c:742
 #, c-format
 msgid "position %d: Variable name begins with invalid character."
 msgstr ""
 
 #, c-format
 msgid "position %d: Variable name begins with invalid character."
 msgstr ""
 
-#: src/pfm-read.c:748
+#: src/pfm-read.c:746
 #, c-format
 msgid "position %d: Variable name begins with lowercase letter %c."
 msgstr ""
 
 #, c-format
 msgid "position %d: Variable name begins with lowercase letter %c."
 msgstr ""
 
-#: src/pfm-read.c:761
+#: src/pfm-read.c:759
 #, c-format
 msgid "position %d: Variable name character %d is lowercase letter %c."
 msgstr ""
 
 #, c-format
 msgid "position %d: Variable name character %d is lowercase letter %c."
 msgstr ""
 
-#: src/pfm-read.c:771
+#: src/pfm-read.c:769
 #, c-format
 msgid "position %d: character `\\%03o' is not valid in a variable name."
 msgstr ""
 
 #, c-format
 msgid "position %d: character `\\%03o' is not valid in a variable name."
 msgstr ""
 
-#: src/pfm-read.c:782
+#: src/pfm-read.c:780
 #, c-format
 msgid "Duplicate variable name %s."
 msgstr ""
 
 #, c-format
 msgid "Duplicate variable name %s."
 msgstr ""
 
-#: src/pfm-read.c:826
+#: src/pfm-read.c:824
 #, c-format
 msgid "Bad missing values for %s."
 msgstr ""
 
 #, c-format
 msgid "Bad missing values for %s."
 msgstr ""
 
-#: src/pfm-read.c:849
+#: src/pfm-read.c:847
 #, c-format
 msgid "Weighting variable %s not present in dictionary."
 msgstr ""
 
 #, c-format
 msgid "Weighting variable %s not present in dictionary."
 msgstr ""
 
-#: src/pfm-read.c:922
+#: src/pfm-read.c:920
 #, c-format
 msgid "Unknown variable %s while parsing value labels."
 msgstr ""
 
 #, c-format
 msgid "Unknown variable %s while parsing value labels."
 msgstr ""
 
-#: src/pfm-read.c:925
+#: src/pfm-read.c:923
 #, c-format
 msgid ""
 "Cannot assign value labels to %s and %s, which have different variable types "
 "or widths."
 msgstr ""
 
 #, c-format
 msgid ""
 "Cannot assign value labels to %s and %s, which have different variable types "
 "or widths."
 msgstr ""
 
-#: src/pfm-read.c:958
+#: src/pfm-read.c:956
 #, c-format
 msgid "Duplicate label for value %g for variable %s."
 msgstr ""
 
 #, c-format
 msgid "Duplicate label for value %g for variable %s."
 msgstr ""
 
-#: src/pfm-read.c:961
+#: src/pfm-read.c:959
 #, c-format
 msgid "Duplicate label for value `%.*s' for variable %s."
 msgstr ""
 
 #, c-format
 msgid "Duplicate label for value `%.*s' for variable %s."
 msgstr ""
 
-#: src/pfm-read.c:1031
+#: src/pfm-read.c:1029
 msgid "End of file midway through case."
 msgstr ""
 
 msgid "End of file midway through case."
 msgstr ""
 
-#: src/pfm-read.c:1041
+#: src/pfm-read.c:1039
 msgid "reading as a portable file"
 msgstr ""
 
 msgid "reading as a portable file"
 msgstr ""
 
@@ -4040,118 +3028,124 @@ msgstr ""
 msgid "%s: %s: Opening PostScript encoding list file."
 msgstr ""
 
 msgid "%s: %s: Opening PostScript encoding list file."
 msgstr ""
 
-#: src/postscript.c:1127
+#: src/postscript.c:1125
 #, c-format
 msgid "%s: PostScript encoding list file read successfully."
 msgstr ""
 
 #, c-format
 msgid "%s: PostScript encoding list file read successfully."
 msgstr ""
 
-#: src/postscript.c:1141
+#: src/postscript.c:1139
 msgid "<<default encoding>>"
 msgstr ""
 
 msgid "<<default encoding>>"
 msgstr ""
 
-#: src/postscript.c:1299
+#: src/postscript.c:1297
 msgid ""
 "Cannot find PostScript prologue.  The use of `-vv' on the command line is "
 "suggested as a debugging aid."
 msgstr ""
 
 msgid ""
 "Cannot find PostScript prologue.  The use of `-vv' on the command line is "
 "suggested as a debugging aid."
 msgstr ""
 
-#: src/postscript.c:1304
+#: src/postscript.c:1302
 #, c-format
 msgid "%s: %s: Opening PostScript prologue..."
 msgstr ""
 
 #, c-format
 msgid "%s: %s: Opening PostScript prologue..."
 msgstr ""
 
-#: src/postscript.c:1476
+#: src/postscript.c:1474
 #, c-format
 msgid "%s: PostScript prologue read successfully."
 msgstr ""
 
 #, c-format
 msgid "%s: PostScript prologue read successfully."
 msgstr ""
 
-#: src/postscript.c:1480
+#: src/postscript.c:1478
 #, c-format
 msgid "%s: Error reading PostScript prologue."
 msgstr ""
 
 #, c-format
 msgid "%s: Error reading PostScript prologue."
 msgstr ""
 
-#: src/postscript.c:1650
+#: src/postscript.c:1648
 #, c-format
 msgid "PostScript output driver: %s: %s"
 msgstr ""
 
 #, c-format
 msgid "PostScript output driver: %s: %s"
 msgstr ""
 
-#: src/postscript.c:2334
+#: src/postscript.c:2332
 #, c-format
 msgid "PostScript driver: Cannot find encoding `%s' for PostScript font `%s'."
 msgstr ""
 
 #, c-format
 msgid "PostScript driver: Cannot find encoding `%s' for PostScript font `%s'."
 msgstr ""
 
-#: src/print.c:186
+#: src/print.c:188
 msgid "expecting a valid subcommand"
 msgstr ""
 
 msgid "expecting a valid subcommand"
 msgstr ""
 
-#: src/print.c:366 src/print.c:383
+#: src/print.c:368 src/print.c:385
 #, c-format
 msgid "%g is not a valid column location."
 msgstr ""
 
 #, c-format
 msgid "%g is not a valid column location."
 msgstr ""
 
-#: src/print.c:377
+#: src/print.c:379
 #, c-format
 msgid "Column location expected following `%d-'."
 msgstr ""
 
 #, c-format
 msgid "Column location expected following `%d-'."
 msgstr ""
 
-#: src/print.c:388
+#: src/print.c:390
 #, c-format
 msgid ""
 "%d-%ld is not a valid column range.  The second column must be greater than "
 "or equal to the first."
 msgstr ""
 
 #, c-format
 msgid ""
 "%d-%ld is not a valid column range.  The second column must be greater than "
 "or equal to the first."
 msgstr ""
 
-#: src/print.c:494
+#: src/print.c:496
 #, c-format
 msgid ""
 "%s is not of the same type as %s.  To specify variables of different types "
 "in the same variable list, use a FORTRAN-like format specifier."
 msgstr ""
 
 #, c-format
 msgid ""
 "%s is not of the same type as %s.  To specify variables of different types "
 "in the same variable list, use a FORTRAN-like format specifier."
 msgstr ""
 
-#: src/print.c:524
+#: src/print.c:526
 msgid ""
 "The ending column for a field must not be less than the starting column."
 msgstr ""
 
 msgid ""
 "The ending column for a field must not be less than the starting column."
 msgstr ""
 
-#: src/print.c:607
+#: src/print.c:609
 #, c-format
 msgid "%s variables cannot be displayed with format %s."
 msgstr ""
 
 #, c-format
 msgid "%s variables cannot be displayed with format %s."
 msgstr ""
 
-#: src/print.c:694
+#: src/print.c:687
+msgid ""
+"The number of format specifications exceeds the number of variable names "
+"given."
+msgstr ""
+
+#: src/print.c:696
 #, c-format
 msgid "Display format %s may not be used with a %s variable."
 msgstr ""
 
 #, c-format
 msgid "Display format %s may not be used with a %s variable."
 msgstr ""
 
-#: src/print.c:844
+#: src/print.c:846
 #, c-format
 msgid "Writing %3d records to file %s."
 msgstr ""
 
 #, c-format
 msgid "Writing %3d records to file %s."
 msgstr ""
 
-#: src/print.c:845
+#: src/print.c:847
 #, c-format
 msgid "Writing %3d records to the listing file."
 msgstr ""
 
 #, c-format
 msgid "Writing %3d records to the listing file."
 msgstr ""
 
-#: src/print.c:1039
+#: src/print.c:1042
 msgid "A file name or handle was expected in the OUTFILE subcommand."
 msgstr ""
 
 msgid "A file name or handle was expected in the OUTFILE subcommand."
 msgstr ""
 
-#: src/print.c:1091
+#: src/print.c:1095
 #, c-format
 msgid ""
 "The expression on PRINT SPACE evaluated to %d.  It's not possible to PRINT "
 "SPACE a negative number of lines."
 msgstr ""
 
 #, c-format
 msgid ""
 "The expression on PRINT SPACE evaluated to %d.  It's not possible to PRINT "
 "SPACE a negative number of lines."
 msgstr ""
 
-#: src/recode.c:287
+#: src/recode.c:288
 #, c-format
 msgid ""
 "%d variable(s) cannot be recoded into %d variable(s).  Specify the same "
 "number of variables as input and output variables."
 msgstr ""
 
 #, c-format
 msgid ""
 "%d variable(s) cannot be recoded into %d variable(s).  Specify the same "
 "number of variables as input and output variables."
 msgstr ""
 
-#: src/recode.c:301
+#: src/recode.c:302
 #, c-format
 msgid ""
 "There is no string variable named %s.  (All string variables specified on "
 #, c-format
 msgid ""
 "There is no string variable named %s.  (All string variables specified on "
@@ -4159,56 +3153,60 @@ msgid ""
 "variable.)"
 msgstr ""
 
 "variable.)"
 msgstr ""
 
-#: src/recode.c:310
+#: src/recode.c:311
 #, c-format
 msgid ""
 "Type mismatch between input and output variables.  Output variable %s is not "
 "a string variable, but all the input variables are string variables."
 msgstr ""
 
 #, c-format
 msgid ""
 "Type mismatch between input and output variables.  Output variable %s is not "
 "a string variable, but all the input variables are string variables."
 msgstr ""
 
-#: src/recode.c:329
+#: src/recode.c:330
 #, c-format
 msgid "Type mismatch after INTO: %s is not a numeric variable."
 msgstr ""
 
 #, c-format
 msgid "Type mismatch after INTO: %s is not a numeric variable."
 msgstr ""
 
-#: src/recode.c:359
+#: src/recode.c:360
 msgid ""
 "INTO must be used when the input values are numeric and output values are "
 "string."
 msgstr ""
 
 msgid ""
 "INTO must be used when the input values are numeric and output values are "
 "string."
 msgstr ""
 
-#: src/recode.c:367
+#: src/recode.c:368
 msgid ""
 "INTO must be used when the input values are string and output values are "
 "numeric."
 msgstr ""
 
 msgid ""
 "INTO must be used when the input values are string and output values are "
 "numeric."
 msgstr ""
 
-#: src/recode.c:501
+#: src/recode.c:493
+msgid "expecting output value"
+msgstr ""
+
+#: src/recode.c:507
 msgid ""
 "Inconsistent output types.  The output values must be all numeric or all "
 "string."
 msgstr ""
 
 msgid ""
 "Inconsistent output types.  The output values must be all numeric or all "
 "string."
 msgstr ""
 
-#: src/recode.c:552
+#: src/recode.c:558
 msgid "following LO THRU"
 msgstr ""
 
 msgid "following LO THRU"
 msgstr ""
 
-#: src/recode.c:568 src/recode.c:597
+#: src/recode.c:574 src/recode.c:603
 msgid "in source value"
 msgstr ""
 
 msgid "in source value"
 msgstr ""
 
-#: src/recode.c:610
+#: src/recode.c:616
 msgid ""
 "Keyword CONVERT may only be used with string input values and numeric output "
 "values."
 msgstr ""
 
 msgid ""
 "Keyword CONVERT may only be used with string input values and numeric output "
 "values."
 msgstr ""
 
-#: src/recode.c:866
+#: src/recode.c:876
 #, c-format
 msgid "!!END!!"
 msgstr ""
 
 #, c-format
 msgid "!!END!!"
 msgstr ""
 
-#: src/recode.c:887 src/recode.c:903
+#: src/recode.c:897 src/recode.c:913
 #, c-format
 msgid "!!ERROR!!"
 msgstr ""
 #, c-format
 msgid "!!ERROR!!"
 msgstr ""
@@ -4260,155 +3258,20 @@ msgstr ""
 msgid "Cannot sample %d observations from a population of %d."
 msgstr ""
 
 msgid "Cannot sample %d observations from a population of %d."
 msgstr ""
 
-#: src/sel-if.c:102
+#: src/sel-if.c:104
 msgid "The filter variable must be numeric."
 msgstr ""
 
 msgid "The filter variable must be numeric."
 msgstr ""
 
-#: src/sel-if.c:108
+#: src/sel-if.c:110
 msgid "The filter variable may not be scratch."
 msgstr ""
 
 msgid "The filter variable may not be scratch."
 msgstr ""
 
-#: src/sel-if.c:142
+#: src/sel-if.c:144
 msgid "Only last instance of this command is in effect."
 msgstr ""
 
 msgid "Only last instance of this command is in effect."
 msgstr ""
 
-#: set.c:640
-msgid "String for BLOCK must be one character long."
-msgstr ""
-
-#: set.c:658
-msgid "String for BOXSTRING must be 3 or 11 characters long."
-msgstr ""
-
-#: set.c:872
-msgid "String for ENDCMD must be one character long."
-msgstr ""
-
-#: set.c:1007
-msgid "String for HISTOGRAM must be one character long."
-msgstr ""
-
-#: set.c:1494
-msgid "String for SCRIPTTAB must be one character long."
-msgstr ""
-
-#: set.c:1529
-msgid "String for TB1 must be 3 or 11 characters long."
-msgstr ""
-
-#: set.q:216 set.q:219 set.q:237 set.q:306 set.q:312 set.q:320 set.q:327
-#: set.q:329 set.q:348 set.q:352 set.q:356 set.q:370 set.q:372 set.q:376
-#: set.q:694 set.q:775 set.q:856 src/set.q:216 src/set.q:219 src/set.q:237
-#: src/set.q:306 src/set.q:312 src/set.q:320 src/set.q:327 src/set.q:329
-#: src/set.q:348 src/set.q:352 src/set.q:356 src/set.q:370 src/set.q:372
-#: src/set.q:376 src/set.q:694 src/set.q:775 src/set.q:856
-#, c-format
-msgid "%s is obsolete."
-msgstr ""
-
-#: set.q:223 src/set.q:223
-msgid "Active file compression is not yet implemented (and probably won't be)."
-msgstr ""
-
-#: set.q:232 src/set.q:232
-msgid "CPI must be greater than 0."
-msgstr ""
-
-#: set.q:241 src/set.q:241
-msgid "LPI must be greater than 0."
-msgstr ""
-
-#: set.q:248 src/set.q:248
-msgid ""
-"CASE is not implemented and probably won't be.  If you care, complain about "
-"it."
-msgstr ""
-
-#: set.q:278 src/set.q:278
-#, c-format
-msgid "Value for MITERATE (%ld) must be greater than 0."
-msgstr ""
-
-#: set.q:286 src/set.q:286
-#, c-format
-msgid "Value for MNEST (%ld) must be greater than 0."
-msgstr ""
-
-#: set.q:294 src/set.q:294
-msgid "MXERRS must be at least 1."
-msgstr ""
-
-#: set.q:301 src/set.q:301
-msgid "MXLOOPS must be at least 1."
-msgstr ""
-
-#: set.q:390 src/set.q:390
-#, c-format
-msgid ""
-"CC%c: Length of custom currency string `%s' (%d) exceeds maximum length of "
-"16."
-msgstr ""
-
-#: set.q:412 src/set.q:412
-#, c-format
-msgid ""
-"CC%c: Custom currency string `%s' does not contain exactly three periods or "
-"commas (not both)."
-msgstr ""
-
-#: set.q:555 src/set.q:555
-msgid "LENGTH must be at least 1."
-msgstr ""
-
-#: set.q:592 src/set.q:592
-msgid "Missing identifier in RESULTS subcommand."
-msgstr ""
-
-#: set.q:603 src/set.q:603
-msgid "Unrecognized identifier in RESULTS subcommand."
-msgstr ""
-
-#: set.q:640 src/set.q:640
-msgid "WIDTH must be at least 1."
-msgstr ""
-
-#: set.q:663 src/set.q:663
-#, c-format
-msgid ""
-"FORMAT requires numeric output format as an argument.  Specified format %s "
-"is of type string."
-msgstr ""
-
-#: set.q:707 src/set.q:707
-msgid "Text color must be in range 0-15."
-msgstr ""
-
-#: set.q:720 src/set.q:720
-msgid "Background color must be in range 0-7."
-msgstr ""
-
-#: set.q:731 src/set.q:731
-msgid "Border color must be in range 0-7."
-msgstr ""
-
-#: set.q:787 src/set.q:787
-msgid "Lower window color must be between 0 and 6."
-msgstr ""
-
-#: set.q:801 src/set.q:801
-msgid "Upper window color must be between 0 and 6."
-msgstr ""
-
-#: set.q:813 src/set.q:813
-msgid "Frame color must be between 0 and 6."
-msgstr ""
-
-#: set.q:865 src/set.q:865
-msgid "Drive letter expected in WORKDEV subcommand."
-msgstr ""
-
-#: src/sfm-read.c:150
-msgid "corrupt system file: "
+#: src/sfm-read.c:150
+msgid "corrupt system file: "
 msgstr ""
 
 #: src/sfm-read.c:166 src/sfm-write.c:739
 msgstr ""
 
 #: src/sfm-read.c:166 src/sfm-write.c:739
@@ -4655,153 +3518,157 @@ msgid ""
 "file."
 msgstr ""
 
 "file."
 msgstr ""
 
-#: src/sfm-read.c:913
+#: src/sfm-read.c:911
 #, c-format
 msgid "%s: %s variable %s has %s format specifier %s."
 msgstr ""
 
 #, c-format
 msgid "%s: %s variable %s has %s format specifier %s."
 msgstr ""
 
-#: src/sfm-read.c:992
+#: src/sfm-read.c:990
 #, c-format
 msgid ""
 "%s: Variable index record (type 4) does not immediately follow value label "
 "record (type 3) as it should."
 msgstr ""
 
 #, c-format
 msgid ""
 "%s: Variable index record (type 4) does not immediately follow value label "
 "record (type 3) as it should."
 msgstr ""
 
-#: src/sfm-read.c:1002
+#: src/sfm-read.c:1000
 #, c-format
 msgid ""
 "%s: Number of variables associated with a value label (%d) is not between 1 "
 "and the number of variables (%d)."
 msgstr ""
 
 #, c-format
 msgid ""
 "%s: Number of variables associated with a value label (%d) is not between 1 "
 "and the number of variables (%d)."
 msgstr ""
 
-#: src/sfm-read.c:1018
+#: src/sfm-read.c:1016
 #, c-format
 msgid ""
 "%s: Variable index associated with value label (%d) is not between 1 and the "
 "number of values (%d)."
 msgstr ""
 
 #, c-format
 msgid ""
 "%s: Variable index associated with value label (%d) is not between 1 and the "
 "number of values (%d)."
 msgstr ""
 
-#: src/sfm-read.c:1025
+#: src/sfm-read.c:1023
 #, c-format
 msgid ""
 "%s: Variable index associated with value label (%d) refers to a continuation "
 "of a string variable, not to an actual variable."
 msgstr ""
 
 #, c-format
 msgid ""
 "%s: Variable index associated with value label (%d) refers to a continuation "
 "of a string variable, not to an actual variable."
 msgstr ""
 
-#: src/sfm-read.c:1029
+#: src/sfm-read.c:1027
 #, c-format
 msgid "%s: Value labels are not allowed on long string variables (%s)."
 msgstr ""
 
 #, c-format
 msgid "%s: Value labels are not allowed on long string variables (%s)."
 msgstr ""
 
-#: src/sfm-read.c:1039
+#: src/sfm-read.c:1037
 #, c-format
 msgid ""
 "%s: Variables associated with value label are not all of identical type.  "
 "Variable %s has %s type, but variable %s has %s type."
 msgstr ""
 
 #, c-format
 msgid ""
 "%s: Variables associated with value label are not all of identical type.  "
 "Variable %s has %s type, but variable %s has %s type."
 msgstr ""
 
-#: src/sfm-read.c:1079
+#: src/sfm-read.c:1077
 #, c-format
 msgid "%s: File contains duplicate label for value %g for variable %s."
 msgstr ""
 
 #, c-format
 msgid "%s: File contains duplicate label for value %g for variable %s."
 msgstr ""
 
-#: src/sfm-read.c:1082
+#: src/sfm-read.c:1080
 #, c-format
 msgid "%s: File contains duplicate label for value `%.*s' for variable %s."
 msgstr ""
 
 #, c-format
 msgid "%s: File contains duplicate label for value `%.*s' for variable %s."
 msgstr ""
 
-#: src/sfm-read.c:1119 src/sfm-read.c:1394
+#: src/sfm-read.c:1117 src/sfm-read.c:1392
 #, c-format
 msgid "%s: Reading system file: %s."
 msgstr ""
 
 #, c-format
 msgid "%s: Reading system file: %s."
 msgstr ""
 
-#: src/sfm-read.c:1121 src/sfm-read.c:1303 src/sfm-read.c:1344
+#: src/sfm-read.c:1119 src/sfm-read.c:1301 src/sfm-read.c:1342
 #, c-format
 msgid "%s: Unexpected end of file."
 msgstr ""
 
 #, c-format
 msgid "%s: Unexpected end of file."
 msgstr ""
 
-#: src/sfm-read.c:1139
+#: src/sfm-read.c:1137
 #, c-format
 msgid "%s: System file contains multiple type 6 (document) records."
 msgstr ""
 
 #, c-format
 msgid "%s: System file contains multiple type 6 (document) records."
 msgstr ""
 
-#: src/sfm-read.c:1144
+#: src/sfm-read.c:1142
 #, c-format
 msgid "%s: Number of document lines (%ld) must be greater than 0."
 msgstr ""
 
 #, c-format
 msgid "%s: Number of document lines (%ld) must be greater than 0."
 msgstr ""
 
-#: src/sfm-read.c:1168
+#: src/sfm-read.c:1166
 msgid "dictionary:\n"
 msgstr ""
 
 msgid "dictionary:\n"
 msgstr ""
 
-#: src/sfm-read.c:1176
+#: src/sfm-read.c:1174
 msgid "num"
 msgstr ""
 
 msgid "num"
 msgstr ""
 
-#: src/sfm-read.c:1177
+#: src/sfm-read.c:1175
 msgid "str"
 msgstr ""
 
 msgid "str"
 msgstr ""
 
-#: src/sfm-read.c:1180
+#: src/sfm-read.c:1178
 msgid "left"
 msgstr ""
 
 msgid "left"
 msgstr ""
 
-#: src/sfm-read.c:1180
+#: src/sfm-read.c:1178
 msgid "right"
 msgstr ""
 
 msgid "right"
 msgstr ""
 
-#: src/sfm-read.c:1186
+#: src/sfm-read.c:1184
 msgid "none"
 msgstr ""
 
 msgid "none"
 msgstr ""
 
-#: src/sfm-read.c:1190
+#: src/sfm-read.c:1188
 msgid "one"
 msgstr ""
 
 msgid "one"
 msgstr ""
 
-#: src/sfm-read.c:1194
+#: src/sfm-read.c:1192
 msgid "two"
 msgstr ""
 
 msgid "two"
 msgstr ""
 
-#: src/sfm-read.c:1198
+#: src/sfm-read.c:1196
 msgid "three"
 msgstr ""
 
 msgid "three"
 msgstr ""
 
-#: src/sfm-read.c:1206
+#: src/sfm-read.c:1200 src/descript.q:166
+msgid "range"
+msgstr ""
+
+#: src/sfm-read.c:1204
 msgid "low"
 msgstr ""
 
 msgid "low"
 msgstr ""
 
-#: src/sfm-read.c:1210
+#: src/sfm-read.c:1208
 msgid "high"
 msgstr ""
 
 msgid "high"
 msgstr ""
 
-#: src/sfm-read.c:1214
+#: src/sfm-read.c:1212
 msgid "range+1"
 msgstr ""
 
 msgid "range+1"
 msgstr ""
 
-#: src/sfm-read.c:1218
+#: src/sfm-read.c:1216
 msgid "low+1"
 msgstr ""
 
 msgid "low+1"
 msgstr ""
 
-#: src/sfm-read.c:1222
+#: src/sfm-read.c:1220
 msgid "high+1"
 msgstr ""
 
 msgid "high+1"
 msgstr ""
 
-#: src/sfm-read.c:1256
+#: src/sfm-read.c:1254
 #, c-format
 msgid "%s: Error reading file: %s."
 msgstr ""
 
 #, c-format
 msgid "%s: Error reading file: %s."
 msgstr ""
 
-#: src/sfm-read.c:1294
+#: src/sfm-read.c:1292
 #, c-format
 msgid "%s: Compressed data is corrupted.  Data ends partway through a case."
 msgstr ""
 
 #, c-format
 msgid "%s: Compressed data is corrupted.  Data ends partway through a case."
 msgstr ""
 
-#: src/sfm-read.c:1396
+#: src/sfm-read.c:1394
 #, c-format
 msgid "%s: Partial record at end of system file."
 msgstr ""
 
 #, c-format
 msgid "%s: Partial record at end of system file."
 msgstr ""
 
-#: src/sfm-read.c:1434
+#: src/sfm-read.c:1432
 msgid "reading as a system file"
 msgstr ""
 
 msgid "reading as a system file"
 msgstr ""
 
@@ -4838,138 +3705,69 @@ msgstr ""
 msgid "writing as a system file"
 msgstr ""
 
 msgid "writing as a system file"
 msgstr ""
 
-#: src/sort.c:123
+#: src/sort.c:122
 msgid "`A' or `D' expected inside parentheses."
 msgstr ""
 
 msgid "`A' or `D' expected inside parentheses."
 msgstr ""
 
-#: src/sort.c:129
+#: src/sort.c:127
 msgid "`)' expected."
 msgstr ""
 
 msgid "`)' expected."
 msgstr ""
 
-#: src/sort.c:455
-#, c-format
-msgid "%s: Cannot create temporary directory: %s."
-msgstr ""
-
-#: src/sort.c:479
+#: src/sort.c:418
 #, c-format
 #, c-format
-msgid "%s: Error removing directory for temporary files: %s."
+msgid "%s: Creating temporary directory: %s."
 msgstr ""
 
 msgstr ""
 
-#: src/sort.c:525
+#: src/sort.c:449
 #, c-format
 #, c-format
-msgid ""
-"Out of memory.  Could not allocate room for minimum of %d cases of %d bytes "
-"each.  (PSPP workspace is currently restricted to a maximum of %d KB.)"
+msgid "Generating temporary directory name failed: %s."
 msgstr ""
 
 msgstr ""
 
-#: src/sort.c:537
+#: src/sort.c:457
 #, c-format
 #, c-format
-msgid "allocated %d cases == %d bytes\n"
+msgid "Creating temporary directory failed: %s."
 msgstr ""
 
 msgstr ""
 
-#: src/sort.c:575
+#: src/sort.c:509
 #, c-format
 #, c-format
-msgid "%s: Error writing temporary file: %s."
+msgid "%s: Error removing directory for temporary files: %s."
 msgstr ""
 
 msgstr ""
 
-#: src/sort.c:587
+#: src/sort.c:538
 #, c-format
 #, c-format
-msgid "SORT: Closing handle %d."
+msgid "%s: Error opening temporary file for %s: %s."
 msgstr ""
 
 msgstr ""
 
-#: src/sort.c:593 src/sort.c:817
+#: src/sort.c:555
 #, c-format
 msgid "%s: Error closing temporary file: %s."
 msgstr ""
 
 #, c-format
 msgid "%s: Error closing temporary file: %s."
 msgstr ""
 
-#: src/sort.c:615 src/sort.c:631
-#, c-format
-msgid "SORT: %s: Opening for writing as run %d."
-msgstr ""
-
-#: src/sort.c:637
-#, c-format
-msgid "%s: Error opening temporary file for reading: %s."
-msgstr ""
-
-#: src/sort.c:663 src/sort.c:679
-#, c-format
-msgid "%s: Error creating temporary file: %s."
-msgstr ""
-
-#: src/sort.c:821 src/sort.c:982 src/sort.c:1032 src/sort.c:1201
-#: src/sort.c:1208
+#: src/sort.c:571
 #, c-format
 msgid "%s: Error removing temporary file: %s."
 msgstr ""
 
 #, c-format
 msgid "%s: Error removing temporary file: %s."
 msgstr ""
 
-#: src/sort.c:964
-msgid "merging runs"
-msgstr ""
-
-#: src/sort.c:972
-#, c-format
-msgid " into run %d(%d)\n"
-msgstr ""
-
-#: src/sort.c:991
-msgid "Out of memory expanding Huffman priority queue."
-msgstr ""
-
-#: src/sort.c:1043
-#, c-format
-msgid "%s: Error creating temporary file for merge: %s."
-msgstr ""
-
-#: src/sort.c:1070 src/sort.c:1128
-#, c-format
-msgid "%s: Error reading temporary file in merge: %s."
-msgstr ""
-
-#: src/sort.c:1073 src/sort.c:1132
-#, c-format
-msgid "%s: Unexpected end of temporary file in merge."
-msgstr ""
-
-#: src/sort.c:1098
-#, c-format
-msgid "%s: Error writing temporary file in merge: %s."
-msgstr ""
-
-#: src/sort.c:1148 src/sort.c:1181
-#, c-format
-msgid "%s: Error closing temporary file in merge: %s."
-msgstr ""
-
-#: src/sort.c:1153
-#, c-format
-msgid "%s: Error removing temporary file in merge: %s."
-msgstr ""
-
-#: src/sort.c:1252
-#, c-format
-msgid "%s: Cannot open sort result file: %s."
-msgstr ""
-
-#: src/sort.c:1263
+#: src/sort.c:587
 #, c-format
 #, c-format
-msgid "%s: Error reading sort result file: %s."
+msgid "%s: Error writing temporary file: %s."
 msgstr ""
 
 msgstr ""
 
-#: src/sort.c:1266
+#: src/sort.c:605
 #, c-format
 #, c-format
-msgid "%s: Unexpected end of sort result file: %s."
+msgid "%s: Error reading temporary file: %s."
 msgstr ""
 
 msgstr ""
 
-#: src/sort.c:1277
+#: src/sort.c:608
 #, c-format
 #, c-format
-msgid "%s: Error closing sort result file: %s."
+msgid "%s: Unexpected end of temporary file."
 msgstr ""
 
 msgstr ""
 
-#: src/sort.c:1281
+#: src/sort.c:798 src/sort.c:1033
 #, c-format
 #, c-format
-msgid "%s: Error removing sort result file: %s."
+msgid ""
+"Out of memory.  Could not allocate room for minimum of %d cases of %d bytes "
+"each.  (PSPP workspace is currently restricted to a maximum of %d KB.)"
 msgstr ""
 
 #: src/sysfile-info.c:97
 msgstr ""
 
 #: src/sysfile-info.c:97
@@ -5041,11 +3839,11 @@ msgstr ""
 msgid "off"
 msgstr ""
 
 msgid "off"
 msgstr ""
 
-#: src/sysfile-info.c:136 src/sysfile-info.c:377
+#: src/sysfile-info.c:136 src/sysfile-info.c:375
 msgid "Description"
 msgstr ""
 
 msgid "Description"
 msgstr ""
 
-#: src/sysfile-info.c:137 src/sysfile-info.c:374
+#: src/sysfile-info.c:137 src/sysfile-info.c:373
 msgid "Position"
 msgstr ""
 
 msgid "Position"
 msgstr ""
 
@@ -5073,34 +3871,40 @@ msgstr ""
 msgid "Documents in the active file:"
 msgstr ""
 
 msgid "Documents in the active file:"
 msgstr ""
 
-#: src/sysfile-info.c:379 src/sysfile-info.c:537 src/vfm.c:1088
+#: src/sysfile-info.c:377 src/sysfile-info.c:535 src/vfm.c:1150
 msgid "Label"
 msgstr ""
 
 msgid "Label"
 msgstr ""
 
-#: src/sysfile-info.c:451
+#: src/sysfile-info.c:449
 #, c-format
 msgid "Format: %s"
 msgstr ""
 
 #, c-format
 msgid "Format: %s"
 msgstr ""
 
-#: src/sysfile-info.c:458
+#: src/sysfile-info.c:456
 #, c-format
 msgid "Print Format: %s"
 msgstr ""
 
 #, c-format
 msgid "Print Format: %s"
 msgstr ""
 
-#: src/sysfile-info.c:461
+#: src/sysfile-info.c:459
 #, c-format
 msgid "Write Format: %s"
 msgstr ""
 
 #, c-format
 msgid "Write Format: %s"
 msgstr ""
 
-#: src/sysfile-info.c:469
+#: src/sysfile-info.c:467
 msgid "Missing Values: "
 msgstr ""
 
 msgid "Missing Values: "
 msgstr ""
 
-#: src/sysfile-info.c:593
+#: src/sysfile-info.c:534 src/vfm.c:1149 src/crosstabs.q:1158
+#: src/crosstabs.q:1185 src/crosstabs.q:1205 src/crosstabs.q:1227
+#: src/frequencies.q:1009 src/frequencies.q:1126
+msgid "Value"
+msgstr ""
+
+#: src/sysfile-info.c:591
 msgid "No vectors defined."
 msgstr ""
 
 msgid "No vectors defined."
 msgstr ""
 
-#: src/sysfile-info.c:608
+#: src/sysfile-info.c:606
 msgid "Vector"
 msgstr ""
 
 msgid "Vector"
 msgstr ""
 
@@ -5149,402 +3953,1183 @@ msgstr ""
 msgid "Document entered %s %02d:%02d:%02d by %s (%s):"
 msgstr ""
 
 msgid "Document entered %s %02d:%02d:%02d by %s (%s):"
 msgstr ""
 
-#: t-test.c:131
-msgid "GROUPS subcommand may be given only once."
+#: src/val-labs.c:138
+#, c-format
+msgid ""
+"It is not possible to assign value labels to long string variables such as %"
+"s."
 msgstr ""
 
 msgstr ""
 
-#: t-test.c:153
-msgid "TESTVAL subcommand may be given only once."
+#: src/val-labs.c:176
+msgid "String expected for value."
 msgstr ""
 
 msgstr ""
 
-#: t-test.c:240
-msgid "`(' expected after CIN specifier of CRITERIA subcommand."
+#: src/val-labs.c:185
+msgid "Number expected for value."
 msgstr ""
 
 msgstr ""
 
-#: t-test.c:245
-msgid "Number expected after CIN specifier of CRITERIA subcommand."
+#: src/val-labs.c:189
+#, c-format
+msgid "Value label `%g' is not integer."
 msgstr ""
 
 msgstr ""
 
-#: t-test.c:251
-msgid "Bad argument for CIN specifier of CRITERIA subcommand."
+#: src/val-labs.c:199
+msgid "Truncating value label to 60 characters."
 msgstr ""
 
 msgstr ""
 
-#: t-test.c:257
-msgid "`)' expected after argument for CIN specifier of CRITERIA."
+#: src/val-labs.c:220
+msgid "Value labels:"
 msgstr ""
 
 msgstr ""
 
-#: t-test.q:212 src/t-test.q:212
-msgid "TESTVAL, GROUPS and PAIRS subcommands are mutually exclusive."
+#: src/val-labs.c:237
+#, c-format
+msgid "    (no value labels)\n"
 msgstr ""
 
 msgstr ""
 
-#: t-test.q:229 src/t-test.q:229
-msgid "VARIABLES subcommand is not appropriate with PAIRS"
+#: src/var-labs.c:53
+msgid "String expected for variable label."
 msgstr ""
 
 msgstr ""
 
-#: t-test.q:327 t-test.q:399 src/t-test.q:327 src/t-test.q:399
-#, c-format
-msgid "`%s' is not a variable name"
+#: src/var-labs.c:59
+msgid "Truncating variable label to 120 characters."
 msgstr ""
 
 msgstr ""
 
-#: t-test.q:340 src/t-test.q:340
+#: src/var-labs.c:87
 #, c-format
 #, c-format
-msgid "Long string variable %s is not valid here."
-msgstr ""
-
-#: t-test.q:356 src/t-test.q:356
-msgid ""
-"When applying GROUPS to a string variable, at least one value must be "
-"specified."
+msgid "Variable labels:\n"
 msgstr ""
 
 msgstr ""
 
-#: t-test.q:434 src/t-test.q:434
+#: src/var-labs.c:94
 #, c-format
 #, c-format
-msgid ""
-"PAIRED was specified but the number of variables preceding WITH (%d) did not "
-"match the number following (%d)."
+msgid "(no variable label)"
 msgstr ""
 
 msgstr ""
 
-#: t-test.q:451 src/t-test.q:451
-msgid "At least two variables must be specified on PAIRS."
+#: src/vars-prs.c:49
+#, c-format
+msgid "%s is not a variable name."
 msgstr ""
 
 msgstr ""
 
-#: t-test.q:623 src/t-test.q:623
-msgid "One-Sample Statistics"
+#: src/vars-prs.c:101
+msgid "ordinary"
 msgstr ""
 
 msgstr ""
 
-#: t-test.q:627 t-test.q:650 t-test.q:728 t-test.q:1076 src/t-test.q:627
-#: src/t-test.q:650 src/t-test.q:728 src/t-test.q:1076
-msgid "Std. Deviation"
+#: src/vars-prs.c:103
+msgid "system"
 msgstr ""
 
 msgstr ""
 
-#: t-test.q:628 t-test.q:651 t-test.q:729 src/t-test.q:628 src/t-test.q:651
-#: src/t-test.q:729
-msgid "SE. Mean"
+#: src/vars-prs.c:105
+msgid "scratch"
 msgstr ""
 
 msgstr ""
 
-#: t-test.q:645 src/t-test.q:645
-msgid "Group Statistics"
+#: src/vars-prs.c:208
+#, c-format
+msgid "%s TO %s is not valid syntax since %s precedes %s in the dictionary."
 msgstr ""
 
 msgstr ""
 
-#: t-test.q:723 src/t-test.q:723
-msgid "Paired Sample Statistics"
+#: src/vars-prs.c:218
+#, c-format
+msgid ""
+"When using the TO keyword to specify several variables, both variables must "
+"be from the same variable dictionaries, of either ordinary, scratch, or "
+"system variables.  %s is a %s variable, whereas %s is %s."
 msgstr ""
 
 msgstr ""
 
-#: t-test.q:745 t-test.q:1110 t-test.q:1330 src/t-test.q:745 src/t-test.q:1110
-#: src/t-test.q:1330
+#: src/vars-prs.c:236
 #, c-format
 #, c-format
-msgid "Pair %d"
+msgid "Scratch variables (such as %s) are not allowed here."
 msgstr ""
 
 msgstr ""
 
-#: t-test.q:865 src/t-test.q:865
-msgid "Independent Samples Test"
+#: src/vars-prs.c:259
+#, c-format
+msgid ""
+"%s is not a numeric variable.  It will not be included in the variable list."
 msgstr ""
 
 msgstr ""
 
-#: t-test.q:873 src/t-test.q:873
-msgid "Levene's Test for Equality of Variances"
+#: src/vars-prs.c:262
+#, c-format
+msgid ""
+"%s is not a string variable.  It will not be included in the variable list."
 msgstr ""
 
 msgstr ""
 
-#: t-test.q:875 src/t-test.q:875
-msgid "t-test for Equality of Means"
+#: src/vars-prs.c:266
+#, c-format
+msgid ""
+"%s and %s are not the same type.  All variables in this variable list must "
+"be of the same type.  %s will be omitted from list."
 msgstr ""
 
 msgstr ""
 
-#: t-test.q:877 src/t-test.q:877
-msgid "F"
+#: src/vars-prs.c:271
+#, c-format
+msgid "Variable %s appears twice in variable list."
 msgstr ""
 
 msgstr ""
 
-#: t-test.q:878 t-test.q:1311 src/t-test.q:878 src/t-test.q:1311
-msgid "Sig."
+#: src/vars-prs.c:351
+msgid "incorrect use of TO convention"
 msgstr ""
 
 msgstr ""
 
-#: t-test.q:879 t-test.q:1080 t-test.q:1192 src/t-test.q:879 src/t-test.q:1080
-#: src/t-test.q:1192
-msgid "t"
+#: src/vars-prs.c:398
+msgid "Scratch variables not allowed here."
 msgstr ""
 
 msgstr ""
 
-#: t-test.q:881 t-test.q:1082 t-test.q:1194 src/t-test.q:881 src/t-test.q:1082
-#: src/t-test.q:1194
-msgid "Sig. (2-tailed)"
+#: src/vars-prs.c:420
+msgid "Prefixes don't match in use of TO convention."
 msgstr ""
 
 msgstr ""
 
-#: t-test.q:882 t-test.q:1195 src/t-test.q:882 src/t-test.q:1195
-msgid "Mean Difference"
+#: src/vars-prs.c:425
+msgid "Bad bounds in use of TO convention."
 msgstr ""
 
 msgstr ""
 
-#: t-test.q:883 src/t-test.q:883
-msgid "Std. Error Difference"
+#: src/vector.c:68
+#, c-format
+msgid "Vector name %s is given twice."
 msgstr ""
 
 msgstr ""
 
-#: t-test.q:888 t-test.q:1072 t-test.q:1187 src/t-test.q:888 src/t-test.q:1072
-#: src/t-test.q:1187
+#: src/vector.c:74
 #, c-format
 #, c-format
-msgid "%d%% Confidence Interval of the Difference"
+msgid "There is already a vector with name %s."
 msgstr ""
 
 msgstr ""
 
-#: t-test.q:922 src/t-test.q:922
-msgid "Equal variances assumed"
+#: src/vector.c:95
+msgid ""
+"A slash must be used to separate each vector specification when using the "
+"long form.  Commands such as VECTOR A,B=Q1 TO Q20 are not supported."
 msgstr ""
 
 msgstr ""
 
-#: t-test.q:937 src/t-test.q:937
-#, c-format
-msgid "Error calculating F statistic (cdff returned %d)."
+#: src/vector.c:129
+msgid "Vectors must have at least one element."
 msgstr ""
 
 msgstr ""
 
-#: t-test.q:960 t-test.q:980 t-test.q:1018 t-test.q:1030 t-test.q:1131
-#: t-test.q:1157 t-test.q:1237 t-test.q:1254 t-test.q:1345 src/t-test.q:960
-#: src/t-test.q:980 src/t-test.q:1018 src/t-test.q:1030 src/t-test.q:1131
-#: src/t-test.q:1157 src/t-test.q:1237 src/t-test.q:1254 src/t-test.q:1345
+#: src/vector.c:143
 #, c-format
 #, c-format
-msgid "Error calculating T statistic (cdft returned %d)."
+msgid "%s%d is too long for a variable name."
 msgstr ""
 
 msgstr ""
 
-#: t-test.q:994 src/t-test.q:994
-msgid "Equal variances not assumed"
-msgstr ""
+#: src/vector.c:181
+msgid ""
+"The syntax for this command does not match the expected syntax for either "
+"the long form or the short form of VECTOR."
+msgstr ""
+
+#: src/vfm.c:391
+msgid "<NOVAR>"
+msgstr ""
+
+#: src/vfm.c:554
+#, c-format
+msgid ""
+"An error occurred attempting to create a temporary file for use as the "
+"active file: %s."
+msgstr ""
+
+#: src/vfm.c:579
+#, c-format
+msgid ""
+"An error occurred while attempting to write to a temporary file used as the "
+"active file: %s."
+msgstr ""
+
+#: src/vfm.c:606
+#, c-format
+msgid ""
+"An error occurred while attempting to rewind a temporary file used as the "
+"active file: %s."
+msgstr ""
+
+#: src/vfm.c:651
+#, c-format
+msgid ""
+"An error occurred while attempting to read from a temporary file created for "
+"the active file: %s."
+msgstr ""
+
+#: src/vfm.c:755
+msgid "Virtual memory exhausted.  Writing active file to disk."
+msgstr ""
+
+#: src/vfm.c:758
+#, c-format
+msgid ""
+"Workspace limit of %d KB (%d cases at %d bytes each) overflowed.  Writing "
+"active file to disk."
+msgstr ""
+
+#: src/vfm.c:778 src/vfm.c:817
+#, c-format
+msgid ""
+"An error occurred while attempting to write to a temporary file created as "
+"the active file: %s."
+msgstr ""
+
+#: src/weight.c:54
+msgid "The weighting variable must be numeric."
+msgstr ""
+
+#: src/weight.c:59
+msgid "The weighting variable may not be scratch."
+msgstr ""
+
+#: src/crosstabs.q:251
+msgid ""
+"Missing mode REPORT not allowed in general mode.  Assuming MISSING=TABLE."
+msgstr ""
+
+#: src/crosstabs.q:261
+msgid "Write mode ALL not allowed in general mode.  Assuming WRITE=CELLS."
+msgstr ""
+
+#: src/crosstabs.q:321
+msgid "expecting BY"
+msgstr ""
+
+#: src/crosstabs.q:388
+msgid "VARIABLES must be specified before TABLES."
+msgstr ""
+
+#: src/crosstabs.q:425
+#, c-format
+msgid "Maximum value (%ld) less than minimum value (%ld)."
+msgstr ""
+
+#: src/crosstabs.q:859
+msgid "Summary."
+msgstr ""
+
+#: src/crosstabs.q:861
+msgid "Cases"
+msgstr ""
+
+#: src/crosstabs.q:862 src/frequencies.q:1007
+msgid "Valid"
+msgstr ""
+
+#: src/crosstabs.q:863 src/frequencies.q:1074
+msgid "Missing"
+msgstr ""
+
+#: src/crosstabs.q:864 src/crosstabs.q:1067 src/crosstabs.q:1800
+#: src/frequencies.q:1083
+msgid "Total"
+msgstr ""
+
+#: src/crosstabs.q:874 src/t-test.q:622 src/t-test.q:645 src/t-test.q:736
+#: src/t-test.q:1318
+msgid "N"
+msgstr ""
+
+#: src/crosstabs.q:875 src/frequencies.q:1011 src/frequencies.q:1012
+#: src/frequencies.q:1013
+msgid "Percent"
+msgstr ""
+
+#: src/crosstabs.q:1117
+msgid "count"
+msgstr ""
+
+#: src/crosstabs.q:1118
+msgid "row %"
+msgstr ""
+
+#: src/crosstabs.q:1119
+msgid "column %"
+msgstr ""
+
+#: src/crosstabs.q:1120
+msgid "total %"
+msgstr ""
+
+#: src/crosstabs.q:1121
+msgid "expected"
+msgstr ""
+
+#: src/crosstabs.q:1122
+msgid "residual"
+msgstr ""
+
+#: src/crosstabs.q:1123
+msgid "std. resid."
+msgstr ""
+
+#: src/crosstabs.q:1124
+msgid "adj. resid."
+msgstr ""
+
+#: src/crosstabs.q:1157 src/crosstabs.q:1184 src/crosstabs.q:1204
+#: src/crosstabs.q:1225
+msgid "Statistic"
+msgstr ""
+
+#: src/crosstabs.q:1159 src/t-test.q:889 src/t-test.q:1090 src/t-test.q:1202
+msgid "df"
+msgstr ""
+
+#: src/crosstabs.q:1161
+msgid "Asymp. Sig. (2-sided)"
+msgstr ""
+
+#: src/crosstabs.q:1163
+msgid "Exact. Sig. (2-sided)"
+msgstr ""
+
+#: src/crosstabs.q:1165
+msgid "Exact. Sig. (1-sided)"
+msgstr ""
+
+#: src/crosstabs.q:1183 src/crosstabs.q:1224
+msgid "Category"
+msgstr ""
+
+#: src/crosstabs.q:1186 src/crosstabs.q:1228
+msgid "Asymp. Std. Error"
+msgstr ""
+
+#: src/crosstabs.q:1187 src/crosstabs.q:1229
+msgid "Approx. T"
+msgstr ""
+
+#: src/crosstabs.q:1188 src/crosstabs.q:1230
+msgid "Approx. Sig."
+msgstr ""
+
+#: src/crosstabs.q:1203
+#, c-format
+msgid " 95%% Confidence Interval"
+msgstr ""
+
+#: src/crosstabs.q:1206 src/t-test.q:893 src/t-test.q:1087 src/t-test.q:1205
+msgid "Lower"
+msgstr ""
+
+#: src/crosstabs.q:1207 src/t-test.q:894 src/t-test.q:1088 src/t-test.q:1206
+msgid "Upper"
+msgstr ""
+
+#: src/crosstabs.q:1226
+msgid "Type"
+msgstr ""
+
+#: src/crosstabs.q:1976
+msgid "Pearson Chi-Square"
+msgstr ""
+
+#: src/crosstabs.q:1977
+msgid "Likelihood Ratio"
+msgstr ""
+
+#: src/crosstabs.q:1978
+msgid "Fisher's Exact Test"
+msgstr ""
+
+#: src/crosstabs.q:1979
+msgid "Continuity Correction"
+msgstr ""
+
+#: src/crosstabs.q:1980
+msgid "Linear-by-Linear Association"
+msgstr ""
+
+#: src/crosstabs.q:2017 src/crosstabs.q:2087 src/crosstabs.q:2146
+msgid "N of Valid Cases"
+msgstr ""
+
+#: src/crosstabs.q:2033 src/crosstabs.q:2162
+msgid "Nominal by Nominal"
+msgstr ""
+
+#: src/crosstabs.q:2034 src/crosstabs.q:2163
+msgid "Ordinal by Ordinal"
+msgstr ""
+
+#: src/crosstabs.q:2035
+msgid "Interval by Interval"
+msgstr ""
+
+#: src/crosstabs.q:2036
+msgid "Measure of Agreement"
+msgstr ""
+
+#: src/crosstabs.q:2041
+msgid "Phi"
+msgstr ""
+
+#: src/crosstabs.q:2042
+msgid "Cramer's V"
+msgstr ""
+
+#: src/crosstabs.q:2043
+msgid "Contingency Coefficient"
+msgstr ""
+
+#: src/crosstabs.q:2044
+msgid "Kendall's tau-b"
+msgstr ""
+
+#: src/crosstabs.q:2045
+msgid "Kendall's tau-c"
+msgstr ""
+
+#: src/crosstabs.q:2046
+msgid "Gamma"
+msgstr ""
+
+#: src/crosstabs.q:2047
+msgid "Spearman Correlation"
+msgstr ""
+
+#: src/crosstabs.q:2048
+msgid "Pearson's R"
+msgstr ""
+
+#: src/crosstabs.q:2049
+msgid "Kappa"
+msgstr ""
+
+#: src/crosstabs.q:2119
+#, c-format
+msgid "Odds Ratio for %s (%g / %g)"
+msgstr ""
+
+#: src/crosstabs.q:2122
+#, c-format
+msgid "Odds Ratio for %s (%.*s / %.*s)"
+msgstr ""
+
+#: src/crosstabs.q:2130
+#, c-format
+msgid "For cohort %s = %g"
+msgstr ""
+
+#: src/crosstabs.q:2133
+#, c-format
+msgid "For cohort %s = %.*s"
+msgstr ""
+
+#: src/crosstabs.q:2164
+msgid "Nominal by Interval"
+msgstr ""
+
+#: src/crosstabs.q:2169
+msgid "Lambda"
+msgstr ""
+
+#: src/crosstabs.q:2170
+msgid "Goodman and Kruskal tau"
+msgstr ""
+
+#: src/crosstabs.q:2171
+msgid "Uncertainty Coefficient"
+msgstr ""
+
+#: src/crosstabs.q:2172
+msgid "Somers' d"
+msgstr ""
+
+#: src/crosstabs.q:2173
+msgid "Eta"
+msgstr ""
+
+#: src/crosstabs.q:2178
+msgid "Symmetric"
+msgstr ""
+
+#: src/crosstabs.q:2179 src/crosstabs.q:2180
+#, c-format
+msgid "%s Dependent"
+msgstr ""
+
+#: src/descript.q:151 src/frequencies.q:94 src/t-test.q:623 src/t-test.q:646
+#: src/t-test.q:735 src/t-test.q:1084
+msgid "Mean"
+msgstr ""
+
+#: src/descript.q:151
+msgid "mean"
+msgstr ""
+
+#: src/descript.q:152 src/frequencies.q:95
+msgid "S.E. Mean"
+msgstr ""
+
+#: src/descript.q:152
+msgid "S E Mean"
+msgstr ""
+
+#: src/descript.q:152
+msgid "SE"
+msgstr ""
+
+#: src/descript.q:153
+msgid "standard error of mean"
+msgstr ""
+
+#: src/descript.q:154 src/frequencies.q:98
+msgid "Std Dev"
+msgstr ""
+
+#: src/descript.q:154
+msgid "SD"
+msgstr ""
+
+#: src/descript.q:155
+msgid "standard deviation"
+msgstr ""
+
+#: src/descript.q:156 src/frequencies.q:99
+msgid "Variance"
+msgstr ""
+
+#: src/descript.q:157
+msgid "Var"
+msgstr ""
+
+#: src/descript.q:157
+msgid "variance"
+msgstr ""
+
+#: src/descript.q:158 src/frequencies.q:100
+msgid "Kurtosis"
+msgstr ""
+
+#: src/descript.q:159
+msgid "Kurt"
+msgstr ""
+
+#: src/descript.q:159
+msgid "kurtosis"
+msgstr ""
+
+#: src/descript.q:160 src/frequencies.q:101
+msgid "S.E. Kurt"
+msgstr ""
+
+#: src/descript.q:160
+msgid "S E Kurt"
+msgstr ""
+
+#: src/descript.q:160
+msgid "SEKurt"
+msgstr ""
+
+#: src/descript.q:161
+msgid "standard error of kurtosis"
+msgstr ""
+
+#: src/descript.q:162 src/frequencies.q:102
+msgid "Skewness"
+msgstr ""
+
+#: src/descript.q:162
+msgid "Skew"
+msgstr ""
+
+#: src/descript.q:163
+msgid "skewness"
+msgstr ""
+
+#: src/descript.q:164 src/frequencies.q:103
+msgid "S.E. Skew"
+msgstr ""
+
+#: src/descript.q:164
+msgid "S E Skew"
+msgstr ""
+
+#: src/descript.q:164
+msgid "SESkew"
+msgstr ""
+
+#: src/descript.q:165
+msgid "standard error of skewness"
+msgstr ""
+
+#: src/descript.q:166 src/frequencies.q:104
+msgid "Range"
+msgstr ""
+
+#: src/descript.q:166
+msgid "Rng"
+msgstr ""
+
+#: src/descript.q:167 src/frequencies.q:105
+msgid "Minimum"
+msgstr ""
+
+#: src/descript.q:167
+msgid "Min"
+msgstr ""
+
+#: src/descript.q:168
+msgid "minimum"
+msgstr ""
+
+#: src/descript.q:169 src/frequencies.q:106
+msgid "Maximum"
+msgstr ""
+
+#: src/descript.q:169
+msgid "Max"
+msgstr ""
+
+#: src/descript.q:170
+msgid "maximum"
+msgstr ""
+
+#: src/descript.q:171 src/frequencies.q:107
+msgid "Sum"
+msgstr ""
+
+#: src/descript.q:171
+msgid "sum"
+msgstr ""
+
+#: src/descript.q:212 src/list.q:144
+msgid "No variables specified."
+msgstr ""
+
+#: src/descript.q:218
+msgid "OPTIONS may not be used with SAVE, FORMAT, or MISSING."
+msgstr ""
+
+#: src/descript.q:280
+#, c-format
+msgid "It's not possible to sort on `%s' without displaying `%s'."
+msgstr ""
+
+#: src/descript.q:294
+msgid ""
+"At least one case in the data file had a weight value that was system-"
+"missing, zero, or negative.  These case(s) were ignored."
+msgstr ""
+
+#: src/descript.q:335
+msgid ""
+"Names for z-score variables must be given for individual variables, not for "
+"groups of variables."
+msgstr ""
+
+#: src/descript.q:343
+msgid "Name for z-score variable expected."
+msgstr ""
+
+#: src/descript.q:348
+#, c-format
+msgid ""
+"Z-score variable name `%s' is a duplicate variable name with a current "
+"variable."
+msgstr ""
+
+#: src/descript.q:357
+#, c-format
+msgid "Z-score variable name `%s' is used multiple times."
+msgstr ""
+
+#: src/descript.q:365
+msgid "`)' expected after z-score variable name."
+msgstr ""
+
+#: src/descript.q:425
+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 ""
+
+#: src/descript.q:454
+msgid "Mapping of variables to corresponding Z-scores."
+msgstr ""
+
+#: src/descript.q:459
+msgid "Source"
+msgstr ""
+
+#: src/descript.q:460
+msgid "Target"
+msgstr ""
+
+#: src/descript.q:548 src/descript.q:554
+msgid "Z-score of "
+msgstr ""
+
+#: src/descript.q:795
+msgid "Valid N"
+msgstr ""
+
+#: src/descript.q:796
+msgid "Missing N"
+msgstr ""
+
+#: src/descript.q:823
+#, c-format
+msgid "Valid cases = %g; cases with missing value(s) = %g."
+msgstr ""
+
+#: src/file-handle.q:72
+#, c-format
+msgid ""
+"File handle %s had already been defined to refer to file %s.  It is not "
+"possible to redefine a file handle within a session."
+msgstr ""
+
+#: src/file-handle.q:94
+msgid "The FILE HANDLE required subcommand NAME is not present."
+msgstr ""
+
+#: src/file-handle.q:107
+msgid ""
+"Fixed length records were specified on /RECFORM, but record length was not "
+"specified on /LRECL.  80-character records will be assumed."
+msgstr ""
+
+#: src/file-handle.q:114
+#, c-format
+msgid ""
+"Record length (%ld) must be at least one byte.  80-character records will be "
+"assumed."
+msgstr ""
+
+#: src/file-handle.q:126 src/file-handle.q:140
+#, c-format
+msgid ""
+"%s is not implemented, as the author doesn't know what it is supposed to "
+"do.  Send a note to %s."
+msgstr ""
+
+#: src/file-handle.q:147 src/file-handle.q:150
+#, c-format
+msgid "%s is not implemented.  If you care, complain."
+msgstr ""
+
+#: src/file-handle.q:232
+#, c-format
+msgid "File handle `%s' has not been previously declared on FILE HANDLE."
+msgstr ""
+
+#: src/file-handle.q:319
+msgid "<Inline File>"
+msgstr ""
+
+#: src/file-handle.q:338
+msgid "expecting a file name or handle"
+msgstr ""
+
+#: src/frequencies.q:96
+msgid "Median"
+msgstr ""
+
+#: src/frequencies.q:97
+msgid "Mode"
+msgstr ""
+
+#: src/frequencies.q:268
+msgid ""
+"At most one of BARCHART, HISTOGRAM, or HBAR should be given.  HBAR will be "
+"assumed.  Argument values will be given precedence increasing along the "
+"order given."
+msgstr ""
+
+#: src/frequencies.q:349
+#, c-format
+msgid ""
+"MAX must be greater than or equal to MIN, if both are specified.  However, "
+"MIN was specified as %g and MAX as %g.  MIN and MAX will be ignored."
+msgstr ""
+
+#: src/frequencies.q:632
+msgid ""
+"Upper limit of integer mode value range must be greater than lower limit."
+msgstr ""
+
+#: src/frequencies.q:644
+#, c-format
+msgid "Variable %s specified multiple times on VARIABLES subcommand."
+msgstr ""
+
+#: src/frequencies.q:657
+#, c-format
+msgid "Integer mode specified, but %s is not a numeric variable."
+msgstr ""
+
+#: src/frequencies.q:719
+msgid "`)' expected after GROUPED interval list."
+msgstr ""
+
+#: src/frequencies.q:732
+#, c-format
+msgid "Variables %s specified on GROUPED but not on VARIABLES."
+msgstr ""
 
 
-#: t-test.q:1062 src/t-test.q:1062
-msgid "Paired Samples Test"
+#: src/frequencies.q:735
+#, c-format
+msgid "Variables %s specified multiple times on GROUPED subcommand."
 msgstr ""
 
 msgstr ""
 
-#: t-test.q:1065 src/t-test.q:1065
-msgid "Paired Differences"
+#: src/frequencies.q:795
+msgid "Percentile list expected after PERCENTILES."
 msgstr ""
 
 msgstr ""
 
-#: t-test.q:1077 src/t-test.q:1077
-msgid "Std. Error Mean"
+#: src/frequencies.q:803
+msgid "Percentiles must be greater than 0 and less than 100."
 msgstr ""
 
 msgstr ""
 
-#: t-test.q:1176 src/t-test.q:1176
-msgid "One-Sample Test"
+#: src/frequencies.q:1008 src/frequencies.q:1098 src/frequencies.q:1099
+#: src/frequencies.q:1129
+msgid "Cum"
 msgstr ""
 
 msgstr ""
 
-#: t-test.q:1181 src/t-test.q:1181
-#, c-format
-msgid "Test Value = %f"
+#: src/frequencies.q:1010
+msgid "Frequency"
 msgstr ""
 
 msgstr ""
 
-#: t-test.q:1306 src/t-test.q:1306
-msgid "Paired Samples Correlations"
+#: src/frequencies.q:1029
+msgid "Value Label"
 msgstr ""
 
 msgstr ""
 
-#: t-test.q:1310 src/t-test.q:1310
-msgid "Correlation"
+#: src/frequencies.q:1127
+msgid "Freq"
+msgstr ""
+
+#: src/frequencies.q:1128 src/frequencies.q:1130
+msgid "Pct"
 msgstr ""
 
 msgstr ""
 
-#: t-test.q:1333 src/t-test.q:1333
+#: src/frequencies.q:1285
 #, c-format
 #, c-format
-msgid "%s & %s"
+msgid "No valid data for variable %s; statistics not displayed."
 msgstr ""
 
 msgstr ""
 
-#: src/val-labs.c:138
+#: src/frequencies.q:1308
+msgid "Percentile"
+msgstr ""
+
+#: src/list.q:152
 #, c-format
 msgid ""
 #, c-format
 msgid ""
-"It is not possible to assign value labels to long string variables such as %"
-"s."
+"The first case (%ld) specified precedes the last case (%ld) specified.  The "
+"values will be swapped."
 msgstr ""
 
 msgstr ""
 
-#: src/val-labs.c:176
-msgid "String expected for value."
+#: src/list.q:160
+#, c-format
+msgid ""
+"The first case (%ld) to list is less than 1.  The value is being reset to 1."
 msgstr ""
 
 msgstr ""
 
-#: src/val-labs.c:185
-msgid "Number expected for value."
+#: src/list.q:166
+#, c-format
+msgid ""
+"The last case (%ld) to list is less than 1.  The value is being reset to 1."
 msgstr ""
 
 msgstr ""
 
-#: src/val-labs.c:189
+#: src/list.q:172
 #, c-format
 #, c-format
-msgid "Value label `%g' is not integer."
+msgid "The step value %ld is less than 1.  The value is being reset to 1."
 msgstr ""
 
 msgstr ""
 
-#: src/val-labs.c:199
-msgid "Truncating value label to 60 characters."
+#: src/list.q:199
+msgid "`/FORMAT WEIGHT' specified, but weighting is not on."
 msgstr ""
 
 msgstr ""
 
-#: src/val-labs.c:220
-msgid "Value labels:"
+#: src/list.q:445
+msgid "Line"
 msgstr ""
 
 msgstr ""
 
-#: src/val-labs.c:237
-#, c-format
-msgid "    (no value labels)\n"
+#: src/means.q:106
+msgid "Missing required subcommand TABLES."
 msgstr ""
 
 msgstr ""
 
-#: src/var-labs.c:53
-msgid "String expected for variable label."
+#: src/means.q:144
+msgid "TABLES or CROSSBREAK subcommand may not appear more than once."
 msgstr ""
 
 msgstr ""
 
-#: src/var-labs.c:59
-msgid "Truncating variable label to 120 characters."
+#: src/means.q:181
+#, c-format
+msgid ""
+"Variable %s specified on TABLES or CROSSBREAK, but not specified on "
+"VARIABLES."
 msgstr ""
 
 msgstr ""
 
-#: src/var-labs.c:87
+#: src/means.q:195
 #, c-format
 #, c-format
-msgid "Variable labels:\n"
+msgid "LOWEST and HIGHEST may not be used for independent variables (%s)."
 msgstr ""
 
 msgstr ""
 
-#: src/var-labs.c:94
+#: src/means.q:203
 #, c-format
 #, c-format
-msgid "(no variable label)"
+msgid ""
+"Independent variables (%s) may not have noninteger endpoints in their ranges."
 msgstr ""
 
 msgstr ""
 
-#: src/vars-prs.c:46
-#, c-format
-msgid "%s is not a variable name."
+#: src/means.q:236
+msgid "VARIABLES must precede TABLES."
 msgstr ""
 
 msgstr ""
 
-#: src/vars-prs.c:194
+#: src/means.q:293
 #, c-format
 #, c-format
-msgid "%s TO %s is not valid syntax since %s precedes %s in the dictionary."
+msgid "Upper value (%g) is less than lower value (%g) on VARIABLES subcommand."
 msgstr ""
 
 msgstr ""
 
-#: src/vars-prs.c:204
+#: src/set.q:217 src/set.q:220 src/set.q:238 src/set.q:307 src/set.q:313
+#: src/set.q:338 src/set.q:340 src/set.q:359 src/set.q:363 src/set.q:367
+#: src/set.q:381 src/set.q:383 src/set.q:387 src/set.q:705 src/set.q:786
+#: src/set.q:867
 #, c-format
 #, c-format
+msgid "%s is obsolete."
+msgstr ""
+
+#: src/set.q:224
+msgid "Active file compression is not yet implemented (and probably won't be)."
+msgstr ""
+
+#: src/set.q:233
+msgid "CPI must be greater than 0."
+msgstr ""
+
+#: src/set.q:242
+msgid "LPI must be greater than 0."
+msgstr ""
+
+#: src/set.q:249
 msgid ""
 msgid ""
-"When using the TO keyword to specify several variables, both variables must "
-"be from the same variable dictionaries, of either ordinary, scratch, or "
-"system variables.  %s is a %s variable, whereas %s is %s."
+"CASE is not implemented and probably won't be.  If you care, complain about "
+"it."
 msgstr ""
 
 msgstr ""
 
-#: src/vars-prs.c:222
+#: src/set.q:279
 #, c-format
 #, c-format
-msgid "Scratch variables (such as %s) are not allowed here."
+msgid "Value for MITERATE (%ld) must be greater than 0."
 msgstr ""
 
 msgstr ""
 
-#: src/vars-prs.c:245
+#: src/set.q:287
 #, c-format
 #, c-format
-msgid ""
-"%s is not a numeric variable.  It will not be included in the variable list."
+msgid "Value for MNEST (%ld) must be greater than 0."
+msgstr ""
+
+#: src/set.q:295
+msgid "MXERRS must be at least 1."
+msgstr ""
+
+#: src/set.q:302
+msgid "MXLOOPS must be at least 1."
 msgstr ""
 
 msgstr ""
 
-#: src/vars-prs.c:248
+#: src/set.q:323
+msgid "Workspace limit must be at least 1 MB."
+msgstr ""
+
+#: src/set.q:401
 #, c-format
 msgid ""
 #, c-format
 msgid ""
-"%s is not a string variable.  It will not be included in the variable list."
+"CC%c: Length of custom currency string `%s' (%d) exceeds maximum length of "
+"16."
 msgstr ""
 
 msgstr ""
 
-#: src/vars-prs.c:252
+#: src/set.q:423
 #, c-format
 msgid ""
 #, c-format
 msgid ""
-"%s and %s are not the same type.  All variables in this variable list must "
-"be of the same type.  %s will be omitted from list."
+"CC%c: Custom currency string `%s' does not contain exactly three periods or "
+"commas (not both)."
+msgstr ""
+
+#: src/set.q:566
+msgid "LENGTH must be at least 1."
+msgstr ""
+
+#: src/set.q:603
+msgid "Missing identifier in RESULTS subcommand."
+msgstr ""
+
+#: src/set.q:614
+msgid "Unrecognized identifier in RESULTS subcommand."
+msgstr ""
+
+#: src/set.q:651
+msgid "WIDTH must be at least 1."
 msgstr ""
 
 msgstr ""
 
-#: src/vars-prs.c:257
+#: src/set.q:674
 #, c-format
 #, c-format
-msgid "Variable %s appears twice in variable list."
+msgid ""
+"FORMAT requires numeric output format as an argument.  Specified format %s "
+"is of type string."
 msgstr ""
 
 msgstr ""
 
-#: src/vars-prs.c:334
-msgid "incorrect use of TO convention"
+#: src/set.q:718
+msgid "Text color must be in range 0-15."
 msgstr ""
 
 msgstr ""
 
-#: src/vars-prs.c:380
-msgid "Scratch variables not allowed here."
+#: src/set.q:731
+msgid "Background color must be in range 0-7."
 msgstr ""
 
 msgstr ""
 
-#: src/vars-prs.c:402
-msgid "Prefixes don't match in use of TO convention."
+#: src/set.q:742
+msgid "Border color must be in range 0-7."
 msgstr ""
 
 msgstr ""
 
-#: src/vars-prs.c:407
-msgid "Bad bounds in use of TO convention."
+#: src/set.q:798
+msgid "Lower window color must be between 0 and 6."
 msgstr ""
 
 msgstr ""
 
-#: src/vector.c:68
-#, c-format
-msgid "Vector name %s is given twice."
+#: src/set.q:812
+msgid "Upper window color must be between 0 and 6."
 msgstr ""
 
 msgstr ""
 
-#: src/vector.c:74
-#, c-format
-msgid "There is already a vector with name %s."
+#: src/set.q:824
+msgid "Frame color must be between 0 and 6."
 msgstr ""
 
 msgstr ""
 
-#: src/vector.c:95
-msgid ""
-"A slash must be used to separate each vector specification when using the "
-"long form.  Commands such as VECTOR A,B=Q1 TO Q20 are not supported."
+#: src/set.q:876
+msgid "Drive letter expected in WORKDEV subcommand."
 msgstr ""
 
 msgstr ""
 
-#: src/vector.c:129
-msgid "Vectors must have at least one element."
+#: src/t-test.q:208
+msgid "TESTVAL, GROUPS and PAIRS subcommands are mutually exclusive."
 msgstr ""
 
 msgstr ""
 
-#: src/vector.c:143
+#: src/t-test.q:225
+msgid "VARIABLES subcommand is not appropriate with PAIRS"
+msgstr ""
+
+#: src/t-test.q:317 src/t-test.q:396
 #, c-format
 #, c-format
-msgid "%s%d is too long for a variable name."
+msgid "`%s' is not a variable name"
 msgstr ""
 
 msgstr ""
 
-#: src/vector.c:181
+#: src/t-test.q:330
+#, c-format
+msgid "Long string variable %s is not valid here."
+msgstr ""
+
+#: src/t-test.q:347
 msgid ""
 msgid ""
-"The syntax for this command does not match the expected syntax for either "
-"the long form or the short form of VECTOR."
+"When applying GROUPS to a string variable, at least one value must be "
+"specified."
 msgstr ""
 
 msgstr ""
 
-#: src/vfm.c:291
+#: src/t-test.q:431
 #, c-format
 msgid ""
 #, c-format
 msgid ""
-"Workspace overflow predicted.  Max workspace is currently set to %d KB (%d "
-"cases at %d bytes each).  Paging active file to disk."
+"PAIRED was specified but the number of variables preceding WITH (%d) did not "
+"match the number following (%d)."
 msgstr ""
 
 msgstr ""
 
-#: src/vfm.c:366
-msgid "<NOVAR>"
+#: src/t-test.q:448
+msgid "At least two variables must be specified on PAIRS."
+msgstr ""
+
+#: src/t-test.q:620
+msgid "One-Sample Statistics"
+msgstr ""
+
+#: src/t-test.q:624 src/t-test.q:647 src/t-test.q:737 src/t-test.q:1085
+msgid "Std. Deviation"
+msgstr ""
+
+#: src/t-test.q:625 src/t-test.q:648 src/t-test.q:738
+msgid "SE. Mean"
+msgstr ""
+
+#: src/t-test.q:642
+msgid "Group Statistics"
 msgstr ""
 
 msgstr ""
 
-#: src/vfm.c:571
+#: src/t-test.q:732
+msgid "Paired Sample Statistics"
+msgstr ""
+
+#: src/t-test.q:754 src/t-test.q:1119 src/t-test.q:1339
 #, c-format
 #, c-format
-msgid ""
-"An error occurred attempting to create a temporary file for use as the "
-"active file: %s."
+msgid "Pair %d"
+msgstr ""
+
+#: src/t-test.q:874
+msgid "Independent Samples Test"
+msgstr ""
+
+#: src/t-test.q:882
+msgid "Levene's Test for Equality of Variances"
+msgstr ""
+
+#: src/t-test.q:884
+msgid "t-test for Equality of Means"
+msgstr ""
+
+#: src/t-test.q:886
+msgid "F"
+msgstr ""
+
+#: src/t-test.q:887 src/t-test.q:1320
+msgid "Sig."
+msgstr ""
+
+#: src/t-test.q:888 src/t-test.q:1089 src/t-test.q:1201
+msgid "t"
+msgstr ""
+
+#: src/t-test.q:890 src/t-test.q:1091 src/t-test.q:1203
+msgid "Sig. (2-tailed)"
+msgstr ""
+
+#: src/t-test.q:891 src/t-test.q:1204
+msgid "Mean Difference"
+msgstr ""
+
+#: src/t-test.q:892
+msgid "Std. Error Difference"
 msgstr ""
 
 msgstr ""
 
-#: src/vfm.c:589
+#: src/t-test.q:897 src/t-test.q:1081 src/t-test.q:1196
 #, c-format
 #, c-format
-msgid ""
-"An error occurred while attempting to read from a temporary file created for "
-"the active file: %s."
+msgid "%d%% Confidence Interval of the Difference"
+msgstr ""
+
+#: src/t-test.q:931
+msgid "Equal variances assumed"
 msgstr ""
 
 msgstr ""
 
-#: src/vfm.c:617
+#: src/t-test.q:946
 #, c-format
 #, c-format
-msgid ""
-"An error occurred while attempting to write to a temporary file used as the "
-"active file: %s."
+msgid "Error calculating F statistic (cdff returned %d)."
 msgstr ""
 
 msgstr ""
 
-#: src/vfm.c:631
+#: src/t-test.q:969 src/t-test.q:989 src/t-test.q:1027 src/t-test.q:1039
+#: src/t-test.q:1140 src/t-test.q:1166 src/t-test.q:1246 src/t-test.q:1263
+#: src/t-test.q:1354
 #, c-format
 #, c-format
-msgid ""
-"An error occurred while attempting to rewind a temporary file used as the "
-"active file: %s."
+msgid "Error calculating T statistic (cdft returned %d)."
 msgstr ""
 
 msgstr ""
 
-#: src/vfm.c:746
-msgid "Virtual memory exhausted.  Paging active file to disk."
+#: src/t-test.q:1003
+msgid "Equal variances not assumed"
 msgstr ""
 
 msgstr ""
 
-#: src/vfm.c:749
-#, c-format
-msgid ""
-"Workspace limit of %d KB (%d cases at %d bytes each) overflowed.  Paging "
-"active file to disk."
+#: src/t-test.q:1071
+msgid "Paired Samples Test"
+msgstr ""
+
+#: src/t-test.q:1074
+msgid "Paired Differences"
+msgstr ""
+
+#: src/t-test.q:1086
+msgid "Std. Error Mean"
 msgstr ""
 
 msgstr ""
 
-#: src/vfm.c:773 src/vfm.c:810
+#: src/t-test.q:1185
+msgid "One-Sample Test"
+msgstr ""
+
+#: src/t-test.q:1190
 #, c-format
 #, c-format
-msgid ""
-"An error occurred while attempting to write to a temporary file created as "
-"the active file, while paging to disk: %s."
+msgid "Test Value = %f"
 msgstr ""
 
 msgstr ""
 
-#: src/vfm.c:924
-msgid "transform: "
+#: src/t-test.q:1315
+msgid "Paired Samples Correlations"
 msgstr ""
 
 msgstr ""
 
-#: src/weight.c:61
-msgid "The weighting variable must be numeric."
+#: src/t-test.q:1319
+msgid "Correlation"
 msgstr ""
 
 msgstr ""
 
-#: src/weight.c:66
-msgid "The weighting variable may not be scratch."
+#: src/t-test.q:1342
+#, c-format
+msgid "%s & %s"
 msgstr ""
 msgstr ""
index 4abd99da40693a7bb3a5405fff8aa151d8dbba4d..396112149c7fbf80de7982ae76eff1086e87806f 100644 (file)
@@ -1,3 +1,8 @@
+Fri Mar 12 16:23:35 WST 2004 John Darrington <john@darrington.wattle.id.au>
+
+       * t-test.q, levene.c: Added support for T-TEST /GROUP where only 
+       one value is given.
+
 Wed Mar 10 23:25:13 2004  Ben Pfaff  <blp@gnu.org>
 
        Change explicit variable name checks into use of
 Wed Mar 10 23:25:13 2004  Ben Pfaff  <blp@gnu.org>
 
        Change explicit variable name checks into use of
index 67e52d38300f732f37d066c0f637855bfcf80d7a..1666e0206a84ec76551323d4f010ecc6b311ab66 100644 (file)
@@ -51,6 +51,9 @@
 
  */
 
 
  */
 
+static struct group_statistics *get_group(int v, struct group_statistics *key);
+
+/* First pass */
 static void levene_precalc (void *);
 static int levene_calc (struct ccase *, void *);
 static void levene_postcalc (void *);
 static void levene_precalc (void *);
 static int levene_calc (struct ccase *, void *);
 static void levene_postcalc (void *);
@@ -100,30 +103,37 @@ levene(struct variable *v_indep, int n_dep, struct variable **v_dep)
 
 static struct hsh_table **hash;
 
 
 static struct hsh_table **hash;
 
+/* Return -1 if the id of a is less than b; +1 if greater than and 
+   0 if equal */
 static int 
 static int 
-compare_group_id(const void *a_, const void *b_, void *aux)
+compare_group(const struct group_statistics *a, 
+                const struct group_statistics *b, 
+                int width)
 {
 {
-  const struct group_statistics *a = (struct group_statistics *) a_;
-  const struct group_statistics *b = (struct group_statistics *) b_;
+  int id_cmp = compare_values(&a->id, &b->id, width);
 
 
-  int width = (int) aux;
-  
-  return compare_values(&a->id, &b->id, width);
+  if (id_cmp == 0 ) 
+    {
+      int c;
+      c= memcmp(&a->criterion,&b->criterion,sizeof(enum comparison));
+      return c;
+    }
+  else
+    return id_cmp;
 }
 
 
 static unsigned 
 }
 
 
 static unsigned 
-hash_group_id(const void *g_, void *aux)
+hash_group(const struct group_statistics *g, int width)
 {
 {
-  const struct group_statistics *g = (struct group_statistics *) g_;
-
-  int width = (int) aux;
+  unsigned id_hash;
 
   if ( 0 == width ) 
 
   if ( 0 == width ) 
-    return hsh_hash_double (g->id.f);
+    id_hash = hsh_hash_double (g->id.f);
   else
   else
-    return hsh_hash_bytes (g->id.s, width);
+    id_hash = hsh_hash_bytes (g->id.s, width);
 
 
+  return id_hash;
 }
 
 /* Internal variables used in calculating the Levene statistic */
 }
 
 /* Internal variables used in calculating the Levene statistic */
@@ -147,6 +157,8 @@ struct lz_stats
 /* An array of lz_stats for each variable */
 static struct lz_stats *lz;
 
 /* An array of lz_stats for each variable */
 static struct lz_stats *lz;
 
+/* Set to 1 if the groups require inequality comparisions */ 
+static int inequality_compare;
 
 
 static void 
 
 
 static void 
@@ -166,7 +178,8 @@ levene_precalc (void *_l)
       int number_of_groups = v->p.t_t.n_groups ; 
 
       hash[i] = hsh_create (l->n_dep * number_of_groups,
       int number_of_groups = v->p.t_t.n_groups ; 
 
       hash[i] = hsh_create (l->n_dep * number_of_groups,
-                           compare_group_id, hash_group_id,
+                           (hsh_compare_func *) compare_group, 
+                           (hsh_hash_func *) hash_group,
                            0,(void *) l->v_indep->width);
 
       lz[i].grand_total = 0;
                            0,(void *) l->v_indep->width);
 
       lz[i].grand_total = 0;
@@ -176,8 +189,12 @@ levene_precalc (void *_l)
       for (g = 0 ; g < v->p.t_t.n_groups ; ++g ) 
        {
          struct group_statistics *gs = &v->p.t_t.gs[g];
       for (g = 0 ; g < v->p.t_t.n_groups ; ++g ) 
        {
          struct group_statistics *gs = &v->p.t_t.gs[g];
-         gs->lz_total=0;
-         hsh_insert(hash[i],gs);
+         gs->lz_total = 0;
+         hsh_insert(hash[i], gs);
+         if ( gs->criterion != CMP_EQ ) 
+           {
+             inequality_compare = 1;
+           }
        }
     }
 
        }
     }
 
@@ -193,14 +210,16 @@ levene_calc (struct ccase *c, void *_l)
   double weight = dict_get_case_weight(default_dict,c); 
   
   key.id = *gv;
   double weight = dict_get_case_weight(default_dict,c); 
   
   key.id = *gv;
+  key.criterion = CMP_EQ;
 
   for (var = 0; var < l->n_dep; ++var) 
     {
       double levene_z;
       union value *v = &c->data[l->v_dep[var]->fv];
       struct group_statistics *gs;
 
   for (var = 0; var < l->n_dep; ++var) 
     {
       double levene_z;
       union value *v = &c->data[l->v_dep[var]->fv];
       struct group_statistics *gs;
-      gs = hsh_find(hash[var],&key);
-      assert(0 == compare_values(&gs->id, &key.id, l->v_indep->width));
+      gs = get_group(var,&key); 
+      if ( 0 == gs ) 
+       continue ;
 
       /* FIXME: handle SYSMIS properly */
 
 
       /* FIXME: handle SYSMIS properly */
 
@@ -271,15 +290,16 @@ levene2_calc (struct ccase *c, void *_l)
   struct group_statistics key;
 
   key.id = *gv;
   struct group_statistics key;
 
   key.id = *gv;
+  key.criterion = CMP_EQ;
 
   for (var = 0; var < l->n_dep; ++var) 
     {
       double levene_z;
       union value *v = &c->data[l->v_dep[var]->fv];
       struct group_statistics *gs;
 
   for (var = 0; var < l->n_dep; ++var) 
     {
       double levene_z;
       union value *v = &c->data[l->v_dep[var]->fv];
       struct group_statistics *gs;
-      gs = hsh_find(hash[var],&key);
-      assert(gs);
-      assert(0 == compare_values(&gs->id, &key.id, l->v_indep->width));
+      gs = get_group(var,&key); 
+      if ( 0 == gs ) 
+       continue;
 
       /* FIXME: handle SYSMIS properly */
 
 
       /* FIXME: handle SYSMIS properly */
 
@@ -333,3 +353,45 @@ levene2_postcalc (void *_l)
 }
 
 
 }
 
 
+/* Return the group belonging to the v_th dependent variable
+   which matches the key */
+static struct group_statistics *
+get_group(int v, struct group_statistics *key)
+{
+  struct group_statistics *gs;
+  gs = hsh_find(hash[v],key);
+
+
+  if ( ( !gs )  && inequality_compare) 
+    {
+      /* Here we degrade to a linear search.
+        This would seem inefficient.  However, it should only ever happen 
+        with the T-TEST, for which there are exactly two groups */
+
+      struct hsh_iterator hi;
+
+      assert( hsh_count(hash[v]) == 2 ) ;
+      for(gs = (struct group_statistics *) hsh_first(hash[v],&hi);
+         gs != 0 ;
+         gs = (struct group_statistics *) hsh_next(hash[v],&hi) )
+       {
+         int cmp;
+
+         cmp = compare_values(&gs->id, &key->id, 0);
+
+         assert( cmp != 0 ); /* or else the hash would have found something */
+
+         if ( cmp == -1 && 
+              ( gs->criterion == CMP_GT || gs->criterion == CMP_GE ) 
+            ) 
+           break;
+
+         if ( cmp == 1 && 
+              ( gs->criterion == CMP_LT || gs->criterion == CMP_LE ) 
+            ) 
+           break;
+       }
+    }
+
+  return gs;
+}
index ad1d45cafa48ad18cd0dab176f8521abdbc62a70..1e860834d6f3e4abc55bc8240533d854fd904dfc 100644 (file)
 
 #include "val.h"
 
 
 #include "val.h"
 
+
+enum comparison
+  {
+    CMP_LE = -2,
+    CMP_LT = -1,
+    CMP_EQ = 0,
+    CMP_GT = 1,
+    CMP_GE = 2
+  };
+
 /* Statistics for grouped data */
 struct group_statistics
   {
     /* The value of the independent variable for this group */
     union value id;
 
 /* Statistics for grouped data */
 struct group_statistics
   {
     /* The value of the independent variable for this group */
     union value id;
 
+    /* The criterium matching for comparing with id */
+    enum comparison criterion;
+
     /* The arithmetic mean */
     double mean;
 
     /* The arithmetic mean */
     double mean;
 
index 3f80214494bde1013c85f05713accbe7fe6df559..f9012555fbedaaa617b0f4cd6bf44d8508ff614a 100644 (file)
@@ -36,7 +36,6 @@
 #include "value-labels.h"
 #include "var.h"
 #include "vfm.h"
 #include "value-labels.h"
 #include "var.h"
 #include "vfm.h"
-#include "pool.h"
 #include "hash.h"
 #include "stats.h"
 #include "t-test.h"
 #include "hash.h"
 #include "stats.h"
 #include "t-test.h"
 
 static struct cmd_t_test cmd;
 
 
 static struct cmd_t_test cmd;
 
-
-static struct pool *t_test_pool ;
-
 /* Variable for the GROUPS subcommand, if given. */
 /* Variable for the GROUPS subcommand, if given. */
-static struct variable *groups;
+static struct variable *indep_var;
 
 /* GROUPS: Number of values specified by the user; the values
    specified if any. */
 
 
 /* GROUPS: Number of values specified by the user; the values
    specified if any. */
 
-static int n_groups_values;
+static int n_group_values;
 static union value groups_values[2];
 static union value groups_values[2];
+static enum comparison criteria[2];
 
 
 /* PAIRS: Number of pairs to be compared ; each pair. */
 
 
 /* PAIRS: Number of pairs to be compared ; each pair. */
@@ -93,12 +90,11 @@ struct pair
   /* The std deviation of the differences */
   double std_dev_diff;
 };
   /* The std deviation of the differences */
   double std_dev_diff;
 };
-static struct pair *pairs=0;
 
 
+static struct pair *pairs=0;
 
 static int parse_value (union value * v, int type) ;
 
 
 static int parse_value (union value * v, int type) ;
 
-
 /* Structures and Functions for the Statistics Summary Box */
 struct ssbox;
 typedef void populate_ssbox_func(struct ssbox *ssb,
 /* Structures and Functions for the Statistics Summary Box */
 struct ssbox;
 typedef void populate_ssbox_func(struct ssbox *ssb,
@@ -275,12 +271,10 @@ cmd_t_test(void)
       break;
     case T_IND_SAMPLES:
       procedure(group_precalc,group_calc,group_postcalc, NULL);
       break;
     case T_IND_SAMPLES:
       procedure(group_precalc,group_calc,group_postcalc, NULL);
-      levene(groups, cmd.n_variables, cmd.v_variables);
+      levene(indep_var, cmd.n_variables, cmd.v_variables);
       break;
     }
 
       break;
     }
 
-  t_test_pool = pool_create ();
-
   ssbox_create(&stat_summary_box,&cmd,mode);
   ssbox_populate(&stat_summary_box,&cmd);
   ssbox_finalize(&stat_summary_box);
   ssbox_create(&stat_summary_box,&cmd,mode);
   ssbox_populate(&stat_summary_box,&cmd);
   ssbox_finalize(&stat_summary_box);
@@ -292,11 +286,6 @@ cmd_t_test(void)
   trbox_populate(&test_results_box,&cmd);
   trbox_finalize(&test_results_box);
 
   trbox_populate(&test_results_box,&cmd);
   trbox_finalize(&test_results_box);
 
-  pool_destroy (t_test_pool);
-
-  t_test_pool=0;
-
-
   n_pairs=0;
   free(pairs);
   pairs=0;
   n_pairs=0;
   free(pairs);
   pairs=0;
@@ -318,6 +307,7 @@ cmd_t_test(void)
 static int
 tts_custom_groups (struct cmd_t_test *cmd UNUSED)
 {
 static int
 tts_custom_groups (struct cmd_t_test *cmd UNUSED)
 {
+
   lex_match('=');
 
   if (token != T_ALL && 
   lex_match('=');
 
   if (token != T_ALL && 
@@ -328,27 +318,28 @@ tts_custom_groups (struct cmd_t_test *cmd UNUSED)
     return 0;
   }
 
     return 0;
   }
 
-  groups = parse_variable ();
-  if (!groups)
+  indep_var = parse_variable ();
+  if (!indep_var)
     {
       lex_error ("expecting variable name in GROUPS subcommand");
       return 0;
     }
 
     {
       lex_error ("expecting variable name in GROUPS subcommand");
       return 0;
     }
 
-  if (groups->type == T_STRING && groups->width > MAX_SHORT_STRING)
+  if (indep_var->type == T_STRING && indep_var->width > MAX_SHORT_STRING)
     {
       msg (SE, _("Long string variable %s is not valid here."),
     {
       msg (SE, _("Long string variable %s is not valid here."),
-          groups->name);
+          indep_var->name);
       return 0;
     }
 
   if (!lex_match ('('))
     {
       return 0;
     }
 
   if (!lex_match ('('))
     {
-      if (groups->type == NUMERIC)
+      if (indep_var->type == NUMERIC)
        {
        {
-         n_groups_values = 2;
          groups_values[0].f = 1;
          groups_values[1].f = 2;
          groups_values[0].f = 1;
          groups_values[1].f = 2;
+         criteria[0] = criteria[1] = CMP_EQ;
+         n_group_values = 2;
          return 1;
        }
       else
          return 1;
        }
       else
@@ -359,21 +350,27 @@ tts_custom_groups (struct cmd_t_test *cmd UNUSED)
        }
     }
 
        }
     }
 
-  if (!parse_value (&groups_values[0],groups->type))
-    return 0;
-  n_groups_values = 1;
+  if (!parse_value (&groups_values[0],indep_var->type))
+      return 0;
 
   lex_match (',');
   if (lex_match (')'))
 
   lex_match (',');
   if (lex_match (')'))
-    return 1;
+    {
+      criteria[0] =  CMP_LE;
+      criteria[1] =  CMP_GT;
+      groups_values[1] = groups_values[0];
+      n_group_values = 1;
+      return 1;
+    }
 
 
-  if (!parse_value (&groups_values[1],groups->type))
+  if (!parse_value (&groups_values[1],indep_var->type))
     return 0;
     return 0;
-  n_groups_values = 2;
-
+  
+  n_group_values = 2;
   if (!lex_force_match (')'))
     return 0;
 
   if (!lex_force_match (')'))
     return 0;
 
+  criteria[0] = criteria[1] = CMP_EQ;
   return 1;
 }
 
   return 1;
 }
 
@@ -644,7 +641,7 @@ ssbox_independent_samples_init(struct ssbox *this,
   ssbox_base_init(this, hsize,vsize);
   tab_title (this->t, 0, _("Group Statistics"));
   tab_vline(this->t,0,1,0,vsize);
   ssbox_base_init(this, hsize,vsize);
   tab_title (this->t, 0, _("Group Statistics"));
   tab_vline(this->t,0,1,0,vsize);
-  tab_text (this->t, 1, 0, TAB_CENTER | TAT_TITLE, groups->name);
+  tab_text (this->t, 1, 0, TAB_CENTER | TAT_TITLE, indep_var->name);
   tab_text (this->t, 2, 0, TAB_CENTER | TAT_TITLE, _("N"));
   tab_text (this->t, 3, 0, TAB_CENTER | TAT_TITLE, _("Mean"));
   tab_text (this->t, 4, 0, TAB_CENTER | TAT_TITLE, _("Std. Deviation"));
   tab_text (this->t, 2, 0, TAB_CENTER | TAT_TITLE, _("N"));
   tab_text (this->t, 3, 0, TAB_CENTER | TAT_TITLE, _("Mean"));
   tab_text (this->t, 4, 0, TAB_CENTER | TAT_TITLE, _("Std. Deviation"));
@@ -659,18 +656,26 @@ ssbox_independent_samples_populate(struct ssbox *ssb,
 {
   int i;
 
 {
   int i;
 
+  char *val_lab0=0;
   char *val_lab1=0;
   char *val_lab1=0;
-  char *val_lab2=0;
 
 
-  if ( groups->type == NUMERIC ) 
+  char prefix[2][3]={"",""};
+
+  if ( indep_var->type == NUMERIC ) 
     {
     {
-      val_lab1 = val_labs_find( groups->val_labs,groups_values[0]); 
-      val_lab2 = val_labs_find( groups->val_labs,groups_values[1]);
+      val_lab0 = val_labs_find( indep_var->val_labs,groups_values[0]); 
+      val_lab1 = val_labs_find( indep_var->val_labs,groups_values[1]);
     }
   else
     {
     }
   else
     {
-      val_lab1 = groups_values[0].s;
-      val_lab2 = groups_values[1].s;
+      val_lab0 = groups_values[0].s;
+      val_lab1 = groups_values[1].s;
+    }
+
+  if (n_group_values == 1) 
+    {
+      strcpy(prefix[0],"< ");
+      strcpy(prefix[1],">=");
     }
 
   assert(ssb->t);
     }
 
   assert(ssb->t);
@@ -681,16 +686,20 @@ ssbox_independent_samples_populate(struct ssbox *ssb,
 
       tab_text (ssb->t, 0, i*2+1, TAB_LEFT, cmd->v_variables[i]->name);
 
 
       tab_text (ssb->t, 0, i*2+1, TAB_LEFT, cmd->v_variables[i]->name);
 
-      if (val_lab1)
-       tab_text (ssb->t, 1, i*2+1, TAB_LEFT, val_lab1);
+      if (val_lab0)
+       tab_text (ssb->t, 1, i*2+1, TAB_LEFT | TAT_PRINTF, 
+                 "%s%s", prefix[0], val_lab0);
       else
       else
-       tab_float(ssb->t, 1 ,i*2+1, TAB_LEFT, groups_values[0].f, 2,0);
+       tab_text (ssb->t, 1, i*2+1, TAB_LEFT | TAT_PRINTF, 
+                 "%s%g", prefix[0], groups_values[0].f); 
 
 
 
 
-      if (val_lab2)
-       tab_text (ssb->t, 1, i*2+1+1, TAB_LEFT, val_lab2);
+      if (val_lab1)
+       tab_text (ssb->t, 1, i*2+1+1, TAB_LEFT | TAT_PRINTF, 
+                 "%s%s", prefix[1], val_lab1);
       else
       else
-       tab_float(ssb->t, 1 ,i*2+1+1, TAB_LEFT, groups_values[1].f,2,0);
+       tab_text (ssb->t, 1, i*2+1+1, TAB_LEFT | TAT_PRINTF, 
+                 "%s%g", prefix[1], groups_values[1].f); 
 
       /* Fill in the group statistics */
       for ( g=0; g < 2 ; ++g ) 
 
       /* Fill in the group statistics */
       for ( g=0; g < 2 ; ++g ) 
@@ -1567,16 +1576,40 @@ paired_postcalc (void *aux UNUSED)
     }
 }
 
     }
 }
 
+/* Return the group # corresponding to the 
+   independent variable with the value val 
+*/
 static int
 static int
-get_group(const union value *val, struct variable *var)
+get_group(const union value *val, struct variable *indep)
 {
 {
-  if ( 0 == compare_values(val,&groups_values[0],var->width) )
-    return 0;
-  else if (0 == compare_values(val,&groups_values[1],var->width) )
-    return 1;
+  int i; 
 
 
-  /* Never reached */
-  assert(0);
+  for (i = 0; i < 2  ; ++i )
+    {
+      const int cmp = compare_values(val,&groups_values[i],indep->width) ;
+      switch ( criteria[i])
+       {
+       case CMP_EQ: 
+         if ( 0 == cmp )   return i;
+         break;           
+       case CMP_LT:       
+         if ( 0 >  cmp )  return i;
+         break;           
+       case CMP_LE:       
+         if ( cmp <= 0 )   return i;
+         break;
+       case CMP_GT:
+         if ( cmp > 0 ) return i;
+         break;
+       case CMP_GE:
+         if ( cmp >= 0 ) return i;
+         break;
+       default:
+         assert(0);
+       };
+    }
+
+  /* No groups matched */
   return -1;
 }
 
   return -1;
 }
 
@@ -1597,10 +1630,15 @@ group_precalc (void *aux UNUSED)
 
       for (j=0 ; j < 2 ; ++j)
        {
 
       for (j=0 ; j < 2 ; ++j)
        {
-         ttpr->gs[j].sum=0;
-         ttpr->gs[j].n=0;
-         ttpr->gs[j].ssq=0;
-         ttpr->gs[j].id = groups_values[j];
+         ttpr->gs[j].sum = 0;
+         ttpr->gs[j].n = 0;
+         ttpr->gs[j].ssq = 0;
+       
+         if ( n_group_values == 2 ) 
+           ttpr->gs[j].id = groups_values[j];
+         else
+           ttpr->gs[j].id = groups_values[0];
+         ttpr->gs[j].criterion = criteria[j];
        }
     }
 
        }
     }
 
@@ -1610,16 +1648,22 @@ static int
 group_calc (struct ccase *c, void *aux UNUSED)
 {
   int i;
 group_calc (struct ccase *c, void *aux UNUSED)
 {
   int i;
-  union value *gv = &c->data[groups->fv];
+  int g;
+  union value *gv = &c->data[indep_var->fv];
 
   double weight = dict_get_case_weight(default_dict,c);
 
 
   double weight = dict_get_case_weight(default_dict,c);
 
-  gv = &c->data[groups->fv];
+  gv = &c->data[indep_var->fv];
+
+  g = get_group(gv,indep_var);
+
+  /* If the independent variable doesn't match either of the values 
+     for this case then move on to the next case */
+  if (g == -1 ) 
+    return 0;
 
   for(i=0; i< cmd.n_variables ; ++i) 
     {
 
   for(i=0; i< cmd.n_variables ; ++i) 
     {
-      int g = get_group(gv,groups);
-
       struct group_statistics *gs = &cmd.v_variables[i]->p.t_t.gs[g];
 
       union value *val=&c->data[cmd.v_variables[i]->fv];
       struct group_statistics *gs = &cmd.v_variables[i]->p.t_t.gs[g];
 
       union value *val=&c->data[cmd.v_variables[i]->fv];
index 5b7249df76eef49b52ae4121bd8e65dda8c34c30..229b5e06e8d67b8fe63ae4746cc35e180e6c8ff2 100644 (file)
@@ -24,6 +24,7 @@ TESTS = command/aggregate.sh \
        command/t-test-1s.sh \
        command/t-test-pairs.sh \
        command/t-test-groups.sh \
        command/t-test-1s.sh \
        command/t-test-pairs.sh \
        command/t-test-groups.sh \
+       command/t-test-1-indep-val.sh \
        command/weight.sh \
        bugs/alpha-freq.sh \
        bugs/compute-fmt.sh \
        command/weight.sh \
        bugs/alpha-freq.sh \
        bugs/compute-fmt.sh \
diff --git a/tests/command/t-test-1-indep-val.sh b/tests/command/t-test-1-indep-val.sh
new file mode 100755 (executable)
index 0000000..972818a
--- /dev/null
@@ -0,0 +1,119 @@
+#!/bin/sh
+
+# This program tests that the T-TEST /GROUPS command works properly 
+# when a single value in the independent variable is given.
+
+TEMPDIR=/tmp/pspp-tst-$$
+
+here=`pwd`;
+
+# ensure that top_srcdir is absolute
+cd $top_srcdir; top_srcdir=`pwd`
+
+export STAT_CONFIG_PATH=$top_srcdir/config
+
+
+cleanup()
+{
+     rm -rf $TEMPDIR
+}
+
+
+fail()
+{
+    echo $activity
+    echo FAILED
+    cleanup;
+    exit 1;
+}
+
+
+no_result()
+{
+    echo $activity
+    echo NO RESULT;
+    cleanup;
+    exit 2;
+}
+
+pass()
+{
+    cleanup;
+    exit 0;
+}
+
+mkdir -p $TEMPDIR
+
+cd $TEMPDIR
+
+activity="create program"
+cat > $TEMPDIR/out.stat <<EOF
+data list list /indep * dep *.
+begin data.
+       1        6
+       1        6
+       1        7
+       1        6
+       1       13
+       1        4
+       1        7
+       1        9
+       1        7
+       1       12
+       1       11
+       2       11
+       2        9
+       2        8
+       2        4
+       2       16
+       2        9
+       2        9
+       2        5
+       2        4
+       2       10
+       2       14
+end data.
+t-test /groups=indep(1.514) /var=dep.
+EOF
+if [ $? -ne 0 ] ; then no_result ; fi
+
+
+activity="run program"
+$here/../src/pspp -o raw-ascii $TEMPDIR/out.stat
+if [ $? -ne 0 ] ; then no_result ; fi
+
+
+activity="compare output"
+diff -B -b $TEMPDIR/pspp.list - <<EOF
+1.1 DATA LIST.  Reading free-form data from the command file.
++--------+------+
+|Variable|Format|
+#========#======#
+|INDEP   |F8.0  |
+|DEP     |F8.0  |
++--------+------+
+
+2.1 T-TEST.  Group Statistics
+#===========#==#====#==============#========#
+#     INDEP | N|Mean|Std. Deviation|SE. Mean#
+#===========#==#====#==============#========#
+#DEP < 1.514|11|8.00|         2.864|    .863#
+#    >=1.514|11|9.00|         3.821|   1.152#
+#===========#==#====#==============#========#
+
+2.2 T-TEST.  Independent Samples Test
+#==============================#=========#===============================================================================#
+#                              #Levene's |                          t-test for Equality of Means                         #
+#                              #----+----+-----+------+---------------+---------------+---------------------+------------#
+#                              #    |    |     |      |               |               |                     |    95%     #
+#                              #    |    |     |      |               |               |                     +------+-----#
+#                              #  F |Sig.|  t  |  df  |Sig. (2-tailed)|Mean Difference|Std. Error Difference| Lower|Upper#
+#==============================#====#====#=====#======#===============#===============#=====================#======#=====#
+#DEPEqual variances assumed    #.172|.683|-.695|    20|           .495|         -1.000|                1.440|-4.003|2.003#
+#   Equal variances not assumed#    |    |-.695|18.539|           .496|         -1.000|                1.440|-4.018|2.018#
+#==============================#====#====#=====#======#===============#===============#=====================#======#=====#
+EOF
+if [ $? -ne 0 ] ; then fail ; fi
+
+
+pass
index a8dfdd6c2eed8ea0fa02213f34a4be0b807accb2..487ff30b3d4c6fec68ebf6834d79920d7ea05960 100755 (executable)
@@ -49,19 +49,22 @@ activity="create program"
 cat > $TEMPDIR/out.stat <<EOF
 data list list /id * indep * dep1 * dep2 *.
 begin data.
 cat > $TEMPDIR/out.stat <<EOF
 data list list /id * indep * dep1 * dep2 *.
 begin data.
-1  1 1 3
-2  1 2 4
-3  1 2 4 
-4  1 2 4 
-5  1 3 5
-6  2 3 1
-7  2 4 2
-8  2 4 2
-9  2 4 2
-10 2 5 3
+1  1.1 1 3
+2  1.1 2 4
+3  1.1 2 4 
+4  1.1 2 4 
+5  1.1 3 5
+6  2.1 3 1
+7  2.1 4 2
+8  2.1 4 2
+9  2.1 4 2
+10 2.1 5 3
+11 3.1 2 2
 end data.
 
 end data.
 
-t-test /GROUPS=indep(1,2) /var=dep1 dep2.
+* Note that this last case should be IGNORED since it doesn't have a dependent variable of either 1 or 2
+
+t-test /GROUPS=indep(1.1,2.1) /var=dep1 dep2.
 EOF
 if [ $? -ne 0 ] ; then no_result ; fi
 
 EOF
 if [ $? -ne 0 ] ; then no_result ; fi
 
@@ -86,10 +89,10 @@ diff -B -b $TEMPDIR/pspp.list - <<EOF
 #==========#=#====#==============#========#
 #     INDEP|N|Mean|Std. Deviation|SE. Mean#
 #==========#=#====#==============#========#
 #==========#=#====#==============#========#
 #     INDEP|N|Mean|Std. Deviation|SE. Mean#
 #==========#=#====#==============#========#
-#DEP1 1    |5|2.00|          .707|    .316#
-#     2    |5|4.00|          .707|    .316#
-#DEP2 1    |5|4.00|          .707|    .316#
-#     2    |5|2.00|          .707|    .316#
+#DEP1 1.1  |5|2.00|          .707|    .316#
+#     2.1  |5|4.00|          .707|    .316#
+#DEP2 1.1  |5|4.00|          .707|    .316#
+#     2.1  |5|2.00|          .707|    .316#
 #==========#=#====#==============#========#
 
 2.2 T-TEST.  Independent Samples Test
 #==========#=#====#==============#========#
 
 2.2 T-TEST.  Independent Samples Test