}
}
}
+ free (by);
}
else if (lex_match_id ("FIRST"))
{
for (iter = mtf.head; iter != NULL; iter = iter->next)
if (iter->in_name != NULL)
{
- static const struct fmt_spec f1_0 = {FMT_F, 1, 0};
-
iter->in_var = dict_create_var (mtf.dict, iter->in_name, 0);
if (iter->in_var == NULL)
{
iter->in_var);
goto error;
}
- iter->in_var->print = iter->in_var->write = f1_0;
+ iter->in_var->print = iter->in_var->write
+ = make_output_format (FMT_F, 1, 0);
}
/* MATCH FILES performs an n-way merge on all its input files.
if (mtf.sink->class->open != NULL)
mtf.sink->class->open (mtf.sink);
- mtf.seq_nums = xcalloc (dict_get_var_cnt (mtf.dict) * sizeof *mtf.seq_nums);
+ mtf.seq_nums = xcalloc (dict_get_var_cnt (mtf.dict), sizeof *mtf.seq_nums);
case_create (&mtf.mtf_case, dict_get_next_value_idx (mtf.dict));
mtf_read_nonactive_records (&mtf);
procedure (mtf_processing, &mtf);
mtf_processing_finish (&mtf);
+ free_case_source (vfm_source);
+ vfm_source = NULL;
+
dict_destroy (default_dict);
default_dict = mtf.dict;
mtf.dict = NULL;
bool read_active_file;
assert (mtf->head != NULL);
- assert (mtf->head->type == MTF_FILE);
+ if (mtf->head->type == MTF_TABLE)
+ return 1;
+
do
{
struct mtf_file *min_head, *min_tail; /* Files with minimum BY values. */