|
Packit |
33f14e |
# freopen.m4 serial 6
|
|
Packit |
33f14e |
dnl Copyright (C) 2007-2017 Free Software Foundation, Inc.
|
|
Packit |
33f14e |
dnl This file is free software; the Free Software Foundation
|
|
Packit |
33f14e |
dnl gives unlimited permission to copy and/or distribute it,
|
|
Packit |
33f14e |
dnl with or without modifications, as long as this notice is preserved.
|
|
Packit |
33f14e |
|
|
Packit |
33f14e |
AC_DEFUN([gl_FUNC_FREOPEN],
|
|
Packit |
33f14e |
[
|
|
Packit |
33f14e |
AC_REQUIRE([gl_STDIO_H_DEFAULTS])
|
|
Packit |
33f14e |
AC_REQUIRE([AC_CANONICAL_HOST])
|
|
Packit |
33f14e |
case "$host_os" in
|
|
Packit |
33f14e |
mingw* | pw* | os2*)
|
|
Packit |
33f14e |
REPLACE_FREOPEN=1
|
|
Packit |
33f14e |
;;
|
|
Packit |
33f14e |
*)
|
|
Packit |
33f14e |
AC_CACHE_CHECK([whether freopen works on closed fds],
|
|
Packit |
33f14e |
[gl_cv_func_freopen_works_on_closed],
|
|
Packit |
33f14e |
[AC_RUN_IFELSE(
|
|
Packit |
33f14e |
[AC_LANG_PROGRAM(
|
|
Packit |
33f14e |
[[#include <stdio.h>
|
|
Packit |
33f14e |
#include <unistd.h>
|
|
Packit |
33f14e |
]],
|
|
Packit |
33f14e |
[[close (0);
|
|
Packit |
33f14e |
return !(freopen ("/dev/null", "r", stdin)
|
|
Packit |
33f14e |
&& getchar () == EOF
|
|
Packit |
33f14e |
&& !ferror (stdin) && feof (stdin));]])],
|
|
Packit |
33f14e |
[gl_cv_func_freopen_works_on_closed=yes],
|
|
Packit |
33f14e |
[gl_cv_func_freopen_works_on_closed=no],
|
|
Packit |
33f14e |
[case $host_os in
|
|
Packit |
33f14e |
*gnu*) gl_cv_func_freopen_works_on_closed="guessing no" ;;
|
|
Packit |
33f14e |
*) gl_cv_func_freopen_works_on_closed="guessing yes";;
|
|
Packit |
33f14e |
esac])])
|
|
Packit |
33f14e |
case $gl_cv_func_freopen_works_on_closed in
|
|
Packit |
33f14e |
*no) REPLACE_FREOPEN=1;;
|
|
Packit |
33f14e |
esac
|
|
Packit |
33f14e |
esac
|
|
Packit |
33f14e |
])
|
|
Packit |
33f14e |
|
|
Packit |
33f14e |
# Prerequisites of lib/freopen.c.
|
|
Packit |
33f14e |
AC_DEFUN([gl_PREREQ_FREOPEN], [:])
|