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);
}
}
}
- 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));
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));