X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flanguage%2Fstats%2Fctables.c;h=813bec9891482959018887cfadf571e14f875512;hb=499552917fce3a3da9d0fa826e1589a1c62acf27;hp=ff8f1abbc0a6f0f95b7f8a3b40f620507b0f8a37;hpb=710f5de78998ae74020b8a401836dabca4df355e;p=pspp diff --git a/src/language/stats/ctables.c b/src/language/stats/ctables.c index ff8f1abbc0..813bec9891 100644 --- a/src/language/stats/ctables.c +++ b/src/language/stats/ctables.c @@ -4693,52 +4693,64 @@ ctables_prepare_table (struct ctables_table *t) size_t n_drop; bool drop_inner = false; - if (at == CTAT_SUBTABLE - && t->clabels_from_axis != PIVOT_AXIS_LAYER - && t->clabels_to_axis != PIVOT_AXIS_LAYER) - n_drop = a == t->clabels_from_axis ? 2 : 0; - else if (at == CTAT_SUBTABLE - && t->clabels_from_axis != PIVOT_AXIS_LAYER - && t->clabels_to_axis == PIVOT_AXIS_LAYER) + if (at == CTAT_SUBTABLE) { - drop_inner = a == t->clabels_from_axis; - n_drop = a != t->clabels_from_axis && a != PIVOT_AXIS_LAYER; + if (t->clabels_from_axis != PIVOT_AXIS_LAYER) + { + if (t->clabels_to_axis != PIVOT_AXIS_LAYER) + n_drop = a == t->clabels_from_axis ? 2 : 0; + else + { + drop_inner = a == t->clabels_from_axis; + n_drop = a != t->clabels_from_axis && a != PIVOT_AXIS_LAYER; + } + } + else + n_drop = a != PIVOT_AXIS_LAYER; } else if (at == CTAT_ROW && a == PIVOT_AXIS_COLUMN && t->label_axis[PIVOT_AXIS_ROW] == PIVOT_AXIS_COLUMN) n_drop = 0; - else if (at == CTAT_COL && a == PIVOT_AXIS_ROW && t->label_axis[PIVOT_AXIS_ROW] == PIVOT_AXIS_COLUMN) + else if (at == CTAT_ROW && a == PIVOT_AXIS_COLUMN && t->label_axis[PIVOT_AXIS_COLUMN] == PIVOT_AXIS_ROW) { drop_inner = true; n_drop = 0; } - else if (at == CTAT_COL && a == PIVOT_AXIS_ROW && t->label_axis[PIVOT_AXIS_COLUMN] == PIVOT_AXIS_ROW) - n_drop = 0; - else if (at == CTAT_ROW && a == PIVOT_AXIS_COLUMN && t->label_axis[PIVOT_AXIS_COLUMN] == PIVOT_AXIS_ROW) + else if (at == CTAT_ROW && a == PIVOT_AXIS_COLUMN && t->label_axis[PIVOT_AXIS_COLUMN] == PIVOT_AXIS_LAYER) { drop_inner = true; n_drop = 0; } - else if (at == CTAT_COL && a == PIVOT_AXIS_ROW && t->label_axis[PIVOT_AXIS_ROW] == PIVOT_AXIS_LAYER) + else if (at == CTAT_COL && a == PIVOT_AXIS_ROW && t->label_axis[PIVOT_AXIS_ROW] == PIVOT_AXIS_COLUMN) { drop_inner = true; n_drop = 0; } - else if (at == CTAT_ROW && a == PIVOT_AXIS_COLUMN && t->label_axis[PIVOT_AXIS_COLUMN] == PIVOT_AXIS_LAYER) + else if (at == CTAT_COL && a == PIVOT_AXIS_ROW && t->label_axis[PIVOT_AXIS_COLUMN] == PIVOT_AXIS_ROW) + n_drop = 0; + else if (at == CTAT_COL && a == PIVOT_AXIS_ROW && t->label_axis[PIVOT_AXIS_ROW] == PIVOT_AXIS_LAYER) { drop_inner = true; n_drop = 0; } + else if (at == CTAT_LAYERROW) + n_drop = a == PIVOT_AXIS_ROW && t->label_axis[PIVOT_AXIS_ROW] == PIVOT_AXIS_COLUMN; + else if (at == CTAT_LAYERCOL) + n_drop = a == PIVOT_AXIS_COLUMN && t->label_axis[PIVOT_AXIS_COLUMN] == PIVOT_AXIS_ROW; + else if (at == CTAT_ROW) + { + n_drop = a == PIVOT_AXIS_COLUMN; + if (a == PIVOT_AXIS_ROW && t->label_axis[PIVOT_AXIS_ROW] == PIVOT_AXIS_COLUMN) + n_drop++; + } + else if (at == CTAT_COL) + { + n_drop = a == PIVOT_AXIS_ROW; + if (a == PIVOT_AXIS_COLUMN && t->label_axis[PIVOT_AXIS_COLUMN] == PIVOT_AXIS_ROW) + n_drop++; + } else { n_drop = 0; - if (at == CTAT_SUBTABLE ? a != PIVOT_AXIS_LAYER - : at == CTAT_ROW ? a == PIVOT_AXIS_COLUMN - : at == CTAT_COL ? a == PIVOT_AXIS_ROW - : false) - n_drop++; - if ((t->label_axis[PIVOT_AXIS_ROW] == PIVOT_AXIS_COLUMN && (at == CTAT_ROW || at == CTAT_LAYERROW) && a == PIVOT_AXIS_ROW) - || (t->label_axis[PIVOT_AXIS_COLUMN] == PIVOT_AXIS_ROW && (at == CTAT_COL || at == CTAT_LAYERCOL) && a == PIVOT_AXIS_COLUMN)) - n_drop++; } if (drop_inner)