X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=m4%2Ffopen.m4;h=a1cb1848a10a2746449153fbbc8039c7a3e67f36;hb=39065e3b61f9c359b6c01739be9bccea9643ea7c;hp=1ec011bff90779e0f066a62ae77f48f7ea251191;hpb=86f87b4967587bcac4fae90ee86c6fce24e3a4f3;p=gnulib.git diff --git a/m4/fopen.m4 b/m4/fopen.m4 index 1ec011bff..a1cb1848a 100644 --- a/m4/fopen.m4 +++ b/m4/fopen.m4 @@ -1,5 +1,5 @@ -# fopen.m4 serial 1 -dnl Copyright (C) 2007 Free Software Foundation, Inc. +# fopen.m4 serial 8 +dnl Copyright (C) 2007-2012 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. @@ -10,8 +10,52 @@ AC_DEFUN([gl_FUNC_FOPEN], AC_REQUIRE([AC_CANONICAL_HOST]) case "$host_os" in mingw* | pw*) + dnl Replace fopen, for handling of "/dev/null". + REPLACE_FOPEN=1 + dnl fopen on mingw also has the trailing slash bug. + gl_cv_func_fopen_slash="guessing no" + ;; + *) + dnl fopen("foo/", "w") should not create a file when the file name has a + dnl trailing slash. + AC_CACHE_CHECK([whether fopen recognizes a trailing slash], + [gl_cv_func_fopen_slash], + [ + AC_RUN_IFELSE( + [AC_LANG_SOURCE([[ +#include +#include +int main () +{ + return fopen ("conftest.sl/", "w") != NULL; +}]])], + [gl_cv_func_fopen_slash=yes], + [gl_cv_func_fopen_slash=no], + [ +changequote(,)dnl + case "$host_os" in + aix* | hpux* | solaris2.[0-9] | solaris2.[0-9].*) + gl_cv_func_fopen_slash="guessing no" ;; + *) + gl_cv_func_fopen_slash="guessing yes" ;; + esac +changequote([,])dnl + ]) + rm -f conftest.sl + ]) + ;; + esac + case "$gl_cv_func_fopen_slash" in + *no) + AC_DEFINE([FOPEN_TRAILING_SLASH_BUG], [1], + [Define to 1 if fopen() fails to recognize a trailing slash.]) REPLACE_FOPEN=1 - AC_LIBOBJ([fopen]) ;; esac ]) + +# Prerequisites of lib/fopen.c. +AC_DEFUN([gl_PREREQ_FOPEN], +[ + AC_REQUIRE([AC_C_INLINE]) +])