From 4967fd42086b2680d4f9be864b1b0c14e35570ce Mon Sep 17 00:00:00 2001 From: John MacFarlane Date: Wed, 4 Sep 2019 10:02:49 -0700 Subject: Roff reader: more improvements in parsing conditionals. --- src/Text/Pandoc/Readers/Roff.hs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'src/Text/Pandoc/Readers/Roff.hs') diff --git a/src/Text/Pandoc/Readers/Roff.hs b/src/Text/Pandoc/Readers/Roff.hs index 18535353e..078413674 100644 --- a/src/Text/Pandoc/Readers/Roff.hs +++ b/src/Text/Pandoc/Readers/Roff.hs @@ -32,8 +32,7 @@ import Control.Monad (void, mzero, mplus, guard) import Control.Monad.Except (throwError) import Text.Pandoc.Class (getResourcePath, readFileFromDirs, PandocMonad(..), report) -import Data.Char (isLower, toLower, toUpper, chr, - isAscii, isAlphaNum) +import Data.Char (isLower, toLower, toUpper, chr, isAscii, isAlphaNum) import Data.Default (Default) import qualified Data.Map as M import Data.List (intercalate) @@ -488,7 +487,9 @@ lexConditional mname = do else expression skipMany spacetab st <- getState -- save state, so we can reset it - ifPart <- lexGroup <|> ((try (char '\\' >> newline)) >> manToken) + ifPart <- do + optional $ try $ char '\\' >> newline + lexGroup <|> do modifyState $ \s -> s{ afterConditional = True } t <- manToken modifyState $ \s -> s{ afterConditional = False } -- cgit v1.2.3