aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn MacFarlane <jgm@berkeley.edu>2020-12-07 13:01:30 -0800
committerJohn MacFarlane <jgm@berkeley.edu>2020-12-07 13:01:30 -0800
commit2f9b684b3a793896bc28a79a07722415cfdc075e (patch)
tree72c52fed9cffa99024053f8ed7dfcc27f19d0df1
parentf2749ba6cd0ec2473332394bfbb6f479b667f35c (diff)
downloadpandoc-2f9b684b3a793896bc28a79a07722415cfdc075e.tar.gz
Bibtex parser: avoid noneOf.
-rw-r--r--src/Text/Pandoc/Citeproc/BibTeX.hs4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/Text/Pandoc/Citeproc/BibTeX.hs b/src/Text/Pandoc/Citeproc/BibTeX.hs
index 552339df0..ed723a11c 100644
--- a/src/Text/Pandoc/Citeproc/BibTeX.hs
+++ b/src/Text/Pandoc/Citeproc/BibTeX.hs
@@ -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 '"')