[project @ 2003-07-22 09:55:05 by ross]
authorross <unknown>
Tue, 22 Jul 2003 09:55:06 +0000 (09:55 +0000)
committerross <unknown>
Tue, 22 Jul 2003 09:55:06 +0000 (09:55 +0000)
jiggle to make System.Posix.Directory work for Hugs

System/Directory.hs
System/Posix/Internals.hs

index 17672c5..abccc68 100644 (file)
@@ -618,18 +618,6 @@ unionCMode     = (+)
 foreign import ccall unsafe "__hscore_path_max"
   path_max :: Int
 
-foreign import ccall unsafe "__hscore_readdir"
-  readdir  :: Ptr CDir -> Ptr (Ptr CDirent) -> IO CInt
-
-foreign import ccall unsafe "__hscore_free_dirent"
-  freeDirEnt  :: Ptr CDirent -> IO ()
-
-foreign import ccall unsafe "__hscore_end_of_dir"
-  end_of_dir :: CInt
-
-foreign import ccall unsafe "__hscore_d_name"
-  d_name :: Ptr CDirent -> IO CString
-
 foreign import ccall unsafe "__hscore_R_OK" r_OK :: CMode
 foreign import ccall unsafe "__hscore_W_OK" w_OK :: CMode
 foreign import ccall unsafe "__hscore_X_OK" x_OK :: CMode
index 575ec66..931aec2 100644 (file)
@@ -44,7 +44,7 @@ import System.IO
 #ifdef __HUGS__
 import Hugs.Prelude (IOException(..), IOErrorType(..))
 
-{-# CBITS PrelIOUtils.c #-}
+{-# CBITS PrelIOUtils.c dirUtils.c #-}
 #endif
 
 -- ---------------------------------------------------------------------------
@@ -438,6 +438,19 @@ foreign import ccall unsafe "HsBase.h _setmode"
 --      printf( "'stdin' successfully changed to binary mode\n" );
 #endif
 
+-- traversing directories
+foreign import ccall unsafe "dirUtils.h __hscore_readdir"
+  readdir  :: Ptr CDir -> Ptr (Ptr CDirent) -> IO CInt
+foreign import ccall unsafe "HsBase.h __hscore_free_dirent"
+  freeDirEnt  :: Ptr CDirent -> IO ()
+foreign import ccall unsafe "HsBase.h __hscore_end_of_dir"
+  end_of_dir :: CInt
+foreign import ccall unsafe "HsBase.h __hscore_d_name"
+  d_name :: Ptr CDirent -> IO CString
+
 -- POSIX flags only:
 foreign import ccall unsafe "HsBase.h __hscore_o_rdonly" o_RDONLY :: CInt
 foreign import ccall unsafe "HsBase.h __hscore_o_wronly" o_WRONLY :: CInt