Repository : ssh://darcs.haskell.org//srv/darcs/packages/Cabal On branch : master
http://hackage.haskell.org/trac/ghc/changeset/6232e0fb1a2ebed118ac5770ff1d67461e968973 >--------------------------------------------------------------- commit 6232e0fb1a2ebed118ac5770ff1d67461e968973 Author: Duncan Coutts <[email protected]> Date: Tue Nov 10 11:24:15 2009 +0000 Fix base 4 exceptions in #ifdef WIN32 code section >--------------------------------------------------------------- cabal-install/Distribution/Client/HttpUtils.hs | 6 ++++-- cabal-install/Distribution/Compat/Exception.hs | 4 ++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/cabal-install/Distribution/Client/HttpUtils.hs b/cabal-install/Distribution/Client/HttpUtils.hs index 5863c71..7d1d2ff 100644 --- a/cabal-install/Distribution/Client/HttpUtils.hs +++ b/cabal-install/Distribution/Client/HttpUtils.hs @@ -24,7 +24,9 @@ import System.Win32.Registry ( hKEY_CURRENT_USER, regOpenKey, regCloseKey , regQueryValue, regQueryValueEx ) import Control.Exception - ( handle, bracket ) + ( bracket ) +import Distribution.Compat.Exception + ( handleIO ) import Foreign ( toBool, Storable(peek, sizeOf), castPtr, alloca ) #endif @@ -46,7 +48,7 @@ import qualified System.FilePath.Posix as FilePath.Posix proxyString, envProxyString, registryProxyString :: IO (Maybe String) #ifdef WIN32 -- read proxy settings from the windows registry -registryProxyString = handle (\_ -> return Nothing) $ +registryProxyString = handleIO (\_ -> return Nothing) $ bracket (regOpenKey hive path) regCloseKey $ \hkey -> do enable <- fmap toBool $ regQueryValueDWORD hkey "ProxyEnable" if enable diff --git a/cabal-install/Distribution/Compat/Exception.hs b/cabal-install/Distribution/Compat/Exception.hs index dab4efd..2baafb5 100644 --- a/cabal-install/Distribution/Compat/Exception.hs +++ b/cabal-install/Distribution/Compat/Exception.hs @@ -7,6 +7,7 @@ module Distribution.Compat.Exception ( SomeException, onException, catchIO, + handleIO, catchExit, throwIOIO ) where @@ -42,6 +43,9 @@ catchIO = Exception.catch catchIO = Exception.catchJust Exception.ioErrors #endif +handleIO :: (Exception.IOException -> IO a) -> IO a -> IO a +handleIO = flip catchIO + catchExit :: IO a -> (ExitCode -> IO a) -> IO a #if MIN_VERSION_base(4,0,0) catchExit = Exception.catch _______________________________________________ Cvs-libraries mailing list [email protected] http://www.haskell.org/mailman/listinfo/cvs-libraries
