PRINT SPACE: When an output file is specified, don't ignore expression.
[pspp-builds.git] / src / language / data-io / print-space.c
index 3f73ee25a8de16fb1f1883608e2c6fa8cf25fdba..73712c0d322db368ca5d7dc0f831bc4b122b437f 100644 (file)
@@ -1,5 +1,5 @@
 /* PSPP - a program for statistical analysis.
-   Copyright (C) 2006, 2009 Free Software Foundation, Inc.
+   Copyright (C) 2006, 2009, 2010, 2011 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -26,8 +26,8 @@
 #include <language/data-io/file-handle.h>
 #include <language/expressions/public.h>
 #include <language/lexer/lexer.h>
-#include <output/manager.h>
 #include <libpspp/message.h>
+#include <output/text-item.h>
 
 #include "xalloc.h"
 
@@ -54,20 +54,19 @@ cmd_print_space (struct lexer *lexer, struct dataset *ds)
 
   if (lex_match_id (lexer, "OUTFILE"))
     {
-      lex_match (lexer, '=');
+      lex_match (lexer, T_EQUALS);
 
       handle = fh_parse (lexer, FH_REF_FILE);
       if (handle == NULL)
        return CMD_FAILURE;
-      lex_get (lexer);
     }
   else
     handle = NULL;
 
-  if (lex_token (lexer) != '.')
+  if (lex_token (lexer) != T_ENDCMD)
     {
       expr = expr_parse (lexer, ds, EXPR_NUMBER);
-      if (lex_token (lexer) != '.')
+      if (lex_token (lexer) != T_ENDCMD)
        {
          expr_free (expr);
          lex_error (lexer, _("expecting end of command"));
@@ -123,7 +122,7 @@ print_space_trns_proc (void *t_, struct ccase **c,
 
   while (n--)
     if (trns->writer == NULL)
-      som_blank_line ();
+      text_item_submit (text_item_create (TEXT_ITEM_BLANK_LINE, ""));
     else
       dfm_put_record (trns->writer, " ", 1);