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 pspp-dev@gnu.org http://lists.gnu.org/mailman/listinfo/pspp-dev