@@ -212,7 +212,7 @@ escapeNormal = do
212212 'C' -> quoteArg >>= resolveGlyph '\''
213213 'f' -> escFont
214214 's' -> escFontSize
215− '*' -> escStar
215+ '*' -> escString
216216 '"' -> mempty <$ skipMany (satisfy (/='\n')) -- line comment
217217 '#' -> mempty <$ manyTill anyChar newline
218218 '%' -> return mempty
@@ -568,23 +568,14 @@ lexArgs = do
568568 char '"'
569569 return [RoffStr "\""]
570570
571−escStar :: PandocMonad m => RoffLexer m [LinePart]
572−escStar = try $ do
571+escString :: PandocMonad m => RoffLexer m [LinePart]
572+escString = try $ do
573573 pos <- getPosition
574− c <- anyChar
575− case c of
576− '(' -> do
577− cs <- count 2 anyChar
578− resolveString cs pos
579− '[' -> do
580− cs <- many (noneOf "\t\n\r ]")
581− char ']'
582− resolveString cs pos
583− 'S' -> return mempty -- switch back to default font size
584− _ -> resolveString [c] pos
574+ (do cs <- escapeArg
575+ resolveString cs pos)
576+ <|> mempty <$ char 'S'
585577
586578 where
587−
588579 -- strings and macros share namespace
589580 resolveString stringname pos = do
590581 RoffTokens ts <- resolveMacro stringname [] pos