@@ -53,7 +53,7 @@ import Control.Monad (void, mzero, guard, when, mplus)
53import Control.Monad.Except (throwError)
53import Control.Monad.Except (throwError)
54import Text.Pandoc.Class
54import Text.Pandoc.Class
55 (getResourcePath, readFileFromDirs, PandocMonad(..), report)
55 (getResourcePath, readFileFromDirs, PandocMonad(..), report)
56−import Data.Char (isLower, toLower, toUpper, chr, ord,
56+import Data.Char (isLower, toLower, toUpper, chr,
57 isAscii, isAlphaNum, isSpace)
57 isAscii, isAlphaNum, isSpace)
58import Data.Default (Default)
58import Data.Default (Default)
59import qualified Data.Map as M
59import qualified Data.Map as M
@@ -602,9 +602,14 @@ linePart = macroArg <|> escape <|>
603macroArg :: PandocMonad m => RoffLexer m [LinePart]
603macroArg :: PandocMonad m => RoffLexer m [LinePart]
604macroArg = try $ do
604macroArg = try $ do
605 string "\\\\$"
606 string "\\\\$"
606− x <- digit
607+ x <- escapeArg <|> count 1 digit
607− return [MacroArg $ ord x - ord '0']
609+ Just i -> return [MacroArg i]
611+ report $ SkippedContent ("illegal macro argument " ++ x) pos
609regularText :: PandocMonad m => RoffLexer m [LinePart]
614regularText :: PandocMonad m => RoffLexer m [LinePart]
610regularText = do
615regularText = do