csv: fix parsing of whitespace on line after an if block (fix #1120)
This commit is contained in:
parent
9b74471d02
commit
fb3c1a132c
@ -615,7 +615,7 @@ conditionalblockp = do
|
||||
lift $ dbgparse 3 "trying conditionalblockp"
|
||||
string "if" >> lift (skipMany spacenonewline) >> optional newline
|
||||
ms <- some recordmatcherp
|
||||
as <- many (lift (skipSome spacenonewline) >> fieldassignmentp)
|
||||
as <- many (try $ lift (skipSome spacenonewline) >> fieldassignmentp)
|
||||
when (null as) $
|
||||
Fail.fail "start of conditional block found, but no assignment rules afterward\n(assignment rules in a conditional block should be indented)\n"
|
||||
return (ms, as)
|
||||
@ -985,6 +985,10 @@ tests_CsvReader = tests "CsvReader" [
|
||||
,test "assignment with empty value" $
|
||||
parseWithState' defrules rulesp "account1 \nif foo\n account2 foo\n" `is`
|
||||
(Right defrules{rassignments = [("account1","")], rconditionalblocks = [([["foo"]],[("account2","foo")])]})
|
||||
|
||||
]
|
||||
]
|
||||
,tests "conditionalblockp" [
|
||||
test "space after conditional" $ -- #1120
|
||||
parseWithState' defrules conditionalblockp "if a\n account2 b\n \n" `is`
|
||||
(Right ([["a"]],[("account2","b")]))
|
||||
]
|
||||
]
|
||||
|
||||
Loading…
Reference in New Issue
Block a user