projects
/
pspp-builds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Enables Data Open/Save/New menuitems.
[pspp-builds.git]
/
src
/
language
/
data-io
/
get.c
diff --git
a/src/language/data-io/get.c
b/src/language/data-io/get.c
index 8b03ec95f809322e88edff3a47bd1a0d6ba7465f..425e8c512031b8645ad6f7d4d80043b7081a5e11 100644
(file)
--- a/
src/language/data-io/get.c
+++ b/
src/language/data-io/get.c
@@
-137,7
+137,7
@@
parse_read_command (struct lexer *lexer, struct dataset *ds, enum reader_command
goto error;
case_create (&pgm->bounce, dict_get_next_value_idx (dict));
goto error;
case_create (&pgm->bounce, dict_get_next_value_idx (dict));
-
+
start_case_map (dict);
while (lex_token (lexer) != '.')
start_case_map (dict);
while (lex_token (lexer) != '.')
@@
-148,11
+148,10
@@
parse_read_command (struct lexer *lexer, struct dataset *ds, enum reader_command
}
pgm->map = finish_case_map (dict);
}
pgm->map = finish_case_map (dict);
-
- dict_destroy (dataset_dict (ds));
+
dataset_set_dict (ds, dict);
dataset_set_dict (ds, dict);
- proc_set_source (ds,
+ proc_set_source (ds,
create_case_source (&case_reader_source_class, pgm));
return CMD_SUCCESS;
create_case_source (&case_reader_source_class, pgm));
return CMD_SUCCESS;
@@
-1111,14
+1110,19
@@
cmd_match_files (struct lexer *lexer, struct dataset *ds)
if (used_active_file)
{
proc_set_sink (ds, create_case_sink (&null_sink_class,
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);
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));
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));
@@
-1132,14
+1136,13
@@
cmd_match_files (struct lexer *lexer, struct dataset *ds)
discard_variables (ds);
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;
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;
return mtf_free (&mtf) ? CMD_SUCCESS : CMD_CASCADING_FAILURE;
-
+
error:
proc_close (ds);
mtf_free (&mtf);
error:
proc_close (ds);
mtf_free (&mtf);