X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flanguage%2Fstats%2Fctables.c;h=99efc09c5a2c339644b2981920fef47659d8f454;hb=fedd5a603d218f4f77f1a5d67676a9d0de489bc4;hp=a6de212483c92547f5ea5acd867d4322fe30e823;hpb=c40b1abf21793c5923d2c8e8be320eb1c97a9240;p=pspp diff --git a/src/language/stats/ctables.c b/src/language/stats/ctables.c index a6de212483..99efc09c5a 100644 --- a/src/language/stats/ctables.c +++ b/src/language/stats/ctables.c @@ -901,7 +901,7 @@ ctables_axis_parse_postfix (struct ctables_axis_parse_ctx *ctx) if (!sub || !lex_match (ctx->lexer, T_LBRACK)) return sub; - bool totals = false; + enum ctables_summary_variant sv = CSV_CELL; for (;;) { int start_ofs = lex_ofs (ctx->lexer); @@ -950,23 +950,20 @@ ctables_axis_parse_postfix (struct ctables_axis_parse_ctx *ctx) struct msg_location *loc = lex_ofs_location (ctx->lexer, start_ofs, lex_ofs (ctx->lexer) - 1); - add_summary_spec (sub, function, percentile, label, formatp, loc, - totals); + add_summary_spec (sub, function, percentile, label, formatp, loc, sv); free (label); msg_location_destroy (loc); - if (lex_match (ctx->lexer, T_COMMA)) + lex_match (ctx->lexer, T_COMMA); + if (sv == CSV_CELL && lex_match_id (ctx->lexer, "TOTALS")) { - if (!totals && lex_match_id (ctx->lexer, "TOTALS")) - { - if (!lex_force_match (ctx->lexer, T_LBRACK)) - goto error; - totals = true; - } + if (!lex_force_match (ctx->lexer, T_LBRACK)) + goto error; + sv = CSV_TOTAL; } else if (lex_force_match (ctx->lexer, T_RBRACK)) { - if (totals && !lex_force_match (ctx->lexer, T_RBRACK)) + if (sv == CSV_TOTAL && !lex_force_match (ctx->lexer, T_RBRACK)) goto error; return sub; }