{
struct dfm_writer *writer; /* Output data file. */
struct expression *expr; /* Number of lines; NULL means 1. */
- }
-print_space_trns;
+ };
static trns_proc_func print_space_trns_proc;
static trns_free_func print_space_trns_free;
int
-cmd_print_space (void)
+cmd_print_space (struct lexer *lexer, struct dataset *ds)
{
struct print_space_trns *trns;
struct file_handle *handle;
struct expression *expr;
struct dfm_writer *writer;
- if (lex_match_id ("OUTFILE"))
+ if (lex_match_id (lexer, "OUTFILE"))
{
- lex_match ('=');
+ lex_match (lexer, '=');
- handle = fh_parse (FH_REF_FILE);
+ handle = fh_parse (lexer, FH_REF_FILE);
if (handle == NULL)
return CMD_FAILURE;
- lex_get ();
+ lex_get (lexer);
}
else
handle = NULL;
- if (token != '.')
+ if (lex_token (lexer) != '.')
{
- expr = expr_parse (default_dict, EXPR_NUMBER);
- if (token != '.')
+ expr = expr_parse (lexer, ds, EXPR_NUMBER);
+ if (lex_token (lexer) != '.')
{
expr_free (expr);
- lex_error (_("expecting end of command"));
+ lex_error (lexer, _("expecting end of command"));
return CMD_FAILURE;
}
}
trns->writer = writer;
trns->expr = expr;
- add_transformation (print_space_trns_proc, print_space_trns_free, trns);
+ add_transformation (ds,
+ print_space_trns_proc, print_space_trns_free, trns);
return CMD_SUCCESS;
}
/* Executes a PRINT SPACE transformation. */
static int
print_space_trns_proc (void *t_, struct ccase *c,
- casenum_t case_num UNUSED)
+ casenumber case_num UNUSED)
{
struct print_space_trns *trns = t_;
int n;
if (trns->writer == NULL)
som_blank_line ();
else
- dfm_put_record (trns->writer, "\n", 1);
+ dfm_put_record (trns->writer, " ", 1);
if (trns->writer != NULL && dfm_write_error (trns->writer))
return TRNS_ERROR;