summaryrefslogtreecommitdiffstats
path: root/extra/fltk1/scandir_posix.patch
diff options
context:
space:
mode:
Diffstat (limited to 'extra/fltk1/scandir_posix.patch')
-rw-r--r--extra/fltk1/scandir_posix.patch56
1 files changed, 56 insertions, 0 deletions
diff --git a/extra/fltk1/scandir_posix.patch b/extra/fltk1/scandir_posix.patch
new file mode 100644
index 000000000..1ac986e35
--- /dev/null
+++ b/extra/fltk1/scandir_posix.patch
@@ -0,0 +1,56 @@
+Index: configh.in
+===================================================================
+--- configh.in (revision 6827)
++++ configh.in (working copy)
+@@ -182,6 +182,7 @@
+ #undef HAVE_SYS_DIR_H
+ #undef HAVE_NDIR_H
+ #undef HAVE_SCANDIR
++#undef HAVE_SCANDIR_POSIX
+
+ /* If not set fltk will define it's own versions of these string
+ functions. By including the fltk/string.h header file you will
+Index: src/filename_list.cxx
+===================================================================
+--- src/filename_list.cxx (revision 6826)
++++ src/filename_list.cxx (working copy)
+@@ -62,6 +62,9 @@
+ // This version is when we define our own scandir (WIN32 and perhaps
+ // some Unix systems):
+ int n = scandir(d, list, 0, sort);
++#elif defined(HAVE_SCANDIR_POSIX)
++ // POSIX (2008) defines the comparison function like this:
++ int n = scandir(d, list, 0, (int(*)(const dirent **, const dirent **))sort);
+ #elif defined(__linux) || defined (__FreeBSD__) || defined (__NetBSD__)
+ int n = scandir(d, list, 0, (int(*)(const void*,const void*))sort);
+ #elif defined(__hpux) || defined(__CYGWIN__)
+Index: configure.in
+===================================================================
+--- configure.in (revision 6826)
++++ configure.in (working copy)
+@@ -333,6 +333,25 @@
+ AC_DEFINE(HAVE_SCANDIR)
+ fi])
+
++dnl Do we have the POSIX compatible scandir() prototype?
++AC_CACHE_CHECK([whether we have the POSIX compatible scandir() prototype],
++ ac_cv_cxx_scandir_posix,[
++ AC_LANG_SAVE
++ AC_LANG_CPLUSPLUS
++ AC_TRY_COMPILE([
++ # include <dirent.h>
++ int func (const char *d, dirent ***list, void *sort) {
++ int n = scandir(d, list, 0, (int(*)(const dirent **, const dirent **))sort);
++ }
++ ],[
++ ], ac_cv_cxx_scandir_posix=yes, ac_cv_cxx_scandir_posix=no)
++ AC_LANG_RESTORE
++ ])
++
++if test "$ac_cv_cxx_scandir_posix" = yes; then
++ AC_DEFINE(HAVE_SCANDIR_POSIX)
++fi
++
+ dnl String headers and functions...
+ AC_CHECK_HEADER(string.h,AC_DEFINE(HAVE_STRING_H))
+ AC_CHECK_HEADER(strings.h,AC_DEFINE(HAVE_STRINGS_H))