aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Herbert Valerio Riedel <hvr@gnu.org>2016-01-30 17:16:28 +0100
committerGravatar Herbert Valerio Riedel <hvr@gnu.org>2016-01-30 17:16:28 +0100
commitc41080e2f7802e269a12f6511f1846f4740e5300 (patch)
treed5e94a9da62a1b46ed376b08653eaf769fb1c44a
parent5db88aa16bdda504f4bc00fadcd2e27d55c2f63e (diff)
Replace `__hsunix_opendir` wrapper with CApiFFI
-rw-r--r--System/Posix/Directory.hsc3
-rw-r--r--System/Posix/Directory/ByteString.hsc3
-rw-r--r--cbits/HsUnix.c6
-rw-r--r--include/HsUnix.h3
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 *);