/* PSPP - computes sample statistics.
Copyright (C) 2006 Free Software Foundation, Inc.
- Written by Ben Pfaff <blp@gnu.org>.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
#include <stdlib.h>
#include <data/procedure.h>
+#include <data/value.h>
#include <language/command.h>
#include <language/data-io/data-writer.h>
#include <language/data-io/file-handle.h>
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 (dataset_dict (current_dataset), 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 (current_dataset,
+ 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;