#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/page-eject-item.h"
-#include "output/text-item.h"
+#include "output/output-item.h"
#include "gl/xalloc.h"
{
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);
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;
{
*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)
- 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);
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);
}
}
}
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)