From d4bc0f6e105163bfab4b5643e7cae5418f7f396e Mon Sep 17 00:00:00 2001
From: Vidar Holen <spam@vidarholen.net>
Date: Fri, 29 Nov 2013 16:22:37 -0800
Subject: [PATCH] Don't require separator before do in 'for i do ..'

---
 ShellCheck/Parser.hs | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/ShellCheck/Parser.hs b/ShellCheck/Parser.hs
index 94536ee..7013547 100644
--- a/ShellCheck/Parser.hs
+++ b/ShellCheck/Parser.hs
@@ -1384,6 +1384,7 @@ prop_readForClause5 = isOk readForClause "for ((i=0;i<10 && n>x;i++,--n))\ndo \n
 prop_readForClause6 = isOk readForClause "for ((;;))\ndo echo $i\ndone"
 prop_readForClause7 = isOk readForClause "for ((;;)) do echo $i\ndone"
 prop_readForClause8 = isOk readForClause "for ((;;)) ; do echo $i\ndone"
+prop_readForClause9 = isOk readForClause "for i do true; done"
 readForClause = called "for loop" $ do
     pos <- getPosition
     (T_For id) <- g_For
@@ -1408,7 +1409,7 @@ readForClause = called "for loop" $ do
     readRegular = do
         name <- readVariableName
         spacing
-        values <- readInClause <|> (readSequentialSep >> return [])
+        values <- readInClause <|> (optional readSequentialSep >> return [])
         return $ \id group -> (return $ T_ForIn id name values group)
 
 prop_readSelectClause1 = isOk readSelectClause "select foo in *; do echo $foo; done"