sys-file-reader: Ignore string weighting variable instead of aborting.
authorBen Pfaff <blp@cs.stanford.edu>
Sun, 9 Feb 2014 06:07:58 +0000 (22:07 -0800)
committerBen Pfaff <blp@cs.stanford.edu>
Sun, 16 Feb 2014 06:43:11 +0000 (22:43 -0800)
src/data/sys-file-reader.c
tests/data/sys-file-reader.at

index 2c18abe322bdd94b0d38fc55b93316dcb9289344..c999b1a655ee402e496af9e475ac4952d0a61e83 100644 (file)
@@ -543,9 +543,9 @@ sfm_open_reader (struct file_handle *fh, const char *volatile encoding,
       if (var_is_numeric (weight_var))
         dict_set_weight (dict, weight_var);
       else
-        sys_error (r, -1, _("Weighting variable must be numeric "
-                            "(not string variable `%s')."),
-                   var_get_name (weight_var));
+        sys_warn (r, -1, _("Ignoring string variable `%s' set "
+                           "as weighting variable."),
+                  var_get_name (weight_var));
     }
 
   if (extensions[EXT_DISPLAY] != NULL)
index 3bbc8060d6185896cefa0a81f05564ea18db2d02..62d5a326bce4413965043d8b0ebb32224c11a1b6 100644 (file)
@@ -2091,9 +2091,20 @@ do
   AT_CHECK_UNQUOTED([sack --$[1] sys-file.sack > sys-file.sav], [0], [], [$[2]
 ])
   AT_DATA([sys-file.sps], [GET FILE='sys-file.sav'.
+DISPLAY DICTIONARY.
 ])
-  AT_CHECK([pspp -O format=csv sys-file.sps], [1], 
-   [error: `sys-file.sav': Weighting variable must be numeric (not string variable `STR1').
+  AT_CHECK([pspp -O format=csv sys-file.sps], [0],
+   [warning: `sys-file.sav': Ignoring string variable `STR1' set as weighting variable.
+
+Variable,Description,,Position
+num1,Format: F8.0,,1
+,Measure: Scale,,
+,Display Alignment: Right,,
+,Display Width: 8,,
+str1,Format: A4,,2
+,Measure: Nominal,,
+,Display Alignment: Left,,
+,Display Width: 4,,
 ])
 done
 AT_CLEANUP