One potential caller of value_to_text() doesn't have a "struct variable" but does have the other needed information. --- src/ui/gui/helper.c | 21 ++++++++++++++++++--- src/ui/gui/helper.h | 2 ++ 2 files changed, 20 insertions(+), 3 deletions(-)
diff --git a/src/ui/gui/helper.c b/src/ui/gui/helper.c index 30f7da1..04c9bfe 100644 --- a/src/ui/gui/helper.c +++ b/src/ui/gui/helper.c @@ -58,10 +58,26 @@ gchar * value_to_text (union value v, const struct variable *var) { + return value_to_text__ (v, var_get_print_format (var), + var_get_encoding (var)); +} + +/* Formats a value with format FORMAT and strips white space appropriately for + FORMATs' type. That is, if FORMAT is numeric, strips leading white space + (because numbers are right-justified within their fields), and if FORMAT 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 * +value_to_text__ (union value v, + const struct fmt_spec *format, const char *encoding) +{ gchar *s; - s = data_out (&v, var_get_encoding (var), var_get_print_format (var)); - if (var_is_numeric (var)) + s = data_out (&v, encoding, format); + if (fmt_is_numeric (format->type)) g_strchug (s); else g_strchomp (s); @@ -69,7 +85,6 @@ value_to_text (union value v, const struct variable *var) return s; } - /* Converts TEXT to a value. VAL will be initialised and filled by this function. diff --git a/src/ui/gui/helper.h b/src/ui/gui/helper.h index 25b9d50..d9fb3d6 100644 --- a/src/ui/gui/helper.h +++ b/src/ui/gui/helper.h @@ -46,6 +46,8 @@ null_if_empty_param (const gchar *name, const gchar *nick, gchar * value_to_text (union value v, const struct variable *); +gchar * value_to_text__ (union value v, const struct fmt_spec *, + const char *encoding); union value * -- 1.7.2.5 _______________________________________________ pspp-dev mailing list pspp-dev@gnu.org https://lists.gnu.org/mailman/listinfo/pspp-dev