diff options
| -rw-r--r-- | src/Text/Pandoc/Writers/RST.hs | 7 | ||||
| -rw-r--r-- | test/Tests/Writers/RST.hs | 3 | 
2 files changed, 8 insertions, 2 deletions
| diff --git a/src/Text/Pandoc/Writers/RST.hs b/src/Text/Pandoc/Writers/RST.hs index 084615357..f82597c55 100644 --- a/src/Text/Pandoc/Writers/RST.hs +++ b/src/Text/Pandoc/Writers/RST.hs @@ -457,8 +457,11 @@ transformInlines =  insertBS .  -- them either collapsing them in the outer inline container or  -- pulling them out of it  flatten :: Inline -> [Inline] -flatten outer = combineAll $ dropInlineParent outer -  where combineAll = foldl combine [] +flatten outer +  | null contents = [outer] +  | otherwise     = combineAll contents +  where contents = dropInlineParent outer +        combineAll = foldl combine []          combine :: [Inline] -> Inline -> [Inline]          combine f i =  diff --git a/test/Tests/Writers/RST.hs b/test/Tests/Writers/RST.hs index 89ad1de48..a1a4510e0 100644 --- a/test/Tests/Writers/RST.hs +++ b/test/Tests/Writers/RST.hs @@ -64,6 +64,9 @@ tests = [ testGroup "rubrics"              -- the test above is the reason why we call              -- stripLeadingTrailingSpace through transformNested after              -- flatten +          , testCase "preserves empty parents" $ +            flatten (Image ("",[],[]) [] ("loc","title")) @?= +            [Image ("",[],[]) [] ("loc","title")]            ]          , testGroup "inlines"            [ "are removed when empty" =: -- #4434 | 
