git.iko.soy/typeable/pandoc
on master help sign in
Roff reader: use escapeArg in macroArg.
commit6b8e595e7285210f018186af93cee3df23da9060 authorJohn MacFarlane <jgm@berkeley.edu> dateSun 28 Oct 2018, 20:41 (8 years ago) parentb1e7101
1 file changed+8−3
src/Text/Pandoc/Readers/Roff.hs+8−3
src/Text/Pandoc/Readers/Roff.hs+8−3
@@ -53,7 +53,7 @@ import Control.Monad (void, mzero, guard, when, mplus)
5353import Control.Monad.Except (throwError)
5454import Text.Pandoc.Class
5555 (getResourcePath, readFileFromDirs, PandocMonad(..), report)
56−import Data.Char (isLower, toLower, toUpper, chr, ord,
56+import Data.Char (isLower, toLower, toUpper, chr,
5757 isAscii, isAlphaNum, isSpace)
5858import Data.Default (Default)
5959import qualified Data.Map as M
@@ -602,9 +602,14 @@ linePart = macroArg <|> escape <|>
602602
603603macroArg :: PandocMonad m => RoffLexer m [LinePart]
604604macroArg = try $ do
605+ pos <- getPosition
605606 string "\\\\$"
606− x <- digit
607− return [MacroArg $ ord x - ord '0']
607+ x <- escapeArg <|> count 1 digit
608+ case safeRead x of
609+ Just i -> return [MacroArg i]
610+ Nothing -> do
611+ report $ SkippedContent ("illegal macro argument " ++ x) pos
612+ return []
608613
609614regularText :: PandocMonad m => RoffLexer m [LinePart]
610615regularText = do