git.iko.soy/typeable/pandoc
on master help sign in
[Docx Reader] Get rid of unused NullModifier in Readers.Docx.Combine
76c765aNikolay Yakimov
src/Text/Pandoc/Readers/Docx/Combine.hs+15−18
@@ -68,7 +68,6 @@ import Text.Pandoc.Builder
68
68
69data Modifier a = Modifier (a -> a)
69data Modifier a = Modifier (a -> a)
70 | AttrModifier (Attr -> a -> a) Attr
70 | AttrModifier (Attr -> a -> a) Attr
71− | NullModifier
72
71
73spaceOutInlinesL :: Inlines -> (Inlines, Inlines)
72spaceOutInlinesL :: Inlines -> (Inlines, Inlines)
74spaceOutInlinesL ms = (l, stackInlines fs (m' <> r))
73spaceOutInlinesL ms = (l, stackInlines fs (m' <> r))
@@ -94,7 +93,6 @@ isSpace _ = False
94
93
95stackInlines :: [Modifier Inlines] -> Inlines -> Inlines
94stackInlines :: [Modifier Inlines] -> Inlines -> Inlines
96stackInlines [] ms = ms
95stackInlines [] ms = ms
97−stackInlines (NullModifier : fs) ms = stackInlines fs ms
98stackInlines (Modifier f : fs) ms =
96stackInlines (Modifier f : fs) ms =
99 if isEmpty ms
97 if isEmpty ms
100 then stackInlines fs ms
98 then stackInlines fs ms
@@ -103,23 +101,23 @@ stackInlines (AttrModifier f attr : fs) ms = f attr $ stackInlines fs ms
103
101
104unstackInlines :: Inlines -> ([Modifier Inlines], Inlines)
102unstackInlines :: Inlines -> ([Modifier Inlines], Inlines)
105unstackInlines ms = case ilModifierAndInnards ms of
103unstackInlines ms = case ilModifierAndInnards ms of
106− (NullModifier, _) -> ([], ms)
104+ Nothing -> ([], ms)
107− (f, innards ) -> first (f :) $ unstackInlines innards
105+ Just (f, inner) -> first (f :) $ unstackInlines inner
108
106
109−ilModifierAndInnards :: Inlines -> (Modifier Inlines, Inlines)
107+ilModifierAndInnards :: Inlines -> Maybe (Modifier Inlines, Inlines)
110ilModifierAndInnards ils = case viewl $ unMany ils of
108ilModifierAndInnards ils = case viewl $ unMany ils of
111− x :< xs | Seq.null xs -> case x of
109+ x :< xs | Seq.null xs -> second fromList <$> case x of
112− Emph lst -> (Modifier emph, fromList lst)
110+ Emph lst -> Just (Modifier emph, lst)
113− Strong lst -> (Modifier strong, fromList lst)
111+ Strong lst -> Just (Modifier strong, lst)
114− SmallCaps lst -> (Modifier smallcaps, fromList lst)
112+ SmallCaps lst -> Just (Modifier smallcaps, lst)
115− Strikeout lst -> (Modifier strikeout, fromList lst)
113+ Strikeout lst -> Just (Modifier strikeout, lst)
116− Underline lst -> (Modifier underline, fromList lst)
114+ Underline lst -> Just (Modifier underline, lst)
117− Superscript lst -> (Modifier superscript, fromList lst)
115+ Superscript lst -> Just (Modifier superscript, lst)
118− Subscript lst -> (Modifier subscript, fromList lst)
116+ Subscript lst -> Just (Modifier subscript, lst)
119− Link attr lst tgt -> (Modifier $ linkWith attr (fst tgt) (snd tgt), fromList lst)
117+ Link attr lst tgt -> Just (Modifier $ linkWith attr (fst tgt) (snd tgt), lst)
120− Span attr lst -> (AttrModifier spanWith attr, fromList lst)
118+ Span attr lst -> Just (AttrModifier spanWith attr, lst)
121− _ -> (NullModifier, ils)
119+ _ -> Nothing
122− _ -> (NullModifier, ils)
120+ _ -> Nothing
123
121
124inlinesL :: Inlines -> (Inlines, Inlines)
122inlinesL :: Inlines -> (Inlines, Inlines)
125inlinesL ils = case viewl $ unMany ils of
123inlinesL ils = case viewl $ unMany ils of
@@ -181,7 +179,6 @@ combineBlocks bs cs = bs <> cs
181instance (Monoid a, Eq a) => Eq (Modifier a) where
179instance (Monoid a, Eq a) => Eq (Modifier a) where
182 (Modifier f) == (Modifier g) = f mempty == g mempty
180 (Modifier f) == (Modifier g) = f mempty == g mempty
183 (AttrModifier f attr) == (AttrModifier g attr') = f attr mempty == g attr' mempty
181 (AttrModifier f attr) == (AttrModifier g attr') = f attr mempty == g attr' mempty
184− NullModifier == NullModifier = True
185 _ == _ = False
182 _ == _ = False
186
183
187isEmpty :: (Monoid a, Eq a) => a -> Bool
184isEmpty :: (Monoid a, Eq a) => a -> Bool