X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=m4%2Ffdopen.m4;h=4cf8f359ca9c9170a0bef3faa1dbfad5bbbd8d8e;hb=cd56634a4a8179fd5a4419fbb3e27211b042ab1c;hp=dd2cf264d6c8f67043e16affc7a26fac0e8d581d;hpb=5f12d9389f0d0597c4996dfb15c0a5c64808774a;p=gnulib.git diff --git a/m4/fdopen.m4 b/m4/fdopen.m4 index dd2cf264d..4cf8f359c 100644 --- a/m4/fdopen.m4 +++ b/m4/fdopen.m4 @@ -1,5 +1,5 @@ -# fdopen.m4 serial 1 -dnl Copyright (C) 2011 Free Software Foundation, Inc. +# fdopen.m4 serial 3 +dnl Copyright (C) 2011-2014 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -8,12 +8,15 @@ AC_DEFUN([gl_FUNC_FDOPEN], [ AC_REQUIRE([gl_STDIO_H_DEFAULTS]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles - - dnl Test whether fdopen() sets errno when it fails due to a bad fd argument. - AC_CACHE_CHECK([whether fdopen sets errno], [gl_cv_func_fdopen_works], - [ - AC_RUN_IFELSE( - [AC_LANG_SOURCE([[ + AC_REQUIRE([gl_MSVC_INVAL]) + if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then + REPLACE_FDOPEN=1 + else + dnl Test whether fdopen() sets errno when it fails due to a bad fd argument. + AC_CACHE_CHECK([whether fdopen sets errno], [gl_cv_func_fdopen_works], + [ + AC_RUN_IFELSE( + [AC_LANG_SOURCE([[ #include #include int @@ -22,23 +25,22 @@ main (void) FILE *fp; errno = 0; fp = fdopen (-1, "r"); - if (fp != NULL) + if (fp == NULL && errno == 0) return 1; - if (errno == 0) - return 2; return 0; }]])], - [gl_cv_func_fdopen_works=yes], - [gl_cv_func_fdopen_works=no], - [case "$host_os" in - mingw*) gl_cv_func_fdopen_works="guessing no" ;; - *) gl_cv_func_fdopen_works="guessing yes" ;; - esac - ]) - ]) - case "$gl_cv_func_fdopen_works" in - *no) REPLACE_FDOPEN=1 ;; - esac + [gl_cv_func_fdopen_works=yes], + [gl_cv_func_fdopen_works=no], + [case "$host_os" in + mingw*) gl_cv_func_fdopen_works="guessing no" ;; + *) gl_cv_func_fdopen_works="guessing yes" ;; + esac + ]) + ]) + case "$gl_cv_func_fdopen_works" in + *no) REPLACE_FDOPEN=1 ;; + esac + fi ]) dnl Prerequisites of lib/fdopen.c.