summaryrefslogtreecommitdiff
path: root/m4/open.m4
diff options
context:
space:
mode:
authorBruno Haible <bruno@clisp.org>2019-09-15 17:41:29 +0200
committerBruno Haible <bruno@clisp.org>2019-09-15 17:41:29 +0200
commitc5f7c7c69b3b986c49930c1c7ac37c552a3be738 (patch)
tree154ad65d2faf2341dae38d9004ae457327cc4f32 /m4/open.m4
parent9e75623a64a07215f2c7811e0356697d6df10fa2 (diff)
downloadgnulib-c5f7c7c69b3b986c49930c1c7ac37c552a3be738.tar.gz
creat: New module.
* lib/fcntl.in.h (creat): New declaration. * lib/creat.c: New file, based on lib/open.c. * m4/creat.m4: New file. * m4/open-slash.m4: New file, extracted from m4/open.m4. * m4/open.m4 (gl_FUNC_OPEN): Move trailing-slash test to open-slash.m4. Invoke gl_OPEN_TRAILING_SLASH_BUG. * modules/open (Files): Add m4/open-slash.m4. * m4/fcntl_h.m4 (gl_FCNTL_H_DEFAULTS): Initialize GNULIB_CREAT, REPLACE_CREAT. * modules/fcntl-h (Makefile.am): Substitute GNULIB_CREAT, REPLACE_CREAT. * modules/creat: New file. * tests/test-fcntl-h-c++.cc (creat): Check signature. * doc/posix-functions/creat.texi: Mention the new module.
Diffstat (limited to 'm4/open.m4')
-rw-r--r--m4/open.m441
1 files changed, 1 insertions, 40 deletions
diff --git a/m4/open.m4 b/m4/open.m4
index 5d73f4de1a..6cf0bebb17 100644
--- a/m4/open.m4
+++ b/m4/open.m4
@@ -19,48 +19,9 @@ AC_DEFUN([gl_FUNC_OPEN],
if test "$gl_cv_macro_O_CLOEXEC" != yes; then
REPLACE_OPEN=1
fi
- AC_CACHE_CHECK([whether open recognizes a trailing slash],
- [gl_cv_func_open_slash],
- [# Assume that if we have lstat, we can also check symlinks.
- if test $ac_cv_func_lstat = yes; then
- touch conftest.tmp
- ln -s conftest.tmp conftest.lnk
- fi
- AC_RUN_IFELSE(
- [AC_LANG_SOURCE([[
-#include <fcntl.h>
-#if HAVE_UNISTD_H
-# include <unistd.h>
-#endif
-int main ()
-{
- int result = 0;
-#if HAVE_LSTAT
- if (open ("conftest.lnk/", O_RDONLY) != -1)
- result |= 1;
-#endif
- if (open ("conftest.sl/", O_CREAT, 0600) >= 0)
- result |= 2;
- return result;
-}]])],
- [gl_cv_func_open_slash=yes],
- [gl_cv_func_open_slash=no],
- [
-changequote(,)dnl
- case "$host_os" in
- freebsd* | aix* | hpux* | solaris2.[0-9] | solaris2.[0-9].*)
- gl_cv_func_open_slash="guessing no" ;;
- *)
- gl_cv_func_open_slash="guessing yes" ;;
- esac
-changequote([,])dnl
- ])
- rm -f conftest.sl conftest.tmp conftest.lnk
- ])
+ gl_OPEN_TRAILING_SLASH_BUG
case "$gl_cv_func_open_slash" in
*no)
- AC_DEFINE([OPEN_TRAILING_SLASH_BUG], [1],
- [Define to 1 if open() fails to recognize a trailing slash.])
REPLACE_OPEN=1
;;
esac