X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=m4%2Ffopen.m4;h=8f81a4a2440e6e4c647b9b59e8168b405079ad88;hb=17f87c3231d8808b8e873126abf15e6e8b9a0e67;hp=1ec011bff90779e0f066a62ae77f48f7ea251191;hpb=86f87b4967587bcac4fae90ee86c6fce24e3a4f3;p=gnulib.git diff --git a/m4/fopen.m4 b/m4/fopen.m4 index 1ec011bff..8f81a4a24 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 3 +dnl Copyright (C) 2007-2008 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. @@ -13,5 +13,45 @@ AC_DEFUN([gl_FUNC_FOPEN], REPLACE_FOPEN=1 AC_LIBOBJ([fopen]) ;; + *) + 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 + ]) + 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]) + gl_PREREQ_FOPEN + ;; + esac + ;; esac ]) + +# Prerequisites of lib/fopen.c. +AC_DEFUN([gl_PREREQ_FOPEN], +[ + AC_REQUIRE([AC_C_INLINE]) +])