psppire-data-store: Don't try to parse strings as custom currency formats. 20130929030504/pspp
authorBen Pfaff <blp@cs.stanford.edu>
Sat, 28 Sep 2013 23:26:08 +0000 (16:26 -0700)
committerBen Pfaff <blp@cs.stanford.edu>
Sat, 28 Sep 2013 23:26:08 +0000 (16:26 -0700)
Custom currency formats are not usable for input, only for output, but this
code tried to use them for input if the format was changed to a custom
currency format in the GUI.  This commit fixes the problem by using a
DOLLAR format, instead, for parsing.

Reported by Bastián Díaz <diaz.bastian@ymail.com>.

src/ui/gui/psppire-data-store.c

index ea42339b35dd1d4f06f9ed4f7daf1d0f1c1a0170..8832e5175e73160989175ff255be8c9dc73af7c7 100644 (file)
@@ -226,7 +226,10 @@ resize_datum (const union value *old, union value *new, const void *aux_)
   const char *enc = dict_get_encoding (aux->dict);
   const struct fmt_spec *newfmt = var_get_print_format (aux->new_variable);
   char *s = data_out (old, enc, var_get_print_format (aux->old_variable));
-  free (data_in (ss_cstr (s), enc, newfmt->type, new, new_width, enc));
+  enum fmt_type type = (fmt_usable_for_input (newfmt->type)
+                        ? newfmt->type
+                        : FMT_DOLLAR);
+  free (data_in (ss_cstr (s), enc, type, new, new_width, enc));
   free (s);
 }