X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flanguage%2Fdata-io%2Fdata-parser.c;h=0802bba8c5971117b2ebf9db50ca7ed35b9a0d02;hb=4e8efdc4acb80fc1a3735228d29fca0cf86fee6d;hp=2d7f9f4cd4a0528ba1131cc51daa7a43f9df13aa;hpb=6549c9aced0949b16abb372257772fc0893e02bb;p=pspp diff --git a/src/language/data-io/data-parser.c b/src/language/data-io/data-parser.c index 2d7f9f4cd4..0802bba8c5 100644 --- a/src/language/data-io/data-parser.c +++ b/src/language/data-io/data-parser.c @@ -531,13 +531,18 @@ parse_fixed (const struct data_parser *parser, struct dfm_reader *reader, line = dfm_get_record (reader); for (; f < &parser->fields[parser->field_cnt] && f->record == row; f++) - data_in (ss_substr (line, f->first_column - 1, - f->format.w), - encoding, f->format.type, f->format.d, - f->first_column, f->first_column + f->format.w, - parser->dict, - case_data_rw_idx (c, f->case_idx), - fmt_var_width (&f->format)); + { + struct substring s = ss_substr (line, f->first_column - 1, + f->format.w); + union value *value = case_data_rw_idx (c, f->case_idx); + + data_in (s, encoding, f->format.type, + f->first_column, f->first_column + f->format.w, + parser->dict, value, fmt_var_width (&f->format)); + + data_in_imply_decimals (s, encoding, f->format.type, f->format.d, + value); + } dfm_forward_record (reader); } @@ -577,8 +582,7 @@ parse_delimited_span (const struct data_parser *parser, } } - data_in (s, encoding, f->format.type, 0, - first_column, last_column, + data_in (s, encoding, f->format.type, first_column, last_column, parser->dict, case_data_rw_idx (c, f->case_idx), fmt_var_width (&f->format)); @@ -619,8 +623,7 @@ parse_delimited_no_span (const struct data_parser *parser, goto exit; } - data_in (s, encoding, f->format.type, 0, - first_column, last_column, + data_in (s, encoding, f->format.type, first_column, last_column, parser->dict, case_data_rw_idx (c, f->case_idx), fmt_var_width (&f->format));