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.
This commit is contained in:
Simon Michael 2014-08-08 07:27:59 -07:00
parent 3e27f4fb8b
commit c485017ca6

View File

@ -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