From c485017ca633496b2fa85bad021bd0935baa5857 Mon Sep 17 00:00:00 2001 From: Simon Michael Date: Fri, 8 Aug 2014 07:27:59 -0700 Subject: [PATCH] journal: require consistent separators in a Y/M/D date Date separators can be /, - or . but only one kind should be used in each date. Eg we now reject 2014-8/1. --- hledger-lib/Hledger/Read/JournalReader.hs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/hledger-lib/Hledger/Read/JournalReader.hs b/hledger-lib/Hledger/Read/JournalReader.hs index 81522a3cb..70a15115a 100644 --- a/hledger-lib/Hledger/Read/JournalReader.hs +++ b/hledger-lib/Hledger/Read/JournalReader.hs @@ -431,6 +431,8 @@ datep = do -- XXX reported error position is not too good -- pos <- getPosition datestr <- many1 $ choice' [digit, datesepchar] + 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 currentyear <- getYear [y,m,d] <- case (dateparts,currentyear) of