X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?p=pspp-builds.git;a=blobdiff_plain;f=src%2Flanguage%2Fdata-io%2Fdata-parser.c;h=8f189b1b212c6bccf497e28b68900612e6989149;hp=eab32868431bdf007aebf4b5d752ae9da843c257;hb=a5097a183f00ab2d2dc538ba7094a4696e2fea04;hpb=4a8a4cd81b9d7d9e6b757be4d0a8a62b48325051 diff --git a/src/language/data-io/data-parser.c b/src/language/data-io/data-parser.c index eab32868..8f189b1b 100644 --- a/src/language/data-io/data-parser.c +++ b/src/language/data-io/data-parser.c @@ -41,6 +41,7 @@ /* Data parser for textual data like that read by DATA LIST. */ struct data_parser { + const struct dictionary *dict; /*Dictionary of destination */ enum data_parser_type type; /* Type of data to parse. */ int skip_records; /* Records to skip before first real data. */ casenumber max_cases; /* Max number of cases to read. */ @@ -79,7 +80,7 @@ static void set_any_sep (struct data_parser *parser); /* Creates and returns a new data parser. */ struct data_parser * -data_parser_create (void) +data_parser_create (const struct dictionary *dict) { struct data_parser *parser = xmalloc (sizeof *parser); @@ -91,6 +92,7 @@ data_parser_create (void) parser->fields = NULL; parser->field_cnt = 0; parser->field_allocated = 0; + parser->dict = dict; parser->span = true; parser->empty_line_has_field = false; @@ -531,6 +533,7 @@ parse_fixed (const struct data_parser *parser, struct dfm_reader *reader, 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)); @@ -574,6 +577,7 @@ parse_delimited_span (const struct data_parser *parser, data_in (s, encoding, f->format.type, 0, first_column, last_column, + parser->dict, case_data_rw_idx (c, f->case_idx), fmt_var_width (&f->format)); } @@ -614,6 +618,7 @@ parse_delimited_no_span (const struct data_parser *parser, data_in (s, encoding, f->format.type, 0, first_column, last_column, + parser->dict, case_data_rw_idx (c, f->case_idx), fmt_var_width (&f->format)); }