Some basic tests.
[pspp] / src / language / data-io / save-translate.c
index 0da3c8b96f0f9a807972b1c2cb6e5ee9e586ef4e..a565f4471c3aeef45f34db40c44641b34a620ec9 100644 (file)
@@ -33,7 +33,6 @@
 #include "language/lexer/lexer.h"
 #include "libpspp/message.h"
 
-#include "xalloc.h"
 
 #include "gettext.h"
 #define _(msgid) gettext (msgid)
@@ -50,8 +49,6 @@ cmd_save_translate (struct lexer *lexer, struct dataset *ds)
   struct casewriter *writer;
   struct file_handle *handle;
 
-  struct csv_writer_options csv_opts;
-
   bool replace;
 
   bool retain_unselected;
@@ -80,7 +77,7 @@ cmd_save_translate (struct lexer *lexer, struct dataset *ds)
   include_var_names = false;
   use_value_labels = false;
   use_print_formats = false;
-  decimal = settings_get_decimal_char (FMT_F);
+  decimal = settings_get_fmt_settings ()->decimal;
   delimiter = 0;
   qualifier = '"';
 
@@ -233,7 +230,7 @@ cmd_save_translate (struct lexer *lexer, struct dataset *ds)
               goto error;
             }
         }
-      else if (!parse_dict_trim (lexer, dict))
+      else if (!parse_dict_trim (lexer, dict, true))
         goto error;
     }
 
@@ -257,17 +254,18 @@ cmd_save_translate (struct lexer *lexer, struct dataset *ds)
   dict_delete_scratch_vars (dict);
   dict_compact_values (dict);
 
-  csv_opts.recode_user_missing = recode_user_missing;
-  csv_opts.include_var_names = include_var_names;
-  csv_opts.use_value_labels = use_value_labels;
-  csv_opts.use_print_formats = use_print_formats;
-  csv_opts.decimal = decimal;
-  csv_opts.delimiter = (delimiter ? delimiter
-                        : type == TAB_FILE ? '\t'
-                        : decimal == '.' ? ','
-                        : ';');
-  csv_opts.qualifier = qualifier;
-
+  struct csv_writer_options csv_opts = {
+    .recode_user_missing = recode_user_missing,
+    .include_var_names = include_var_names,
+    .use_value_labels = use_value_labels,
+    .use_print_formats = use_print_formats,
+    .decimal = decimal,
+    .delimiter = (delimiter ? delimiter
+                  : type == TAB_FILE ? '\t'
+                  : decimal == '.' ? ','
+                  : ';'),
+    .qualifier = qualifier,
+  };
   writer = csv_writer_open (handle, dict, &csv_opts);
   if (writer == NULL)
     goto error;