diff options
Diffstat (limited to 'extra/fltk1/scandir_posix.patch')
-rw-r--r-- | extra/fltk1/scandir_posix.patch | 56 |
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)) |