Fix parsing of % in bibtex fields.

Closes #7678 (a bug introduced by 0a45f26).
This commit is contained in:
John MacFarlane 2021-11-10 08:52:04 -08:00
parent 03f9a0c61e
commit 6fb2973a58

View file

@ -844,11 +844,10 @@ inBraces :: BibParser Text
inBraces = do
char '{'
res <- manyTill
( take1WhileP (\c -> c /= '{' && c /= '}' && c /= '\\' && c /= '%')
<|> (char '\\' >> ( (char '{' >> return "\\{")
<|> (char '}' >> return "\\}")
<|> return "\\"))
<|> ("" <$ (char '%' >> anyLine))
( take1WhileP (\c -> c /= '{' && c /= '}' && c /= '\\')
<|> (char '\\' >> (do c <- oneOf "{}"
return $ T.pack ['\\',c])
<|> return "\\")
<|> (braced <$> inBraces)
) (char '}')
return $ T.concat res