X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flanguage%2Fdata-io%2Fprint.c;h=9c8f56e84289196182fc10bb8599e26a35c8f3b3;hb=b7cbf7cfbfa9de06ac8017c88b602477654c79a9;hp=f7a3d152c58bf513081f38a9809b97afa2537a90;hpb=59981a5060a0e672b98655be240886d89a513d31;p=pspp-builds.git diff --git a/src/language/data-io/print.c b/src/language/data-io/print.c index f7a3d152..9c8f56e8 100644 --- a/src/language/data-io/print.c +++ b/src/language/data-io/print.c @@ -32,6 +32,7 @@ #include #include #include +#include #include #include #include @@ -83,7 +84,7 @@ struct print_trns struct pool *pool; /* Stores related data. */ bool eject; /* Eject page before printing? */ bool include_prefix; /* Prefix lines with space? */ - enum legacy_encoding encoding; /* Encoding to use for output. */ + const char *encoding; /* Encoding to use for output. */ struct dfm_writer *writer; /* Output file, NULL=listing file. */ struct ll_list specs; /* List of struct prt_out_specs. */ size_t record_cnt; /* Number of records to write. */ @@ -395,7 +396,7 @@ dump_table (struct print_trns *trns, const struct file_handle *fh) int row; spec_cnt = ll_count (&trns->specs); - t = tab_create (4, spec_cnt + 1, 0); + t = tab_create (4, spec_cnt + 1); tab_columns (t, TAB_COL_DOWN); tab_box (t, TAL_1, TAL_1, TAL_0, TAL_1, 0, 0, 3, spec_cnt); tab_hline (t, TAL_2, 0, 3, 1); @@ -434,12 +435,12 @@ dump_table (struct print_trns *trns, const struct file_handle *fh) } if (fh != NULL) - tab_title (t, ngettext ("Writing %d record to %s.", - "Writing %d records to %s.", trns->record_cnt), + tab_title (t, ngettext ("Writing %zu record to %s.", + "Writing %zu records to %s.", trns->record_cnt), trns->record_cnt, fh_get_name (fh)); else - tab_title (t, ngettext ("Writing %d record.", - "Writing %d records.", trns->record_cnt), + tab_title (t, ngettext ("Writing %zu record.", + "Writing %zu records.", trns->record_cnt), trns->record_cnt); tab_submit (t); } @@ -480,12 +481,13 @@ print_trns_proc (void *trns_, struct ccase **c, casenumber case_num UNUSED) else { ds_put_substring (&trns->line, ds_ss (&spec->string)); - if (trns->encoding != LEGACY_NATIVE) + if (0 != strcmp (trns->encoding, LEGACY_NATIVE)) { size_t length = ds_length (&spec->string); char *data = ss_data (ds_tail (&trns->line, length)); - legacy_recode (LEGACY_NATIVE, data, - trns->encoding, data, length); + char *s = recode_string (trns->encoding, LEGACY_NATIVE, data, length); + memcpy (data, s, length); + free (s); } } }