#include <language/lexer/lexer.h>
#include <language/line-buffer.h>
#include <libpspp/alloc.h>
+#include <libpspp/assertion.h>
#include <libpspp/message.h>
#include <libpspp/str.h>
getl_set_prompt_style (GETL_PROMPT_DATA);
}
- if (!getl_read_line (NULL))
+ if (!lex_get_line_raw ())
{
msg (SE, _("Unexpected end-of-file while reading data in BEGIN "
"DATA. This probably indicates "
return false;
}
- if (ds_length (&getl_buf) >= 8
- && !strncasecmp (ds_cstr (&getl_buf), "end data", 8))
+ if (ds_length (lex_entire_line_ds() ) >= 8
+ && !strncasecmp (lex_entire_line (), "end data", 8))
{
- lex_set_prog (ds_end (&getl_buf));
+ lex_discard_line ();
return false;
}
- ds_assign_string (&r->line, &getl_buf);
+ ds_assign_string (&r->line, lex_entire_line_ds () );
+
return true;
}
}
}
else
- abort ();
+ NOT_REACHED ();
r->where.line_number++;
/* Perform BEGIN DATA...END DATA as a procedure in itself. */
int
-cmd_begin_data (void)
+cmd_begin_data (struct dataset *ds)
{
struct dfm_reader *r;
bool ok;
/* Input procedure reads from inline file. */
getl_set_prompt_style (GETL_PROMPT_DATA);
- ok = procedure (NULL, NULL);
+ ok = procedure (ds, NULL, NULL);
dfm_close_reader (r);