From d083cbd79704445134ade0ebaa86ffc5445ba066 Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Sat, 31 Mar 2012 15:46:43 -0700 Subject: [PATCH] helper: New function value_to_text__(). 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 30f7da1f04..04c9bfe920 100644 --- a/src/ui/gui/helper.c +++ b/src/ui/gui/helper.c @@ -57,11 +57,27 @@ longer required. */ 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 25b9d50a0c..d9fb3d64dd 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 * -- 2.30.2