diff options
author | Gabor Pali <pgj@FreeBSD.org> | 2014-08-10 22:34:50 +0000 |
---|---|---|
committer | Gabor Pali <pgj@FreeBSD.org> | 2014-08-10 22:34:50 +0000 |
commit | cc555442337c7591ab5c3fd19ad8e3e185a256b0 (patch) | |
tree | a6a0dfa4f440949889fc7b609c83f74555f6894e /devel/hs-conduit-combinators | |
parent | 5e492199d1e024a681c6d21087c8d948cb3b7bc3 (diff) |
Notes
Diffstat (limited to 'devel/hs-conduit-combinators')
-rw-r--r-- | devel/hs-conduit-combinators/Makefile | 19 | ||||
-rw-r--r-- | devel/hs-conduit-combinators/distinfo | 2 | ||||
-rw-r--r-- | devel/hs-conduit-combinators/files/patch-Data__Conduit__Combinators.hs | 68 | ||||
-rw-r--r-- | devel/hs-conduit-combinators/files/patch-conduit-combinators.cabal | 19 | ||||
-rw-r--r-- | devel/hs-conduit-combinators/pkg-descr | 4 |
5 files changed, 112 insertions, 0 deletions
diff --git a/devel/hs-conduit-combinators/Makefile b/devel/hs-conduit-combinators/Makefile new file mode 100644 index 000000000000..64582d1d1c6a --- /dev/null +++ b/devel/hs-conduit-combinators/Makefile @@ -0,0 +1,19 @@ +# $FreeBSD$ + +PORTNAME= conduit-combinators +PORTVERSION= 0.2.8.2 +CATEGORIES= devel haskell + +MAINTAINER= haskell@FreeBSD.org +COMMENT= Commonly used conduit functions, for both chunked and unchunked data + +LICENSE= MIT + +USE_CABAL= base16-bytestring base64-bytestring>=0.1.1.1 chunked-data \ + conduit>=1.0.12 conduit-extra monad-control \ + mono-traversable>=0.4 mwc-random primitive resourcet \ + streaming-commons system-fileio system-filepath text \ + transformers-base unix-compat vector void + +.include "${.CURDIR}/../../lang/ghc/bsd.cabal.mk" +.include <bsd.port.mk> diff --git a/devel/hs-conduit-combinators/distinfo b/devel/hs-conduit-combinators/distinfo new file mode 100644 index 000000000000..752e302cdc67 --- /dev/null +++ b/devel/hs-conduit-combinators/distinfo @@ -0,0 +1,2 @@ +SHA256 (cabal/conduit-combinators-0.2.8.2.tar.gz) = 0a06ff14ebad9778c1fe0f3bcc00aae587ce673a8553d2f99664c7e7c7184ff4 +SIZE (cabal/conduit-combinators-0.2.8.2.tar.gz) = 28058 diff --git a/devel/hs-conduit-combinators/files/patch-Data__Conduit__Combinators.hs b/devel/hs-conduit-combinators/files/patch-Data__Conduit__Combinators.hs new file mode 100644 index 000000000000..460fc8fb3434 --- /dev/null +++ b/devel/hs-conduit-combinators/files/patch-Data__Conduit__Combinators.hs @@ -0,0 +1,68 @@ +--- ./Data/Conduit/Combinators.hs.orig 2014-07-26 20:08:37.000000000 +0200 ++++ ./Data/Conduit/Combinators.hs 2014-07-29 14:03:36.000000000 +0200 +@@ -204,6 +204,7 @@ + import qualified Data.Sequences as Seq + import Data.Sequences.Lazy + import qualified Data.Vector.Generic as V ++import qualified Data.Text as T + import qualified Data.Vector.Generic.Mutable as VM + import Data.Void (absurd) + import qualified Filesystem as F +@@ -228,6 +229,8 @@ + import qualified System.PosixCompat.Files as PosixC + import Data.Primitive.MutVar (MutVar, newMutVar, readMutVar, + writeMutVar) ++import Data.Streaming.Text hiding (decodeUtf8) ++import qualified Data.Streaming.Text as DST + + #ifndef WINDOWS + import qualified System.Posix.Directory as Dir +@@ -1646,7 +1649,47 @@ + -- + -- Since 1.0.0 + decodeUtf8Lenient :: MonadThrow m => Conduit ByteString m Text +-decodeUtf8Lenient = CT.decodeUtf8Lenient ++decodeUtf8Lenient = ++ decodeNew onFailure "UTF8-lenient" 0 DST.decodeUtf8 ++ where ++ onFailure _consumed _bs t rest = do ++ unless (T.null t) (yield t) ++ case S.uncons rest of ++ Nothing -> return () ++ Just (_, rest') -> do ++ unless (S.null rest') (leftover rest') ++ yield $ T.singleton '\xFFFD' ++ decodeUtf8Lenient ++ ++decodeNew ++ :: Monad m ++ => (Int -> S.ByteString -> T.Text -> S.ByteString -> Conduit S.ByteString m T.Text) ++ -> t ++ -> Int ++ -> (S.ByteString -> DecodeResult) ++ -> Conduit S.ByteString m T.Text ++decodeNew onFailure name = ++ loop ++ where ++ loop consumed dec = ++ await >>= maybe finish go ++ where ++ finish = ++ case dec S.empty of ++ DecodeResultSuccess _ _ -> return () ++ DecodeResultFailure t rest -> onFailure consumed S.empty t rest ++ {-# INLINE finish #-} ++ ++ go bs | S.null bs = loop consumed dec ++ go bs = ++ case dec bs of ++ DecodeResultSuccess t dec' -> do ++ let consumed' = consumed + S.length bs ++ next = do ++ unless (T.null t) (yield t) ++ loop consumed' dec' ++ in consumed' `seq` next ++ DecodeResultFailure t rest -> onFailure consumed bs t rest + + -- | Stream in the entirety of a single line. + -- diff --git a/devel/hs-conduit-combinators/files/patch-conduit-combinators.cabal b/devel/hs-conduit-combinators/files/patch-conduit-combinators.cabal new file mode 100644 index 000000000000..2e01c966d5a0 --- /dev/null +++ b/devel/hs-conduit-combinators/files/patch-conduit-combinators.cabal @@ -0,0 +1,19 @@ +--- ./conduit-combinators.cabal.orig 2014-07-26 20:08:37.000000000 +0200 ++++ ./conduit-combinators.cabal 2014-07-29 14:01:52.000000000 +0200 +@@ -20,7 +20,7 @@ + build-depends: base >= 4 && < 5 + , chunked-data + , conduit >= 1.0.12 +- , conduit-extra >= 1.1.1 ++ , conduit-extra + , transformers + , transformers-base + , primitive +@@ -37,6 +37,7 @@ + , base64-bytestring >= 0.1.1.1 + , resourcet + , monad-control ++ , streaming-commons + if os(windows) + cpp-options: -DWINDOWS + else diff --git a/devel/hs-conduit-combinators/pkg-descr b/devel/hs-conduit-combinators/pkg-descr new file mode 100644 index 000000000000..7f386cb58255 --- /dev/null +++ b/devel/hs-conduit-combinators/pkg-descr @@ -0,0 +1,4 @@ +Provides a replacement for Data.Conduit.List, as well as a convenient +Conduit module. + +WWW: https://github.com/fpco/conduit-combinators |