Escape # character in call to g_spawn_command_line_async
[pspp] / src / ui / gui / helper.c
index 36165c7c20078e839fc4bf83afab2d7dcfa4f25e..3c7d7bcff072df218068595d6c8231a4535e5f0b 100644 (file)
 
 #include <gettext.h>
 
 
 #include <gettext.h>
 
-/* Formats a value according to FORMAT
-   The returned string must be freed when no longer required */
+/* Formats a value according to VAR's print format and strips white space
+   appropriately for VAR's type.  That is, if VAR is numeric, strips leading
+   white space (because numbers are right-justified within their fields), and
+   if VAR is string, strips trailing white space (because spaces pad out string
+   values on the right).
+
+   Returns an allocated string.  The returned string must be freed when no
+   longer required. */
 gchar *
 gchar *
-value_to_text (union value v, const PsppireDict *dict, struct fmt_spec format)
+value_to_text (union value v, const struct variable *var)
 {
 {
-  gchar *s = 0;
+  gchar *s;
 
 
-  s = data_out (&v, dict_get_encoding (dict->dict),  &format);
-  g_strchug (s);
+  s = data_out (&v, var_get_encoding (var), var_get_print_format (var));
+  if (var_is_numeric (var))
+    g_strchug (s);
+  else
+    g_strchomp (s);
 
   return s;
 }
 
   return s;
 }
@@ -65,14 +74,12 @@ value_to_text (union value v, const PsppireDict *dict, struct fmt_spec format)
 
    VAL will be initialised and filled by this function.
    It is the caller's responsibility to destroy VAL when no longer needed.
 
    VAL will be initialised and filled by this function.
    It is the caller's responsibility to destroy VAL when no longer needed.
-   VAR and DICT must be the variable and dictionary with which VAL
-   is associated.
+   VAR must be the variable with which VAL is associated.
 
    On success, VAL is returned, NULL otherwise.
 */
 union value *
 text_to_value (const gchar *text,
 
    On success, VAL is returned, NULL otherwise.
 */
 union value *
 text_to_value (const gchar *text,
-              const PsppireDict *dict,
               const struct variable *var,
               union value *val)
 {
               const struct variable *var,
               union value *val)
 {
@@ -98,7 +105,7 @@ text_to_value (const gchar *text,
 
   value_init (val, width);
   free (data_in (ss_cstr (text), UTF8, format->type, val, width,
 
   value_init (val, width);
   free (data_in (ss_cstr (text), UTF8, format->type, val, width,
-                 dict_get_encoding (dict->dict)));
+                 var_get_encoding (var)));
 
   return val;
 }
 
   return val;
 }
@@ -149,7 +156,11 @@ get_action_assert (GtkBuilder *builder, const gchar *name)
 GtkWidget *
 get_widget_assert (GtkBuilder *builder, const gchar *name)
 {
 GtkWidget *
 get_widget_assert (GtkBuilder *builder, const gchar *name)
 {
-  return GTK_WIDGET (get_object_assert (builder, name, GTK_TYPE_WIDGET));
+  GtkWidget *w = GTK_WIDGET (get_object_assert (builder, name, GTK_TYPE_WIDGET));
+  
+  g_object_set (w, "name", name, NULL);
+
+  return w;
 }
 
 /* This function must be used whenever a filename generated by glib,
 }
 
 /* This function must be used whenever a filename generated by glib,
@@ -290,7 +301,7 @@ paste_syntax_to_window (gchar *syntax)
 
   if ( NULL == the_syntax_pasteboard)
     {
 
   if ( NULL == the_syntax_pasteboard)
     {
-      the_syntax_pasteboard = psppire_syntax_window_new ();
+      the_syntax_pasteboard = psppire_syntax_window_new (NULL);
       g_signal_connect (the_syntax_pasteboard, "delete-event", G_CALLBACK (on_delete),
                        &the_syntax_pasteboard);
     }
       g_signal_connect (the_syntax_pasteboard, "delete-event", G_CALLBACK (on_delete),
                        &the_syntax_pasteboard);
     }