From: sof Date: Fri, 7 Feb 2003 22:14:32 +0000 (+0000) Subject: [project @ 2003-02-07 22:14:32 by sof] X-Git-Tag: Approx_11550_changesets_converted~1190 X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=01591a2866af83b90b19aa01ce44cc128bad8615;p=ghc-hetmet.git [project @ 2003-02-07 22:14:32 by sof] Rip out rawSystem impl -- it only happened to work by accident. Simpler to just assume that SystemExts supplies it instead, which it has for a number of versions now. --- diff --git a/ghc/compiler/main/SysTools.lhs b/ghc/compiler/main/SysTools.lhs index a4f96f7..9c7ddce 100644 --- a/ghc/compiler/main/SysTools.lhs +++ b/ghc/compiler/main/SysTools.lhs @@ -107,17 +107,7 @@ import CString ( CString, peekCString ) #if __GLASGOW_HASKELL__ > 504 import System.Cmd ( rawSystem ) #else - - -- For Win32 and GHC <= 504 - -- rawSystem is defined in this module - -- We just need an import -#if __GLASGOW_HASKELL__ < 503 -import PrelIOBase( ioException, IOException(..), IOErrorType(InvalidArgument) ) -#else -import GHC.IOBase( ioException, IOException(..), IOErrorType(InvalidArgument) ) -#endif -import CError ( throwErrnoIfMinus1 ) -import CString ( withCString ) +import SystemExts ( rawSystem ) #endif #else /* Not Win32 */ @@ -428,7 +418,7 @@ initSysTools minusB_args } #if defined(mingw32_HOST_OS) -foreign import stdcall "GetTempPathA" unsafe getTempPath :: Int -> CString -> IO Int32 +foreign import stdcall unsafe "GetTempPathA" getTempPath :: Int -> CString -> IO Int32 #endif \end{code} @@ -853,14 +843,14 @@ getExecDir = do let len = (2048::Int) -- plenty, PATH_MAX is 512 under Win32. return (Just (reverse (dropList "/bin/ghc.exe" (reverse (unDosifyPath s))))) -foreign import stdcall "GetModuleFileNameA" unsafe +foreign import stdcall unsafe "GetModuleFileNameA" getModuleFileName :: Ptr () -> CString -> Int -> IO Int32 #else getExecDir :: IO (Maybe String) = do return Nothing #endif #ifdef mingw32_HOST_OS -foreign import "_getpid" unsafe getProcessID :: IO Int -- relies on Int == Int32 on Windows +foreign import ccall unsafe "_getpid" getProcessID :: IO Int -- relies on Int == Int32 on Windows #elif __GLASGOW_HASKELL__ > 504 getProcessID :: IO Int getProcessID = GHC.Posix.c_getpid >>= return . fromIntegral @@ -878,25 +868,3 @@ quote s = s #endif \end{code} - -This next blob is in System.Cmd after 5.04, but until then it needs -to be here (for Win32 only). - -\begin{code} -#if defined(mingw32_HOST_OS) -#if __GLASGOW_HASKELL__ <= 504 - -rawSystem :: String -> IO ExitCode -rawSystem "" = ioException (IOError Nothing InvalidArgument "rawSystem" "null command" Nothing) -rawSystem cmd = - withCString cmd $ \s -> do - status <- throwErrnoIfMinus1 "rawSystem" (primRawSystem s) - case status of - 0 -> return ExitSuccess - n -> return (ExitFailure n) - -foreign import ccall "rawSystemCmd" unsafe primRawSystem :: CString -> IO Int - -#endif -#endif -\end{code}