X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=m4%2Ffopen.m4;h=aabe0228e251e8375fea15287d9aa070631156e1;hb=b3338b6328b7abb86cc2ba8882074ea22d195e98;hp=1ec011bff90779e0f066a62ae77f48f7ea251191;hpb=86f87b4967587bcac4fae90ee86c6fce24e3a4f3;p=gnulib.git diff --git a/m4/fopen.m4 b/m4/fopen.m4 index 1ec011bff..aabe0228e 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 5 +dnl Copyright (C) 2007-2009 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_TRY_RUN([ +#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 + solaris2.[0-9]*) gl_cv_func_fopen_slash="guessing no" ;; + hpux*) 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 + if test $REPLACE_FOPEN = 1; then + AC_LIBOBJ([fopen]) + gl_PREREQ_FOPEN + fi +]) + +# Prerequisites of lib/fopen.c. +AC_DEFUN([gl_PREREQ_FOPEN], +[ + AC_REQUIRE([AC_C_INLINE]) ])