Change how checking for missing values works.
[pspp] / src / language / stats / logistic.c
index 2cf440c31f8829f34ee0416a26feea1ea12adf0f..556b06084146cacab363c33ac6eab9cbdc87c54e 100644 (file)
@@ -227,7 +227,7 @@ predictor_value (const struct ccase *c,
 {
   /* Values of the scalar predictor variables */
   if (index < n_x)
-    return case_data (c, x[index])->f;
+    return case_num (c, x[index]);
 
   /* Coded values of categorical predictor variables (or interactions) */
   if (cats && index - n_x  < categoricals_df_total (cats))
@@ -478,7 +478,7 @@ initial_pass (const struct lr_spec *cmd, struct lr_result *res, struct casereade
       double weight = dict_get_case_weight (cmd->dict, c, &res->warn_bad_weight);
       const union value *depval = case_data (c, cmd->dep_var);
 
-      if (var_is_value_missing (cmd->dep_var, depval, cmd->exclude))
+      if (var_is_value_missing (cmd->dep_var, depval) & cmd->exclude)
        {
          missing = true;
        }
@@ -486,7 +486,7 @@ initial_pass (const struct lr_spec *cmd, struct lr_result *res, struct casereade
       for (v = 0; v < cmd->n_indep_vars; ++v)
        {
          const union value *val = case_data (c, cmd->indep_vars[v]);
-         if (var_is_value_missing (cmd->indep_vars[v], val, cmd->exclude))
+         if (var_is_value_missing (cmd->indep_vars[v], val) & cmd->exclude)
            {
              missing = true;
              break;
@@ -928,7 +928,7 @@ cmd_logistic (struct lexer *lexer, struct dataset *ds)
                {
                  if (lex_force_match (lexer, T_LPAREN))
                    {
-                     if (! lex_force_int (lexer))
+                     if (! lex_force_int_range (lexer, "ITERATE", 0, INT_MAX))
                        {
                          lex_error (lexer, NULL);
                          goto error;