AM_CONDITIONAL(cc_is_gcc, test x"$GCC" = x"yes" )
 
 
+
 dnl Internationalization macros.
 AM_GNU_GETTEXT
 AM_GNU_GETTEXT_VERSION dnl Prevents autoreconf complaint.
 AC_PROG_LN_S
 
 
-
 AH_BOTTOM([#include <pref.h>])
 
+
+AM_CONDITIONAL(unix, test x"$host_os" != x"msdos" )
+AM_CONDITIONAL(msdos, test x"$host_os" == x"msdos" )
+
 dnl This is needed otherwise --with-included-gettext fails
 AH_BOTTOM([#include <locale.h>])
 
 
 current run.  The configuration options are:
 
 @table @code
+@item -a @{compatible|enhanced@}
+@itemx --algorithm=@{compatible|enhanced@}
+
+If you chose @code{compatible}, then PSPP will use the same  algorithms 
+as used by some proprietary statistical analysis packages.
+This is not recommended, as  these algorithms are inferior and in some cases 
+compeletely broken.
+The default setting is @code{enhanced}.
+Certain commands have subcommands which allow you to override this setting on 
+a per command basis.
+
 @item -B @var{dir}
 @itemx --config-dir=@var{dir}
 
 
 Lists the available device driver classes, then terminates.
 
+@item -x @{compatible|enhanced@}
+@itemx --syntax=@{compatible|enhanced@}
+
+If you chose @code{compatible}, then PSPP will only accept command syntax that 
+is compatible with the proprietary program SPSS.
+If you choose @code{enhanced} then additional syntax will be available.
+The default is @code{enhanced}.
+
+
 @item -V
 @item --version
 
 value is reported.)  By default, the mean, standard deviation of the
 mean, minimum, and maximum are reported for each variable.
 
-NTILES causes the specified quartiles to be reported.  For instance,
-@code{/NTILES=4} would cause quartiles to be reported.  In addition,
-particular percentiles can be requested with the PERCENTILES subcommand.
+PERCENTILES causes the specified percentiles to be reported.
+The percentiles should  be presented at a list of numbers between 0
+and 100 inclusive.  
+The NTILES subcommand causes the percentiles to be reported at the
+boundaries of the data set divided into the specified number of ranges.
+For instance, @code{/NTILES=4} would cause quartiles to be reported.
+
 
 @node CROSSTABS, T-TEST, FREQUENCIES, Statistics
 @section CROSSTABS
 
+++ /dev/null
-Makefile
-Makefile.in
 
 msgstr ""
 "Project-Id-Version: PSPP 0.3.1\n"
 "Report-Msgid-Bugs-To: pspp-dev@gnu.org\n"
-"POT-Creation-Date: 2004-03-21 10:15+0800\n"
+"POT-Creation-Date: 2004-04-03 14:42+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"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n!=1);\n"
 
-#: src/aggregate.c:183 src/aggregate.c:216 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
+#: src/aggregate.c:182 src/aggregate.c:215 src/data-list.c:1359
+#: src/data-list.c:1394 src/data-list.c:1407 src/data-list.c:1420
+#: src/data-list.c:1453
 #, c-format
 msgid "%s subcommand given multiple times."
 msgstr ""
 
-#: src/aggregate.c:203
+#: src/aggregate.c:202
 msgid "while expecting COLUMNWISE"
 msgstr ""
 
-#: src/aggregate.c:244
+#: src/aggregate.c:243
 msgid "BREAK subcommand not specified."
 msgstr ""
 
-#: src/aggregate.c:400
+#: src/aggregate.c:399
 msgid "expecting aggregation function"
 msgstr ""
 
-#: src/aggregate.c:416
+#: src/aggregate.c:415
 #, c-format
 msgid "Unknown aggregation function %s."
 msgstr ""
 
-#: src/aggregate.c:431
+#: src/aggregate.c:430
 msgid "expecting `('"
 msgstr ""
 
-#: src/aggregate.c:466
+#: src/aggregate.c:465
 #, c-format
 msgid "Missing argument %d to %s."
 msgstr ""
 
-#: src/aggregate.c:474
+#: src/aggregate.c:473
 #, c-format
 msgid "Arguments to %s must be of same type as source variables."
 msgstr ""
 
-#: src/aggregate.c:484 src/expr-prs.c:665
+#: src/aggregate.c:483 src/expr-prs.c:630
 msgid "expecting `)'"
 msgstr ""
 
-#: src/aggregate.c:496
+#: src/aggregate.c:495
 #, c-format
 msgid ""
 "Number of source variables (%d) does not match number of target variables (%"
 "contains the aggregate variables and the break variables."
 msgstr ""
 
-#: src/apply-dict.c:68
+#: src/apply-dict.c:65
 #, c-format
 msgid "Variable %s is %s in target file, but %s in source file."
 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/pfm-read.c:634 src/print.c:698 src/sfm-read.c:914 src/sfm-read.c:1040
-#: src/sfm-read.c:1041
+#: src/apply-dict.c:68 src/apply-dict.c:69 src/expr-prs.c:1292
+#: src/expr-prs.c:1308 src/formats.c:100 src/pfm-read.c:638 src/print.c:688
+#: src/sfm-read.c:933 src/sfm-read.c:1063 src/sfm-read.c:1064
 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:634 src/print.c:698 src/sfm-read.c:914 src/sfm-read.c:1040
-#: src/sfm-read.c:1041
+#: src/apply-dict.c:68 src/apply-dict.c:69 src/expr-prs.c:1289
+#: src/expr-prs.c:1306 src/formats.c:100 src/pfm-read.c:638 src/print.c:688
+#: src/sfm-read.c:933 src/sfm-read.c:1063 src/sfm-read.c:1064
 msgid "numeric"
 msgstr ""
 
-#: src/apply-dict.c:84
+#: src/apply-dict.c:81
 #, c-format
 msgid "Cannot add value labels from source file to long string variable %s."
 msgstr ""
 
-#: src/apply-dict.c:130
+#: src/apply-dict.c:127
 #, c-format
 msgid ""
 "Cannot apply missing values from source file to long string variable %s."
 msgstr ""
 
-#: src/apply-dict.c:163
+#: src/apply-dict.c:160
 msgid "No matching variables found between the source and target files."
 msgstr ""
 
 "and `bs'."
 msgstr ""
 
-#: src/ascii.c:522 src/postscript.c:680
+#: src/ascii.c:522 src/postscript.c:681
 #, c-format
 msgid "Positive integer required as value for `%s'."
 msgstr ""
 msgid "Zero or positive integer required as value for `%s'."
 msgstr ""
 
-#: src/ascii.c:623 src/postscript.c:639
+#: src/ascii.c:624 src/postscript.c:639
 #, c-format
 msgid "Boolean value expected for %s."
 msgstr ""
 
-#: src/ascii.c:655 src/ascii.c:670 src/ascii.c:687
+#: src/ascii.c:656 src/ascii.c:671 src/ascii.c:688
 #, c-format
 msgid "ASCII output driver: %s: %s"
 msgstr ""
 
-#: src/ascii.c:756
+#: src/ascii.c:757
 #, c-format
 msgid "ascii_line_horz: bad hline (%d,%d),%d out of (%d,%d)\n"
 msgstr ""
 
-#: src/ascii.c:790
+#: src/ascii.c:791
 #, c-format
 msgid "ascii_line_vert: bad vline %d,(%d,%d) out of (%d,%d)\n"
 msgstr ""
 
-#: src/ascii.c:820
+#: src/ascii.c:821
 #, c-format
 msgid "ascii_line_intersection: bad intsct (%d,%d) out of (%d,%d)\n"
 msgstr ""
 
-#: src/ascii.c:968
+#: src/ascii.c:969
 #, c-format
 msgid "%s: horiz=%d, vert=%d\n"
 msgstr ""
 
-#: src/ascii.c:1140
+#: src/ascii.c:1141
 #, c-format
 msgid "Writing `%s': %s"
 msgstr ""
 
-#: src/ascii.c:1543 src/postscript.c:2093
+#: src/ascii.c:1550 src/postscript.c:2095
 #, c-format
 msgid "%s - Page %d"
 msgstr ""
 
-#: src/autorecode.c:121
+#: src/autorecode.c:120
 #, c-format
 msgid "Source variable count (%d) does not match target variable count (%d)."
 msgstr ""
 
-#: src/autorecode.c:138 src/command.c:690 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:405
-#: src/sel-if.c:56 src/sel-if.c:138 src/vector.c:194 src/file-handle.q:88
+#: src/autorecode.c:137 src/command.c:738 src/compute.c:290
+#: src/data-list.c:380 src/data-list.c:877 src/data-list.c:1686
+#: src/do-if.c:257 src/get.c:378 src/lexer.c:412 src/loop.c:239
+#: src/matrix-data.c:507 src/print.c:328 src/print.c:1038 src/recode.c:403
+#: src/sel-if.c:53 src/sel-if.c:130 src/vector.c:192 src/file-handle.q:140
 msgid "expecting end of command"
 msgstr ""
 
-#: src/autorecode.c:148
+#: src/autorecode.c:147
 #, c-format
 msgid "Target variable %s duplicates existing variable %s."
 msgstr ""
 
-#: src/autorecode.c:155
+#: src/autorecode.c:154
 #, c-format
 msgid "Duplicate variable name %s among target variables."
 msgstr ""
 
-#: src/cmdline.c:114 src/cmdline.c:133 src/cmdline.c:145 src/command.c:196
-#: src/set.q:416 src/set.q:418 src/set.q:958
+#: src/casefile.c:154
+#, c-format
+msgid "%s: Removing temporary file: %s."
+msgstr ""
+
+#: src/casefile.c:247
+#, c-format
+msgid "Error writing temporary file: %s."
+msgstr ""
+
+#: src/casefile.c:274
+#, c-format
+msgid "%s: Creating temporary file: %s."
+msgstr ""
+
+#: src/casefile.c:471
+#, c-format
+msgid "%s: Opening temporary file: %s."
+msgstr ""
+
+#: src/casefile.c:500
+#, c-format
+msgid "%s: Seeking temporary file: %s."
+msgstr ""
+
+#: src/casefile.c:513
+#, c-format
+msgid "%s: Reading temporary file: %s."
+msgstr ""
+
+#: src/casefile.c:516
+#, c-format
+msgid "%s: Temporary file ended unexpectedly."
+msgstr ""
+
+#: src/cmdline.c:141 src/cmdline.c:160 src/cmdline.c:172 src/command.c:160
+#: src/set.q:414 src/set.q:416 src/set.q:956
 #, c-format
 msgid "%s is not yet implemented."
 msgstr ""
 
-#: src/cmdline.c:159
+#: src/cmdline.c:186
 msgid ""
 "\n"
 "Copyright (C) 1997-9, 2000 Free Software Foundation, Inc.\n"
 "Written by Ben Pfaff <blp@gnu.org>."
 msgstr ""
 
-#: src/cmdline.c:221
+#: src/cmdline.c:248
 #, c-format
 msgid ""
 "PSPP, a program for statistical analysis of sample data.\n"
 "for the equivalent short option also.  Similarly for optional arguments.\n"
 "\n"
 "Configuration:\n"
+"  -a, --algorithm={compatible|enhanced}\n"
+"                            set to `compatible' if you want output\n"
+"                            calculated from broken algorithms\n"
 "  -B, --config-dir=DIR      set configuration directory to DIR\n"
 "  -o, --device=DEVICE       select output driver DEVICE and disable "
 "defaults\n"
 "  -n, --edit                just check syntax; don't actually run the code\n"
 "  -r, --no-statrc           disable execution of .pspp/rc at startup\n"
 "  -s, --safer               don't allow some unsafe operations\n"
+"  -x, --syntax={compatible|enhanced}\n"
+"                            set to `compatible' if you want only to accept\n"
+"                            spss compatible syntax\n"
 "\n"
 "Informative output:\n"
 "  -h, --help                print this help, then exit\n"
 "\n"
 msgstr ""
 
-#: src/cmdline.c:253
+#: src/cmdline.c:286
 #, c-format
 msgid ""
 "\n"
 "Report bugs to <%s>.\n"
 msgstr ""
 
-#: src/command.c:134
+#: src/command.c:98
 #, c-format
 msgid "%s not allowed inside FILE TYPE/END FILE TYPE."
 msgstr ""
 
-#: src/command.c:138
+#: src/command.c:102
 #, c-format
 msgid "%s not allowed inside FILE TYPE GROUPED/END FILE TYPE."
 msgstr ""
 
-#: src/command.c:141
+#: src/command.c:105
 msgid "RECORD TYPE must be the first command inside a FILE TYPE structure."
 msgstr ""
 
-#: src/command.c:186
-msgid "This line does not begin with a valid command name."
+#: src/command.c:150
+msgid "expecting command name"
 msgstr ""
 
-#: src/command.c:215
+#: src/command.c:179
 #, c-format
 msgid ""
 "%s is not allowed (1) before a command to specify the input program, such as "
 "PROGRAM and END INPUT PROGRAM."
 msgstr ""
 
-#: src/command.c:219
+#: src/command.c:183
 #, c-format
 msgid "%s is not allowed within an input program."
 msgstr ""
 
-#: src/command.c:220 src/command.c:221
+#: src/command.c:184 src/command.c:185
 #, c-format
 msgid "%s is only allowed within an input program."
 msgstr ""
 
-#: src/command.c:230
+#: src/command.c:464
 #, c-format
-msgid "%s command beginning\n"
-msgstr ""
-
-#: src/command.c:266
-#, c-format
-msgid ""
-"%s command completed\n"
-"\n"
-msgstr ""
-
-#: src/command.c:281
-msgid "The identifier(s) specified do not form a valid command name:"
-msgstr ""
-
-#: src/command.c:284
-msgid "The identifier(s) specified do not form a complete command name:"
+msgid "Unknown command %s."
 msgstr ""
 
-#: src/command.c:408
+#: src/command.c:564
 msgid ""
 "This command is not accepted in a syntax file.  Instead, use FINISH to "
 "terminate a syntax file."
 msgstr ""
 
-#: src/command.c:426
+#: src/command.c:582
 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:517
-msgid "The sentinel may not be the empty string."
-msgstr ""
-
-#: src/command.c:576 src/command.c:708
+#: src/command.c:625 src/command.c:756
 msgid "This command not allowed when the SAFER option is set."
 msgstr ""
 
-#: src/command.c:590
+#: src/command.c:637
 #, c-format
 msgid "Error removing `%s': %s."
 msgstr ""
 
-#: src/command.c:640
+#: src/command.c:687
 #, c-format
 msgid "Couldn't fork: %s."
 msgstr ""
 
-#: src/command.c:681
+#: src/command.c:729
 #, c-format
 msgid "Error executing command: %s."
 msgstr ""
 
-#: src/command.c:731
+#: src/command.c:777
 msgid "No operating system support for this command."
 msgstr ""
 
-#: src/command.c:760
+#: src/command.c:800
 msgid "This command is not valid in a syntax file."
 msgstr ""
 
-#: src/compute.c:145 src/compute.c:209
+#: src/compute.c:143 src/compute.c:207
 #, c-format
 msgid ""
 "When executing COMPUTE: SYSMIS is not a valid value as an index into vector %"
 "s."
 msgstr ""
 
-#: src/compute.c:148 src/compute.c:213
+#: src/compute.c:146 src/compute.c:211
 #, c-format
 msgid ""
 "When executing COMPUTE: %g is not a valid value as an index into vector %s."
 msgstr ""
 
-#: src/compute.c:355
+#: src/compute.c:352
 #, c-format
 msgid "There is no vector named %s."
 msgstr ""
 
-#: src/compute.c:461
-msgid "Extra characters after expression."
-msgstr ""
-
-#: src/count.c:156
+#: src/count.c:154
 msgid "Destination cannot be a string variable."
 msgstr ""
 
-#: src/count.c:263
+#: src/count.c:261
 #, c-format
 msgid ""
 "%g THRU %g is not a valid range.  The number following THRU must be at least "
 msgid "Field too long (%d characters).  Truncated after character %d."
 msgstr ""
 
-#: src/data-list.c:139
+#: src/data-list.c:136
 msgid ""
 "DATA LIST may not use a different file from that specified on its "
 "surrounding FILE TYPE."
 msgstr ""
 
-#: src/data-list.c:158
+#: src/data-list.c:155
 msgid "The END subcommand may only be specified once."
 msgstr ""
 
-#: src/data-list.c:194
+#: src/data-list.c:191
 msgid "Only one of FIXED, FREE, or LIST may be specified."
 msgstr ""
 
-#: src/data-list.c:327 src/print.c:299
+#: src/data-list.c:327 src/print.c:289
 #, 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:356 src/data-list.c:1679
+#: src/data-list.c:356 src/data-list.c:1675
 msgid ""
 "SPSS-like or FORTRAN-like format specification expected after variable names."
 msgstr ""
 msgid "At least one variable must be specified."
 msgstr ""
 
-#: src/data-list.c:372 src/print.c:331
+#: src/data-list.c:372 src/print.c:321
 msgid ""
 "Variables are specified on records that should not exist according to "
 "RECORDS subcommand."
 msgstr ""
 
-#: src/data-list.c:410 src/data-list.c:424 src/print.c:508 src/print.c:521
+#: src/data-list.c:410 src/data-list.c:424 src/print.c:498 src/print.c:511
 msgid "Column positions for fields must be positive."
 msgstr ""
 
 msgid "The ending column for a field must be greater than the starting column."
 msgstr ""
 
-#: src/data-list.c:443 src/print.c:598
+#: src/data-list.c:443 src/print.c:588
 #, 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
+#: src/data-list.c:463 src/print.c:539
 msgid "A format specifier on this line has extra characters on the end."
 msgstr ""
 
-#: src/data-list.c:478 src/print.c:565
+#: src/data-list.c:478 src/print.c:555
 msgid "The value for number of decimal places must be at least 1."
 msgstr ""
 
-#: src/data-list.c:492 src/print.c:578
+#: src/data-list.c:492 src/print.c:568
 #, c-format
 msgid "Input format %s doesn't accept decimal places."
 msgstr ""
 
-#: src/data-list.c:539 src/data-list.c:635 src/data-list.c:857
+#: src/data-list.c:539 src/data-list.c:635 src/data-list.c:856
 #, c-format
 msgid "%s is a duplicate variable name."
 msgstr ""
 "names."
 msgstr ""
 
-#: src/data-list.c:739 src/print.c:771
+#: src/data-list.c:739 src/print.c:761
 msgid ""
 "There aren't enough format specifications to match the number of variable "
 "names given."
 msgstr ""
 
-#: 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:1011
-#: src/descript.q:791
+#: src/data-list.c:768 src/data-list.c:898 src/descript.c:826 src/print.c:792
+#: src/sysfile-info.c:132 src/sysfile-info.c:365 src/vfm.c:833
 msgid "Variable"
 msgstr ""
 
-#: src/data-list.c:769 src/print.c:804
+#: src/data-list.c:769 src/print.c:793
 msgid "Record"
 msgstr ""
 
-#: src/data-list.c:770 src/print.c:805
+#: src/data-list.c:770 src/print.c:794
 msgid "Columns"
 msgstr ""
 
-#: src/data-list.c:771 src/data-list.c:900 src/print.c:806
+#: src/data-list.c:771 src/data-list.c:899 src/print.c:795
 msgid "Format"
 msgstr ""
 
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/data-list.c:923
+#: src/data-list.c:922
 #, c-format
 msgid "Reading free-form data from file %s."
 msgstr ""
 
-#: src/data-list.c:924
+#: src/data-list.c:923
 msgid "Reading free-form data from the command file."
 msgstr ""
 
-#: src/data-list.c:971 src/matrix-data.c:923
+#: src/data-list.c:969 src/matrix-data.c:923
 msgid "Scope of string exceeds line."
 msgstr ""
 
-#: src/data-list.c:1039
+#: src/data-list.c:1038
 #, c-format
 msgid "Partial case of %d of %d records discarded."
 msgstr ""
 
-#: src/data-list.c:1090
+#: src/data-list.c:1089
 #, c-format
 msgid "Partial case discarded.  The first variable missing was %s."
 msgstr ""
 
-#: src/data-list.c:1133
+#: src/data-list.c:1132
 #, 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:1210
+#: src/data-list.c:1209
 msgid "Attempt to read past end of file."
 msgstr ""
 
-#: src/data-list.c:1353
+#: src/data-list.c:1349
 msgid ""
 "REPEATING DATA must use the same file as its corresponding DATA LIST or FILE "
 "TYPE."
 msgstr ""
 
-#: src/data-list.c:1387
+#: src/data-list.c:1383
 #, c-format
 msgid "STARTS beginning column (%d) exceeds STARTS ending column (%d)."
 msgstr ""
 
-#: src/data-list.c:1443
+#: src/data-list.c:1439
 #, c-format
 msgid "CONTINUED beginning column (%d) exceeds CONTINUED ending column (%d)."
 msgstr ""
 
-#: src/data-list.c:1466
+#: src/data-list.c:1462
 #, c-format
 msgid "ID beginning column (%ld) must be positive."
 msgstr ""
 
-#: src/data-list.c:1481
+#: src/data-list.c:1477
 #, c-format
 msgid "ID ending column (%ld) must be positive."
 msgstr ""
 
-#: src/data-list.c:1487
+#: src/data-list.c:1483
 #, c-format
 msgid "ID ending column (%ld) cannot be less than ID beginning column (%d)."
 msgstr ""
 
-#: src/data-list.c:1527
+#: src/data-list.c:1523
 msgid "Missing required specification STARTS."
 msgstr ""
 
-#: src/data-list.c:1529
+#: src/data-list.c:1525
 msgid "Missing required specification OCCURS."
 msgstr ""
 
-#: src/data-list.c:1536
+#: src/data-list.c:1532
 msgid "ID specified without CONTINUED."
 msgstr ""
 
-#: src/data-list.c:1628
+#: src/data-list.c:1624
 msgid "String variable not allowed here."
 msgstr ""
 
-#: src/data-list.c:1638
+#: src/data-list.c:1634
 #, c-format
 msgid "%s (%d) must be at least 1."
 msgstr ""
 
-#: src/data-list.c:1644
+#: src/data-list.c:1640
 #, c-format
 msgid "Variable or integer expected for %s."
 msgstr ""
 
-#: src/data-list.c:1782
+#: src/data-list.c:1778
 #, c-format
 msgid "Encountered mismatched record ID \"%s\" expecting \"%s\"."
 msgstr ""
 
-#: src/data-list.c:1814
+#: src/data-list.c:1810
 #, c-format
 msgid ""
 "Variable %s starting in column %d extends beyond physical record length of %"
 "d."
 msgstr ""
 
-#: src/data-list.c:1882
+#: src/data-list.c:1878
 #, c-format
 msgid "Invalid value %d for OCCURS."
 msgstr ""
 
-#: src/data-list.c:1888
+#: src/data-list.c:1884
 #, c-format
 msgid "Beginning column for STARTS (%d) must be at least 1."
 msgstr ""
 
-#: src/data-list.c:1896
+#: src/data-list.c:1892
 #, c-format
 msgid "Ending column for STARTS (%d) is less than beginning column (%d)."
 msgstr ""
 
-#: src/data-list.c:1904
+#: src/data-list.c:1900
 #, c-format
 msgid "Invalid value %d for LENGTH."
 msgstr ""
 
-#: src/data-list.c:1911
+#: src/data-list.c:1907
 #, c-format
 msgid "Beginning column for CONTINUED (%d) must be at least 1."
 msgstr ""
 
-#: src/data-list.c:1919
+#: src/data-list.c:1915
 #, c-format
 msgid "Ending column for CONTINUED (%d) is less than beginning column (%d)."
 msgstr ""
 
-#: src/data-list.c:1951
+#: src/data-list.c:1947
 #, 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:1970
+#: src/data-list.c:1966
 #, c-format
 msgid "Unexpected end of file with %d repetitions remaining out of %d."
 msgstr ""
 
-#: src/data-out.c:231 src/sfm-read.c:470 src/sysfile-info.c:116
+#: src/data-out.c:235 src/sfm-read.c:472 src/sysfile-info.c:113
 msgid "Unknown"
 msgstr ""
 
-#: src/data-out.c:339
+#: src/data-out.c:343
 msgid ""
 "The N output format cannot be used to output a negative number or the system-"
 "missing value."
 msgstr ""
 
-#: src/data-out.c:450
+#: src/data-out.c:454
 #, c-format
 msgid ""
 "Quality of zoned decimal (Z) output format code is suspect.  Check your "
 "results. Report bugs to %s."
 msgstr ""
 
-#: src/data-out.c:458
+#: src/data-out.c:462
 msgid "The system-missing value cannot be output as a zoned decimal number."
 msgstr ""
 
-#: src/data-out.c:471
+#: src/data-out.c:475
 #, c-format
 msgid "Number %g too big to fit in field with format Z%d.%d."
 msgstr ""
 
-#: src/data-out.c:863
+#: src/data-out.c:867
 #, c-format
 msgid "Time value %g too large in magnitude to convert to alphanumeric time."
 msgstr ""
 
-#: src/data-out.c:914
+#: src/data-out.c:918
 #, c-format
 msgid "Weekday index %f does not lie between 1 and 7."
 msgstr ""
 
-#: src/data-out.c:934
+#: src/data-out.c:938
 #, c-format
 msgid "Month index %f does not lie between 1 and 12."
 msgstr ""
 
-#: src/data-out.c:1047
+#: src/data-out.c:1051
 #, c-format
 msgid ""
 "Year %d cannot be represented in four digits for output formatting purposes."
 msgstr ""
 
+#: src/date.c:32
+msgid "Only USE ALL is currently implemented."
+msgstr ""
+
+#: src/descript.c:83 src/frequencies.q:95 src/t-test.q:632 src/t-test.q:655
+#: src/t-test.q:744 src/t-test.q:1059
+msgid "Mean"
+msgstr ""
+
+#: src/descript.c:84
+msgid "S E Mean"
+msgstr ""
+
+#: src/descript.c:85 src/frequencies.q:99
+msgid "Std Dev"
+msgstr ""
+
+#: src/descript.c:86 src/frequencies.q:100
+msgid "Variance"
+msgstr ""
+
+#: src/descript.c:87 src/frequencies.q:101
+msgid "Kurtosis"
+msgstr ""
+
+#: src/descript.c:88
+msgid "S E Kurt"
+msgstr ""
+
+#: src/descript.c:89 src/frequencies.q:103
+msgid "Skewness"
+msgstr ""
+
+#: src/descript.c:90
+msgid "S E Skew"
+msgstr ""
+
+#: src/descript.c:91 src/frequencies.q:105
+msgid "Range"
+msgstr ""
+
+#: src/descript.c:92 src/frequencies.q:106
+msgid "Minimum"
+msgstr ""
+
+#: src/descript.c:93 src/frequencies.q:107
+msgid "Maximum"
+msgstr ""
+
+#: src/descript.c:94 src/frequencies.q:108
+msgid "Sum"
+msgstr ""
+
+#: src/descript.c:320
+#, c-format
+msgid "Z-score variable name %s would bea duplicate variable name."
+msgstr ""
+
+#: src/descript.c:337 src/list.q:143
+msgid "No variables specified."
+msgstr ""
+
+#: src/descript.c:390
+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.c:427
+msgid "expecting statistic name"
+msgstr ""
+
+#: src/descript.c:498
+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.c:529
+msgid "Mapping of variables to corresponding Z-scores."
+msgstr ""
+
+#: src/descript.c:534
+msgid "Source"
+msgstr ""
+
+#: src/descript.c:535
+msgid "Target"
+msgstr ""
+
+#: src/descript.c:612 src/descript.c:618
+msgid "Z-score of "
+msgstr ""
+
+#: src/descript.c:829
+msgid "Valid N"
+msgstr ""
+
+#: src/descript.c:830
+msgid "Missing N"
+msgstr ""
+
+#: src/descript.c:856
+#, 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'..."
 msgid "Cannot open first page on DEVIND device %s."
 msgstr ""
 
-#: src/dfm.c:74
+#: src/dfm.c:77
 #, c-format
 msgid "%s: Closing data-file handle %s."
 msgstr ""
 
-#: src/dfm.c:96
-msgid "<<Bug in dfm.c>>"
+#: src/dfm.c:103
+#, c-format
+msgid "Cannot read from file %s already opened for %s."
 msgstr ""
 
-#: src/dfm.c:118
+#: src/dfm.c:120
 #, c-format
 msgid "%s: Opening data-file handle %s for reading."
 msgstr ""
 
-#: src/dfm.c:135 src/dfm.c:152
-msgid "BEGIN DATA expected."
+#: src/dfm.c:135
+#, c-format
+msgid "Could not open \"%s\" for reading as a data file: %s."
 msgstr ""
 
-#: src/dfm.c:172
+#: src/dfm.c:164
 #, c-format
-msgid "An error occurred while opening \"%s\" for reading as a data file: %s."
+msgid "Cannot write to file %s already opened for %s."
 msgstr ""
 
-#: src/dfm.c:201
+#: src/dfm.c:181
 #, c-format
 msgid "%s: Opening data-file handle %s for writing."
 msgstr ""
 
-#: src/dfm.c:207
+#: src/dfm.c:187
 msgid "Cannot open the inline file for writing."
 msgstr ""
 
-#: src/dfm.c:222
+#: src/dfm.c:201
 #, c-format
 msgid "An error occurred while opening \"%s\" for writing as a data file: %s."
 msgstr ""
 
-#: src/dfm.c:367
+#: src/dfm.c:361 src/dfm.c:378
+msgid "BEGIN DATA expected."
+msgstr ""
+
+#: src/dfm.c:387
 msgid ""
 "Unexpected end-of-file while reading data in BEGIN DATA.  This probably "
 "indicates a missing or misformatted END DATA command.  END DATA must appear "
 "by itself on a single line with exactly one space between words."
 msgstr ""
 
-#: src/dfm.c:400 src/dfm.c:421
+#: src/dfm.c:420 src/dfm.c:442
 #, c-format
 msgid "Error reading file %s: %s."
 msgstr ""
 
-#: src/dfm.c:424
+#: src/dfm.c:445
 #, c-format
 msgid "%s: Partial record at end of file."
 msgstr ""
 
-#: src/dfm.c:482
-#, c-format
-msgid "Cannot read from file %s already opened for %s."
-msgstr ""
-
-#: src/dfm.c:496
+#: src/dfm.c:506
 #, c-format
 msgid "Attempt to read beyond end-of-file on file %s."
 msgstr ""
 
-#: src/dfm.c:590
-#, c-format
-msgid "Cannot write to file %s already opened for %s."
-msgstr ""
-
-#: src/dfm.c:614
+#: src/dfm.c:604
 #, c-format
 msgid "Error writing file %s: %s."
 msgstr ""
 
-#: src/dfm.c:656
+#: src/dfm.c:654
 msgid ""
 "This command is not valid here since the current input program does not "
 "access the inline file."
 msgstr ""
 
-#: src/dfm.c:663
+#: src/dfm.c:661
 msgid "inline file: Opening for reading."
 msgstr ""
 
-#: src/dfm.c:677
+#: src/dfm.c:674
 msgid "Skipping remaining inline data."
 msgstr ""
 
-#: src/dfm.c:689
+#: src/dfm.c:686
 msgid "reading as a data file"
 msgstr ""
 
-#: src/dfm.c:696
+#: src/dfm.c:693
 msgid "writing as a data file"
 msgstr ""
 
 msgid "End of command expected."
 msgstr ""
 
-#: src/do-if.c:163
+#: src/do-if.c:161
 msgid "There is no DO IF to match with this ELSE."
 msgstr ""
 
-#: src/do-if.c:169
+#: src/do-if.c:167
 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:206
+#: src/do-if.c:202
 msgid "There is no DO IF to match with this END IF."
 msgstr ""
 
-#: src/do-if.c:294
+#: src/do-if.c:288
 #, c-format
 msgid "DO IF %d: true\n"
 msgstr ""
 
-#: src/do-if.c:299
+#: src/do-if.c:293
 #, c-format
 msgid "DO IF %d: false\n"
 msgstr ""
 
-#: src/do-if.c:304
+#: src/do-if.c:298
 #, c-format
 msgid "DO IF %d: missing\n"
 msgstr ""
 
-#: src/error.c:115
+#: src/error.c:117
 msgid "Terminating NOW due to a fatal error!"
 msgstr ""
 
-#: src/error.c:192
+#: src/error.c:194
 msgid "Terminating execution of syntax file due to error."
 msgstr ""
 
-#: src/error.c:194
+#: src/error.c:196
 #, c-format
 msgid "Errors (%d) exceeds limit (%d)."
 msgstr ""
 
-#: src/error.c:197
+#: src/error.c:199
 #, c-format
 msgid "Warnings (%d) exceed limit (%d)."
 msgstr ""
 
-#: src/error.c:255
+#: src/error.c:257
 msgid "fatal"
 msgstr ""
 
-#: src/error.c:257 src/error.c:264 src/error.c:267 src/expr-prs.c:1464
+#: src/error.c:259 src/error.c:266 src/error.c:269 src/expr-prs.c:1283
 msgid "error"
 msgstr ""
 
-#: src/error.c:258 src/error.c:265 src/error.c:268
+#: src/error.c:260 src/error.c:267 src/error.c:270
 msgid "warning"
 msgstr ""
 
-#: src/error.c:259 src/error.c:269
+#: src/error.c:261 src/error.c:271
 msgid "note"
 msgstr ""
 
-#: src/error.c:261 src/error.c:262
+#: src/error.c:263 src/error.c:264
 msgid "installation error"
 msgstr ""
 
-#: src/expr-evl.c:1116
+#: src/expr-evl.c:632
+msgid "TIME.HMS cannot mix positive and negative in its arguments."
+msgstr ""
+
+#: src/expr-evl.c:696
+#, fuzzy
+msgid "Week argument to WKYR must be in range 0 to 53."
+msgstr "Text colour must be in range 0-15."
+
+#: src/expr-evl.c:847 src/expr-evl.c:903
+msgid "Argument 3 of RINDEX may not be system-missing."
+msgstr ""
+
+#: src/expr-evl.c:857 src/expr-evl.c:913
+msgid ""
+"Argument 3 of RINDEX must be between 1 and the length of argument 2, and it "
+"must evenly divide the length of argument 2."
+msgstr ""
+
+#: src/expr-evl.c:1099
 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:1160
+#: src/expr-evl.c:1140
 #, 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:1164
+#: src/expr-evl.c:1144
 #, 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:1182
+#: src/expr-evl.c:1163
 #, 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:1187
+#: src/expr-evl.c:1168
 #, c-format
 msgid ""
 "%g is not a valid index value for vector %s.  The result will be set to the "
 "empty string."
 msgstr ""
 
-#: src/expr-opt.c:662
-msgid ""
-"While optimizing a constant expression, there was a bad value for the third "
-"argument to INDEX."
-msgstr ""
-
-#: src/expr-opt.c:687
-msgid ""
-"While optimizing a constant expression, there was a bad value for the third "
-"argument to RINDEX."
-msgstr ""
-
-#: src/expr-opt.c:746
-#, c-format
-msgid "Third argument to %cPAD() must be at least one character in length."
-msgstr ""
-
-#: src/expr-opt.c:779
-#, c-format
-msgid "Second argument to %cTRIM() must be at least one character in length."
-msgstr ""
-
-#: src/expr-opt.c:880
+#: src/expr-opt.c:679
 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."
 
 #: src/expr-prs.c:141
 msgid ""
-"A string expression was supplied in a place where a Boolean expression was "
-"expected."
+"Type mismatch: expression has string type, but a numeric value is required "
+"here."
 msgstr ""
 
 #: src/expr-prs.c:152
 msgid ""
-"A numeric expression was expected in a place where one was not supplied."
+"Type mismatch: expression has numeric type, but a string value is required "
+"here."
 msgstr ""
 
-#: src/expr-prs.c:160
-msgid "A string expression was expected in a place where one was not supplied."
-msgstr ""
-
-#: src/expr-prs.c:174
-msgid "The OR operator cannot take string operands."
-msgstr ""
-
-#: src/expr-prs.c:222
-msgid "The AND operator cannot take string operands."
+#: src/expr-prs.c:211
+#, c-format
+msgid "Type mismatch: operands of %s operator must be strings."
 msgstr ""
 
-#: src/expr-prs.c:271
-msgid "The NOT operator cannot take a string operand."
+#: src/expr-prs.c:214
+#, c-format
+msgid "Type mismatch: operands of %s operator must be numeric."
 msgstr ""
 
-#: src/expr-prs.c:298
+#: src/expr-prs.c:395
 msgid ""
-"Strings cannot be compared with numeric or Boolean values with the "
-"relational operators = >= > <= < <>."
+"Chaining relational operators (e.g. \"a < b < c\") will not produce the "
+"mathematically expected result.  Use the AND logical operator to fix the "
+"problem (e.g. \"a < b AND b < c\").  If chaining is really intended, "
+"parentheses will disable this warning (e.g. \"(a < b) < c\".)"
 msgstr ""
 
-#: src/expr-prs.c:355
-msgid "The `+' and `-' operators may only be used with numeric operands."
-msgstr ""
-
-#: src/expr-prs.c:407
-msgid "The `*' and `/' operators may only be used with numeric operands."
-msgstr ""
-
-#: src/expr-prs.c:458
-msgid "The unary minus (-) operator can only take a numeric operand."
-msgstr ""
-
-#: src/expr-prs.c:488
-msgid "Both operands to the ** operator must be numeric."
-msgstr ""
-
-#: src/expr-prs.c:582
-msgid "Use of $LENGTH is obsolete, returning default of 66."
-msgstr ""
-
-#: src/expr-prs.c:587
-msgid "Use of $WIDTH is obsolete, returning default of 131."
+#: src/expr-prs.c:475
+msgid ""
+"The exponentiation operator (\"**\") is left-associative, even though right-"
+"associative semantics are more useful.  That is, \"a**b**c\" equals \"(a**b)"
+"**c\", not as \"a**(b**c)\".  To disable this warning, insert parentheses."
 msgstr ""
 
-#: src/expr-prs.c:592
+#: src/expr-prs.c:556
 #, c-format
 msgid "Unknown system variable %s."
 msgstr ""
 
-#: src/expr-prs.c:631
+#: src/expr-prs.c:595
 msgid "expecting variable name"
 msgstr ""
 
-#: src/expr-prs.c:673
+#: src/expr-prs.c:638
 msgid "in expression"
 msgstr ""
 
-#: src/expr-prs.c:854
+#: src/expr-prs.c:734
 msgid "Argument 2 to LAG must be a small positive integer constant."
 msgstr ""
 
-#: src/expr-prs.c:927 src/expr-prs.c:966
+#: src/expr-prs.c:815 src/expr-prs.c:854
 #, c-format
 msgid ""
 "Type mismatch in argument %d of %s, which was expected to be of %s type.  It "
 "was actually of %s type. "
 msgstr ""
 
-#: src/expr-prs.c:953
+#: src/expr-prs.c:841
 #, c-format
 msgid "%s cannot take Boolean operands."
 msgstr ""
 
-#: src/expr-prs.c:985
+#: src/expr-prs.c:873
 msgid "in function call"
 msgstr ""
 
-#: src/expr-prs.c:999
+#: src/expr-prs.c:887
 msgid "RANGE requires an odd number of arguments, but at least three."
 msgstr ""
 
-#: src/expr-prs.c:1009
+#: src/expr-prs.c:897
 #, c-format
 msgid "%s requires at least two arguments."
 msgstr ""
 
-#: src/expr-prs.c:1024
+#: src/expr-prs.c:912
 #, c-format
 msgid "%s.%d requires at least %d arguments."
 msgstr ""
 
-#: src/expr-prs.c:1066
+#: src/expr-prs.c:977
 #, c-format
 msgid ""
 "Argument %d to CONCAT is type %s.  All arguments to CONCAT must be strings."
 msgstr ""
 
-#: src/expr-prs.c:1125
+#: src/expr-prs.c:1074
 #, c-format
 msgid ""
 "Argument %d to %s was expected to be of %s type.  It was actually of type %s."
 msgstr ""
 
-#: src/expr-prs.c:1144
+#: src/expr-prs.c:1091
 #, c-format
 msgid "%s is not a numeric format."
 msgstr ""
 
-#: src/expr-prs.c:1170
+#: src/expr-prs.c:1129
 #, c-format
 msgid "Too few arguments to function %s."
 msgstr ""
 
-#: src/expr-prs.c:1202
+#: src/expr-prs.c:1162
 #, c-format
 msgid ""
-"Type mismatch in argument %d of %s, which was expected to be numeric.  It "
-"was actually type %s."
+"Type mismatch in argument %d of %s.  A string expression was supplied where "
+"only a numeric expression is allowed."
 msgstr ""
 
-#: src/expr-prs.c:1211
+#: src/expr-prs.c:1172
 #, c-format
 msgid "Missing comma following argument %d of %s."
 msgstr ""
 
-#: src/expr-prs.c:1249
+#: src/expr-prs.c:1210
 msgid "The index value after a vector name must be numeric."
 msgstr ""
 
-#: src/expr-prs.c:1256
+#: src/expr-prs.c:1217
 msgid "`)' expected after a vector index value."
 msgstr ""
 
-#: src/expr-prs.c:1289
+#: src/expr-prs.c:1250
 #, c-format
 msgid "There is no function named %s."
 msgstr ""
 
-#: src/expr-prs.c:1294
+#: src/expr-prs.c:1255
 #, c-format
 msgid "Function %s may not be given a minimum number of arguments."
 msgstr ""
 
-#: src/expr-prs.c:1303
+#: src/expr-prs.c:1264
 #, c-format
 msgid "expecting `)' after %s function"
 msgstr ""
 
-#: src/expr-prs.c:1467
+#: src/expr-prs.c:1286
 msgid "Boolean"
 msgstr ""
 
-#: src/expr-prs.c:1696
+#: src/expr-prs.c:1563
 #, c-format
 msgid "!!TERMINAL!!"
 msgstr ""
 
-#: src/expr-prs.c:1722
+#: src/expr-prs.c:1589
 #, c-format
 msgid "!!SENTINEL!!"
 msgstr ""
 
-#: src/expr-prs.c:1725
+#: src/expr-prs.c:1592
 #, c-format
 msgid "!!ERROR%d!!"
 msgstr ""
 
-#: src/expr-prs.c:1743
-msgid "postfix:"
-msgstr ""
-
 #: src/filename.c:221
 #, c-format
 msgid "Searching for `%s'..."
 msgid "Found `%s'."
 msgstr ""
 
-#: src/filename.c:669
+#: src/filename.c:686
 #, c-format
 msgid "Not opening pipe file `%s' because SAFER option set."
 msgstr ""
 
-#: src/file-type.c:127
+#: src/file-type.c:126
 msgid "MIXED, GROUPED, or NESTED expected."
 msgstr ""
 
-#: src/file-type.c:150
+#: src/file-type.c:149
 msgid "The CASE subcommand is not valid on FILE TYPE MIXED."
 msgstr ""
 
-#: src/file-type.c:168
+#: src/file-type.c:167
 msgid "WARN or NOWARN expected after WILD."
 msgstr ""
 
-#: src/file-type.c:176
+#: src/file-type.c:175
 msgid "The DUPLICATE subcommand is not valid on FILE TYPE MIXED."
 msgstr ""
 
-#: src/file-type.c:190
+#: src/file-type.c:189
 msgid "DUPLICATE=CASE is only valid on FILE TYPE NESTED."
 msgstr ""
 
-#: src/file-type.c:199
+#: src/file-type.c:198
 #, c-format
 msgid "WARN%s expected after DUPLICATE."
 msgstr ""
 
-#: src/file-type.c:200
+#: src/file-type.c:199
 msgid ", NOWARN, or CASE"
 msgstr ""
 
-#: src/file-type.c:201
+#: src/file-type.c:200
 msgid " or NOWARN"
 msgstr ""
 
-#: src/file-type.c:209
+#: src/file-type.c:208
 msgid "The MISSING subcommand is not valid on FILE TYPE MIXED."
 msgstr ""
 
-#: src/file-type.c:221
+#: src/file-type.c:220
 msgid "WARN or NOWARN after MISSING."
 msgstr ""
 
-#: src/file-type.c:229
+#: src/file-type.c:228
 msgid "ORDERED is only valid on FILE TYPE GROUPED."
 msgstr ""
 
-#: src/file-type.c:240
+#: src/file-type.c:239
 msgid "YES or NO expected after ORDERED."
 msgstr ""
 
-#: src/file-type.c:246 src/file-type.c:541 src/get.c:365
+#: src/file-type.c:245 src/file-type.c:539 src/get.c:362
 msgid "while expecting a valid subcommand"
 msgstr ""
 
-#: src/file-type.c:253
+#: src/file-type.c:252
 msgid "The required RECORD subcommand was not present."
 msgstr ""
 
-#: src/file-type.c:261
+#: src/file-type.c:260
 msgid "The required CASE subcommand was not present."
 msgstr ""
 
-#: src/file-type.c:267
+#: src/file-type.c:266
 msgid "CASE and RECORD must specify different variable names."
 msgstr ""
 
-#: src/file-type.c:322
+#: src/file-type.c:323
 msgid "Column value must be positive."
 msgstr ""
 
-#: src/file-type.c:338
+#: src/file-type.c:339
 msgid "Ending column precedes beginning column."
 msgstr ""
 
-#: src/file-type.c:358
+#: src/file-type.c:359
 msgid "Bad format specifier name."
 msgstr ""
 
-#: src/file-type.c:387 src/file-type.c:578
+#: src/file-type.c:388 src/file-type.c:576
 msgid ""
 "This command may only appear within a FILE TYPE/END FILE TYPE structure."
 msgstr ""
 
-#: src/file-type.c:410
+#: src/file-type.c:411
 msgid "OTHER may appear only on the last RECORD TYPE command."
 msgstr ""
 
-#: src/file-type.c:420
+#: src/file-type.c:421
 msgid "No input commands (DATA LIST, REPEATING DATA) for above RECORD TYPE."
 msgstr ""
 
-#: src/file-type.c:474
+#: src/file-type.c:472
 msgid ""
 "The CASE subcommand is not allowed on the RECORD TYPE command for FILE TYPE "
 "MIXED."
 msgstr ""
 
-#: src/file-type.c:484
+#: src/file-type.c:482
 msgid ""
 "No variable name may be specified for the CASE subcommand on RECORD TYPE."
 msgstr ""
 
-#: src/file-type.c:492
+#: src/file-type.c:490
 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:508
+#: src/file-type.c:506
 msgid "WARN or NOWARN expected on DUPLICATE subcommand."
 msgstr ""
 
-#: src/file-type.c:522
+#: src/file-type.c:520
 msgid "WARN or NOWARN expected on MISSING subcommand."
 msgstr ""
 
-#: src/file-type.c:535
+#: src/file-type.c:533
 msgid "YES or NO expected on SPREAD subcommand."
 msgstr ""
 
-#: src/file-type.c:593
+#: src/file-type.c:589
 msgid "No input commands (DATA LIST, REPEATING DATA) on above RECORD TYPE."
 msgstr ""
 
-#: src/file-type.c:600
+#: src/file-type.c:596
 msgid "No commands between FILE TYPE and END FILE TYPE."
 msgstr ""
 
-#: src/file-type.c:669
+#: src/file-type.c:665
 #, c-format
 msgid "Unknown record type \"%.*s\"."
 msgstr ""
 
-#: src/file-type.c:693
+#: src/file-type.c:689
 #, c-format
 msgid "Unknown record type %g."
 msgstr ""
 "FLIP ignores TEMPORARY.  Temporary transformations will be made permanent."
 msgstr ""
 
-#: src/flip.c:217
+#: src/flip.c:216
 #, c-format
 msgid "Could not create acceptable variant for variable %s."
 msgstr ""
 
-#: src/flip.c:233
+#: src/flip.c:232
 msgid "Cannot create more than 99999 variable names."
 msgstr ""
 
-#: src/flip.c:277
+#: src/flip.c:276
 msgid "Could not create temporary file for FLIP."
 msgstr ""
 
-#: src/flip.c:284 src/flip.c:347
+#: src/flip.c:283 src/flip.c:346
 #, c-format
 msgid "Error writing FLIP file: %s."
 msgstr ""
 
-#: src/flip.c:389
+#: src/flip.c:388
 #, c-format
 msgid "Error rewinding FLIP file: %s."
 msgstr ""
 
-#: src/flip.c:393
+#: src/flip.c:392
 msgid "Error creating FLIP source file."
 msgstr ""
 
-#: src/flip.c:402
+#: src/flip.c:401
 #, c-format
 msgid "Error reading FLIP file: %s."
 msgstr ""
 
-#: src/flip.c:414
+#: src/flip.c:413
 #, c-format
 msgid "Error seeking FLIP source file: %s."
 msgstr ""
 
-#: src/flip.c:419
+#: src/flip.c:418
 #, c-format
 msgid "Error writing FLIP source file: %s."
 msgstr ""
 
-#: src/flip.c:430
+#: src/flip.c:429
 #, c-format
 msgid "Error rewind FLIP source file: %s."
 msgstr ""
 
-#: src/flip.c:478
+#: src/flip.c:477
 #, c-format
 msgid "Error reading FLIP temporary file: %s."
 msgstr ""
 
-#: src/flip.c:481
+#: src/flip.c:480
 msgid "Unexpected end of file reading FLIP temporary file."
 msgstr ""
 
 msgid "Data format %s is not valid."
 msgstr ""
 
-#: src/formats.c:93
+#: src/formats.c:90
 msgid "`(' expected after variable list"
 msgstr ""
 
-#: src/formats.c:102
+#: src/formats.c:99
 #, c-format
 msgid "Format %s may not be assigned to a %s variable."
 msgstr ""
 
-#: src/formats.c:123 src/numeric.c:65 src/numeric.c:137
+#: src/formats.c:120 src/numeric.c:64 src/numeric.c:135
 msgid "`)' expected after output format."
 msgstr ""
 
-#: src/formats.c:153
+#: src/formats.c:150
 #, c-format
 msgid "Formats:\n"
 msgstr ""
 
-#: src/formats.c:154
+#: src/formats.c:151
 #, c-format
 msgid "  Name      Print         Write\n"
 msgstr ""
 
-#: src/get.c:112
+#: src/get.c:111
 #, c-format
 msgid "GET translation table from file to memory:\n"
 msgstr ""
 
-#: src/get.c:117 src/get.c:1429
+#: src/get.c:116 src/get.c:1424
 #, c-format
 msgid "  %8s from %3d,%3d to %3d,%3d\n"
 msgstr ""
 
-#: src/get.c:371
+#: src/get.c:368
 msgid "All variables deleted from system file dictionary."
 msgstr ""
 
-#: src/get.c:418
+#: src/get.c:415
 #, c-format
 msgid ""
 "Cannot rename %s as %s because there already exists a variable named %s.  To "
 "as \"/RENAME (A=B)(B=C)(C=A)\", or equivalently, \"/RENAME (A B C=B C A)\"."
 msgstr ""
 
-#: src/get.c:443
+#: src/get.c:440
 msgid "`=' expected after variable list."
 msgstr ""
 
-#: src/get.c:450
+#: src/get.c:447
 #, 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:463
+#: src/get.c:460
 #, c-format
 msgid "Requested renaming duplicates variable name %s."
 msgstr ""
 
-#: src/get.c:483
+#: src/get.c:480
 #, c-format
 msgid ""
 "\n"
 "Variables in dictionary:\n"
 msgstr ""
 
-#: src/get.c:610
+#: src/get.c:604
 msgid "The BY subcommand may be given once at most."
 msgstr ""
 
-#: src/get.c:677
+#: src/get.c:671
 msgid "The active file may not be specified more than once."
 msgstr ""
 
-#: src/get.c:686
+#: src/get.c:680
 msgid "Cannot specify the active file since no active file has been defined."
 msgstr ""
 
-#: src/get.c:694
+#: src/get.c:688
 msgid ""
 "MATCH FILES may not be used after TEMPORARY when the active file is an input "
 "source.  Temporary transformations will be made permanent."
 msgstr ""
 
-#: src/get.c:727
+#: src/get.c:721
 msgid ""
 "IN, FIRST, and LAST subcommands may not occur before the first FILE or TABLE."
 msgstr ""
 
-#: src/get.c:759
+#: src/get.c:756
 #, c-format
 msgid "Multiple %s subcommands for a single FILE or TABLE."
 msgstr ""
 
-#: src/get.c:769
+#: src/get.c:766
 #, c-format
 msgid "Duplicate variable name %s while creating %s variable."
 msgstr ""
 
-#: src/get.c:783
+#: src/get.c:780
 msgid ""
 "RENAME, KEEP, and DROP subcommands may not occur before the first FILE or "
 "TABLE."
 msgstr ""
 
-#: src/get.c:807
+#: src/get.c:804
 msgid "The BY subcommand is required when a TABLE subcommand is given."
 msgstr ""
 
-#: src/get.c:828
+#: src/get.c:825
 #, c-format
 msgid "File %s lacks BY variable %s."
 msgstr ""
 
-#: src/get.c:1341
+#: src/get.c:1338
 #, 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:1391
+#: src/get.c:1386
 msgid "expecting COMM or TAPE"
 msgstr ""
 
-#: src/get.c:1424
+#: src/get.c:1419
 #, c-format
 msgid "IMPORT translation table from file to memory:\n"
 msgstr ""
 msgid "Opening `%s': %s."
 msgstr ""
 
-#: src/getline.c:332 src/html.c:330 src/postscript.c:1461
+#: src/getline.c:332 src/html.c:331 src/postscript.c:1463
 #, c-format
 msgid "Reading `%s': %s."
 msgstr ""
 msgid "Unknown configuration parameter `%s' for HTML device driver."
 msgstr ""
 
-#: src/html.c:236
+#: src/html.c:237
 msgid ""
 "Cannot find HTML prologue.  The use of `-vv' on the command line is "
 "suggested as a debugging aid."
 msgstr ""
 
-#: src/html.c:241
+#: src/html.c:242
 #, c-format
 msgid "%s: %s: Opening HTML prologue..."
 msgstr ""
 
-#: src/html.c:268 src/html.c:279 src/postscript.c:1353 src/postscript.c:1364
+#: src/html.c:269 src/html.c:280 src/postscript.c:1355 src/postscript.c:1366
 msgid "nobody"
 msgstr ""
 
-#: src/html.c:275 src/html.c:280 src/postscript.c:1360 src/postscript.c:1365
+#: src/html.c:276 src/html.c:281 src/postscript.c:1362 src/postscript.c:1367
 msgid "nowhere"
 msgstr ""
 
-#: src/html.c:339
+#: src/html.c:340
 #, c-format
 msgid "%s: HTML prologue read successfully."
 msgstr ""
 
-#: src/html.c:343
+#: src/html.c:344
 #, c-format
 msgid "%s: Error reading HTML prologue."
 msgstr ""
 
-#: src/html.c:371
+#: src/html.c:372
 #, c-format
 msgid "HTML output driver: %s: %s"
 msgstr ""
 
-#: src/html.c:402 src/list.q:259
+#: src/html.c:403 src/list.q:258
 #, c-format
 msgid "Cannot open first page on HTML device %s."
 msgstr ""
 
-#: src/include.c:51
-msgid "Unrecognized filename format."
+#: src/include.c:40
+msgid "expecting filename"
 msgstr ""
 
-#: src/inpt-pgm.c:86
+#: src/inpt-pgm.c:80
 msgid "No matching INPUT PROGRAM command."
 msgstr ""
 
-#: src/inpt-pgm.c:91
+#: src/inpt-pgm.c:85
 msgid ""
 "No data-input or transformation commands specified between INPUT PROGRAM and "
 "END INPUT PROGRAM."
 msgstr ""
 
-#: src/inpt-pgm.c:295 src/inpt-pgm.c:438
+#: src/inpt-pgm.c:286 src/inpt-pgm.c:419
 msgid ""
 "This command may only be executed between INPUT PROGRAM and END INPUT "
 "PROGRAM."
 msgstr ""
 
-#: src/inpt-pgm.c:351
+#: src/inpt-pgm.c:341
 msgid "COLUMN subcommand multiply specified."
 msgstr ""
 
-#: src/inpt-pgm.c:365
-msgid "expecting file handle name"
-msgstr ""
-
-#: src/inpt-pgm.c:410
+#: src/inpt-pgm.c:394
 msgid ""
 "REREAD: Column numbers must be positive finite numbers.  Column set to 1."
 msgstr ""
 
-#: src/lexer.c:219
+#: src/lexer.c:244
 #, c-format
 msgid "%s does not form a valid number."
 msgstr ""
 
-#: src/lexer.c:337
+#: src/lexer.c:362
 #, c-format
 msgid "Bad character in input: `%c'."
 msgstr ""
 
-#: src/lexer.c:339
+#: src/lexer.c:364
 #, c-format
 msgid "Bad character in input: `\\%o'."
 msgstr ""
 
-#: src/lexer.c:360
+#: src/lexer.c:385
 msgid "Syntax error at end of file."
 msgstr ""
 
-#: src/lexer.c:370
+#: src/lexer.c:395
 #, c-format
 msgid "Syntax error %s at `%s'."
 msgstr ""
 
-#: src/lexer.c:373
+#: src/lexer.c:398
 #, c-format
 msgid "Syntax error at `%s'."
 msgstr ""
 
-#: src/lexer.c:493
+#: src/lexer.c:518
 #, c-format
 msgid "expecting `%s'"
 msgstr ""
 
-#: src/lexer.c:510
+#: src/lexer.c:535
 #, c-format
 msgid "expecting %s"
 msgstr ""
 
-#: src/lexer.c:524 src/val-labs.c:155
+#: src/lexer.c:549 src/val-labs.c:151
 msgid "expecting string"
 msgstr ""
 
-#: src/lexer.c:538 src/val-labs.c:164
+#: src/lexer.c:563 src/val-labs.c:160
 msgid "expecting integer"
 msgstr ""
 
-#: src/lexer.c:552
+#: src/lexer.c:577
 msgid "expecting number"
 msgstr ""
 
-#: src/lexer.c:566
+#: src/lexer.c:591
 msgid "expecting identifier"
 msgstr ""
 
-#: src/lexer.c:702
-msgid "The rest of this command has been discarded."
-msgstr ""
-
-#: src/lexer.c:842 src/print.c:1154
-#, c-format
+#: src/lexer.c:860
 msgid "<ERROR>"
 msgstr ""
 
-#: src/lexer.c:968 src/pfm-read.c:132 src/repeat.c:225
+#: src/lexer.c:987 src/pfm-read.c:135 src/repeat.c:222
 msgid "Unexpected end of file."
 msgstr ""
 
-#: src/lexer.c:994
+#: src/lexer.c:1013
 msgid "binary"
 msgstr ""
 
-#: src/lexer.c:994
+#: src/lexer.c:1013
 msgid "octal"
 msgstr ""
 
-#: src/lexer.c:994
+#: src/lexer.c:1013
 msgid "hex"
 msgstr ""
 
-#: src/lexer.c:1008
+#: src/lexer.c:1027
 #, c-format
 msgid "String of %s digits has %d characters, which is not a multiple of %d."
 msgstr ""
 
-#: src/lexer.c:1037
+#: src/lexer.c:1056
 #, c-format
 msgid "`%c' is not a valid %s digit."
 msgstr ""
 
-#: src/lexer.c:1068
+#: src/lexer.c:1087
 msgid "Unterminated string constant."
 msgstr ""
 
-#: src/lexer.c:1140
+#: src/lexer.c:1159
 #, c-format
 msgid "String exceeds 255 characters in length (%d characters)."
 msgstr ""
 
-#: src/lexer.c:1155
+#: src/lexer.c:1174
 msgid ""
 "Sorry, literal strings may not contain null characters.  Replacing with "
 "spaces."
 msgstr ""
 
-#: src/loop.c:194
+#: src/loop.c:192
 msgid "The index variable may not be a string variable."
 msgstr ""
 
-#: src/loop.c:309
+#: src/loop.c:307
 msgid "There is no LOOP command that corresponds to this END LOOP."
 msgstr ""
 
-#: src/loop.c:512
+#: src/loop.c:508
 msgid ""
 "This command may only appear enclosed in a LOOP/END LOOP control structure."
 msgstr ""
 
-#: src/loop.c:518
+#: src/loop.c:514
 msgid "BREAK not enclosed in DO IF structure."
 msgstr ""
 
-#: src/loop.c:596
+#: src/loop.c:592
 #, c-format
 msgid "%s without %s."
 msgstr ""
 
-#: src/main.c:71
+#: src/main.c:64
+#, c-format
+msgid "gsl error at %s:%d; reason: \"%s\""
+msgstr ""
+
+#: src/main.c:81
 msgid "Error initializing output drivers."
 msgstr ""
 
-#: src/main.c:132
+#: src/main.c:147
 msgid "This command not executed."
 msgstr ""
 
-#: src/main.c:136
+#: src/main.c:151
 msgid ""
 "Skipping the rest of this command.  Part of this command may have been "
 "executed."
 msgstr ""
 
-#: src/main.c:141
+#: src/main.c:156
 msgid ""
 "Skipping the rest of this command.  This command was fully executed up to "
 "this point."
 msgstr ""
 
-#: src/main.c:146
+#: src/main.c:161
 msgid ""
 "Trailing garbage was encountered following this command.  The command was "
 "fully executed to this point."
 msgstr ""
 
-#: src/matrix-data.c:191
+#: src/main.c:178
+msgid "The rest of this command has been discarded."
+msgstr ""
+
+#: src/matrix-data.c:188
 msgid "VARIABLES subcommand multiply specified."
 msgstr ""
 
-#: src/matrix-data.c:206
+#: src/matrix-data.c:203
 msgid "VARNAME_ cannot be explicitly specified on VARIABLES."
 msgstr ""
 
-#: src/matrix-data.c:271
+#: src/matrix-data.c:268
 msgid "in FORMAT subcommand"
 msgstr ""
 
-#: src/matrix-data.c:282
+#: src/matrix-data.c:279
 msgid "SPLIT subcommand multiply specified."
 msgstr ""
 
-#: src/matrix-data.c:289
+#: src/matrix-data.c:286
 msgid "in SPLIT subcommand"
 msgstr ""
 
-#: src/matrix-data.c:298
+#: src/matrix-data.c:295
 msgid "Split variable may not be named ROWTYPE_ or VARNAME_."
 msgstr ""
 
-#: src/matrix-data.c:331
+#: src/matrix-data.c:328
 #, c-format
 msgid "Split variable %s is already another type."
 msgstr ""
 
-#: src/matrix-data.c:346
+#: src/matrix-data.c:343
 msgid "FACTORS subcommand multiply specified."
 msgstr ""
 
-#: src/matrix-data.c:361
+#: src/matrix-data.c:358
 #, c-format
 msgid "Factor variable %s is already another type."
 msgstr ""
 
-#: src/matrix-data.c:376
+#: src/matrix-data.c:373
 msgid "CELLS subcommand multiply specified."
 msgstr ""
 
-#: src/matrix-data.c:382 src/matrix-data.c:401
+#: src/matrix-data.c:379 src/matrix-data.c:398
 msgid "expecting positive integer"
 msgstr ""
 
-#: src/matrix-data.c:395
+#: src/matrix-data.c:392
 msgid "N subcommand multiply specified."
 msgstr ""
 
-#: src/matrix-data.c:416
+#: src/matrix-data.c:413
 msgid "CONTENTS subcommand multiply specified."
 msgstr ""
 
-#: src/matrix-data.c:436
+#: src/matrix-data.c:433
 msgid "Nested parentheses not allowed."
 msgstr ""
 
-#: src/matrix-data.c:446
+#: src/matrix-data.c:443
 msgid "Mismatched right parenthesis (`(')."
 msgstr ""
 
-#: src/matrix-data.c:451
+#: src/matrix-data.c:448
 msgid "Empty parentheses not allowed."
 msgstr ""
 
-#: src/matrix-data.c:464 src/matrix-data.c:472
+#: src/matrix-data.c:461 src/matrix-data.c:469
 msgid "in CONTENTS subcommand"
 msgstr ""
 
-#: src/matrix-data.c:479
+#: src/matrix-data.c:476
 #, c-format
 msgid "Content multiply specified for %s."
 msgstr ""
 
-#: src/matrix-data.c:496
+#: src/matrix-data.c:493
 msgid "Missing right parenthesis."
 msgstr ""
 
-#: src/matrix-data.c:516
+#: src/matrix-data.c:513
 msgid "Missing VARIABLES subcommand."
 msgstr ""
 
-#: src/matrix-data.c:522
+#: src/matrix-data.c:519
 msgid ""
 "CONTENTS subcommand not specified: assuming file contains only CORR matrix."
 msgstr ""
 
-#: src/matrix-data.c:532
+#: src/matrix-data.c:529
 msgid ""
 "Missing CELLS subcommand.  CELLS is required when ROWTYPE_ is not given in "
 "the data and factors are present."
 msgstr ""
 
-#: src/matrix-data.c:540
+#: src/matrix-data.c:537
 msgid "Split file values must be present in the data when ROWTYPE_ is present."
 msgstr ""
 
-#: src/matrix-data.c:595
+#: src/matrix-data.c:592
 msgid "No continuous variables specified."
 msgstr ""
 
 msgid "End of line expected %s while reading %s."
 msgstr ""
 
-#: src/matrix-data.c:1174
+#: src/matrix-data.c:1176
 #, c-format
 msgid "expecting value for %s %s"
 msgstr ""
 
-#: src/matrix-data.c:1336
+#: src/matrix-data.c:1338
 #, c-format
 msgid "Syntax error expecting SPLIT FILE value %s."
 msgstr ""
 
-#: src/matrix-data.c:1345
+#: src/matrix-data.c:1347
 #, c-format
 msgid "Expecting value %g for %s."
 msgstr ""
 
-#: src/matrix-data.c:1386 src/matrix-data.c:1854
+#: src/matrix-data.c:1388 src/matrix-data.c:1856
 #, c-format
 msgid "Syntax error expecting factor value %s."
 msgstr ""
 
-#: src/matrix-data.c:1395
+#: src/matrix-data.c:1397
 #, c-format
 msgid "Syntax error expecting value %g for %s %s."
 msgstr ""
 
-#: src/matrix-data.c:1631
+#: src/matrix-data.c:1633
 #, c-format
 msgid "Syntax error %s expecting SPLIT FILE value."
 msgstr ""
 
-#: src/matrix-data.c:1761
+#: src/matrix-data.c:1763
 #, 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:1796
+#: src/matrix-data.c:1798
 #, c-format
 msgid "Multiply specified ROWTYPE_ %s."
 msgstr ""
 
-#: src/matrix-data.c:1801
+#: src/matrix-data.c:1803
 #, c-format
 msgid "Syntax error %s expecting ROWTYPE_ string."
 msgstr ""
 
-#: src/matrix-data.c:1821
+#: src/matrix-data.c:1823
 #, c-format
 msgid "Syntax error %s."
 msgstr ""
 
-#: src/matrix-data.c:1971
+#: src/matrix-data.c:1973
 #, c-format
 msgid "Duplicate specification for %s."
 msgstr ""
 
-#: src/matrix-data.c:1983
+#: src/matrix-data.c:1985
 #, c-format
 msgid "Too many rows of matrix data for %s."
 msgstr ""
 
-#: src/matrix-data.c:2029
+#: src/matrix-data.c:2033
 #, c-format
 msgid "Syntax error expecting value for %s %s."
 msgstr ""
 
-#: src/mis-val.c:77
+#: src/mis-val.c:75
 msgid "`)' expected after value specification."
 msgstr ""
 
-#: src/mis-val.c:111
+#: src/mis-val.c:109
 #, c-format
 msgid "`(' expected after variable name%s."
 msgstr ""
 
-#: src/mis-val.c:123
+#: src/mis-val.c:121
 msgid "Long string value specified."
 msgstr ""
 
-#: src/mis-val.c:128
+#: src/mis-val.c:126
 msgid "Short strings must be of equal width."
 msgstr ""
 
-#: src/mis-val.c:185
+#: src/mis-val.c:183
 #, c-format
 msgid "Range %g THRU %g is not valid because %g is greater than %g."
 msgstr ""
 
-#: src/mis-val.c:216
+#: src/mis-val.c:214
 msgid "Number or range expected."
 msgstr ""
 
-#: src/mis-val.c:249
+#: src/mis-val.c:247
 msgid "At most one range can exist in the missing values for any one variable."
 msgstr ""
 
-#: src/mis-val.c:255
+#: src/mis-val.c:253
 msgid "At most one individual value can be missing along with one range."
 msgstr ""
 
-#: src/mis-val.c:317
+#: src/mis-val.c:315
 msgid "String is not of proper length."
 msgstr ""
 
-#: src/mis-val.c:326 src/repeat.c:476
+#: src/mis-val.c:324 src/repeat.c:473
 msgid "String expected."
 msgstr ""
 
-#: src/mis-val.c:366
+#: src/mis-val.c:364
 msgid "Missing value:"
 msgstr ""
 
-#: src/mis-val.c:371
+#: src/mis-val.c:369
 msgid "(long string variable)"
 msgstr ""
 
-#: src/mis-val.c:376
+#: src/mis-val.c:374
 #, c-format
 msgid "(no missing values)\n"
 msgstr ""
 
-#: src/mis-val.c:399
+#: src/mis-val.c:397
 #, c-format
 msgid "(!!!INTERNAL ERROR--%d!!!)\n"
 msgstr ""
 "be made permanent."
 msgstr ""
 
-#: src/modify-vars.c:115
+#: src/modify-vars.c:112
 msgid "REORDER subcommand may be given at most once."
 msgstr ""
 
-#: src/modify-vars.c:138
+#: src/modify-vars.c:135
 msgid "Cannot specify ALL after specifying a set of variables."
 msgstr ""
 
-#: src/modify-vars.c:148
+#: src/modify-vars.c:145
 msgid "`(' expected on REORDER subcommand."
 msgstr ""
 
-#: src/modify-vars.c:160
+#: src/modify-vars.c:157
 msgid "`)' expected following variable names on REORDER subcommand."
 msgstr ""
 
-#: src/modify-vars.c:178
+#: src/modify-vars.c:175
 msgid "RENAME subcommand may be given at most once."
 msgstr ""
 
-#: src/modify-vars.c:191
+#: src/modify-vars.c:188
 msgid "`(' expected on RENAME subcommand."
 msgstr ""
 
-#: src/modify-vars.c:199
+#: src/modify-vars.c:196
 msgid ""
 "`=' expected between lists of new and old variable names on RENAME "
 "subcommand."
 msgstr ""
 
-#: src/modify-vars.c:207 src/rename-vars.c:77
+#: src/modify-vars.c:204 src/rename-vars.c:74
 #, c-format
 msgid ""
 "Differing number of variables in old name list (%d) and in new name list (%"
 "d)."
 msgstr ""
 
-#: src/modify-vars.c:218
+#: src/modify-vars.c:215
 msgid "`)' expected after variable lists on RENAME subcommand."
 msgstr ""
 
-#: src/modify-vars.c:232
+#: src/modify-vars.c:229
 msgid ""
 "KEEP subcommand may be given at most once.  It may notbe given in "
 "conjunction with the DROP subcommand."
 msgstr ""
 
-#: src/modify-vars.c:274
+#: src/modify-vars.c:271
 msgid ""
 "DROP subcommand may be given at most once.  It may not be given in "
 "conjunction with the KEEP subcommand."
 msgstr ""
 
-#: src/modify-vars.c:300
+#: src/modify-vars.c:297
 #, c-format
 msgid "Unrecognized subcommand name `%s'."
 msgstr ""
 
-#: src/modify-vars.c:302
+#: src/modify-vars.c:299
 msgid "Subcommand name expected."
 msgstr ""
 
-#: src/modify-vars.c:310
+#: src/modify-vars.c:307
 msgid "`/' or `.' expected."
 msgstr ""
 
-#: src/numeric.c:58
+#: src/moments.c:350
+msgid "expecting weight value"
+msgstr ""
+
+#: src/numeric.c:57
 #, c-format
 msgid "Format type %s may not be used with a numeric variable."
 msgstr ""
 
-#: src/numeric.c:77 src/numeric.c:159 src/vector.c:157
+#: src/numeric.c:76 src/numeric.c:158 src/vector.c:155
 #, c-format
 msgid "There is already a variable named %s."
 msgstr ""
 
-#: src/numeric.c:130
+#: src/numeric.c:128
 #, c-format
 msgid "Format type %s may not be used with a string variable."
 msgstr ""
 msgid "%s: Opening device description file..."
 msgstr ""
 
-#: src/output.c:304 src/output.c:1165 src/postscript.c:1097
+#: src/output.c:304 src/output.c:1165 src/postscript.c:1099
 #, c-format
 msgid "Opening %s: %s."
 msgstr ""
 
-#: src/output.c:315 src/output.c:1176 src/postscript.c:1112
+#: src/output.c:315 src/output.c:1176 src/postscript.c:1114
 #, c-format
 msgid "Reading %s: %s."
 msgstr ""
 msgid "Syntax error."
 msgstr ""
 
-#: src/output.c:347 src/postscript.c:1123
+#: src/output.c:347 src/postscript.c:1125
 #, c-format
 msgid "Closing %s: %s."
 msgstr ""
 msgid "Error opening page on %s device of %s class."
 msgstr ""
 
-#: src/pfm-read.c:89
+#: src/pfm-read.c:91
 #, c-format
 msgid "portable file %s corrupt at offset %ld: "
 msgstr ""
 
-#: src/pfm-read.c:108 src/pfm-write.c:502
+#: src/pfm-read.c:110 src/pfm-write.c:504
 #, c-format
 msgid "%s: Closing portable file: %s."
 msgstr ""
 
-#: src/pfm-read.c:140
+#: src/pfm-read.c:143
 msgid "Bad line end."
 msgstr ""
 
-#: src/pfm-read.c:221
+#: src/pfm-read.c:224
 #, c-format
 msgid "Cannot read file %s as portable file: already opened for %s."
 msgstr ""
 
-#: src/pfm-read.c:227
+#: src/pfm-read.c:230
 #, c-format
 msgid "%s: Opening portable-file handle %s for reading."
 msgstr ""
 
-#: src/pfm-read.c:235
+#: src/pfm-read.c:238
 #, c-format
 msgid ""
 "An error occurred while opening \"%s\" for reading as a portable file: %s."
 msgstr ""
 
-#: src/pfm-read.c:269
+#: src/pfm-read.c:273
 msgid "Data record expected."
 msgstr ""
 
-#: src/pfm-read.c:271
+#: src/pfm-read.c:275
 msgid "Read portable-file dictionary successfully."
 msgstr ""
 
-#: src/pfm-read.c:280
+#: src/pfm-read.c:284
 msgid "Error reading portable-file dictionary."
 msgstr ""
 
-#: src/pfm-read.c:378
+#: src/pfm-read.c:382
 msgid "Missing numeric terminator."
 msgstr ""
 
-#: src/pfm-read.c:415
+#: src/pfm-read.c:419
 msgid "Bad integer format."
 msgstr ""
 
-#: src/pfm-read.c:445
+#: src/pfm-read.c:449
 #, c-format
 msgid "Bad string length %d."
 msgstr ""
 
-#: src/pfm-read.c:544
+#: src/pfm-read.c:548
 #, c-format
 msgid "Bad date string length %d."
 msgstr ""
 
-#: src/pfm-read.c:548
+#: src/pfm-read.c:552
 msgid "Bad character in date."
 msgstr ""
 
-#: src/pfm-read.c:568
+#: src/pfm-read.c:572
 #, c-format
 msgid "Bad time string length %d."
 msgstr ""
 
-#: src/pfm-read.c:572
+#: src/pfm-read.c:576
 msgid "Bad character in time."
 msgstr ""
 
-#: src/pfm-read.c:622 src/pfm-read.c:629 src/sfm-read.c:900 src/sfm-read.c:908
+#: src/pfm-read.c:626 src/pfm-read.c:633 src/sfm-read.c:918 src/sfm-read.c:926
 #, c-format
 msgid "%s: Bad format specifier byte (%d)."
 msgstr ""
 
-#: src/pfm-read.c:631
+#: src/pfm-read.c:635
 #, c-format
 msgid "%s variable %s has %s format specifier %s."
 msgstr ""
 
-#: src/pfm-read.c:632 src/print.c:610 src/sfm-read.c:912
+#: src/pfm-read.c:636 src/print.c:600 src/sfm-read.c:931
 msgid "String"
 msgstr ""
 
-#: src/pfm-read.c:632 src/print.c:610 src/sfm-read.c:912
+#: src/pfm-read.c:636 src/print.c:600 src/sfm-read.c:931
 msgid "Numeric"
 msgstr ""
 
-#: src/pfm-read.c:671
+#: src/pfm-read.c:675
 msgid "Expected variable count record."
 msgstr ""
 
-#: src/pfm-read.c:675
+#: src/pfm-read.c:679
 #, c-format
 msgid "Invalid number of variables %d."
 msgstr ""
 
-#: src/pfm-read.c:685
+#: src/pfm-read.c:689
 #, c-format
 msgid "Unexpected flag value %d."
 msgstr ""
 
-#: src/pfm-read.c:699
+#: src/pfm-read.c:703
 #, c-format
 msgid "Weight variable name (%s) truncated."
 msgstr ""
 
-#: src/pfm-read.c:714
+#: src/pfm-read.c:718
 msgid "Expected variable record."
 msgstr ""
 
-#: src/pfm-read.c:720
+#: src/pfm-read.c:724
 #, c-format
 msgid "Invalid variable width %d."
 msgstr ""
 
-#: src/pfm-read.c:738
+#: src/pfm-read.c:742
 #, c-format
 msgid "position %d: Variable name has %u characters."
 msgstr ""
 
-#: src/pfm-read.c:742
+#: src/pfm-read.c:746
 #, c-format
 msgid "position %d: Variable name begins with invalid character."
 msgstr ""
 
-#: src/pfm-read.c:746
+#: src/pfm-read.c:750
 #, c-format
 msgid "position %d: Variable name begins with lowercase letter %c."
 msgstr ""
 
-#: src/pfm-read.c:759
+#: src/pfm-read.c:763
 #, c-format
 msgid "position %d: Variable name character %d is lowercase letter %c."
 msgstr ""
 
-#: src/pfm-read.c:769
+#: src/pfm-read.c:773
 #, c-format
 msgid "position %d: character `\\%03o' is not valid in a variable name."
 msgstr ""
 
-#: src/pfm-read.c:780
+#: src/pfm-read.c:784
 #, c-format
 msgid "Duplicate variable name %s."
 msgstr ""
 
-#: src/pfm-read.c:824
+#: src/pfm-read.c:828
 #, c-format
 msgid "Bad missing values for %s."
 msgstr ""
 
-#: src/pfm-read.c:847
+#: src/pfm-read.c:851
 #, c-format
 msgid "Weighting variable %s not present in dictionary."
 msgstr ""
 
-#: src/pfm-read.c:920
+#: src/pfm-read.c:924
 #, c-format
 msgid "Unknown variable %s while parsing value labels."
 msgstr ""
 
-#: src/pfm-read.c:923
+#: src/pfm-read.c:927
 #, c-format
 msgid ""
 "Cannot assign value labels to %s and %s, which have different variable types "
 "or widths."
 msgstr ""
 
-#: src/pfm-read.c:956
+#: src/pfm-read.c:960
 #, c-format
 msgid "Duplicate label for value %g for variable %s."
 msgstr ""
 
-#: src/pfm-read.c:959
+#: src/pfm-read.c:963
 #, c-format
 msgid "Duplicate label for value `%.*s' for variable %s."
 msgstr ""
 
-#: src/pfm-read.c:1029
+#: src/pfm-read.c:1033
 msgid "End of file midway through case."
 msgstr ""
 
-#: src/pfm-read.c:1039
+#: src/pfm-read.c:1043
 msgid "reading as a portable file"
 msgstr ""
 
 "An error occurred while opening \"%s\" for writing as a portable file: %s."
 msgstr ""
 
-#: src/pfm-write.c:123
+#: src/pfm-write.c:124
 msgid "Wrote portable-file header successfully."
 msgstr ""
 
-#: src/pfm-write.c:128
+#: src/pfm-write.c:129
 msgid "Error writing portable-file header."
 msgstr ""
 
-#: src/pfm-write.c:169
+#: src/pfm-write.c:170
 #, c-format
 msgid "%s: Writing portable file: %s."
 msgstr ""
 
-#: src/pfm-write.c:511
+#: src/pfm-write.c:514
 msgid "writing as a portable file"
 msgstr ""
 
 msgid "Unknown value for `line-style'.  Valid values are `thick' and `double'."
 msgstr ""
 
-#: src/postscript.c:685
+#: src/postscript.c:686
 #, c-format
 msgid ""
 "Default font size must be at least 1 point (value of 1000 for key `%s')."
 msgstr ""
 
-#: src/postscript.c:717
+#: src/postscript.c:718
 #, c-format
 msgid "Value for `%s' must be a dimension of positive length (i.e., `1in')."
 msgstr ""
 
-#: src/postscript.c:780
+#: src/postscript.c:782
 #, c-format
 msgid "Nonnegative integer required as value for `%s'."
 msgstr ""
 
-#: src/postscript.c:906
+#: src/postscript.c:908
 #, c-format
 msgid "%s: %s: Opening PostScript font encoding..."
 msgstr ""
 
-#: src/postscript.c:912
+#: src/postscript.c:914
 #, c-format
 msgid ""
 "PostScript driver: Cannot open encoding file `%s': %s.  Substituting "
 "ISOLatin1Encoding for missing encoding."
 msgstr ""
 
-#: src/postscript.c:954
+#: src/postscript.c:956
 msgid "PostScript driver: Invalid numeric format."
 msgstr ""
 
-#: src/postscript.c:959
+#: src/postscript.c:961
 #, c-format
 msgid ""
 "PostScript driver: Codes must be between 0 and 255.  (%d is not allowed.)"
 msgstr ""
 
-#: src/postscript.c:995
+#: src/postscript.c:997
 #, c-format
 msgid "PostScript driver: Error closing encoding file `%s'."
 msgstr ""
 
-#: src/postscript.c:998
+#: src/postscript.c:1000
 #, c-format
 msgid "%s: PostScript font encoding read successfully."
 msgstr ""
 
-#: src/postscript.c:1092
+#: src/postscript.c:1094
 #, c-format
 msgid "%s: %s: Opening PostScript encoding list file."
 msgstr ""
 
-#: src/postscript.c:1125
+#: src/postscript.c:1127
 #, c-format
 msgid "%s: PostScript encoding list file read successfully."
 msgstr ""
 
-#: src/postscript.c:1139
+#: src/postscript.c:1141
 msgid "<<default encoding>>"
 msgstr ""
 
-#: src/postscript.c:1297
+#: src/postscript.c:1299
 msgid ""
 "Cannot find PostScript prologue.  The use of `-vv' on the command line is "
 "suggested as a debugging aid."
 msgstr ""
 
-#: src/postscript.c:1302
+#: src/postscript.c:1304
 #, c-format
 msgid "%s: %s: Opening PostScript prologue..."
 msgstr ""
 
-#: src/postscript.c:1474
+#: src/postscript.c:1476
 #, c-format
 msgid "%s: PostScript prologue read successfully."
 msgstr ""
 
-#: src/postscript.c:1478
+#: src/postscript.c:1480
 #, c-format
 msgid "%s: Error reading PostScript prologue."
 msgstr ""
 
-#: src/postscript.c:1648
+#: src/postscript.c:1650
 #, c-format
 msgid "PostScript output driver: %s: %s"
 msgstr ""
 
-#: src/postscript.c:2332
+#: src/postscript.c:2334
 #, c-format
 msgid "PostScript driver: Cannot find encoding `%s' for PostScript font `%s'."
 msgstr ""
 
-#: src/print.c:188
+#: src/print.c:179
 msgid "expecting a valid subcommand"
 msgstr ""
 
-#: src/print.c:368 src/print.c:385
+#: src/print.c:358 src/print.c:375
 #, c-format
 msgid "%g is not a valid column location."
 msgstr ""
 
-#: src/print.c:379
+#: src/print.c:369
 #, c-format
 msgid "Column location expected following `%d-'."
 msgstr ""
 
-#: src/print.c:390
+#: src/print.c:380
 #, 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:496
+#: src/print.c:486
 #, 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:526
+#: src/print.c:516
 msgid ""
 "The ending column for a field must not be less than the starting column."
 msgstr ""
 
-#: src/print.c:609
+#: src/print.c:599
 #, c-format
 msgid "%s variables cannot be displayed with format %s."
 msgstr ""
 
-#: src/print.c:687
+#: src/print.c:677
 msgid ""
 "The number of format specifications exceeds the number of variable names "
 "given."
 msgstr ""
 
-#: src/print.c:696
+#: src/print.c:686
 #, c-format
 msgid "Display format %s may not be used with a %s variable."
 msgstr ""
 
-#: src/print.c:846
+#: src/print.c:834
 #, c-format
-msgid "Writing %3d records to file %s."
+msgid "Writing %d record(s) to file %s."
 msgstr ""
 
-#: src/print.c:847
+#: src/print.c:837
 #, c-format
-msgid "Writing %3d records to the listing file."
-msgstr ""
-
-#: src/print.c:1042
-msgid "A file name or handle was expected in the OUTFILE subcommand."
+msgid "Writing %d record(s) to the listing file."
 msgstr ""
 
-#: src/print.c:1095
+#: src/print.c:1079
 #, 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:283
+#: src/recode.c:281
 #, 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:297
+#: src/recode.c:295
 #, c-format
 msgid ""
 "There is no string variable named %s.  (All string variables specified on "
 "variable.)"
 msgstr ""
 
-#: src/recode.c:306
+#: src/recode.c:304
 #, 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:325
+#: src/recode.c:323
 #, c-format
 msgid "Type mismatch after INTO: %s is not a numeric variable."
 msgstr ""
 
-#: src/recode.c:355
+#: src/recode.c:353
 msgid ""
 "INTO must be used when the input values are numeric and output values are "
 "string."
 msgstr ""
 
-#: src/recode.c:363
+#: src/recode.c:361
 msgid ""
 "INTO must be used when the input values are string and output values are "
 "numeric."
 msgstr ""
 
-#: src/recode.c:486
+#: src/recode.c:484
 msgid "expecting output value"
 msgstr ""
 
-#: src/recode.c:500
+#: src/recode.c:498
 msgid ""
 "Inconsistent output types.  The output values must be all numeric or all "
 "string."
 msgstr ""
 
-#: src/recode.c:551
+#: src/recode.c:549
 msgid "following LO THRU"
 msgstr ""
 
-#: src/recode.c:567 src/recode.c:596
+#: src/recode.c:565 src/recode.c:594
 msgid "in source value"
 msgstr ""
 
-#: src/recode.c:609
+#: src/recode.c:607
 msgid ""
 "Keyword CONVERT may only be used with string input values and numeric output "
 "values."
 "be made permanent."
 msgstr ""
 
-#: src/rename-vars.c:62
+#: src/rename-vars.c:59
 msgid "`(' expected."
 msgstr ""
 
-#: src/rename-vars.c:70
+#: src/rename-vars.c:67
 msgid "`=' expected between lists of new and old variable names."
 msgstr ""
 
-#: src/rename-vars.c:88
+#: src/rename-vars.c:85
 msgid "`)' expected after variable names."
 msgstr ""
 
-#: src/rename-vars.c:98
+#: src/rename-vars.c:95
 #, c-format
 msgid "Renaming would duplicate variable name %s."
 msgstr ""
 
-#: src/repeat.c:158
+#: src/repeat.c:155
 #, c-format
 msgid "Identifier %s is given twice."
 msgstr ""
 
-#: src/repeat.c:201
+#: src/repeat.c:198
 #, c-format
 msgid ""
 "There must be the same number of substitutions for each dummy variable "
 "s as well, but %d were specified."
 msgstr ""
 
-#: src/repeat.c:310
+#: src/repeat.c:307
 msgid "No commands in scope."
 msgstr ""
 
-#: src/repeat.c:503
+#: src/repeat.c:500
 msgid "No matching DO REPEAT."
 msgstr ""
 
-#: src/sample.c:71
+#: src/sample.c:69
 msgid "The sampling factor must be between 0 and 1 exclusive."
 msgstr ""
 
-#: src/sample.c:91
+#: src/sample.c:89
 #, c-format
 msgid "Cannot sample %d observations from a population of %d."
 msgstr ""
 
-#: src/sel-if.c:104
+#: src/sel-if.c:99
 msgid "The filter variable must be numeric."
 msgstr ""
 
-#: src/sel-if.c:110
+#: src/sel-if.c:105
 msgid "The filter variable may not be scratch."
 msgstr ""
 
-#: src/sel-if.c:144
+#: src/sel-if.c:136
 msgid "Only last instance of this command is in effect."
 msgstr ""
 
 msgid "corrupt system file: "
 msgstr ""
 
-#: src/sfm-read.c:166 src/sfm-write.c:739
+#: src/sfm-read.c:166 src/sfm-write.c:743
 #, c-format
 msgid "%s: Closing system file: %s."
 msgstr ""
 
-#: src/sfm-read.c:239
+#: src/sfm-read.c:240
 #, c-format
 msgid "Cannot read file %s as system file: already opened for %s."
 msgstr ""
 
-#: src/sfm-read.c:244
+#: src/sfm-read.c:245
 #, c-format
 msgid "%s: Opening system-file handle %s for reading."
 msgstr ""
 
-#: src/sfm-read.c:252
+#: src/sfm-read.c:253
 #, c-format
 msgid ""
 "An error occurred while opening \"%s\" for reading as a system file: %s."
 msgstr ""
 
-#: src/sfm-read.c:286
+#: src/sfm-read.c:288
 #, c-format
 msgid ""
 "%s: Weighting variable may not be a continuation of a long string variable."
 msgstr ""
 
-#: src/sfm-read.c:289
+#: src/sfm-read.c:291
 #, c-format
 msgid "%s: Weighting variable may not be a string variable."
 msgstr ""
 
-#: src/sfm-read.c:314
+#: src/sfm-read.c:316
 #, c-format
 msgid ""
 "%s: Orphaned variable index record (type 4).  Type 4 records must always "
 "immediately follow type 3 records."
 msgstr ""
 
-#: src/sfm-read.c:369
+#: src/sfm-read.c:365
 #, c-format
 msgid "%s: Unrecognized record type 7, subtype %d encountered in system file."
 msgstr ""
 
-#: src/sfm-read.c:393
+#: src/sfm-read.c:390
 #, c-format
 msgid "%s: Unrecognized record type %d."
 msgstr ""
 
-#: src/sfm-read.c:399
+#: src/sfm-read.c:397
 msgid "Read system-file dictionary successfully."
 msgstr ""
 
-#: src/sfm-read.c:409
+#: src/sfm-read.c:407
 msgid "Error reading system-file header."
 msgstr ""
 
-#: src/sfm-read.c:433
+#: src/sfm-read.c:431
 #, c-format
 msgid ""
 "%s: Bad size (%d) or count (%d) field on record type 7, subtype 3.\tExpected "
 "size %d, count 8."
 msgstr ""
 
-#: src/sfm-read.c:445
+#: src/sfm-read.c:443
 #, c-format
 msgid ""
 "%s: Floating-point representation in system file is not IEEE-754.  PSPP "
 "cannot convert between floating-point formats."
 msgstr ""
 
-#: src/sfm-read.c:460
+#: src/sfm-read.c:459
 #, c-format
 msgid ""
 "%s: File-indicated endianness (%s) does not match endianness intuited from "
 msgid "%s: File-indicated character representation code (%s) is not ASCII."
 msgstr ""
 
-#: src/sfm-read.c:470
+#: src/sfm-read.c:472
 msgid "DEC Kanji"
 msgstr ""
 
-#: src/sfm-read.c:489
+#: src/sfm-read.c:491
 #, c-format
 msgid ""
 "%s: Bad size (%d) or count (%d) field on record type 7, subtype 4.\tExpected "
 "size %d, count 8."
 msgstr ""
 
-#: src/sfm-read.c:504
+#: src/sfm-read.c:506
 #, c-format
 msgid ""
 "%s: File-indicated value is different from internal value for at least one "
 "%g; LOWEST: %g, %g."
 msgstr ""
 
-#: src/sfm-read.c:535
+#: src/sfm-read.c:537
 #, c-format
 msgid ""
 "%s: Bad magic.  Proper system files begin with the four characters `$FL2'. "
 "This file will not be read."
 msgstr ""
 
-#: src/sfm-read.c:578
+#: src/sfm-read.c:580
 #, c-format
 msgid ""
 "%s: File layout code has unexpected value %d.  Value should be 2, in big-"
 "endian or little-endian format."
 msgstr ""
 
-#: src/sfm-read.c:594
+#: src/sfm-read.c:596
 #, c-format
 msgid "%s: Number of elements per case (%d) is not between 1 and %d."
 msgstr ""
 
-#: src/sfm-read.c:601
+#: src/sfm-read.c:605
 #, c-format
 msgid ""
 "%s: Index of weighting variable (%d) is not between 0 and number of elements "
 "per case (%d)."
 msgstr ""
 
-#: src/sfm-read.c:607
+#: src/sfm-read.c:611
 #, c-format
 msgid "%s: Number of cases in file (%ld) is not between -1 and %d."
 msgstr ""
 
-#: src/sfm-read.c:612
+#: src/sfm-read.c:616
 #, c-format
 msgid "%s: Compression bias (%g) is not the usual value of 100."
 msgstr ""
 
-#: src/sfm-read.c:705
+#: src/sfm-read.c:710
 #, c-format
 msgid "%s: position %d: Bad record type (%d); the expected value was 2."
 msgstr ""
 
-#: src/sfm-read.c:714
+#: src/sfm-read.c:720
 #, c-format
 msgid ""
 "%s: position %d: String variable does not have proper number of continuation "
 "records."
 msgstr ""
 
-#: src/sfm-read.c:722
+#: src/sfm-read.c:729
 #, c-format
 msgid "%s: position %d: Superfluous long string continuation record."
 msgstr ""
 
-#: src/sfm-read.c:727
+#: src/sfm-read.c:735
 #, c-format
 msgid "%s: position %d: Bad variable type code %d."
 msgstr ""
 
-#: src/sfm-read.c:730
+#: src/sfm-read.c:738
 #, c-format
 msgid "%s: position %d: Variable label indicator field is not 0 or 1."
 msgstr ""
 
-#: src/sfm-read.c:734
+#: src/sfm-read.c:742
 #, c-format
 msgid ""
 "%s: position %d: Missing value indicator field is not -3, -2, 0, 1, 2, or 3."
 msgstr ""
 
-#: src/sfm-read.c:740
+#: src/sfm-read.c:748
 #, c-format
 msgid "%s: position %d: Variable name begins with invalid character."
 msgstr ""
 
-#: src/sfm-read.c:743
+#: src/sfm-read.c:752
 #, c-format
 msgid "%s: position %d: Variable name begins with lowercase letter %c."
 msgstr ""
 
-#: src/sfm-read.c:746
+#: src/sfm-read.c:756
 #, c-format
 msgid ""
 "%s: position %d: Variable name begins with octothorpe (`#').  Scratch "
 "variables should not appear in system files."
 msgstr ""
 
-#: src/sfm-read.c:760
+#: src/sfm-read.c:771
 #, c-format
 msgid "%s: position %d: Variable name character %d is lowercase letter %c."
 msgstr ""
 
-#: src/sfm-read.c:768
+#: src/sfm-read.c:780
 #, c-format
 msgid ""
 "%s: position %d: character `\\%03o' (%c) is not valid in a variable name."
 msgstr ""
 
-#: src/sfm-read.c:776
+#: src/sfm-read.c:789
 #, c-format
 msgid "%s: Duplicate variable name `%s' within system file."
 msgstr ""
 
-#: src/sfm-read.c:801
+#: src/sfm-read.c:814
 #, c-format
 msgid "%s: Variable %s indicates variable label of invalid length %d."
 msgstr ""
 
-#: src/sfm-read.c:817
+#: src/sfm-read.c:831
 #, c-format
 msgid "%s: Long string variable %s may not have missing values."
 msgstr ""
 
-#: src/sfm-read.c:841
+#: src/sfm-read.c:856
 #, c-format
 msgid ""
 "%s: String variable %s may not have missing values specified as a range."
 msgstr ""
 
-#: src/sfm-read.c:878
+#: src/sfm-read.c:894
 #, c-format
 msgid "%s: Long string continuation records omitted at end of dictionary."
 msgstr ""
 
-#: src/sfm-read.c:881
+#: src/sfm-read.c:898
 #, c-format
 msgid ""
 "%s: System file header indicates %d variable positions but %d were read from "
 "file."
 msgstr ""
 
-#: src/sfm-read.c:911
+#: src/sfm-read.c:929
 #, c-format
 msgid "%s: %s variable %s has %s format specifier %s."
 msgstr ""
 
-#: src/sfm-read.c:990
+#: src/sfm-read.c:1009
 #, 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:1000
+#: src/sfm-read.c:1020
 #, 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:1016
+#: src/sfm-read.c:1036
 #, 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:1023
+#: src/sfm-read.c:1043
 #, 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:1027
+#: src/sfm-read.c:1048
 #, c-format
 msgid "%s: Value labels are not allowed on long string variables (%s)."
 msgstr ""
 
-#: src/sfm-read.c:1037
+#: src/sfm-read.c:1059
 #, 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:1077
+#: src/sfm-read.c:1100
 #, c-format
 msgid "%s: File contains duplicate label for value %g for variable %s."
 msgstr ""
 
-#: src/sfm-read.c:1080
+#: src/sfm-read.c:1104
 #, c-format
 msgid "%s: File contains duplicate label for value `%.*s' for variable %s."
 msgstr ""
 
-#: src/sfm-read.c:1117 src/sfm-read.c:1392
+#: src/sfm-read.c:1141 src/sfm-read.c:1424
 #, c-format
 msgid "%s: Reading system file: %s."
 msgstr ""
 
-#: src/sfm-read.c:1119 src/sfm-read.c:1301 src/sfm-read.c:1342
+#: src/sfm-read.c:1144 src/sfm-read.c:1331 src/sfm-read.c:1373
 #, c-format
 msgid "%s: Unexpected end of file."
 msgstr ""
 
-#: src/sfm-read.c:1137
+#: src/sfm-read.c:1163
 #, c-format
 msgid "%s: System file contains multiple type 6 (document) records."
 msgstr ""
 
-#: src/sfm-read.c:1142
+#: src/sfm-read.c:1169
 #, c-format
 msgid "%s: Number of document lines (%ld) must be greater than 0."
 msgstr ""
 
-#: src/sfm-read.c:1166
+#: src/sfm-read.c:1194
 msgid "dictionary:\n"
 msgstr ""
 
-#: src/sfm-read.c:1174
+#: src/sfm-read.c:1202
 msgid "num"
 msgstr ""
 
-#: src/sfm-read.c:1175
+#: src/sfm-read.c:1203
 msgid "str"
 msgstr ""
 
-#: src/sfm-read.c:1178
+#: src/sfm-read.c:1206
 msgid "left"
 msgstr ""
 
-#: src/sfm-read.c:1178
+#: src/sfm-read.c:1206
 msgid "right"
 msgstr ""
 
-#: src/sfm-read.c:1184
+#: src/sfm-read.c:1212
 msgid "none"
 msgstr ""
 
-#: src/sfm-read.c:1188
+#: src/sfm-read.c:1216
 msgid "one"
 msgstr ""
 
-#: src/sfm-read.c:1192
+#: src/sfm-read.c:1220
 msgid "two"
 msgstr ""
 
-#: src/sfm-read.c:1196
+#: src/sfm-read.c:1224
 msgid "three"
 msgstr ""
 
-#: src/sfm-read.c:1200 src/descript.q:166
+#: src/sfm-read.c:1228
 msgid "range"
 msgstr ""
 
-#: src/sfm-read.c:1204
+#: src/sfm-read.c:1232
 msgid "low"
 msgstr ""
 
-#: src/sfm-read.c:1208
+#: src/sfm-read.c:1236
 msgid "high"
 msgstr ""
 
-#: src/sfm-read.c:1212
+#: src/sfm-read.c:1240
 msgid "range+1"
 msgstr ""
 
-#: src/sfm-read.c:1216
+#: src/sfm-read.c:1244
 msgid "low+1"
 msgstr ""
 
-#: src/sfm-read.c:1220
+#: src/sfm-read.c:1248
 msgid "high+1"
 msgstr ""
 
-#: src/sfm-read.c:1254
+#: src/sfm-read.c:1282
 #, c-format
 msgid "%s: Error reading file: %s."
 msgstr ""
 
-#: src/sfm-read.c:1292
+#: src/sfm-read.c:1321
 #, c-format
-msgid "%s: Compressed data is corrupted.  Data ends partway through a case."
+msgid "%s: Compressed data is corrupted.  Data ends in partial case."
 msgstr ""
 
-#: src/sfm-read.c:1394
+#: src/sfm-read.c:1427
 #, c-format
 msgid "%s: Partial record at end of system file."
 msgstr ""
 
-#: src/sfm-read.c:1432
+#: src/sfm-read.c:1466
 msgid "reading as a system file"
 msgstr ""
 
 msgid "Cannot write file %s as system file: already opened for %s."
 msgstr ""
 
-#: src/sfm-write.c:100
+#: src/sfm-write.c:101
 #, c-format
 msgid "%s: Opening system-file handle %s for writing."
 msgstr ""
 
-#: src/sfm-write.c:110
+#: src/sfm-write.c:111
 #, c-format
 msgid ""
 "An error occurred while opening \"%s\" for writing as a system file: %s."
 msgstr ""
 
-#: src/sfm-write.c:163
+#: src/sfm-write.c:165
 msgid "Wrote system-file header successfully."
 msgstr ""
 
-#: src/sfm-write.c:168
+#: src/sfm-write.c:170
 msgid "Error writing system-file header."
 msgstr ""
 
-#: src/sfm-write.c:603
+#: src/sfm-write.c:606
 #, c-format
 msgid "%s: Writing system file: %s."
 msgstr ""
 
-#: src/sfm-write.c:749
+#: src/sfm-write.c:754
 msgid "writing as a system file"
 msgstr ""
 
-#: src/sort.c:82
+#: src/sort.c:83
 msgid ""
 "SORT CASES may not be used after TEMPORARY.  Temporary transformations will "
 "be made permanent."
 msgstr ""
 
-#: src/sort.c:127
+#: src/sort.c:128
 msgid "`A' or `D' expected inside parentheses."
 msgstr ""
 
-#: src/sort.c:132
+#: src/sort.c:133
 msgid "`)' expected."
 msgstr ""
 
-#: src/sort.c:421
+#: src/sort.c:439
 #, c-format
 msgid "%s: Creating temporary directory: %s."
 msgstr ""
 
-#: src/sort.c:452
+#: src/sort.c:470
 #, c-format
 msgid "Generating temporary directory name failed: %s."
 msgstr ""
 
-#: src/sort.c:460
+#: src/sort.c:478
 #, c-format
 msgid "Creating temporary directory failed: %s."
 msgstr ""
 
-#: src/sort.c:512
+#: src/sort.c:530
 #, c-format
 msgid "%s: Error removing directory for temporary files: %s."
 msgstr ""
 
-#: src/sort.c:541
+#: src/sort.c:559
 #, c-format
 msgid "%s: Error opening temporary file for %s: %s."
 msgstr ""
 
-#: src/sort.c:558
+#: src/sort.c:576
 #, c-format
 msgid "%s: Error closing temporary file: %s."
 msgstr ""
 
-#: src/sort.c:574
+#: src/sort.c:592
 #, c-format
 msgid "%s: Error removing temporary file: %s."
 msgstr ""
 
-#: src/sort.c:590
+#: src/sort.c:608
 #, c-format
 msgid "%s: Error writing temporary file: %s."
 msgstr ""
 
-#: src/sort.c:608
+#: src/sort.c:626
 #, c-format
 msgid "%s: Error reading temporary file: %s."
 msgstr ""
 
-#: src/sort.c:611
+#: src/sort.c:629
 #, c-format
 msgid "%s: Unexpected end of temporary file."
 msgstr ""
 
-#: src/sort.c:806 src/sort.c:1037
+#: src/sort.c:824 src/sort.c:1055
 #, 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.)"
 msgstr ""
 
-#: src/sysfile-info.c:97
+#: src/sysfile-info.c:94
 msgid "File:"
 msgstr ""
 
-#: src/sysfile-info.c:99
+#: src/sysfile-info.c:96
 msgid "Label:"
 msgstr ""
 
-#: src/sysfile-info.c:103
+#: src/sysfile-info.c:100
 msgid "No label."
 msgstr ""
 
-#: src/sysfile-info.c:106
+#: src/sysfile-info.c:103
 msgid "Created:"
 msgstr ""
 
-#: src/sysfile-info.c:109
+#: src/sysfile-info.c:106
 msgid "Endian:"
 msgstr ""
 
-#: src/sysfile-info.c:110
+#: src/sysfile-info.c:107
 msgid "Big."
 msgstr ""
 
-#: src/sysfile-info.c:110
+#: src/sysfile-info.c:107
 msgid "Little."
 msgstr ""
 
-#: src/sysfile-info.c:111
+#: src/sysfile-info.c:108
 msgid "Variables:"
 msgstr ""
 
-#: src/sysfile-info.c:114
+#: src/sysfile-info.c:111
 msgid "Cases:"
 msgstr ""
 
-#: src/sysfile-info.c:117
+#: src/sysfile-info.c:114
 msgid "Type:"
 msgstr ""
 
-#: src/sysfile-info.c:118
+#: src/sysfile-info.c:115
 msgid "System File."
 msgstr ""
 
-#: src/sysfile-info.c:119
+#: src/sysfile-info.c:116
 msgid "Weight:"
 msgstr ""
 
-#: src/sysfile-info.c:123
+#: src/sysfile-info.c:120
 msgid "Not weighted."
 msgstr ""
 
-#: src/sysfile-info.c:125
+#: src/sysfile-info.c:122
 msgid "Mode:"
 msgstr ""
 
-#: src/sysfile-info.c:127
+#: src/sysfile-info.c:124
 #, c-format
 msgid "Compression %s."
 msgstr ""
 
-#: src/sysfile-info.c:127
+#: src/sysfile-info.c:124
 msgid "on"
 msgstr ""
 
-#: src/sysfile-info.c:127
+#: src/sysfile-info.c:124
 msgid "off"
 msgstr ""
 
-#: src/sysfile-info.c:136 src/sysfile-info.c:375
+#: src/sysfile-info.c:133 src/sysfile-info.c:370
 msgid "Description"
 msgstr ""
 
-#: src/sysfile-info.c:137 src/sysfile-info.c:373
+#: src/sysfile-info.c:134 src/sysfile-info.c:368
 msgid "Position"
 msgstr ""
 
-#: src/sysfile-info.c:196
+#: src/sysfile-info.c:191
 msgid "The active file does not have a file label."
 msgstr ""
 
-#: src/sysfile-info.c:199
+#: src/sysfile-info.c:194
 msgid "File label:"
 msgstr ""
 
-#: src/sysfile-info.c:261
+#: src/sysfile-info.c:256
 msgid "No variables to display."
 msgstr ""
 
-#: src/sysfile-info.c:280
+#: src/sysfile-info.c:275
 msgid "Macros not supported."
 msgstr ""
 
-#: src/sysfile-info.c:290
+#: src/sysfile-info.c:285
 msgid "The active file dictionary does not contain any documents."
 msgstr ""
 
-#: src/sysfile-info.c:299
+#: src/sysfile-info.c:294
 msgid "Documents in the active file:"
 msgstr ""
 
-#: src/sysfile-info.c:377 src/sysfile-info.c:535 src/vfm.c:1013
+#: src/sysfile-info.c:372 src/sysfile-info.c:530 src/vfm.c:835
 msgid "Label"
 msgstr ""
 
-#: src/sysfile-info.c:449
+#: src/sysfile-info.c:444
 #, c-format
 msgid "Format: %s"
 msgstr ""
 
-#: src/sysfile-info.c:456
+#: src/sysfile-info.c:451
 #, c-format
 msgid "Print Format: %s"
 msgstr ""
 
-#: src/sysfile-info.c:459
+#: src/sysfile-info.c:454
 #, c-format
 msgid "Write Format: %s"
 msgstr ""
 
-#: src/sysfile-info.c:467
+#: src/sysfile-info.c:462
 msgid "Missing Values: "
 msgstr ""
 
-#: src/sysfile-info.c:534 src/vfm.c:1012 src/crosstabs.q:1159
-#: src/crosstabs.q:1186 src/crosstabs.q:1206 src/crosstabs.q:1228
-#: src/frequencies.q:1009 src/frequencies.q:1126
+#: src/sysfile-info.c:529 src/vfm.c:834 src/crosstabs.q:1158
+#: src/crosstabs.q:1185 src/crosstabs.q:1205 src/crosstabs.q:1227
+#: src/frequencies.q:1021 src/frequencies.q:1138
 msgid "Value"
 msgstr ""
 
-#: src/sysfile-info.c:591
+#: src/sysfile-info.c:586
 msgid "No vectors defined."
 msgstr ""
 
-#: src/sysfile-info.c:606
+#: src/sysfile-info.c:601
 msgid "Vector"
 msgstr ""
 
-#: src/tab.c:266
+#: src/tab.c:261
 #, c-format
 msgid "bad vline: x=%d+%d=%d y=(%d+%d=%d,%d+%d=%d) in table size (%d,%d)\n"
 msgstr ""
 
-#: src/tab.c:342
+#: src/tab.c:336
 #, c-format
 msgid ""
 "bad box: (%d+%d=%d,%d+%d=%d)-(%d+%d=%d,%d+%d=%d) in table size (%d,%d)\n"
 msgstr ""
 
-#: src/temporary.c:47
+#: src/temporary.c:45
 msgid "This command is not valid inside DO IF or LOOP."
 msgstr ""
 
-#: src/temporary.c:54
+#: src/temporary.c:52
 msgid ""
 "This command may only appear once between procedures and procedure-like "
 "commands."
 msgid "%s: `.' expected after string."
 msgstr ""
 
-#: src/title.c:82
+#: src/title.c:83
 #, c-format
 msgid "%s after: %s\n"
 msgstr ""
 
-#: src/title.c:137
+#: src/title.c:139
 #, c-format
 msgid "Document entered %s %02d:%02d:%02d by %s (%s):"
 msgstr ""
 
-#: src/val-labs.c:119
+#: src/val-labs.c:115
 #, c-format
 msgid ""
 "It is not possible to assign value labels to long string variables such as %"
 "s."
 msgstr ""
 
-#: src/val-labs.c:168
+#: src/val-labs.c:164
 #, c-format
 msgid "Value label `%g' is not integer."
 msgstr ""
 
-#: src/val-labs.c:178
+#: src/val-labs.c:174
 msgid "Truncating value label to 60 characters."
 msgstr ""
 
-#: src/var-labs.c:53
+#: src/var-labs.c:51
 msgid "String expected for variable label."
 msgstr ""
 
-#: src/var-labs.c:59
+#: src/var-labs.c:57
 msgid "Truncating variable label to 120 characters."
 msgstr ""
 
-#: src/var-labs.c:87
+#: src/var-labs.c:85
 #, c-format
 msgid "Variable labels:\n"
 msgstr ""
 
-#: src/var-labs.c:94
+#: src/var-labs.c:92
 #, c-format
 msgid "(no variable label)"
 msgstr ""
 
-#: src/vars-prs.c:49
+#: src/vars-prs.c:48
 #, c-format
 msgid "%s is not a variable name."
 msgstr ""
 
-#: src/vars-prs.c:101
+#: src/vars-prs.c:100
 msgid "ordinary"
 msgstr ""
 
-#: src/vars-prs.c:103
+#: src/vars-prs.c:102
 msgid "system"
 msgstr ""
 
-#: src/vars-prs.c:105
+#: src/vars-prs.c:104
 msgid "scratch"
 msgstr ""
 
-#: src/vars-prs.c:208
+#: src/vars-prs.c:209
 #, c-format
 msgid "%s TO %s is not valid syntax since %s precedes %s in the dictionary."
 msgstr ""
 
-#: src/vars-prs.c:218
+#: src/vars-prs.c:219
 #, c-format
 msgid ""
 "When using the TO keyword to specify several variables, both variables must "
 "system variables.  %s is a %s variable, whereas %s is %s."
 msgstr ""
 
-#: src/vars-prs.c:236
+#: src/vars-prs.c:237
 #, c-format
 msgid "Scratch variables (such as %s) are not allowed here."
 msgstr ""
 
-#: src/vars-prs.c:259
+#: src/vars-prs.c:260
 #, c-format
 msgid ""
 "%s is not a numeric variable.  It will not be included in the variable list."
 msgstr ""
 
-#: src/vars-prs.c:262
+#: src/vars-prs.c:263
 #, c-format
 msgid ""
 "%s is not a string variable.  It will not be included in the variable list."
 msgstr ""
 
-#: src/vars-prs.c:266
+#: src/vars-prs.c:267
 #, 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 ""
 
-#: src/vars-prs.c:271
+#: src/vars-prs.c:272
 #, c-format
 msgid "Variable %s appears twice in variable list."
 msgstr ""
 
-#: src/vars-prs.c:351
+#: src/vars-prs.c:352
 msgid "incorrect use of TO convention"
 msgstr ""
 
-#: src/vars-prs.c:398
+#: src/vars-prs.c:399
 msgid "Scratch variables not allowed here."
 msgstr ""
 
-#: src/vars-prs.c:420
+#: src/vars-prs.c:421
 msgid "Prefixes don't match in use of TO convention."
 msgstr ""
 
-#: src/vars-prs.c:425
+#: src/vars-prs.c:426
 msgid "Bad bounds in use of TO convention."
 msgstr ""
 
-#: src/vector.c:68
+#: src/vector.c:66
 #, c-format
 msgid "Vector name %s is given twice."
 msgstr ""
 
-#: src/vector.c:74
+#: src/vector.c:72
 #, c-format
 msgid "There is already a vector with name %s."
 msgstr ""
 
-#: src/vector.c:95
+#: src/vector.c:93
 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 ""
 
-#: src/vector.c:129
+#: src/vector.c:127
 msgid "Vectors must have at least one element."
 msgstr ""
 
-#: src/vector.c:143
+#: src/vector.c:141
 #, c-format
 msgid "%s%d is too long for a variable name."
 msgstr ""
 
-#: src/vector.c:181
+#: src/vector.c:179
 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:507
-#, c-format
-msgid ""
-"An error occurred creating a temporary file for use as the active file: %s."
-msgstr ""
-
-#: src/vfm.c:520
-#, c-format
-msgid ""
-"An error occurred writing to a temporary file used as the active file: %s."
-msgstr ""
-
-#: src/vfm.c:599
-#, c-format
-msgid ""
-"Workspace limit of %d KB (%d cases at %d bytes each) overflowed.  Writing "
-"active file to disk."
-msgstr ""
-
-#: src/vfm.c:631
-#, c-format
-msgid ""
-"An error occurred while attempting to rewind a temporary file used as the "
-"active file: %s."
-msgstr ""
-
-#: src/vfm.c:680
-#, c-format
-msgid ""
-"An error occurred while attempting to read from a temporary file created for "
-"the active file: %s."
-msgstr ""
-
-#: src/weight.c:54
+#: src/weight.c:52
 msgid "The weighting variable must be numeric."
 msgstr ""
 
-#: src/weight.c:59
+#: src/weight.c:57
 msgid "The weighting variable may not be scratch."
 msgstr ""
 
-#: src/crosstabs.q:251
+#: src/crosstabs.q:250
 msgid ""
 "Missing mode REPORT not allowed in general mode.  Assuming MISSING=TABLE."
 msgstr ""
 
-#: src/crosstabs.q:261
+#: src/crosstabs.q:260
 msgid "Write mode ALL not allowed in general mode.  Assuming WRITE=CELLS."
 msgstr ""
 
-#: src/crosstabs.q:322
+#: src/crosstabs.q:321
 msgid "expecting BY"
 msgstr ""
 
-#: src/crosstabs.q:389
+#: src/crosstabs.q:388
 msgid "VARIABLES must be specified before TABLES."
 msgstr ""
 
-#: src/crosstabs.q:426
+#: src/crosstabs.q:425
 #, c-format
 msgid "Maximum value (%ld) less than minimum value (%ld)."
 msgstr ""
 
-#: src/crosstabs.q:860
+#: src/crosstabs.q:859
 msgid "Summary."
 msgstr ""
 
-#: src/crosstabs.q:862
+#: src/crosstabs.q:861
 msgid "Cases"
 msgstr ""
 
-#: src/crosstabs.q:863 src/frequencies.q:1007
+#: src/crosstabs.q:862 src/frequencies.q:1019 src/frequencies.q:1385
 msgid "Valid"
 msgstr ""
 
-#: src/crosstabs.q:864 src/frequencies.q:1074
+#: src/crosstabs.q:863 src/frequencies.q:1086 src/frequencies.q:1386
 msgid "Missing"
 msgstr ""
 
-#: src/crosstabs.q:865 src/crosstabs.q:1068 src/crosstabs.q:1801
-#: src/frequencies.q:1083
+#: src/crosstabs.q:864 src/crosstabs.q:1067 src/crosstabs.q:1809
+#: src/frequencies.q:1095
 msgid "Total"
 msgstr ""
 
-#: src/crosstabs.q:875 src/t-test.q:657 src/t-test.q:680 src/t-test.q:771
-#: src/t-test.q:1345
+#: src/crosstabs.q:874 src/frequencies.q:1384 src/t-test.q:631
+#: src/t-test.q:654 src/t-test.q:745 src/t-test.q:1259
 msgid "N"
 msgstr ""
 
-#: src/crosstabs.q:876 src/frequencies.q:1011 src/frequencies.q:1012
-#: src/frequencies.q:1013
+#: src/crosstabs.q:875 src/frequencies.q:1023 src/frequencies.q:1024
+#: src/frequencies.q:1025
 msgid "Percent"
 msgstr ""
 
-#: src/crosstabs.q:1118
+#: src/crosstabs.q:1117
 msgid "count"
 msgstr ""
 
-#: src/crosstabs.q:1119
+#: src/crosstabs.q:1118
 msgid "row %"
 msgstr ""
 
-#: src/crosstabs.q:1120
+#: src/crosstabs.q:1119
 msgid "column %"
 msgstr ""
 
-#: src/crosstabs.q:1121
+#: src/crosstabs.q:1120
 msgid "total %"
 msgstr ""
 
-#: src/crosstabs.q:1122
+#: src/crosstabs.q:1121
 msgid "expected"
 msgstr ""
 
-#: src/crosstabs.q:1123
+#: src/crosstabs.q:1122
 msgid "residual"
 msgstr ""
 
-#: src/crosstabs.q:1124
+#: src/crosstabs.q:1123
 msgid "std. resid."
 msgstr ""
 
-#: src/crosstabs.q:1125
+#: src/crosstabs.q:1124
 msgid "adj. resid."
 msgstr ""
 
-#: src/crosstabs.q:1158 src/crosstabs.q:1185 src/crosstabs.q:1205
-#: src/crosstabs.q:1226
+#: src/crosstabs.q:1157 src/crosstabs.q:1184 src/crosstabs.q:1204
+#: src/crosstabs.q:1225
 msgid "Statistic"
 msgstr ""
 
-#: src/crosstabs.q:1160 src/t-test.q:922 src/t-test.q:1123 src/t-test.q:1229
+#: src/crosstabs.q:1159 src/t-test.q:896 src/t-test.q:1065 src/t-test.q:1157
 msgid "df"
 msgstr ""
 
-#: src/crosstabs.q:1162
+#: src/crosstabs.q:1161
 msgid "Asymp. Sig. (2-sided)"
 msgstr ""
 
-#: src/crosstabs.q:1164
+#: src/crosstabs.q:1163
 msgid "Exact. Sig. (2-sided)"
 msgstr ""
 
-#: src/crosstabs.q:1166
+#: src/crosstabs.q:1165
 msgid "Exact. Sig. (1-sided)"
 msgstr ""
 
-#: src/crosstabs.q:1184 src/crosstabs.q:1225
+#: src/crosstabs.q:1183 src/crosstabs.q:1224
 msgid "Category"
 msgstr ""
 
-#: src/crosstabs.q:1187 src/crosstabs.q:1229
+#: src/crosstabs.q:1186 src/crosstabs.q:1228
 msgid "Asymp. Std. Error"
 msgstr ""
 
-#: src/crosstabs.q:1188 src/crosstabs.q:1230
+#: src/crosstabs.q:1187 src/crosstabs.q:1229
 msgid "Approx. T"
 msgstr ""
 
-#: src/crosstabs.q:1189 src/crosstabs.q:1231
+#: src/crosstabs.q:1188 src/crosstabs.q:1230
 msgid "Approx. Sig."
 msgstr ""
 
-#: src/crosstabs.q:1204
+#: src/crosstabs.q:1203
 #, c-format
 msgid " 95%% Confidence Interval"
 msgstr ""
 
-#: src/crosstabs.q:1207 src/t-test.q:926 src/t-test.q:1120 src/t-test.q:1232
+#: src/crosstabs.q:1206 src/t-test.q:900 src/t-test.q:1062 src/t-test.q:1160
 msgid "Lower"
 msgstr ""
 
-#: src/crosstabs.q:1208 src/t-test.q:927 src/t-test.q:1121 src/t-test.q:1233
+#: src/crosstabs.q:1207 src/t-test.q:901 src/t-test.q:1063 src/t-test.q:1161
 msgid "Upper"
 msgstr ""
 
-#: src/crosstabs.q:1227
+#: src/crosstabs.q:1226
 msgid "Type"
 msgstr ""
 
-#: src/crosstabs.q:1977
+#: src/crosstabs.q:2003
 msgid "Pearson Chi-Square"
 msgstr ""
 
-#: src/crosstabs.q:1978
+#: src/crosstabs.q:2004
 msgid "Likelihood Ratio"
 msgstr ""
 
-#: src/crosstabs.q:1979
+#: src/crosstabs.q:2005
 msgid "Fisher's Exact Test"
 msgstr ""
 
-#: src/crosstabs.q:1980
+#: src/crosstabs.q:2006
 msgid "Continuity Correction"
 msgstr ""
 
-#: src/crosstabs.q:1981
+#: src/crosstabs.q:2007
 msgid "Linear-by-Linear Association"
 msgstr ""
 
-#: src/crosstabs.q:2018 src/crosstabs.q:2088 src/crosstabs.q:2147
+#: src/crosstabs.q:2044 src/crosstabs.q:2114 src/crosstabs.q:2173
 msgid "N of Valid Cases"
 msgstr ""
 
-#: src/crosstabs.q:2034 src/crosstabs.q:2163
+#: src/crosstabs.q:2060 src/crosstabs.q:2189
 msgid "Nominal by Nominal"
 msgstr ""
 
-#: src/crosstabs.q:2035 src/crosstabs.q:2164
+#: src/crosstabs.q:2061 src/crosstabs.q:2190
 msgid "Ordinal by Ordinal"
 msgstr ""
 
-#: src/crosstabs.q:2036
+#: src/crosstabs.q:2062
 msgid "Interval by Interval"
 msgstr ""
 
-#: src/crosstabs.q:2037
+#: src/crosstabs.q:2063
 msgid "Measure of Agreement"
 msgstr ""
 
-#: src/crosstabs.q:2042
+#: src/crosstabs.q:2068
 msgid "Phi"
 msgstr ""
 
-#: src/crosstabs.q:2043
+#: src/crosstabs.q:2069
 msgid "Cramer's V"
 msgstr ""
 
-#: src/crosstabs.q:2044
+#: src/crosstabs.q:2070
 msgid "Contingency Coefficient"
 msgstr ""
 
-#: src/crosstabs.q:2045
+#: src/crosstabs.q:2071
 msgid "Kendall's tau-b"
 msgstr ""
 
-#: src/crosstabs.q:2046
+#: src/crosstabs.q:2072
 msgid "Kendall's tau-c"
 msgstr ""
 
-#: src/crosstabs.q:2047
+#: src/crosstabs.q:2073
 msgid "Gamma"
 msgstr ""
 
-#: src/crosstabs.q:2048
+#: src/crosstabs.q:2074
 msgid "Spearman Correlation"
 msgstr ""
 
-#: src/crosstabs.q:2049
+#: src/crosstabs.q:2075
 msgid "Pearson's R"
 msgstr ""
 
-#: src/crosstabs.q:2050
+#: src/crosstabs.q:2076
 msgid "Kappa"
 msgstr ""
 
-#: src/crosstabs.q:2120
+#: src/crosstabs.q:2146
 #, c-format
 msgid "Odds Ratio for %s (%g / %g)"
 msgstr ""
 
-#: src/crosstabs.q:2123
+#: src/crosstabs.q:2149
 #, c-format
 msgid "Odds Ratio for %s (%.*s / %.*s)"
 msgstr ""
 
-#: src/crosstabs.q:2131
+#: src/crosstabs.q:2157
 #, c-format
 msgid "For cohort %s = %g"
 msgstr ""
 
-#: src/crosstabs.q:2134
+#: src/crosstabs.q:2160
 #, c-format
 msgid "For cohort %s = %.*s"
 msgstr ""
 
-#: src/crosstabs.q:2165
+#: src/crosstabs.q:2191
 msgid "Nominal by Interval"
 msgstr ""
 
-#: src/crosstabs.q:2170
+#: src/crosstabs.q:2196
 msgid "Lambda"
 msgstr ""
 
-#: src/crosstabs.q:2171
+#: src/crosstabs.q:2197
 msgid "Goodman and Kruskal tau"
 msgstr ""
 
-#: src/crosstabs.q:2172
+#: src/crosstabs.q:2198
 msgid "Uncertainty Coefficient"
 msgstr ""
 
-#: src/crosstabs.q:2173
+#: src/crosstabs.q:2199
 msgid "Somers' d"
 msgstr ""
 
-#: src/crosstabs.q:2174
+#: src/crosstabs.q:2200
 msgid "Eta"
 msgstr ""
 
-#: src/crosstabs.q:2179
+#: src/crosstabs.q:2205
 msgid "Symmetric"
 msgstr ""
 
-#: src/crosstabs.q:2180 src/crosstabs.q:2181
+#: src/crosstabs.q:2206 src/crosstabs.q:2207
 #, c-format
 msgid "%s Dependent"
 msgstr ""
 
-#: src/descript.q:151 src/frequencies.q:94 src/t-test.q:658 src/t-test.q:681
-#: src/t-test.q:770 src/t-test.q:1117
-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
+#: src/file-handle.q:124
 #, 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."
+"File handle %s already refers to file %s.  File handle cannot be redefined "
+"within a session."
 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
+#: src/file-handle.q:146
 msgid "The FILE HANDLE required subcommand NAME is not present."
 msgstr ""
 
-#: src/file-handle.q:107
+#: src/file-handle.q:161
 msgid ""
-"Fixed length records were specified on /RECFORM, but record length was not "
-"specified on /LRECL.  80-character records will be assumed."
+"Fixed-length records were specified on /RECFORM, but record length was not "
+"specified on /LRECL.  Assuming 1024-character records."
 msgstr ""
 
-#: src/file-handle.q:114
+#: src/file-handle.q:168
 #, c-format
 msgid ""
-"Record length (%ld) must be at least one byte.  80-character records will be "
+"Record length (%ld) must be at least one byte.  1-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."
+#: src/file-handle.q:241
+msgid "<Inline File>"
 msgstr ""
 
-#: src/file-handle.q:147 src/file-handle.q:150
-#, c-format
-msgid "%s is not implemented.  If you care, complain."
+#: src/file-handle.q:256
+msgid "expecting a file name or handle name"
 msgstr ""
 
-#: src/file-handle.q:232
-#, c-format
-msgid "File handle `%s' has not been previously declared on FILE HANDLE."
+#: src/frequencies.q:96
+msgid "S.E. Mean"
 msgstr ""
 
-#: src/file-handle.q:319
-msgid "<Inline File>"
+#: src/frequencies.q:97
+msgid "Median"
 msgstr ""
 
-#: src/file-handle.q:338
-msgid "expecting a file name or handle"
+#: src/frequencies.q:98
+msgid "Mode"
 msgstr ""
 
-#: src/frequencies.q:96
-msgid "Median"
+#: src/frequencies.q:102
+msgid "S.E. Kurt"
 msgstr ""
 
-#: src/frequencies.q:97
-msgid "Mode"
+#: src/frequencies.q:104
+msgid "S.E. Skew"
 msgstr ""
 
-#: src/frequencies.q:268
+#: src/frequencies.q:279
 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
+#: src/frequencies.q:360
 #, 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
+#: src/frequencies.q:649
 msgid ""
 "Upper limit of integer mode value range must be greater than lower limit."
 msgstr ""
 
-#: src/frequencies.q:644
+#: src/frequencies.q:661
 #, c-format
 msgid "Variable %s specified multiple times on VARIABLES subcommand."
 msgstr ""
 
-#: src/frequencies.q:657
+#: src/frequencies.q:674
 #, c-format
 msgid "Integer mode specified, but %s is not a numeric variable."
 msgstr ""
 
-#: src/frequencies.q:719
+#: src/frequencies.q:736
 msgid "`)' expected after GROUPED interval list."
 msgstr ""
 
-#: src/frequencies.q:732
+#: src/frequencies.q:749
 #, c-format
 msgid "Variables %s specified on GROUPED but not on VARIABLES."
 msgstr ""
 
-#: src/frequencies.q:735
+#: src/frequencies.q:752
 #, c-format
 msgid "Variables %s specified multiple times on GROUPED subcommand."
 msgstr ""
 
-#: src/frequencies.q:795
+#: src/frequencies.q:808
 msgid "Percentile list expected after PERCENTILES."
 msgstr ""
 
-#: src/frequencies.q:803
-msgid "Percentiles must be greater than 0 and less than 100."
-msgstr ""
+#: src/frequencies.q:816
+#, fuzzy
+msgid "Percentiles must be between 0 and 100."
+msgstr "Frame colour must be between 0 and 6."
 
-#: src/frequencies.q:1008 src/frequencies.q:1098 src/frequencies.q:1099
-#: src/frequencies.q:1129
+#: src/frequencies.q:1020 src/frequencies.q:1110 src/frequencies.q:1111
+#: src/frequencies.q:1141
 msgid "Cum"
 msgstr ""
 
-#: src/frequencies.q:1010
+#: src/frequencies.q:1022
 msgid "Frequency"
 msgstr ""
 
-#: src/frequencies.q:1029
+#: src/frequencies.q:1041
 msgid "Value Label"
 msgstr ""
 
-#: src/frequencies.q:1127
+#: src/frequencies.q:1139
 msgid "Freq"
 msgstr ""
 
-#: src/frequencies.q:1128 src/frequencies.q:1130
+#: src/frequencies.q:1140 src/frequencies.q:1142
 msgid "Pct"
 msgstr ""
 
-#: src/frequencies.q:1285
+#: src/frequencies.q:1358
 #, c-format
 msgid "No valid data for variable %s; statistics not displayed."
 msgstr ""
 
-#: src/frequencies.q:1308
-msgid "Percentile"
+#: src/frequencies.q:1397
+msgid "Percentiles"
 msgstr ""
 
-#: src/list.q:152
+#: src/list.q:151
 #, c-format
 msgid ""
 "The first case (%ld) specified precedes the last case (%ld) specified.  The "
 "values will be swapped."
 msgstr ""
 
-#: src/list.q:160
+#: src/list.q:159
 #, c-format
 msgid ""
 "The first case (%ld) to list is less than 1.  The value is being reset to 1."
 msgstr ""
 
-#: src/list.q:166
+#: src/list.q:165
 #, c-format
 msgid ""
 "The last case (%ld) to list is less than 1.  The value is being reset to 1."
 msgstr ""
 
-#: src/list.q:172
+#: src/list.q:171
 #, c-format
 msgid "The step value %ld is less than 1.  The value is being reset to 1."
 msgstr ""
 
-#: src/list.q:199
+#: src/list.q:198
 msgid "`/FORMAT WEIGHT' specified, but weighting is not on."
 msgstr ""
 
-#: src/list.q:445
+#: src/list.q:444
 msgid "Line"
 msgstr ""
 
-#: src/means.q:106
+#: src/means.q:105
 msgid "Missing required subcommand TABLES."
 msgstr ""
 
-#: src/means.q:144
+#: src/means.q:143
 msgid "TABLES or CROSSBREAK subcommand may not appear more than once."
 msgstr ""
 
-#: src/means.q:181
+#: src/means.q:180
 #, c-format
 msgid ""
 "Variable %s specified on TABLES or CROSSBREAK, but not specified on "
 "VARIABLES."
 msgstr ""
 
-#: src/means.q:195
+#: src/means.q:194
 #, c-format
 msgid "LOWEST and HIGHEST may not be used for independent variables (%s)."
 msgstr ""
 
-#: src/means.q:203
+#: src/means.q:202
 #, c-format
 msgid ""
 "Independent variables (%s) may not have noninteger endpoints in their ranges."
 msgstr ""
 
-#: src/means.q:236
+#: src/means.q:235
 msgid "VARIABLES must precede TABLES."
 msgstr ""
 
-#: src/means.q:293
+#: src/means.q:292
 #, c-format
 msgid "Upper value (%g) is less than lower value (%g) on VARIABLES subcommand."
 msgstr ""
 
-#: src/set.q:216 src/set.q:288 src/set.q:332 src/set.q:389 src/set.q:391
-#: src/set.q:393 src/set.q:395 src/set.q:397 src/set.q:399 src/set.q:401
-#: src/set.q:403 src/set.q:405 src/set.q:407 src/set.q:409 src/set.q:411
-#: src/set.q:413 src/set.q:792 src/set.q:873 src/set.q:968
+#: src/set.q:216 src/set.q:288 src/set.q:332 src/set.q:387 src/set.q:389
+#: src/set.q:391 src/set.q:393 src/set.q:395 src/set.q:397 src/set.q:399
+#: src/set.q:401 src/set.q:403 src/set.q:405 src/set.q:407 src/set.q:409
+#: src/set.q:411 src/set.q:790 src/set.q:871 src/set.q:966
 #, c-format
 msgid "%s is obsolete."
 msgstr ""
 msgid "Journalling is off"
 msgstr ""
 
-#: src/set.q:422
+#: src/set.q:420
 msgid ""
 "CASE is not implemented and probably won't be.  If you care, complain about "
 "it."
 msgstr ""
 
-#: src/set.q:427
+#: src/set.q:425
 msgid "Active file compression is not yet implemented (and probably won't be)."
 msgstr ""
 
-#: src/set.q:441
+#: src/set.q:439
 #, c-format
 msgid ""
 "CC%c: Length of custom currency string `%s' (%d) exceeds maximum length of "
 "16."
 msgstr ""
 
-#: src/set.q:463
+#: src/set.q:461
 #, c-format
 msgid ""
 "CC%c: Custom currency string `%s' does not contain exactly three periods or "
 "commas (not both)."
 msgstr ""
 
-#: src/set.q:516
+#: src/set.q:514
 msgid "None"
 msgstr ""
 
-#: src/set.q:522
+#: src/set.q:520
 msgid "Disabled"
 msgstr ""
 
-#: src/set.q:527
+#: src/set.q:525
 msgid "Screen"
 msgstr ""
 
-#: src/set.q:534
+#: src/set.q:532
 msgid "Listing"
 msgstr ""
 
-#: src/set.q:541
+#: src/set.q:539
 msgid "Other"
 msgstr ""
 
-#: src/set.q:650
+#: src/set.q:648
 msgid "LENGTH must be at least 1."
 msgstr ""
 
-#: src/set.q:689
+#: src/set.q:687
 msgid "Missing identifier in RESULTS subcommand."
 msgstr ""
 
-#: src/set.q:700
+#: src/set.q:698
 msgid "Unrecognized identifier in RESULTS subcommand."
 msgstr ""
 
-#: src/set.q:738
+#: src/set.q:736
 msgid "WIDTH must be at least 1."
 msgstr ""
 
-#: src/set.q:761
+#: src/set.q:759
 #, c-format
 msgid ""
 "FORMAT requires numeric output format as an argument.  Specified format %s "
 "is of type string."
 msgstr ""
 
-#: src/set.q:805
+#: src/set.q:803
 msgid "Text color must be in range 0-15."
 msgstr "Text colour must be in range 0-15."
 
-#: src/set.q:818
+#: src/set.q:816
 msgid "Background color must be in range 0-7."
 msgstr "Background colour must be in range 0-7."
 
-#: src/set.q:829
+#: src/set.q:827
 msgid "Border color must be in range 0-7."
 msgstr "Border colour must be in range 0-7."
 
-#: src/set.q:885
+#: src/set.q:883
 msgid "Lower window color must be between 0 and 6."
 msgstr "Lower window colour must be between 0 and 6."
 
-#: src/set.q:899
+#: src/set.q:897
 msgid "Upper window color must be between 0 and 6."
 msgstr "Upper window colour must be between 0 and 6."
 
-#: src/set.q:911
+#: src/set.q:909
 msgid "Frame color must be between 0 and 6."
 msgstr "Frame colour must be between 0 and 6."
 
-#: src/set.q:977
+#: src/set.q:975
 msgid "Drive letter expected in WORKDEV subcommand."
 msgstr ""
 
-#: src/set.q:1012
-msgid "Specify a terminal type with `setenv TERM <yourtype>'."
+#: src/set.q:1007
+msgid "Specify a terminal type with the TERM environment variable."
 msgstr ""
 
-#: src/set.q:1018
+#: src/set.q:1013
 msgid "Could not access the termcap data base."
 msgstr ""
 
-#: src/set.q:1020
+#: src/set.q:1015
 #, c-format
 msgid "Terminal type `%s' is not defined."
 msgstr ""
 
-#: src/set.q:1048
+#: src/set.q:1057
 msgid "data> "
 msgstr ""
 
-#: src/t-test.q:237
+#: src/t-test.q:234
 msgid "TESTVAL, GROUPS and PAIRS subcommands are mutually exclusive."
 msgstr ""
 
-#: src/t-test.q:254
+#: src/t-test.q:251
 msgid "VARIABLES subcommand is not appropriate with PAIRS"
 msgstr ""
 
-#: src/t-test.q:354 src/t-test.q:431
+#: src/t-test.q:288
+msgid "One or more VARIABLES must be specified."
+msgstr ""
+
+#: src/t-test.q:328 src/t-test.q:405
 #, c-format
 msgid "`%s' is not a variable name"
 msgstr ""
 
-#: src/t-test.q:367
+#: src/t-test.q:341
 #, c-format
 msgid "Long string variable %s is not valid here."
 msgstr ""
 
-#: src/t-test.q:384
+#: src/t-test.q:358
 msgid ""
 "When applying GROUPS to a string variable, at least one value must be "
 "specified."
 msgstr ""
 
-#: src/t-test.q:466
+#: src/t-test.q:440
 #, c-format
 msgid ""
 "PAIRED was specified but the number of variables preceding WITH (%d) did not "
 "match the number following (%d)."
 msgstr ""
 
-#: src/t-test.q:483
+#: src/t-test.q:457
 msgid "At least two variables must be specified on PAIRS."
 msgstr ""
 
-#: src/t-test.q:655
+#: src/t-test.q:629
 msgid "One-Sample Statistics"
 msgstr ""
 
-#: src/t-test.q:659 src/t-test.q:682 src/t-test.q:772 src/t-test.q:1118
+#: src/t-test.q:633 src/t-test.q:656 src/t-test.q:746 src/t-test.q:1060
 msgid "Std. Deviation"
 msgstr ""
 
-#: src/t-test.q:660 src/t-test.q:683 src/t-test.q:773
+#: src/t-test.q:634 src/t-test.q:657 src/t-test.q:747
 msgid "SE. Mean"
 msgstr ""
 
-#: src/t-test.q:677
+#: src/t-test.q:651
 msgid "Group Statistics"
 msgstr ""
 
-#: src/t-test.q:767
+#: src/t-test.q:741
 msgid "Paired Sample Statistics"
 msgstr ""
 
-#: src/t-test.q:789 src/t-test.q:1146 src/t-test.q:1366
+#: src/t-test.q:763 src/t-test.q:1085 src/t-test.q:1276
 #, c-format
 msgid "Pair %d"
 msgstr ""
 
-#: src/t-test.q:907
+#: src/t-test.q:881
 msgid "Independent Samples Test"
 msgstr ""
 
-#: src/t-test.q:915
+#: src/t-test.q:889
 msgid "Levene's Test for Equality of Variances"
 msgstr ""
 
-#: src/t-test.q:917
+#: src/t-test.q:891
 msgid "t-test for Equality of Means"
 msgstr ""
 
-#: src/t-test.q:919
+#: src/t-test.q:893
 msgid "F"
 msgstr ""
 
-#: src/t-test.q:920 src/t-test.q:1347
+#: src/t-test.q:894 src/t-test.q:1261
 msgid "Sig."
 msgstr ""
 
-#: src/t-test.q:921 src/t-test.q:1122 src/t-test.q:1228
+#: src/t-test.q:895 src/t-test.q:1064 src/t-test.q:1156
 msgid "t"
 msgstr ""
 
-#: src/t-test.q:923 src/t-test.q:1124 src/t-test.q:1230
+#: src/t-test.q:897 src/t-test.q:1066 src/t-test.q:1158
 msgid "Sig. (2-tailed)"
 msgstr ""
 
-#: src/t-test.q:924 src/t-test.q:1231
+#: src/t-test.q:898 src/t-test.q:1159
 msgid "Mean Difference"
 msgstr ""
 
-#: src/t-test.q:925
+#: src/t-test.q:899
 msgid "Std. Error Difference"
 msgstr ""
 
-#: src/t-test.q:930 src/t-test.q:1114 src/t-test.q:1223
+#: src/t-test.q:904 src/t-test.q:1056 src/t-test.q:1151
 #, c-format
 msgid "%d%% Confidence Interval of the Difference"
 msgstr ""
 
-#: src/t-test.q:964
+#: src/t-test.q:935
 msgid "Equal variances assumed"
 msgstr ""
 
-#: src/t-test.q:979
-#, c-format
-msgid "Error calculating F statistic (cdff returned %d)."
-msgstr ""
-
-#: src/t-test.q:1002 src/t-test.q:1022 src/t-test.q:1060 src/t-test.q:1072
-#: src/t-test.q:1167 src/t-test.q:1193 src/t-test.q:1273 src/t-test.q:1290
-#: src/t-test.q:1379
-#, c-format
-msgid "Error calculating T statistic (cdft returned %d)."
-msgstr ""
-
-#: src/t-test.q:1036
+#: src/t-test.q:988
 msgid "Equal variances not assumed"
 msgstr ""
 
-#: src/t-test.q:1104
+#: src/t-test.q:1046
 msgid "Paired Samples Test"
 msgstr ""
 
-#: src/t-test.q:1107
+#: src/t-test.q:1049
 msgid "Paired Differences"
 msgstr ""
 
-#: src/t-test.q:1119
+#: src/t-test.q:1061
 msgid "Std. Error Mean"
 msgstr ""
 
-#: src/t-test.q:1212
+#: src/t-test.q:1140
 msgid "One-Sample Test"
 msgstr ""
 
-#: src/t-test.q:1217
+#: src/t-test.q:1145
 #, c-format
 msgid "Test Value = %f"
 msgstr ""
 
-#: src/t-test.q:1342
+#: src/t-test.q:1256
 msgid "Paired Samples Correlations"
 msgstr ""
 
-#: src/t-test.q:1346
+#: src/t-test.q:1260
 msgid "Correlation"
 msgstr ""
 
-#: src/t-test.q:1369
+#: src/t-test.q:1279
 #, c-format
 msgid "%s & %s"
 msgstr ""
 
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: pspp-dev@gnu.org\n"
-"POT-Creation-Date: 2004-03-21 10:15+0800\n"
+"POT-Creation-Date: 2004-04-03 14:42+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"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
 
-#: src/aggregate.c:183 src/aggregate.c:216 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
+#: src/aggregate.c:182 src/aggregate.c:215 src/data-list.c:1359
+#: src/data-list.c:1394 src/data-list.c:1407 src/data-list.c:1420
+#: src/data-list.c:1453
 #, c-format
 msgid "%s subcommand given multiple times."
 msgstr ""
 
-#: src/aggregate.c:203
+#: src/aggregate.c:202
 msgid "while expecting COLUMNWISE"
 msgstr ""
 
-#: src/aggregate.c:244
+#: src/aggregate.c:243
 msgid "BREAK subcommand not specified."
 msgstr ""
 
-#: src/aggregate.c:400
+#: src/aggregate.c:399
 msgid "expecting aggregation function"
 msgstr ""
 
-#: src/aggregate.c:416
+#: src/aggregate.c:415
 #, c-format
 msgid "Unknown aggregation function %s."
 msgstr ""
 
-#: src/aggregate.c:431
+#: src/aggregate.c:430
 msgid "expecting `('"
 msgstr ""
 
-#: src/aggregate.c:466
+#: src/aggregate.c:465
 #, c-format
 msgid "Missing argument %d to %s."
 msgstr ""
 
-#: src/aggregate.c:474
+#: src/aggregate.c:473
 #, c-format
 msgid "Arguments to %s must be of same type as source variables."
 msgstr ""
 
-#: src/aggregate.c:484 src/expr-prs.c:665
+#: src/aggregate.c:483 src/expr-prs.c:630
 msgid "expecting `)'"
 msgstr ""
 
-#: src/aggregate.c:496
+#: src/aggregate.c:495
 #, c-format
 msgid ""
 "Number of source variables (%d) does not match number of target variables (%"
 "contains the aggregate variables and the break variables."
 msgstr ""
 
-#: src/apply-dict.c:68
+#: src/apply-dict.c:65
 #, c-format
 msgid "Variable %s is %s in target file, but %s in source file."
 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/pfm-read.c:634 src/print.c:698 src/sfm-read.c:914 src/sfm-read.c:1040
-#: src/sfm-read.c:1041
+#: src/apply-dict.c:68 src/apply-dict.c:69 src/expr-prs.c:1292
+#: src/expr-prs.c:1308 src/formats.c:100 src/pfm-read.c:638 src/print.c:688
+#: src/sfm-read.c:933 src/sfm-read.c:1063 src/sfm-read.c:1064
 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:634 src/print.c:698 src/sfm-read.c:914 src/sfm-read.c:1040
-#: src/sfm-read.c:1041
+#: src/apply-dict.c:68 src/apply-dict.c:69 src/expr-prs.c:1289
+#: src/expr-prs.c:1306 src/formats.c:100 src/pfm-read.c:638 src/print.c:688
+#: src/sfm-read.c:933 src/sfm-read.c:1063 src/sfm-read.c:1064
 msgid "numeric"
 msgstr ""
 
-#: src/apply-dict.c:84
+#: src/apply-dict.c:81
 #, c-format
 msgid "Cannot add value labels from source file to long string variable %s."
 msgstr ""
 
-#: src/apply-dict.c:130
+#: src/apply-dict.c:127
 #, c-format
 msgid ""
 "Cannot apply missing values from source file to long string variable %s."
 msgstr ""
 
-#: src/apply-dict.c:163
+#: src/apply-dict.c:160
 msgid "No matching variables found between the source and target files."
 msgstr ""
 
 "and `bs'."
 msgstr ""
 
-#: src/ascii.c:522 src/postscript.c:680
+#: src/ascii.c:522 src/postscript.c:681
 #, c-format
 msgid "Positive integer required as value for `%s'."
 msgstr ""
 msgid "Zero or positive integer required as value for `%s'."
 msgstr ""
 
-#: src/ascii.c:623 src/postscript.c:639
+#: src/ascii.c:624 src/postscript.c:639
 #, c-format
 msgid "Boolean value expected for %s."
 msgstr ""
 
-#: src/ascii.c:655 src/ascii.c:670 src/ascii.c:687
+#: src/ascii.c:656 src/ascii.c:671 src/ascii.c:688
 #, c-format
 msgid "ASCII output driver: %s: %s"
 msgstr ""
 
-#: src/ascii.c:756
+#: src/ascii.c:757
 #, c-format
 msgid "ascii_line_horz: bad hline (%d,%d),%d out of (%d,%d)\n"
 msgstr ""
 
-#: src/ascii.c:790
+#: src/ascii.c:791
 #, c-format
 msgid "ascii_line_vert: bad vline %d,(%d,%d) out of (%d,%d)\n"
 msgstr ""
 
-#: src/ascii.c:820
+#: src/ascii.c:821
 #, c-format
 msgid "ascii_line_intersection: bad intsct (%d,%d) out of (%d,%d)\n"
 msgstr ""
 
-#: src/ascii.c:968
+#: src/ascii.c:969
 #, c-format
 msgid "%s: horiz=%d, vert=%d\n"
 msgstr ""
 
-#: src/ascii.c:1140
+#: src/ascii.c:1141
 #, c-format
 msgid "Writing `%s': %s"
 msgstr ""
 
-#: src/ascii.c:1543 src/postscript.c:2093
+#: src/ascii.c:1550 src/postscript.c:2095
 #, c-format
 msgid "%s - Page %d"
 msgstr ""
 
-#: src/autorecode.c:121
+#: src/autorecode.c:120
 #, c-format
 msgid "Source variable count (%d) does not match target variable count (%d)."
 msgstr ""
 
-#: src/autorecode.c:138 src/command.c:690 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:405
-#: src/sel-if.c:56 src/sel-if.c:138 src/vector.c:194 src/file-handle.q:88
+#: src/autorecode.c:137 src/command.c:738 src/compute.c:290
+#: src/data-list.c:380 src/data-list.c:877 src/data-list.c:1686
+#: src/do-if.c:257 src/get.c:378 src/lexer.c:412 src/loop.c:239
+#: src/matrix-data.c:507 src/print.c:328 src/print.c:1038 src/recode.c:403
+#: src/sel-if.c:53 src/sel-if.c:130 src/vector.c:192 src/file-handle.q:140
 msgid "expecting end of command"
 msgstr ""
 
-#: src/autorecode.c:148
+#: src/autorecode.c:147
 #, c-format
 msgid "Target variable %s duplicates existing variable %s."
 msgstr ""
 
-#: src/autorecode.c:155
+#: src/autorecode.c:154
 #, c-format
 msgid "Duplicate variable name %s among target variables."
 msgstr ""
 
-#: src/cmdline.c:114 src/cmdline.c:133 src/cmdline.c:145 src/command.c:196
-#: src/set.q:416 src/set.q:418 src/set.q:958
+#: src/casefile.c:154
+#, c-format
+msgid "%s: Removing temporary file: %s."
+msgstr ""
+
+#: src/casefile.c:247
+#, c-format
+msgid "Error writing temporary file: %s."
+msgstr ""
+
+#: src/casefile.c:274
+#, c-format
+msgid "%s: Creating temporary file: %s."
+msgstr ""
+
+#: src/casefile.c:471
+#, c-format
+msgid "%s: Opening temporary file: %s."
+msgstr ""
+
+#: src/casefile.c:500
+#, c-format
+msgid "%s: Seeking temporary file: %s."
+msgstr ""
+
+#: src/casefile.c:513
+#, c-format
+msgid "%s: Reading temporary file: %s."
+msgstr ""
+
+#: src/casefile.c:516
+#, c-format
+msgid "%s: Temporary file ended unexpectedly."
+msgstr ""
+
+#: src/cmdline.c:141 src/cmdline.c:160 src/cmdline.c:172 src/command.c:160
+#: src/set.q:414 src/set.q:416 src/set.q:956
 #, c-format
 msgid "%s is not yet implemented."
 msgstr ""
 
-#: src/cmdline.c:159
+#: src/cmdline.c:186
 msgid ""
 "\n"
 "Copyright (C) 1997-9, 2000 Free Software Foundation, Inc.\n"
 "Written by Ben Pfaff <blp@gnu.org>."
 msgstr ""
 
-#: src/cmdline.c:221
+#: src/cmdline.c:248
 #, c-format
 msgid ""
 "PSPP, a program for statistical analysis of sample data.\n"
 "for the equivalent short option also.  Similarly for optional arguments.\n"
 "\n"
 "Configuration:\n"
+"  -a, --algorithm={compatible|enhanced}\n"
+"                            set to `compatible' if you want output\n"
+"                            calculated from broken algorithms\n"
 "  -B, --config-dir=DIR      set configuration directory to DIR\n"
 "  -o, --device=DEVICE       select output driver DEVICE and disable "
 "defaults\n"
 "  -n, --edit                just check syntax; don't actually run the code\n"
 "  -r, --no-statrc           disable execution of .pspp/rc at startup\n"
 "  -s, --safer               don't allow some unsafe operations\n"
+"  -x, --syntax={compatible|enhanced}\n"
+"                            set to `compatible' if you want only to accept\n"
+"                            spss compatible syntax\n"
 "\n"
 "Informative output:\n"
 "  -h, --help                print this help, then exit\n"
 "\n"
 msgstr ""
 
-#: src/cmdline.c:253
+#: src/cmdline.c:286
 #, c-format
 msgid ""
 "\n"
 "Report bugs to <%s>.\n"
 msgstr ""
 
-#: src/command.c:134
+#: src/command.c:98
 #, c-format
 msgid "%s not allowed inside FILE TYPE/END FILE TYPE."
 msgstr ""
 
-#: src/command.c:138
+#: src/command.c:102
 #, c-format
 msgid "%s not allowed inside FILE TYPE GROUPED/END FILE TYPE."
 msgstr ""
 
-#: src/command.c:141
+#: src/command.c:105
 msgid "RECORD TYPE must be the first command inside a FILE TYPE structure."
 msgstr ""
 
-#: src/command.c:186
-msgid "This line does not begin with a valid command name."
+#: src/command.c:150
+msgid "expecting command name"
 msgstr ""
 
-#: src/command.c:215
+#: src/command.c:179
 #, c-format
 msgid ""
 "%s is not allowed (1) before a command to specify the input program, such as "
 "PROGRAM and END INPUT PROGRAM."
 msgstr ""
 
-#: src/command.c:219
+#: src/command.c:183
 #, c-format
 msgid "%s is not allowed within an input program."
 msgstr ""
 
-#: src/command.c:220 src/command.c:221
+#: src/command.c:184 src/command.c:185
 #, c-format
 msgid "%s is only allowed within an input program."
 msgstr ""
 
-#: src/command.c:230
+#: src/command.c:464
 #, c-format
-msgid "%s command beginning\n"
-msgstr ""
-
-#: src/command.c:266
-#, c-format
-msgid ""
-"%s command completed\n"
-"\n"
-msgstr ""
-
-#: src/command.c:281
-msgid "The identifier(s) specified do not form a valid command name:"
-msgstr ""
-
-#: src/command.c:284
-msgid "The identifier(s) specified do not form a complete command name:"
+msgid "Unknown command %s."
 msgstr ""
 
-#: src/command.c:408
+#: src/command.c:564
 msgid ""
 "This command is not accepted in a syntax file.  Instead, use FINISH to "
 "terminate a syntax file."
 msgstr ""
 
-#: src/command.c:426
+#: src/command.c:582
 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:517
-msgid "The sentinel may not be the empty string."
-msgstr ""
-
-#: src/command.c:576 src/command.c:708
+#: src/command.c:625 src/command.c:756
 msgid "This command not allowed when the SAFER option is set."
 msgstr ""
 
-#: src/command.c:590
+#: src/command.c:637
 #, c-format
 msgid "Error removing `%s': %s."
 msgstr ""
 
-#: src/command.c:640
+#: src/command.c:687
 #, c-format
 msgid "Couldn't fork: %s."
 msgstr ""
 
-#: src/command.c:681
+#: src/command.c:729
 #, c-format
 msgid "Error executing command: %s."
 msgstr ""
 
-#: src/command.c:731
+#: src/command.c:777
 msgid "No operating system support for this command."
 msgstr ""
 
-#: src/command.c:760
+#: src/command.c:800
 msgid "This command is not valid in a syntax file."
 msgstr ""
 
-#: src/compute.c:145 src/compute.c:209
+#: src/compute.c:143 src/compute.c:207
 #, c-format
 msgid ""
 "When executing COMPUTE: SYSMIS is not a valid value as an index into vector %"
 "s."
 msgstr ""
 
-#: src/compute.c:148 src/compute.c:213
+#: src/compute.c:146 src/compute.c:211
 #, c-format
 msgid ""
 "When executing COMPUTE: %g is not a valid value as an index into vector %s."
 msgstr ""
 
-#: src/compute.c:355
+#: src/compute.c:352
 #, c-format
 msgid "There is no vector named %s."
 msgstr ""
 
-#: src/compute.c:461
-msgid "Extra characters after expression."
-msgstr ""
-
-#: src/count.c:156
+#: src/count.c:154
 msgid "Destination cannot be a string variable."
 msgstr ""
 
-#: src/count.c:263
+#: src/count.c:261
 #, c-format
 msgid ""
 "%g THRU %g is not a valid range.  The number following THRU must be at least "
 msgid "Field too long (%d characters).  Truncated after character %d."
 msgstr ""
 
-#: src/data-list.c:139
+#: src/data-list.c:136
 msgid ""
 "DATA LIST may not use a different file from that specified on its "
 "surrounding FILE TYPE."
 msgstr ""
 
-#: src/data-list.c:158
+#: src/data-list.c:155
 msgid "The END subcommand may only be specified once."
 msgstr ""
 
-#: src/data-list.c:194
+#: src/data-list.c:191
 msgid "Only one of FIXED, FREE, or LIST may be specified."
 msgstr ""
 
-#: src/data-list.c:327 src/print.c:299
+#: src/data-list.c:327 src/print.c:289
 #, 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:356 src/data-list.c:1679
+#: src/data-list.c:356 src/data-list.c:1675
 msgid ""
 "SPSS-like or FORTRAN-like format specification expected after variable names."
 msgstr ""
 msgid "At least one variable must be specified."
 msgstr ""
 
-#: src/data-list.c:372 src/print.c:331
+#: src/data-list.c:372 src/print.c:321
 msgid ""
 "Variables are specified on records that should not exist according to "
 "RECORDS subcommand."
 msgstr ""
 
-#: src/data-list.c:410 src/data-list.c:424 src/print.c:508 src/print.c:521
+#: src/data-list.c:410 src/data-list.c:424 src/print.c:498 src/print.c:511
 msgid "Column positions for fields must be positive."
 msgstr ""
 
 msgid "The ending column for a field must be greater than the starting column."
 msgstr ""
 
-#: src/data-list.c:443 src/print.c:598
+#: src/data-list.c:443 src/print.c:588
 #, 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
+#: src/data-list.c:463 src/print.c:539
 msgid "A format specifier on this line has extra characters on the end."
 msgstr ""
 
-#: src/data-list.c:478 src/print.c:565
+#: src/data-list.c:478 src/print.c:555
 msgid "The value for number of decimal places must be at least 1."
 msgstr ""
 
-#: src/data-list.c:492 src/print.c:578
+#: src/data-list.c:492 src/print.c:568
 #, c-format
 msgid "Input format %s doesn't accept decimal places."
 msgstr ""
 
-#: src/data-list.c:539 src/data-list.c:635 src/data-list.c:857
+#: src/data-list.c:539 src/data-list.c:635 src/data-list.c:856
 #, c-format
 msgid "%s is a duplicate variable name."
 msgstr ""
 "names."
 msgstr ""
 
-#: src/data-list.c:739 src/print.c:771
+#: src/data-list.c:739 src/print.c:761
 msgid ""
 "There aren't enough format specifications to match the number of variable "
 "names given."
 msgstr ""
 
-#: 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:1011
-#: src/descript.q:791
+#: src/data-list.c:768 src/data-list.c:898 src/descript.c:826 src/print.c:792
+#: src/sysfile-info.c:132 src/sysfile-info.c:365 src/vfm.c:833
 msgid "Variable"
 msgstr ""
 
-#: src/data-list.c:769 src/print.c:804
+#: src/data-list.c:769 src/print.c:793
 msgid "Record"
 msgstr ""
 
-#: src/data-list.c:770 src/print.c:805
+#: src/data-list.c:770 src/print.c:794
 msgid "Columns"
 msgstr ""
 
-#: src/data-list.c:771 src/data-list.c:900 src/print.c:806
+#: src/data-list.c:771 src/data-list.c:899 src/print.c:795
 msgid "Format"
 msgstr ""
 
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/data-list.c:923
+#: src/data-list.c:922
 #, c-format
 msgid "Reading free-form data from file %s."
 msgstr ""
 
-#: src/data-list.c:924
+#: src/data-list.c:923
 msgid "Reading free-form data from the command file."
 msgstr ""
 
-#: src/data-list.c:971 src/matrix-data.c:923
+#: src/data-list.c:969 src/matrix-data.c:923
 msgid "Scope of string exceeds line."
 msgstr ""
 
-#: src/data-list.c:1039
+#: src/data-list.c:1038
 #, c-format
 msgid "Partial case of %d of %d records discarded."
 msgstr ""
 
-#: src/data-list.c:1090
+#: src/data-list.c:1089
 #, c-format
 msgid "Partial case discarded.  The first variable missing was %s."
 msgstr ""
 
-#: src/data-list.c:1133
+#: src/data-list.c:1132
 #, 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:1210
+#: src/data-list.c:1209
 msgid "Attempt to read past end of file."
 msgstr ""
 
-#: src/data-list.c:1353
+#: src/data-list.c:1349
 msgid ""
 "REPEATING DATA must use the same file as its corresponding DATA LIST or FILE "
 "TYPE."
 msgstr ""
 
-#: src/data-list.c:1387
+#: src/data-list.c:1383
 #, c-format
 msgid "STARTS beginning column (%d) exceeds STARTS ending column (%d)."
 msgstr ""
 
-#: src/data-list.c:1443
+#: src/data-list.c:1439
 #, c-format
 msgid "CONTINUED beginning column (%d) exceeds CONTINUED ending column (%d)."
 msgstr ""
 
-#: src/data-list.c:1466
+#: src/data-list.c:1462
 #, c-format
 msgid "ID beginning column (%ld) must be positive."
 msgstr ""
 
-#: src/data-list.c:1481
+#: src/data-list.c:1477
 #, c-format
 msgid "ID ending column (%ld) must be positive."
 msgstr ""
 
-#: src/data-list.c:1487
+#: src/data-list.c:1483
 #, c-format
 msgid "ID ending column (%ld) cannot be less than ID beginning column (%d)."
 msgstr ""
 
-#: src/data-list.c:1527
+#: src/data-list.c:1523
 msgid "Missing required specification STARTS."
 msgstr ""
 
-#: src/data-list.c:1529
+#: src/data-list.c:1525
 msgid "Missing required specification OCCURS."
 msgstr ""
 
-#: src/data-list.c:1536
+#: src/data-list.c:1532
 msgid "ID specified without CONTINUED."
 msgstr ""
 
-#: src/data-list.c:1628
+#: src/data-list.c:1624
 msgid "String variable not allowed here."
 msgstr ""
 
-#: src/data-list.c:1638
+#: src/data-list.c:1634
 #, c-format
 msgid "%s (%d) must be at least 1."
 msgstr ""
 
-#: src/data-list.c:1644
+#: src/data-list.c:1640
 #, c-format
 msgid "Variable or integer expected for %s."
 msgstr ""
 
-#: src/data-list.c:1782
+#: src/data-list.c:1778
 #, c-format
 msgid "Encountered mismatched record ID \"%s\" expecting \"%s\"."
 msgstr ""
 
-#: src/data-list.c:1814
+#: src/data-list.c:1810
 #, c-format
 msgid ""
 "Variable %s starting in column %d extends beyond physical record length of %"
 "d."
 msgstr ""
 
-#: src/data-list.c:1882
+#: src/data-list.c:1878
 #, c-format
 msgid "Invalid value %d for OCCURS."
 msgstr ""
 
-#: src/data-list.c:1888
+#: src/data-list.c:1884
 #, c-format
 msgid "Beginning column for STARTS (%d) must be at least 1."
 msgstr ""
 
-#: src/data-list.c:1896
+#: src/data-list.c:1892
 #, c-format
 msgid "Ending column for STARTS (%d) is less than beginning column (%d)."
 msgstr ""
 
-#: src/data-list.c:1904
+#: src/data-list.c:1900
 #, c-format
 msgid "Invalid value %d for LENGTH."
 msgstr ""
 
-#: src/data-list.c:1911
+#: src/data-list.c:1907
 #, c-format
 msgid "Beginning column for CONTINUED (%d) must be at least 1."
 msgstr ""
 
-#: src/data-list.c:1919
+#: src/data-list.c:1915
 #, c-format
 msgid "Ending column for CONTINUED (%d) is less than beginning column (%d)."
 msgstr ""
 
-#: src/data-list.c:1951
+#: src/data-list.c:1947
 #, 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:1970
+#: src/data-list.c:1966
 #, c-format
 msgid "Unexpected end of file with %d repetitions remaining out of %d."
 msgstr ""
 
-#: src/data-out.c:231 src/sfm-read.c:470 src/sysfile-info.c:116
+#: src/data-out.c:235 src/sfm-read.c:472 src/sysfile-info.c:113
 msgid "Unknown"
 msgstr ""
 
-#: src/data-out.c:339
+#: src/data-out.c:343
 msgid ""
 "The N output format cannot be used to output a negative number or the system-"
 "missing value."
 msgstr ""
 
-#: src/data-out.c:450
+#: src/data-out.c:454
 #, c-format
 msgid ""
 "Quality of zoned decimal (Z) output format code is suspect.  Check your "
 "results. Report bugs to %s."
 msgstr ""
 
-#: src/data-out.c:458
+#: src/data-out.c:462
 msgid "The system-missing value cannot be output as a zoned decimal number."
 msgstr ""
 
-#: src/data-out.c:471
+#: src/data-out.c:475
 #, c-format
 msgid "Number %g too big to fit in field with format Z%d.%d."
 msgstr ""
 
-#: src/data-out.c:863
+#: src/data-out.c:867
 #, c-format
 msgid "Time value %g too large in magnitude to convert to alphanumeric time."
 msgstr ""
 
-#: src/data-out.c:914
+#: src/data-out.c:918
 #, c-format
 msgid "Weekday index %f does not lie between 1 and 7."
 msgstr ""
 
-#: src/data-out.c:934
+#: src/data-out.c:938
 #, c-format
 msgid "Month index %f does not lie between 1 and 12."
 msgstr ""
 
-#: src/data-out.c:1047
+#: src/data-out.c:1051
 #, c-format
 msgid ""
 "Year %d cannot be represented in four digits for output formatting purposes."
 msgstr ""
 
+#: src/date.c:32
+msgid "Only USE ALL is currently implemented."
+msgstr ""
+
+#: src/descript.c:83 src/frequencies.q:95 src/t-test.q:632 src/t-test.q:655
+#: src/t-test.q:744 src/t-test.q:1059
+msgid "Mean"
+msgstr ""
+
+#: src/descript.c:84
+msgid "S E Mean"
+msgstr ""
+
+#: src/descript.c:85 src/frequencies.q:99
+msgid "Std Dev"
+msgstr ""
+
+#: src/descript.c:86 src/frequencies.q:100
+msgid "Variance"
+msgstr ""
+
+#: src/descript.c:87 src/frequencies.q:101
+msgid "Kurtosis"
+msgstr ""
+
+#: src/descript.c:88
+msgid "S E Kurt"
+msgstr ""
+
+#: src/descript.c:89 src/frequencies.q:103
+msgid "Skewness"
+msgstr ""
+
+#: src/descript.c:90
+msgid "S E Skew"
+msgstr ""
+
+#: src/descript.c:91 src/frequencies.q:105
+msgid "Range"
+msgstr ""
+
+#: src/descript.c:92 src/frequencies.q:106
+msgid "Minimum"
+msgstr ""
+
+#: src/descript.c:93 src/frequencies.q:107
+msgid "Maximum"
+msgstr ""
+
+#: src/descript.c:94 src/frequencies.q:108
+msgid "Sum"
+msgstr ""
+
+#: src/descript.c:320
+#, c-format
+msgid "Z-score variable name %s would bea duplicate variable name."
+msgstr ""
+
+#: src/descript.c:337 src/list.q:143
+msgid "No variables specified."
+msgstr ""
+
+#: src/descript.c:390
+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.c:427
+msgid "expecting statistic name"
+msgstr ""
+
+#: src/descript.c:498
+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.c:529
+msgid "Mapping of variables to corresponding Z-scores."
+msgstr ""
+
+#: src/descript.c:534
+msgid "Source"
+msgstr ""
+
+#: src/descript.c:535
+msgid "Target"
+msgstr ""
+
+#: src/descript.c:612 src/descript.c:618
+msgid "Z-score of "
+msgstr ""
+
+#: src/descript.c:829
+msgid "Valid N"
+msgstr ""
+
+#: src/descript.c:830
+msgid "Missing N"
+msgstr ""
+
+#: src/descript.c:856
+#, 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'..."
 msgid "Cannot open first page on DEVIND device %s."
 msgstr ""
 
-#: src/dfm.c:74
+#: src/dfm.c:77
 #, c-format
 msgid "%s: Closing data-file handle %s."
 msgstr ""
 
-#: src/dfm.c:96
-msgid "<<Bug in dfm.c>>"
+#: src/dfm.c:103
+#, c-format
+msgid "Cannot read from file %s already opened for %s."
 msgstr ""
 
-#: src/dfm.c:118
+#: src/dfm.c:120
 #, c-format
 msgid "%s: Opening data-file handle %s for reading."
 msgstr ""
 
-#: src/dfm.c:135 src/dfm.c:152
-msgid "BEGIN DATA expected."
+#: src/dfm.c:135
+#, c-format
+msgid "Could not open \"%s\" for reading as a data file: %s."
 msgstr ""
 
-#: src/dfm.c:172
+#: src/dfm.c:164
 #, c-format
-msgid "An error occurred while opening \"%s\" for reading as a data file: %s."
+msgid "Cannot write to file %s already opened for %s."
 msgstr ""
 
-#: src/dfm.c:201
+#: src/dfm.c:181
 #, c-format
 msgid "%s: Opening data-file handle %s for writing."
 msgstr ""
 
-#: src/dfm.c:207
+#: src/dfm.c:187
 msgid "Cannot open the inline file for writing."
 msgstr ""
 
-#: src/dfm.c:222
+#: src/dfm.c:201
 #, c-format
 msgid "An error occurred while opening \"%s\" for writing as a data file: %s."
 msgstr ""
 
-#: src/dfm.c:367
+#: src/dfm.c:361 src/dfm.c:378
+msgid "BEGIN DATA expected."
+msgstr ""
+
+#: src/dfm.c:387
 msgid ""
 "Unexpected end-of-file while reading data in BEGIN DATA.  This probably "
 "indicates a missing or misformatted END DATA command.  END DATA must appear "
 "by itself on a single line with exactly one space between words."
 msgstr ""
 
-#: src/dfm.c:400 src/dfm.c:421
+#: src/dfm.c:420 src/dfm.c:442
 #, c-format
 msgid "Error reading file %s: %s."
 msgstr ""
 
-#: src/dfm.c:424
+#: src/dfm.c:445
 #, c-format
 msgid "%s: Partial record at end of file."
 msgstr ""
 
-#: src/dfm.c:482
-#, c-format
-msgid "Cannot read from file %s already opened for %s."
-msgstr ""
-
-#: src/dfm.c:496
+#: src/dfm.c:506
 #, c-format
 msgid "Attempt to read beyond end-of-file on file %s."
 msgstr ""
 
-#: src/dfm.c:590
-#, c-format
-msgid "Cannot write to file %s already opened for %s."
-msgstr ""
-
-#: src/dfm.c:614
+#: src/dfm.c:604
 #, c-format
 msgid "Error writing file %s: %s."
 msgstr ""
 
-#: src/dfm.c:656
+#: src/dfm.c:654
 msgid ""
 "This command is not valid here since the current input program does not "
 "access the inline file."
 msgstr ""
 
-#: src/dfm.c:663
+#: src/dfm.c:661
 msgid "inline file: Opening for reading."
 msgstr ""
 
-#: src/dfm.c:677
+#: src/dfm.c:674
 msgid "Skipping remaining inline data."
 msgstr ""
 
-#: src/dfm.c:689
+#: src/dfm.c:686
 msgid "reading as a data file"
 msgstr ""
 
-#: src/dfm.c:696
+#: src/dfm.c:693
 msgid "writing as a data file"
 msgstr ""
 
 msgid "End of command expected."
 msgstr ""
 
-#: src/do-if.c:163
+#: src/do-if.c:161
 msgid "There is no DO IF to match with this ELSE."
 msgstr ""
 
-#: src/do-if.c:169
+#: src/do-if.c:167
 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:206
+#: src/do-if.c:202
 msgid "There is no DO IF to match with this END IF."
 msgstr ""
 
-#: src/do-if.c:294
+#: src/do-if.c:288
 #, c-format
 msgid "DO IF %d: true\n"
 msgstr ""
 
-#: src/do-if.c:299
+#: src/do-if.c:293
 #, c-format
 msgid "DO IF %d: false\n"
 msgstr ""
 
-#: src/do-if.c:304
+#: src/do-if.c:298
 #, c-format
 msgid "DO IF %d: missing\n"
 msgstr ""
 
-#: src/error.c:115
+#: src/error.c:117
 msgid "Terminating NOW due to a fatal error!"
 msgstr ""
 
-#: src/error.c:192
+#: src/error.c:194
 msgid "Terminating execution of syntax file due to error."
 msgstr ""
 
-#: src/error.c:194
+#: src/error.c:196
 #, c-format
 msgid "Errors (%d) exceeds limit (%d)."
 msgstr ""
 
-#: src/error.c:197
+#: src/error.c:199
 #, c-format
 msgid "Warnings (%d) exceed limit (%d)."
 msgstr ""
 
-#: src/error.c:255
+#: src/error.c:257
 msgid "fatal"
 msgstr ""
 
-#: src/error.c:257 src/error.c:264 src/error.c:267 src/expr-prs.c:1464
+#: src/error.c:259 src/error.c:266 src/error.c:269 src/expr-prs.c:1283
 msgid "error"
 msgstr ""
 
-#: src/error.c:258 src/error.c:265 src/error.c:268
+#: src/error.c:260 src/error.c:267 src/error.c:270
 msgid "warning"
 msgstr ""
 
-#: src/error.c:259 src/error.c:269
+#: src/error.c:261 src/error.c:271
 msgid "note"
 msgstr ""
 
-#: src/error.c:261 src/error.c:262
+#: src/error.c:263 src/error.c:264
 msgid "installation error"
 msgstr ""
 
-#: src/expr-evl.c:1116
+#: src/expr-evl.c:632
+msgid "TIME.HMS cannot mix positive and negative in its arguments."
+msgstr ""
+
+#: src/expr-evl.c:696
+msgid "Week argument to WKYR must be in range 0 to 53."
+msgstr ""
+
+#: src/expr-evl.c:847 src/expr-evl.c:903
+msgid "Argument 3 of RINDEX may not be system-missing."
+msgstr ""
+
+#: src/expr-evl.c:857 src/expr-evl.c:913
+msgid ""
+"Argument 3 of RINDEX must be between 1 and the length of argument 2, and it "
+"must evenly divide the length of argument 2."
+msgstr ""
+
+#: src/expr-evl.c:1099
 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:1160
+#: src/expr-evl.c:1140
 #, 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:1164
+#: src/expr-evl.c:1144
 #, 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:1182
+#: src/expr-evl.c:1163
 #, 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:1187
+#: src/expr-evl.c:1168
 #, c-format
 msgid ""
 "%g is not a valid index value for vector %s.  The result will be set to the "
 "empty string."
 msgstr ""
 
-#: src/expr-opt.c:662
-msgid ""
-"While optimizing a constant expression, there was a bad value for the third "
-"argument to INDEX."
-msgstr ""
-
-#: src/expr-opt.c:687
-msgid ""
-"While optimizing a constant expression, there was a bad value for the third "
-"argument to RINDEX."
-msgstr ""
-
-#: src/expr-opt.c:746
-#, c-format
-msgid "Third argument to %cPAD() must be at least one character in length."
-msgstr ""
-
-#: src/expr-opt.c:779
-#, c-format
-msgid "Second argument to %cTRIM() must be at least one character in length."
-msgstr ""
-
-#: src/expr-opt.c:880
+#: src/expr-opt.c:679
 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."
 
 #: src/expr-prs.c:141
 msgid ""
-"A string expression was supplied in a place where a Boolean expression was "
-"expected."
+"Type mismatch: expression has string type, but a numeric value is required "
+"here."
 msgstr ""
 
 #: src/expr-prs.c:152
 msgid ""
-"A numeric expression was expected in a place where one was not supplied."
-msgstr ""
-
-#: src/expr-prs.c:160
-msgid "A string expression was expected in a place where one was not supplied."
+"Type mismatch: expression has numeric type, but a string value is required "
+"here."
 msgstr ""
 
-#: src/expr-prs.c:174
-msgid "The OR operator cannot take string operands."
-msgstr ""
-
-#: src/expr-prs.c:222
-msgid "The AND operator cannot take string operands."
+#: src/expr-prs.c:211
+#, c-format
+msgid "Type mismatch: operands of %s operator must be strings."
 msgstr ""
 
-#: src/expr-prs.c:271
-msgid "The NOT operator cannot take a string operand."
+#: src/expr-prs.c:214
+#, c-format
+msgid "Type mismatch: operands of %s operator must be numeric."
 msgstr ""
 
-#: src/expr-prs.c:298
+#: src/expr-prs.c:395
 msgid ""
-"Strings cannot be compared with numeric or Boolean values with the "
-"relational operators = >= > <= < <>."
-msgstr ""
-
-#: src/expr-prs.c:355
-msgid "The `+' and `-' operators may only be used with numeric operands."
-msgstr ""
-
-#: src/expr-prs.c:407
-msgid "The `*' and `/' operators may only be used with numeric operands."
-msgstr ""
-
-#: src/expr-prs.c:458
-msgid "The unary minus (-) operator can only take a numeric operand."
+"Chaining relational operators (e.g. \"a < b < c\") will not produce the "
+"mathematically expected result.  Use the AND logical operator to fix the "
+"problem (e.g. \"a < b AND b < c\").  If chaining is really intended, "
+"parentheses will disable this warning (e.g. \"(a < b) < c\".)"
 msgstr ""
 
-#: src/expr-prs.c:488
-msgid "Both operands to the ** operator must be numeric."
-msgstr ""
-
-#: src/expr-prs.c:582
-msgid "Use of $LENGTH is obsolete, returning default of 66."
-msgstr ""
-
-#: src/expr-prs.c:587
-msgid "Use of $WIDTH is obsolete, returning default of 131."
+#: src/expr-prs.c:475
+msgid ""
+"The exponentiation operator (\"**\") is left-associative, even though right-"
+"associative semantics are more useful.  That is, \"a**b**c\" equals \"(a**b)"
+"**c\", not as \"a**(b**c)\".  To disable this warning, insert parentheses."
 msgstr ""
 
-#: src/expr-prs.c:592
+#: src/expr-prs.c:556
 #, c-format
 msgid "Unknown system variable %s."
 msgstr ""
 
-#: src/expr-prs.c:631
+#: src/expr-prs.c:595
 msgid "expecting variable name"
 msgstr ""
 
-#: src/expr-prs.c:673
+#: src/expr-prs.c:638
 msgid "in expression"
 msgstr ""
 
-#: src/expr-prs.c:854
+#: src/expr-prs.c:734
 msgid "Argument 2 to LAG must be a small positive integer constant."
 msgstr ""
 
-#: src/expr-prs.c:927 src/expr-prs.c:966
+#: src/expr-prs.c:815 src/expr-prs.c:854
 #, c-format
 msgid ""
 "Type mismatch in argument %d of %s, which was expected to be of %s type.  It "
 "was actually of %s type. "
 msgstr ""
 
-#: src/expr-prs.c:953
+#: src/expr-prs.c:841
 #, c-format
 msgid "%s cannot take Boolean operands."
 msgstr ""
 
-#: src/expr-prs.c:985
+#: src/expr-prs.c:873
 msgid "in function call"
 msgstr ""
 
-#: src/expr-prs.c:999
+#: src/expr-prs.c:887
 msgid "RANGE requires an odd number of arguments, but at least three."
 msgstr ""
 
-#: src/expr-prs.c:1009
+#: src/expr-prs.c:897
 #, c-format
 msgid "%s requires at least two arguments."
 msgstr ""
 
-#: src/expr-prs.c:1024
+#: src/expr-prs.c:912
 #, c-format
 msgid "%s.%d requires at least %d arguments."
 msgstr ""
 
-#: src/expr-prs.c:1066
+#: src/expr-prs.c:977
 #, c-format
 msgid ""
 "Argument %d to CONCAT is type %s.  All arguments to CONCAT must be strings."
 msgstr ""
 
-#: src/expr-prs.c:1125
+#: src/expr-prs.c:1074
 #, c-format
 msgid ""
 "Argument %d to %s was expected to be of %s type.  It was actually of type %s."
 msgstr ""
 
-#: src/expr-prs.c:1144
+#: src/expr-prs.c:1091
 #, c-format
 msgid "%s is not a numeric format."
 msgstr ""
 
-#: src/expr-prs.c:1170
+#: src/expr-prs.c:1129
 #, c-format
 msgid "Too few arguments to function %s."
 msgstr ""
 
-#: src/expr-prs.c:1202
+#: src/expr-prs.c:1162
 #, c-format
 msgid ""
-"Type mismatch in argument %d of %s, which was expected to be numeric.  It "
-"was actually type %s."
+"Type mismatch in argument %d of %s.  A string expression was supplied where "
+"only a numeric expression is allowed."
 msgstr ""
 
-#: src/expr-prs.c:1211
+#: src/expr-prs.c:1172
 #, c-format
 msgid "Missing comma following argument %d of %s."
 msgstr ""
 
-#: src/expr-prs.c:1249
+#: src/expr-prs.c:1210
 msgid "The index value after a vector name must be numeric."
 msgstr ""
 
-#: src/expr-prs.c:1256
+#: src/expr-prs.c:1217
 msgid "`)' expected after a vector index value."
 msgstr ""
 
-#: src/expr-prs.c:1289
+#: src/expr-prs.c:1250
 #, c-format
 msgid "There is no function named %s."
 msgstr ""
 
-#: src/expr-prs.c:1294
+#: src/expr-prs.c:1255
 #, c-format
 msgid "Function %s may not be given a minimum number of arguments."
 msgstr ""
 
-#: src/expr-prs.c:1303
+#: src/expr-prs.c:1264
 #, c-format
 msgid "expecting `)' after %s function"
 msgstr ""
 
-#: src/expr-prs.c:1467
+#: src/expr-prs.c:1286
 msgid "Boolean"
 msgstr ""
 
-#: src/expr-prs.c:1696
+#: src/expr-prs.c:1563
 #, c-format
 msgid "!!TERMINAL!!"
 msgstr ""
 
-#: src/expr-prs.c:1722
+#: src/expr-prs.c:1589
 #, c-format
 msgid "!!SENTINEL!!"
 msgstr ""
 
-#: src/expr-prs.c:1725
+#: src/expr-prs.c:1592
 #, c-format
 msgid "!!ERROR%d!!"
 msgstr ""
 
-#: src/expr-prs.c:1743
-msgid "postfix:"
-msgstr ""
-
 #: src/filename.c:221
 #, c-format
 msgid "Searching for `%s'..."
 msgid "Found `%s'."
 msgstr ""
 
-#: src/filename.c:669
+#: src/filename.c:686
 #, c-format
 msgid "Not opening pipe file `%s' because SAFER option set."
 msgstr ""
 
-#: src/file-type.c:127
+#: src/file-type.c:126
 msgid "MIXED, GROUPED, or NESTED expected."
 msgstr ""
 
-#: src/file-type.c:150
+#: src/file-type.c:149
 msgid "The CASE subcommand is not valid on FILE TYPE MIXED."
 msgstr ""
 
-#: src/file-type.c:168
+#: src/file-type.c:167
 msgid "WARN or NOWARN expected after WILD."
 msgstr ""
 
-#: src/file-type.c:176
+#: src/file-type.c:175
 msgid "The DUPLICATE subcommand is not valid on FILE TYPE MIXED."
 msgstr ""
 
-#: src/file-type.c:190
+#: src/file-type.c:189
 msgid "DUPLICATE=CASE is only valid on FILE TYPE NESTED."
 msgstr ""
 
-#: src/file-type.c:199
+#: src/file-type.c:198
 #, c-format
 msgid "WARN%s expected after DUPLICATE."
 msgstr ""
 
-#: src/file-type.c:200
+#: src/file-type.c:199
 msgid ", NOWARN, or CASE"
 msgstr ""
 
-#: src/file-type.c:201
+#: src/file-type.c:200
 msgid " or NOWARN"
 msgstr ""
 
-#: src/file-type.c:209
+#: src/file-type.c:208
 msgid "The MISSING subcommand is not valid on FILE TYPE MIXED."
 msgstr ""
 
-#: src/file-type.c:221
+#: src/file-type.c:220
 msgid "WARN or NOWARN after MISSING."
 msgstr ""
 
-#: src/file-type.c:229
+#: src/file-type.c:228
 msgid "ORDERED is only valid on FILE TYPE GROUPED."
 msgstr ""
 
-#: src/file-type.c:240
+#: src/file-type.c:239
 msgid "YES or NO expected after ORDERED."
 msgstr ""
 
-#: src/file-type.c:246 src/file-type.c:541 src/get.c:365
+#: src/file-type.c:245 src/file-type.c:539 src/get.c:362
 msgid "while expecting a valid subcommand"
 msgstr ""
 
-#: src/file-type.c:253
+#: src/file-type.c:252
 msgid "The required RECORD subcommand was not present."
 msgstr ""
 
-#: src/file-type.c:261
+#: src/file-type.c:260
 msgid "The required CASE subcommand was not present."
 msgstr ""
 
-#: src/file-type.c:267
+#: src/file-type.c:266
 msgid "CASE and RECORD must specify different variable names."
 msgstr ""
 
-#: src/file-type.c:322
+#: src/file-type.c:323
 msgid "Column value must be positive."
 msgstr ""
 
-#: src/file-type.c:338
+#: src/file-type.c:339
 msgid "Ending column precedes beginning column."
 msgstr ""
 
-#: src/file-type.c:358
+#: src/file-type.c:359
 msgid "Bad format specifier name."
 msgstr ""
 
-#: src/file-type.c:387 src/file-type.c:578
+#: src/file-type.c:388 src/file-type.c:576
 msgid ""
 "This command may only appear within a FILE TYPE/END FILE TYPE structure."
 msgstr ""
 
-#: src/file-type.c:410
+#: src/file-type.c:411
 msgid "OTHER may appear only on the last RECORD TYPE command."
 msgstr ""
 
-#: src/file-type.c:420
+#: src/file-type.c:421
 msgid "No input commands (DATA LIST, REPEATING DATA) for above RECORD TYPE."
 msgstr ""
 
-#: src/file-type.c:474
+#: src/file-type.c:472
 msgid ""
 "The CASE subcommand is not allowed on the RECORD TYPE command for FILE TYPE "
 "MIXED."
 msgstr ""
 
-#: src/file-type.c:484
+#: src/file-type.c:482
 msgid ""
 "No variable name may be specified for the CASE subcommand on RECORD TYPE."
 msgstr ""
 
-#: src/file-type.c:492
+#: src/file-type.c:490
 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:508
+#: src/file-type.c:506
 msgid "WARN or NOWARN expected on DUPLICATE subcommand."
 msgstr ""
 
-#: src/file-type.c:522
+#: src/file-type.c:520
 msgid "WARN or NOWARN expected on MISSING subcommand."
 msgstr ""
 
-#: src/file-type.c:535
+#: src/file-type.c:533
 msgid "YES or NO expected on SPREAD subcommand."
 msgstr ""
 
-#: src/file-type.c:593
+#: src/file-type.c:589
 msgid "No input commands (DATA LIST, REPEATING DATA) on above RECORD TYPE."
 msgstr ""
 
-#: src/file-type.c:600
+#: src/file-type.c:596
 msgid "No commands between FILE TYPE and END FILE TYPE."
 msgstr ""
 
-#: src/file-type.c:669
+#: src/file-type.c:665
 #, c-format
 msgid "Unknown record type \"%.*s\"."
 msgstr ""
 
-#: src/file-type.c:693
+#: src/file-type.c:689
 #, c-format
 msgid "Unknown record type %g."
 msgstr ""
 "FLIP ignores TEMPORARY.  Temporary transformations will be made permanent."
 msgstr ""
 
-#: src/flip.c:217
+#: src/flip.c:216
 #, c-format
 msgid "Could not create acceptable variant for variable %s."
 msgstr ""
 
-#: src/flip.c:233
+#: src/flip.c:232
 msgid "Cannot create more than 99999 variable names."
 msgstr ""
 
-#: src/flip.c:277
+#: src/flip.c:276
 msgid "Could not create temporary file for FLIP."
 msgstr ""
 
-#: src/flip.c:284 src/flip.c:347
+#: src/flip.c:283 src/flip.c:346
 #, c-format
 msgid "Error writing FLIP file: %s."
 msgstr ""
 
-#: src/flip.c:389
+#: src/flip.c:388
 #, c-format
 msgid "Error rewinding FLIP file: %s."
 msgstr ""
 
-#: src/flip.c:393
+#: src/flip.c:392
 msgid "Error creating FLIP source file."
 msgstr ""
 
-#: src/flip.c:402
+#: src/flip.c:401
 #, c-format
 msgid "Error reading FLIP file: %s."
 msgstr ""
 
-#: src/flip.c:414
+#: src/flip.c:413
 #, c-format
 msgid "Error seeking FLIP source file: %s."
 msgstr ""
 
-#: src/flip.c:419
+#: src/flip.c:418
 #, c-format
 msgid "Error writing FLIP source file: %s."
 msgstr ""
 
-#: src/flip.c:430
+#: src/flip.c:429
 #, c-format
 msgid "Error rewind FLIP source file: %s."
 msgstr ""
 
-#: src/flip.c:478
+#: src/flip.c:477
 #, c-format
 msgid "Error reading FLIP temporary file: %s."
 msgstr ""
 
-#: src/flip.c:481
+#: src/flip.c:480
 msgid "Unexpected end of file reading FLIP temporary file."
 msgstr ""
 
 msgid "Data format %s is not valid."
 msgstr ""
 
-#: src/formats.c:93
+#: src/formats.c:90
 msgid "`(' expected after variable list"
 msgstr ""
 
-#: src/formats.c:102
+#: src/formats.c:99
 #, c-format
 msgid "Format %s may not be assigned to a %s variable."
 msgstr ""
 
-#: src/formats.c:123 src/numeric.c:65 src/numeric.c:137
+#: src/formats.c:120 src/numeric.c:64 src/numeric.c:135
 msgid "`)' expected after output format."
 msgstr ""
 
-#: src/formats.c:153
+#: src/formats.c:150
 #, c-format
 msgid "Formats:\n"
 msgstr ""
 
-#: src/formats.c:154
+#: src/formats.c:151
 #, c-format
 msgid "  Name      Print         Write\n"
 msgstr ""
 
-#: src/get.c:112
+#: src/get.c:111
 #, c-format
 msgid "GET translation table from file to memory:\n"
 msgstr ""
 
-#: src/get.c:117 src/get.c:1429
+#: src/get.c:116 src/get.c:1424
 #, c-format
 msgid "  %8s from %3d,%3d to %3d,%3d\n"
 msgstr ""
 
-#: src/get.c:371
+#: src/get.c:368
 msgid "All variables deleted from system file dictionary."
 msgstr ""
 
-#: src/get.c:418
+#: src/get.c:415
 #, c-format
 msgid ""
 "Cannot rename %s as %s because there already exists a variable named %s.  To "
 "as \"/RENAME (A=B)(B=C)(C=A)\", or equivalently, \"/RENAME (A B C=B C A)\"."
 msgstr ""
 
-#: src/get.c:443
+#: src/get.c:440
 msgid "`=' expected after variable list."
 msgstr ""
 
-#: src/get.c:450
+#: src/get.c:447
 #, 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:463
+#: src/get.c:460
 #, c-format
 msgid "Requested renaming duplicates variable name %s."
 msgstr ""
 
-#: src/get.c:483
+#: src/get.c:480
 #, c-format
 msgid ""
 "\n"
 "Variables in dictionary:\n"
 msgstr ""
 
-#: src/get.c:610
+#: src/get.c:604
 msgid "The BY subcommand may be given once at most."
 msgstr ""
 
-#: src/get.c:677
+#: src/get.c:671
 msgid "The active file may not be specified more than once."
 msgstr ""
 
-#: src/get.c:686
+#: src/get.c:680
 msgid "Cannot specify the active file since no active file has been defined."
 msgstr ""
 
-#: src/get.c:694
+#: src/get.c:688
 msgid ""
 "MATCH FILES may not be used after TEMPORARY when the active file is an input "
 "source.  Temporary transformations will be made permanent."
 msgstr ""
 
-#: src/get.c:727
+#: src/get.c:721
 msgid ""
 "IN, FIRST, and LAST subcommands may not occur before the first FILE or TABLE."
 msgstr ""
 
-#: src/get.c:759
+#: src/get.c:756
 #, c-format
 msgid "Multiple %s subcommands for a single FILE or TABLE."
 msgstr ""
 
-#: src/get.c:769
+#: src/get.c:766
 #, c-format
 msgid "Duplicate variable name %s while creating %s variable."
 msgstr ""
 
-#: src/get.c:783
+#: src/get.c:780
 msgid ""
 "RENAME, KEEP, and DROP subcommands may not occur before the first FILE or "
 "TABLE."
 msgstr ""
 
-#: src/get.c:807
+#: src/get.c:804
 msgid "The BY subcommand is required when a TABLE subcommand is given."
 msgstr ""
 
-#: src/get.c:828
+#: src/get.c:825
 #, c-format
 msgid "File %s lacks BY variable %s."
 msgstr ""
 
-#: src/get.c:1341
+#: src/get.c:1338
 #, 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:1391
+#: src/get.c:1386
 msgid "expecting COMM or TAPE"
 msgstr ""
 
-#: src/get.c:1424
+#: src/get.c:1419
 #, c-format
 msgid "IMPORT translation table from file to memory:\n"
 msgstr ""
 msgid "Opening `%s': %s."
 msgstr ""
 
-#: src/getline.c:332 src/html.c:330 src/postscript.c:1461
+#: src/getline.c:332 src/html.c:331 src/postscript.c:1463
 #, c-format
 msgid "Reading `%s': %s."
 msgstr ""
 msgid "Unknown configuration parameter `%s' for HTML device driver."
 msgstr ""
 
-#: src/html.c:236
+#: src/html.c:237
 msgid ""
 "Cannot find HTML prologue.  The use of `-vv' on the command line is "
 "suggested as a debugging aid."
 msgstr ""
 
-#: src/html.c:241
+#: src/html.c:242
 #, c-format
 msgid "%s: %s: Opening HTML prologue..."
 msgstr ""
 
-#: src/html.c:268 src/html.c:279 src/postscript.c:1353 src/postscript.c:1364
+#: src/html.c:269 src/html.c:280 src/postscript.c:1355 src/postscript.c:1366
 msgid "nobody"
 msgstr ""
 
-#: src/html.c:275 src/html.c:280 src/postscript.c:1360 src/postscript.c:1365
+#: src/html.c:276 src/html.c:281 src/postscript.c:1362 src/postscript.c:1367
 msgid "nowhere"
 msgstr ""
 
-#: src/html.c:339
+#: src/html.c:340
 #, c-format
 msgid "%s: HTML prologue read successfully."
 msgstr ""
 
-#: src/html.c:343
+#: src/html.c:344
 #, c-format
 msgid "%s: Error reading HTML prologue."
 msgstr ""
 
-#: src/html.c:371
+#: src/html.c:372
 #, c-format
 msgid "HTML output driver: %s: %s"
 msgstr ""
 
-#: src/html.c:402 src/list.q:259
+#: src/html.c:403 src/list.q:258
 #, c-format
 msgid "Cannot open first page on HTML device %s."
 msgstr ""
 
-#: src/include.c:51
-msgid "Unrecognized filename format."
+#: src/include.c:40
+msgid "expecting filename"
 msgstr ""
 
-#: src/inpt-pgm.c:86
+#: src/inpt-pgm.c:80
 msgid "No matching INPUT PROGRAM command."
 msgstr ""
 
-#: src/inpt-pgm.c:91
+#: src/inpt-pgm.c:85
 msgid ""
 "No data-input or transformation commands specified between INPUT PROGRAM and "
 "END INPUT PROGRAM."
 msgstr ""
 
-#: src/inpt-pgm.c:295 src/inpt-pgm.c:438
+#: src/inpt-pgm.c:286 src/inpt-pgm.c:419
 msgid ""
 "This command may only be executed between INPUT PROGRAM and END INPUT "
 "PROGRAM."
 msgstr ""
 
-#: src/inpt-pgm.c:351
+#: src/inpt-pgm.c:341
 msgid "COLUMN subcommand multiply specified."
 msgstr ""
 
-#: src/inpt-pgm.c:365
-msgid "expecting file handle name"
-msgstr ""
-
-#: src/inpt-pgm.c:410
+#: src/inpt-pgm.c:394
 msgid ""
 "REREAD: Column numbers must be positive finite numbers.  Column set to 1."
 msgstr ""
 
-#: src/lexer.c:219
+#: src/lexer.c:244
 #, c-format
 msgid "%s does not form a valid number."
 msgstr ""
 
-#: src/lexer.c:337
+#: src/lexer.c:362
 #, c-format
 msgid "Bad character in input: `%c'."
 msgstr ""
 
-#: src/lexer.c:339
+#: src/lexer.c:364
 #, c-format
 msgid "Bad character in input: `\\%o'."
 msgstr ""
 
-#: src/lexer.c:360
+#: src/lexer.c:385
 msgid "Syntax error at end of file."
 msgstr ""
 
-#: src/lexer.c:370
+#: src/lexer.c:395
 #, c-format
 msgid "Syntax error %s at `%s'."
 msgstr ""
 
-#: src/lexer.c:373
+#: src/lexer.c:398
 #, c-format
 msgid "Syntax error at `%s'."
 msgstr ""
 
-#: src/lexer.c:493
+#: src/lexer.c:518
 #, c-format
 msgid "expecting `%s'"
 msgstr ""
 
-#: src/lexer.c:510
+#: src/lexer.c:535
 #, c-format
 msgid "expecting %s"
 msgstr ""
 
-#: src/lexer.c:524 src/val-labs.c:155
+#: src/lexer.c:549 src/val-labs.c:151
 msgid "expecting string"
 msgstr ""
 
-#: src/lexer.c:538 src/val-labs.c:164
+#: src/lexer.c:563 src/val-labs.c:160
 msgid "expecting integer"
 msgstr ""
 
-#: src/lexer.c:552
+#: src/lexer.c:577
 msgid "expecting number"
 msgstr ""
 
-#: src/lexer.c:566
+#: src/lexer.c:591
 msgid "expecting identifier"
 msgstr ""
 
-#: src/lexer.c:702
-msgid "The rest of this command has been discarded."
-msgstr ""
-
-#: src/lexer.c:842 src/print.c:1154
-#, c-format
+#: src/lexer.c:860
 msgid "<ERROR>"
 msgstr ""
 
-#: src/lexer.c:968 src/pfm-read.c:132 src/repeat.c:225
+#: src/lexer.c:987 src/pfm-read.c:135 src/repeat.c:222
 msgid "Unexpected end of file."
 msgstr ""
 
-#: src/lexer.c:994
+#: src/lexer.c:1013
 msgid "binary"
 msgstr ""
 
-#: src/lexer.c:994
+#: src/lexer.c:1013
 msgid "octal"
 msgstr ""
 
-#: src/lexer.c:994
+#: src/lexer.c:1013
 msgid "hex"
 msgstr ""
 
-#: src/lexer.c:1008
+#: src/lexer.c:1027
 #, c-format
 msgid "String of %s digits has %d characters, which is not a multiple of %d."
 msgstr ""
 
-#: src/lexer.c:1037
+#: src/lexer.c:1056
 #, c-format
 msgid "`%c' is not a valid %s digit."
 msgstr ""
 
-#: src/lexer.c:1068
+#: src/lexer.c:1087
 msgid "Unterminated string constant."
 msgstr ""
 
-#: src/lexer.c:1140
+#: src/lexer.c:1159
 #, c-format
 msgid "String exceeds 255 characters in length (%d characters)."
 msgstr ""
 
-#: src/lexer.c:1155
+#: src/lexer.c:1174
 msgid ""
 "Sorry, literal strings may not contain null characters.  Replacing with "
 "spaces."
 msgstr ""
 
-#: src/loop.c:194
+#: src/loop.c:192
 msgid "The index variable may not be a string variable."
 msgstr ""
 
-#: src/loop.c:309
+#: src/loop.c:307
 msgid "There is no LOOP command that corresponds to this END LOOP."
 msgstr ""
 
-#: src/loop.c:512
+#: src/loop.c:508
 msgid ""
 "This command may only appear enclosed in a LOOP/END LOOP control structure."
 msgstr ""
 
-#: src/loop.c:518
+#: src/loop.c:514
 msgid "BREAK not enclosed in DO IF structure."
 msgstr ""
 
-#: src/loop.c:596
+#: src/loop.c:592
 #, c-format
 msgid "%s without %s."
 msgstr ""
 
-#: src/main.c:71
+#: src/main.c:64
+#, c-format
+msgid "gsl error at %s:%d; reason: \"%s\""
+msgstr ""
+
+#: src/main.c:81
 msgid "Error initializing output drivers."
 msgstr ""
 
-#: src/main.c:132
+#: src/main.c:147
 msgid "This command not executed."
 msgstr ""
 
-#: src/main.c:136
+#: src/main.c:151
 msgid ""
 "Skipping the rest of this command.  Part of this command may have been "
 "executed."
 msgstr ""
 
-#: src/main.c:141
+#: src/main.c:156
 msgid ""
 "Skipping the rest of this command.  This command was fully executed up to "
 "this point."
 msgstr ""
 
-#: src/main.c:146
+#: src/main.c:161
 msgid ""
 "Trailing garbage was encountered following this command.  The command was "
 "fully executed to this point."
 msgstr ""
 
-#: src/matrix-data.c:191
+#: src/main.c:178
+msgid "The rest of this command has been discarded."
+msgstr ""
+
+#: src/matrix-data.c:188
 msgid "VARIABLES subcommand multiply specified."
 msgstr ""
 
-#: src/matrix-data.c:206
+#: src/matrix-data.c:203
 msgid "VARNAME_ cannot be explicitly specified on VARIABLES."
 msgstr ""
 
-#: src/matrix-data.c:271
+#: src/matrix-data.c:268
 msgid "in FORMAT subcommand"
 msgstr ""
 
-#: src/matrix-data.c:282
+#: src/matrix-data.c:279
 msgid "SPLIT subcommand multiply specified."
 msgstr ""
 
-#: src/matrix-data.c:289
+#: src/matrix-data.c:286
 msgid "in SPLIT subcommand"
 msgstr ""
 
-#: src/matrix-data.c:298
+#: src/matrix-data.c:295
 msgid "Split variable may not be named ROWTYPE_ or VARNAME_."
 msgstr ""
 
-#: src/matrix-data.c:331
+#: src/matrix-data.c:328
 #, c-format
 msgid "Split variable %s is already another type."
 msgstr ""
 
-#: src/matrix-data.c:346
+#: src/matrix-data.c:343
 msgid "FACTORS subcommand multiply specified."
 msgstr ""
 
-#: src/matrix-data.c:361
+#: src/matrix-data.c:358
 #, c-format
 msgid "Factor variable %s is already another type."
 msgstr ""
 
-#: src/matrix-data.c:376
+#: src/matrix-data.c:373
 msgid "CELLS subcommand multiply specified."
 msgstr ""
 
-#: src/matrix-data.c:382 src/matrix-data.c:401
+#: src/matrix-data.c:379 src/matrix-data.c:398
 msgid "expecting positive integer"
 msgstr ""
 
-#: src/matrix-data.c:395
+#: src/matrix-data.c:392
 msgid "N subcommand multiply specified."
 msgstr ""
 
-#: src/matrix-data.c:416
+#: src/matrix-data.c:413
 msgid "CONTENTS subcommand multiply specified."
 msgstr ""
 
-#: src/matrix-data.c:436
+#: src/matrix-data.c:433
 msgid "Nested parentheses not allowed."
 msgstr ""
 
-#: src/matrix-data.c:446
+#: src/matrix-data.c:443
 msgid "Mismatched right parenthesis (`(')."
 msgstr ""
 
-#: src/matrix-data.c:451
+#: src/matrix-data.c:448
 msgid "Empty parentheses not allowed."
 msgstr ""
 
-#: src/matrix-data.c:464 src/matrix-data.c:472
+#: src/matrix-data.c:461 src/matrix-data.c:469
 msgid "in CONTENTS subcommand"
 msgstr ""
 
-#: src/matrix-data.c:479
+#: src/matrix-data.c:476
 #, c-format
 msgid "Content multiply specified for %s."
 msgstr ""
 
-#: src/matrix-data.c:496
+#: src/matrix-data.c:493
 msgid "Missing right parenthesis."
 msgstr ""
 
-#: src/matrix-data.c:516
+#: src/matrix-data.c:513
 msgid "Missing VARIABLES subcommand."
 msgstr ""
 
-#: src/matrix-data.c:522
+#: src/matrix-data.c:519
 msgid ""
 "CONTENTS subcommand not specified: assuming file contains only CORR matrix."
 msgstr ""
 
-#: src/matrix-data.c:532
+#: src/matrix-data.c:529
 msgid ""
 "Missing CELLS subcommand.  CELLS is required when ROWTYPE_ is not given in "
 "the data and factors are present."
 msgstr ""
 
-#: src/matrix-data.c:540
+#: src/matrix-data.c:537
 msgid "Split file values must be present in the data when ROWTYPE_ is present."
 msgstr ""
 
-#: src/matrix-data.c:595
+#: src/matrix-data.c:592
 msgid "No continuous variables specified."
 msgstr ""
 
 msgid "End of line expected %s while reading %s."
 msgstr ""
 
-#: src/matrix-data.c:1174
+#: src/matrix-data.c:1176
 #, c-format
 msgid "expecting value for %s %s"
 msgstr ""
 
-#: src/matrix-data.c:1336
+#: src/matrix-data.c:1338
 #, c-format
 msgid "Syntax error expecting SPLIT FILE value %s."
 msgstr ""
 
-#: src/matrix-data.c:1345
+#: src/matrix-data.c:1347
 #, c-format
 msgid "Expecting value %g for %s."
 msgstr ""
 
-#: src/matrix-data.c:1386 src/matrix-data.c:1854
+#: src/matrix-data.c:1388 src/matrix-data.c:1856
 #, c-format
 msgid "Syntax error expecting factor value %s."
 msgstr ""
 
-#: src/matrix-data.c:1395
+#: src/matrix-data.c:1397
 #, c-format
 msgid "Syntax error expecting value %g for %s %s."
 msgstr ""
 
-#: src/matrix-data.c:1631
+#: src/matrix-data.c:1633
 #, c-format
 msgid "Syntax error %s expecting SPLIT FILE value."
 msgstr ""
 
-#: src/matrix-data.c:1761
+#: src/matrix-data.c:1763
 #, 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:1796
+#: src/matrix-data.c:1798
 #, c-format
 msgid "Multiply specified ROWTYPE_ %s."
 msgstr ""
 
-#: src/matrix-data.c:1801
+#: src/matrix-data.c:1803
 #, c-format
 msgid "Syntax error %s expecting ROWTYPE_ string."
 msgstr ""
 
-#: src/matrix-data.c:1821
+#: src/matrix-data.c:1823
 #, c-format
 msgid "Syntax error %s."
 msgstr ""
 
-#: src/matrix-data.c:1971
+#: src/matrix-data.c:1973
 #, c-format
 msgid "Duplicate specification for %s."
 msgstr ""
 
-#: src/matrix-data.c:1983
+#: src/matrix-data.c:1985
 #, c-format
 msgid "Too many rows of matrix data for %s."
 msgstr ""
 
-#: src/matrix-data.c:2029
+#: src/matrix-data.c:2033
 #, c-format
 msgid "Syntax error expecting value for %s %s."
 msgstr ""
 
-#: src/mis-val.c:77
+#: src/mis-val.c:75
 msgid "`)' expected after value specification."
 msgstr ""
 
-#: src/mis-val.c:111
+#: src/mis-val.c:109
 #, c-format
 msgid "`(' expected after variable name%s."
 msgstr ""
 
-#: src/mis-val.c:123
+#: src/mis-val.c:121
 msgid "Long string value specified."
 msgstr ""
 
-#: src/mis-val.c:128
+#: src/mis-val.c:126
 msgid "Short strings must be of equal width."
 msgstr ""
 
-#: src/mis-val.c:185
+#: src/mis-val.c:183
 #, c-format
 msgid "Range %g THRU %g is not valid because %g is greater than %g."
 msgstr ""
 
-#: src/mis-val.c:216
+#: src/mis-val.c:214
 msgid "Number or range expected."
 msgstr ""
 
-#: src/mis-val.c:249
+#: src/mis-val.c:247
 msgid "At most one range can exist in the missing values for any one variable."
 msgstr ""
 
-#: src/mis-val.c:255
+#: src/mis-val.c:253
 msgid "At most one individual value can be missing along with one range."
 msgstr ""
 
-#: src/mis-val.c:317
+#: src/mis-val.c:315
 msgid "String is not of proper length."
 msgstr ""
 
-#: src/mis-val.c:326 src/repeat.c:476
+#: src/mis-val.c:324 src/repeat.c:473
 msgid "String expected."
 msgstr ""
 
-#: src/mis-val.c:366
+#: src/mis-val.c:364
 msgid "Missing value:"
 msgstr ""
 
-#: src/mis-val.c:371
+#: src/mis-val.c:369
 msgid "(long string variable)"
 msgstr ""
 
-#: src/mis-val.c:376
+#: src/mis-val.c:374
 #, c-format
 msgid "(no missing values)\n"
 msgstr ""
 
-#: src/mis-val.c:399
+#: src/mis-val.c:397
 #, c-format
 msgid "(!!!INTERNAL ERROR--%d!!!)\n"
 msgstr ""
 "be made permanent."
 msgstr ""
 
-#: src/modify-vars.c:115
+#: src/modify-vars.c:112
 msgid "REORDER subcommand may be given at most once."
 msgstr ""
 
-#: src/modify-vars.c:138
+#: src/modify-vars.c:135
 msgid "Cannot specify ALL after specifying a set of variables."
 msgstr ""
 
-#: src/modify-vars.c:148
+#: src/modify-vars.c:145
 msgid "`(' expected on REORDER subcommand."
 msgstr ""
 
-#: src/modify-vars.c:160
+#: src/modify-vars.c:157
 msgid "`)' expected following variable names on REORDER subcommand."
 msgstr ""
 
-#: src/modify-vars.c:178
+#: src/modify-vars.c:175
 msgid "RENAME subcommand may be given at most once."
 msgstr ""
 
-#: src/modify-vars.c:191
+#: src/modify-vars.c:188
 msgid "`(' expected on RENAME subcommand."
 msgstr ""
 
-#: src/modify-vars.c:199
+#: src/modify-vars.c:196
 msgid ""
 "`=' expected between lists of new and old variable names on RENAME "
 "subcommand."
 msgstr ""
 
-#: src/modify-vars.c:207 src/rename-vars.c:77
+#: src/modify-vars.c:204 src/rename-vars.c:74
 #, c-format
 msgid ""
 "Differing number of variables in old name list (%d) and in new name list (%"
 "d)."
 msgstr ""
 
-#: src/modify-vars.c:218
+#: src/modify-vars.c:215
 msgid "`)' expected after variable lists on RENAME subcommand."
 msgstr ""
 
-#: src/modify-vars.c:232
+#: src/modify-vars.c:229
 msgid ""
 "KEEP subcommand may be given at most once.  It may notbe given in "
 "conjunction with the DROP subcommand."
 msgstr ""
 
-#: src/modify-vars.c:274
+#: src/modify-vars.c:271
 msgid ""
 "DROP subcommand may be given at most once.  It may not be given in "
 "conjunction with the KEEP subcommand."
 msgstr ""
 
-#: src/modify-vars.c:300
+#: src/modify-vars.c:297
 #, c-format
 msgid "Unrecognized subcommand name `%s'."
 msgstr ""
 
-#: src/modify-vars.c:302
+#: src/modify-vars.c:299
 msgid "Subcommand name expected."
 msgstr ""
 
-#: src/modify-vars.c:310
+#: src/modify-vars.c:307
 msgid "`/' or `.' expected."
 msgstr ""
 
-#: src/numeric.c:58
+#: src/moments.c:350
+msgid "expecting weight value"
+msgstr ""
+
+#: src/numeric.c:57
 #, c-format
 msgid "Format type %s may not be used with a numeric variable."
 msgstr ""
 
-#: src/numeric.c:77 src/numeric.c:159 src/vector.c:157
+#: src/numeric.c:76 src/numeric.c:158 src/vector.c:155
 #, c-format
 msgid "There is already a variable named %s."
 msgstr ""
 
-#: src/numeric.c:130
+#: src/numeric.c:128
 #, c-format
 msgid "Format type %s may not be used with a string variable."
 msgstr ""
 msgid "%s: Opening device description file..."
 msgstr ""
 
-#: src/output.c:304 src/output.c:1165 src/postscript.c:1097
+#: src/output.c:304 src/output.c:1165 src/postscript.c:1099
 #, c-format
 msgid "Opening %s: %s."
 msgstr ""
 
-#: src/output.c:315 src/output.c:1176 src/postscript.c:1112
+#: src/output.c:315 src/output.c:1176 src/postscript.c:1114
 #, c-format
 msgid "Reading %s: %s."
 msgstr ""
 msgid "Syntax error."
 msgstr ""
 
-#: src/output.c:347 src/postscript.c:1123
+#: src/output.c:347 src/postscript.c:1125
 #, c-format
 msgid "Closing %s: %s."
 msgstr ""
 msgid "Error opening page on %s device of %s class."
 msgstr ""
 
-#: src/pfm-read.c:89
+#: src/pfm-read.c:91
 #, c-format
 msgid "portable file %s corrupt at offset %ld: "
 msgstr ""
 
-#: src/pfm-read.c:108 src/pfm-write.c:502
+#: src/pfm-read.c:110 src/pfm-write.c:504
 #, c-format
 msgid "%s: Closing portable file: %s."
 msgstr ""
 
-#: src/pfm-read.c:140
+#: src/pfm-read.c:143
 msgid "Bad line end."
 msgstr ""
 
-#: src/pfm-read.c:221
+#: src/pfm-read.c:224
 #, c-format
 msgid "Cannot read file %s as portable file: already opened for %s."
 msgstr ""
 
-#: src/pfm-read.c:227
+#: src/pfm-read.c:230
 #, c-format
 msgid "%s: Opening portable-file handle %s for reading."
 msgstr ""
 
-#: src/pfm-read.c:235
+#: src/pfm-read.c:238
 #, c-format
 msgid ""
 "An error occurred while opening \"%s\" for reading as a portable file: %s."
 msgstr ""
 
-#: src/pfm-read.c:269
+#: src/pfm-read.c:273
 msgid "Data record expected."
 msgstr ""
 
-#: src/pfm-read.c:271
+#: src/pfm-read.c:275
 msgid "Read portable-file dictionary successfully."
 msgstr ""
 
-#: src/pfm-read.c:280
+#: src/pfm-read.c:284
 msgid "Error reading portable-file dictionary."
 msgstr ""
 
-#: src/pfm-read.c:378
+#: src/pfm-read.c:382
 msgid "Missing numeric terminator."
 msgstr ""
 
-#: src/pfm-read.c:415
+#: src/pfm-read.c:419
 msgid "Bad integer format."
 msgstr ""
 
-#: src/pfm-read.c:445
+#: src/pfm-read.c:449
 #, c-format
 msgid "Bad string length %d."
 msgstr ""
 
-#: src/pfm-read.c:544
+#: src/pfm-read.c:548
 #, c-format
 msgid "Bad date string length %d."
 msgstr ""
 
-#: src/pfm-read.c:548
+#: src/pfm-read.c:552
 msgid "Bad character in date."
 msgstr ""
 
-#: src/pfm-read.c:568
+#: src/pfm-read.c:572
 #, c-format
 msgid "Bad time string length %d."
 msgstr ""
 
-#: src/pfm-read.c:572
+#: src/pfm-read.c:576
 msgid "Bad character in time."
 msgstr ""
 
-#: src/pfm-read.c:622 src/pfm-read.c:629 src/sfm-read.c:900 src/sfm-read.c:908
+#: src/pfm-read.c:626 src/pfm-read.c:633 src/sfm-read.c:918 src/sfm-read.c:926
 #, c-format
 msgid "%s: Bad format specifier byte (%d)."
 msgstr ""
 
-#: src/pfm-read.c:631
+#: src/pfm-read.c:635
 #, c-format
 msgid "%s variable %s has %s format specifier %s."
 msgstr ""
 
-#: src/pfm-read.c:632 src/print.c:610 src/sfm-read.c:912
+#: src/pfm-read.c:636 src/print.c:600 src/sfm-read.c:931
 msgid "String"
 msgstr ""
 
-#: src/pfm-read.c:632 src/print.c:610 src/sfm-read.c:912
+#: src/pfm-read.c:636 src/print.c:600 src/sfm-read.c:931
 msgid "Numeric"
 msgstr ""
 
-#: src/pfm-read.c:671
+#: src/pfm-read.c:675
 msgid "Expected variable count record."
 msgstr ""
 
-#: src/pfm-read.c:675
+#: src/pfm-read.c:679
 #, c-format
 msgid "Invalid number of variables %d."
 msgstr ""
 
-#: src/pfm-read.c:685
+#: src/pfm-read.c:689
 #, c-format
 msgid "Unexpected flag value %d."
 msgstr ""
 
-#: src/pfm-read.c:699
+#: src/pfm-read.c:703
 #, c-format
 msgid "Weight variable name (%s) truncated."
 msgstr ""
 
-#: src/pfm-read.c:714
+#: src/pfm-read.c:718
 msgid "Expected variable record."
 msgstr ""
 
-#: src/pfm-read.c:720
+#: src/pfm-read.c:724
 #, c-format
 msgid "Invalid variable width %d."
 msgstr ""
 
-#: src/pfm-read.c:738
+#: src/pfm-read.c:742
 #, c-format
 msgid "position %d: Variable name has %u characters."
 msgstr ""
 
-#: src/pfm-read.c:742
+#: src/pfm-read.c:746
 #, c-format
 msgid "position %d: Variable name begins with invalid character."
 msgstr ""
 
-#: src/pfm-read.c:746
+#: src/pfm-read.c:750
 #, c-format
 msgid "position %d: Variable name begins with lowercase letter %c."
 msgstr ""
 
-#: src/pfm-read.c:759
+#: src/pfm-read.c:763
 #, c-format
 msgid "position %d: Variable name character %d is lowercase letter %c."
 msgstr ""
 
-#: src/pfm-read.c:769
+#: src/pfm-read.c:773
 #, c-format
 msgid "position %d: character `\\%03o' is not valid in a variable name."
 msgstr ""
 
-#: src/pfm-read.c:780
+#: src/pfm-read.c:784
 #, c-format
 msgid "Duplicate variable name %s."
 msgstr ""
 
-#: src/pfm-read.c:824
+#: src/pfm-read.c:828
 #, c-format
 msgid "Bad missing values for %s."
 msgstr ""
 
-#: src/pfm-read.c:847
+#: src/pfm-read.c:851
 #, c-format
 msgid "Weighting variable %s not present in dictionary."
 msgstr ""
 
-#: src/pfm-read.c:920
+#: src/pfm-read.c:924
 #, c-format
 msgid "Unknown variable %s while parsing value labels."
 msgstr ""
 
-#: src/pfm-read.c:923
+#: src/pfm-read.c:927
 #, c-format
 msgid ""
 "Cannot assign value labels to %s and %s, which have different variable types "
 "or widths."
 msgstr ""
 
-#: src/pfm-read.c:956
+#: src/pfm-read.c:960
 #, c-format
 msgid "Duplicate label for value %g for variable %s."
 msgstr ""
 
-#: src/pfm-read.c:959
+#: src/pfm-read.c:963
 #, c-format
 msgid "Duplicate label for value `%.*s' for variable %s."
 msgstr ""
 
-#: src/pfm-read.c:1029
+#: src/pfm-read.c:1033
 msgid "End of file midway through case."
 msgstr ""
 
-#: src/pfm-read.c:1039
+#: src/pfm-read.c:1043
 msgid "reading as a portable file"
 msgstr ""
 
 "An error occurred while opening \"%s\" for writing as a portable file: %s."
 msgstr ""
 
-#: src/pfm-write.c:123
+#: src/pfm-write.c:124
 msgid "Wrote portable-file header successfully."
 msgstr ""
 
-#: src/pfm-write.c:128
+#: src/pfm-write.c:129
 msgid "Error writing portable-file header."
 msgstr ""
 
-#: src/pfm-write.c:169
+#: src/pfm-write.c:170
 #, c-format
 msgid "%s: Writing portable file: %s."
 msgstr ""
 
-#: src/pfm-write.c:511
+#: src/pfm-write.c:514
 msgid "writing as a portable file"
 msgstr ""
 
 msgid "Unknown value for `line-style'.  Valid values are `thick' and `double'."
 msgstr ""
 
-#: src/postscript.c:685
+#: src/postscript.c:686
 #, c-format
 msgid ""
 "Default font size must be at least 1 point (value of 1000 for key `%s')."
 msgstr ""
 
-#: src/postscript.c:717
+#: src/postscript.c:718
 #, c-format
 msgid "Value for `%s' must be a dimension of positive length (i.e., `1in')."
 msgstr ""
 
-#: src/postscript.c:780
+#: src/postscript.c:782
 #, c-format
 msgid "Nonnegative integer required as value for `%s'."
 msgstr ""
 
-#: src/postscript.c:906
+#: src/postscript.c:908
 #, c-format
 msgid "%s: %s: Opening PostScript font encoding..."
 msgstr ""
 
-#: src/postscript.c:912
+#: src/postscript.c:914
 #, c-format
 msgid ""
 "PostScript driver: Cannot open encoding file `%s': %s.  Substituting "
 "ISOLatin1Encoding for missing encoding."
 msgstr ""
 
-#: src/postscript.c:954
+#: src/postscript.c:956
 msgid "PostScript driver: Invalid numeric format."
 msgstr ""
 
-#: src/postscript.c:959
+#: src/postscript.c:961
 #, c-format
 msgid ""
 "PostScript driver: Codes must be between 0 and 255.  (%d is not allowed.)"
 msgstr ""
 
-#: src/postscript.c:995
+#: src/postscript.c:997
 #, c-format
 msgid "PostScript driver: Error closing encoding file `%s'."
 msgstr ""
 
-#: src/postscript.c:998
+#: src/postscript.c:1000
 #, c-format
 msgid "%s: PostScript font encoding read successfully."
 msgstr ""
 
-#: src/postscript.c:1092
+#: src/postscript.c:1094
 #, c-format
 msgid "%s: %s: Opening PostScript encoding list file."
 msgstr ""
 
-#: src/postscript.c:1125
+#: src/postscript.c:1127
 #, c-format
 msgid "%s: PostScript encoding list file read successfully."
 msgstr ""
 
-#: src/postscript.c:1139
+#: src/postscript.c:1141
 msgid "<<default encoding>>"
 msgstr ""
 
-#: src/postscript.c:1297
+#: src/postscript.c:1299
 msgid ""
 "Cannot find PostScript prologue.  The use of `-vv' on the command line is "
 "suggested as a debugging aid."
 msgstr ""
 
-#: src/postscript.c:1302
+#: src/postscript.c:1304
 #, c-format
 msgid "%s: %s: Opening PostScript prologue..."
 msgstr ""
 
-#: src/postscript.c:1474
+#: src/postscript.c:1476
 #, c-format
 msgid "%s: PostScript prologue read successfully."
 msgstr ""
 
-#: src/postscript.c:1478
+#: src/postscript.c:1480
 #, c-format
 msgid "%s: Error reading PostScript prologue."
 msgstr ""
 
-#: src/postscript.c:1648
+#: src/postscript.c:1650
 #, c-format
 msgid "PostScript output driver: %s: %s"
 msgstr ""
 
-#: src/postscript.c:2332
+#: src/postscript.c:2334
 #, c-format
 msgid "PostScript driver: Cannot find encoding `%s' for PostScript font `%s'."
 msgstr ""
 
-#: src/print.c:188
+#: src/print.c:179
 msgid "expecting a valid subcommand"
 msgstr ""
 
-#: src/print.c:368 src/print.c:385
+#: src/print.c:358 src/print.c:375
 #, c-format
 msgid "%g is not a valid column location."
 msgstr ""
 
-#: src/print.c:379
+#: src/print.c:369
 #, c-format
 msgid "Column location expected following `%d-'."
 msgstr ""
 
-#: src/print.c:390
+#: src/print.c:380
 #, 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:496
+#: src/print.c:486
 #, 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:526
+#: src/print.c:516
 msgid ""
 "The ending column for a field must not be less than the starting column."
 msgstr ""
 
-#: src/print.c:609
+#: src/print.c:599
 #, c-format
 msgid "%s variables cannot be displayed with format %s."
 msgstr ""
 
-#: src/print.c:687
+#: src/print.c:677
 msgid ""
 "The number of format specifications exceeds the number of variable names "
 "given."
 msgstr ""
 
-#: src/print.c:696
+#: src/print.c:686
 #, c-format
 msgid "Display format %s may not be used with a %s variable."
 msgstr ""
 
-#: src/print.c:846
+#: src/print.c:834
 #, c-format
-msgid "Writing %3d records to file %s."
+msgid "Writing %d record(s) to file %s."
 msgstr ""
 
-#: src/print.c:847
+#: src/print.c:837
 #, c-format
-msgid "Writing %3d records to the listing file."
-msgstr ""
-
-#: src/print.c:1042
-msgid "A file name or handle was expected in the OUTFILE subcommand."
+msgid "Writing %d record(s) to the listing file."
 msgstr ""
 
-#: src/print.c:1095
+#: src/print.c:1079
 #, 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:283
+#: src/recode.c:281
 #, 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:297
+#: src/recode.c:295
 #, c-format
 msgid ""
 "There is no string variable named %s.  (All string variables specified on "
 "variable.)"
 msgstr ""
 
-#: src/recode.c:306
+#: src/recode.c:304
 #, 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:325
+#: src/recode.c:323
 #, c-format
 msgid "Type mismatch after INTO: %s is not a numeric variable."
 msgstr ""
 
-#: src/recode.c:355
+#: src/recode.c:353
 msgid ""
 "INTO must be used when the input values are numeric and output values are "
 "string."
 msgstr ""
 
-#: src/recode.c:363
+#: src/recode.c:361
 msgid ""
 "INTO must be used when the input values are string and output values are "
 "numeric."
 msgstr ""
 
-#: src/recode.c:486
+#: src/recode.c:484
 msgid "expecting output value"
 msgstr ""
 
-#: src/recode.c:500
+#: src/recode.c:498
 msgid ""
 "Inconsistent output types.  The output values must be all numeric or all "
 "string."
 msgstr ""
 
-#: src/recode.c:551
+#: src/recode.c:549
 msgid "following LO THRU"
 msgstr ""
 
-#: src/recode.c:567 src/recode.c:596
+#: src/recode.c:565 src/recode.c:594
 msgid "in source value"
 msgstr ""
 
-#: src/recode.c:609
+#: src/recode.c:607
 msgid ""
 "Keyword CONVERT may only be used with string input values and numeric output "
 "values."
 "be made permanent."
 msgstr ""
 
-#: src/rename-vars.c:62
+#: src/rename-vars.c:59
 msgid "`(' expected."
 msgstr ""
 
-#: src/rename-vars.c:70
+#: src/rename-vars.c:67
 msgid "`=' expected between lists of new and old variable names."
 msgstr ""
 
-#: src/rename-vars.c:88
+#: src/rename-vars.c:85
 msgid "`)' expected after variable names."
 msgstr ""
 
-#: src/rename-vars.c:98
+#: src/rename-vars.c:95
 #, c-format
 msgid "Renaming would duplicate variable name %s."
 msgstr ""
 
-#: src/repeat.c:158
+#: src/repeat.c:155
 #, c-format
 msgid "Identifier %s is given twice."
 msgstr ""
 
-#: src/repeat.c:201
+#: src/repeat.c:198
 #, c-format
 msgid ""
 "There must be the same number of substitutions for each dummy variable "
 "s as well, but %d were specified."
 msgstr ""
 
-#: src/repeat.c:310
+#: src/repeat.c:307
 msgid "No commands in scope."
 msgstr ""
 
-#: src/repeat.c:503
+#: src/repeat.c:500
 msgid "No matching DO REPEAT."
 msgstr ""
 
-#: src/sample.c:71
+#: src/sample.c:69
 msgid "The sampling factor must be between 0 and 1 exclusive."
 msgstr ""
 
-#: src/sample.c:91
+#: src/sample.c:89
 #, c-format
 msgid "Cannot sample %d observations from a population of %d."
 msgstr ""
 
-#: src/sel-if.c:104
+#: src/sel-if.c:99
 msgid "The filter variable must be numeric."
 msgstr ""
 
-#: src/sel-if.c:110
+#: src/sel-if.c:105
 msgid "The filter variable may not be scratch."
 msgstr ""
 
-#: src/sel-if.c:144
+#: src/sel-if.c:136
 msgid "Only last instance of this command is in effect."
 msgstr ""
 
 msgid "corrupt system file: "
 msgstr ""
 
-#: src/sfm-read.c:166 src/sfm-write.c:739
+#: src/sfm-read.c:166 src/sfm-write.c:743
 #, c-format
 msgid "%s: Closing system file: %s."
 msgstr ""
 
-#: src/sfm-read.c:239
+#: src/sfm-read.c:240
 #, c-format
 msgid "Cannot read file %s as system file: already opened for %s."
 msgstr ""
 
-#: src/sfm-read.c:244
+#: src/sfm-read.c:245
 #, c-format
 msgid "%s: Opening system-file handle %s for reading."
 msgstr ""
 
-#: src/sfm-read.c:252
+#: src/sfm-read.c:253
 #, c-format
 msgid ""
 "An error occurred while opening \"%s\" for reading as a system file: %s."
 msgstr ""
 
-#: src/sfm-read.c:286
+#: src/sfm-read.c:288
 #, c-format
 msgid ""
 "%s: Weighting variable may not be a continuation of a long string variable."
 msgstr ""
 
-#: src/sfm-read.c:289
+#: src/sfm-read.c:291
 #, c-format
 msgid "%s: Weighting variable may not be a string variable."
 msgstr ""
 
-#: src/sfm-read.c:314
+#: src/sfm-read.c:316
 #, c-format
 msgid ""
 "%s: Orphaned variable index record (type 4).  Type 4 records must always "
 "immediately follow type 3 records."
 msgstr ""
 
-#: src/sfm-read.c:369
+#: src/sfm-read.c:365
 #, c-format
 msgid "%s: Unrecognized record type 7, subtype %d encountered in system file."
 msgstr ""
 
-#: src/sfm-read.c:393
+#: src/sfm-read.c:390
 #, c-format
 msgid "%s: Unrecognized record type %d."
 msgstr ""
 
-#: src/sfm-read.c:399
+#: src/sfm-read.c:397
 msgid "Read system-file dictionary successfully."
 msgstr ""
 
-#: src/sfm-read.c:409
+#: src/sfm-read.c:407
 msgid "Error reading system-file header."
 msgstr ""
 
-#: src/sfm-read.c:433
+#: src/sfm-read.c:431
 #, c-format
 msgid ""
 "%s: Bad size (%d) or count (%d) field on record type 7, subtype 3.\tExpected "
 "size %d, count 8."
 msgstr ""
 
-#: src/sfm-read.c:445
+#: src/sfm-read.c:443
 #, c-format
 msgid ""
 "%s: Floating-point representation in system file is not IEEE-754.  PSPP "
 "cannot convert between floating-point formats."
 msgstr ""
 
-#: src/sfm-read.c:460
+#: src/sfm-read.c:459
 #, c-format
 msgid ""
 "%s: File-indicated endianness (%s) does not match endianness intuited from "
 msgid "%s: File-indicated character representation code (%s) is not ASCII."
 msgstr ""
 
-#: src/sfm-read.c:470
+#: src/sfm-read.c:472
 msgid "DEC Kanji"
 msgstr ""
 
-#: src/sfm-read.c:489
+#: src/sfm-read.c:491
 #, c-format
 msgid ""
 "%s: Bad size (%d) or count (%d) field on record type 7, subtype 4.\tExpected "
 "size %d, count 8."
 msgstr ""
 
-#: src/sfm-read.c:504
+#: src/sfm-read.c:506
 #, c-format
 msgid ""
 "%s: File-indicated value is different from internal value for at least one "
 "%g; LOWEST: %g, %g."
 msgstr ""
 
-#: src/sfm-read.c:535
+#: src/sfm-read.c:537
 #, c-format
 msgid ""
 "%s: Bad magic.  Proper system files begin with the four characters `$FL2'. "
 "This file will not be read."
 msgstr ""
 
-#: src/sfm-read.c:578
+#: src/sfm-read.c:580
 #, c-format
 msgid ""
 "%s: File layout code has unexpected value %d.  Value should be 2, in big-"
 "endian or little-endian format."
 msgstr ""
 
-#: src/sfm-read.c:594
+#: src/sfm-read.c:596
 #, c-format
 msgid "%s: Number of elements per case (%d) is not between 1 and %d."
 msgstr ""
 
-#: src/sfm-read.c:601
+#: src/sfm-read.c:605
 #, c-format
 msgid ""
 "%s: Index of weighting variable (%d) is not between 0 and number of elements "
 "per case (%d)."
 msgstr ""
 
-#: src/sfm-read.c:607
+#: src/sfm-read.c:611
 #, c-format
 msgid "%s: Number of cases in file (%ld) is not between -1 and %d."
 msgstr ""
 
-#: src/sfm-read.c:612
+#: src/sfm-read.c:616
 #, c-format
 msgid "%s: Compression bias (%g) is not the usual value of 100."
 msgstr ""
 
-#: src/sfm-read.c:705
+#: src/sfm-read.c:710
 #, c-format
 msgid "%s: position %d: Bad record type (%d); the expected value was 2."
 msgstr ""
 
-#: src/sfm-read.c:714
+#: src/sfm-read.c:720
 #, c-format
 msgid ""
 "%s: position %d: String variable does not have proper number of continuation "
 "records."
 msgstr ""
 
-#: src/sfm-read.c:722
+#: src/sfm-read.c:729
 #, c-format
 msgid "%s: position %d: Superfluous long string continuation record."
 msgstr ""
 
-#: src/sfm-read.c:727
+#: src/sfm-read.c:735
 #, c-format
 msgid "%s: position %d: Bad variable type code %d."
 msgstr ""
 
-#: src/sfm-read.c:730
+#: src/sfm-read.c:738
 #, c-format
 msgid "%s: position %d: Variable label indicator field is not 0 or 1."
 msgstr ""
 
-#: src/sfm-read.c:734
+#: src/sfm-read.c:742
 #, c-format
 msgid ""
 "%s: position %d: Missing value indicator field is not -3, -2, 0, 1, 2, or 3."
 msgstr ""
 
-#: src/sfm-read.c:740
+#: src/sfm-read.c:748
 #, c-format
 msgid "%s: position %d: Variable name begins with invalid character."
 msgstr ""
 
-#: src/sfm-read.c:743
+#: src/sfm-read.c:752
 #, c-format
 msgid "%s: position %d: Variable name begins with lowercase letter %c."
 msgstr ""
 
-#: src/sfm-read.c:746
+#: src/sfm-read.c:756
 #, c-format
 msgid ""
 "%s: position %d: Variable name begins with octothorpe (`#').  Scratch "
 "variables should not appear in system files."
 msgstr ""
 
-#: src/sfm-read.c:760
+#: src/sfm-read.c:771
 #, c-format
 msgid "%s: position %d: Variable name character %d is lowercase letter %c."
 msgstr ""
 
-#: src/sfm-read.c:768
+#: src/sfm-read.c:780
 #, c-format
 msgid ""
 "%s: position %d: character `\\%03o' (%c) is not valid in a variable name."
 msgstr ""
 
-#: src/sfm-read.c:776
+#: src/sfm-read.c:789
 #, c-format
 msgid "%s: Duplicate variable name `%s' within system file."
 msgstr ""
 
-#: src/sfm-read.c:801
+#: src/sfm-read.c:814
 #, c-format
 msgid "%s: Variable %s indicates variable label of invalid length %d."
 msgstr ""
 
-#: src/sfm-read.c:817
+#: src/sfm-read.c:831
 #, c-format
 msgid "%s: Long string variable %s may not have missing values."
 msgstr ""
 
-#: src/sfm-read.c:841
+#: src/sfm-read.c:856
 #, c-format
 msgid ""
 "%s: String variable %s may not have missing values specified as a range."
 msgstr ""
 
-#: src/sfm-read.c:878
+#: src/sfm-read.c:894
 #, c-format
 msgid "%s: Long string continuation records omitted at end of dictionary."
 msgstr ""
 
-#: src/sfm-read.c:881
+#: src/sfm-read.c:898
 #, c-format
 msgid ""
 "%s: System file header indicates %d variable positions but %d were read from "
 "file."
 msgstr ""
 
-#: src/sfm-read.c:911
+#: src/sfm-read.c:929
 #, c-format
 msgid "%s: %s variable %s has %s format specifier %s."
 msgstr ""
 
-#: src/sfm-read.c:990
+#: src/sfm-read.c:1009
 #, 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:1000
+#: src/sfm-read.c:1020
 #, 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:1016
+#: src/sfm-read.c:1036
 #, 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:1023
+#: src/sfm-read.c:1043
 #, 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:1027
+#: src/sfm-read.c:1048
 #, c-format
 msgid "%s: Value labels are not allowed on long string variables (%s)."
 msgstr ""
 
-#: src/sfm-read.c:1037
+#: src/sfm-read.c:1059
 #, 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:1077
+#: src/sfm-read.c:1100
 #, c-format
 msgid "%s: File contains duplicate label for value %g for variable %s."
 msgstr ""
 
-#: src/sfm-read.c:1080
+#: src/sfm-read.c:1104
 #, c-format
 msgid "%s: File contains duplicate label for value `%.*s' for variable %s."
 msgstr ""
 
-#: src/sfm-read.c:1117 src/sfm-read.c:1392
+#: src/sfm-read.c:1141 src/sfm-read.c:1424
 #, c-format
 msgid "%s: Reading system file: %s."
 msgstr ""
 
-#: src/sfm-read.c:1119 src/sfm-read.c:1301 src/sfm-read.c:1342
+#: src/sfm-read.c:1144 src/sfm-read.c:1331 src/sfm-read.c:1373
 #, c-format
 msgid "%s: Unexpected end of file."
 msgstr ""
 
-#: src/sfm-read.c:1137
+#: src/sfm-read.c:1163
 #, c-format
 msgid "%s: System file contains multiple type 6 (document) records."
 msgstr ""
 
-#: src/sfm-read.c:1142
+#: src/sfm-read.c:1169
 #, c-format
 msgid "%s: Number of document lines (%ld) must be greater than 0."
 msgstr ""
 
-#: src/sfm-read.c:1166
+#: src/sfm-read.c:1194
 msgid "dictionary:\n"
 msgstr ""
 
-#: src/sfm-read.c:1174
+#: src/sfm-read.c:1202
 msgid "num"
 msgstr ""
 
-#: src/sfm-read.c:1175
+#: src/sfm-read.c:1203
 msgid "str"
 msgstr ""
 
-#: src/sfm-read.c:1178
+#: src/sfm-read.c:1206
 msgid "left"
 msgstr ""
 
-#: src/sfm-read.c:1178
+#: src/sfm-read.c:1206
 msgid "right"
 msgstr ""
 
-#: src/sfm-read.c:1184
+#: src/sfm-read.c:1212
 msgid "none"
 msgstr ""
 
-#: src/sfm-read.c:1188
+#: src/sfm-read.c:1216
 msgid "one"
 msgstr ""
 
-#: src/sfm-read.c:1192
+#: src/sfm-read.c:1220
 msgid "two"
 msgstr ""
 
-#: src/sfm-read.c:1196
+#: src/sfm-read.c:1224
 msgid "three"
 msgstr ""
 
-#: src/sfm-read.c:1200 src/descript.q:166
+#: src/sfm-read.c:1228
 msgid "range"
 msgstr ""
 
-#: src/sfm-read.c:1204
+#: src/sfm-read.c:1232
 msgid "low"
 msgstr ""
 
-#: src/sfm-read.c:1208
+#: src/sfm-read.c:1236
 msgid "high"
 msgstr ""
 
-#: src/sfm-read.c:1212
+#: src/sfm-read.c:1240
 msgid "range+1"
 msgstr ""
 
-#: src/sfm-read.c:1216
+#: src/sfm-read.c:1244
 msgid "low+1"
 msgstr ""
 
-#: src/sfm-read.c:1220
+#: src/sfm-read.c:1248
 msgid "high+1"
 msgstr ""
 
-#: src/sfm-read.c:1254
+#: src/sfm-read.c:1282
 #, c-format
 msgid "%s: Error reading file: %s."
 msgstr ""
 
-#: src/sfm-read.c:1292
+#: src/sfm-read.c:1321
 #, c-format
-msgid "%s: Compressed data is corrupted.  Data ends partway through a case."
+msgid "%s: Compressed data is corrupted.  Data ends in partial case."
 msgstr ""
 
-#: src/sfm-read.c:1394
+#: src/sfm-read.c:1427
 #, c-format
 msgid "%s: Partial record at end of system file."
 msgstr ""
 
-#: src/sfm-read.c:1432
+#: src/sfm-read.c:1466
 msgid "reading as a system file"
 msgstr ""
 
 msgid "Cannot write file %s as system file: already opened for %s."
 msgstr ""
 
-#: src/sfm-write.c:100
+#: src/sfm-write.c:101
 #, c-format
 msgid "%s: Opening system-file handle %s for writing."
 msgstr ""
 
-#: src/sfm-write.c:110
+#: src/sfm-write.c:111
 #, c-format
 msgid ""
 "An error occurred while opening \"%s\" for writing as a system file: %s."
 msgstr ""
 
-#: src/sfm-write.c:163
+#: src/sfm-write.c:165
 msgid "Wrote system-file header successfully."
 msgstr ""
 
-#: src/sfm-write.c:168
+#: src/sfm-write.c:170
 msgid "Error writing system-file header."
 msgstr ""
 
-#: src/sfm-write.c:603
+#: src/sfm-write.c:606
 #, c-format
 msgid "%s: Writing system file: %s."
 msgstr ""
 
-#: src/sfm-write.c:749
+#: src/sfm-write.c:754
 msgid "writing as a system file"
 msgstr ""
 
-#: src/sort.c:82
+#: src/sort.c:83
 msgid ""
 "SORT CASES may not be used after TEMPORARY.  Temporary transformations will "
 "be made permanent."
 msgstr ""
 
-#: src/sort.c:127
+#: src/sort.c:128
 msgid "`A' or `D' expected inside parentheses."
 msgstr ""
 
-#: src/sort.c:132
+#: src/sort.c:133
 msgid "`)' expected."
 msgstr ""
 
-#: src/sort.c:421
+#: src/sort.c:439
 #, c-format
 msgid "%s: Creating temporary directory: %s."
 msgstr ""
 
-#: src/sort.c:452
+#: src/sort.c:470
 #, c-format
 msgid "Generating temporary directory name failed: %s."
 msgstr ""
 
-#: src/sort.c:460
+#: src/sort.c:478
 #, c-format
 msgid "Creating temporary directory failed: %s."
 msgstr ""
 
-#: src/sort.c:512
+#: src/sort.c:530
 #, c-format
 msgid "%s: Error removing directory for temporary files: %s."
 msgstr ""
 
-#: src/sort.c:541
+#: src/sort.c:559
 #, c-format
 msgid "%s: Error opening temporary file for %s: %s."
 msgstr ""
 
-#: src/sort.c:558
+#: src/sort.c:576
 #, c-format
 msgid "%s: Error closing temporary file: %s."
 msgstr ""
 
-#: src/sort.c:574
+#: src/sort.c:592
 #, c-format
 msgid "%s: Error removing temporary file: %s."
 msgstr ""
 
-#: src/sort.c:590
+#: src/sort.c:608
 #, c-format
 msgid "%s: Error writing temporary file: %s."
 msgstr ""
 
-#: src/sort.c:608
+#: src/sort.c:626
 #, c-format
 msgid "%s: Error reading temporary file: %s."
 msgstr ""
 
-#: src/sort.c:611
+#: src/sort.c:629
 #, c-format
 msgid "%s: Unexpected end of temporary file."
 msgstr ""
 
-#: src/sort.c:806 src/sort.c:1037
+#: src/sort.c:824 src/sort.c:1055
 #, 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.)"
 msgstr ""
 
-#: src/sysfile-info.c:97
+#: src/sysfile-info.c:94
 msgid "File:"
 msgstr ""
 
-#: src/sysfile-info.c:99
+#: src/sysfile-info.c:96
 msgid "Label:"
 msgstr ""
 
-#: src/sysfile-info.c:103
+#: src/sysfile-info.c:100
 msgid "No label."
 msgstr ""
 
-#: src/sysfile-info.c:106
+#: src/sysfile-info.c:103
 msgid "Created:"
 msgstr ""
 
-#: src/sysfile-info.c:109
+#: src/sysfile-info.c:106
 msgid "Endian:"
 msgstr ""
 
-#: src/sysfile-info.c:110
+#: src/sysfile-info.c:107
 msgid "Big."
 msgstr ""
 
-#: src/sysfile-info.c:110
+#: src/sysfile-info.c:107
 msgid "Little."
 msgstr ""
 
-#: src/sysfile-info.c:111
+#: src/sysfile-info.c:108
 msgid "Variables:"
 msgstr ""
 
-#: src/sysfile-info.c:114
+#: src/sysfile-info.c:111
 msgid "Cases:"
 msgstr ""
 
-#: src/sysfile-info.c:117
+#: src/sysfile-info.c:114
 msgid "Type:"
 msgstr ""
 
-#: src/sysfile-info.c:118
+#: src/sysfile-info.c:115
 msgid "System File."
 msgstr ""
 
-#: src/sysfile-info.c:119
+#: src/sysfile-info.c:116
 msgid "Weight:"
 msgstr ""
 
-#: src/sysfile-info.c:123
+#: src/sysfile-info.c:120
 msgid "Not weighted."
 msgstr ""
 
-#: src/sysfile-info.c:125
+#: src/sysfile-info.c:122
 msgid "Mode:"
 msgstr ""
 
-#: src/sysfile-info.c:127
+#: src/sysfile-info.c:124
 #, c-format
 msgid "Compression %s."
 msgstr ""
 
-#: src/sysfile-info.c:127
+#: src/sysfile-info.c:124
 msgid "on"
 msgstr ""
 
-#: src/sysfile-info.c:127
+#: src/sysfile-info.c:124
 msgid "off"
 msgstr ""
 
-#: src/sysfile-info.c:136 src/sysfile-info.c:375
+#: src/sysfile-info.c:133 src/sysfile-info.c:370
 msgid "Description"
 msgstr ""
 
-#: src/sysfile-info.c:137 src/sysfile-info.c:373
+#: src/sysfile-info.c:134 src/sysfile-info.c:368
 msgid "Position"
 msgstr ""
 
-#: src/sysfile-info.c:196
+#: src/sysfile-info.c:191
 msgid "The active file does not have a file label."
 msgstr ""
 
-#: src/sysfile-info.c:199
+#: src/sysfile-info.c:194
 msgid "File label:"
 msgstr ""
 
-#: src/sysfile-info.c:261
+#: src/sysfile-info.c:256
 msgid "No variables to display."
 msgstr ""
 
-#: src/sysfile-info.c:280
+#: src/sysfile-info.c:275
 msgid "Macros not supported."
 msgstr ""
 
-#: src/sysfile-info.c:290
+#: src/sysfile-info.c:285
 msgid "The active file dictionary does not contain any documents."
 msgstr ""
 
-#: src/sysfile-info.c:299
+#: src/sysfile-info.c:294
 msgid "Documents in the active file:"
 msgstr ""
 
-#: src/sysfile-info.c:377 src/sysfile-info.c:535 src/vfm.c:1013
+#: src/sysfile-info.c:372 src/sysfile-info.c:530 src/vfm.c:835
 msgid "Label"
 msgstr ""
 
-#: src/sysfile-info.c:449
+#: src/sysfile-info.c:444
 #, c-format
 msgid "Format: %s"
 msgstr ""
 
-#: src/sysfile-info.c:456
+#: src/sysfile-info.c:451
 #, c-format
 msgid "Print Format: %s"
 msgstr ""
 
-#: src/sysfile-info.c:459
+#: src/sysfile-info.c:454
 #, c-format
 msgid "Write Format: %s"
 msgstr ""
 
-#: src/sysfile-info.c:467
+#: src/sysfile-info.c:462
 msgid "Missing Values: "
 msgstr ""
 
-#: src/sysfile-info.c:534 src/vfm.c:1012 src/crosstabs.q:1159
-#: src/crosstabs.q:1186 src/crosstabs.q:1206 src/crosstabs.q:1228
-#: src/frequencies.q:1009 src/frequencies.q:1126
+#: src/sysfile-info.c:529 src/vfm.c:834 src/crosstabs.q:1158
+#: src/crosstabs.q:1185 src/crosstabs.q:1205 src/crosstabs.q:1227
+#: src/frequencies.q:1021 src/frequencies.q:1138
 msgid "Value"
 msgstr ""
 
-#: src/sysfile-info.c:591
+#: src/sysfile-info.c:586
 msgid "No vectors defined."
 msgstr ""
 
-#: src/sysfile-info.c:606
+#: src/sysfile-info.c:601
 msgid "Vector"
 msgstr ""
 
-#: src/tab.c:266
+#: src/tab.c:261
 #, c-format
 msgid "bad vline: x=%d+%d=%d y=(%d+%d=%d,%d+%d=%d) in table size (%d,%d)\n"
 msgstr ""
 
-#: src/tab.c:342
+#: src/tab.c:336
 #, c-format
 msgid ""
 "bad box: (%d+%d=%d,%d+%d=%d)-(%d+%d=%d,%d+%d=%d) in table size (%d,%d)\n"
 msgstr ""
 
-#: src/temporary.c:47
+#: src/temporary.c:45
 msgid "This command is not valid inside DO IF or LOOP."
 msgstr ""
 
-#: src/temporary.c:54
+#: src/temporary.c:52
 msgid ""
 "This command may only appear once between procedures and procedure-like "
 "commands."
 msgid "%s: `.' expected after string."
 msgstr ""
 
-#: src/title.c:82
+#: src/title.c:83
 #, c-format
 msgid "%s after: %s\n"
 msgstr ""
 
-#: src/title.c:137
+#: src/title.c:139
 #, c-format
 msgid "Document entered %s %02d:%02d:%02d by %s (%s):"
 msgstr ""
 
-#: src/val-labs.c:119
+#: src/val-labs.c:115
 #, c-format
 msgid ""
 "It is not possible to assign value labels to long string variables such as %"
 "s."
 msgstr ""
 
-#: src/val-labs.c:168
+#: src/val-labs.c:164
 #, c-format
 msgid "Value label `%g' is not integer."
 msgstr ""
 
-#: src/val-labs.c:178
+#: src/val-labs.c:174
 msgid "Truncating value label to 60 characters."
 msgstr ""
 
-#: src/var-labs.c:53
+#: src/var-labs.c:51
 msgid "String expected for variable label."
 msgstr ""
 
-#: src/var-labs.c:59
+#: src/var-labs.c:57
 msgid "Truncating variable label to 120 characters."
 msgstr ""
 
-#: src/var-labs.c:87
+#: src/var-labs.c:85
 #, c-format
 msgid "Variable labels:\n"
 msgstr ""
 
-#: src/var-labs.c:94
+#: src/var-labs.c:92
 #, c-format
 msgid "(no variable label)"
 msgstr ""
 
-#: src/vars-prs.c:49
+#: src/vars-prs.c:48
 #, c-format
 msgid "%s is not a variable name."
 msgstr ""
 
-#: src/vars-prs.c:101
+#: src/vars-prs.c:100
 msgid "ordinary"
 msgstr ""
 
-#: src/vars-prs.c:103
+#: src/vars-prs.c:102
 msgid "system"
 msgstr ""
 
-#: src/vars-prs.c:105
+#: src/vars-prs.c:104
 msgid "scratch"
 msgstr ""
 
-#: src/vars-prs.c:208
+#: src/vars-prs.c:209
 #, c-format
 msgid "%s TO %s is not valid syntax since %s precedes %s in the dictionary."
 msgstr ""
 
-#: src/vars-prs.c:218
+#: src/vars-prs.c:219
 #, c-format
 msgid ""
 "When using the TO keyword to specify several variables, both variables must "
 "system variables.  %s is a %s variable, whereas %s is %s."
 msgstr ""
 
-#: src/vars-prs.c:236
+#: src/vars-prs.c:237
 #, c-format
 msgid "Scratch variables (such as %s) are not allowed here."
 msgstr ""
 
-#: src/vars-prs.c:259
+#: src/vars-prs.c:260
 #, c-format
 msgid ""
 "%s is not a numeric variable.  It will not be included in the variable list."
 msgstr ""
 
-#: src/vars-prs.c:262
+#: src/vars-prs.c:263
 #, c-format
 msgid ""
 "%s is not a string variable.  It will not be included in the variable list."
 msgstr ""
 
-#: src/vars-prs.c:266
+#: src/vars-prs.c:267
 #, 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 ""
 
-#: src/vars-prs.c:271
+#: src/vars-prs.c:272
 #, c-format
 msgid "Variable %s appears twice in variable list."
 msgstr ""
 
-#: src/vars-prs.c:351
+#: src/vars-prs.c:352
 msgid "incorrect use of TO convention"
 msgstr ""
 
-#: src/vars-prs.c:398
+#: src/vars-prs.c:399
 msgid "Scratch variables not allowed here."
 msgstr ""
 
-#: src/vars-prs.c:420
+#: src/vars-prs.c:421
 msgid "Prefixes don't match in use of TO convention."
 msgstr ""
 
-#: src/vars-prs.c:425
+#: src/vars-prs.c:426
 msgid "Bad bounds in use of TO convention."
 msgstr ""
 
-#: src/vector.c:68
+#: src/vector.c:66
 #, c-format
 msgid "Vector name %s is given twice."
 msgstr ""
 
-#: src/vector.c:74
+#: src/vector.c:72
 #, c-format
 msgid "There is already a vector with name %s."
 msgstr ""
 
-#: src/vector.c:95
+#: src/vector.c:93
 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 ""
 
-#: src/vector.c:129
+#: src/vector.c:127
 msgid "Vectors must have at least one element."
 msgstr ""
 
-#: src/vector.c:143
+#: src/vector.c:141
 #, c-format
 msgid "%s%d is too long for a variable name."
 msgstr ""
 
-#: src/vector.c:181
+#: src/vector.c:179
 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:507
-#, c-format
-msgid ""
-"An error occurred creating a temporary file for use as the active file: %s."
-msgstr ""
-
-#: src/vfm.c:520
-#, c-format
-msgid ""
-"An error occurred writing to a temporary file used as the active file: %s."
-msgstr ""
-
-#: src/vfm.c:599
-#, c-format
-msgid ""
-"Workspace limit of %d KB (%d cases at %d bytes each) overflowed.  Writing "
-"active file to disk."
-msgstr ""
-
-#: src/vfm.c:631
-#, c-format
-msgid ""
-"An error occurred while attempting to rewind a temporary file used as the "
-"active file: %s."
-msgstr ""
-
-#: src/vfm.c:680
-#, c-format
-msgid ""
-"An error occurred while attempting to read from a temporary file created for "
-"the active file: %s."
-msgstr ""
-
-#: src/weight.c:54
+#: src/weight.c:52
 msgid "The weighting variable must be numeric."
 msgstr ""
 
-#: src/weight.c:59
+#: src/weight.c:57
 msgid "The weighting variable may not be scratch."
 msgstr ""
 
-#: src/crosstabs.q:251
+#: src/crosstabs.q:250
 msgid ""
 "Missing mode REPORT not allowed in general mode.  Assuming MISSING=TABLE."
 msgstr ""
 
-#: src/crosstabs.q:261
+#: src/crosstabs.q:260
 msgid "Write mode ALL not allowed in general mode.  Assuming WRITE=CELLS."
 msgstr ""
 
-#: src/crosstabs.q:322
+#: src/crosstabs.q:321
 msgid "expecting BY"
 msgstr ""
 
-#: src/crosstabs.q:389
+#: src/crosstabs.q:388
 msgid "VARIABLES must be specified before TABLES."
 msgstr ""
 
-#: src/crosstabs.q:426
+#: src/crosstabs.q:425
 #, c-format
 msgid "Maximum value (%ld) less than minimum value (%ld)."
 msgstr ""
 
-#: src/crosstabs.q:860
+#: src/crosstabs.q:859
 msgid "Summary."
 msgstr ""
 
-#: src/crosstabs.q:862
+#: src/crosstabs.q:861
 msgid "Cases"
 msgstr ""
 
-#: src/crosstabs.q:863 src/frequencies.q:1007
+#: src/crosstabs.q:862 src/frequencies.q:1019 src/frequencies.q:1385
 msgid "Valid"
 msgstr ""
 
-#: src/crosstabs.q:864 src/frequencies.q:1074
+#: src/crosstabs.q:863 src/frequencies.q:1086 src/frequencies.q:1386
 msgid "Missing"
 msgstr ""
 
-#: src/crosstabs.q:865 src/crosstabs.q:1068 src/crosstabs.q:1801
-#: src/frequencies.q:1083
+#: src/crosstabs.q:864 src/crosstabs.q:1067 src/crosstabs.q:1809
+#: src/frequencies.q:1095
 msgid "Total"
 msgstr ""
 
-#: src/crosstabs.q:875 src/t-test.q:657 src/t-test.q:680 src/t-test.q:771
-#: src/t-test.q:1345
+#: src/crosstabs.q:874 src/frequencies.q:1384 src/t-test.q:631
+#: src/t-test.q:654 src/t-test.q:745 src/t-test.q:1259
 msgid "N"
 msgstr ""
 
-#: src/crosstabs.q:876 src/frequencies.q:1011 src/frequencies.q:1012
-#: src/frequencies.q:1013
+#: src/crosstabs.q:875 src/frequencies.q:1023 src/frequencies.q:1024
+#: src/frequencies.q:1025
 msgid "Percent"
 msgstr ""
 
-#: src/crosstabs.q:1118
+#: src/crosstabs.q:1117
 msgid "count"
 msgstr ""
 
-#: src/crosstabs.q:1119
+#: src/crosstabs.q:1118
 msgid "row %"
 msgstr ""
 
-#: src/crosstabs.q:1120
+#: src/crosstabs.q:1119
 msgid "column %"
 msgstr ""
 
-#: src/crosstabs.q:1121
+#: src/crosstabs.q:1120
 msgid "total %"
 msgstr ""
 
-#: src/crosstabs.q:1122
+#: src/crosstabs.q:1121
 msgid "expected"
 msgstr ""
 
-#: src/crosstabs.q:1123
+#: src/crosstabs.q:1122
 msgid "residual"
 msgstr ""
 
-#: src/crosstabs.q:1124
+#: src/crosstabs.q:1123
 msgid "std. resid."
 msgstr ""
 
-#: src/crosstabs.q:1125
+#: src/crosstabs.q:1124
 msgid "adj. resid."
 msgstr ""
 
-#: src/crosstabs.q:1158 src/crosstabs.q:1185 src/crosstabs.q:1205
-#: src/crosstabs.q:1226
+#: src/crosstabs.q:1157 src/crosstabs.q:1184 src/crosstabs.q:1204
+#: src/crosstabs.q:1225
 msgid "Statistic"
 msgstr ""
 
-#: src/crosstabs.q:1160 src/t-test.q:922 src/t-test.q:1123 src/t-test.q:1229
+#: src/crosstabs.q:1159 src/t-test.q:896 src/t-test.q:1065 src/t-test.q:1157
 msgid "df"
 msgstr ""
 
-#: src/crosstabs.q:1162
+#: src/crosstabs.q:1161
 msgid "Asymp. Sig. (2-sided)"
 msgstr ""
 
-#: src/crosstabs.q:1164
+#: src/crosstabs.q:1163
 msgid "Exact. Sig. (2-sided)"
 msgstr ""
 
-#: src/crosstabs.q:1166
+#: src/crosstabs.q:1165
 msgid "Exact. Sig. (1-sided)"
 msgstr ""
 
-#: src/crosstabs.q:1184 src/crosstabs.q:1225
+#: src/crosstabs.q:1183 src/crosstabs.q:1224
 msgid "Category"
 msgstr ""
 
-#: src/crosstabs.q:1187 src/crosstabs.q:1229
+#: src/crosstabs.q:1186 src/crosstabs.q:1228
 msgid "Asymp. Std. Error"
 msgstr ""
 
-#: src/crosstabs.q:1188 src/crosstabs.q:1230
+#: src/crosstabs.q:1187 src/crosstabs.q:1229
 msgid "Approx. T"
 msgstr ""
 
-#: src/crosstabs.q:1189 src/crosstabs.q:1231
+#: src/crosstabs.q:1188 src/crosstabs.q:1230
 msgid "Approx. Sig."
 msgstr ""
 
-#: src/crosstabs.q:1204
+#: src/crosstabs.q:1203
 #, c-format
 msgid " 95%% Confidence Interval"
 msgstr ""
 
-#: src/crosstabs.q:1207 src/t-test.q:926 src/t-test.q:1120 src/t-test.q:1232
+#: src/crosstabs.q:1206 src/t-test.q:900 src/t-test.q:1062 src/t-test.q:1160
 msgid "Lower"
 msgstr ""
 
-#: src/crosstabs.q:1208 src/t-test.q:927 src/t-test.q:1121 src/t-test.q:1233
+#: src/crosstabs.q:1207 src/t-test.q:901 src/t-test.q:1063 src/t-test.q:1161
 msgid "Upper"
 msgstr ""
 
-#: src/crosstabs.q:1227
+#: src/crosstabs.q:1226
 msgid "Type"
 msgstr ""
 
-#: src/crosstabs.q:1977
+#: src/crosstabs.q:2003
 msgid "Pearson Chi-Square"
 msgstr ""
 
-#: src/crosstabs.q:1978
+#: src/crosstabs.q:2004
 msgid "Likelihood Ratio"
 msgstr ""
 
-#: src/crosstabs.q:1979
+#: src/crosstabs.q:2005
 msgid "Fisher's Exact Test"
 msgstr ""
 
-#: src/crosstabs.q:1980
+#: src/crosstabs.q:2006
 msgid "Continuity Correction"
 msgstr ""
 
-#: src/crosstabs.q:1981
+#: src/crosstabs.q:2007
 msgid "Linear-by-Linear Association"
 msgstr ""
 
-#: src/crosstabs.q:2018 src/crosstabs.q:2088 src/crosstabs.q:2147
+#: src/crosstabs.q:2044 src/crosstabs.q:2114 src/crosstabs.q:2173
 msgid "N of Valid Cases"
 msgstr ""
 
-#: src/crosstabs.q:2034 src/crosstabs.q:2163
+#: src/crosstabs.q:2060 src/crosstabs.q:2189
 msgid "Nominal by Nominal"
 msgstr ""
 
-#: src/crosstabs.q:2035 src/crosstabs.q:2164
+#: src/crosstabs.q:2061 src/crosstabs.q:2190
 msgid "Ordinal by Ordinal"
 msgstr ""
 
-#: src/crosstabs.q:2036
+#: src/crosstabs.q:2062
 msgid "Interval by Interval"
 msgstr ""
 
-#: src/crosstabs.q:2037
+#: src/crosstabs.q:2063
 msgid "Measure of Agreement"
 msgstr ""
 
-#: src/crosstabs.q:2042
+#: src/crosstabs.q:2068
 msgid "Phi"
 msgstr ""
 
-#: src/crosstabs.q:2043
+#: src/crosstabs.q:2069
 msgid "Cramer's V"
 msgstr ""
 
-#: src/crosstabs.q:2044
+#: src/crosstabs.q:2070
 msgid "Contingency Coefficient"
 msgstr ""
 
-#: src/crosstabs.q:2045
+#: src/crosstabs.q:2071
 msgid "Kendall's tau-b"
 msgstr ""
 
-#: src/crosstabs.q:2046
+#: src/crosstabs.q:2072
 msgid "Kendall's tau-c"
 msgstr ""
 
-#: src/crosstabs.q:2047
+#: src/crosstabs.q:2073
 msgid "Gamma"
 msgstr ""
 
-#: src/crosstabs.q:2048
+#: src/crosstabs.q:2074
 msgid "Spearman Correlation"
 msgstr ""
 
-#: src/crosstabs.q:2049
+#: src/crosstabs.q:2075
 msgid "Pearson's R"
 msgstr ""
 
-#: src/crosstabs.q:2050
+#: src/crosstabs.q:2076
 msgid "Kappa"
 msgstr ""
 
-#: src/crosstabs.q:2120
+#: src/crosstabs.q:2146
 #, c-format
 msgid "Odds Ratio for %s (%g / %g)"
 msgstr ""
 
-#: src/crosstabs.q:2123
+#: src/crosstabs.q:2149
 #, c-format
 msgid "Odds Ratio for %s (%.*s / %.*s)"
 msgstr ""
 
-#: src/crosstabs.q:2131
+#: src/crosstabs.q:2157
 #, c-format
 msgid "For cohort %s = %g"
 msgstr ""
 
-#: src/crosstabs.q:2134
+#: src/crosstabs.q:2160
 #, c-format
 msgid "For cohort %s = %.*s"
 msgstr ""
 
-#: src/crosstabs.q:2165
+#: src/crosstabs.q:2191
 msgid "Nominal by Interval"
 msgstr ""
 
-#: src/crosstabs.q:2170
+#: src/crosstabs.q:2196
 msgid "Lambda"
 msgstr ""
 
-#: src/crosstabs.q:2171
+#: src/crosstabs.q:2197
 msgid "Goodman and Kruskal tau"
 msgstr ""
 
-#: src/crosstabs.q:2172
+#: src/crosstabs.q:2198
 msgid "Uncertainty Coefficient"
 msgstr ""
 
-#: src/crosstabs.q:2173
+#: src/crosstabs.q:2199
 msgid "Somers' d"
 msgstr ""
 
-#: src/crosstabs.q:2174
+#: src/crosstabs.q:2200
 msgid "Eta"
 msgstr ""
 
-#: src/crosstabs.q:2179
+#: src/crosstabs.q:2205
 msgid "Symmetric"
 msgstr ""
 
-#: src/crosstabs.q:2180 src/crosstabs.q:2181
+#: src/crosstabs.q:2206 src/crosstabs.q:2207
 #, c-format
 msgid "%s Dependent"
 msgstr ""
 
-#: src/descript.q:151 src/frequencies.q:94 src/t-test.q:658 src/t-test.q:681
-#: src/t-test.q:770 src/t-test.q:1117
-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
+#: src/file-handle.q:124
 #, 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."
+"File handle %s already refers to file %s.  File handle cannot be redefined "
+"within a session."
 msgstr ""
 
-#: src/file-handle.q:94
+#: src/file-handle.q:146
 msgid "The FILE HANDLE required subcommand NAME is not present."
 msgstr ""
 
-#: src/file-handle.q:107
+#: src/file-handle.q:161
 msgid ""
-"Fixed length records were specified on /RECFORM, but record length was not "
-"specified on /LRECL.  80-character records will be assumed."
+"Fixed-length records were specified on /RECFORM, but record length was not "
+"specified on /LRECL.  Assuming 1024-character records."
 msgstr ""
 
-#: src/file-handle.q:114
+#: src/file-handle.q:168
 #, c-format
 msgid ""
-"Record length (%ld) must be at least one byte.  80-character records will be "
+"Record length (%ld) must be at least one byte.  1-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."
+#: src/file-handle.q:241
+msgid "<Inline File>"
 msgstr ""
 
-#: src/file-handle.q:147 src/file-handle.q:150
-#, c-format
-msgid "%s is not implemented.  If you care, complain."
+#: src/file-handle.q:256
+msgid "expecting a file name or handle name"
 msgstr ""
 
-#: src/file-handle.q:232
-#, c-format
-msgid "File handle `%s' has not been previously declared on FILE HANDLE."
+#: src/frequencies.q:96
+msgid "S.E. Mean"
 msgstr ""
 
-#: src/file-handle.q:319
-msgid "<Inline File>"
+#: src/frequencies.q:97
+msgid "Median"
 msgstr ""
 
-#: src/file-handle.q:338
-msgid "expecting a file name or handle"
+#: src/frequencies.q:98
+msgid "Mode"
 msgstr ""
 
-#: src/frequencies.q:96
-msgid "Median"
+#: src/frequencies.q:102
+msgid "S.E. Kurt"
 msgstr ""
 
-#: src/frequencies.q:97
-msgid "Mode"
+#: src/frequencies.q:104
+msgid "S.E. Skew"
 msgstr ""
 
-#: src/frequencies.q:268
+#: src/frequencies.q:279
 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
+#: src/frequencies.q:360
 #, 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
+#: src/frequencies.q:649
 msgid ""
 "Upper limit of integer mode value range must be greater than lower limit."
 msgstr ""
 
-#: src/frequencies.q:644
+#: src/frequencies.q:661
 #, c-format
 msgid "Variable %s specified multiple times on VARIABLES subcommand."
 msgstr ""
 
-#: src/frequencies.q:657
+#: src/frequencies.q:674
 #, c-format
 msgid "Integer mode specified, but %s is not a numeric variable."
 msgstr ""
 
-#: src/frequencies.q:719
+#: src/frequencies.q:736
 msgid "`)' expected after GROUPED interval list."
 msgstr ""
 
-#: src/frequencies.q:732
+#: src/frequencies.q:749
 #, c-format
 msgid "Variables %s specified on GROUPED but not on VARIABLES."
 msgstr ""
 
-#: src/frequencies.q:735
+#: src/frequencies.q:752
 #, c-format
 msgid "Variables %s specified multiple times on GROUPED subcommand."
 msgstr ""
 
-#: src/frequencies.q:795
+#: src/frequencies.q:808
 msgid "Percentile list expected after PERCENTILES."
 msgstr ""
 
-#: src/frequencies.q:803
-msgid "Percentiles must be greater than 0 and less than 100."
+#: src/frequencies.q:816
+msgid "Percentiles must be between 0 and 100."
 msgstr ""
 
-#: src/frequencies.q:1008 src/frequencies.q:1098 src/frequencies.q:1099
-#: src/frequencies.q:1129
+#: src/frequencies.q:1020 src/frequencies.q:1110 src/frequencies.q:1111
+#: src/frequencies.q:1141
 msgid "Cum"
 msgstr ""
 
-#: src/frequencies.q:1010
+#: src/frequencies.q:1022
 msgid "Frequency"
 msgstr ""
 
-#: src/frequencies.q:1029
+#: src/frequencies.q:1041
 msgid "Value Label"
 msgstr ""
 
-#: src/frequencies.q:1127
+#: src/frequencies.q:1139
 msgid "Freq"
 msgstr ""
 
-#: src/frequencies.q:1128 src/frequencies.q:1130
+#: src/frequencies.q:1140 src/frequencies.q:1142
 msgid "Pct"
 msgstr ""
 
-#: src/frequencies.q:1285
+#: src/frequencies.q:1358
 #, c-format
 msgid "No valid data for variable %s; statistics not displayed."
 msgstr ""
 
-#: src/frequencies.q:1308
-msgid "Percentile"
+#: src/frequencies.q:1397
+msgid "Percentiles"
 msgstr ""
 
-#: src/list.q:152
+#: src/list.q:151
 #, c-format
 msgid ""
 "The first case (%ld) specified precedes the last case (%ld) specified.  The "
 "values will be swapped."
 msgstr ""
 
-#: src/list.q:160
+#: src/list.q:159
 #, c-format
 msgid ""
 "The first case (%ld) to list is less than 1.  The value is being reset to 1."
 msgstr ""
 
-#: src/list.q:166
+#: src/list.q:165
 #, c-format
 msgid ""
 "The last case (%ld) to list is less than 1.  The value is being reset to 1."
 msgstr ""
 
-#: src/list.q:172
+#: src/list.q:171
 #, c-format
 msgid "The step value %ld is less than 1.  The value is being reset to 1."
 msgstr ""
 
-#: src/list.q:199
+#: src/list.q:198
 msgid "`/FORMAT WEIGHT' specified, but weighting is not on."
 msgstr ""
 
-#: src/list.q:445
+#: src/list.q:444
 msgid "Line"
 msgstr ""
 
-#: src/means.q:106
+#: src/means.q:105
 msgid "Missing required subcommand TABLES."
 msgstr ""
 
-#: src/means.q:144
+#: src/means.q:143
 msgid "TABLES or CROSSBREAK subcommand may not appear more than once."
 msgstr ""
 
-#: src/means.q:181
+#: src/means.q:180
 #, c-format
 msgid ""
 "Variable %s specified on TABLES or CROSSBREAK, but not specified on "
 "VARIABLES."
 msgstr ""
 
-#: src/means.q:195
+#: src/means.q:194
 #, c-format
 msgid "LOWEST and HIGHEST may not be used for independent variables (%s)."
 msgstr ""
 
-#: src/means.q:203
+#: src/means.q:202
 #, c-format
 msgid ""
 "Independent variables (%s) may not have noninteger endpoints in their ranges."
 msgstr ""
 
-#: src/means.q:236
+#: src/means.q:235
 msgid "VARIABLES must precede TABLES."
 msgstr ""
 
-#: src/means.q:293
+#: src/means.q:292
 #, c-format
 msgid "Upper value (%g) is less than lower value (%g) on VARIABLES subcommand."
 msgstr ""
 
-#: src/set.q:216 src/set.q:288 src/set.q:332 src/set.q:389 src/set.q:391
-#: src/set.q:393 src/set.q:395 src/set.q:397 src/set.q:399 src/set.q:401
-#: src/set.q:403 src/set.q:405 src/set.q:407 src/set.q:409 src/set.q:411
-#: src/set.q:413 src/set.q:792 src/set.q:873 src/set.q:968
+#: src/set.q:216 src/set.q:288 src/set.q:332 src/set.q:387 src/set.q:389
+#: src/set.q:391 src/set.q:393 src/set.q:395 src/set.q:397 src/set.q:399
+#: src/set.q:401 src/set.q:403 src/set.q:405 src/set.q:407 src/set.q:409
+#: src/set.q:411 src/set.q:790 src/set.q:871 src/set.q:966
 #, c-format
 msgid "%s is obsolete."
 msgstr ""
 msgid "Journalling is off"
 msgstr ""
 
-#: src/set.q:422
+#: src/set.q:420
 msgid ""
 "CASE is not implemented and probably won't be.  If you care, complain about "
 "it."
 msgstr ""
 
-#: src/set.q:427
+#: src/set.q:425
 msgid "Active file compression is not yet implemented (and probably won't be)."
 msgstr ""
 
-#: src/set.q:441
+#: src/set.q:439
 #, c-format
 msgid ""
 "CC%c: Length of custom currency string `%s' (%d) exceeds maximum length of "
 "16."
 msgstr ""
 
-#: src/set.q:463
+#: src/set.q:461
 #, c-format
 msgid ""
 "CC%c: Custom currency string `%s' does not contain exactly three periods or "
 "commas (not both)."
 msgstr ""
 
-#: src/set.q:516
+#: src/set.q:514
 msgid "None"
 msgstr ""
 
-#: src/set.q:522
+#: src/set.q:520
 msgid "Disabled"
 msgstr ""
 
-#: src/set.q:527
+#: src/set.q:525
 msgid "Screen"
 msgstr ""
 
-#: src/set.q:534
+#: src/set.q:532
 msgid "Listing"
 msgstr ""
 
-#: src/set.q:541
+#: src/set.q:539
 msgid "Other"
 msgstr ""
 
-#: src/set.q:650
+#: src/set.q:648
 msgid "LENGTH must be at least 1."
 msgstr ""
 
-#: src/set.q:689
+#: src/set.q:687
 msgid "Missing identifier in RESULTS subcommand."
 msgstr ""
 
-#: src/set.q:700
+#: src/set.q:698
 msgid "Unrecognized identifier in RESULTS subcommand."
 msgstr ""
 
-#: src/set.q:738
+#: src/set.q:736
 msgid "WIDTH must be at least 1."
 msgstr ""
 
-#: src/set.q:761
+#: src/set.q:759
 #, c-format
 msgid ""
 "FORMAT requires numeric output format as an argument.  Specified format %s "
 "is of type string."
 msgstr ""
 
-#: src/set.q:805
+#: src/set.q:803
 msgid "Text color must be in range 0-15."
 msgstr ""
 
-#: src/set.q:818
+#: src/set.q:816
 msgid "Background color must be in range 0-7."
 msgstr ""
 
-#: src/set.q:829
+#: src/set.q:827
 msgid "Border color must be in range 0-7."
 msgstr ""
 
-#: src/set.q:885
+#: src/set.q:883
 msgid "Lower window color must be between 0 and 6."
 msgstr ""
 
-#: src/set.q:899
+#: src/set.q:897
 msgid "Upper window color must be between 0 and 6."
 msgstr ""
 
-#: src/set.q:911
+#: src/set.q:909
 msgid "Frame color must be between 0 and 6."
 msgstr ""
 
-#: src/set.q:977
+#: src/set.q:975
 msgid "Drive letter expected in WORKDEV subcommand."
 msgstr ""
 
-#: src/set.q:1012
-msgid "Specify a terminal type with `setenv TERM <yourtype>'."
+#: src/set.q:1007
+msgid "Specify a terminal type with the TERM environment variable."
 msgstr ""
 
-#: src/set.q:1018
+#: src/set.q:1013
 msgid "Could not access the termcap data base."
 msgstr ""
 
-#: src/set.q:1020
+#: src/set.q:1015
 #, c-format
 msgid "Terminal type `%s' is not defined."
 msgstr ""
 
-#: src/set.q:1048
+#: src/set.q:1057
 msgid "data> "
 msgstr ""
 
-#: src/t-test.q:237
+#: src/t-test.q:234
 msgid "TESTVAL, GROUPS and PAIRS subcommands are mutually exclusive."
 msgstr ""
 
-#: src/t-test.q:254
+#: src/t-test.q:251
 msgid "VARIABLES subcommand is not appropriate with PAIRS"
 msgstr ""
 
-#: src/t-test.q:354 src/t-test.q:431
+#: src/t-test.q:288
+msgid "One or more VARIABLES must be specified."
+msgstr ""
+
+#: src/t-test.q:328 src/t-test.q:405
 #, c-format
 msgid "`%s' is not a variable name"
 msgstr ""
 
-#: src/t-test.q:367
+#: src/t-test.q:341
 #, c-format
 msgid "Long string variable %s is not valid here."
 msgstr ""
 
-#: src/t-test.q:384
+#: src/t-test.q:358
 msgid ""
 "When applying GROUPS to a string variable, at least one value must be "
 "specified."
 msgstr ""
 
-#: src/t-test.q:466
+#: src/t-test.q:440
 #, c-format
 msgid ""
 "PAIRED was specified but the number of variables preceding WITH (%d) did not "
 "match the number following (%d)."
 msgstr ""
 
-#: src/t-test.q:483
+#: src/t-test.q:457
 msgid "At least two variables must be specified on PAIRS."
 msgstr ""
 
-#: src/t-test.q:655
+#: src/t-test.q:629
 msgid "One-Sample Statistics"
 msgstr ""
 
-#: src/t-test.q:659 src/t-test.q:682 src/t-test.q:772 src/t-test.q:1118
+#: src/t-test.q:633 src/t-test.q:656 src/t-test.q:746 src/t-test.q:1060
 msgid "Std. Deviation"
 msgstr ""
 
-#: src/t-test.q:660 src/t-test.q:683 src/t-test.q:773
+#: src/t-test.q:634 src/t-test.q:657 src/t-test.q:747
 msgid "SE. Mean"
 msgstr ""
 
-#: src/t-test.q:677
+#: src/t-test.q:651
 msgid "Group Statistics"
 msgstr ""
 
-#: src/t-test.q:767
+#: src/t-test.q:741
 msgid "Paired Sample Statistics"
 msgstr ""
 
-#: src/t-test.q:789 src/t-test.q:1146 src/t-test.q:1366
+#: src/t-test.q:763 src/t-test.q:1085 src/t-test.q:1276
 #, c-format
 msgid "Pair %d"
 msgstr ""
 
-#: src/t-test.q:907
+#: src/t-test.q:881
 msgid "Independent Samples Test"
 msgstr ""
 
-#: src/t-test.q:915
+#: src/t-test.q:889
 msgid "Levene's Test for Equality of Variances"
 msgstr ""
 
-#: src/t-test.q:917
+#: src/t-test.q:891
 msgid "t-test for Equality of Means"
 msgstr ""
 
-#: src/t-test.q:919
+#: src/t-test.q:893
 msgid "F"
 msgstr ""
 
-#: src/t-test.q:920 src/t-test.q:1347
+#: src/t-test.q:894 src/t-test.q:1261
 msgid "Sig."
 msgstr ""
 
-#: src/t-test.q:921 src/t-test.q:1122 src/t-test.q:1228
+#: src/t-test.q:895 src/t-test.q:1064 src/t-test.q:1156
 msgid "t"
 msgstr ""
 
-#: src/t-test.q:923 src/t-test.q:1124 src/t-test.q:1230
+#: src/t-test.q:897 src/t-test.q:1066 src/t-test.q:1158
 msgid "Sig. (2-tailed)"
 msgstr ""
 
-#: src/t-test.q:924 src/t-test.q:1231
+#: src/t-test.q:898 src/t-test.q:1159
 msgid "Mean Difference"
 msgstr ""
 
-#: src/t-test.q:925
+#: src/t-test.q:899
 msgid "Std. Error Difference"
 msgstr ""
 
-#: src/t-test.q:930 src/t-test.q:1114 src/t-test.q:1223
+#: src/t-test.q:904 src/t-test.q:1056 src/t-test.q:1151
 #, c-format
 msgid "%d%% Confidence Interval of the Difference"
 msgstr ""
 
-#: src/t-test.q:964
+#: src/t-test.q:935
 msgid "Equal variances assumed"
 msgstr ""
 
-#: src/t-test.q:979
-#, c-format
-msgid "Error calculating F statistic (cdff returned %d)."
-msgstr ""
-
-#: src/t-test.q:1002 src/t-test.q:1022 src/t-test.q:1060 src/t-test.q:1072
-#: src/t-test.q:1167 src/t-test.q:1193 src/t-test.q:1273 src/t-test.q:1290
-#: src/t-test.q:1379
-#, c-format
-msgid "Error calculating T statistic (cdft returned %d)."
-msgstr ""
-
-#: src/t-test.q:1036
+#: src/t-test.q:988
 msgid "Equal variances not assumed"
 msgstr ""
 
-#: src/t-test.q:1104
+#: src/t-test.q:1046
 msgid "Paired Samples Test"
 msgstr ""
 
-#: src/t-test.q:1107
+#: src/t-test.q:1049
 msgid "Paired Differences"
 msgstr ""
 
-#: src/t-test.q:1119
+#: src/t-test.q:1061
 msgid "Std. Error Mean"
 msgstr ""
 
-#: src/t-test.q:1212
+#: src/t-test.q:1140
 msgid "One-Sample Test"
 msgstr ""
 
-#: src/t-test.q:1217
+#: src/t-test.q:1145
 #, c-format
 msgid "Test Value = %f"
 msgstr ""
 
-#: src/t-test.q:1342
+#: src/t-test.q:1256
 msgid "Paired Samples Correlations"
 msgstr ""
 
-#: src/t-test.q:1346
+#: src/t-test.q:1260
 msgid "Correlation"
 msgstr ""
 
-#: src/t-test.q:1369
+#: src/t-test.q:1279
 #, c-format
 msgid "%s & %s"
 msgstr ""
 
 /* Directory separator character for this OS, if applicable. */
 #ifndef __MSDOS__
 #define DIR_SEPARATOR '/'
-#elif
+#else
 #define DIR_SEPARATOR '\\'
 #endif
 
 
+Sat Apr  3 15:00:18 WST 2004 John Darrington <john@darrington.wattle.id.au>
+
+        * frequencies.q:  Fixed the calculation of percentiles
+
+       * Makefile.am:  Added the --ansi flag and dealt with the
+       consequences.  Added some entries to PSPP_sources so that
+       make distcheck would pass
+
+       * cmdline.c:   Added the --syntax and --algorithm options
+
+       * q2c.c:  Added an implicit /ALGORITHM subcommand to everything.
+
 Fri Apr  2 11:25:22 WAST 2004 John Darrington <john@darrington.wattle.id.au>
 
        * t-test.q, levene.c, levene.h  Converted t-test (incl levene) to 
        * frequencies.q: (calc_stats) Use moments data structure and
        calc_seskew(), calc_sekurt() functions.
 
+       * set.q main.c settings.h Added support for --syntax and --algorithm 
+       options
+
 Tue Mar 30 22:04:19 2004  Ben Pfaff  <blp@gnu.org>
 
        * vfm.c: Had to get last call to multipass_split_output() inside
 
 
 bin_PROGRAMS = pspp
 
+
+
 AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/src -I$(top_srcdir)/lib  \
--I$(top_srcdir)/intl
+-I$(top_srcdir)/intl 
+
+AM_CFLAGS=
 
 if cc_is_gcc
-AM_CFLAGS=-Wall -W -Wwrite-strings -Wstrict-prototypes \
--Wpointer-arith -Wno-sign-compare -Wmissing-prototypes 
+AM_CFLAGS+=-Wall -W -Wwrite-strings -Wstrict-prototypes \
+-Wpointer-arith -Wno-sign-compare -Wmissing-prototypes \
+-ansi 
+endif
+
+if unix
+AM_CFLAGS+=-Dunix
 endif
 
+if msdos
+AM_CFLAGS+=-D__MSDOS__
+endif
+
+
+
 CLEANFILES =  $(q_sources_c) version.c
 DISTCLEANFILES = foo 
 MAINTAINERCLEANFILES = Makefile.in
 alloc.c alloc.h apply-dict.c ascii.c autorecode.c bitvector.h          \
 casefile.c casefile.h cmdline.c cmdline.h command.c command.def                \
 command.h compute.c copyleft.c copyleft.h count.c data-in.c data-in.h  \
-data-list.c data-list.h data-out.c date.c debug-print.h descript.c     \
+data-list.c data-list.h data-out.c date.c debug.c debug-print.h descript.c     \
 devind.c devind.h dfm.c dfm.h dictionary.c do-if.c do-ifP.h error.c    \
-error.h expr-evl.c expr-opt.c expr-prs.c expr.h exprP.h file-handle.h  \
+error.h expr-evl.c expr-opt.c expr-prs.c expr.h exprP.h expr.def        \
+file-handle.h  \
 file-type.c filename.c filename.h flip.c font.h format.c format.def    \
 format.h formats.c get.c getline.c getline.h glob.c glob.h             \
 groff-font.c hash.c hash.h html.c htmlP.h include.c inpt-pgm.c lexer.c \
 rename-vars.c repeat.c repeat.h sample.c sel-if.c settings.h           \
 sfm-read.c sfm-write.c sfm.h sfmP.h som.c som.h sort.c sort.h          \
 split-file.c str.c str.h sysfile-info.c tab.c tab.h temporary.c                \
+stat.h \
 title.c t-test.h val.h val-labs.c value-labels.c value-labels.h                \
 var-labs.c var.h vars-atr.c vars-prs.c vector.c version.c version.h    \
 vfm.c vfm.h vfmP.h weight.c workspace.c workspace.h
 
 {
   static struct option long_options[] =
   {
+    {"algorithm", required_argument, NULL, 'a'},
     {"command", required_argument, NULL, 'c'},
     {"config-directory", required_argument, NULL, 'B'},
     {"device", required_argument, NULL, 'o'},
     {"pipe", no_argument, NULL, 'p'},
     {"recon", no_argument, NULL, 'n'},
     {"safer", no_argument, NULL, 's'},
+    {"syntax", required_argument, NULL, 'x'},
     {"testing-mode", no_argument, &testing_mode, 1},
     {"verbose", no_argument, NULL, 'v'},
     {"version", no_argument, NULL, 'V'},
 
   for (;;)
     {
-      c = getopt_long (argc, argv, "B:c:f:hiI:lno:prsvV", long_options, NULL);
+      c = getopt_long (argc, argv, "a:x:B:c:f:hiI:lno:prsvV", long_options, NULL);
       if (c == -1)
        break;
 
       switch (c)
        {
+         /* Compatibility options */
+        case 'a':
+         if ( 0 == strcmp(optarg,"compatible") )
+             set_algorithm(COMPATIBLE);
+         else if ( 0 == strcmp(optarg,"enhanced"))
+             set_algorithm(ENHANCED);
+         else
+           {
+             usage();
+             assert(0);
+           }
+         break;
+
+       case 'x':         
+         if ( 0 == strcmp(optarg,"compatible") )
+           set_syntax(COMPATIBLE);
+         else if ( 0 == strcmp(optarg,"enhanced"))
+           set_syntax(ENHANCED);
+         else
+           {
+             usage();
+             assert(0);
+           }
+         break;
+
        case 'c':
          {
            static int n_cmds;
 "\nIf a long option shows an argument as mandatory, then it is mandatory\n"
 "for the equivalent short option also.  Similarly for optional arguments.\n"
 "\nConfiguration:\n"
+"  -a, --algorithm={compatible|enhanced}\n"
+"                            set to `compatible' if you want output\n"
+"                            calculated from broken algorithms\n"
 "  -B, --config-dir=DIR      set configuration directory to DIR\n"
 "  -o, --device=DEVICE       select output driver DEVICE and disable defaults\n"
 "  -d, --define=VAR[=VALUE]  set environment variable VAR to VALUE, or empty\n"
 "  -n, --edit                just check syntax; don't actually run the code\n"
 "  -r, --no-statrc           disable execution of .pspp/rc at startup\n"
 "  -s, --safer               don't allow some unsafe operations\n"
+"  -x, --syntax={compatible|enhanced}\n"
+"                            set to `compatible' if you want only to accept\n"
+"                            spss compatible syntax\n"
 "\nInformative output:\n"
 "  -h, --help                print this help, then exit\n"
 "  -l, --list                print a list of known driver classes, then exit\n"
 
   /* Make sure that the system has a command interpreter, then run a
      command. */
   if (system (NULL) != 0)
-    success = run_command ();
+    code = run_command ();
   else
     {
       msg (SE, _("No operating system support for this command."));
-      success = CMD_FAILURE;
+      code = CMD_FAILURE;
     }
 #endif /* !unix */
 
 
     CMD_SUCCESS,               /* Command successfully parsed and executed. */
     CMD_PART_SUCCESS_MAYBE,    /* Command may have been partially executed. */
     CMD_PART_SUCCESS,          /* Command fully executed up to error. */
-    CMD_TRAILING_GARBAGE,      /* Command followed by garbage. */
+    CMD_TRAILING_GARBAGE       /* Command followed by garbage. */
   };
 
 extern int pgm_state;
 
     ERR_CLASS_COUNT,           /* Number of message classes. */
     ERR_CLASS_MASK = 0xf,      /* Bitmask for class. */
     ERR_VERBOSITY_SHIFT = 4,   /* Shift count for verbosity. */
-    ERR_VERBOSITY_MASK = 0xf,  /* Bitmask for verbosity. */
+    ERR_VERBOSITY_MASK = 0xf   /* Bitmask for verbosity. */
   };
 
 /* If passed to msg() as CLASS, the return value will cause the message
 #undef assert
 
                               
-#define assert(expr) ( (void) ( expr ? 0 : \
+#define assert(expr) ( (void) ( expr ? (void) 0 : \
               err_assert_fail(__STRING(expr), __FILE__, __LINE__)) )
 
 
 
 }
 #else /* !unix */
 char *
-fn_tilde_expand (char *input)
+fn_tilde_expand (const char *input)
 {
   return xstrdup (input);
 }
 }
 #endif
 \f
+#if unix
 /* Returns the current working directory, as a malloc()'d string.
    From libc.info. */
 char *
       buffer = xmalloc (size);
     }
 }
+#else
+char *
+fn_get_cwd (void)
+{
+  int size = 2;
+  char *buffer = xmalloc (size);
+  if ( buffer) 
+  {
+    buffer[0]='.';
+    buffer[1]='\0';
+  }
+
+  return buffer;
+     
+}
+#endif
 \f
 /* Find out information about files. */
 
 
 #include "value-labels.h"
 #include "var.h"
 #include "vfm.h"
+#include "settings.h"
 
 #include "debug-print.h"
 
 };
 
 /* Percentiles to calculate. */
-static double *percentiles;
-static double *percentile_values;
+
+struct percentile
+{
+  double p;        /* the %ile to be calculated */
+  double value;    /* the %ile's value */
+  double x1;       /* The datum value <= the percentile */
+  double x2;       /* The datum value >= the percentile */
+  int flag;        
+  int flag2;       /* Set to 1 if this percentile value has been found */
+};
+
+static struct percentile *percentiles;
 static int n_percentiles;
 
+static int implicit_50th ; 
+
 /* Groups of statistics. */
 #define BI          BIT_INDEX
 #define frq_default                                                    \
   int i;
 
   n_percentiles = 0;
-  percentile_values = NULL;
   percentiles = NULL;
 
   n_variables = 0;
   sort (ft->missing, ft->n_missing, sizeof *ft->missing, compare, v);
 
   /* Summary statistics. */
-  ft->total_cases = ft->valid_cases = 0.0;
-  for (f = ft->valid; f < ft->valid + ft->n_valid; f++) 
+  ft->valid_cases = 0.0;
+  for(i = 0 ;  i < ft->n_valid ; ++i ) 
     {
-      ft->total_cases += f->c;
+      f = &ft->valid[i];
+      ft->valid_cases += f->c;
+
+    }
 
-      if ((v->type != NUMERIC || f->v.f != SYSMIS)
-          && (cmd.miss != FRQ_EXCLUDE || !is_user_missing (&f->v, v)))
-        ft->valid_cases += f->c;
+  ft->total_cases = ft->valid_cases ; 
+  for(i = 0 ;  i < ft->n_missing ; ++i ) 
+    {
+      f = &ft->missing[i];
+      ft->total_cases += f->c;
     }
+
 }
 
 /* Frees the frequency table for variable V. */
   int i;
 
   for (i = 0; i < n_percentiles; i++)
-    if (x <= percentiles[i])
+    if (x <= percentiles[i].p)
       break;
-  if (i >= n_percentiles || tokval != percentiles[i])
+
+  if (i >= n_percentiles || tokval != percentiles[i].p)
     {
       percentiles
         = pool_realloc (int_pool, percentiles,
-                        (n_percentiles + 1) * sizeof *percentiles);
-      percentile_values
-        = pool_realloc (int_pool, percentile_values,
-                        (n_percentiles + 1) * sizeof *percentile_values);
-      if (i < n_percentiles) 
-        {
+                        (n_percentiles + 1) * sizeof (struct percentile ));
+
+      if (i < n_percentiles)
           memmove (&percentiles[i + 1], &percentiles[i],
-                   (n_percentiles - i) * sizeof *percentiles);
-          memmove (&percentile_values[i + 1], &percentile_values[i],
-                   (n_percentiles - i) * sizeof *percentile_values);
-        }
-      percentiles[i] = x;
+                   (n_percentiles - i) * sizeof (struct percentile) );
+
+      percentiles[i].p = x;
       n_percentiles++;
     }
 }
   
   do
     {
-      if (tokval <= 0 || tokval >= 100)
+      if (tokval < 0 || tokval > 100)
        {
-         msg (SE, _("Percentiles must be greater than "
-                    "0 and less than 100."));
+         msg (SE, _("Percentiles must be between 0 and 100."));
          return 0;
        }
       
 {
   double W = v->p.frq.tab.valid_cases;
   struct moments *m;
-  struct freq *f;
+  struct freq *f=0; 
   int most_often;
   double X_mode;
 
-  double cum_total;
+  double rank;
   int i = 0;
-  double previous_value;
+  int idx;
+  double *median_value;
 
   /* Calculate percentiles. */
-  cum_total = 0;
-  previous_value = SYSMIS;
-  for (f = v->p.frq.tab.valid; f < v->p.frq.tab.missing; f++)
+
+  /* If the 50th percentile was not explicitly requested then we must 
+     calculate it anyway --- it's the median */
+  median_value = 0 ;
+  for (i = 0; i < n_percentiles; i++) 
     {
-      cum_total += f->c ;
-      for (; i < n_percentiles; i++) 
+      if (percentiles[i].p == 0.5)
+       {
+         median_value = &percentiles[i].value;
+         break;
+       }
+    }
+
+  if ( 0 == median_value )  
+    {
+      add_percentile (0.5);
+      implicit_50th = 1;
+    }
+
+  for (i = 0; i < n_percentiles; i++) 
+    {
+      percentiles[i].flag = 0;
+      percentiles[i].flag2 = 0;
+    }
+
+  rank = 0;
+  for (idx = 0; idx < v->p.frq.tab.n_valid; ++idx)
+    {
+      static double prev_value = SYSMIS;
+      f = &v->p.frq.tab.valid[idx]; 
+      rank += f->c ;
+      for (i = 0; i < n_percentiles; i++) 
         {
-          if (cum_total / v->p.frq.tab.valid_cases < percentiles[i])
-            break;
+         double tp;
+         if ( percentiles[i].flag2  ) continue ; 
+
+         if ( get_algorithm() != COMPATIBLE ) 
+           tp = 
+             (v->p.frq.tab.valid_cases - 1) *  percentiles[i].p;
+         else
+           tp = 
+             (v->p.frq.tab.valid_cases + 1) *  percentiles[i].p - 1;
+
+         if ( percentiles[i].flag ) 
+           {
+             percentiles[i].x2 = f->v.f;
+             percentiles[i].x1 = prev_value;
+             percentiles[i].flag2 = 1;
+             continue;
+           }
+
+          if (rank >  tp ) 
+         {
+           if ( f->c > 1 && rank - (f->c - 1) > tp ) 
+             {
+               percentiles[i].x2 = percentiles[i].x1 = f->v.f;
+               percentiles[i].flag2 = 1;
+             }
+           else
+             {
+               percentiles[i].flag=1;
+             }
 
-          percentile_values[i] = previous_value;
+           continue;
+         }
         }
-      previous_value = f->v.f;
+      prev_value = f->v.f;
+    }
+
+  for (i = 0; i < n_percentiles; i++) 
+    {
+      /* Catches the case when p == 100% */
+      if ( ! percentiles[i].flag2 ) 
+       percentiles[i].x1 = percentiles[i].x2 = f->v.f;
+
+      /*
+      printf("percentile %d (p==%.2f); X1 = %g; X2 = %g\n",
+            i,percentiles[i].p,percentiles[i].x1,percentiles[i].x2);
+      */
+    }
+
+  for (i = 0; i < n_percentiles; i++) 
+    {
+      struct freq_tab *ft = &v->p.frq.tab;
+      double s;
+
+      double dummy;
+      if ( get_algorithm() != COMPATIBLE ) 
+       {
+         s = modf((ft->valid_cases - 1) *  percentiles[i].p , &dummy);
+       }
+      else
+       {
+         s = modf((ft->valid_cases + 1) *  percentiles[i].p -1, &dummy);
+       }
+
+      percentiles[i].value = percentiles[i].x1 + 
+       ( percentiles[i].x2 - percentiles[i].x1) * s ; 
+
+      if ( percentiles[i].p == 0.50) 
+       median_value = &percentiles[i].value; 
     }
 
+
   /* Calculate the mode. */
   most_often = -1;
   X_mode = SYSMIS;
   d[frq_max] = v->p.frq.tab.valid[v->p.frq.tab.n_valid - 1].v.f;
   d[frq_mode] = X_mode;
   d[frq_range] = d[frq_max] - d[frq_min];
-  d[frq_median] = SYSMIS;
+  d[frq_median] = *median_value;
   d[frq_sum] = d[frq_mean] * W;
   d[frq_stddev] = sqrt (d[frq_variance]);
   d[frq_semean] = d[frq_stddev] / sqrt (W);
   struct tab_table *t;
   int i, r;
 
+  int n_explicit_percentiles = n_percentiles;
+
+  if ( implicit_50th && n_percentiles > 0 ) 
+    --n_percentiles;
+
   if (v->type == ALPHA)
     return;
   if (v->p.frq.tab.n_valid == 0)
     }
   calc_stats (v, stat_value);
 
-  t = tab_create (2, n_stats + n_percentiles, 0);
+  t = tab_create (3, n_stats + n_explicit_percentiles + 2, 0);
   tab_dim (t, tab_natural_dimensions);
-  tab_vline (t, TAL_1 | TAL_SPACING, 1, 0, n_stats - 1);
-  for (i = r = 0; i < frq_n_stats; i++)
+
+  tab_box (t, TAL_1, TAL_1, -1, -1 , 0 , 0 , 2, tab_nr(t) - 1) ;
+
+
+  tab_vline (t, TAL_1 , 2, 0, tab_nr(t) - 1);
+  tab_vline (t, TAL_1 | TAL_SPACING , 1, 0, tab_nr(t) - 1 ) ;
+  
+  r=2; /* N missing and N valid are always dumped */
+
+  for (i = 0; i < frq_n_stats; i++)
     if (stats & BIT_INDEX (i))
       {
        tab_text (t, 0, r, TAB_LEFT | TAT_TITLE,
                      gettext (st_name[i].s10));
-       tab_float (t, 1, r, TAB_NONE, stat_value[i], 11, 3);
+       tab_float (t, 2, r, TAB_NONE, stat_value[i], 11, 3);
        r++;
       }
 
-  for (i = 0; i < n_percentiles; i++, r++) 
-    {
-      struct string ds;
+  tab_text (t, 0, 0, TAB_LEFT | TAT_TITLE, _("N"));
+  tab_text (t, 1, 0, TAB_LEFT | TAT_TITLE, _("Valid"));
+  tab_text (t, 1, 1, TAB_LEFT | TAT_TITLE, _("Missing"));
+
+  tab_float(t, 2, 0, TAB_NONE, v->p.frq.tab.valid_cases, 11, 0);
+  tab_float(t, 2, 1, TAB_NONE, 
+           v->p.frq.tab.total_cases - v->p.frq.tab.valid_cases, 11, 0);
 
-      ds_init (gen_pool, &ds, 20);
-      ds_printf (&ds, "%s %d", _("Percentile"), (int) (percentiles[i] * 100));
 
-      tab_text (t, 0, r, TAB_LEFT | TAT_TITLE, ds.string);
-      tab_float (t, 1, r, TAB_NONE, percentile_values[i], 11, 3);
+  for (i = 0; i < n_explicit_percentiles; i++, r++) 
+    {
+      if ( i == 0 ) 
+       { 
+         tab_text (t, 0, r, TAB_LEFT | TAT_TITLE, _("Percentiles"));
+       }
+
+      tab_float (t, 1, r, TAB_LEFT, percentiles[i].p * 100, 3, 0 );
+      tab_float (t, 2, r, TAB_NONE, percentiles[i].value, 11, 3);
 
-      ds_destroy (&ds);
     }
 
   tab_columns (t, SOM_COL_DOWN, 1);
     }
   else
     tab_flags (t, SOMF_NO_TITLE);
-  
+
+
   tab_submit (t);
 }
 /* 
 
 
     T_FIRST_KEYWORD = T_AND,
     T_LAST_KEYWORD = T_WITH,
-    T_N_KEYWORDS = T_LAST_KEYWORD - T_FIRST_KEYWORD + 1,
+    T_N_KEYWORDS = T_LAST_KEYWORD - T_FIRST_KEYWORD + 1
   };
 
 
 
 #include "glob.h"
 #include "lexer.h"
 #include "output.h"
+#include "settings.h"
 #include <signal.h>
 
 #include <stdlib.h>
 static int
 execute_command (void)
 {
+  int result;
   /* Read the command's first token.
      We may hit end of file.
      If so, give the line reader a chance to proceed to the next file.
 
   /* Parse the command. */
   getl_prompt = GETL_PRPT_CONTINUATION;
-  return cmd_parse ();
+  result =  cmd_parse ();
+ 
+  /* Unset the /ALGORITHM subcommand if it was used */
+  unset_cmd_algorithm ();
+
+  return result;
 }
 
 /* Print an error message corresponding to the command return code
 
        outdent ();
       }
   }
+  /* Now deal with the /ALGORITHM subcommand implicit to all commands */
+  dump(1,"else if ( get_syntax() != COMPATIBLE && lex_match_id(\"ALGORITHM\"))");
+  dump(1,"{");
+
+  dump (0, "lex_match ('=');");
+
+  dump(1,"if (lex_match_id(\"COMPATIBLE\"))");
+  dump(0,"set_cmd_algorithm(COMPATIBLE);");
+  outdent();
+  dump(1,"else if (lex_match_id(\"ENHANCED\"))");
+  dump(0,"set_cmd_algorithm(ENHANCED);");
+
+  dump (-1, "}");
+  outdent ();
+
   
   dump (1, "if (!lex_match ('/'))");
   dump (0, "break;");
   dump (0, "   Generated by q2c from %s on %s.", ifn, timep);
   dump (0, "   Do not modify!");
   dump (0, " */");
+
+  dump (0, nullstr);
+  dump (0, "#include \"settings.h\"");
   dump (0, nullstr);
 }
 
 
   dump_header ();
 
+
   indent = 0;
   dump (0, "#line %d \"%s\"", ln + 1, ifn);
   while (get_line ())
          dump (0, "#include \"lexer.h\"");
          dump (0, "#include \"str.h\"");
          dump (0, "#include \"var.h\"");
+
          dump (0, nullstr);
        }
       else if (!strcmp (directive, "declarations"))
       dump (0, "#line %d \"%s\"", ln + 1, ifn);
     }
 
+
+
   return EXIT_SUCCESS;
 }
 
 
 #else /* !HAVE_TERMCAP_H */
 int tgetent (char *, const char *);
 int tgetnum (const char *);
-int tgetflag (const char *);
 #endif /* !HAVE_TERMCAP_H */
 #endif /* !HAVE_LIBTERMCAP */
 
           not available. It's supposed to do it, but not all platforms 
           do (eg Cygwin) .
        */
-        if ( tgetflag("li")) 
+        if ( -1 != tgetnum("li")) 
          set_viewlength = tgetnum ("li");
 
-        if ( tgetflag("co")) 
+        if ( -1 != tgetnum("co")) 
          set_viewwidth = tgetnum ("co") - 1;
       }
   }
 }
 
 
+static int global_algorithm = ENHANCED;
+static int cmd_algorithm = ENHANCED;
+static int *algorithm = &global_algorithm;
+
+static int syntax = ENHANCED;
+
+/* Set the algorithm option globally */
+void 
+set_algorithm(int x)
+{
+  global_algorithm = x;
+}
+
+/* Set the algorithm option for this command only */
+void 
+set_cmd_algorithm(int x)
+{
+  cmd_algorithm = x; 
+  algorithm = &cmd_algorithm;
+}
+
+/* Unset the algorithm option for this command */
+void
+unset_cmd_algorithm(void)
+{
+  algorithm = &global_algorithm;
+}
+
+/* Return the current algorithm setting */
+int
+get_algorithm(void)
+{
+  return *algorithm;
+}
+
+/* Set the syntax option */
+void 
+set_syntax(int x)
+{
+  syntax = x;
+}
+
+/* Get the current syntax setting */
+int
+get_syntax(void)
+{
+  return syntax;
+}
+
+
 /*
    Local Variables:
    mode: c
 
 int seed_is_set(unsigned long *seed);
 
 
+enum {ENHANCED,COMPATIBLE};
+
+
+/* Set the algorithm option globally */
+void set_algorithm(int x);
+
+/* Set the algorithm option for this command only */
+void set_cmd_algorithm(int x);
+
+/* Unset the algorithm option for this command */
+void unset_cmd_algorithm(void);
+
+/* Return the current algorithm setting */
+int get_algorithm(void);
+
+/* Set the syntax option */
+void set_syntax(int x);
+
+/* Get the current syntax setting */
+int get_syntax(void);
+
+
 #endif /* !settings_h */
 
     PV_NUMERIC = 0020,         /* Vars must be numeric. */
     PV_STRING = 0040,          /* Vars must be string. */
     PV_SAME_TYPE = 00100,      /* All vars must be the same type. */
-    PV_NO_SCRATCH = 00200,     /* Disallow scratch variables. */
+    PV_NO_SCRATCH = 00200      /* Disallow scratch variables. */
   };
 
 struct variable *parse_variable (void);
 
+Sat Mar 27 11:29:06 WST 2004 John Darrington <john@darrington.wattle.id.au>
+
+       * bugs/get.sh Added regression test for a bug in loading a dictionary
+       with the GET command.
+
 Tue Mar 30 22:10:08 2004  Ben Pfaff  <blp@gnu.org>
 
        * Makefile.am: (TESTS) Add bugs/multipass.sh.
 
        command/lag.sh \
        command/list.sh \
        command/loop.sh \
-       command/percentiles.sh \
        command/print.sh \
        command/sample.sh \
        command/sort.sh \
        bugs/alpha-freq.sh \
        bugs/compute-fmt.sh \
        bugs/double-frequency.sh \
+       bugs/get.sh \
        bugs/html-frequency.sh \
        bugs/crosstabs.sh \
        bugs/data-crash.sh \
        xforms/expressions.sh \
        stats/descript-basic.sh \
        stats/descript-missing.sh \
-       stats/moments.sh
+       stats/moments.sh \
+       stats/percentiles-enhanced.sh \
+       stats/percentiles-compatible.sh
 
 noinst_PROGRAMS = gengarbage
 
 
--- /dev/null
+#!/bin/sh
+
+# This program tests for a bug which caused
+# the second procedure after GET FILE to corrupt it's output
+
+
+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/prog.sps <<EOF
+DATA LIST LIST NOTABLE /location * editor * shell * freq * .
+BEGIN DATA.
+    1.00     1.00    1.0     2.00
+    1.00     1.00    2.0    30.00
+    1.00     2.00    1.0     8.00
+    1.00     2.00    2.0    20.00
+    2.00     1.00    1.0     2.00
+    2.00     1.00    2.0    22.00
+    2.00     2.00    1.0     1.00
+    2.00     2.00    2.0     3.00
+END DATA.
+
+SAVE /OUTFILE='$TEMPDIR/foo.sav'.
+
+GET /FILE='$TEMPDIR/foo.sav'.
+
+* This one's ok
+LIST.
+
+* But this one get rubbish
+LIST.
+
+EOF
+if [ $? -ne 0 ] ; then no_result ; fi
+
+activity="run program"
+$SUPERVISOR $here/../src/pspp -o raw-ascii $TEMPDIR/prog.sps
+if [ $? -ne 0 ] ; then no_result ; fi
+
+
+activity="compare output"
+diff -b -B -w $TEMPDIR/pspp.list - << EOF
+LOCATION   EDITOR    SHELL     FREQ
+ -------- -------- -------- --------
+     1.00     1.00     1.00     2.00 
+     1.00     1.00     2.00    30.00 
+     1.00     2.00     1.00     8.00 
+     1.00     2.00     2.00    20.00 
+     2.00     1.00     1.00     2.00 
+     2.00     1.00     2.00    22.00 
+     2.00     2.00     1.00     1.00 
+     2.00     2.00     2.00     3.00 
+ 
+
+LOCATION   EDITOR    SHELL     FREQ
+ -------- -------- -------- --------
+     1.00     1.00     1.00     2.00 
+     1.00     1.00     2.00    30.00 
+     1.00     2.00     1.00     8.00 
+     1.00     2.00     2.00    20.00 
+     2.00     1.00     1.00     2.00 
+     2.00     1.00     2.00    22.00 
+     2.00     2.00     1.00     1.00 
+     2.00     2.00     2.00     3.00 
+ 
+EOF
+if [ $? -ne 0 ] ; then fail ; fi
+
+pass;
 
+++ /dev/null
-#!/bin/sh
-
-# This program tests the PERCENTILES subcommand of the FREQUENCIES cmd
-
-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 prog"
-cat > $TEMPDIR/percents.stat <<EOF
-data list free /z x(f3.2) y(f3.0) d(a30).
-begin data.
-1 3 4 apples
-2 5 6 pairs
-3 4 5 bannanas
-4 3 9 pairs
-5 1 2 pairs
-6 4 5 apricots
-7 4 4 bannanas
-8 4 5 apples
-9 3 3 peaches
-10 2 3 coconuts
-end data.
-
-frequencies z  /statistics=all /percentiles = 5,10,30,90.
-
-finish.
-
-EOF
-if [ $? -ne 0 ] ; then no_result ; fi
-
-
-activity="run prog"
-$SUPERVISOR $here/../src/pspp -o raw-ascii $TEMPDIR/percents.stat
-if [ $? -ne 0 ] ; then no_result ; fi
-
-activity="compare output"
-diff -b -B $TEMPDIR/pspp.list - <<EOF
-1.1 FREQUENCIES.  Z: 
-+-----------+--------+---------+--------+--------+--------+
-|           |        |         |        |  Valid |   Cum  |
-|Value Label|  Value |Frequency| Percent| Percent| Percent|
-#===========#========#=========#========#========#========#
-|           |     .01|        1|    10.0|    10.0|    10.0|
-|           |     .02|        1|    10.0|    10.0|    20.0|
-|           |     .03|        1|    10.0|    10.0|    30.0|
-|           |     .04|        1|    10.0|    10.0|    40.0|
-|           |     .05|        1|    10.0|    10.0|    50.0|
-|           |     .06|        1|    10.0|    10.0|    60.0|
-|           |     .07|        1|    10.0|    10.0|    70.0|
-|           |     .08|        1|    10.0|    10.0|    80.0|
-|           |     .09|        1|    10.0|    10.0|    90.0|
-|           |     .10|        1|    10.0|    10.0|   100.0|
-#===========#========#=========#========#========#========#
-|               Total|       10|   100.0|   100.0|        |
-+--------------------+---------+--------+--------+--------+
-
-Mean            .055
-S.E. Mean       .010
-Median          .   
-Mode            .   
-Std Dev         .030
-Variance        .001
-Kurtosis      -1.200
-S.E. Kurt      1.334
-Skewness        .000
-S.E. Skew       .687
-Range           .090
-Minimum         .010
-Maximum         .100
-Sum             .550
-Percentile 5    .   
-Percentile 10   .010
-Percentile 29   .020
-Percentile 90   .090
-EOF
-if [ $? -ne 0 ] ; then fail ; fi
-
-
-pass;
 
 |      94|       1|  0|100|
 +--------+--------+---+---+
 
-Mean         31.515
-S.E. Mean      .405
-Median         .   
-Mode         21.000
-Std Dev      10.937
-Variance    119.608
-Kurtosis      2.411
-S.E. Kurt      .181
-Skewness      1.345
-S.E. Skew      .090
-Range        76.000
-Minimum      18.000
-Maximum      94.000
-Sum       23006.000
++-----------------+---------+
+|N         Valid  |      730|
+|          Missing|        0|
+|Mean             |   31.515|
+|S.E. Mean        |     .405|
+|Median           |   28.500|
+|Mode             |   21.000|
+|Std Dev          |   10.937|
+|Variance         |  119.608|
+|Kurtosis         |    2.411|
+|S.E. Kurt        |     .181|
+|Skewness         |    1.345|
+|S.E. Skew        |     .090|
+|Range            |   76.000|
+|Minimum          |   18.000|
+|Maximum          |   94.000|
+|Sum              |23006.000|
++-----------------+---------+
 EOF
 if [ $? -ne 0 ] ; then fail ; fi
 
 
--- /dev/null
+#! /bin/sh
+
+# Tests calculation of percentiles with the 
+# COMPATIBLE algorithm set.
+
+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
+
+
+i=1;
+
+activity="create program $i"
+cat > $TEMPDIR/prog.sps <<EOF
+DATA LIST LIST notable /x * .
+BEGIN DATA.
+1 
+2 
+3 
+4 
+5
+END DATA.
+
+FREQUENCIES 
+       VAR=x
+       /ALGORITHM=COMPATIBLE
+       /PERCENTILES = 0 25 50 75 100
+
+EOF
+if [ $? -ne 0 ] ; then no_result; fi
+
+activity="run program $i"
+$SUPERVISOR $here/../src/pspp -o raw-ascii $TEMPDIR/prog.sps
+if [ $? -ne 0 ] ; then no_result ; fi
+
+activity="compare output $i"
+diff -B -b $TEMPDIR/pspp.list - <<EOF
+1.1 FREQUENCIES.  X: 
++-----------+--------+---------+--------+--------+--------+
+|           |        |         |        |  Valid |   Cum  |
+|Value Label|  Value |Frequency| Percent| Percent| Percent|
+#===========#========#=========#========#========#========#
+|           |    1.00|        1|    20.0|    20.0|    20.0|
+|           |    2.00|        1|    20.0|    20.0|    40.0|
+|           |    3.00|        1|    20.0|    20.0|    60.0|
+|           |    4.00|        1|    20.0|    20.0|    80.0|
+|           |    5.00|        1|    20.0|    20.0|   100.0|
+#===========#========#=========#========#========#========#
+|               Total|        5|   100.0|   100.0|        |
++--------------------+---------+--------+--------+--------+
+
++-------------------+-----+
+|N           Valid  |    5|
+|            Missing|    0|
+|Mean               |3.000|
+|Std Dev            |1.581|
+|Minimum            |1.000|
+|Maximum            |5.000|
+|Percentiles 0      |1.000|
+|            25     |1.500|
+|            50     |3.000|
+|            75     |4.500|
+|            100    |5.000|
++-------------------+-----+
+EOF
+if [ $? -ne 0 ] ; then fail ; fi
+
+pass;
 
--- /dev/null
+#! /bin/sh
+
+# Tests calculation of percentiles with the 
+# ENHANCED algorithm set.
+
+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
+
+
+i=1;
+
+activity="create program $i"
+cat > $TEMPDIR/prog.sps <<EOF
+DATA LIST LIST notable /x * .
+BEGIN DATA.
+1 
+2 
+3 
+4 
+5
+END DATA.
+
+FREQUENCIES 
+       VAR=x
+       /PERCENTILES = 0 25 50 75 100
+
+EOF
+if [ $? -ne 0 ] ; then no_result; fi
+
+activity="run program $i"
+$SUPERVISOR $here/../src/pspp -o raw-ascii $TEMPDIR/prog.sps
+if [ $? -ne 0 ] ; then no_result ; fi
+
+activity="compare output $i"
+diff -B -b $TEMPDIR/pspp.list - <<EOF
+1.1 FREQUENCIES.  X: 
++-----------+--------+---------+--------+--------+--------+
+|           |        |         |        |  Valid |   Cum  |
+|Value Label|  Value |Frequency| Percent| Percent| Percent|
+#===========#========#=========#========#========#========#
+|           |    1.00|        1|    20.0|    20.0|    20.0|
+|           |    2.00|        1|    20.0|    20.0|    40.0|
+|           |    3.00|        1|    20.0|    20.0|    60.0|
+|           |    4.00|        1|    20.0|    20.0|    80.0|
+|           |    5.00|        1|    20.0|    20.0|   100.0|
+#===========#========#=========#========#========#========#
+|               Total|        5|   100.0|   100.0|        |
++--------------------+---------+--------+--------+--------+
+
++-------------------+-----+
+|N           Valid  |    5|
+|            Missing|    0|
+|Mean               |3.000|
+|Std Dev            |1.581|
+|Minimum            |1.000|
+|Maximum            |5.000|
+|Percentiles 0      |1.000|
+|            25     |2.000|
+|            50     |3.000|
+|            75     |4.000|
+|            100    |5.000|
++-------------------+-----+
+EOF
+if [ $? -ne 0 ] ; then fail ; fi
+
+
+
+i=$[$i+1];
+
+activity="create program $i"
+cat > $TEMPDIR/prog.sps <<EOF
+DATA LIST LIST notable /x * f *.
+BEGIN DATA.
+1 2
+2 2
+3 2
+4 1
+4 1
+5 1
+5 1
+END DATA.
+
+WEIGHT BY f.
+
+FREQUENCIES 
+       VAR=x
+       /PERCENTILES = 0 25 50 75 100
+
+EOF
+if [ $? -ne 0 ] ; then no_result; fi
+
+
+activity="run program $i"
+$SUPERVISOR $here/../src/pspp -o raw-ascii $TEMPDIR/prog.sps
+if [ $? -ne 0 ] ; then no_result ; fi
+
+activity="compare output $i"
+diff -B -b $TEMPDIR/pspp.list - <<EOF
+1.1 FREQUENCIES.  X: 
++-----------+--------+---------+--------+--------+--------+
+|           |        |         |        |  Valid |   Cum  |
+|Value Label|  Value |Frequency| Percent| Percent| Percent|
+#===========#========#=========#========#========#========#
+|           |    1.00|        2|    20.0|    20.0|    20.0|
+|           |    2.00|        2|    20.0|    20.0|    40.0|
+|           |    3.00|        2|    20.0|    20.0|    60.0|
+|           |    4.00|        2|    20.0|    20.0|    80.0|
+|           |    5.00|        2|    20.0|    20.0|   100.0|
+#===========#========#=========#========#========#========#
+|               Total|       10|   100.0|   100.0|        |
++--------------------+---------+--------+--------+--------+
+
++-------------------+-----+
+|N           Valid  |   10|
+|            Missing|    0|
+|Mean               |3.000|
+|Std Dev            |1.491|
+|Minimum            |1.000|
+|Maximum            |5.000|
+|Percentiles 0      |1.000|
+|            25     |2.000|
+|            50     |3.000|
+|            75     |4.000|
+|            100    |5.000|
++-------------------+-----+
+EOF
+if [ $? -ne 0 ] ; then fail ; fi
+
+
+
+i=$[$i+1];
+
+activity="create program $i"
+cat > $TEMPDIR/prog.sps <<EOF
+DATA LIST LIST notable /x * f *.
+BEGIN DATA.
+1 1
+3 2
+4 1
+5 1
+5 1
+END DATA.
+
+WEIGHT BY f.
+
+FREQUENCIES 
+       VAR=x
+       /PERCENTILES = 0 25 50 75 100
+
+EOF
+if [ $? -ne 0 ] ; then no_result; fi
+
+
+activity="run program $i"
+$SUPERVISOR $here/../src/pspp -o raw-ascii $TEMPDIR/prog.sps
+if [ $? -ne 0 ] ; then no_result ; fi
+
+activity="compare output $i"
+diff -B -b $TEMPDIR/pspp.list - <<EOF
+1.1 FREQUENCIES.  X: 
++-----------+--------+---------+--------+--------+--------+
+|           |        |         |        |  Valid |   Cum  |
+|Value Label|  Value |Frequency| Percent| Percent| Percent|
+#===========#========#=========#========#========#========#
+|           |    1.00|        1|    16.7|    16.7|    16.7|
+|           |    3.00|        2|    33.3|    33.3|    50.0|
+|           |    4.00|        1|    16.7|    16.7|    66.7|
+|           |    5.00|        2|    33.3|    33.3|   100.0|
+#===========#========#=========#========#========#========#
+|               Total|        6|   100.0|   100.0|        |
++--------------------+---------+--------+--------+--------+
+
++-------------------+-----+
+|N           Valid  |    6|
+|            Missing|    0|
+|Mean               |3.500|
+|Std Dev            |1.517|
+|Minimum            |1.000|
+|Maximum            |5.000|
+|Percentiles 0      |1.000|
+|            25     |3.000|
+|            50     |3.500|
+|            75     |4.750|
+|            100    |5.000|
++-------------------+-----+
+EOF
+if [ $? -ne 0 ] ; then fail ; fi
+
+i=$[$i+1];
+
+activity="create program $i"
+cat > $TEMPDIR/prog.sps <<EOF
+DATA LIST LIST notable /x * f *.
+BEGIN DATA.
+1 1
+3 2
+4 1
+5 1
+5 1
+99 4
+END DATA.
+
+MISSING VALUE x (99.0) .
+WEIGHT BY f.
+
+FREQUENCIES 
+       VAR=x
+       /PERCENTILES = 0 25 50 75 100
+
+EOF
+if [ $? -ne 0 ] ; then no_result; fi
+
+
+activity="run program $i"
+$SUPERVISOR $here/../src/pspp -o raw-ascii $TEMPDIR/prog.sps
+if [ $? -ne 0 ] ; then no_result ; fi
+
+activity="compare output $i"
+diff -B -b $TEMPDIR/pspp.list - <<EOF
+1.1 FREQUENCIES.  X: 
++-----------+--------+---------+--------+--------+--------+
+|           |        |         |        |  Valid |   Cum  |
+|Value Label|  Value |Frequency| Percent| Percent| Percent|
+#===========#========#=========#========#========#========#
+|           |    1.00|        1|    10.0|    16.7|    16.7|
+|           |    3.00|        2|    20.0|    33.3|    50.0|
+|           |    4.00|        1|    10.0|    16.7|    66.7|
+|           |    5.00|        2|    20.0|    33.3|   100.0|
+|           |   99.00|        4|    40.0| Missing|        |
+#===========#========#=========#========#========#========#
+|               Total|       10|   100.0|   100.0|        |
++--------------------+---------+--------+--------+--------+
+
++-------------------+-----+
+|N           Valid  |    6|
+|            Missing|    4|
+|Mean               |3.500|
+|Std Dev            |1.517|
+|Minimum            |1.000|
+|Maximum            |5.000|
+|Percentiles 0      |1.000|
+|            25     |3.000|
+|            50     |3.500|
+|            75     |4.750|
+|            100    |5.000|
++-------------------+-----+
+EOF
+if [ $? -ne 0 ] ; then fail ; fi
+
+pass;
\ No newline at end of file