X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Faggregate.c;h=8fe168ecf78175581c92de4d50f4c3ba6bb0b144;hb=6d7e2826ba9c863f6261e9718e0e822e0ca60aa0;hp=b7b6836e7e17daace560a71703b16ef578393c68;hpb=4fdeb2145d081ff1b84e3f6c99f9d1c048c0d64a;p=pspp diff --git a/src/aggregate.c b/src/aggregate.c index b7b6836e7e..8fe168ecf7 100644 --- a/src/aggregate.c +++ b/src/aggregate.c @@ -33,6 +33,7 @@ #include "pool.h" #include "settings.h" #include "sfm-write.h" +#include "sort-prs.h" #include "sort.h" #include "str.h" #include "var.h" @@ -208,18 +209,13 @@ cmd_aggregate (void) lex_match ('='); agr.sort = sort_parse_criteria (default_dict, &agr.break_vars, &agr.break_var_cnt, - &saw_direction); + &saw_direction, NULL); if (agr.sort == NULL) goto error; for (i = 0; i < agr.break_var_cnt; i++) - { - struct variable *v = dict_clone_var (agr.dict, agr.break_vars[i], - agr.break_vars[i]->name, - agr.break_vars[i]->longname - ); - assert (v != NULL); - } + dict_clone_var_assert (agr.dict, agr.break_vars[i], + agr.break_vars[i]->name); /* BREAK must follow the options. */ break; @@ -455,7 +451,8 @@ parse_aggregate_functions (struct agr_proc *agr) arg[i].f = tokval; type = NUMERIC; } else { - msg (SE, _("Missing argument %d to %s."), i + 1, function->name); + msg (SE, _("Missing argument %d to %s."), i + 1, + function->name); goto error; } @@ -495,8 +492,7 @@ parse_aggregate_functions (struct agr_proc *agr) || func_index == FIN || func_index == FOUT) && ((src[0]->type == NUMERIC && arg[0].f > arg[1].f) || (src[0]->type == ALPHA - && st_compare_pad (arg[0].c, strlen (arg[0].c), - arg[1].c, strlen (arg[1].c)) > 0))) + && str_compare_rpad (arg[0].c, arg[1].c) > 0))) { union value t = arg[0]; arg[0] = arg[1]; @@ -527,7 +523,6 @@ parse_aggregate_functions (struct agr_proc *agr) /* Create the target variable in the aggregate dictionary. */ { - static const struct fmt_spec f8_2 = {FMT_F, 8, 2}; struct variable *destvar; v->function = func_index; @@ -543,10 +538,11 @@ parse_aggregate_functions (struct agr_proc *agr) } if (function->alpha_type == ALPHA) - destvar = dict_clone_var (agr->dict, v->src, 0, dest[i] ); - else if (v->src->type == NUMERIC - || function->alpha_type == NUMERIC) + destvar = dict_clone_var (agr->dict, v->src, dest[i]); + else { + assert (v->src->type == NUMERIC + || function->alpha_type == NUMERIC); destvar = dict_create_var (agr->dict, dest[i], 0); if (destvar != NULL) {