- const struct missing_values *miss = psppire_variable_get_missing(pv);
- if ( mv_is_empty(miss))
- return none;
- else
- {
- if ( ! mv_has_range (miss))
- {
- const int n = mv_n_values(miss);
- gchar *mv[4] = {0,0,0,0};
- gint i;
- for(i = 0 ; i < n; ++i )
- {
- union value v;
- mv_peek_value(miss, &v, i);
- mv[i] = value_to_text(v, *write_spec);
- }
- g_stpcpy(buf, "");
- for(i = 0 ; i < n; ++i )
- {
- if ( i > 0)
- g_strlcat(buf, ", ", MAX_CELL_TEXT_LEN);
- g_strlcat(buf, mv[i], MAX_CELL_TEXT_LEN);
- g_free(mv[i]);
- }
- }
- else
- {
- gchar *l, *h;
- union value low, high;
- mv_peek_range(miss, &low.f, &high.f);
+ gchar *s;
+ const struct missing_values *miss = psppire_variable_get_missing(pv);
+ if ( mv_is_empty(miss))
+ return g_locale_to_utf8(none, -1, 0, 0, err);
+ else
+ {
+ 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 )
+ {
+ union value v;
+ mv_peek_value(miss, &v, i);
+ mv[i] = value_to_text(v, *write_spec);
+ if ( i > 0 )
+ g_string_append(gstr, ", ");
+ g_string_append(gstr, mv[i]);
+ g_free(mv[i]);
+ }
+ s = pspp_locale_to_utf8(gstr->str, gstr->len, err);
+ g_string_free(gstr, TRUE);
+ }
+ else
+ {
+ GString *gstr = g_string_sized_new(10);
+ gchar *l, *h;
+ union value low, high;
+ mv_peek_range(miss, &low.f, &high.f);