From e3e935e129d0cfde7b85b2ff80dbba16528cfc31 Mon Sep 17 00:00:00 2001 From: Simon Michael Date: Wed, 25 Nov 2009 20:12:09 +0000 Subject: [PATCH] parsing: require whitespace between date and status code, prevent silent effective date breakage --- Ledger/Parse.hs | 1 + tests/extra-date-slash.test | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/Ledger/Parse.hs b/Ledger/Parse.hs index 7a422750e..fe059a407 100644 --- a/Ledger/Parse.hs +++ b/Ledger/Parse.hs @@ -314,6 +314,7 @@ ledgerTransaction :: GenParser Char LedgerFileCtx LedgerTransaction ledgerTransaction = do date <- ledgerdate "transaction" edate <- ledgereffectivedate + many1 spacenonewline status <- ledgerstatus code <- ledgercode description <- liftM rstrip (many1 (noneOf ";\n") "description") diff --git a/tests/extra-date-slash.test b/tests/extra-date-slash.test index 80fde3b29..69be6b5ba 100644 --- a/tests/extra-date-slash.test +++ b/tests/extra-date-slash.test @@ -1,4 +1,4 @@ -# extra slash before [ silently breaks effective date (0.6.1) +# an extra slash before [ silently disables the effective date in 0.6.1 -f - print --effective -p 2009/1/2 <<< 2009/1/1/[=2009/1/2] x @@ -6,3 +6,4 @@ b >>>2 /unexpected/ +>>>= 1