X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=m4%2Ffopen.m4;h=6d2b094828ae382d2c132942401e235e4ebbc9a6;hb=f1195ccd1ee2cd56ed6b82a76fdee8de0c3d78b7;hp=1ec011bff90779e0f066a62ae77f48f7ea251191;hpb=86f87b4967587bcac4fae90ee86c6fce24e3a4f3;p=gnulib.git diff --git a/m4/fopen.m4 b/m4/fopen.m4 index 1ec011bff..6d2b09482 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-2010 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]) ])