gui: Move some formatting functions into PSPP core.
[pspp-builds.git] / src / ui / gui / var-display.c
index 50e0df4bbc7ec360869195c387ce9c1deadda119..db0020f4f426729160a6ab665e408b7da677239c 100644 (file)
 static const gchar none[] = N_("None");
 
 
-gchar *
-measure_to_string (const struct variable *var, GError **err)
-{
-  const gint measure = var_get_measure (var);
-
-  g_assert (measure < n_MEASURES);
-  return g_locale_to_utf8 (gettext (measures[measure]),
-                          -1, 0, 0, err);
-}
-
-
 gchar *
 missing_values_to_string (const PsppireDict *dict, const struct variable *pv, GError **err)
 {
-  const struct fmt_spec *fmt =  var_get_print_format (pv);
   gchar *s;
   const struct missing_values *miss = var_get_missing_values (pv);
   if ( mv_is_empty (miss))
-    return g_locale_to_utf8 (gettext (none), -1, 0, 0, err);
+    return xstrdup (gettext (none));
   else
     {
       if ( ! mv_has_range (miss))
@@ -45,17 +33,14 @@ missing_values_to_string (const PsppireDict *dict, const struct variable *pv, GE
          gint i;
          for (i = 0 ; i < n; ++i )
            {
-             union value v;
-             mv_get_value (miss, &v, i);
-             mv[i] = value_to_text (v, *fmt);
+             mv[i] = value_to_text (*mv_get_value (miss, i), pv);
              if ( i > 0 )
                g_string_append (gstr, ", ");
              g_string_append (gstr, mv[i]);
              g_free (mv[i]);
            }
-         s = recode_string (UTF8, psppire_dict_encoding (dict),
-                            gstr->str, gstr->len);
-         g_string_free (gstr, TRUE);
+         s = gstr->str;
+         g_string_free (gstr, FALSE);
        }
       else
        {
@@ -64,8 +49,8 @@ missing_values_to_string (const PsppireDict *dict, const struct variable *pv, GE
          union value low, high;
          mv_get_range (miss, &low.f, &high.f);
 
-         l = value_to_text (low, *fmt);
-         h = value_to_text (high, *fmt);
+         l = value_to_text (low, pv);
+         h = value_to_text (high, pv);
 
          g_string_printf (gstr, "%s - %s", l, h);
          g_free (l);
@@ -73,19 +58,16 @@ missing_values_to_string (const PsppireDict *dict, const struct variable *pv, GE
 
          if ( mv_has_value (miss))
            {
-             gchar *ss = 0;
-             union value v;
-             mv_get_value (miss, &v, 0);
+             gchar *ss = NULL;
 
-             ss = value_to_text (v, *fmt);
+             ss = value_to_text (*mv_get_value (miss, 0), pv);
 
              g_string_append (gstr, ", ");
              g_string_append (gstr, ss);
              free (ss);
            }
-         s = recode_string (UTF8, psppire_dict_encoding (dict),
-                            gstr->str, gstr->len);
-         g_string_free (gstr, TRUE);
+         s = gstr->str;
+         g_string_free (gstr, FALSE);
        }
 
       return s;