X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flanguage%2Fstats%2Fctables.c;h=aeae6223fc45db75643f608772fc39b3a4392db0;hb=2ad9fc0f13133346ba6b153bf38a2fc06bf0be51;hp=57e547376ac639da1e1aec5a8a70802e12789d8d;hpb=bf868380ccff985a9eeb4e40f307118548411e7c;p=pspp diff --git a/src/language/stats/ctables.c b/src/language/stats/ctables.c index 57e547376a..aeae6223fc 100644 --- a/src/language/stats/ctables.c +++ b/src/language/stats/ctables.c @@ -4691,6 +4691,18 @@ ctables_prepare_table (struct ctables_table *t) continue; } + enum pivot_axis_type ata, atb; + if (at == CTAT_ROW || at == CTAT_LAYERROW) + { + ata = PIVOT_AXIS_ROW; + atb = PIVOT_AXIS_COLUMN; + } + else if (at == CTAT_COL || at == CTAT_LAYERCOL) + { + ata = PIVOT_AXIS_COLUMN; + atb = PIVOT_AXIS_ROW; + } + size_t n_drop = 0; bool drop_inner = false; switch (at) @@ -4702,59 +4714,31 @@ ctables_prepare_table (struct ctables_table *t) n_drop = a == t->clabels_from_axis ? 2 : 0; else { + n_drop = a != PIVOT_AXIS_LAYER && a != t->clabels_from_axis; drop_inner = a == t->clabels_from_axis; - n_drop = a != t->clabels_from_axis && a != PIVOT_AXIS_LAYER; } break; case CTAT_LAYERROW: - n_drop = a == PIVOT_AXIS_ROW && t->label_axis[PIVOT_AXIS_ROW] == PIVOT_AXIS_COLUMN; - break; - case CTAT_LAYERCOL: - n_drop = a == PIVOT_AXIS_COLUMN && t->label_axis[PIVOT_AXIS_COLUMN] == PIVOT_AXIS_ROW; + n_drop = a == ata && t->label_axis[ata] == atb; break; case CTAT_ROW: - if (a == PIVOT_AXIS_COLUMN && t->label_axis[PIVOT_AXIS_ROW] == PIVOT_AXIS_COLUMN) - n_drop = 0; - else if (a == PIVOT_AXIS_COLUMN && t->label_axis[PIVOT_AXIS_COLUMN] == PIVOT_AXIS_ROW) - { - drop_inner = true; - n_drop = 0; - } - else if (a == PIVOT_AXIS_COLUMN && t->label_axis[PIVOT_AXIS_COLUMN] == PIVOT_AXIS_LAYER) - { - drop_inner = true; - n_drop = 0; - } - else - { - n_drop = a == PIVOT_AXIS_COLUMN; - if (a == PIVOT_AXIS_ROW && t->label_axis[PIVOT_AXIS_ROW] == PIVOT_AXIS_COLUMN) - n_drop++; - } - break; - case CTAT_COL: - if (a == PIVOT_AXIS_ROW && t->label_axis[PIVOT_AXIS_ROW] == PIVOT_AXIS_COLUMN) - { - drop_inner = true; - n_drop = 0; - } - else if (a == PIVOT_AXIS_ROW && t->label_axis[PIVOT_AXIS_COLUMN] == PIVOT_AXIS_ROW) - n_drop = 0; - else if (a == PIVOT_AXIS_ROW && t->label_axis[PIVOT_AXIS_ROW] == PIVOT_AXIS_LAYER) - { - drop_inner = true; - n_drop = 0; - } - else + if (a == atb) { - n_drop = a == PIVOT_AXIS_ROW; - if (a == PIVOT_AXIS_COLUMN && t->label_axis[PIVOT_AXIS_COLUMN] == PIVOT_AXIS_ROW) - n_drop++; + if (t->label_axis[ata] == atb) + ; + else if (t->label_axis[atb] == ata) + drop_inner = true; + else if (t->label_axis[atb] == PIVOT_AXIS_LAYER) + drop_inner = true; + else + n_drop = 1; } + if (a == ata && t->label_axis[ata] == atb) + n_drop++; break; case CTAT_LAYER: