getArgs, -- :: IO [String]
getProgName, -- :: IO String
getEnv, -- :: String -> IO String
-#ifdef __GLASGOW_HASKELL__
+#ifndef __NHC__
withArgs,
withProgName,
#endif
) where
import Prelude
-#ifndef __NHC__
-import Control.Exception ( bracket )
-#endif
#ifdef __GLASGOW_HASKELL__
import Foreign
import Foreign.C
+import Control.Exception ( bracket )
import Control.Monad
import GHC.IOBase
+#include "config.h"
#endif
#ifdef __HUGS__
-- ---------------------------------------------------------------------------
-- getArgs, getProgName, getEnv
--- Computation `getArgs' returns a list of the program's command
+-- | Computation 'getArgs' returns a list of the program's command
-- line arguments (not including the program name).
#ifdef __GLASGOW_HASKELL__
isPathSeparator _ = False
--- Computation `getEnv var' returns the value
--- of the environment variable {\em var}.
-
--- This computation may fail with
--- NoSuchThing: The environment variable does not exist.
+-- | Computation 'getEnv' @var@ returns the value
+-- of the environment variable @var@.
+--
+-- This computation may fail with:
+--
+-- * 'System.IO.Error.isDoesNotExistError' if the environment variable
+-- does not exist.
getEnv :: String -> IO String
getEnv name =
c_getenv :: CString -> IO (Ptr CChar)
{-|
-@withArgs args act@ - while executing action @act@, have 'System.getArgs'
-return @args@ (GHC only).
+'withArgs' @args act@ - while executing action @act@, have 'getArgs'
+return @args@.
-}
withArgs :: [String] -> IO a -> IO a
withArgs xs act = do
withArgv (p:xs) act
{-|
-@withProgName name act@ - while executing action @act@,
-have 'System.getProgName' return @name@ (GHC only).
+'withProgName' @name act@ - while executing action @act@,
+have 'getProgName' return @name@.
-}
withProgName :: String -> IO a -> IO a
withProgName nm act = do