* value-labels.c (value_to_string): When there's no value label,
authorBen Pfaff <blp@gnu.org>
Mon, 26 Jun 2006 05:40:29 +0000 (05:40 +0000)
committerBen Pfaff <blp@gnu.org>
Mon, 26 Jun 2006 05:40:29 +0000 (05:40 +0000)
format the variable according to its print format, instead of
always effectively using A or F format.

src/data/ChangeLog
src/data/value-labels.c

index 0faa3504583841524a1e282c5217f0f116d63ce3..f1132b2b49dc0336041639aa3e74bc68078525f8 100644 (file)
@@ -1,3 +1,9 @@
+Sun Jun 25 22:39:32 2006  Ben Pfaff  <blp@gnu.org>
+
+       * value-labels.c (value_to_string): When there's no value label,
+       format the variable according to its print format, instead of
+       always effectively using A or F format.
+
 Mon Jun 19 18:05:42 WST 2006 John Darrington <john@darrington.wattle.id.au>
 
        * casefile.c (casefile_get_random_reader): Nasty hack to get around 
index b9c85d54f1e1477f39bab8e0b2e3d9ccb189e6be..92a2db48ea87e82340dfec28fb3d3d2ab486d7a6 100644 (file)
@@ -547,11 +547,9 @@ value_to_string (const union value *val, const struct variable *var)
   s = val_labs_find (var->val_labs, *val);
   if (s == NULL) 
     {
-      static char buf[256];
-      if (var->width != 0) 
-        str_copy_buf_trunc (buf, sizeof buf, val->s, var->width);
-      else
-        snprintf(buf, 100, "%g", val->f);
+      static char buf[MAX_STRING + 1];
+      data_out (buf, &var->print, val);
+      buf[var->print.w] = '\0';
       s = buf;
     }