packages feed

cgi 3001.1.7.5 → 3001.1.8

raw patch · 9 files changed

+36/−53 lines, 9 filesdep +MonadCatchIO-mtldep ~basePVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependencies added: MonadCatchIO-mtl

Dependency ranges changed: base

API changes (from Hackage documentation)

- Network.CGI.Monad: instance (Functor m, Monad m) => Functor (CGIT m)
- Network.CGI.Monad: instance Monad m => Monad (CGIT m)
- Network.CGI.Monad: instance Monad m => MonadCGI (CGIT m)
- Network.CGI.Monad: instance MonadError SomeException (CGIT IO)
- Network.CGI.Monad: instance MonadIO m => MonadIO (CGIT m)
+ Network.CGI.Monad: instance (Monad m) => Functor (CGIT m)
+ Network.CGI.Monad: instance (Monad m) => Monad (CGIT m)
+ Network.CGI.Monad: instance (Monad m) => MonadCGI (CGIT m)
+ Network.CGI.Monad: instance (MonadCatchIO m) => MonadCatchIO (CGIT m)
+ Network.CGI.Monad: instance (MonadCatchIO m) => MonadError SomeException (CGIT m)
+ Network.CGI.Monad: instance (MonadIO m) => MonadIO (CGIT m)
- Network.CGI: authType :: MonadCGI m => m (Maybe String)
+ Network.CGI: authType :: (MonadCGI m) => m (Maybe String)
- Network.CGI: catchCGI :: CGI a -> (SomeException -> CGI a) -> CGI a
+ Network.CGI: catchCGI :: (MonadCGI m, MonadCatchIO m) => m a -> (SomeException -> m a) -> m a
- Network.CGI: class Eq a => Acceptable a
+ Network.CGI: class (Eq a) => Acceptable a
- Network.CGI: class Monad m => MonadCGI m
+ Network.CGI: class (Monad m) => MonadCGI m
- Network.CGI: class Monad m => MonadIO (m :: * -> *)
+ Network.CGI: class (Monad m) => MonadIO m :: (* -> *)
- Network.CGI: deleteCookie :: MonadCGI m => Cookie -> m ()
+ Network.CGI: deleteCookie :: (MonadCGI m) => Cookie -> m ()
- Network.CGI: getBody :: MonadCGI m => m String
+ Network.CGI: getBody :: (MonadCGI m) => m String
- Network.CGI: getBodyFPS :: MonadCGI m => m ByteString
+ Network.CGI: getBodyFPS :: (MonadCGI m) => m ByteString
- Network.CGI: getCookie :: MonadCGI m => String -> m (Maybe String)
+ Network.CGI: getCookie :: (MonadCGI m) => String -> m (Maybe String)
- Network.CGI: getInput :: MonadCGI m => String -> m (Maybe String)
+ Network.CGI: getInput :: (MonadCGI m) => String -> m (Maybe String)
- Network.CGI: getInputContentType :: MonadCGI m => String -> m (Maybe String)
+ Network.CGI: getInputContentType :: (MonadCGI m) => String -> m (Maybe String)
- Network.CGI: getInputFPS :: MonadCGI m => String -> m (Maybe ByteString)
+ Network.CGI: getInputFPS :: (MonadCGI m) => String -> m (Maybe ByteString)
- Network.CGI: getInputFilename :: MonadCGI m => String -> m (Maybe String)
+ Network.CGI: getInputFilename :: (MonadCGI m) => String -> m (Maybe String)
- Network.CGI: getInputNames :: MonadCGI m => m [String]
+ Network.CGI: getInputNames :: (MonadCGI m) => m [String]
- Network.CGI: getInputs :: MonadCGI m => m [(String, String)]
+ Network.CGI: getInputs :: (MonadCGI m) => m [(String, String)]
- Network.CGI: getInputsFPS :: MonadCGI m => m [(String, ByteString)]
+ Network.CGI: getInputsFPS :: (MonadCGI m) => m [(String, ByteString)]
- Network.CGI: getMultiInput :: MonadCGI m => String -> m [String]
+ Network.CGI: getMultiInput :: (MonadCGI m) => String -> m [String]
- Network.CGI: getMultiInputFPS :: MonadCGI m => String -> m [ByteString]
+ Network.CGI: getMultiInputFPS :: (MonadCGI m) => String -> m [ByteString]
- Network.CGI: getVar :: MonadCGI m => String -> m (Maybe String)
+ Network.CGI: getVar :: (MonadCGI m) => String -> m (Maybe String)
- Network.CGI: getVarWithDefault :: MonadCGI m => String -> String -> m String
+ Network.CGI: getVarWithDefault :: (MonadCGI m) => String -> String -> m String
- Network.CGI: getVars :: MonadCGI m => m [(String, String)]
+ Network.CGI: getVars :: (MonadCGI m) => m [(String, String)]
- Network.CGI: handleErrors :: CGI CGIResult -> CGI CGIResult
+ Network.CGI: handleErrors :: (MonadCGI m, MonadCatchIO m) => m CGIResult -> m CGIResult
- Network.CGI: handleExceptionCGI :: CGI a -> (SomeException -> CGI a) -> CGI a
+ Network.CGI: handleExceptionCGI :: (MonadCGI m, MonadCatchIO m) => m a -> (SomeException -> m a) -> m a
- Network.CGI: liftIO :: MonadIO m => forall a. IO a -> m a
+ Network.CGI: liftIO :: (MonadIO m) => forall a. IO a -> m a
- Network.CGI: logCGI :: MonadIO m => String -> m ()
+ Network.CGI: logCGI :: (MonadIO m) => String -> m ()
- Network.CGI: negotiate :: Acceptable a => [a] -> Maybe (Accept a) -> [a]
+ Network.CGI: negotiate :: (Acceptable a) => [a] -> Maybe (Accept a) -> [a]
- Network.CGI: output :: MonadCGI m => String -> m CGIResult
+ Network.CGI: output :: (MonadCGI m) => String -> m CGIResult
- Network.CGI: outputFPS :: MonadCGI m => ByteString -> m CGIResult
+ Network.CGI: outputFPS :: (MonadCGI m) => ByteString -> m CGIResult
- Network.CGI: outputNothing :: MonadCGI m => m CGIResult
+ Network.CGI: outputNothing :: (MonadCGI m) => m CGIResult
- Network.CGI: parseContentType :: Monad m => String -> m ContentType
+ Network.CGI: parseContentType :: (Monad m) => String -> m ContentType
- Network.CGI: pathInfo :: MonadCGI m => m String
+ Network.CGI: pathInfo :: (MonadCGI m) => m String
- Network.CGI: pathTranslated :: MonadCGI m => m String
+ Network.CGI: pathTranslated :: (MonadCGI m) => m String
- Network.CGI: progURI :: MonadCGI m => m URI
+ Network.CGI: progURI :: (MonadCGI m) => m URI
- Network.CGI: queryString :: MonadCGI m => m String
+ Network.CGI: queryString :: (MonadCGI m) => m String
- Network.CGI: queryURI :: MonadCGI m => m URI
+ Network.CGI: queryURI :: (MonadCGI m) => m URI
- Network.CGI: redirect :: MonadCGI m => String -> m CGIResult
+ Network.CGI: redirect :: (MonadCGI m) => String -> m CGIResult
- Network.CGI: remoteAddr :: MonadCGI m => m String
+ Network.CGI: remoteAddr :: (MonadCGI m) => m String
- Network.CGI: remoteHost :: MonadCGI m => m (Maybe String)
+ Network.CGI: remoteHost :: (MonadCGI m) => m (Maybe String)
- Network.CGI: remoteUser :: MonadCGI m => m (Maybe String)
+ Network.CGI: remoteUser :: (MonadCGI m) => m (Maybe String)
- Network.CGI: requestAccept :: MonadCGI m => m (Maybe (Accept ContentType))
+ Network.CGI: requestAccept :: (MonadCGI m) => m (Maybe (Accept ContentType))
- Network.CGI: requestAcceptCharset :: MonadCGI m => m (Maybe (Accept Charset))
+ Network.CGI: requestAcceptCharset :: (MonadCGI m) => m (Maybe (Accept Charset))
- Network.CGI: requestAcceptEncoding :: MonadCGI m => m (Maybe (Accept ContentEncoding))
+ Network.CGI: requestAcceptEncoding :: (MonadCGI m) => m (Maybe (Accept ContentEncoding))
- Network.CGI: requestAcceptLanguage :: MonadCGI m => m (Maybe (Accept Language))
+ Network.CGI: requestAcceptLanguage :: (MonadCGI m) => m (Maybe (Accept Language))
- Network.CGI: requestContentLength :: MonadCGI m => m (Maybe Int)
+ Network.CGI: requestContentLength :: (MonadCGI m) => m (Maybe Int)
- Network.CGI: requestContentType :: MonadCGI m => m (Maybe String)
+ Network.CGI: requestContentType :: (MonadCGI m) => m (Maybe String)
- Network.CGI: requestHeader :: MonadCGI m => String -> m (Maybe String)
+ Network.CGI: requestHeader :: (MonadCGI m) => String -> m (Maybe String)
- Network.CGI: requestMethod :: MonadCGI m => m String
+ Network.CGI: requestMethod :: (MonadCGI m) => m String
- Network.CGI: requestURI :: MonadCGI m => m URI
+ Network.CGI: requestURI :: (MonadCGI m) => m URI
- Network.CGI: runCGI :: MonadIO m => CGIT m CGIResult -> m ()
+ Network.CGI: runCGI :: (MonadIO m) => CGIT m CGIResult -> m ()
- Network.CGI: scriptName :: MonadCGI m => m String
+ Network.CGI: scriptName :: (MonadCGI m) => m String
- Network.CGI: serverName :: MonadCGI m => m String
+ Network.CGI: serverName :: (MonadCGI m) => m String
- Network.CGI: serverPort :: MonadCGI m => m Int
+ Network.CGI: serverPort :: (MonadCGI m) => m Int
- Network.CGI: setCookie :: MonadCGI m => Cookie -> m ()
+ Network.CGI: setCookie :: (MonadCGI m) => Cookie -> m ()
- Network.CGI: setHeader :: MonadCGI m => String -> String -> m ()
+ Network.CGI: setHeader :: (MonadCGI m) => String -> String -> m ()
- Network.CGI: setStatus :: MonadCGI m => Int -> String -> m ()
+ Network.CGI: setStatus :: (MonadCGI m) => Int -> String -> m ()
- Network.CGI: tryCGI :: CGI a -> CGI (Either SomeException a)
+ Network.CGI: tryCGI :: (MonadCGI m, MonadCatchIO m) => m a -> m (Either SomeException a)
- Network.CGI.Monad: catchCGI :: CGI a -> (SomeException -> CGI a) -> CGI a
+ Network.CGI.Monad: catchCGI :: (MonadCGI m, MonadCatchIO m) => m a -> (SomeException -> m a) -> m a
- Network.CGI.Monad: cgiAddHeader :: MonadCGI m => HeaderName -> String -> m ()
+ Network.CGI.Monad: cgiAddHeader :: (MonadCGI m) => HeaderName -> String -> m ()
- Network.CGI.Monad: cgiGet :: MonadCGI m => (CGIRequest -> a) -> m a
+ Network.CGI.Monad: cgiGet :: (MonadCGI m) => (CGIRequest -> a) -> m a
- Network.CGI.Monad: class Monad m => MonadCGI m
+ Network.CGI.Monad: class (Monad m) => MonadCGI m
- Network.CGI.Monad: handleExceptionCGI :: CGI a -> (SomeException -> CGI a) -> CGI a
+ Network.CGI.Monad: handleExceptionCGI :: (MonadCGI m, MonadCatchIO m) => m a -> (SomeException -> m a) -> m a
- Network.CGI.Monad: runCGIT :: Monad m => CGIT m a -> CGIRequest -> m (Headers, a)
+ Network.CGI.Monad: runCGIT :: (Monad m) => CGIT m a -> CGIRequest -> m (Headers, a)
- Network.CGI.Monad: tryCGI :: CGI a -> CGI (Either SomeException a)
+ Network.CGI.Monad: tryCGI :: (MonadCGI m, MonadCatchIO m) => m a -> m (Either SomeException a)
- Network.CGI.Protocol: getCGIVars :: MonadIO m => m [(String, String)]
+ Network.CGI.Protocol: getCGIVars :: (MonadIO m) => m [(String, String)]
- Network.CGI.Protocol: hRunCGI :: MonadIO m => [(String, String)] -> Handle -> Handle -> (CGIRequest -> m (Headers, CGIResult)) -> m ()
+ Network.CGI.Protocol: hRunCGI :: (MonadIO m) => [(String, String)] -> Handle -> Handle -> (CGIRequest -> m (Headers, CGIResult)) -> m ()
- Network.CGI.Protocol: logCGI :: MonadIO m => String -> m ()
+ Network.CGI.Protocol: logCGI :: (MonadIO m) => String -> m ()
- Network.CGI.Protocol: maybeRead :: Read a => String -> Maybe a
+ Network.CGI.Protocol: maybeRead :: (Read a) => String -> Maybe a
- Network.CGI.Protocol: replace :: Eq a => a -> a -> [a] -> [a]
+ Network.CGI.Protocol: replace :: (Eq a) => a -> a -> [a] -> [a]
- Network.CGI.Protocol: runCGIEnvFPS :: Monad m => [(String, String)] -> ByteString -> (CGIRequest -> m (Headers, CGIResult)) -> m ByteString
+ Network.CGI.Protocol: runCGIEnvFPS :: (Monad m) => [(String, String)] -> ByteString -> (CGIRequest -> m (Headers, CGIResult)) -> m ByteString

Files

LICENSE view
@@ -1,6 +1,5 @@-Copyright 2001-2010, The University Court of the University of-Glasgow, Bjorn Bringert, Andy Gill, Anders Kaseorg, Ian Lynagh, Erik-Meijer, Sven Panne, Jeremy Shaw+Copyright 2001-2005, The University Court of the University of+Glasgow, Bjorn Bringert, Andy Gill, Ian Lynagh, Erik Meijer, Sven Panne  All rights reserved. 
Network/CGI.hs view
@@ -8,7 +8,7 @@ --                (c) Jeremy Shaw 2005 -- License     :  BSD-style ----- Maintainer  :  Anders Kaseorg <andersk@mit.edu>+-- Maintainer  :  bjorn@bringert.net -- Stability   :  experimental -- Portability :  non-portable (uses Control.Monad.State) --@@ -94,13 +94,9 @@   , module Network.CGI.Compat   ) where -#if MIN_VERSION_base(4,0,0)-import Control.Exception-#else-import Control.Exception.Extensible-#endif-  (Exception(..), SomeException, ErrorCall(..))+import Control.Exception.Extensible (Exception(..), SomeException, ErrorCall(..)) import Control.Monad (liftM)+import Control.Monad.CatchIO (MonadCatchIO) import Control.Monad.Trans (MonadIO, liftIO) import Data.Char (toUpper) import Data.List (intersperse, sort, group)@@ -179,7 +175,7 @@ -- > -- > main :: IO () -- > main = runCGI (handleErrors cgiMain)-handleErrors :: CGI CGIResult -> CGI CGIResult+handleErrors :: (MonadCGI m, MonadCatchIO m) => m CGIResult -> m CGIResult handleErrors = flip catchCGI outputException  --
Network/CGI/Compat.hs view
@@ -7,7 +7,7 @@ --                (c) Jeremy Shaw 2005 -- License     :  BSD-style ----- Maintainer  :  Anders Kaseorg <andersk@mit.edu>+-- Maintainer  :  bjorn@bringert.net -- Stability   :  experimental -- Portability :  non-portable (uses Control.Monad.State) --@@ -20,12 +20,7 @@   ) where  import Control.Concurrent (forkIO)-#if MIN_VERSION_base(4,0,0)-import Control.Exception-#else-import Control.Exception.Extensible-#endif-  as Exception (SomeException, throw, catch, finally)+import Control.Exception.Extensible as Exception (SomeException,throw,catch,finally) import Control.Monad (unless) import Control.Monad.Trans (MonadIO, liftIO) import qualified Data.Map as Map@@ -94,7 +89,7 @@                    (\ e -> abort "Cannot connect to CGI daemon." e)           BS.hPut h str >> hPutStrLn h ""           (sendBack h `finally` hClose h)-               `Exception.catch` (\e -> unless (isEOFError e) (ioError e))+               `Prelude.catch` (\e -> unless (isEOFError e) (ioError e))  -- | Returns the query string, or the request body if it is --   a POST request, or the empty string if there is an error.
Network/CGI/Cookie.hs view
@@ -5,7 +5,7 @@ --                (c) Ian Lynagh 2005 -- License     :  BSD-style ----- Maintainer  :  Anders Kaseorg <andersk@mit.edu>+-- Maintainer  :  Bjorn Bringert <bjorn@bringert.net> -- Stability   :  experimental -- Portability :  portable --
Network/CGI/Header.hs view
@@ -7,7 +7,7 @@ --                (c) Bjorn Bringert 2005-2006 -- License     :  BSD-style ----- Maintainer  :  Anders Kaseorg <andersk@mit.edu>+-- Maintainer  :  bjorn@bringert.net -- Stability   :  experimental -- Portability :  non-portable --
Network/CGI/Monad.hs view
@@ -5,7 +5,7 @@ -- Copyright   :  (c) Bjorn Bringert 2006 -- License     :  BSD-style ----- Maintainer  :  Anders Kaseorg <andersk@mit.edu>+-- Maintainer  :  bjorn@bringert.net -- Stability   :  experimental -- Portability :  non-portable --@@ -27,18 +27,14 @@   throwCGI, catchCGI, tryCGI, handleExceptionCGI,  ) where -#if MIN_VERSION_base(4,0,0)-import Control.Exception-#else-import Control.Exception.Extensible-#endif-  as Exception (SomeException, try, throwIO)+import Prelude hiding (catch)+import Control.Exception.Extensible as Exception (SomeException, throwIO) import Control.Monad (liftM)+import Control.Monad.CatchIO (MonadCatchIO, block, catch, try, unblock) import Control.Monad.Error (MonadError(..)) import Control.Monad.Reader (ReaderT(..), asks) import Control.Monad.Writer (WriterT(..), tell) import Control.Monad.Trans (MonadTrans, MonadIO, liftIO, lift)-import Data.Monoid (mempty) import Data.Typeable (Typeable(..), Typeable1(..),                        mkTyConApp, mkTyCon) @@ -59,7 +55,7 @@     typeOf _ = mkTyConApp (mkTyCon "Network.CGI.Monad.CGIT")                  [typeOf1 (undefined :: m a), typeOf (undefined :: a)] -instance (Functor m, Monad m) => Functor (CGIT m) where+instance Monad m => Functor (CGIT m) where     fmap f c = CGIT (fmap f (unCGIT c))  instance Monad m => Monad (CGIT m) where@@ -71,6 +67,11 @@ instance MonadIO m => MonadIO (CGIT m) where     liftIO = lift . liftIO +instance MonadCatchIO m => MonadCatchIO (CGIT m) where+    CGIT m `catch` h = CGIT (try m) >>= either h return+    block (CGIT m) = CGIT (block m)+    unblock (CGIT m) = CGIT (unblock m)+ -- | The class of CGI monads. Most CGI actions can be run in --   any monad which is an instance of this class, which means that --   you can use your own monad transformers to add extra functionality.@@ -97,7 +98,7 @@ -- * Error handling -- -instance MonadError SomeException (CGIT IO) where+instance MonadCatchIO m => MonadError SomeException (CGIT m) where     throwError = throwCGI     catchError = catchCGI @@ -108,17 +109,15 @@  -- | Catches any expection thrown by a CGI action, and uses the given  --   exception handler if an exception is thrown.-catchCGI :: CGI a -> (SomeException -> CGI a) -> CGI a-catchCGI c h = tryCGI c >>= either h return+catchCGI :: (MonadCGI m, MonadCatchIO m) => m a -> (SomeException -> m a) -> m a+catchCGI = catch  -- | Catches any exception thrown by an CGI action, and returns either --   the exception, or if no exception was raised, the result of the action.-tryCGI :: CGI a -> CGI (Either SomeException a)-tryCGI (CGIT c) = CGIT (ReaderT (\r -> WriterT (f (runWriterT (runReaderT c r)))))-    where-      f = liftM (either (\ex -> (Left ex,mempty)) (\(a,w) -> (Right a,w))) . try+tryCGI :: (MonadCGI m, MonadCatchIO m) => m a -> m (Either SomeException a)+tryCGI = try  {-# DEPRECATED handleExceptionCGI "Use catchCGI instead." #-} -- | Deprecated version of 'catchCGI'. Use 'catchCGI' instead.-handleExceptionCGI :: CGI a -> (SomeException -> CGI a) -> CGI a+handleExceptionCGI :: (MonadCGI m, MonadCatchIO m) => m a -> (SomeException -> m a) -> m a handleExceptionCGI = catchCGI
Network/CGI/Multipart.hs view
@@ -7,7 +7,7 @@ --                (c) Bjorn Bringert 2005-2006 -- License     :  BSD-style ----- Maintainer  :  Anders Kaseorg <andersk@mit.edu>+-- Maintainer  :  bjorn@bringert.net -- Stability   :  experimental -- Portability :  non-portable --
Network/CGI/Protocol.hs view
@@ -4,7 +4,7 @@ -- Copyright   :  (c) Bjorn Bringert 2006 -- License     :  BSD-style ----- Maintainer  :  Anders Kaseorg <andersk@mit.edu>+-- Maintainer  :  bjorn@bringert.net -- Stability   :  experimental -- Portability :  non-portable --@@ -39,7 +39,7 @@ import Data.Maybe (fromMaybe, listToMaybe, isJust) import Network.URI (unEscapeString,escapeURIString,isUnescapedInURI) import System.Environment (getEnvironment)-import System.IO (Handle, hPutStrLn, stderr, hFlush, hSetBinaryMode)+import System.IO (Handle, hPutStrLn, stderr, hFlush)  import qualified Data.ByteString.Lazy.Char8 as BS import Data.ByteString.Lazy.Char8 (ByteString)@@ -104,8 +104,7 @@         -> (CGIRequest -> m (Headers, CGIResult)) -- ^ CGI action         -> m () hRunCGI env hin hout f = -    do liftIO $ hSetBinaryMode hin True-       inp <- liftIO $ BS.hGetContents hin+    do inp <- liftIO $ BS.hGetContents hin        outp <- runCGIEnvFPS env inp f        liftIO $ BS.hPut hout outp        liftIO $ hFlush hout
cgi.cabal view
@@ -1,5 +1,5 @@ Name: cgi-Version: 3001.1.7.5+Version: 3001.1.8 Copyright: Bjorn Bringert, Andy Gill, Anders Kaseorg, Ian Lynagh,             Erik Meijer, Sven Panne, Jeremy Shaw Category: Network@@ -16,7 +16,6 @@  Flag split-base Flag bytestring-in-base-Flag extensible-exceptions-in-base  Library   Exposed-Modules:@@ -29,16 +28,16 @@     Network.CGI.Accept,     Network.CGI.Multipart,     Network.CGI.Header-  Extensions:-    CPP,-    MultiParamTypeClasses+  Extensions: MultiParamTypeClasses   ghc-options: -Wall    Build-depends:     network >= 2.0,     parsec >= 2.0,     mtl >= 1.0,-    xhtml >= 3000.0.0+    MonadCatchIO-mtl,+    xhtml >= 3000.0.0,+    extensible-exceptions   If flag(split-base)     Build-depends: base >= 3 && < 5, old-time, old-locale, containers   Else@@ -47,10 +46,6 @@     Build-depends: base >= 2 && < 3   Else     Build-depends: base < 2 || < 5, bytestring-  If flag(extensible-exceptions-in-base)-    Build-depends: base >= 4-  Else-    Build-depends: base < 4, extensible-exceptions  --Executable:     printinput --Main-Is:        printinput.hs