projects
/
pspp
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
* Makefile.am: Add pspp-mode.el to EXTRA_DIST.
[pspp]
/
src
/
aggregate.c
diff --git
a/src/aggregate.c
b/src/aggregate.c
index b7b6836e7e17daace560a71703b16ef578393c68..8fe168ecf78175581c92de4d50f4c3ba6bb0b144 100644
(file)
--- a/
src/aggregate.c
+++ b/
src/aggregate.c
@@
-33,6
+33,7
@@
#include "pool.h"
#include "settings.h"
#include "sfm-write.h"
#include "pool.h"
#include "settings.h"
#include "sfm-write.h"
+#include "sort-prs.h"
#include "sort.h"
#include "str.h"
#include "var.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,
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++)
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;
/* BREAK must follow the options. */
break;
@@
-455,7
+451,8
@@
parse_aggregate_functions (struct agr_proc *agr)
arg[i].f = tokval;
type = NUMERIC;
} else {
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;
}
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
|| 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];
{
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. */
{
/* 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;
struct variable *destvar;
v->function = func_index;
@@
-543,10
+538,11
@@
parse_aggregate_functions (struct agr_proc *agr)
}
if (function->alpha_type == ALPHA)
}
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)
{
destvar = dict_create_var (agr->dict, dest[i], 0);
if (destvar != NULL)
{