Calling dict_get_vars (default_dict, &v_variables, &n_variables, DC_SYSTEM)
doesn't do what I thought it would do. The comment above the definition
of dict_get_vars() says:
/* Sets *VARS to an array of pointers to variables in D and *CNT to
the number of variables in *D. By default all variables are
returned, but bits may be set in EXCLUDE_CLASSES to exclude
ordinary, system, and/or scratch variables. */
Then this loop should count the relevant variables:
for (i = 0; i < d->var_cnt; i++)
if (!(exclude_classes & (1u << dict_class_from_id (d->var[i]->name))))
count++;
...but (DC_SYSTEM & (1u << DC_ORDINARY)) is 1, so count is never
incremented for an ordinary variable. Shouldn't that statement be
if (exclude_classes & (1u << dict_class_from_id
(d->var[i]->name)))
?
-Jason
_______________________________________________
pspp-dev mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/pspp-dev