Make the expression code a little nicer and fix bugs found
[pspp-builds.git] / src / repeat.c
index bf89fedecd50f0b5e131ed3c2141d814e59fa5f1..dad14549864f8035eea2bc4b627c4331defa3cd5 100644 (file)
@@ -19,7 +19,7 @@
 
 #include <config.h>
 #include "repeat.h"
-#include <assert.h>
+#include "error.h"
 #include <ctype.h>
 #include <math.h>
 #include <stdlib.h>
@@ -138,9 +138,6 @@ internal_cmd_do_repeat (void)
   int print;
 
   /* The first step is parsing the DO REPEAT command itself. */
-  lex_match_id ("DO");
-  lex_match_id ("REPEAT");
-
   count = 0;
   line_buf_head = NULL;
   do
@@ -302,7 +299,7 @@ internal_cmd_do_repeat (void)
      REPEAT line.  We should actually check for the PRINT specifier.
      This can be done easier when we buffer entire commands instead of
      doing it token by token; see TODO. */
-  lex_entire_line ();  
+  lex_discard_line (); 
   
   /* Tie up the loose end of the chain. */
   if (line_buf_head == NULL)
@@ -548,7 +545,7 @@ perform_DO_REPEAT_substitutions (void)
   while (ds_length (&getl_buf) > 0
         && isspace ((unsigned char) ds_end (&getl_buf)[-1]))
     ds_truncate (&getl_buf, ds_length (&getl_buf) - 1);
-  if (ds_length (&getl_buf) > 0 && ds_end (&getl_buf)[-1] == set_endcmd)
+  if (ds_length (&getl_buf) > 0 && ds_end (&getl_buf)[-1] == get_endcmd() )
     {
       dot = 1;
       ds_truncate (&getl_buf, ds_length (&getl_buf) - 1);
@@ -592,7 +589,7 @@ perform_DO_REPEAT_substitutions (void)
       }
     }
   if (dot)
-    ds_putchar (&output, (unsigned char) set_endcmd);
+    ds_putchar (&output, get_endcmd() );
 
   ds_destroy (&getl_buf);
   getl_buf = output;