X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flanguage%2Fdata-io%2Fdata-reader.c;h=6458a82172b5b14c26958589a0c7671208e21a77;hb=3a61659a8fc11c51ad5af02b20f5613dcde50382;hp=c2da55046219aebedf77e90e78da2faa5a45794f;hpb=b74d09af5e07f954c18e7cdb8aca3af47fa10208;p=pspp diff --git a/src/language/data-io/data-reader.c b/src/language/data-io/data-reader.c index c2da550462..6458a82172 100644 --- a/src/language/data-io/data-reader.c +++ b/src/language/data-io/data-reader.c @@ -34,6 +34,7 @@ #include #include #include +#include #include #include @@ -169,7 +170,7 @@ read_inline_record (struct dfm_reader *r) 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 " @@ -179,14 +180,15 @@ read_inline_record (struct dfm_reader *r) 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; } @@ -224,7 +226,7 @@ read_file_record (struct dfm_reader *r) } } else - abort (); + NOT_REACHED (); r->where.line_number++; @@ -422,7 +424,7 @@ dfm_pop (struct dfm_reader *r) /* 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; @@ -440,7 +442,7 @@ cmd_begin_data (void) /* 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);