Bibtex parser: avoid noneOf.

This commit is contained in:
John MacFarlane 2020-12-07 13:01:30 -08:00
parent f2749ba6cd
commit 2f9b684b3a

View file

@ -601,7 +601,7 @@ inBraces :: BibParser Text
inBraces = do
char '{'
res <- manyTill
( (T.pack <$> many1 (noneOf "{}\\"))
( take1WhileP (\c -> c /= '{' && c /= '}' && c /= '\\')
<|> (char '\\' >> ( (char '{' >> return "\\{")
<|> (char '}' >> return "\\}")
<|> return "\\"))
@ -616,7 +616,7 @@ inQuotes :: BibParser Text
inQuotes = do
char '"'
T.concat <$> manyTill
( (T.pack <$> many1 (noneOf "\"\\{"))
( take1WhileP (\c -> c /= '{' && c /= '"' && c /= '\\')
<|> (char '\\' >> T.cons '\\' . T.singleton <$> anyChar)
<|> braced <$> inBraces
) (char '"')