{-# LANGUAGE CPP #-} #if __GLASGOW_HASKELL__ >= 701 {-# LANGUAGE Trustworthy #-} #endif -- -- | -- Module : System.Environment.UTF8 -- Copyright : (c) Eric Mertens 2009 -- License : BSD3-style (see LICENSE) -- -- Maintainer: emertens@galois.com -- Stability : experimental -- Portability : portable -- -- Support for UTF-8 based environment manipulation -- module System.Environment.UTF8 (getArgs, getProgName, getEnv, withArgs, withProgName, getEnvironment) where import Codec.Binary.UTF8.String (decodeString) import qualified System.Environment as Sys getArgs :: IO [String] getArgs = map decodeString `fmap` Sys.getArgs getProgName :: IO String getProgName = decodeString `fmap` Sys.getProgName getEnv :: String -> IO String getEnv x = decodeString `fmap` Sys.getEnv x withArgs :: [String] -> IO a -> IO a withArgs = Sys.withArgs withProgName :: String -> IO a -> IO a withProgName = Sys.withProgName getEnvironment :: IO [(String,String)] getEnvironment = map f `fmap` Sys.getEnvironment where f (a,b) = (decodeString a, decodeString b)