aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Herbert Valerio Riedel <hvr@gnu.org>2016-01-30 18:23:15 +0100
committerGravatar Herbert Valerio Riedel <hvr@gnu.org>2016-01-30 18:23:15 +0100
commit03783d2758d2f35c01a8570da30f508c3b9e019b (patch)
tree722cb383471e7451516823849b012f9dc6b5ecdd
parentcca358b86edc72bcb641fca362960917783b599e (diff)
Replace `__hsunix_getpwent` wrapper with CApiFFI
-rw-r--r--System/Posix/User.hsc6
-rw-r--r--cbits/HsUnix.c8
-rw-r--r--include/HsUnix.h5
3 files changed, 3 insertions, 16 deletions
diff --git a/System/Posix/User.hsc b/System/Posix/User.hsc
index d1a794a..3e11389 100644
--- a/System/Posix/User.hsc
+++ b/System/Posix/User.hsc
@@ -378,11 +378,11 @@ getAllUserEntries =
else do thisentry <- unpackUserEntry ppw
worker (thisentry : accum)
-foreign import ccall unsafe "__hsunix_getpwent"
+foreign import capi unsafe "HsUnix.h getpwent"
c_getpwent :: IO (Ptr CPasswd)
-foreign import ccall unsafe "setpwent"
+foreign import capi unsafe "HsUnix.h setpwent"
c_setpwent :: IO ()
-foreign import ccall unsafe "endpwent"
+foreign import capi unsafe "HsUnix.h endpwent"
c_endpwent :: IO ()
#else
getAllUserEntries = error "System.Posix.User.getAllUserEntries: not supported"
diff --git a/cbits/HsUnix.c b/cbits/HsUnix.c
index dc42098..fb63b45 100644
--- a/cbits/HsUnix.c
+++ b/cbits/HsUnix.c
@@ -16,14 +16,6 @@ void *__hsunix_rtldNext (void) {return RTLD_NEXT;}
void *__hsunix_rtldDefault (void) {return RTLD_DEFAULT;}
#endif
-#ifdef HAVE_GETPWENT
-// getpwent is a macro on some platforms, so we need a wrapper:
-struct passwd *__hsunix_getpwent(void)
-{
- return getpwent();
-}
-#endif
-
#if HAVE_GETPWNAM_R
// getpwnam_r is a macro on some platforms, so we need a wrapper:
int __hsunix_getpwnam_r(const char *name, struct passwd *pw, char *buffer,
diff --git a/include/HsUnix.h b/include/HsUnix.h
index 87ac3e6..8b468b7 100644
--- a/include/HsUnix.h
+++ b/include/HsUnix.h
@@ -113,11 +113,6 @@ fall back to O_FSYNC, which should be the same */
# define WCOREDUMP(s) 0
#endif
-#ifdef HAVE_GETPWENT
-// getpwent is a macro on some platforms, so we need a wrapper:
-struct passwd *__hsunix_getpwent(void);
-#endif
-
#if HAVE_GETPWNAM_R
// getpwnam_r is a macro on some platforms, so we need a wrapper:
int __hsunix_getpwnam_r(const char *, struct passwd *, char *, size_t,