projects
/
pspp
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
READ negative tests
[pspp]
/
src
/
language
/
data-io
/
print.c
diff --git
a/src/language/data-io/print.c
b/src/language/data-io/print.c
index 4a767dc3dc9a4a3704b0cc876a0e907932e0b9e4..c0fc3d84f115bfbeebcb761ad880ab2ab16b1f33 100644
(file)
--- a/
src/language/data-io/print.c
+++ b/
src/language/data-io/print.c
@@
-40,10
+40,10
@@
#include "libpspp/misc.h"
#include "libpspp/pool.h"
#include "libpspp/u8-line.h"
#include "libpspp/misc.h"
#include "libpspp/pool.h"
#include "libpspp/u8-line.h"
+#include "output/driver.h"
#include "output/pivot-table.h"
#include "output/table.h"
#include "output/pivot-table.h"
#include "output/table.h"
-#include "output/page-eject-item.h"
-#include "output/text-item.h"
+#include "output/output-item.h"
#include "gl/xalloc.h"
#include "gl/xalloc.h"
@@
-175,7
+175,7
@@
internal_cmd_print (struct lexer *lexer, struct dataset *ds,
{
lex_match (lexer, T_EQUALS);
lex_match (lexer, T_LPAREN);
{
lex_match (lexer, T_EQUALS);
lex_match (lexer, T_LPAREN);
- if (!lex_force_int
(lexer
))
+ if (!lex_force_int
_range (lexer, "RECORDS", 0, INT_MAX
))
goto error;
trns->record_cnt = lex_integer (lexer);
lex_get (lexer);
goto error;
trns->record_cnt = lex_integer (lexer);
lex_get (lexer);
@@
-505,7
+505,7
@@
print_text_trns_proc (void *trns_, struct ccase **c,
char *s;
s = data_out (input, var_get_encoding (spec->var),
char *s;
s = data_out (input, var_get_encoding (spec->var),
- &spec->format);
+ &spec->format
, settings_get_fmt_settings ()
);
len = strlen (s);
width = u8_width (CHAR_CAST (const uint8_t *, s), len, UTF8);
x1 = x0 + width;
len = strlen (s);
width = u8_width (CHAR_CAST (const uint8_t *, s), len, UTF8);
x1 = x0 + width;
@@
-556,15
+556,14
@@
print_text_flush_records (struct print_trns *trns, struct u8_line *line,
{
*eject = false;
if (trns->writer == NULL)
{
*eject = false;
if (trns->writer == NULL)
-
page_eject_item_submit (page_eject
_item_create ());
+
output_item_submit (page_break
_item_create ());
else
leader = '1';
}
*u8_line_reserve (line, 0, 1, 1) = leader;
if (trns->writer == NULL)
else
leader = '1';
}
*u8_line_reserve (line, 0, 1, 1) = leader;
if (trns->writer == NULL)
- text_item_submit (text_item_create (TEXT_ITEM_LOG,
- ds_cstr (&line->s) + 1));
+ output_log ("%s", ds_cstr (&line->s) + 1);
else
{
size_t len = ds_length (&line->s);
else
{
size_t len = ds_length (&line->s);
@@
-576,14
+575,7
@@
print_text_flush_records (struct print_trns *trns, struct u8_line *line,
len--;
}
len--;
}
- if (is_encoding_utf8 (trns->encoding))
- dfm_put_record (trns->writer, s, len);
- else
- {
- char *recoded = recode_string (trns->encoding, UTF8, s, len);
- dfm_put_record (trns->writer, recoded, strlen (recoded));
- free (recoded);
- }
+ dfm_put_record_utf8 (trns->writer, s, len);
}
}
}
}
}
}
@@
-618,7
+610,8
@@
print_binary_trns_proc (void *trns_, struct ccase **c,
const union value *input = case_data (*c, spec->var);
if (!spec->sysmis_as_spaces || input->f != SYSMIS)
data_out_recode (input, var_get_encoding (spec->var),
const union value *input = case_data (*c, spec->var);
if (!spec->sysmis_as_spaces || input->f != SYSMIS)
data_out_recode (input, var_get_encoding (spec->var),
- &spec->format, &line, trns->encoding);
+ &spec->format, settings_get_fmt_settings (),
+ &line, trns->encoding);
else
ds_put_byte_multiple (&line, encoded_space, spec->format.w);
if (spec->add_space)
else
ds_put_byte_multiple (&line, encoded_space, spec->format.w);
if (spec->add_space)