From fe1152985ca8824b62c7bce397a681e7e422e8e1 Mon Sep 17 00:00:00 2001 From: John MacFarlane Date: Tue, 21 Dec 2010 08:41:24 -0800 Subject: Shared: Made splitBy take a test instead of an element. --- src/Text/Pandoc/Readers/LaTeX.hs | 2 +- src/Text/Pandoc/Shared.hs | 12 ++++++------ src/Text/Pandoc/Writers/Docbook.hs | 2 +- src/Text/Pandoc/Writers/Man.hs | 2 +- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/Text/Pandoc/Readers/LaTeX.hs b/src/Text/Pandoc/Readers/LaTeX.hs index 70a913a1b..6006aac5b 100644 --- a/src/Text/Pandoc/Readers/LaTeX.hs +++ b/src/Text/Pandoc/Readers/LaTeX.hs @@ -340,7 +340,7 @@ authors :: GenParser Char ParserState Block authors = try $ do string "\\author{" raw <- many1 (notFollowedBy (char '}') >> inline) - let authors' = map normalizeSpaces $ splitBy LineBreak raw + let authors' = map normalizeSpaces $ splitBy (== LineBreak) raw char '}' spaces updateState (\s -> s { stateAuthors = authors' }) diff --git a/src/Text/Pandoc/Shared.hs b/src/Text/Pandoc/Shared.hs index c57ecb989..e5b000efe 100644 --- a/src/Text/Pandoc/Shared.hs +++ b/src/Text/Pandoc/Shared.hs @@ -98,12 +98,12 @@ import Paths_pandoc (getDataFileName) -- -- | Split list by groups of one or more sep. -splitBy :: (Eq a) => a -> [a] -> [[a]] +splitBy :: (a -> Bool) -> [a] -> [[a]] splitBy _ [] = [] -splitBy sep lst = - let (first, rest) = break (== sep) lst - rest' = dropWhile (== sep) rest - in first:(splitBy sep rest') +splitBy isSep lst = + let (first, rest) = break isSep lst + rest' = dropWhile isSep rest + in first:(splitBy isSep rest') -- | Split list into chunks divided at specified indices. splitByIndices :: [Int] -> [a] -> [[a]] @@ -227,7 +227,7 @@ tabFilter tabStop = -- | Wrap inlines to line length. wrapped :: Monad m => ([Inline] -> m Doc) -> [Inline] -> m Doc -wrapped listWriter sect = (mapM listWriter $ splitBy Space sect) >>= +wrapped listWriter sect = (mapM listWriter $ splitBy (== Space) sect) >>= return . fsep -- | Wrap inlines if the text wrap option is selected. diff --git a/src/Text/Pandoc/Writers/Docbook.hs b/src/Text/Pandoc/Writers/Docbook.hs index 5223259eb..d8b85c1a2 100644 --- a/src/Text/Pandoc/Writers/Docbook.hs +++ b/src/Text/Pandoc/Writers/Docbook.hs @@ -217,7 +217,7 @@ tableItemToDocbook opts tag align item = -- | Take list of inline elements and return wrapped doc. wrap :: WriterOptions -> [Inline] -> Doc wrap opts lst = if writerWrapText opts - then fsep $ map (inlinesToDocbook opts) (splitBy Space lst) + then fsep $ map (inlinesToDocbook opts) (splitBy (== Space) lst) else inlinesToDocbook opts lst -- | Convert a list of inline elements to Docbook. diff --git a/src/Text/Pandoc/Writers/Man.hs b/src/Text/Pandoc/Writers/Man.hs index a46a18893..3c6be434b 100644 --- a/src/Text/Pandoc/Writers/Man.hs +++ b/src/Text/Pandoc/Writers/Man.hs @@ -59,7 +59,7 @@ pandocToMan opts (Pandoc (Meta title authors date) blocks) = do xs -> (text (reverse xs), doubleQuotes empty) let description = hsep $ map (doubleQuotes . text . removeLeadingTrailingSpace) $ - splitBy '|' rest + splitBy (== '|') rest body <- blockListToMan opts blocks notes <- liftM stNotes get notes' <- notesToMan opts (reverse notes) -- cgit v1.2.3