aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--configure.in2
-rw-r--r--dln.c2
-rw-r--r--file.c2
-rw-r--r--intern.h1
-rw-r--r--missing.h4
6 files changed, 12 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 56c8962988..9f2120ebd6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Wed Jan 25 22:29:04 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * configure.in, dln.c, file.c, intern.h, missing.h (eaccess): use
+ system routine if provided. fixed: [ruby-core:07195]
+
Sun Jan 22 23:27:13 2006 Go Noguchi <gonoguti@yahoo.co.jp>
* lib/test/unit/autorunner.rb (process_args): ignore arguments after
diff --git a/configure.in b/configure.in
index b97fa26361..696e052022 100644
--- a/configure.in
+++ b/configure.in
@@ -498,7 +498,7 @@ AC_FUNC_MEMCMP
AC_REPLACE_FUNCS(dup2 memmove strcasecmp strncasecmp strerror strftime\
strchr strstr strtoul crypt flock\
isnan finite isinf hypot acosh erf)
-AC_CHECK_FUNCS(fmod killpg wait4 waitpid fork spawnv syscall chroot fsync getcwd\
+AC_CHECK_FUNCS(fmod killpg wait4 waitpid fork spawnv syscall chroot fsync getcwd eaccess\
truncate chsize times utimes fcntl lockf lstat link symlink readlink\
setitimer setruid seteuid setreuid setresuid setproctitle socketpair\
setrgid setegid setregid setresgid issetugid pause lchown lchmod\
diff --git a/dln.c b/dln.c
index 8846860134..55e5002407 100644
--- a/dln.c
+++ b/dln.c
@@ -89,8 +89,6 @@ char *getenv();
# include <image.h>
#endif
-int eaccess(const char *, int);
-
#ifndef NO_DLN_LOAD
#if defined(HAVE_DLOPEN) && !defined(USE_DLN_A_OUT) && !defined(_AIX) && !defined(__APPLE__) && !defined(_UNICOSMP)
diff --git a/file.c b/file.c
index d3f7639ddf..9516e3f03f 100644
--- a/file.c
+++ b/file.c
@@ -818,6 +818,7 @@ group_member(GETGROUPS_T gid)
# define S_IXUGO (S_IXUSR | S_IXGRP | S_IXOTH)
#endif
+#ifndef HAVE_EACCESS
int
eaccess(const char *path, int mode)
{
@@ -857,6 +858,7 @@ eaccess(const char *path, int mode)
return access(path, mode);
#endif
}
+#endif
/*
diff --git a/intern.h b/intern.h
index c2adeb398d..421204225c 100644
--- a/intern.h
+++ b/intern.h
@@ -282,7 +282,6 @@ VALUE rb_thread_local_aset(VALUE, ID, VALUE);
void rb_thread_atfork(void);
VALUE rb_exec_recursive(VALUE(*)(VALUE, VALUE, int),VALUE,VALUE);
/* file.c */
-int eaccess(const char*, int);
VALUE rb_file_s_expand_path(int, VALUE *);
VALUE rb_file_expand_path(VALUE, VALUE);
void rb_file_const(const char*, VALUE);
diff --git a/missing.h b/missing.h
index 1b9ca2e20b..db37e3ae4c 100644
--- a/missing.h
+++ b/missing.h
@@ -39,6 +39,10 @@ extern char *crypt(const char *, const char *);
extern int dup2(int, int);
#endif
+#ifndef HAVE_EACCESS
+extern int eaccess(const char*, int);
+#endif
+
#ifndef HAVE_FINITE
extern int finite(double);
#endif