don't treat accounts with trailing space and no amount as different

This commit is contained in:
Simon Michael 2008-10-03 09:47:50 +00:00
parent c76540e348
commit e9f4b32d02

View File

@ -254,11 +254,16 @@ ledgertransaction = do
restofline restofline
return (RawTransaction account amount comment) return (RawTransaction account amount comment)
-- | account names may have single spaces in them, and are terminated by two or more spaces -- | account names may have single spaces inside them, and are terminated by two or more spaces
ledgeraccount :: Parser String ledgeraccount :: Parser String
ledgeraccount = ledgeraccount = do
many1 ((alphaNum <|> char ':' <|> char '/' <|> char '_' <?> "account name") accountname <- many1 (accountnamechar <|> singlespace)
<|> try (do {spacenonewline; do {notFollowedBy spacenonewline; return ' '}} <?> "double space")) return $ striptrailingspace accountname
where
accountnamechar = alphaNum <|> oneOf ":/_" <?> "account name character"
singlespace = try (do {spacenonewline; do {notFollowedBy spacenonewline; return ' '}})
-- couldn't avoid consuming a final space sometimes, harmless
striptrailingspace s = if last s == ' ' then take (length s - 1) s else s
ledgeramount :: Parser Amount ledgeramount :: Parser Amount
ledgeramount = ledgeramount =