#include <language/data-io/file-handle.h>
#include <language/lexer/lexer.h>
#include <language/lexer/variable-parser.h>
-#include <libpspp/alloc.h>
#include <libpspp/assertion.h>
#include <libpspp/compiler.h>
#include <libpspp/hash.h>
#include <libpspp/str.h>
#include <libpspp/taint.h>
+#include "get-data.h"
+
+#include "xalloc.h"
+
#include "gettext.h"
#define _(msgid) gettext (msgid)
IMPORT_CMD
};
-static void get_translate_case (const struct ccase *, struct ccase *,
- void *map_);
+static void get_translate_case (struct ccase *, struct ccase *, void *map_);
static bool get_destroy_case_map (void *map_);
/* Parses a GET or IMPORT command. */
struct dictionary *dict = NULL;
struct case_map *map = NULL;
+ if ( type == GET_CMD && lex_match_id (lexer, "DATA") )
+ {
+ return parse_get_data_command (lexer, ds);
+ }
+
for (;;)
{
lex_match (lexer, '/');
}
static void
-get_translate_case (const struct ccase *input, struct ccase *output,
+get_translate_case (struct ccase *input, struct ccase *output,
void *map_)
{
struct case_map *map = map_;
case_map_execute (map, input, output);
+ case_destroy (input);
}
static bool
goto done;
if (nn != nv)
{
- msg (SE, _("Number of variables on left side of `=' (%d) does not "
- "match number of variables on right side (%d), in "
+ msg (SE, _("Number of variables on left side of `=' (%zu) does not "
+ "match number of variables on right side (%zu), in "
"parenthesized group %d of RENAME subcommand."),
- (unsigned) (nv - old_nv), (unsigned) (nn - old_nv), group);
+ nv - old_nv, nn - old_nv, group);
goto done;
}
if (!lex_force_match (lexer, ')'))