[commit: Cabal] master: Fix base 4 exceptions in #ifdef WIN32 code section (6232e0f)
Ian Lynagh
igloo at earth.li
Fri Jun 24 02:04:41 CEST 2011
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 <duncan at haskell.org>
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
More information about the Cvs-libraries
mailing list