summaryrefslogtreecommitdiff
path: root/mcon/U/d_access.U
diff options
context:
space:
mode:
Diffstat (limited to 'mcon/U/d_access.U')
-rw-r--r--mcon/U/d_access.U35
1 files changed, 27 insertions, 8 deletions
diff --git a/mcon/U/d_access.U b/mcon/U/d_access.U
index 991982f..56de296 100644
--- a/mcon/U/d_access.U
+++ b/mcon/U/d_access.U
@@ -1,18 +1,19 @@
-?RCS: $Id: d_access.U 1 2006-08-24 12:32:52Z rmanfredi $
+?RCS: $Id: d_access.U 167 2013-05-08 17:58:00Z rmanfredi $
?RCS:
?RCS: Copyright (c) 1991-1997, 2004-2006, Raphael Manfredi
?RCS:
-?RCS: You may redistribute only under the terms of the Artistic Licence,
+?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 Licence; a copy of which may be found at the root
+?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:
?RCS: $Log: d_access.U,v $
?RCS: Revision 3.0 1993/08/18 12:05:42 ram
?RCS: Baseline for dist 3.0 netwide release.
?RCS:
-?MAKE:d_access: test +cc cat +cppflags h_fcntl h_sysfile rm Inlibc Findhdr
+?MAKE:d_access: test +cc cat +cppflags h_fcntl h_sysfile rm Trylink Findhdr \
+ i_unistd
?MAKE: -pick add $@ %<
?S:d_access:
?S: This variable conditionally defines HAS_ACCESS if the access() system
@@ -29,8 +30,21 @@
?LINT:set d_access
?LINT:change h_fcntl h_sysfile
: access call always available on UNIX
-set access d_access
-eval $inlibc
+$cat >try.c <<EOC
+#$i_unistd I_UNISTD
+#ifdef I_UNISTD
+#include <unistd.h>
+#endif
+int main(void)
+{
+ static int ret;
+ ret |= access("path", 1);
+ return ret ? 0 : 1;
+}
+EOC
+cyn=access
+set d_access
+eval $trylink
: locate the flags for 'access()'
case "$d_access" in
@@ -47,8 +61,13 @@ case "$d_access" in
#ifdef I_UNISTD
#include <unistd.h>
#endif
-int main() {
- exit(R_OK);
+int main(void) {
+ static int mode;
+ mode |= R_OK;
+ mode |= W_OK;
+ mode |= X_OK;
+ mode |= F_OK;
+ return mode ? 0 : 1;
}
EOCP
: check sys/file.h first, no particular reason here