mirror of
https://github.com/simonmichael/hledger.git
synced 2024-11-07 21:15:19 +03:00
fix: aliases: Make sure we can escape forward slashes in account
aliases, but otherwise the regular expression handler handles escapes.
This commit is contained in:
parent
cbdd86f4dc
commit
e6bf04fce3
@ -1517,15 +1517,17 @@ regexaliasp = do
|
||||
-- dbgparse 0 "regexaliasp"
|
||||
(off1, off2, re) <- between (char '/') (char '/') $ do
|
||||
off1 <- getOffset
|
||||
re <- some $ noneOf ("/\\\n\r" :: [Char]) -- paranoid: don't try to read past line end
|
||||
<|> (char '\\' *> anySingle) -- allow escaping any character
|
||||
re <- fmap T.concat . some $
|
||||
(T.singleton <$> noneOf ("/\\\n\r" :: [Char])) -- paranoid: don't try to read past line end
|
||||
<|> string "\\/" -- allow escaping forward slashes
|
||||
<|> (liftM2 T.cons (char '\\') (T.singleton <$> anySingle)) -- Otherwise leave backslashes in
|
||||
off2 <- getOffset
|
||||
return (off1, off2, re)
|
||||
skipNonNewlineSpaces
|
||||
char '='
|
||||
skipNonNewlineSpaces
|
||||
repl <- anySingle `manyTill` eolof
|
||||
case toRegexCI $ T.pack re of
|
||||
case toRegexCI re of
|
||||
Right r -> return $! RegexAlias r repl
|
||||
Left e -> customFailure $! parseErrorAtRegion off1 off2 e
|
||||
|
||||
|
@ -267,3 +267,33 @@ $ hledger -f- print
|
||||
b
|
||||
|
||||
>=0
|
||||
|
||||
# 19. Make sure you can escape special regexp characters.
|
||||
<
|
||||
alias /\./ = :
|
||||
|
||||
2021-01-01
|
||||
hi.there 1
|
||||
b
|
||||
|
||||
$ hledger -f- print
|
||||
2021-01-01
|
||||
hi:there 1
|
||||
b
|
||||
|
||||
>=0
|
||||
|
||||
# 20. Including backslashes
|
||||
<
|
||||
alias /\\/ = :
|
||||
|
||||
2021-01-01
|
||||
hi\there 1
|
||||
b
|
||||
|
||||
$ hledger -f- print
|
||||
2021-01-01
|
||||
hi:there 1
|
||||
b
|
||||
|
||||
>=0
|
||||
|
Loading…
Reference in New Issue
Block a user