X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flanguage%2Fstats%2Fctables.c;h=5f7162fd2ad39134ce65c38130f1d231548cba1a;hb=4b9e9bd0e1c0454b637ec05f8e7538a74433f467;hp=57e547376ac639da1e1aec5a8a70802e12789d8d;hpb=bf868380ccff985a9eeb4e40f307118548411e7c;p=pspp diff --git a/src/language/stats/ctables.c b/src/language/stats/ctables.c index 57e547376a..5f7162fd2a 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,57 +4714,34 @@ 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) + if (a == atb && t->label_axis[ata] == atb) + n_drop = 0; + else if (a == atb && t->label_axis[atb] == ata) { 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) + else if (a == atb && t->label_axis[atb] == PIVOT_AXIS_LAYER) { drop_inner = true; n_drop = 0; } else { - n_drop = a == PIVOT_AXIS_ROW; - if (a == PIVOT_AXIS_COLUMN && t->label_axis[PIVOT_AXIS_COLUMN] == PIVOT_AXIS_ROW) + n_drop = a == atb; + if (a == ata && t->label_axis[ata] == atb) n_drop++; } break;