sys-file-reader: Fix reading overlong value labels for long string variables.
authorBen Pfaff <blp@cs.stanford.edu>
Sat, 22 May 2010 18:33:48 +0000 (11:33 -0700)
committerBen Pfaff <blp@cs.stanford.edu>
Sat, 22 May 2010 18:33:48 +0000 (11:33 -0700)
Commit 6b562f8a8 "Add support for value labels on long string variables"
that added support for reading value labels for long string variables from
system files had a logic error in dealing with too-long label strings: the
sign of the subtraction was reversed.

Problem reported by Michel Boaventura <michel@michelboaventura.com>.

src/data/sys-file-reader.c

index 03234c2d66166f60138cd67fa22ca7b7291e581e..7aeb70d922c516e53b90b189228c2abb6d5ccbad 100644 (file)
@@ -1679,7 +1679,7 @@ read_long_string_value_labels (struct sfm_reader *r,
                  first 255 bytes.  The maximum documented length
                  of a label is 120 bytes so this is more than
                  generous. */
-              skip_bytes (r, sizeof label - (label_length + 1));
+              skip_bytes (r, (label_length + 1) - sizeof label);
             }
 
           if (!skip && !var_add_value_label (v, &value, label))