[project @ 2002-07-15 16:02:11 by simonmar]
[ghc-base.git] / System / Environment.hs
index 117b7db..c20d7d7 100644 (file)
@@ -2,21 +2,19 @@
 -- |
 -- Module      :  System.Environment
 -- Copyright   :  (c) The University of Glasgow 2001
--- License     :  BSD-style (see the file libraries/core/LICENSE)
+-- License     :  BSD-style (see the file libraries/base/LICENSE)
 -- 
 -- Maintainer  :  libraries@haskell.org
 -- Stability   :  provisional
 -- Portability :  portable
 --
--- $Id: Environment.hs,v 1.6 2002/04/24 16:31:45 simonmar Exp $
---
 -- Miscellaneous information about the system environment.
 --
 -----------------------------------------------------------------------------
 
 module System.Environment
     ( 
-    , getArgs      -- :: IO [String]
+      getArgs      -- :: IO [String]
     , getProgName   -- :: IO String
     , getEnv        -- :: String -> IO String
   ) where
@@ -50,9 +48,16 @@ getArgs =
 foreign import ccall unsafe "getProgArgv"
   getProgArgv :: Ptr CInt -> Ptr (Ptr CString) -> IO ()
 
--- Computation `getProgName' returns the name of the program
--- as it was invoked.
+{-|
+Computation 'getProgName' returns the name of the program as it was
+invoked.
 
+However, this is hard-to-impossible to implement on some non-Unix
+OSes, so instead, for maximum portability, we just return the leafname
+of the program as invoked. Even then there are some differences
+between platforms: on Windows, for example, a program invoked as foo
+is probably really @FOO.EXE@, and that is what 'getProgName' will return.
+-}
 getProgName :: IO String
 getProgName = 
   alloca $ \ p_argc ->