summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrmanfredi <rmanfredi@2592e710-e01b-42a5-8df0-11608a6cc53d>2015-04-18 12:14:30 +0000
committerrmanfredi <rmanfredi@2592e710-e01b-42a5-8df0-11608a6cc53d>2015-04-18 12:14:30 +0000
commit0b59236f0ff7fb29f3537b88bdc610a4e5a9571a (patch)
tree402cd0ef9ae3bd3876578805f56f6fcdebebbf12
parent9f01c0c4d1fbc84af7cb19e8b9547dd641fff945 (diff)
Added check for openat().
git-svn-id: svn://svn.code.sf.net/p/dist/code/trunk/dist@189 2592e710-e01b-42a5-8df0-11608a6cc53d
-rw-r--r--MANIFEST1
-rw-r--r--mcon/U/d_openat.U41
2 files changed, 42 insertions, 0 deletions
diff --git a/MANIFEST b/MANIFEST
index 2324968..ed927fe 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -324,6 +324,7 @@ mcon/U/d_nls.U Do we support NLS?
mcon/U/d_nolnbuf.U Is stdout line buffered?
mcon/U/d_normsig.U signal() vs sigset()
mcon/U/d_open3.U Do we have the 3 arguments form for open()?
+mcon/U/d_openat.U Do we have openat()?
mcon/U/d_passwd.U Do we have passwd()?
mcon/U/d_pathconf.U Do we have pathconf()?
mcon/U/d_pause.U Do we have pause()?
diff --git a/mcon/U/d_openat.U b/mcon/U/d_openat.U
new file mode 100644
index 0000000..d7f8269
--- /dev/null
+++ b/mcon/U/d_openat.U
@@ -0,0 +1,41 @@
+?RCS:
+?RCS: Copyright (c) 2015 Raphael Manfredi
+?RCS:
+?RCS: You may redistribute only under the terms of the Artistic License,
+?RCS: as specified in the README file that comes with the distribution.
+?RCS: You may reuse parts of this distribution only within the terms of
+?RCS: that same Artistic License; a copy of which may be found at the root
+?RCS: of the source tree for dist 4.0.
+?RCS:
+?MAKE:d_openat: Trylink cat i_fcntl
+?MAKE: -pick add $@ %<
+?S:d_openat:
+?S: This variable conditionally defines HAS_OPENAT if openat() is
+?S: available to open files with a relative path interepreted in
+?S: the context of an opened directory.
+?S:.
+?C:HAS_OPENAT:
+?C: This symbol, if defined, indicates that the openat() routine is
+?C: available to open files with a relative path interepreted in
+?C: the context of an opened directory.
+?C:.
+?H:#$d_openat HAS_OPENAT /**/
+?H:.
+?LINT:set d_openat
+: see if openat exists
+$cat >try.c <<EOC
+#$i_fcntl I_FCNTL
+#ifdef I_FCNTL
+#include <fcntl.h> /* AT_* constants */
+#endif
+int main(void)
+{
+ static int ret;
+ ret |= openat(AT_FDCWD, "path", /* flags */ 0, /* mode */ 0);
+ return ret ? 0 : 1;
+}
+EOC
+cyn=openat
+set d_openat
+eval $trylink
+