+/*
+PSPP - a program for statistical analysis.
+Copyright (C) 2017 Free Software Foundation, Inc.
+
+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
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
#include <config.h>
#include "var-display.h"
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)
+missing_values_to_string (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);
+ if (mv_is_empty (miss))
+ return xstrdup (gettext (none));
else
{
- if ( ! mv_has_range (miss))
+ gchar *s = NULL;
+ if (! mv_has_range (miss))
{
GString *gstr = g_string_sized_new (10);
const int n = mv_n_values (miss);
gchar *mv[4] = {0,0,0,0};
gint i;
- for (i = 0 ; i < n; ++i )
+ for (i = 0 ; i < n; ++i)
{
- union value v;
- mv_get_value (miss, &v, i);
- mv[i] = value_to_text (v, *fmt);
- if ( i > 0 )
+ 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
{
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);
g_free (h);
- if ( mv_has_value (miss))
+ 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;