Fix warnings in the unix package
authorIan Lynagh <igloo@earth.li>
Thu, 21 Aug 2008 12:01:38 +0000 (12:01 +0000)
committerIan Lynagh <igloo@earth.li>
Thu, 21 Aug 2008 12:01:38 +0000 (12:01 +0000)
System/Posix/Directory.hsc
System/Posix/DynamicLinker.hsc
System/Posix/DynamicLinker/Module.hsc
System/Posix/Files.hsc
System/Posix/IO.hsc
System/Posix/Process.hsc
System/Posix/SharedMem.hsc
System/Posix/Signals.hs
System/Posix/Terminal.hsc
System/Posix/Unistd.hsc
System/Posix/User.hsc

index a4bdf6d..45c34b2 100644 (file)
@@ -1,4 +1,5 @@
 {-# LANGUAGE ForeignFunctionInterface #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 -----------------------------------------------------------------------------
 -- |
 -- Module      :  System.Posix.Files
index f43d3d7..1aa897b 100644 (file)
@@ -74,10 +74,10 @@ dlsym source symbol = do
     throwDLErrorIf "dlsym" (== nullFunPtr) $ c_dlsym (packDL source) s
 
 withDL :: String -> [RTLDFlags] -> (DL -> IO a) -> IO a
-withDL mod flags f = bracket (dlopen mod flags) (dlclose) f
+withDL file flags f = bracket (dlopen file flags) (dlclose) f
 
 withDL_ :: String -> [RTLDFlags] -> (DL -> IO a) -> IO ()
-withDL_ mod flags f = withDL mod flags f >> return ()
+withDL_ file flags f = withDL file flags f >> return ()
 
 -- |'undl' obtains the raw handle. You mustn't do something like
 -- @withDL mod flags $ liftM undl >>= \ p -> use p@
@@ -92,4 +92,5 @@ throwDLErrorIf s p f = do
     then dlerror >>= \ err -> ioError (userError ( s ++ ": " ++ err))
     else return r
 
+throwDLErrorIf_ :: String -> (a -> Bool) -> IO a -> IO ()
 throwDLErrorIf_ s p f = throwDLErrorIf s p f >> return ()
index 96a38df..080dad4 100644 (file)
@@ -71,8 +71,8 @@ unModule (Module adr)  = adr
 --
 
 moduleOpen :: String -> [RTLDFlags] -> IO Module
-moduleOpen mod flags = do
-  modPtr <- withCString mod $ \ modAddr -> c_dlopen modAddr (packRTLDFlags flags)
+moduleOpen file flags = do
+  modPtr <- withCString file $ \ modAddr -> c_dlopen modAddr (packRTLDFlags flags)
   if (modPtr == nullPtr)
       then moduleError >>= \ err -> ioError (userError ("dlopen: " ++ err))
       else return $ Module modPtr
@@ -80,12 +80,12 @@ moduleOpen mod flags = do
 -- Gets a symbol pointer from a module (EXPORTED)
 --
 moduleSymbol :: Module -> String -> IO (FunPtr a)
-moduleSymbol mod sym = dlsym (DLHandle (unModule mod)) sym
+moduleSymbol file sym = dlsym (DLHandle (unModule file)) sym
 
 -- Closes a module (EXPORTED)
 -- 
 moduleClose     :: Module -> IO ()
-moduleClose mod  = dlclose (DLHandle (unModule mod))
+moduleClose file  = dlclose (DLHandle (unModule file))
 
 -- Gets a string describing the last module error (EXPORTED)
 -- 
@@ -101,15 +101,15 @@ withModule :: Maybe String
           -> [RTLDFlags]
            -> (Module -> IO a) 
           -> IO a
-withModule dir mod flags p = do
-  let modPath = case dir of
-                  Nothing -> mod
-                 Just p  -> p ++ if ((head (reverse p)) == '/')
-                                       then mod
-                                      else ('/':mod)
-  mod <- moduleOpen modPath flags
-  result <- p mod
-  moduleClose mod
+withModule mdir file flags p = do
+  let modPath = case mdir of
+                  Nothing -> file
+                 Just dir  -> dir ++ if ((head (reverse dir)) == '/')
+                                       then file
+                                      else ('/':file)
+  modu <- moduleOpen modPath flags
+  result <- p modu
+  moduleClose modu
   return result
 
 withModule_ :: Maybe String 
@@ -117,4 +117,4 @@ withModule_ :: Maybe String
            -> [RTLDFlags]
             -> (Module -> IO a) 
            -> IO ()
-withModule_ dir mod flags p = withModule dir mod flags p >>= \ _ -> return ()
+withModule_ dir file flags p = withModule dir file flags p >>= \ _ -> return ()
index bc61255..bb24234 100644 (file)
@@ -1,4 +1,5 @@
 {-# LANGUAGE ForeignFunctionInterface #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 -----------------------------------------------------------------------------
 -- |
 -- Module      :  System.Posix.Files
@@ -242,12 +243,12 @@ setFileCreationMask mask = c_umask mask
 --
 -- Note: calls @access@.
 fileAccess :: FilePath -> Bool -> Bool -> Bool -> IO Bool
-fileAccess name read write exec = access name flags
+fileAccess name readOK writeOK execOK = access name flags
   where
    flags   = read_f .|. write_f .|. exec_f
-   read_f  = if read  then (#const R_OK) else 0
-   write_f = if write then (#const W_OK) else 0
-   exec_f  = if exec  then (#const X_OK) else 0
+   read_f  = if readOK  then (#const R_OK) else 0
+   write_f = if writeOK then (#const W_OK) else 0
+   exec_f  = if execOK  then (#const X_OK) else 0
 
 -- | Checks for the existence of the file.
 --
index d7e07ef..0bee39c 100644 (file)
@@ -1,4 +1,5 @@
 {-# LANGUAGE ForeignFunctionInterface #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 -----------------------------------------------------------------------------
 -- |
 -- Module      :  System.Posix.IO
@@ -154,8 +155,8 @@ openFd :: FilePath
        -> Maybe FileMode -- ^Just x => creates the file with the given modes, Nothing => the file must exist.
        -> OpenFileFlags
        -> IO Fd
-openFd name how maybe_mode (OpenFileFlags append exclusive noctty
-                               nonBlock truncate) = do
+openFd name how maybe_mode (OpenFileFlags appendFlag exclusiveFlag nocttyFlag
+                               nonBlockFlag truncateFlag) = do
    withCString name $ \s -> do
     fd <- throwErrnoPathIfMinus1 "openFd" name (c_open s all_flags mode_w)
     return (Fd fd)
@@ -163,11 +164,11 @@ openFd name how maybe_mode (OpenFileFlags append exclusive noctty
     all_flags  = creat .|. flags .|. open_mode
 
     flags =
-       (if append    then (#const O_APPEND)   else 0) .|.
-       (if exclusive then (#const O_EXCL)     else 0) .|.
-       (if noctty    then (#const O_NOCTTY)   else 0) .|.
-       (if nonBlock  then (#const O_NONBLOCK) else 0) .|.
-       (if truncate  then (#const O_TRUNC)    else 0)
+       (if appendFlag    then (#const O_APPEND)   else 0) .|.
+       (if exclusiveFlag then (#const O_EXCL)     else 0) .|.
+       (if nocttyFlag    then (#const O_NOCTTY)   else 0) .|.
+       (if nonBlockFlag  then (#const O_NONBLOCK) else 0) .|.
+       (if truncateFlag  then (#const O_TRUNC)    else 0)
 
     (creat, mode_w) = case maybe_mode of 
                        Nothing -> (0,0)
@@ -256,7 +257,7 @@ queryFdOption (Fd fd) opt = do
  where
   flag    = case opt of
              CloseOnExec       -> (#const F_GETFD)
-             other             -> (#const F_GETFL)
+             _                 -> (#const F_GETFL)
 
 -- | May throw an exception if this is an invalid descriptor.
 setFdOption :: Fd -> FdOption -> Bool -> IO ()
@@ -269,7 +270,7 @@ setFdOption (Fd fd) opt val = do
  where
   (getflag,setflag)= case opt of
              CloseOnExec       -> ((#const F_GETFD),(#const F_SETFD)) 
-             other             -> ((#const F_GETFL),(#const F_SETFL))
+             _                 -> ((#const F_GETFL),(#const F_SETFL))
   opt_val = fdOption2Int opt
 
 -- -----------------------------------------------------------------------------
index 43cacec..d092454 100644 (file)
@@ -328,9 +328,9 @@ data ProcessStatus = Exited ExitCode
 getProcessStatus :: Bool -> Bool -> ProcessID -> IO (Maybe ProcessStatus)
 getProcessStatus block stopped pid =
   alloca $ \wstatp -> do
-    pid <- throwErrnoIfMinus1Retry "getProcessStatus"
+    pid' <- throwErrnoIfMinus1Retry "getProcessStatus"
                (c_waitpid pid wstatp (waitOptions block stopped))
-    case pid of
+    case pid' of
       0  -> return Nothing
       _  -> do ps <- decipherWaitStatus wstatp
               return (Just ps)
index f0ed4e2..b77705d 100644 (file)
@@ -1,4 +1,5 @@
 {-# LANGUAGE ForeignFunctionInterface #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 
 -----------------------------------------------------------------------------
 -- |
index 89dd12b..e43a16b 100644 (file)
@@ -330,8 +330,8 @@ installHandler int handler maybe_mask = do
       rc <- case handler of
              Default      -> stg_sig_install int STG_SIG_DFL p_sp mask
              Ignore       -> stg_sig_install int STG_SIG_IGN p_sp mask
-             Catch m      -> hinstall m p_sp mask int STG_SIG_HAN
-             CatchOnce m  -> hinstall m p_sp mask int STG_SIG_RST
+             Catch m      -> hinstall m p_sp mask STG_SIG_HAN
+             CatchOnce m  -> hinstall m p_sp mask STG_SIG_RST
 
       case rc of
        STG_SIG_DFL -> return Default
@@ -346,7 +346,7 @@ installHandler int handler maybe_mask = do
        _other ->
           error "internal error: System.Posix.Signals.installHandler"
 
-    hinstall m p_sp mask int reset = do
+    hinstall m p_sp mask reset = do
       sptr <- newStablePtr m
       poke p_sp sptr
       stg_sig_install int reset p_sp mask
index 9e2ff28..6756bd0 100644 (file)
@@ -1,4 +1,5 @@
 {-# LANGUAGE ForeignFunctionInterface #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
 -----------------------------------------------------------------------------
 -- |
 -- Module      :  System.Posix.Terminal
index cb6e35d..13d3c65 100644 (file)
@@ -1,4 +1,5 @@
 {-# LANGUAGE ForeignFunctionInterface #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports -fno-warn-unused-binds #-}
 -----------------------------------------------------------------------------
 -- |
 -- Module      :  System.Posix.Unistd
@@ -138,7 +139,7 @@ nanosleep 0 = return ()
 nanosleep nsecs = do
   allocaBytes (#const sizeof(struct timespec)) $ \pts1 -> do
   allocaBytes (#const sizeof(struct timespec)) $ \pts2 -> do
-     let (tv_sec,tv_nsec) = nsecs `divMod` 1000000000
+     let (tv_sec0, tv_nsec0) = nsecs `divMod` 1000000000
      let 
        loop tv_sec tv_nsec = do
          (#poke struct timespec, tv_sec)  pts1 tv_sec
@@ -149,11 +150,11 @@ nanosleep nsecs = do
             else do errno <- getErrno
                     if errno == eINTR
                        then do
-                           tv_sec  <- (#peek struct timespec, tv_sec)  pts2
-                           tv_nsec <- (#peek struct timespec, tv_nsec) pts2
-                           loop tv_sec tv_nsec
+                           tv_sec'  <- (#peek struct timespec, tv_sec)  pts2
+                           tv_nsec' <- (#peek struct timespec, tv_nsec) pts2
+                           loop tv_sec' tv_nsec'
                        else throwErrno "nanosleep"
-     loop (fromIntegral tv_sec :: CTime) (fromIntegral tv_nsec :: CTime)
+     loop (fromIntegral tv_sec0 :: CTime) (fromIntegral tv_nsec0 :: CTime)
 
 newtype CTimeSpec = CTimeSpec CTimeSpec
 
index 71d3fd2..01079c2 100644 (file)
@@ -50,7 +50,7 @@ import Foreign.C
 import System.Posix.Internals  ( CGroup, CPasswd )
 
 #if !defined(HAVE_GETPWNAM_R) || !defined(HAVE_GETPWUID_R) || defined(HAVE_GETPWENT) || defined(HAVE_GETGRENT)
-import Control.Concurrent.MVar  ( newMVar, withMVar )
+import Control.Concurrent.MVar  ( MVar, newMVar, withMVar )
 #endif
 #ifdef HAVE_GETPWENT
 import Control.Exception
@@ -272,6 +272,7 @@ data UserEntry =
 -- Also, getpwent/setpwent require a global lock since they maintain
 -- an internal file position pointer.
 #if !defined(HAVE_GETPWNAM_R) || !defined(HAVE_GETPWUID_R) || defined(HAVE_GETPWENT) || defined(HAVE_GETGRENT)
+lock :: MVar ()
 lock = unsafePerformIO $ newMVar ()
 {-# NOINLINE lock #-}
 #endif