aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn MacFarlane <jgm@berkeley.edu>2018-10-21 22:53:57 -0700
committerJohn MacFarlane <jgm@berkeley.edu>2018-10-21 22:53:57 -0700
commit07a083582417c57f40a6780740f0bb2de5f83d16 (patch)
tree95e078b5668964da0429600b360f761e4a1ce948
parent8448eb3b6915763d51ee4632c092ae6d6a403506 (diff)
downloadpandoc-07a083582417c57f40a6780740f0bb2de5f83d16.tar.gz
Man reader: Fix spacing requirement for macro arguments.
This is allowed: .BR "hello"x"hello".
-rw-r--r--src/Text/Pandoc/Readers/Man.hs38
1 files changed, 20 insertions, 18 deletions
diff --git a/src/Text/Pandoc/Readers/Man.hs b/src/Text/Pandoc/Readers/Man.hs
index 3e9b8d6bb..48f488c92 100644
--- a/src/Text/Pandoc/Readers/Man.hs
+++ b/src/Text/Pandoc/Readers/Man.hs
@@ -352,7 +352,6 @@ lexArgs = do
oneArg :: PandocMonad m => ManLexer m [LinePart]
oneArg = do
- many1 spacetab
skipMany $ try $ string "\\\n" -- continuation line
try quotedArg <|> plainArg
-- try, because there are some erroneous files, e.g. linux/bpf.2
@@ -360,27 +359,30 @@ lexArgs = do
plainArg :: PandocMonad m => ManLexer m [LinePart]
plainArg = do
skipMany spacetab
- mconcat <$>
- many (macroArg <|> esc <|> regularText <|> unescapedQuote <|> escStar)
- where unescapedQuote = do
- char '"'
- fonts <- currentFont
- return [RoffStr ("\"", fonts)]
+ mconcat <$> many1
+ (macroArg <|> esc <|> regularText <|> unescapedQuote <|> escStar)
+ where
+ unescapedQuote = do
+ char '"'
+ fonts <- currentFont
+ return [RoffStr ("\"", fonts)]
quotedArg :: PandocMonad m => ManLexer m [LinePart]
quotedArg = do
- char '"'
- xs <- mconcat <$>
- many (macroArg <|> esc <|> escStar <|> regularText
- <|> spaceTabChar <|> escapedQuote)
- char '"'
- return xs
- where escapedQuote = try $ do
- char '"'
- char '"'
- fonts <- currentFont
- return [RoffStr ("\"", fonts)]
+ skipMany spacetab
+ char '"'
+ xs <- mconcat <$>
+ many (macroArg <|> esc <|> escStar <|> regularText
+ <|> spaceTabChar <|> escapedQuote)
+ char '"'
+ return xs
+ where
+ escapedQuote = try $ do
+ char '"'
+ char '"'
+ fonts <- currentFont
+ return [RoffStr ("\"", fonts)]
escStar :: PandocMonad m => ManLexer m [LinePart]
escStar = try $ do