From f108b52171058354b4cbe41f46a8052c1d84b52b Mon Sep 17 00:00:00 2001 From: Dmitry Astapov Date: Sat, 12 Oct 2019 23:35:57 +0100 Subject: [PATCH] lib: fix for #1001 - empty field assignment consumes next line --- hledger-lib/Hledger/Read/CsvReader.hs | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/hledger-lib/Hledger/Read/CsvReader.hs b/hledger-lib/Hledger/Read/CsvReader.hs index 71d51c6b0..2cf03517d 100644 --- a/hledger-lib/Hledger/Read/CsvReader.hs +++ b/hledger-lib/Hledger/Read/CsvReader.hs @@ -554,8 +554,9 @@ fieldassignmentp :: CsvRulesParser (JournalFieldName, FieldTemplate) fieldassignmentp = do lift $ dbgparse 3 "trying fieldassignmentp" f <- journalfieldnamep - assignmentseparatorp - v <- fieldvalp + v <- choiceInState [ assignmentseparatorp >> fieldvalp + , lift eolof >> return "" + ] return (f,v) "field assignment" @@ -594,12 +595,9 @@ journalfieldnames = assignmentseparatorp :: CsvRulesParser () assignmentseparatorp = do lift $ dbgparse 3 "trying assignmentseparatorp" - choice [ - -- try (lift (skipMany spacenonewline) >> oneOf ":="), - try (lift (skipMany spacenonewline) >> char ':'), - spaceChar - ] - _ <- lift (skipMany spacenonewline) + _ <- choiceInState [ lift (skipMany spacenonewline) >> char ':' >> lift (skipMany spacenonewline) + , lift (skipSome spacenonewline) + ] return () fieldvalp :: CsvRulesParser String