Signed-off-by: Felipe Contreras <[email protected]>
---
 preload/gen-interface.pl |    8 ++++++++
 preload/generate.py      |    4 ++--
 preload/interface.master |    4 ++--
 3 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/preload/gen-interface.pl b/preload/gen-interface.pl
index 58e109f..d60ba51 100755
--- a/preload/gen-interface.pl
+++ b/preload/gen-interface.pl
@@ -847,6 +847,14 @@ my $export_h_buffer =
 
 #include \"mapping.h\"
 
+#ifdef PROPER_DIRENT
+typedef const struct dirent *scandir_arg_t;
+typedef const struct dirent64 *scandir64_arg_t;
+#else
+typedef const void scandir_arg_t;
+typedef const void scandir64_arg_t;
+#endif
+
 ";
 
 # Handle "WRAP" and "GATE" commands.
diff --git a/preload/generate.py b/preload/generate.py
index badb307..2d3f3ce 100644
--- a/preload/generate.py
+++ b/preload/generate.py
@@ -164,8 +164,8 @@ W('int removexattr(const char *path, const char *name)', 
b_map("path"))
 W('int rename(const char *oldpath, const char *newpath)', b_map("oldpath"), 
b_map("newpath"))
 W('int revoke(const char *file)', b_map("file"))
 W('int rmdir(const char *pathname)', b_map("pathname"))
-W('int scandir(const char *dir, struct dirent ***namelist, int(*filter)(const 
struct dirent *), int(*compar)(const void *, const void *))', b_map("dir"), 
argnames=['dir','namelist','filter','compar'])
-W('int scandir64(const char *dir, struct dirent64 ***namelist, 
int(*filter)(const struct dirent64 *), int(*compar)(const void *, const void 
*))', b_map("dir"),argnames=['dir','namelist','filter','compar'])
+W('int scandir(const char *dir, struct dirent ***namelist, int(*filter)(const 
struct dirent *), int(*compar)(scandir_arg_t *, scandir_arg_t *))', 
b_map("dir"), argnames=['dir','namelist','filter','compar'])
+W('int scandir64(const char *dir, struct dirent64 ***namelist, 
int(*filter)(const struct dirent64 *), int(*compar)(scandir64_arg_t *, 
scandir64_arg_t *))', 
b_map("dir"),argnames=['dir','namelist','filter','compar'])
 W('int setxattr(const char *path, const char *name, const void *value, size_t 
size, int flags)', b_map("path"))
 W('int stat(const char *file_name, struct stat *buf)', b_map("file_name"))
 W('int stat64(const char *file_name, struct stat64 *buf)', b_map("file_name"))
diff --git a/preload/interface.master b/preload/interface.master
index 25932b0..b777ae0 100644
--- a/preload/interface.master
+++ b/preload/interface.master
@@ -412,7 +412,7 @@ WRAP: int rmdir(const char *pathname) : \
 #ifdef HAVE_LINUX_SCANDIR
 WRAP: int scandir(const char *dir, struct dirent ***namelist, \
        int(*filter)(const struct dirent *), \
-       int(*compar)(const void *, const void *)) : \
+       int(*compar)(scandir_arg_t *, scandir_arg_t *)) : \
        map(dir)
 #endif
 #ifdef HAVE_OSX_SCANDIR
@@ -425,7 +425,7 @@ WRAP: int scandir(const char *dirname, struct dirent 
***namelist, \
 #ifdef HAVE_SCANDIR64
 WRAP: int scandir64(const char *dir, struct dirent64 ***namelist, \
        int(*filter)(const struct dirent64 *), \
-       int(*compar)(const void *, const void *)) : \
+       int(*compar)(scandir64_arg_t *, scandir64_arg_t *)) : \
        map(dir)
 #endif
 #ifdef HAVE_SETXATTR
-- 
1.6.5.rc1

_______________________________________________
Scratchbox-devel mailing list
[email protected]
http://lists.scratchbox.org/cgi-bin/mailman/listinfo/scratchbox-devel

Reply via email to