variable: Do not trim trailing whitespace from variable labels.
authorBen Pfaff <blp@cs.stanford.edu>
Sat, 18 Jun 2011 05:18:27 +0000 (22:18 -0700)
committerBen Pfaff <blp@cs.stanford.edu>
Sat, 18 Jun 2011 05:18:27 +0000 (22:18 -0700)
Until now, PSPP has trimmed trailing whitespace from variable
labels.  SPSS does not do this, which led to gratuitous changes
in variable labels when reading and then writing back a .sav
file, so this commit stops stripping trailing whitespace from
variable labels.

Thanks to Curt Reinhold <Curt.Reinhold@psychonomics.de> for
providing the .sav file that led to this discovery.

src/data/variable.c

index 121a57517cd4fecc4ce0cbe1cc6b25b9609092e6..35fdab29ebbef73d8ad59eba2be64b3e89fd6d86 100644 (file)
@@ -583,7 +583,7 @@ var_set_label (struct variable *v, const char *label, bool issue_warning)
   free (v->label);
   v->label = NULL;
 
-  if (label != NULL)
+  if (label != NULL && label[strspn (label, CC_SPACES)])
     {
       const char *dict_encoding = var_get_encoding (v);
       struct substring s = ss_cstr (label);
@@ -605,8 +605,6 @@ var_set_label (struct variable *v, const char *label, bool issue_warning)
             }
         }
 
-      ss_trim (&s, ss_cstr (CC_SPACES));
-      if (!ss_is_empty (s))
         v->label = ss_xstrdup (s);
     }