From c41080e2f7802e269a12f6511f1846f4740e5300 Mon Sep 17 00:00:00 2001 From: Herbert Valerio Riedel Date: Sat, 30 Jan 2016 17:16:28 +0100 Subject: Replace `__hsunix_opendir` wrapper with CApiFFI --- System/Posix/Directory.hsc | 3 ++- System/Posix/Directory/ByteString.hsc | 3 ++- cbits/HsUnix.c | 6 ------ include/HsUnix.h | 3 --- 4 files changed, 4 insertions(+), 11 deletions(-) diff --git a/System/Posix/Directory.hsc b/System/Posix/Directory.hsc index 7518b4b..7a3d52a 100644 --- a/System/Posix/Directory.hsc +++ b/System/Posix/Directory.hsc @@ -1,3 +1,4 @@ +{-# LANGUAGE CApiFFI #-} {-# LANGUAGE NondecreasingIndentation #-} #ifdef __GLASGOW_HASKELL__ {-# LANGUAGE Trustworthy #-} @@ -73,7 +74,7 @@ openDirStream name = dirp <- throwErrnoPathIfNullRetry "openDirStream" name $ c_opendir s return (DirStream dirp) -foreign import ccall unsafe "__hsunix_opendir" +foreign import capi unsafe "HsUnix.h opendir" c_opendir :: CString -> IO (Ptr CDir) -- | @readDirStream dp@ calls @readdir@ to obtain the diff --git a/System/Posix/Directory/ByteString.hsc b/System/Posix/Directory/ByteString.hsc index b1db079..b67ad46 100644 --- a/System/Posix/Directory/ByteString.hsc +++ b/System/Posix/Directory/ByteString.hsc @@ -1,3 +1,4 @@ +{-# LANGUAGE CApiFFI #-} {-# LANGUAGE NondecreasingIndentation #-} #ifdef __GLASGOW_HASKELL__ {-# LANGUAGE Trustworthy #-} @@ -74,7 +75,7 @@ openDirStream name = dirp <- throwErrnoPathIfNullRetry "openDirStream" name $ c_opendir s return (DirStream dirp) -foreign import ccall unsafe "__hsunix_opendir" +foreign import capi unsafe "HsUnix.h opendir" c_opendir :: CString -> IO (Ptr CDir) -- | @readDirStream dp@ calls @readdir@ to obtain the diff --git a/cbits/HsUnix.c b/cbits/HsUnix.c index 13ca64b..039203e 100644 --- a/cbits/HsUnix.c +++ b/cbits/HsUnix.c @@ -76,12 +76,6 @@ int __hsunix_nanosleep(const struct timespec *rqtp, struct timespec *rmtp) } #endif -// opendir is a macro on some platforms, so we need a wrapper: -DIR *__hsunix_opendir(const char *filename) -{ - return opendir(filename); -} - // time is a macro on some platforms, so we need a wrapper: time_t __hsunix_time(time_t *tloc) { diff --git a/include/HsUnix.h b/include/HsUnix.h index cfdddb4..72613b6 100644 --- a/include/HsUnix.h +++ b/include/HsUnix.h @@ -143,9 +143,6 @@ int __hsunix_getpwuid_r(uid_t, struct passwd *, char *, size_t, int __hsunix_nanosleep(const struct timespec *, struct timespec *); #endif -// opendir is a macro on some platforms, so we need a wrapper: -DIR *__hsunix_opendir(const char *); - // time is a macro on some platforms, so we need a wrapper: time_t __hsunix_time(time_t *); -- cgit v1.2.3