X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flanguage%2Fdata-io%2Fprint.c;h=9e4d8a294dfee4c88d58f42f44c946df50ee189f;hb=b70dcc901c6b6b28a310ffc58aca13daa2a58d67;hp=0cb337d42879f6c3703ff73c8d99d78f9f09274d;hpb=018a99b1d53ec1ab60e84dfe82c02ffb14232820;p=pspp diff --git a/src/language/data-io/print.c b/src/language/data-io/print.c index 0cb337d428..9e4d8a294d 100644 --- 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 "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" @@ -175,7 +175,7 @@ internal_cmd_print (struct lexer *lexer, struct dataset *ds, { 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); @@ -505,7 +505,7 @@ print_text_trns_proc (void *trns_, struct ccase **c, 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; @@ -556,14 +556,14 @@ print_text_flush_records (struct print_trns *trns, struct u8_line *line, { *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) - table_output_text (TAB_FIX, ds_cstr (&line->s) + 1); + output_log ("%s", ds_cstr (&line->s) + 1); else { size_t len = ds_length (&line->s); @@ -617,7 +617,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), - &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)