X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flanguage%2Fdata-io%2Fprint.c;h=c0fc3d84f115bfbeebcb761ad880ab2ab16b1f33;hb=510cc9dd9baf3108ba55cfb7893384517c9930b4;hp=b021d8eba7340faa6de391127ca748d187bb23a8;hpb=5f894a49a00de93333e64db483c193669c937a45;p=pspp diff --git a/src/language/data-io/print.c b/src/language/data-io/print.c index b021d8eba7..c0fc3d84f1 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-break-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); @@ -556,16 +556,14 @@ print_text_flush_records (struct print_trns *trns, struct u8_line *line, { *eject = false; if (trns->writer == NULL) - page_break_item_submit (page_break_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, - NULL)); + output_log ("%s", ds_cstr (&line->s) + 1); else { size_t len = ds_length (&line->s); @@ -577,14 +575,7 @@ print_text_flush_records (struct print_trns *trns, struct u8_line *line, 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); } } }