#include <stdlib.h>
+#include "data/dataset.h"
#include "data/dictionary.h"
#include "data/format.h"
#include "data/gnumeric-reader.h"
-#include "data/procedure.h"
#include "data/psql-reader.h"
#include "data/settings.h"
#include "language/command.h"
#include "language/data-io/placement-parser.h"
#include "language/lexer/format-parser.h"
#include "language/lexer/lexer.h"
+#include "libpspp/i18n.h"
#include "libpspp/message.h"
#include "gl/xalloc.h"
struct casereader *reader = psql_open_reader (&psql, &dict);
if ( reader )
- proc_set_active_file (ds, reader, dict);
+ {
+ dataset_set_dict (ds, dict);
+ dataset_set_source (ds, reader);
+ }
}
ds_destroy (&psql.sql);
if (!lex_force_string (lexer))
goto error;
- gri.file_name = ss_xstrdup (lex_tokss (lexer));
+ gri.file_name = utf8_to_filename (lex_tokcstr (lexer));
lex_get (lexer);
struct casereader *reader = gnumeric_open_reader (&gri, &dict);
if ( reader )
- proc_set_active_file (ds, reader, dict);
+ {
+ dataset_set_dict (ds, dict);
+ dataset_set_source (ds, reader);
+ }
}
free (gri.file_name);
if (!lex_force_string (lexer))
goto error;
+ /* XXX should support multibyte UTF-8 characters */
s = lex_tokss (lexer);
if (ss_match_string (&s, ss_cstr ("\\t")))
ds_put_cstr (&hard_seps, "\t");
if (!lex_force_string (lexer))
goto error;
+ /* XXX should support multibyte UTF-8 characters */
if (settings_get_syntax () == COMPATIBLE
&& ss_length (lex_tokss (lexer)) != 1)
{
lex_get (lexer);
}
- if (!lex_force_id (lexer))
+ if (!lex_force_id (lexer)
+ || !dict_id_is_valid (dict, lex_tokcstr (lexer), true))
goto error;
name = xstrdup (lex_tokcstr (lexer));
lex_get (lexer);