struct dfm_reader *reader;
struct variable *end = NULL;
struct file_handle *fh = NULL;
- struct string encoding = DS_EMPTY_INITIALIZER;
+ char *encoding = NULL;
int table;
enum data_parser_type type;
if (!lex_force_string (lexer))
goto error;
- ds_init_substring (&encoding, lex_tokss (lexer));
+ free (encoding);
+ encoding = ss_xstrdup (lex_tokss (lexer));
lex_get (lexer);
}
}
type = data_parser_get_type (parser);
- if (! ds_is_empty (&encoding) && NULL == fh)
+ if (encoding && NULL == fh)
msg (MW, _("Encoding should not be specified for inline data. It will be "
"ignored."));
if (table)
data_parser_output_description (parser, fh);
- reader = dfm_open_reader (fh, lexer);
+ reader = dfm_open_reader (fh, lexer, encoding);
if (reader == NULL)
goto error;
data_parser_make_active_file (parser, ds, reader, dict);
fh_unref (fh);
- ds_destroy (&encoding);
+ free (encoding);
return CMD_SUCCESS;
if (!in_input_program ())
dict_destroy (dict);
fh_unref (fh);
- ds_destroy (&encoding);
+ free (encoding);
return CMD_CASCADING_FAILURE;
}
\f