projects
/
pspp
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Implement lots of distributions in MATRIX.
[pspp]
/
src
/
language
/
stats
/
frequencies.c
diff --git
a/src/language/stats/frequencies.c
b/src/language/stats/frequencies.c
index a6ef914b03be4f34a17fabfb2c50b4fa954ef5a3..e5462d083d2fd44d6e24e2e23960d360c6ad8f6f 100644
(file)
--- a/
src/language/stats/frequencies.c
+++ b/
src/language/stats/frequencies.c
@@
-631,7
+631,7
@@
cmd_frequencies (struct lexer *lexer, struct dataset *ds)
PV_NO_DUPLICATE))
goto error;
PV_NO_DUPLICATE))
goto error;
- frq.vars = x
zalloc (frq.n_vars *
sizeof (*frq.vars));
+ frq.vars = x
calloc (frq.n_vars,
sizeof (*frq.vars));
for (i = 0; i < frq.n_vars; ++i)
{
frq.vars[i].var = vars[i];
for (i = 0; i < frq.n_vars; ++i)
{
frq.vars[i].var = vars[i];
@@
-797,7
+797,7
@@
cmd_frequencies (struct lexer *lexer, struct dataset *ds)
else if (lex_match_id (lexer, "LIMIT"))
{
if (!lex_force_match (lexer, T_LPAREN)
else if (lex_match_id (lexer, "LIMIT"))
{
if (!lex_force_match (lexer, T_LPAREN)
- || !lex_force_int
(lexer
))
+ || !lex_force_int
_range (lexer, "LIMIT", 0, INT_MAX
))
goto error;
frq.max_categories = lex_integer (lexer);
goto error;
frq.max_categories = lex_integer (lexer);
@@
-833,12
+833,11
@@
cmd_frequencies (struct lexer *lexer, struct dataset *ds)
{
lex_match (lexer, T_EQUALS);
{
lex_match (lexer, T_EQUALS);
- if (lex_force_int
(lexer
))
+ if (lex_force_int
_range (lexer, "NTILES", 0, INT_MAX
))
{
{
- int i;
int n = lex_integer (lexer);
lex_get (lexer);
int n = lex_integer (lexer);
lex_get (lexer);
- for (i = 0; i < n + 1; ++i)
+ for (i
nt i
= 0; i < n + 1; ++i)
{
frq.percentiles =
xrealloc (frq.percentiles,
{
frq.percentiles =
xrealloc (frq.percentiles,
@@
-896,13
+895,9
@@
cmd_frequencies (struct lexer *lexer, struct dataset *ds)
hi_scale = FRQ_FREQ;
if (lex_match (lexer, T_LPAREN))
{
hi_scale = FRQ_FREQ;
if (lex_match (lexer, T_LPAREN))
{
- if (lex_force_int
(lexer
))
+ if (lex_force_int
_range (lexer, "FREQ", 1, INT_MAX
))
{
hi_freq = lex_integer (lexer);
{
hi_freq = lex_integer (lexer);
- if (hi_freq <= 0)
- {
- lex_error (lexer, _("Histogram frequency must be greater than zero."));
- }
lex_get (lexer);
if (! lex_force_match (lexer, T_RPAREN))
goto error;
lex_get (lexer);
if (! lex_force_match (lexer, T_RPAREN))
goto error;
@@
-914,13
+909,9
@@
cmd_frequencies (struct lexer *lexer, struct dataset *ds)
hi_scale = FRQ_PERCENT;
if (lex_match (lexer, T_LPAREN))
{
hi_scale = FRQ_PERCENT;
if (lex_match (lexer, T_LPAREN))
{
- if (lex_force_int
(lexer
))
+ if (lex_force_int
_range (lexer, "PERCENT", 1, INT_MAX
))
{
hi_pcnt = lex_integer (lexer);
{
hi_pcnt = lex_integer (lexer);
- if (hi_pcnt <= 0)
- {
- lex_error (lexer, _("Histogram percentage must be greater than zero."));
- }
lex_get (lexer);
if (! lex_force_match (lexer, T_RPAREN))
goto error;
lex_get (lexer);
if (! lex_force_match (lexer, T_RPAREN))
goto error;