PsppireDataStore (myreversefunc): Insert variables if attempting to access variable...
[pspp] / src / ui / gui / helper.c
index 84df352fdd48cf47ea671d2bf63c6886f01064f1..c7cfaebe8df57e334f93fbb82e14a576a64ec557 100644 (file)
@@ -1,5 +1,5 @@
 /* PSPPIRE - a graphical user interface for PSPP.
-   Copyright (C) 2007, 2009, 2010, 2011, 2012  Free Software Foundation
+   Copyright (C) 2007, 2009, 2010, 2011, 2012, 2013  Free Software Foundation
 
    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
@@ -40,7 +40,6 @@
 #include <data/settings.h>
 
 #include "psppire-data-store.h"
-#include "psppire.h"
 
 #include "gl/configmake.h"
 #include "xalloc.h"
@@ -96,7 +95,7 @@ value_to_text__ (union value v,
 {
   gchar *s;
 
-  s = data_out (&v, encoding, format);
+  s = data_out_stretchy (&v, encoding, format, NULL);
   if (fmt_is_numeric (format->type))
     g_strchug (s);
   else
@@ -156,7 +155,14 @@ text_to_value__ (const gchar *text,
     }
 
   value_init (val, width);
-  free (data_in (ss_cstr (text), UTF8, format->type, val, width, encoding));
+  char *err = data_in (ss_cstr (text), UTF8, format->type, val, width, encoding);
+
+  if (err)
+    {
+      value_destroy (val, width);
+      val = NULL;
+      free (err);
+    }
 
   return val;
 }
@@ -283,7 +289,7 @@ clone_list_store (const GtkListStore *src)
 
 
 
-static gboolean 
+static gboolean
 on_delete (GtkWindow *window, GdkEvent *e, GtkWindow **addr)
 {
   *addr = NULL;