projects
/
pspp-builds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Revamp SAVE, XSAVE, EXPORT. Add (or at least parse) all the
[pspp-builds.git]
/
src
/
aggregate.c
diff --git
a/src/aggregate.c
b/src/aggregate.c
index 154256f5e59b96260b2c4ea713f427ee44e7c78a..5979204d08c0c407a078f2ca1ad367665ff0ed67 100644
(file)
--- a/
src/aggregate.c
+++ b/
src/aggregate.c
@@
-33,12
+33,16
@@
#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 "vfm.h"
#include "vfmP.h"
#include "sort.h"
#include "str.h"
#include "var.h"
#include "vfm.h"
#include "vfmP.h"
+#include "gettext.h"
+#define _(msgid) gettext (msgid)
+
/* Specifies how to make an aggregate variable. */
struct agr_var
{
/* Specifies how to make an aggregate variable. */
struct agr_var
{
@@
-208,7
+212,7
@@
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;
if (agr.sort == NULL)
goto error;
@@
-274,7
+278,8
@@
cmd_aggregate (void)
}
else
{
}
else
{
- agr.writer = sfm_open_writer (out_file, agr.dict, get_scompression (), 0);
+ agr.writer = sfm_open_writer (out_file, agr.dict,
+ sfm_writer_default_options ());
if (agr.writer == NULL)
goto error;
if (agr.writer == NULL)
goto error;
@@
-491,8
+496,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];
@@
-523,7
+527,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;
@@
-724,7
+727,8
@@
accumulate_aggregate_info (struct agr_proc *agr,
{
const union value *v = case_data (input, iter->src->fv);
{
const union value *v = case_data (input, iter->src->fv);
- if ((!iter->include_missing && is_missing (v, iter->src))
+ if ((!iter->include_missing
+ && mv_is_value_missing (&iter->src->miss, v))
|| (iter->include_missing && iter->src->type == NUMERIC
&& v->f == SYSMIS))
{
|| (iter->include_missing && iter->src->type == NUMERIC
&& v->f == SYSMIS))
{