From 30ef6754efa1df7b8f3e30b63e81d739a3a50171 Mon Sep 17 00:00:00 2001 From: John Darrington Date: Thu, 5 Feb 2004 06:56:45 +0000 Subject: [PATCH] Fixed a bug which crashed PSPP under invalid input. Factored out some translatable strings. --- po/pspp.pot | 272 ++++++++++++++++----------------------- src/aggregate.c | 4 +- src/data-list.c | 10 +- src/set.q | 6 +- tests/Makefile.am | 1 + tests/bugs/data-crash.sh | 62 +++++++++ 6 files changed, 187 insertions(+), 168 deletions(-) create mode 100755 tests/bugs/data-crash.sh diff --git a/po/pspp.pot b/po/pspp.pot index 999215f8..07117ae5 100644 --- a/po/pspp.pot +++ b/po/pspp.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: pspp-dev@gnu.org\n" -"POT-Creation-Date: 2004-02-03 19:04+0800\n" +"POT-Creation-Date: 2004-02-05 14:00+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,281 +17,281 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" -#: src/crosstabs.q:255 +#: src/crosstabs.q:254 msgid "" "Missing mode REPORT not allowed in general mode. Assuming MISSING=TABLE." msgstr "" -#: src/crosstabs.q:265 +#: src/crosstabs.q:264 msgid "Write mode ALL not allowed in general mode. Assuming WRITE=CELLS." msgstr "" -#: src/crosstabs.q:324 +#: src/crosstabs.q:323 msgid "expecting BY" msgstr "" -#: src/crosstabs.q:391 +#: src/crosstabs.q:390 msgid "VARIABLES must be specified before TABLES." msgstr "" -#: src/crosstabs.q:428 +#: src/crosstabs.q:427 #, c-format msgid "Maximum value (%ld) less than minimum value (%ld)." msgstr "" -#: src/crosstabs.q:865 +#: src/crosstabs.q:864 msgid "Summary." msgstr "" -#: src/crosstabs.q:867 +#: src/crosstabs.q:866 msgid "Cases" msgstr "" -#: src/crosstabs.q:868 src/frequencies.q:999 +#: src/crosstabs.q:867 src/frequencies.q:999 msgid "Valid" msgstr "" -#: src/crosstabs.q:869 src/frequencies.q:1066 +#: src/crosstabs.q:868 src/frequencies.q:1066 msgid "Missing" msgstr "" -#: src/crosstabs.q:870 src/crosstabs.q:1071 src/crosstabs.q:1800 +#: src/crosstabs.q:869 src/crosstabs.q:1070 src/crosstabs.q:1799 #: src/frequencies.q:1075 msgid "Total" msgstr "" -#: src/crosstabs.q:880 src/t-test.q:529 src/t-test.q:560 src/t-test.q:640 +#: src/crosstabs.q:879 src/t-test.q:510 src/t-test.q:533 src/t-test.q:598 msgid "N" msgstr "" -#: src/crosstabs.q:881 src/frequencies.q:1003 src/frequencies.q:1004 +#: src/crosstabs.q:880 src/frequencies.q:1003 src/frequencies.q:1004 #: src/frequencies.q:1005 msgid "Percent" msgstr "" -#: src/crosstabs.q:1120 +#: src/crosstabs.q:1119 msgid "count" msgstr "" -#: src/crosstabs.q:1121 +#: src/crosstabs.q:1120 msgid "row %" msgstr "" -#: src/crosstabs.q:1122 +#: src/crosstabs.q:1121 msgid "column %" msgstr "" -#: src/crosstabs.q:1123 +#: src/crosstabs.q:1122 msgid "total %" msgstr "" -#: src/crosstabs.q:1124 +#: src/crosstabs.q:1123 msgid "expected" msgstr "" -#: src/crosstabs.q:1125 +#: src/crosstabs.q:1124 msgid "residual" msgstr "" -#: src/crosstabs.q:1126 +#: src/crosstabs.q:1125 msgid "std. resid." msgstr "" -#: src/crosstabs.q:1127 +#: src/crosstabs.q:1126 msgid "adj. resid." msgstr "" -#: src/crosstabs.q:1160 src/crosstabs.q:1187 src/crosstabs.q:1207 -#: src/crosstabs.q:1228 +#: src/crosstabs.q:1159 src/crosstabs.q:1186 src/crosstabs.q:1206 +#: src/crosstabs.q:1227 msgid "Statistic" msgstr "" -#: src/crosstabs.q:1161 src/crosstabs.q:1188 src/crosstabs.q:1208 -#: src/crosstabs.q:1230 src/frequencies.q:1001 src/frequencies.q:1118 +#: src/crosstabs.q:1160 src/crosstabs.q:1187 src/crosstabs.q:1207 +#: src/crosstabs.q:1229 src/frequencies.q:1001 src/frequencies.q:1118 #: src/sysfile-info.c:536 src/vfm.c:1094 msgid "Value" msgstr "" -#: src/crosstabs.q:1162 src/t-test.q:809 src/t-test.q:913 src/t-test.q:998 +#: src/crosstabs.q:1161 src/t-test.q:741 src/t-test.q:815 src/t-test.q:869 msgid "df" msgstr "" -#: src/crosstabs.q:1164 +#: src/crosstabs.q:1163 msgid "Asymp. Sig. (2-sided)" msgstr "" -#: src/crosstabs.q:1166 +#: src/crosstabs.q:1165 msgid "Exact. Sig. (2-sided)" msgstr "" -#: src/crosstabs.q:1168 +#: src/crosstabs.q:1167 msgid "Exact. Sig. (1-sided)" msgstr "" -#: src/crosstabs.q:1186 src/crosstabs.q:1227 +#: src/crosstabs.q:1185 src/crosstabs.q:1226 msgid "Category" msgstr "" -#: src/crosstabs.q:1189 src/crosstabs.q:1231 +#: src/crosstabs.q:1188 src/crosstabs.q:1230 msgid "Asymp. Std. Error" msgstr "" -#: src/crosstabs.q:1190 src/crosstabs.q:1232 +#: src/crosstabs.q:1189 src/crosstabs.q:1231 msgid "Approx. T" msgstr "" -#: src/crosstabs.q:1191 src/crosstabs.q:1233 +#: src/crosstabs.q:1190 src/crosstabs.q:1232 msgid "Approx. Sig." msgstr "" -#: src/crosstabs.q:1206 +#: src/crosstabs.q:1205 #, c-format msgid " 95%% Confidence Interval" msgstr "" -#: src/crosstabs.q:1209 src/t-test.q:813 src/t-test.q:910 src/t-test.q:1001 +#: src/crosstabs.q:1208 src/t-test.q:745 src/t-test.q:812 src/t-test.q:872 msgid "Lower" msgstr "" -#: src/crosstabs.q:1210 src/t-test.q:814 src/t-test.q:911 src/t-test.q:1002 +#: src/crosstabs.q:1209 src/t-test.q:746 src/t-test.q:813 src/t-test.q:873 msgid "Upper" msgstr "" -#: src/crosstabs.q:1229 +#: src/crosstabs.q:1228 msgid "Type" msgstr "" -#: src/crosstabs.q:1977 +#: src/crosstabs.q:1976 msgid "Pearson Chi-Square" msgstr "" -#: src/crosstabs.q:1978 +#: src/crosstabs.q:1977 msgid "Likelihood Ratio" msgstr "" -#: src/crosstabs.q:1979 +#: src/crosstabs.q:1978 msgid "Fisher's Exact Test" msgstr "" -#: src/crosstabs.q:1980 +#: src/crosstabs.q:1979 msgid "Continuity Correction" msgstr "" -#: src/crosstabs.q:1981 +#: src/crosstabs.q:1980 msgid "Linear-by-Linear Association" msgstr "" -#: src/crosstabs.q:2018 src/crosstabs.q:2088 src/crosstabs.q:2147 +#: src/crosstabs.q:2017 src/crosstabs.q:2087 src/crosstabs.q:2146 msgid "N of Valid Cases" msgstr "" -#: src/crosstabs.q:2034 src/crosstabs.q:2163 +#: src/crosstabs.q:2033 src/crosstabs.q:2162 msgid "Nominal by Nominal" msgstr "" -#: src/crosstabs.q:2035 src/crosstabs.q:2164 +#: src/crosstabs.q:2034 src/crosstabs.q:2163 msgid "Ordinal by Ordinal" msgstr "" -#: src/crosstabs.q:2036 +#: src/crosstabs.q:2035 msgid "Interval by Interval" msgstr "" -#: src/crosstabs.q:2037 +#: src/crosstabs.q:2036 msgid "Measure of Agreement" msgstr "" -#: src/crosstabs.q:2042 +#: src/crosstabs.q:2041 msgid "Phi" msgstr "" -#: src/crosstabs.q:2043 +#: src/crosstabs.q:2042 msgid "Cramer's V" msgstr "" -#: src/crosstabs.q:2044 +#: src/crosstabs.q:2043 msgid "Contingency Coefficient" msgstr "" -#: src/crosstabs.q:2045 +#: src/crosstabs.q:2044 msgid "Kendall's tau-b" msgstr "" -#: src/crosstabs.q:2046 +#: src/crosstabs.q:2045 msgid "Kendall's tau-c" msgstr "" -#: src/crosstabs.q:2047 +#: src/crosstabs.q:2046 msgid "Gamma" msgstr "" -#: src/crosstabs.q:2048 +#: src/crosstabs.q:2047 msgid "Spearman Correlation" msgstr "" -#: src/crosstabs.q:2049 +#: src/crosstabs.q:2048 msgid "Pearson's R" msgstr "" -#: src/crosstabs.q:2050 +#: src/crosstabs.q:2049 msgid "Kappa" msgstr "" -#: src/crosstabs.q:2120 +#: src/crosstabs.q:2119 #, c-format msgid "Odds Ratio for %s (%g / %g)" msgstr "" -#: src/crosstabs.q:2123 +#: src/crosstabs.q:2122 #, c-format msgid "Odds Ratio for %s (%.*s / %.*s)" msgstr "" -#: src/crosstabs.q:2131 +#: src/crosstabs.q:2130 #, c-format msgid "For cohort %s = %g" msgstr "" -#: src/crosstabs.q:2134 +#: src/crosstabs.q:2133 #, c-format msgid "For cohort %s = %.*s" msgstr "" -#: src/crosstabs.q:2165 +#: src/crosstabs.q:2164 msgid "Nominal by Interval" msgstr "" -#: src/crosstabs.q:2170 +#: src/crosstabs.q:2169 msgid "Lambda" msgstr "" -#: src/crosstabs.q:2171 +#: src/crosstabs.q:2170 msgid "Goodman and Kruskal tau" msgstr "" -#: src/crosstabs.q:2172 +#: src/crosstabs.q:2171 msgid "Uncertainty Coefficient" msgstr "" -#: src/crosstabs.q:2173 +#: src/crosstabs.q:2172 msgid "Somers' d" msgstr "" -#: src/crosstabs.q:2174 +#: src/crosstabs.q:2173 msgid "Eta" msgstr "" -#: src/crosstabs.q:2179 +#: src/crosstabs.q:2178 msgid "Symmetric" msgstr "" -#: src/crosstabs.q:2180 src/crosstabs.q:2181 +#: src/crosstabs.q:2179 src/crosstabs.q:2180 #, c-format msgid "%s Dependent" msgstr "" -#: src/descript.q:152 src/frequencies.q:94 src/t-test.q:530 src/t-test.q:561 -#: src/t-test.q:639 src/t-test.q:907 +#: src/descript.q:152 src/frequencies.q:94 src/t-test.q:511 src/t-test.q:534 +#: src/t-test.q:597 src/t-test.q:809 msgid "Mean" msgstr "" @@ -786,12 +786,10 @@ msgstr "" msgid "MXLOOPS must be at least 1." msgstr "" -#: src/set.q:314 -msgid "TBFONTS not implemented." -msgstr "" - -#: src/set.q:316 -msgid "TB1 not implemented." +#: src/set.q:314 src/set.q:316 src/set.q:846 src/cmdline.c:112 +#: src/cmdline.c:131 src/cmdline.c:143 src/command.c:196 +#, c-format +msgid "%s is not yet implemented." msgstr "" #: src/set.q:390 @@ -855,156 +853,156 @@ msgstr "" msgid "Frame color must be between 0 and 6." msgstr "" -#: src/set.q:846 -msgid "VIEWLENGTH not implemented." -msgstr "" - #: src/set.q:865 msgid "Drive letter expected in WORKDEV subcommand." msgstr "" -#: src/t-test.q:158 +#: src/t-test.q:166 msgid "Exactly one of TESTVAL, GROUPS or PAIRS subcommands is required" msgstr "" -#: src/t-test.q:172 +#: src/t-test.q:180 msgid "VARIABLES subcommand is not appropriate with PAIRS" msgstr "" -#: src/t-test.q:207 src/t-test.q:276 +#: src/t-test.q:216 src/t-test.q:287 #, c-format msgid "`%s' is not a variable name" msgstr "" -#: src/t-test.q:220 +#: src/t-test.q:229 #, c-format msgid "Long string variable %s is not valid here." msgstr "" -#: src/t-test.q:237 +#: src/t-test.q:245 msgid "" "When applying GROUPS to a string variable, at least one value must be " "specified." msgstr "" -#: src/t-test.q:318 +#: src/t-test.q:322 #, 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:337 +#: src/t-test.q:339 msgid "At least two variables must be specified on PAIRS." msgstr "" -#: src/t-test.q:525 +#: src/t-test.q:508 msgid "One-Sample Statistics" msgstr "" -#: src/t-test.q:531 src/t-test.q:562 src/t-test.q:641 src/t-test.q:908 +#: src/t-test.q:512 src/t-test.q:535 src/t-test.q:599 src/t-test.q:810 msgid "Std. Deviation" msgstr "" -#: src/t-test.q:532 src/t-test.q:563 src/t-test.q:642 +#: src/t-test.q:513 src/t-test.q:536 src/t-test.q:600 msgid "SE. Mean" msgstr "" -#: src/t-test.q:554 +#: src/t-test.q:530 msgid "Group Statistics" msgstr "" -#: src/t-test.q:634 +#: src/t-test.q:594 msgid "Paired Sample Statistics" msgstr "" -#: src/t-test.q:665 src/t-test.q:940 +#: src/t-test.q:618 src/t-test.q:832 #, c-format msgid "Pair %d" msgstr "" -#: src/t-test.q:781 +#: src/t-test.q:726 msgid "Independent Samples Test" msgstr "" -#: src/t-test.q:800 +#: src/t-test.q:734 msgid "Levine's Test for Equality of Variances" msgstr "" -#: src/t-test.q:803 +#: src/t-test.q:736 msgid "t-test for Equality of Means" msgstr "" -#: src/t-test.q:806 +#: src/t-test.q:738 msgid "F" msgstr "" -#: src/t-test.q:807 +#: src/t-test.q:739 msgid "Sig." msgstr "" -#: src/t-test.q:808 src/t-test.q:912 src/t-test.q:997 +#: src/t-test.q:740 src/t-test.q:814 src/t-test.q:868 msgid "t" msgstr "" -#: src/t-test.q:810 src/t-test.q:914 src/t-test.q:999 +#: src/t-test.q:742 src/t-test.q:816 src/t-test.q:870 msgid "Sig. (2-tailed)" msgstr "" -#: src/t-test.q:811 src/t-test.q:1000 +#: src/t-test.q:743 src/t-test.q:871 msgid "Mean Difference" msgstr "" -#: src/t-test.q:812 +#: src/t-test.q:744 msgid "Std. Error Difference" msgstr "" -#: src/t-test.q:819 src/t-test.q:898 src/t-test.q:985 +#: src/t-test.q:750 src/t-test.q:802 src/t-test.q:862 #, c-format msgid "%d%% Confidence Interval of the Difference" msgstr "" -#: src/t-test.q:846 +#: src/t-test.q:770 msgid "Equal variances assumed" msgstr "" -#: src/t-test.q:849 +#: src/t-test.q:773 msgid "Equal variances not assumed" msgstr "" -#: src/t-test.q:872 +#: src/t-test.q:791 msgid "Paired Samples Test" msgstr "" -#: src/t-test.q:880 +#: src/t-test.q:794 msgid "Paired Differences" msgstr "" -#: src/t-test.q:909 +#: src/t-test.q:811 msgid "Std. Error Mean" msgstr "" -#: src/t-test.q:968 +#: src/t-test.q:853 msgid "One-Sample Test" msgstr "" -#: src/t-test.q:975 +#: src/t-test.q:857 #, c-format msgid "Test Value = %f" msgstr "" -#: src/aggregate.c:188 -msgid "OUTFILE specified multiple times." +#: src/t-test.q:913 src/t-test.q:929 +#, c-format +msgid "Error calculating T statistic (cdft returned %d)." +msgstr "" + +#: src/aggregate.c:188 src/aggregate.c:229 src/data-list.c:1321 +#: src/data-list.c:1356 src/data-list.c:1369 src/data-list.c:1382 +#: src/data-list.c:1415 +#, c-format +msgid "%s subcommand given multiple times." msgstr "" #: src/aggregate.c:214 msgid "while expecting COLUMNWISE" msgstr "" -#: src/aggregate.c:229 -msgid "BREAK specified multiple times." -msgstr "" - #: src/aggregate.c:258 msgid "BREAK subcommand not specified." msgstr "" @@ -1209,11 +1207,6 @@ msgstr "" msgid "Duplicate variable name %s among target variables." msgstr "" -#: src/cmdline.c:112 src/cmdline.c:131 src/cmdline.c:143 src/command.c:196 -#, c-format -msgid "%s is not yet implemented." -msgstr "" - #: src/cmdline.c:157 msgid "" "\n" @@ -1747,36 +1740,16 @@ msgid "" "TYPE." msgstr "" -#: src/data-list.c:1321 -msgid "STARTS subcommand given multiple times." -msgstr "" - #: src/data-list.c:1345 #, c-format msgid "STARTS beginning column (%d) exceeds STARTS ending column (%d)." msgstr "" -#: src/data-list.c:1356 -msgid "OCCURS subcommand given multiple times." -msgstr "" - -#: src/data-list.c:1369 -msgid "LENGTH subcommand given multiple times." -msgstr "" - -#: src/data-list.c:1382 -msgid "CONTINUED subcommand given multiple times." -msgstr "" - #: src/data-list.c:1401 #, c-format msgid "CONTINUED beginning column (%d) exceeds CONTINUED ending column (%d)." msgstr "" -#: src/data-list.c:1415 -msgid "ID subcommand given multiple times." -msgstr "" - #: src/data-list.c:1424 #, c-format msgid "ID beginning column (%ld) must be positive." @@ -2333,12 +2306,10 @@ msgid "Boolean" msgstr "" #: src/expr-prs.c:1695 -#, c-format msgid "!!TERMINAL!!" msgstr "" #: src/expr-prs.c:1721 -#, c-format msgid "!!SENTINEL!!" msgstr "" @@ -2656,17 +2627,14 @@ msgid "`)' expected after output format." msgstr "" #: src/formats.c:153 -#, c-format msgid "Formats:\n" msgstr "" #: src/formats.c:154 -#, c-format msgid " Name Print Write\n" msgstr "" #: src/get.c:110 -#, c-format msgid "GET translation table from file to memory:\n" msgstr "" @@ -2704,7 +2672,6 @@ msgid "Requested renaming duplicates variable name %s." msgstr "" #: src/get.c:461 -#, c-format msgid "" "\n" "Variables in dictionary:\n" @@ -2764,7 +2731,6 @@ msgid "expecting COMM or TAPE" msgstr "" #: src/get.c:1393 -#, c-format msgid "IMPORT translation table from file to memory:\n" msgstr "" @@ -2958,7 +2924,6 @@ msgid "<>" msgstr "" #: src/hash.c:492 -#, c-format msgid "hash table:" msgstr "" @@ -2968,7 +2933,6 @@ msgid "bad ordering of keys %d and %d\n" msgstr "" #: src/heap.c:177 -#, c-format msgid "Heap contents:\n" msgstr "" @@ -3109,7 +3073,6 @@ msgid "The rest of this command has been discarded." msgstr "" #: src/lexer.c:842 src/print.c:1174 -#, c-format msgid "" msgstr "" @@ -3427,7 +3390,6 @@ msgid "(long string variable)" msgstr "" #: src/mis-val.c:376 -#, c-format msgid "(no missing values)\n" msgstr "" @@ -3572,7 +3534,6 @@ msgid "Error reading device definition file." msgstr "" #: src/output.c:462 -#, c-format msgid "" "Driver classes:\n" "\t" @@ -4169,12 +4130,10 @@ msgid "" msgstr "" #: src/recode.c:869 -#, c-format msgid "!!END!!" msgstr "" #: src/recode.c:890 src/recode.c:906 -#, c-format msgid "!!ERROR!!" msgstr "" @@ -5008,7 +4967,6 @@ msgid "Value labels:" msgstr "" #: src/val-labs.c:237 -#, c-format msgid " (no value labels)\n" msgstr "" @@ -5021,12 +4979,10 @@ msgid "Truncating variable label to 120 characters." msgstr "" #: src/var-labs.c:87 -#, c-format msgid "Variable labels:\n" msgstr "" #: src/var-labs.c:94 -#, c-format msgid "(no variable label)" msgstr "" diff --git a/src/aggregate.c b/src/aggregate.c index 67f4985a..34ac3e84 100644 --- a/src/aggregate.c +++ b/src/aggregate.c @@ -185,7 +185,7 @@ cmd_aggregate (void) { free (v_sort); dict_destroy (agr_dict); - msg (SE, _("OUTFILE specified multiple times.")); + msg (SE, _("%s subcommand given multiple times."),"OUTFILE"); return CMD_FAILURE; } seen |= 1; @@ -226,7 +226,7 @@ cmd_aggregate (void) { free (v_sort); dict_destroy (agr_dict); - msg (SE, _("BREAK specified multiple times.")); + msg (SE, _("%s subcommand given multiple times."),"BREAK"); return CMD_FAILURE; } seen |= 8; diff --git a/src/data-list.c b/src/data-list.c index 88fc62b6..b5d72f4e 100644 --- a/src/data-list.c +++ b/src/data-list.c @@ -1318,7 +1318,7 @@ cmd_repeating_data (void) lex_match ('='); if (seen & 1) { - msg (SE, _("STARTS subcommand given multiple times.")); + msg (SE, _("%s subcommand given multiple times."),"STARTS"); return CMD_FAILURE; } seen |= 1; @@ -1353,7 +1353,7 @@ cmd_repeating_data (void) lex_match ('='); if (seen & 2) { - msg (SE, _("OCCURS subcommand given multiple times.")); + msg (SE, _("%s subcommand given multiple times."),"OCCURS"); return CMD_FAILURE; } seen |= 2; @@ -1366,7 +1366,7 @@ cmd_repeating_data (void) lex_match ('='); if (seen & 4) { - msg (SE, _("LENGTH subcommand given multiple times.")); + msg (SE, _("%s subcommand given multiple times."),"LENGTH"); return CMD_FAILURE; } seen |= 4; @@ -1379,7 +1379,7 @@ cmd_repeating_data (void) lex_match ('='); if (seen & 8) { - msg (SE, _("CONTINUED subcommand given multiple times.")); + msg (SE, _("%s subcommand given multiple times."),"CONTINUED"); return CMD_FAILURE; } seen |= 8; @@ -1412,7 +1412,7 @@ cmd_repeating_data (void) lex_match ('='); if (seen & 16) { - msg (SE, _("ID subcommand given multiple times.")); + msg (SE, _("%s subcommand given multiple times."),"ID"); return CMD_FAILURE; } seen |= 16; diff --git a/src/set.q b/src/set.q index 89d7ce2c..c34a6a8a 100644 --- a/src/set.q +++ b/src/set.q @@ -311,9 +311,9 @@ cmd_set (void) if (cmd.s_scripttab) msg (SE, _("%s is obsolete."),"SCRIPTTAB"); if (cmd.s_tbfonts) - msg (SW, _("TBFONTS not implemented.")); + msg (SW, _("%s is not yet implemented."),"TBFONTS"); if (cmd.s_tb1) - msg (SW, _("TB1 not implemented.")); + msg (SW, _("%s is not yet implemented."),"TB1"); if (cmd.undef != -1) set_undefined = cmd.undef == STC_NOWARN ? 0 : 1; if (cmd.n_workspace != NOT_LONG) @@ -843,7 +843,7 @@ stc_custom_viewlength (struct cmd_set *cmd unused) } #if __MSDOS__ - msg (SW, _("VIEWLENGTH not implemented.")); + msg (SW, _("%s is not yet implemented."),"VIEWLENGTH"); #endif /* dos */ return 1; } diff --git a/tests/Makefile.am b/tests/Makefile.am index fe8de35d..702ccd27 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -26,6 +26,7 @@ TESTS = command/aggregate.sh \ bugs/double-frequency.sh \ bugs/html-frequency.sh \ bugs/crosstabs.sh \ + bugs/data-crash.sh \ bugs/random.sh noinst_PROGRAMS = gengarbage diff --git a/tests/bugs/data-crash.sh b/tests/bugs/data-crash.sh new file mode 100755 index 00000000..73bca66a --- /dev/null +++ b/tests/bugs/data-crash.sh @@ -0,0 +1,62 @@ +#!/bin/sh + +# This program tests for a bug which crashed pspp when given certain +# invalid input + +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/ct.stat < /dev/null +if [ $? -ne 1 ] ; then fail ; fi + + +pass; -- 2.30.2