From 2b3e6bc0a94cb16d04d9a6e1933ce0bf8e26830f Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Mon, 13 Jun 2011 19:17:27 -0700 Subject: [PATCH] gui: Strip numerics and strings differently in value_to_text(). Otherwise a long string value that only contains a few characters followed by all spaces is hard to read. --- src/ui/gui/helper.c | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/src/ui/gui/helper.c b/src/ui/gui/helper.c index f5803d9f..09bfe7ac 100644 --- a/src/ui/gui/helper.c +++ b/src/ui/gui/helper.c @@ -47,13 +47,26 @@ #include -/* Formats a value according to VAR's print format. - The returned string must be freed when no longer required. */ +/* Formats a value according to VAR's print format and strips white space + appropriately for VAR's type. That is, if VAR is numeric, strips leading + white space (because numbers are right-justified within their fields), and + if VAR 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 variable *var) { - gchar *s = data_out (&v, var_get_encoding (var), var_get_print_format (var)); - return g_strchug (s); + gchar *s; + + s = data_out (&v, var_get_encoding (var), var_get_print_format (var)); + if (var_is_numeric (var)) + g_strchug (s); + else + g_strchomp (s); + + return s; } -- 2.30.2