From c0a1222e44261bf5c75707d6203a26a0da93ead3 Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Sat, 13 Aug 2022 21:48:03 -0700 Subject: [PATCH] refactoring --- src/language/stats/ctables.c | 96 ++++++++++++++++++------------------ 1 file changed, 48 insertions(+), 48 deletions(-) diff --git a/src/language/stats/ctables.c b/src/language/stats/ctables.c index 918fed9a7b..2b9e010bbe 100644 --- a/src/language/stats/ctables.c +++ b/src/language/stats/ctables.c @@ -4712,61 +4712,54 @@ ctables_prepare_table (struct ctables_table *t) continue; } + size_t n_drop; if (at == CTAT_SUBTABLE && t->label_axis[PIVOT_AXIS_ROW] == PIVOT_AXIS_COLUMN) { - size_t n_drop = (a == PIVOT_AXIS_LAYER ? 0 - : a == PIVOT_AXIS_ROW ? 2 - : 0); - for (size_t i = 0; i < n_drop; i++) - if (nest->n_areas[at] > 0) - nest->n_areas[at]--; - continue; + n_drop = (a == PIVOT_AXIS_LAYER ? 0 + : a == PIVOT_AXIS_ROW ? 2 + : 0); } else if (at == CTAT_SUBTABLE && t->label_axis[PIVOT_AXIS_COLUMN] == PIVOT_AXIS_ROW) { - size_t n_drop = (a == PIVOT_AXIS_LAYER ? 0 - : a == PIVOT_AXIS_COLUMN ? 2 - : 0); - for (size_t i = 0; i < n_drop; i++) - if (nest->n_areas[at] > 0) - nest->n_areas[at]--; - continue; + n_drop = (a == PIVOT_AXIS_LAYER ? 0 + : a == PIVOT_AXIS_COLUMN ? 2 + : 0); } else if (at == CTAT_SUBTABLE && t->label_axis[PIVOT_AXIS_ROW] == PIVOT_AXIS_LAYER) { - if (a == PIVOT_AXIS_ROW) + if (a == PIVOT_AXIS_COLUMN) + n_drop = 1; + else { - size_t n = nest->n_areas[at]; - if (n > 1) + if (a == PIVOT_AXIS_ROW) { - nest->areas[at][n - 2] = nest->areas[at][n - 1]; - nest->n_areas[at]--; + size_t n = nest->n_areas[at]; + if (n > 1) + { + nest->areas[at][n - 2] = nest->areas[at][n - 1]; + nest->n_areas[at]--; + } } + continue; } - else if (a == PIVOT_AXIS_COLUMN) - { - if (nest->n_areas[at] > 0) - nest->n_areas[at]--; - } - continue; } else if (at == CTAT_SUBTABLE && t->label_axis[PIVOT_AXIS_COLUMN] == PIVOT_AXIS_LAYER) { - if (a == PIVOT_AXIS_COLUMN) + if (a == PIVOT_AXIS_ROW) + n_drop = 1; + else { - size_t n = nest->n_areas[at]; - if (n > 1) + if (a == PIVOT_AXIS_COLUMN) { - nest->areas[at][n - 2] = nest->areas[at][n - 1]; - nest->n_areas[at]--; + size_t n = nest->n_areas[at]; + if (n > 1) + { + nest->areas[at][n - 2] = nest->areas[at][n - 1]; + nest->n_areas[at]--; + } } + continue; } - else if (a == PIVOT_AXIS_ROW) - { - if (nest->n_areas[at] > 0) - nest->n_areas[at]--; - } - continue; } else if (at == CTAT_ROW && a == PIVOT_AXIS_COLUMN && t->label_axis[PIVOT_AXIS_ROW] == PIVOT_AXIS_COLUMN) continue; @@ -4812,19 +4805,26 @@ ctables_prepare_table (struct ctables_table *t) } continue; } + else + { + bool drop_last = (at == CTAT_SUBTABLE ? a != PIVOT_AXIS_LAYER + : at == CTAT_ROW ? a == PIVOT_AXIS_COLUMN + : at == CTAT_COL ? a == PIVOT_AXIS_ROW + : false); + bool drop_additional + = ((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 = 0; + if (drop_last) + n_drop++; + if (drop_additional) + n_drop++; + } - bool drop_last = (at == CTAT_SUBTABLE ? a != PIVOT_AXIS_LAYER - : at == CTAT_ROW ? a == PIVOT_AXIS_COLUMN - : at == CTAT_COL ? a == PIVOT_AXIS_ROW - : false); - if (drop_last && nest->n_areas[at] > 0) - nest->n_areas[at]--; - - bool drop_additional - = ((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)); - if (drop_additional && nest->n_areas[at] > 0) - nest->n_areas[at]--; + for (size_t i = 0; i < n_drop; i++) + if (nest->n_areas[at] > 0) + nest->n_areas[at]--; } } } -- 2.30.2