if (level->type == CTL_CATEGORY)
{
size_t var_idx = level->var_idx;
- if (prev->axes[a].cvs[var_idx].category
- != cell->axes[a].cvs[var_idx].category)
- {
- break;
- }
- else if (!value_equal (&prev->axes[a].cvs[var_idx].value,
- &cell->axes[a].cvs[var_idx].value,
- var_get_type (nest->vars[var_idx])))
- {
- break;
- }
+ const struct ctables_category *c = cell->axes[a].cvs[var_idx].category;
+ if (prev->axes[a].cvs[var_idx].category != c)
+ break;
+ else if (c->type != CCT_SUBTOTAL
+ && c->type != CCT_HSUBTOTAL
+ && c->type != CCT_TOTAL
+ && !value_equal (&prev->axes[a].cvs[var_idx].value,
+ &cell->axes[a].cvs[var_idx].value,
+ var_get_type (nest->vars[var_idx])))
+ break;
}
}
}