From a2f344f6d9a7753e7654e30b64696d0d0c47ecfc Mon Sep 17 00:00:00 2001 From: Simon Michael Date: Sun, 4 Oct 2015 08:41:01 -1000 Subject: [PATCH] journal: require dates to begin with a digit --- hledger-lib/Hledger/Read/JournalReader.hs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/hledger-lib/Hledger/Read/JournalReader.hs b/hledger-lib/Hledger/Read/JournalReader.hs index 2df1515e0..edebc7741 100644 --- a/hledger-lib/Hledger/Read/JournalReader.hs +++ b/hledger-lib/Hledger/Read/JournalReader.hs @@ -538,7 +538,10 @@ datep = do -- hacky: try to ensure precise errors for invalid dates -- XXX reported error position is not too good -- pos <- genericSourcePos <$> getPosition - datestr <- many1 $ choice' [digit, datesepchar] + datestr <- do + c <- digit + cs <- many $ choice' [digit, datesepchar] + return $ c:cs let sepchars = nub $ sort $ filter (`elem` datesepchars) datestr when (length sepchars /= 1) $ fail $ "bad date, different separators used: " ++ datestr let dateparts = wordsBy (`elem` datesepchars) datestr