projects
/
pspp-builds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
data-out: Optimize and fix some bad assumptions.
[pspp-builds.git]
/
src
/
language
/
data-io
/
print.c
diff --git
a/src/language/data-io/print.c
b/src/language/data-io/print.c
index a07ca2d8c54baa3f65b54aa9eeb60c005a7e6f01..62798272d1da4904a264c28533428bca726c1f84 100644
(file)
--- a/
src/language/data-io/print.c
+++ b/
src/language/data-io/print.c
@@
-468,11
+468,11
@@
print_trns_proc (void *trns_, struct ccase **c, casenumber case_num UNUSED)
if (spec->type == PRT_VAR)
{
const union value *input = case_data (*c, spec->var);
if (spec->type == PRT_VAR)
{
const union value *input = case_data (*c, spec->var);
- char *output = ds_put_uninit (&trns->line, spec->format.w);
if (!spec->sysmis_as_spaces || input->f != SYSMIS)
if (!spec->sysmis_as_spaces || input->f != SYSMIS)
- data_out_legacy (input, trns->encoding, &spec->format, output);
+ data_out_recode (input, var_get_encoding (spec->var),
+ &spec->format, &trns->line, trns->encoding);
else
else
-
memset (output
, encoded_space, spec->format.w);
+
ds_put_byte_multiple (&trns->line
, encoded_space, spec->format.w);
if (spec->add_space)
ds_put_byte (&trns->line, encoded_space);
}
if (spec->add_space)
ds_put_byte (&trns->line, encoded_space);
}