projects
/
pspp
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
data-in: Make data_in() parameters more uniform.
[pspp]
/
src
/
language
/
data-io
/
data-parser.c
diff --git
a/src/language/data-io/data-parser.c
b/src/language/data-io/data-parser.c
index 0802bba8c5971117b2ebf9db50ca7ed35b9a0d02..800ae57b50db3e027a82396ce243e4604cf45f5f 100644
(file)
--- a/
src/language/data-io/data-parser.c
+++ b/
src/language/data-io/data-parser.c
@@
-509,7
+509,8
@@
static bool
parse_fixed (const struct data_parser *parser, struct dfm_reader *reader,
struct ccase *c)
{
parse_fixed (const struct data_parser *parser, struct dfm_reader *reader,
struct ccase *c)
{
- const char *encoding = dfm_reader_get_legacy_encoding (reader);
+ const char *input_encoding = dfm_reader_get_legacy_encoding (reader);
+ const char *output_encoding = dict_get_encoding (parser->dict);
struct field *f;
int row;
struct field *f;
int row;
@@
-536,12
+537,12
@@
parse_fixed (const struct data_parser *parser, struct dfm_reader *reader,
f->format.w);
union value *value = case_data_rw_idx (c, f->case_idx);
f->format.w);
union value *value = case_data_rw_idx (c, f->case_idx);
- data_in (s, encoding, f->format.type,
+ data_in (s,
input_
encoding, f->format.type,
f->first_column, f->first_column + f->format.w,
f->first_column, f->first_column + f->format.w,
-
parser->dict, value, fmt_var_width (&f->format)
);
+
value, fmt_var_width (&f->format), output_encoding
);
- data_in_imply_decimals (s,
encoding, f->format.type, f->format.d
,
- value);
+ data_in_imply_decimals (s,
input_encoding, f->format.type
,
+
f->format.d,
value);
}
dfm_forward_record (reader);
}
dfm_forward_record (reader);
@@
-557,7
+558,8
@@
static bool
parse_delimited_span (const struct data_parser *parser,
struct dfm_reader *reader, struct ccase *c)
{
parse_delimited_span (const struct data_parser *parser,
struct dfm_reader *reader, struct ccase *c)
{
- const char *encoding = dfm_reader_get_legacy_encoding (reader);
+ const char *input_encoding = dfm_reader_get_legacy_encoding (reader);
+ const char *output_encoding = dict_get_encoding (parser->dict);
struct string tmp = DS_EMPTY_INITIALIZER;
struct field *f;
struct string tmp = DS_EMPTY_INITIALIZER;
struct field *f;
@@
-582,10
+584,9
@@
parse_delimited_span (const struct data_parser *parser,
}
}
}
}
- data_in (s, encoding, f->format.type, first_column, last_column,
- parser->dict,
+ data_in (s, input_encoding, f->format.type, first_column, last_column,
case_data_rw_idx (c, f->case_idx),
case_data_rw_idx (c, f->case_idx),
- fmt_var_width (&f->format));
+ fmt_var_width (&f->format)
, output_encoding
);
}
ds_destroy (&tmp);
return true;
}
ds_destroy (&tmp);
return true;
@@
-598,7
+599,8
@@
static bool
parse_delimited_no_span (const struct data_parser *parser,
struct dfm_reader *reader, struct ccase *c)
{
parse_delimited_no_span (const struct data_parser *parser,
struct dfm_reader *reader, struct ccase *c)
{
- const char *encoding = dfm_reader_get_legacy_encoding (reader);
+ const char *input_encoding = dfm_reader_get_legacy_encoding (reader);
+ const char *output_encoding = dict_get_encoding (parser->dict);
struct string tmp = DS_EMPTY_INITIALIZER;
struct substring s;
struct field *f, *end;
struct string tmp = DS_EMPTY_INITIALIZER;
struct substring s;
struct field *f, *end;
@@
-623,10
+625,9
@@
parse_delimited_no_span (const struct data_parser *parser,
goto exit;
}
goto exit;
}
- data_in (s, encoding, f->format.type, first_column, last_column,
- parser->dict,
+ data_in (s, input_encoding, f->format.type, first_column, last_column,
case_data_rw_idx (c, f->case_idx),
case_data_rw_idx (c, f->case_idx),
- fmt_var_width (&f->format));
+ fmt_var_width (&f->format)
, output_encoding
);
}
s = dfm_get_record (reader);
}
s = dfm_get_record (reader);