From 0411fe7ccf26c36f78af58100b9670dd639d2d3b Mon Sep 17 00:00:00 2001 From: Jesse Rosenthal <jrosenthal@jhu.edu> Date: Mon, 11 Aug 2014 12:48:16 -0400 Subject: [PATCH 1/2] Docx reader: handle empty reducibles. --- src/Text/Pandoc/Readers/Docx/Reducible.hs | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/Text/Pandoc/Readers/Docx/Reducible.hs b/src/Text/Pandoc/Readers/Docx/Reducible.hs index 2dbef4131..a852e25bf 100644 --- a/src/Text/Pandoc/Readers/Docx/Reducible.hs +++ b/src/Text/Pandoc/Readers/Docx/Reducible.hs @@ -88,11 +88,13 @@ combineReducibles r s = in case null shared of True | (x : xs) <- reverse rs - , isSpace x -> - rebuild conts (reverse xs) ++ [x, s] + , isSpace x -> case xs of + [] -> [x, s] + _ -> rebuild conts (reverse xs) ++ [x, s] | (x : xs) <- ss - , isSpace x -> - [r, x] ++ rebuild conts' (xs) + , isSpace x -> case xs of + [] -> [r, x] + _ -> [r, x] ++ rebuild conts' (xs) True -> [r,s] False -> rebuild shared $ @@ -121,7 +123,6 @@ instance Reducible Inline where False -> [Span attr2' ils2] in [Span attr' $ reduceList $ s1' ++ s2'] - (Str x) <++> (Str y) = [Str (x++y)] il <++> il' = combineReducibles il il' From 241ef57bb24f5eb972d6195a137a74d4b19b2f1f Mon Sep 17 00:00:00 2001 From: Jesse Rosenthal <jrosenthal@jhu.edu> Date: Mon, 11 Aug 2014 15:11:28 -0400 Subject: [PATCH 2/2] Docx reader test: Add an emphasized space to normalize test. This should be ignored, so the output should be the same as the previous test. --- tests/docx.normalize.docx | Bin 25994 -> 25791 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/tests/docx.normalize.docx b/tests/docx.normalize.docx index 5e4370a4703971abce2798d1cf2692ecd41876ba..b4fc558181086422ab7eef7759129270efd38f48 100644 GIT binary patch delta 1575 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 ZP)h{{000004FC-QW&;2KLty{_007>l&yWBB delta 1771 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 NP6Ge{CSm{p000FTHv9kp