Blame m4/close.m4

Packit 8f70b4
# close.m4 serial 9
Packit 8f70b4
dnl Copyright (C) 2008-2018 Free Software Foundation, Inc.
Packit 8f70b4
dnl This file is free software; the Free Software Foundation
Packit 8f70b4
dnl gives unlimited permission to copy and/or distribute it,
Packit 8f70b4
dnl with or without modifications, as long as this notice is preserved.
Packit 8f70b4
Packit 8f70b4
AC_DEFUN([gl_FUNC_CLOSE],
Packit 8f70b4
[
Packit 8f70b4
  AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
Packit 8f70b4
  m4_ifdef([gl_MSVC_INVAL], [
Packit 8f70b4
    AC_REQUIRE([gl_MSVC_INVAL])
Packit 8f70b4
    if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
Packit 8f70b4
      REPLACE_CLOSE=1
Packit 8f70b4
    fi
Packit 8f70b4
  ])
Packit 8f70b4
  m4_ifdef([gl_PREREQ_SYS_H_WINSOCK2], [
Packit 8f70b4
    gl_PREREQ_SYS_H_WINSOCK2
Packit 8f70b4
    if test $UNISTD_H_HAVE_WINSOCK2_H = 1; then
Packit 8f70b4
      dnl Even if the 'socket' module is not used here, another part of the
Packit 8f70b4
      dnl application may use it and pass file descriptors that refer to
Packit 8f70b4
      dnl sockets to the close() function. So enable the support for sockets.
Packit 8f70b4
      REPLACE_CLOSE=1
Packit 8f70b4
    fi
Packit 8f70b4
  ])
Packit 8f70b4
  dnl Replace close() for supporting the gnulib-defined fchdir() function,
Packit 8f70b4
  dnl to keep fchdir's bookkeeping up-to-date.
Packit 8f70b4
  m4_ifdef([gl_FUNC_FCHDIR], [
Packit 8f70b4
    if test $REPLACE_CLOSE = 0; then
Packit 8f70b4
      gl_TEST_FCHDIR
Packit 8f70b4
      if test $HAVE_FCHDIR = 0; then
Packit 8f70b4
        REPLACE_CLOSE=1
Packit 8f70b4
      fi
Packit 8f70b4
    fi
Packit 8f70b4
  ])
Packit 8f70b4
])