Correctly calculate n_missing_values field when writing variables that
authorBen Pfaff <blp@gnu.org>
Mon, 19 Nov 2007 01:06:05 +0000 (01:06 +0000)
committerBen Pfaff <blp@gnu.org>
Mon, 19 Nov 2007 01:06:05 +0000 (01:06 +0000)
include a range of missing values.

src/data/ChangeLog
src/data/sys-file-writer.c

index 05bafc37136fcb5cb1332e48ac91e3880b324523..c66ddbd7c0210b798934fff8d8de1ca2002123e5 100644 (file)
@@ -1,3 +1,13 @@
+2007-11-18  Ben Pfaff  <blp@gnu.org>
+
+       Properly write variables that include a range of missing values to
+       system files.  Thanks to Guido Gay <gay@irer.it> for reporting
+       this bug.
+
+       * sys-file-writer.c (write_variable): Correctly calculate
+       n_missing_values field when writing variables that include a range
+       of missing values.
+
 2007-11-10  Ben Pfaff  <blp@gnu.org>
 
        Cleanups and bug fixes devised while writing up documentation.
index acf9d5c0b681d4d702a52b81b6798bc93a54358c..fd663d69b5bc7532d98412eeebf865dcd41d61fa 100644 (file)
@@ -421,7 +421,7 @@ write_variable (struct sfm_writer *w, const struct variable *v)
   /* Number of missing values.  If there is a range, then the
      range counts as 2 missing values and causes the number to be
      negated. */
-  write_int (w, mv_has_range (mv) ? 2 - mv_n_values (mv) : mv_n_values (mv));
+  write_int (w, mv_has_range (mv) ? -2 - mv_n_values (mv) : mv_n_values (mv));
 
   /* Print and write formats. */
   write_format (w, *var_get_print_format (v), seg0_width);