1# fopen.m4 serial 9
2dnl Copyright (C) 2007-2012 Free Software Foundation, Inc.
3dnl This file is free software; the Free Software Foundation
4dnl gives unlimited permission to copy and/or distribute it,
5dnl with or without modifications, as long as this notice is preserved.
6
7AC_DEFUN([gl_FUNC_FOPEN],
8[
9  AC_REQUIRE([gl_STDIO_H_DEFAULTS])
10  AC_REQUIRE([AC_CANONICAL_HOST])
11  case "$host_os" in
12    mingw* | pw*)
13      dnl Replace fopen, for handling of "/dev/null".
14      REPLACE_FOPEN=1
15      dnl fopen on mingw also has the trailing slash bug.
16      gl_cv_func_fopen_slash="guessing no"
17      ;;
18    *)
19      dnl fopen("foo/", "w") should not create a file when the file name has a
20      dnl trailing slash.
21      AC_CACHE_CHECK([whether fopen recognizes a trailing slash],
22        [gl_cv_func_fopen_slash],
23        [
24          AC_RUN_IFELSE(
25            [AC_LANG_SOURCE([[
26#include <stddef.h>
27#include <stdio.h>
28int main ()
29{
30  return fopen ("conftest.sl/", "w") != NULL;
31}]])],
32            [gl_cv_func_fopen_slash=yes],
33            [gl_cv_func_fopen_slash=no],
34            [
35changequote(,)dnl
36             case "$host_os" in
37               aix* | hpux* | solaris2.[0-9] | solaris2.[0-9].*)
38                 gl_cv_func_fopen_slash="guessing no" ;;
39               *)
40                 gl_cv_func_fopen_slash="guessing yes" ;;
41             esac
42changequote([,])dnl
43            ])
44          rm -f conftest.sl
45        ])
46      ;;
47  esac
48  case "$gl_cv_func_fopen_slash" in
49    *no)
50      AC_DEFINE([FOPEN_TRAILING_SLASH_BUG], [1],
51        [Define to 1 if fopen() fails to recognize a trailing slash.])
52      REPLACE_FOPEN=1
53      ;;
54  esac
55])
56
57# Prerequisites of lib/fopen.c.
58AC_DEFUN([gl_PREREQ_FOPEN], [:])
59