X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=src%2Flanguage%2Fdata-io%2Fdata-parser.c;h=2d7f9f4cd4a0528ba1131cc51daa7a43f9df13aa;hb=2fc70481c7621ee4d51f986c53c4add4ec6cc57d;hp=1e68c904c3a4e9f16f7567f1205e70929a343c95;hpb=dd714f7d6e14e5fcad0014170201d23d116d4246;p=pspp diff --git a/src/language/data-io/data-parser.c b/src/language/data-io/data-parser.c index 1e68c904c3..2d7f9f4cd4 100644 --- a/src/language/data-io/data-parser.c +++ b/src/language/data-io/data-parser.c @@ -597,22 +597,23 @@ parse_delimited_no_span (const struct data_parser *parser, const char *encoding = dfm_reader_get_legacy_encoding (reader); struct string tmp = DS_EMPTY_INITIALIZER; struct substring s; - struct field *f; + struct field *f, *end; if (dfm_eof (reader)) return false; - for (f = parser->fields; f < &parser->fields[parser->field_cnt]; f++) + end = &parser->fields[parser->field_cnt]; + for (f = parser->fields; f < end; f++) { int first_column, last_column; if (!cut_field (parser, reader, &first_column, &last_column, &tmp, &s)) { - if (settings_get_undefined ()) + if (f < end - 1 && settings_get_undefined ()) msg (SW, _("Missing value(s) for all variables from %s onward. " "These will be filled with the system-missing value " "or blanks, as appropriate."), f->name); - for (; f < &parser->fields[parser->field_cnt]; f++) + for (; f < end; f++) value_set_missing (case_data_rw_idx (c, f->case_idx), fmt_var_width (&f->format)); goto exit;