projects
/
pspp
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Terminal interface: Remove support for the ncurses library.
[pspp]
/
src
/
language
/
stats
/
t-test-parser.c
diff --git
a/src/language/stats/t-test-parser.c
b/src/language/stats/t-test-parser.c
index 6b14adbdb35ff4c6b072583a54c1ba2104f730ce..9a0043aa45761db7771a25a96a2f7db02b046e39 100644
(file)
--- a/
src/language/stats/t-test-parser.c
+++ b/
src/language/stats/t-test-parser.c
@@
-44,9
+44,9
@@
cmd_t_test (struct lexer *lexer, struct dataset *ds)
/* Variables pertaining to the paired mode */
const struct variable **v1 = NULL;
/* Variables pertaining to the paired mode */
const struct variable **v1 = NULL;
- size_t n_v1;
+ size_t n_v1
= 0
;
const struct variable **v2 = NULL;
const struct variable **v2 = NULL;
- size_t n_v2;
+ size_t n_v2
= 0
;
size_t n_pairs = 0;
vp *pairs = NULL;
size_t n_pairs = 0;
vp *pairs = NULL;
@@
-80,7
+80,8
@@
cmd_t_test (struct lexer *lexer, struct dataset *ds)
mode_count++;
tt.mode = MODE_SINGLE;
lex_match (lexer, T_EQUALS);
mode_count++;
tt.mode = MODE_SINGLE;
lex_match (lexer, T_EQUALS);
- lex_force_num (lexer);
+ if (!lex_force_num (lexer))
+ goto parse_failed;
testval = lex_number (lexer);
lex_get (lexer);
}
testval = lex_number (lexer);
lex_get (lexer);
}
@@
-100,14
+101,16
@@
cmd_t_test (struct lexer *lexer, struct dataset *ds)
value_init (&gval0, var_get_width (gvar));
parse_value (lexer, &gval0, gvar);
cut = true;
value_init (&gval0, var_get_width (gvar));
parse_value (lexer, &gval0, gvar);
cut = true;
- if (lex_
match (lexer, T_COMMA)
)
+ if (lex_
token (lexer) != T_RPAREN
)
{
{
+ lex_match (lexer, T_COMMA);
value_init (&gval1, var_get_width (gvar));
parse_value (lexer, &gval1, gvar);
cut = false;
}
value_init (&gval1, var_get_width (gvar));
parse_value (lexer, &gval1, gvar);
cut = false;
}
- lex_force_match (lexer, T_RPAREN);
+ if (! lex_force_match (lexer, T_RPAREN))
+ goto parse_failed;
}
else
{
}
else
{
@@
-272,13
+275,15
@@
cmd_t_test (struct lexer *lexer, struct dataset *ds)
else if (lex_match_id (lexer, "CRITERIA"))
{
lex_match (lexer, T_EQUALS);
else if (lex_match_id (lexer, "CRITERIA"))
{
lex_match (lexer, T_EQUALS);
- if ( lex_force_match_id (lexer, "CI"))
+ if ( lex_
match_id (lexer, "CIN") || lex_
force_match_id (lexer, "CI"))
if ( lex_force_match (lexer, T_LPAREN))
{
if ( lex_force_match (lexer, T_LPAREN))
{
- lex_force_num (lexer);
+ if (!lex_force_num (lexer))
+ goto parse_failed;
tt.confidence = lex_number (lexer);
lex_get (lexer);
tt.confidence = lex_number (lexer);
lex_get (lexer);
- lex_force_match (lexer, T_RPAREN);
+ if (! lex_force_match (lexer, T_RPAREN))
+ goto parse_failed;
}
}
else
}
}
else
@@
-362,12
+367,17
@@
cmd_t_test (struct lexer *lexer, struct dataset *ds)
free (pairs);
free (v1);
free (v2);
free (pairs);
free (v1);
free (v2);
-
free (tt.vars);
return ok ? CMD_SUCCESS : CMD_FAILURE;
parse_failed:
free (tt.vars);
return ok ? CMD_SUCCESS : CMD_FAILURE;
parse_failed:
+
+ free (pairs);
+ free (v1);
+ free (v2);
+ free (tt.vars);
+
return CMD_FAILURE;
}
return CMD_FAILURE;
}