#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 "gettext.h"
+#define _(msgid) gettext (msgid)
+
/* Specifies how to make an aggregate variable. */
struct agr_var
{
struct agr_func
{
const char *name; /* Aggregation function name. */
- int n_args; /* Number of arguments. */
+ size_t n_args; /* Number of arguments. */
int alpha_type; /* When given ALPHA arguments, output type. */
struct fmt_spec format; /* Format spec if alpha_type != ALPHA. */
};
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;
}
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;
{
char **dest;
char **dest_label;
- int n_dest;
+ size_t n_dest;
int include_missing;
const struct agr_func *function;
union value arg[2];
struct variable **src;
- int n_src;
+ size_t n_src;
- int i;
+ size_t i;
dest = NULL;
dest_label = NULL;
/* Parse the list of target variables. */
while (!lex_match ('='))
{
- int n_dest_prev = n_dest;
+ size_t n_dest_prev = n_dest;
if (!parse_DATA_LIST_vars (&dest, &n_dest,
PV_APPEND | PV_SINGLE | PV_NO_SCRATCH))
{
int j;
- dest_label = xrealloc (dest_label, sizeof *dest_label * n_dest);
+ dest_label = xnrealloc (dest_label, n_dest, sizeof *dest_label);
for (j = n_dest_prev; j < n_dest; j++)
dest_label[j] = NULL;
}
like `unknown variable t'. */
if (n_src != n_dest)
{
- msg (SE, _("Number of source variables (%d) does not match "
- "number of target variables (%d)."),
- n_src, n_dest);
+ msg (SE, _("Number of source variables (%u) does not match "
+ "number of target variables (%u)."),
+ (unsigned) n_src, (unsigned) n_dest);
goto error;
}
/* 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;
if (iter->function & FSTRING)
{
- int n_args;
- int i;
+ size_t n_args;
+ size_t i;
n_args = agr_func_tab[iter->function & FUNC].n_args;
for (i = 0; i < n_args; i++)
{
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))
{