diff options
author | Matthew Pickering <matthewtpickering@gmail.com> | 2015-02-18 21:05:47 +0000 |
---|---|---|
committer | Matthew Pickering <matthewtpickering@gmail.com> | 2015-02-18 21:09:07 +0000 |
commit | ad39bc7009e320b3afb91a5683521eb1eccf0ef7 (patch) | |
tree | c522e3cf44db35ef3ac39c9484133f9a790d0e95 /src | |
parent | 48f442f4770c774534b3696e6dd696da45395874 (diff) | |
download | pandoc-ad39bc7009e320b3afb91a5683521eb1eccf0ef7.tar.gz |
Move utility error functions to Text.Pandoc.Shared
Diffstat (limited to 'src')
-rw-r--r-- | src/Text/Pandoc.hs | 2 | ||||
-rw-r--r-- | src/Text/Pandoc/Error.hs | 9 | ||||
-rw-r--r-- | src/Text/Pandoc/ImageSize.hs | 3 | ||||
-rw-r--r-- | src/Text/Pandoc/Readers/HTML.hs | 2 | ||||
-rw-r--r-- | src/Text/Pandoc/Shared.hs | 10 |
5 files changed, 14 insertions, 12 deletions
diff --git a/src/Text/Pandoc.hs b/src/Text/Pandoc.hs index 79ca4a6b7..89f61089b 100644 --- a/src/Text/Pandoc.hs +++ b/src/Text/Pandoc.hs @@ -164,7 +164,7 @@ import Text.Pandoc.Writers.Haddock import Text.Pandoc.Writers.Custom import Text.Pandoc.Templates import Text.Pandoc.Options -import Text.Pandoc.Shared (safeRead, warn) +import Text.Pandoc.Shared (safeRead, warn, mapLeft) import Text.Pandoc.MediaBag (MediaBag) import Text.Pandoc.Error import Data.Aeson diff --git a/src/Text/Pandoc/Error.hs b/src/Text/Pandoc/Error.hs index 70c333bbf..73d1e8f08 100644 --- a/src/Text/Pandoc/Error.hs +++ b/src/Text/Pandoc/Error.hs @@ -28,7 +28,7 @@ This module provides a standard way to deal with possible errors encounted during parsing. -} -module Text.Pandoc.Error (PandocError(..), handleError,hush, mapLeft) where +module Text.Pandoc.Error (PandocError(..), handleError) where import Text.Parsec.Error import Text.Parsec.Pos hiding (Line) @@ -46,13 +46,6 @@ data PandocError = -- | Generic parse failure instance Error PandocError where strMsg = ParseFailure -mapLeft :: (a -> b) -> Either a c -> Either b c -mapLeft f (Left x) = Left (f x) -mapLeft _ (Right x) = Right x - -hush :: Either a b -> Maybe b -hush (Left _) = Nothing -hush (Right x) = Just x -- | An unsafe method to handle `PandocError`s. handleError :: Either PandocError a -> a diff --git a/src/Text/Pandoc/ImageSize.hs b/src/Text/Pandoc/ImageSize.hs index 963057b6f..8f0a991ba 100644 --- a/src/Text/Pandoc/ImageSize.hs +++ b/src/Text/Pandoc/ImageSize.hs @@ -39,10 +39,9 @@ import Control.Monad import Data.Bits import Data.Binary import Data.Binary.Get -import Text.Pandoc.Shared (safeRead) +import Text.Pandoc.Shared (safeRead, hush) import qualified Data.Map as M import Text.Pandoc.Compat.Except -import Text.Pandoc.Error import Control.Monad.Trans import Data.Maybe (fromMaybe) diff --git a/src/Text/Pandoc/Readers/HTML.hs b/src/Text/Pandoc/Readers/HTML.hs index b6338aeff..59f71589e 100644 --- a/src/Text/Pandoc/Readers/HTML.hs +++ b/src/Text/Pandoc/Readers/HTML.hs @@ -44,7 +44,7 @@ import Text.Pandoc.Definition import qualified Text.Pandoc.Builder as B import Text.Pandoc.Builder (Blocks, Inlines, trimInlines, HasMeta(..)) import Text.Pandoc.Shared ( extractSpaces, renderTags' - , escapeURI, safeRead ) + , escapeURI, safeRead, mapLeft ) import Text.Pandoc.Options (ReaderOptions(readerParseRaw, readerTrace) , Extension (Ext_epub_html_exts, Ext_native_divs, Ext_native_spans)) diff --git a/src/Text/Pandoc/Shared.hs b/src/Text/Pandoc/Shared.hs index 90d0941c1..e0460c66e 100644 --- a/src/Text/Pandoc/Shared.hs +++ b/src/Text/Pandoc/Shared.hs @@ -85,6 +85,8 @@ module Text.Pandoc.Shared ( -- * Error handling err, warn, + mapLeft, + hush, -- * Safe read safeRead, -- * Temp directory @@ -855,6 +857,14 @@ warn msg = do name <- getProgName UTF8.hPutStrLn stderr $ name ++ ": " ++ msg +mapLeft :: (a -> b) -> Either a c -> Either b c +mapLeft f (Left x) = Left (f x) +mapLeft _ (Right x) = Right x + +hush :: Either a b -> Maybe b +hush (Left _) = Nothing +hush (Right x) = Just x + -- | Remove intermediate "." and ".." directories from a path. -- -- > collapseFilePath "./foo" == "foo" |