2 #include "var-display.h"
4 #include <data/variable.h>
5 #include <data/format.h>
7 #include "psppire-dict.h"
10 #define _(msgid) gettext (msgid)
11 #define N_(msgid) msgid
14 #include <libpspp/i18n.h>
16 static const gchar none[] = N_("None");
20 measure_to_string (const struct variable *var, GError **err)
22 const gint measure = var_get_measure (var);
24 g_assert (measure < n_MEASURES);
25 return g_locale_to_utf8 (gettext (measures[measure]),
31 missing_values_to_string (const PsppireDict *dict, const struct variable *pv, GError **err)
33 const struct fmt_spec *fmt = var_get_print_format (pv);
35 const struct missing_values *miss = var_get_missing_values (pv);
36 if ( mv_is_empty (miss))
37 return g_locale_to_utf8 (gettext (none), -1, 0, 0, err);
40 if ( ! mv_has_range (miss))
42 GString *gstr = g_string_sized_new (10);
43 const int n = mv_n_values (miss);
44 gchar *mv[4] = {0,0,0,0};
46 for (i = 0 ; i < n; ++i )
49 mv_get_value (miss, &v, i);
50 mv[i] = value_to_text (v, *fmt);
52 g_string_append (gstr, ", ");
53 g_string_append (gstr, mv[i]);
56 s = recode_string (UTF8, psppire_dict_encoding (dict),
57 gstr->str, gstr->len);
58 g_string_free (gstr, TRUE);
62 GString *gstr = g_string_sized_new (10);
64 union value low, high;
65 mv_get_range (miss, &low.f, &high.f);
67 l = value_to_text (low, *fmt);
68 h = value_to_text (high, *fmt);
70 g_string_printf (gstr, "%s - %s", l, h);
74 if ( mv_has_value (miss))
78 mv_get_value (miss, &v, 0);
80 ss = value_to_text (v, *fmt);
82 g_string_append (gstr, ", ");
83 g_string_append (gstr, ss);
86 s = recode_string (UTF8, psppire_dict_encoding (dict),
87 gstr->str, gstr->len);
88 g_string_free (gstr, TRUE);