From 8b01f03eaa0c73259ed7a6d73c649cac65edcddc Mon Sep 17 00:00:00 2001 From: Francesco Occhipinti <focchi.pinti@gmail.com> Date: Fri, 27 Apr 2018 18:01:20 +0200 Subject: [PATCH] RST writer: preserve empty inline parents in flatten (#4603) --- src/Text/Pandoc/Writers/RST.hs | 7 +++++-- 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