Fixed a bug in the Mann-Whitney test vs. missing=analysis.
[pspp] / src / language / stats / regression.c
index 9379ce70ef5d1591ad3fa855edb49ef54a957ba6..a534a8e8eaced2556a34fdd77dce7c687bb654f9 100644 (file)
@@ -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));