Issue an error if no valid data are found
[pspp] / src / data / sys-file-reader.c
index d04a757f3d60d89e12cb0ba1f0044485695148b8..401e3e27451e1d9c42b15e4eca19433d541439ef 100644 (file)
@@ -261,8 +261,6 @@ sfm_open_reader (struct file_handle *fh, struct dictionary **dict,
          struct variable *var = dict_get_var (*dict, i);
          char short_name [SHORT_NAME_LEN + 1];
          char long_name [SHORT_NAME_LEN + 1];
-         char *s = short_name;
-         char *d = long_name;
 
          strcpy (short_name, var_get_name (var));
 
@@ -673,9 +671,12 @@ read_documents (struct sfm_reader *r, struct dictionary *dict)
     sys_error (r, _("Number of document lines (%d) "
                     "must be greater than 0."), line_cnt);
 
-  documents = pool_nmalloc (r->pool, line_cnt + 1, 80);
-  read_string (r, documents, 80 * line_cnt + 1);
-  dict_set_documents (dict, documents);
+  documents = pool_nmalloc (r->pool, line_cnt + 1, DOC_LINE_LENGTH);
+  read_string (r, documents, DOC_LINE_LENGTH * line_cnt + 1);
+  if (strlen (documents) == DOC_LINE_LENGTH * line_cnt)
+    dict_set_documents (dict, documents);
+  else
+    sys_error (r, _("Document line contains null byte."));
   pool_free (r->pool, documents);
 }