i18n: Introduce C_ENCODING as replacement for LEGACY_NATIVE.
[pspp-builds.git] / src / data / data-out.c
index 4c6ca3dd3ceaa223217c021e3d45ade44caa2507..ca5fcecef79a0b231a482c4a4bb7c429b3a5e372 100644 (file)
@@ -1,5 +1,5 @@
 /* PSPP - a program for statistical analysis.
-   Copyright (C) 1997-9, 2000, 2006, 2009 Free Software Foundation, Inc.
+   Copyright (C) 1997-9, 2000, 2006, 2009, 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
@@ -104,24 +104,32 @@ data_out_legacy (const union value *input, const char *encoding,
   assert (fmt_check_output (format));
 
   converters[format->type] (input, format, output);
-  if (0 != strcmp (encoding, LEGACY_NATIVE)
+  if (0 != strcmp (encoding, C_ENCODING)
       && fmt_get_category (format->type) != FMT_CAT_BINARY)
-    legacy_recode (LEGACY_NATIVE, output, encoding, output, format->w);
+    {
+      char *s  = recode_string (encoding, C_ENCODING, output, format->w );
+      memcpy (output, s, format->w);
+      free (s);
+    }
 }
 
-/* Converts the INPUT value into a UTF8 encoded string, according to format
-   specification FORMAT. 
+/* Converts the INPUT value into a UTF8 encoded string, according
+   to format specification FORMAT. 
 
    VALUE must be the correct width for FORMAT, that is, its
    width must be fmt_var_width(FORMAT).
 
+   ENCODING must be the encoding of INPUT.  Normally this can
+   be obtained by calling dict_get_encoding on the dictionary
+   with which INPUT is associated.
+
    The return value is dynamically allocated, and must be freed
    by the caller.  If POOL is non-null, then the return value is
    allocated on that pool.
 */
 char *
-data_out_pool (const union value *input, const char *encoding, const struct fmt_spec *format,
-         struct pool *pool)
+data_out_pool (const union value *input, const char *encoding,
+              const struct fmt_spec *format, struct pool *pool)
 {
   char *output = xmalloc (format->w + 1);
   char *t ;