Converted strings to utf8 before passing to gtksheet. Should work properly now with
[pspp-builds.git] / src / ui / gui / helper.c
index b3d83da270472ea6b62cf3d2ea1405d82870b727..e3c4ee081a911cb4d70d81d14517cf0005b25ee3 100644 (file)
@@ -35,16 +35,18 @@ text_to_value(const gchar *text, union value *v,
   if ( format.type != FMT_A) 
     {
       if ( ! text ) return FALSE;
-  
-      const gchar *s = text;
-      while(*s) 
-       {
-         if ( !isspace(*s))
-           break;
-         s++;
-       }
+
+      {
+       const gchar *s = text;
+       while(*s) 
+         {
+           if ( !isspace(*s))
+             break;
+           s++;
+         }
  
-      if ( !*s) return FALSE;
+       if ( !*s) return FALSE;
+      }
     }
 
   di.s = text;
@@ -62,13 +64,37 @@ text_to_value(const gchar *text, union value *v,
 GtkWidget *
 get_widget_assert(GladeXML *xml, const gchar *name)
 {
+  GtkWidget *w;
   g_assert(xml);
   g_assert(name);
-  GtkWidget * w = glade_xml_get_widget(xml, name);
+  
+  w = glade_xml_get_widget(xml, name);
 
   if ( !w ) 
-    g_warning("Widget \"%s\" could not be found\n",name);
+    g_warning("Widget \"%s\" could not be found\n", name);
 
   return w;
 }
 
+/* Converts a string in the pspp locale to utf-8 */
+const char *
+pspp_locale_to_utf8(const gchar *text, gssize len, GError **err)
+{
+  GError *tmp_error = 0;
+
+  const gchar *s;
+
+  if ( ! text ) 
+    return 0;
+
+  s = g_locale_to_utf8(text, len, 0, 0, &tmp_error);
+
+  if ( tmp_error)
+    {
+      g_warning("Error converting to UTF8: %s", tmp_error->message);
+      g_propagate_error (err, tmp_error);
+    }
+
+  return s;
+}
+