Changed DFM from open-at-first-access to explicit-open. Before,
[pspp] / src / descript.q
index 84bc16c5fabc956d978135b4c3b3cbc8a2477586..9ac10325fffe72c656be79ff3e28f1609a0644f5 100644 (file)
@@ -30,7 +30,6 @@
 #include "command.h"
 #include "lexer.h"
 #include "error.h"
-#include "approx.h"
 #include "magic.h"
 #include "stats.h"
 #include "som.h"
@@ -194,8 +193,6 @@ cmd_descriptives (void)
   v_variables = NULL;
   n_variables = 0;
 
-  lex_match_id ("DESCRIPTIVES");
-  lex_match_id ("CONDESCRIPTIVES");
   if (!parse_descriptives (&cmd))
     goto lossage;
 
@@ -289,7 +286,7 @@ cmd_descriptives (void)
 
   /* Data pass! */
   bad_weight = 0;
-  procedure (precalc, calc, postcalc, NULL);
+  procedure_with_splits (precalc, calc, postcalc, NULL);
 
   if (bad_weight)
     msg (SW, _("At least one case in the data file had a weight value "
@@ -477,7 +474,8 @@ dump_z_table (void)
 
 /* Transformation function to calculate Z-scores. */
 static int
-descriptives_trns_proc (struct trns_header * trns, struct ccase * c)
+descriptives_trns_proc (struct trns_header * trns, struct ccase * c,
+                        int case_num UNUSED)
 {
   struct descriptives_trns *t = (struct descriptives_trns *) trns;
   struct dsc_z_score *z;
@@ -539,9 +537,9 @@ run_z_pass (void)
          struct variable *d;
 
          t->z[count].s = v;
-         t->z[count].d = d = dict_create_var (default_dict,
-                                               v->p.dsc.zname, 0);
-          assert (d != NULL);
+         t->z[count].d = d = dict_create_var_assert (default_dict,
+                                                      v->p.dsc.zname, 0);
+          d->init = 0;
          if (v->label)
            {
              d->label = xmalloc (strlen (v->label) + 12);
@@ -556,8 +554,7 @@ run_z_pass (void)
            }
          t->z[count].mean = v->p.dsc.stats[dsc_mean];
          t->z[count].std_dev = v->p.dsc.stats[dsc_stddev];
-         if (t->z[count].std_dev == SYSMIS
-             || approx_eq (t->z[count].std_dev, 0.0))
+         if (t->z[count].std_dev == SYSMIS || t->z[count].std_dev == 0.0)
            t->z[count].mean = SYSMIS;
          count++;
        }