1 # open.m4 serial 5
2 dnl Copyright (C) 2007-2009 Free Software Foundation, Inc.
3 dnl This file is free software; the Free Software Foundation
4 dnl gives unlimited permission to copy and/or distribute it,
5 dnl with or without modifications, as long as this notice is preserved.
7 AC_DEFUN([gl_FUNC_OPEN],
8 [
9 AC_REQUIRE([AC_CANONICAL_HOST])
10 case "$host_os" in
11 mingw* | pw*)
12 gl_REPLACE_OPEN
13 ;;
14 *)
15 dnl open("foo/") should not create a file when the file name has a
16 dnl trailing slash.
17 AC_CACHE_CHECK([whether open recognizes a trailing slash],
18 [gl_cv_func_open_slash],
19 [
20 AC_TRY_RUN([
21 #include <fcntl.h>
22 #if HAVE_UNISTD_H
23 # include <unistd.h>
24 #endif
25 int main ()
26 {
27 return open ("conftest.sl/", O_CREAT, 0600) >= 0;
28 }], [gl_cv_func_open_slash=yes], [gl_cv_func_open_slash=no],
29 [
30 changequote(,)dnl
31 case "$host_os" in
32 solaris2.[0-9]*) gl_cv_func_open_slash="guessing no" ;;
33 hpux*) gl_cv_func_open_slash="guessing no" ;;
34 *) gl_cv_func_open_slash="guessing yes" ;;
35 esac
36 changequote([,])dnl
37 ])
38 rm -f conftest.sl
39 ])
40 case "$gl_cv_func_open_slash" in
41 *no)
42 AC_DEFINE([OPEN_TRAILING_SLASH_BUG], [1],
43 [Define to 1 if open() fails to recognize a trailing slash.])
44 gl_REPLACE_OPEN
45 ;;
46 esac
47 ;;
48 esac
49 ])
51 AC_DEFUN([gl_REPLACE_OPEN],
52 [
53 AC_REQUIRE([gl_FCNTL_H_DEFAULTS])
54 if test $REPLACE_OPEN != 1; then
55 AC_LIBOBJ([open])
56 gl_PREREQ_OPEN
57 fi
58 REPLACE_OPEN=1
59 ])
61 # Prerequisites of lib/open.c.
62 AC_DEFUN([gl_PREREQ_OPEN],
63 [
64 AC_REQUIRE([AC_C_INLINE])
65 :
66 ])