diff options
author | John MacFarlane <jgm@berkeley.edu> | 2016-12-05 11:09:51 +0100 |
---|---|---|
committer | John MacFarlane <jgm@berkeley.edu> | 2017-01-25 17:07:40 +0100 |
commit | f1cec1dd0257c10fb291a7fb50e216a5218ebf77 (patch) | |
tree | 46f1bb2823535ff44c01e9d5a2f5651f254ffc65 /src/Text | |
parent | 92cc80b58bc1c932e3e102a260388df83fd7e0c0 (diff) | |
download | pandoc-f1cec1dd0257c10fb291a7fb50e216a5218ebf77.tar.gz |
LaTeX reader: add warning when parsing unescaped characters
that normally need escaping in LaTeX.
Diffstat (limited to 'src/Text')
-rw-r--r-- | src/Text/Pandoc/Readers/LaTeX.hs | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/Text/Pandoc/Readers/LaTeX.hs b/src/Text/Pandoc/Readers/LaTeX.hs index 06269f398..49d2d702f 100644 --- a/src/Text/Pandoc/Readers/LaTeX.hs +++ b/src/Text/Pandoc/Readers/LaTeX.hs @@ -55,7 +55,7 @@ import Text.Pandoc.ImageSize (numUnit, showFl) import Text.Pandoc.Error import Control.Monad.Except (throwError, catchError) import Text.Pandoc.Class (PandocMonad, PandocPure, lookupEnv, readFileLazy, - warning) + warning, warningWithPos) -- | Parse LaTeX from string and return 'Pandoc' document. readLaTeX :: PandocMonad m @@ -236,9 +236,10 @@ inline = (mempty <$ comment) <|> mathInline (char '$' *> mathChars <* char '$') <|> (guardEnabled Ext_literate_haskell *> char '|' *> doLHSverb) <|> (str . (:[]) <$> tildeEscape) - <|> (str . (:[]) <$> oneOf "[]") - <|> (str . (:[]) <$> oneOf "#&~^'`\"[]") -- TODO print warning? - -- <|> (str <$> count 1 (satisfy (\c -> c /= '\\' && c /='\n' && c /='}' && c /='{'))) -- eat random leftover characters + <|> (do res <- oneOf "#&~^'`\"[]" + pos <- getPosition + warningWithPos (Just pos) ("Parsing unescaped '" ++ [res] ++ "'") + return $ str [res]) inlines :: PandocMonad m => LP m Inlines inlines = mconcat <$> many (notFollowedBy (char '}') *> inline) |