diff options
Diffstat (limited to 'm4/closedir.m4')
-rw-r--r-- | m4/closedir.m4 | 33 |
1 files changed, 18 insertions, 15 deletions
diff --git a/m4/closedir.m4 b/m4/closedir.m4 index 9c15354c3d..7e702def25 100644 --- a/m4/closedir.m4 +++ b/m4/closedir.m4 @@ -1,4 +1,4 @@ -# closedir.m4 serial 6 +# closedir.m4 serial 7 dnl Copyright (C) 2011-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -12,20 +12,23 @@ AC_DEFUN([gl_FUNC_CLOSEDIR], AC_CHECK_FUNCS([closedir]) if test $ac_cv_func_closedir = no; then HAVE_CLOSEDIR=0 - fi - dnl Replace closedir() for supporting the gnulib-defined fchdir() function, - dnl to keep fchdir's bookkeeping up-to-date. - m4_ifdef([gl_FUNC_FCHDIR], [ - gl_TEST_FCHDIR - if test $HAVE_FCHDIR = 0; then - if test $HAVE_CLOSEDIR = 1; then + else + dnl Replace closedir() on native Windows, to support fdopendir(). + AC_REQUIRE([gl_DIRENT_DIR]) + if test $DIR_HAS_FD_MEMBER = 0; then + REPLACE_CLOSEDIR=1 + fi + dnl Replace closedir() for supporting the gnulib-defined dirfd() function. + case $host_os in + os2*) REPLACE_CLOSEDIR=1 ;; + esac + dnl Replace closedir() for supporting the gnulib-defined fchdir() function, + dnl to keep fchdir's bookkeeping up-to-date. + m4_ifdef([gl_FUNC_FCHDIR], [ + gl_TEST_FCHDIR + if test $HAVE_FCHDIR = 0; then REPLACE_CLOSEDIR=1 fi - fi - ]) - dnl Replace closedir() for supporting the gnulib-defined dirfd() function. - case $host_os,$HAVE_CLOSEDIR in - os2*,1) - REPLACE_CLOSEDIR=1;; - esac + ]) + fi ]) |