REREAD: Improve error messages and coding style.
[pspp] / src / language / data-io / inpt-pgm.c
index c429c6a120b14f91d3d536804db49e6cc53d009a..8705a187ab8f89ba55c6fe66303fb910f36cbaf6 100644 (file)
@@ -293,13 +293,9 @@ struct reread_trns
 int
 cmd_reread (struct lexer *lexer, struct dataset *ds)
 {
-  struct file_handle *fh;       /* File to be re-read. */
-  struct expression *e;         /* Expression for column to set. */
-  struct reread_trns *t;        /* Created transformation. */
   char *encoding = NULL;
-
-  fh = fh_get_default_handle ();
-  e = NULL;
+  struct file_handle *fh = fh_get_default_handle ();
+  struct expression *e = NULL;
   while (lex_token (lexer) != T_ENDCMD)
     {
       if (lex_match_id (lexer, "COLUMN"))
@@ -337,14 +333,16 @@ cmd_reread (struct lexer *lexer, struct dataset *ds)
        }
       else
        {
-         lex_error (lexer, NULL);
+         lex_error_expecting (lexer, "COLUMN", "FILE", "ENCODING");
           goto error;
        }
     }
 
-  t = xmalloc (sizeof *t);
-  t->reader = dfm_open_reader (fh, lexer, encoding);
-  t->column = e;
+  struct reread_trns *t = xmalloc (sizeof *t);
+  *t = (struct reread_trns) {
+    .reader = dfm_open_reader (fh, lexer, encoding),
+    .column = e,
+  };
   add_transformation (ds, &reread_trns_class, t);
 
   fh_unref (fh);