sys-file-reader: Tolerate duplicate document records.
authorBen Pfaff <blp@cs.stanford.edu>
Sat, 20 Jun 2020 23:33:14 +0000 (23:33 +0000)
committerBen Pfaff <blp@cs.stanford.edu>
Sat, 20 Jun 2020 23:33:14 +0000 (23:33 +0000)
src/data/sys-file-reader.c
tests/data/sys-file-reader.at

index b5fdfd7f206c798b8d9b0012dc1a28445507a445..1a17eb89a1ac38a248b3c269f5ee9259c54c2f0d 100644 (file)
@@ -493,10 +493,7 @@ read_record (struct sfm_reader *r, int type,
 
     case 6:
       if (r->document != NULL)
-        {
-          sys_error (r, r->pos, _("Duplicate type 6 (document) record."));
-          return false;
-        }
+        sys_warn (r, r->pos, _("Duplicate type 6 (document) record."));
       return read_document_record (r);
 
     case 7:
index 0af58bc96619d2ad7bce1711dc27100640cd35b9..22a89446480fe0b35acab2d0743546b572883338 100644 (file)
@@ -2075,18 +2075,19 @@ dnl File header.
 "$FL2"; s60 "$(#) SPSS DATA FILE PSPP synthetic test file";
 2; 2; 1; 0; -1; 100.0; "01 Jan 11"; "20:53:52"; s64 ""; i8 0 *3;
 
-dnl Numeric variable, no label or missing values.
+dnl Numeric variables, no label or missing values.
 2; 0; 0; 0; 0x050800 *2; s8 "NUM1";
+2; 0; 0; 0; 0x050800 *2; s8 "NUM2";
 
 dnl Two document records.
 (6; 1; s80 "One line of documents") >>* 2<<;
 
-dnl Dictionary termination record.
-999; 0;
-
 dnl Character encoding record.
 7; 20; 1; 12; "windows-1252";
 
+dnl Dictionary termination record.
+999; 0;
+
 dnl Data.
 1.0;
 ])
@@ -2095,8 +2096,8 @@ for variant in be le; do
   AT_DATA([sys-file.sps], [dnl
 GET FILE='sys-file.sav'.
 ])
-  AT_CHECK([pspp -O format=csv sys-file.sps], [1], [dnl
-error: `sys-file.sav' near offset 0x12c: Duplicate type 6 (document) record.
+  AT_CHECK([pspp -O format=csv sys-file.sps], 0, [dnl
+warning: `sys-file.sav' near offset 0x14c: Duplicate type 6 (document) record.
 ])
 done
 AT_CLEANUP