X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flanguage%2Fstats%2Faggregate.c;h=044297462c982a2d395a6ef66c9d26780015163d;hb=3e2cb3dda617f6d2a97e5df635d592a691d3c9b0;hp=bf9eb7a9052ad0c7e589818124f64993fadf0bce;hpb=68af3306969829d17a05cfab5c9d46cb920b7607;p=pspp diff --git a/src/language/stats/aggregate.c b/src/language/stats/aggregate.c index bf9eb7a905..044297462c 100644 --- a/src/language/stats/aggregate.c +++ b/src/language/stats/aggregate.c @@ -64,7 +64,7 @@ struct agr_var struct agr_var *next; /* Next in list. */ /* Collected during parsing. */ - struct variable *src; /* Source variable. */ + const struct variable *src; /* Source variable. */ struct variable *dest; /* Target variable. */ int function; /* Function. */ enum mv_class exclude; /* Classes of missing values to exclude. */ @@ -141,7 +141,7 @@ struct agr_proc /* Break variables. */ struct sort_criteria *sort; /* Sort criteria. */ - struct variable **break_vars; /* Break variables. */ + const struct variable **break_vars; /* Break variables. */ size_t break_var_cnt; /* Number of break variables. */ struct ccase break_case; /* Last values of break variables. */ @@ -396,7 +396,7 @@ parse_aggregate_functions (struct lexer *lexer, const struct dictionary *dict, s union agr_argument arg[2]; - struct variable **src; + const struct variable **src; size_t n_src; size_t i; @@ -409,6 +409,7 @@ parse_aggregate_functions (struct lexer *lexer, const struct dictionary *dict, s n_src = 0; arg[0].c = NULL; arg[1].c = NULL; + ds_init_empty (&function_name); /* Parse the list of target variables. */ while (!lex_match (lexer, '=')) @@ -451,7 +452,7 @@ parse_aggregate_functions (struct lexer *lexer, const struct dictionary *dict, s exclude = MV_ANY; - ds_init_string (&function_name, lex_tokstr (lexer)); + ds_assign_string (&function_name, lex_tokstr (lexer)); ds_chomp (&function_name, '.'); @@ -495,7 +496,7 @@ parse_aggregate_functions (struct lexer *lexer, const struct dictionary *dict, s else if (function->n_args) pv_opts |= PV_SAME_TYPE; - if (!parse_variables (lexer, dict, &src, &n_src, pv_opts)) + if (!parse_variables_const (lexer, dict, &src, &n_src, pv_opts)) goto error; } @@ -519,8 +520,8 @@ parse_aggregate_functions (struct lexer *lexer, const struct dictionary *dict, s } else { - msg (SE, _("Missing argument %d to %s."), i + 1, - function->name); + msg (SE, _("Missing argument %d to %s."), + (int) i + 1, function->name); goto error; } @@ -958,7 +959,7 @@ dump_aggregate_info (struct agr_proc *agr, struct ccase *output) for (i = 0; i < agr->break_var_cnt; i++) { - struct variable *v = agr->break_vars[i]; + const struct variable *v = agr->break_vars[i]; size_t value_cnt = var_get_value_cnt (v); memcpy (case_data_rw_idx (output, value_idx), case_data (&agr->break_case, v),