X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flanguage%2Fdata-io%2Fprint.c;h=169b6a5d7e5f935a2a91c3340e0fc40f56b02b5b;hb=2be9bee9da6a2ce27715e58128569594319abfa2;hp=96ac15e15298aae2b3624dc560c148f47327a188;hpb=55e6e7ba37a30570f5a31e2d78c22dfa7b61a36f;p=pspp-builds.git diff --git a/src/language/data-io/print.c b/src/language/data-io/print.c index 96ac15e1..169b6a5d 100644 --- a/src/language/data-io/print.c +++ b/src/language/data-io/print.c @@ -1,5 +1,5 @@ /* PSPP - a program for statistical analysis. - Copyright (C) 1997-9, 2000, 2006, 2009, 2010 Free Software Foundation, Inc. + Copyright (C) 1997-9, 2000, 2006, 2009, 2010, 2011 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -18,30 +18,30 @@ #include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "xalloc.h" +#include "data/case.h" +#include "data/dataset.h" +#include "data/data-out.h" +#include "data/format.h" +#include "data/transformations.h" +#include "data/variable.h" +#include "language/command.h" +#include "language/data-io/data-writer.h" +#include "language/data-io/file-handle.h" +#include "language/data-io/placement-parser.h" +#include "language/lexer/format-parser.h" +#include "language/lexer/lexer.h" +#include "language/lexer/variable-parser.h" +#include "libpspp/assertion.h" +#include "libpspp/compiler.h" +#include "libpspp/i18n.h" +#include "libpspp/ll.h" +#include "libpspp/message.h" +#include "libpspp/misc.h" +#include "libpspp/pool.h" +#include "output/tab.h" +#include "output/text-item.h" + +#include "gl/xalloc.h" #include "gettext.h" #define _(msgid) gettext (msgid) @@ -200,7 +200,7 @@ internal_cmd_print (struct lexer *lexer, struct dataset *ds, trns->encoding = dfm_writer_get_legacy_encoding (trns->writer); } else - trns->encoding = LEGACY_NATIVE; + trns->encoding = UTF8; /* Output the variable table if requested. */ if (print_table) @@ -454,7 +454,7 @@ print_trns_proc (void *trns_, struct ccase **c, casenumber case_num UNUSED) { struct print_trns *trns = trns_; bool eject = trns->eject; - char encoded_space = legacy_from_native (trns->encoding, ' '); + char encoded_space = recode_byte (trns->encoding, C_ENCODING, ' '); int record = 1; struct prt_out_spec *spec; @@ -468,22 +468,22 @@ 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); - char *output = ds_put_uninit (&trns->line, spec->format.w); 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 - 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); } else { ds_put_substring (&trns->line, ds_ss (&spec->string)); - if (0 != strcmp (trns->encoding, LEGACY_NATIVE)) + if (0 != strcmp (trns->encoding, C_ENCODING)) { size_t length = ds_length (&spec->string); char *data = ss_data (ds_tail (&trns->line, length)); - char *s = recode_string (trns->encoding, LEGACY_NATIVE, data, length); + char *s = recode_string (trns->encoding, C_ENCODING, data, length); memcpy (data, s, length); free (s); } @@ -518,7 +518,7 @@ flush_records (struct print_trns *trns, int target_record, else leader = '1'; } - line[0] = legacy_from_native (trns->encoding, leader); + line[0] = recode_byte (trns->encoding, C_ENCODING, leader); if (trns->writer == NULL) tab_output_text (TAB_FIX, &line[1]);