goto error;
case_create (&pgm->bounce, dict_get_next_value_idx (dict));
-
+
start_case_map (dict);
while (lex_token (lexer) != '.')
}
pgm->map = finish_case_map (dict);
-
- dict_destroy (dataset_dict (ds));
+
dataset_set_dict (ds, dict);
- proc_set_source (ds,
+ proc_set_source (ds,
create_case_source (&case_reader_source_class, pgm));
return CMD_SUCCESS;
if (used_active_file)
{
proc_set_sink (ds, create_case_sink (&null_sink_class,
- dataset_dict (ds), NULL));
+ dataset_dict (ds),
+ dataset_get_casefile_factory (ds),
+ NULL));
proc_open (ds);
}
else
discard_variables (ds);
dict_compact_values (mtf.dict);
- mtf.output = fastfile_create (dict_get_next_value_idx (mtf.dict));
+ mtf.output = dataset_get_casefile_factory (ds)->create_casefile
+ (dataset_get_casefile_factory (ds),
+ dict_get_next_value_idx (mtf.dict));
+
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));
discard_variables (ds);
- dict_destroy (dataset_dict (ds));
dataset_set_dict (ds, mtf.dict);
mtf.dict = NULL;
proc_set_source (ds, storage_source_create (mtf.output));
mtf.output = NULL;
-
+
return mtf_free (&mtf) ? CMD_SUCCESS : CMD_CASCADING_FAILURE;
-
+
error:
proc_close (ds);
mtf_free (&mtf);