summaryrefslogtreecommitdiff
path: root/Utility/Env.hs
diff options
context:
space:
mode:
authorGravatar Joey Hess <id@joeyh.name>2013-05-12 12:24:46 -0500
committerGravatar Joey Hess <id@joeyh.name>2013-05-12 12:24:46 -0500
commiteab42d8d8232ead13c7a2d21e1f703949d06fe14 (patch)
treef6ab93d0cd9f22843c537a066cb1828533b42ea9 /Utility/Env.hs
parente8fe98be103321a9ecfff9eae69818673c75a02a (diff)
fix windows build
Diffstat (limited to 'Utility/Env.hs')
-rwxr-xr-x[-rw-r--r--]Utility/Env.hs18
1 files changed, 9 insertions, 9 deletions
diff --git a/Utility/Env.hs b/Utility/Env.hs
index e1ab52415..cb738732f 100644..100755
--- a/Utility/Env.hs
+++ b/Utility/Env.hs
@@ -9,31 +9,31 @@
module Utility.Env where
-#ifdef __WINDOWS__
+#ifdef mingw32_HOST_OS
import Utility.Exception
+import Control.Applicative
+import Data.Maybe
import qualified System.Environment as E
#else
import qualified System.Posix.Env as PE
#endif
-{- Posix getEnv is faster than the one in System.Environment,
- - so use when available. -}
getEnv :: String -> IO (Maybe String)
-#ifndef __WINDOWS__
+#ifndef mingw32_HOST_OS
getEnv = PE.getEnv
#else
getEnv = catchMaybeIO . E.getEnv
#endif
getEnvDefault :: String -> String -> IO String
-#ifndef __WINDOWS__
+#ifndef mingw32_HOST_OS
getEnvDefault = PE.getEnvDefault
#else
getEnvDefault var fallback = fromMaybe fallback <$> getEnv var
#endif
getEnvironment :: IO [(String, String)]
-#ifndef __WINDOWS__
+#ifndef mingw32_HOST_OS
getEnvironment = PE.getEnvironment
#else
getEnvironment = E.getEnvironment
@@ -44,7 +44,7 @@ getEnvironment = E.getEnvironment
- There is, apparently, no way to do this in Windows. Instead,
- environment varuables must be provided when running a new process. -}
setEnv :: String -> String -> Bool -> IO Bool
-#ifndef __WINDOWS__
+#ifndef mingw32_HOST_OS
setEnv var val overwrite = do
PE.setEnv var val overwrite
return True
@@ -54,10 +54,10 @@ setEnv _ _ _ = return False
{- Returns True if it could successfully unset the environment variable. -}
unsetEnv :: String -> IO Bool
-#ifndef __WINDOWS__
+#ifndef mingw32_HOST_OS
unsetEnv var = do
PE.unsetEnv var
return True
#else
-unsetEnv _ _ _ = return False
+unsetEnv _ = return False
#endif