From: Ben Pfaff Date: Tue, 14 Jun 2011 02:17:27 +0000 (-0700) Subject: gui: Strip numerics and strings differently in value_to_text(). X-Git-Tag: v0.7.9~268 X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2b3e6bc0a94cb16d04d9a6e1933ce0bf8e26830f;p=pspp-builds.git 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. --- 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; }