+ case CTCS_LABEL:
+ {
+ const char *a_label = var_lookup_value_label (var, val_a);
+ const char *b_label = var_lookup_value_label (var, val_b);
+ int label_cmp = (a_label
+ ? (b_label ? strcmp (a_label, b_label) : 1)
+ : (b_label ? -1 : 0));
+ if (label_cmp)
+ cmp = label_cmp;
+ }
+ break;
+
+ case CTCS_FUNCTION:
+ NOT_REACHED ();
+ }
+
+ return cats->sort_ascending ? cmp : -cmp;
+ }