Add details on how various features interact.
[pspp] / src / sfm-read.c
index c38aa1c2d1b17556fff3c4d7c4eaf78cd4a84574..03b6d5ab55c04805cb7b825c350ae4ce1d79072b 100644 (file)
@@ -523,7 +523,7 @@ read_header (struct file_handle * h, struct sfm_read_info * inf)
   struct sysfile_header hdr;           /* Disk buffer. */
   struct dictionary *dict;             /* File dictionary. */
   char prod_name[sizeof hdr.prod_name + 1];    /* Buffer for product name. */
-  int skip_amt;                        /* Amount of product name to omit. */
+  int skip_amt = 0;                    /* Amount of product name to omit. */
   int i;
 
   /* Create the dictionary. */
@@ -895,12 +895,10 @@ lossage:
 static int
 parse_format_spec (struct file_handle *h, int32 s, struct fmt_spec *v, struct variable *vv)
 {
-  if ((size_t) ((s >> 16) & 0xff)
-      >= sizeof translate_fmt / sizeof *translate_fmt)
+  v->type = translate_fmt ((s >> 16) & 0xff);
+  if (v->type == -1)
     lose ((ME, _("%s: Bad format specifier byte (%d)."),
           h->fn, (s >> 16) & 0xff));
-  
-  v->type = translate_fmt[(s >> 16) & 0xff];
   v->w = (s >> 8) & 0xff;
   v->d = s & 0xff;