Add comment explaining the meaning of encoding to data_out
[pspp-builds.git] / src / data / data-out.c
index 4c6ca3dd3ceaa223217c021e3d45ade44caa2507..94a6130adb154bd06b61901414e4209498cbf106 100644 (file)
@@ -106,22 +106,30 @@ data_out_legacy (const union value *input, const char *encoding,
   converters[format->type] (input, format, output);
   if (0 != strcmp (encoding, LEGACY_NATIVE)
       && fmt_get_category (format->type) != FMT_CAT_BINARY)
-    legacy_recode (LEGACY_NATIVE, output, encoding, output, format->w);
+    {
+      char *s  = recode_string (encoding, LEGACY_NATIVE, 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 ;