X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flanguage%2Fstats%2Ffrequencies.c;h=8fb96b0d57e2316d59ecda71099d317d189e10db;hb=87b807912a3c696c8a589efeb6a39c11ac0fe442;hp=cd131f514b29afc3c2cdfdcc16bda2f5a882b2f7;hpb=27fd33514f68d34dd7a7be79c0bbffb161787535;p=pspp diff --git a/src/language/stats/frequencies.c b/src/language/stats/frequencies.c index cd131f514b..8fb96b0d57 100644 --- a/src/language/stats/frequencies.c +++ b/src/language/stats/frequencies.c @@ -214,7 +214,7 @@ struct frq_proc int n_percentiles, n_show_percentiles; /* Frequency table display. */ - int max_categories; /* Maximum categories to show. */ + long int max_categories; /* Maximum categories to show. */ int sort; /* FRQ_AVALUE or FRQ_DVALUE or FRQ_AFREQ or FRQ_DFREQ. */ @@ -614,7 +614,7 @@ cmd_frequencies (struct lexer *lexer, struct dataset *ds) frq.n_stats = 4; - frq.max_categories = INT_MAX; + frq.max_categories = LONG_MAX; frq.percentiles = NULL; frq.n_percentiles = 0; @@ -803,6 +803,18 @@ cmd_frequencies (struct lexer *lexer, struct dataset *ds) { frq.max_categories = 0; } + else if (lex_match_id (lexer, "LIMIT")) + { + if (!lex_force_match (lexer, T_LPAREN) + || !lex_force_int (lexer)) + goto error; + + frq.max_categories = lex_integer (lexer); + lex_get (lexer); + + if (!lex_force_match (lexer, T_RPAREN)) + goto error; + } else if (lex_match_id (lexer, "AVALUE")) { frq.sort = FRQ_AVALUE;