sys-file-writer: Omit empty multiple response sets records.
authorBen Pfaff <blp@cs.stanford.edu>
Sat, 18 Jun 2011 05:16:44 +0000 (22:16 -0700)
committerBen Pfaff <blp@cs.stanford.edu>
Sat, 18 Jun 2011 05:16:44 +0000 (22:16 -0700)
Multiple response sets are divided into two records in a .sav
file: one record with subtype 7 and one with subtype 19.  PSPP
was incorrectly writing both records even if one of them was
empty.  This commit makes it omit the empty record.

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

src/data/sys-file-writer.c

index 6c9d4617109c722f7dea47dacc432553e7dc3e35..63e14ffb38ab5ccc0b16d3e9b1a52787e4ff5f3e 100644 (file)
@@ -707,7 +707,8 @@ write_mrsets (struct sfm_writer *w, const struct dictionary *dict,
       ds_put_byte (&s, '\n');
     }
 
-  write_string_record (w, ds_ss (&s), pre_v14 ? 7 : 19);
+  if (!ds_is_empty (&s))
+    write_string_record (w, ds_ss (&s), pre_v14 ? 7 : 19);
   ds_destroy (&s);
 }