diff options
author | John MacFarlane <jgm@berkeley.edu> | 2020-12-07 13:01:30 -0800 |
---|---|---|
committer | John MacFarlane <jgm@berkeley.edu> | 2020-12-07 13:01:30 -0800 |
commit | 2f9b684b3a793896bc28a79a07722415cfdc075e (patch) | |
tree | 72c52fed9cffa99024053f8ed7dfcc27f19d0df1 /src/Text/Pandoc | |
parent | f2749ba6cd0ec2473332394bfbb6f479b667f35c (diff) | |
download | pandoc-2f9b684b3a793896bc28a79a07722415cfdc075e.tar.gz |
Bibtex parser: avoid noneOf.
Diffstat (limited to 'src/Text/Pandoc')
-rw-r--r-- | src/Text/Pandoc/Citeproc/BibTeX.hs | 4 |
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 '"') |