X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flanguage%2Fstats%2Fregression.c;h=a534a8e8eaced2556a34fdd77dce7c687bb654f9;hb=c875597832d56353461bafd46e268f0ba5fbb5da;hp=9379ce70ef5d1591ad3fa855edb49ef54a957ba6;hpb=a016af53bdf60d1ab95e680e6b31311b21518b75;p=pspp diff --git a/src/language/stats/regression.c b/src/language/stats/regression.c index 9379ce70ef..a534a8e8ea 100644 --- a/src/language/stats/regression.c +++ b/src/language/stats/regression.c @@ -281,11 +281,13 @@ cmd_regression (struct lexer *lexer, struct dataset *ds) { statistics |= STATS_CI; - if (lex_match (lexer, T_LPAREN)) + if (lex_match (lexer, T_LPAREN) && + lex_force_num (lexer)) { regression.ci = lex_number (lexer) / 100.0; lex_get (lexer); - lex_force_match (lexer, T_RPAREN); + if (! lex_force_match (lexer, T_RPAREN)) + goto error; } } else @@ -348,8 +350,7 @@ cmd_regression (struct lexer *lexer, struct dataset *ds) if (regression.resid) { - workspace.extras ++; - workspace.res_idx = 0; + workspace.res_idx = workspace.extras ++; workspace.residvars = xcalloc (regression.n_dep_vars, sizeof (*workspace.residvars)); for (i = 0; i < regression.n_dep_vars; ++i) @@ -361,8 +362,7 @@ cmd_regression (struct lexer *lexer, struct dataset *ds) if (regression.pred) { - workspace.extras ++; - workspace.pred_idx = 1; + workspace.pred_idx = workspace.extras ++; workspace.predvars = xcalloc (regression.n_dep_vars, sizeof (*workspace.predvars)); for (i = 0; i < regression.n_dep_vars; ++i) @@ -709,7 +709,7 @@ run_regression (const struct regression *cmd, for (; (c = casereader_read (r)) != NULL; case_unref (c)) { - struct ccase *outc = case_clone (c); + struct ccase *outc = case_create (casewriter_get_proto (ws->writer)); for (k = 0; k < cmd->n_dep_vars; k++) { const struct variable **vars = xnmalloc (cmd->n_vars, sizeof (*vars));