pspp-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Pspp-cvs] Changes to pspp/src/value-labels.c


From: Ben Pfaff
Subject: [Pspp-cvs] Changes to pspp/src/value-labels.c
Date: Tue, 25 Oct 2005 00:28:22 -0400

Index: pspp/src/value-labels.c
diff -u pspp/src/value-labels.c:1.10 pspp/src/value-labels.c:1.11
--- pspp/src/value-labels.c:1.10        Fri Apr 29 01:02:16 2005
+++ pspp/src/value-labels.c     Tue Oct 25 04:28:17 2005
@@ -496,29 +496,23 @@
    else format it and return the formatted string
 */
 const char *
-value_to_string(const union value *val, const struct variable *var)
+value_to_string (const union value *val, const struct variable *var)
 {
-  static char buf[100];
   char *s;
-  const struct val_labs *val_labs ;
   
-  if ( !val || ! var ) 
-    return 0;
+  assert (val != NULL);
+  assert (var != NULL);
 
-  val_labs = var->val_labs;
-
-  
-  s = val_labs_find (val_labs, *val);
-
-  if ( s ) 
-    return s;
-
-  if ( 0 == var->width ) 
-    snprintf(buf,100,"%g",val->f);
-  else
+  s = val_labs_find (var->val_labs, *val);
+  if (s == NULL) 
     {
-      strncpy(buf,val->s,MAX_SHORT_STRING);
-      strcat(buf,"\0");
+      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);
+      s = buf;
     }
-  return buf;
+  
+  return s;
 }




reply via email to

[Prev in Thread] Current Thread [Next in Thread]