aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-08-26 05:21:41 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-08-26 05:21:41 +0000
commit7eb0887b6024fc688e6e9603c596090344c499a0 (patch)
tree964198af62ae754ba938ba07b5300b19ad6174b7
parent687e962cd4823bac1c5f1f99d2e10b7ed209d69c (diff)
downloadruby-7eb0887b6024fc688e6e9603c596090344c499a0.tar.gz
win32.c: fake lchown
* win32/win32.c (lchown, rb_w32_ulchown): fake lchown. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51687 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--configure.in1
-rw-r--r--cygwin/GNUmakefile.in1
-rw-r--r--file.c3
-rw-r--r--win32/Makefile.sub2
-rw-r--r--win32/file.h3
-rw-r--r--win32/win32.c12
6 files changed, 22 insertions, 0 deletions
diff --git a/configure.in b/configure.in
index a46f6b60c6..3d812f4c99 100644
--- a/configure.in
+++ b/configure.in
@@ -1106,6 +1106,7 @@ main()
ac_cv_func_isinf=yes
ac_cv_func_isnan=yes
ac_cv_func_finite=yes
+ ac_cv_func_lchown=yes
ac_cv_func_link=yes
ac_cv_func_readlink=yes
ac_cv_func_symlink=yes
diff --git a/cygwin/GNUmakefile.in b/cygwin/GNUmakefile.in
index 425d493955..14ffd1db85 100644
--- a/cygwin/GNUmakefile.in
+++ b/cygwin/GNUmakefile.in
@@ -87,6 +87,7 @@ ifeq (@target_os@,mingw32)
$(OBJS) $(MAINOBJ): win32.h
dir.$(OBJEXT) win32/win32.$(OBJEXT): win32/dir.h
+file.$(OBJEXT) win32/win32.$(OBJEXT): win32/file.h
endif
$(LIBRUBY_SO): $(RUBYDEF)
diff --git a/file.c b/file.c
index 9472d43319..80b31ccd5a 100644
--- a/file.c
+++ b/file.c
@@ -94,6 +94,7 @@ int flock(int, int);
/* define system APIs */
#ifdef _WIN32
+#include "win32/file.h"
#define STAT(p, s) rb_w32_ustati64((p), (s))
#undef lstat
#define lstat(p, s) rb_w32_ulstati64((p), (s))
@@ -103,6 +104,8 @@ int flock(int, int);
#define chmod(p, m) rb_w32_uchmod((p), (m))
#undef chown
#define chown(p, o, g) rb_w32_uchown((p), (o), (g))
+#undef lchown
+#define lchown(p, o, g) rb_w32_ulchown((p), (o), (g))
#undef utime
#define utime(p, t) rb_w32_uutime((p), (t))
#undef link
diff --git a/win32/Makefile.sub b/win32/Makefile.sub
index ab7e6fe046..2294d4ad98 100644
--- a/win32/Makefile.sub
+++ b/win32/Makefile.sub
@@ -720,6 +720,7 @@ $(CONFIG_H): $(MKFILES) $(srcdir)/win32/Makefile.sub $(win_srcdir)/Makefile.sub
#define HAVE_LINK 1
#define HAVE_READLINK 1
#define HAVE_SYMLINK 1
+#define HAVE_LCHOWN 1
#define HAVE__SETJMP 1
#define HAVE_TELLDIR 1
#define HAVE_SEEKDIR 1
@@ -1138,6 +1139,7 @@ enc/jis/props.h: {$(srcdir)}enc/jis/props.h.blt
$(OBJS): {$(hdrdir)/ruby}win32.h
dir.$(OBJEXT) win32/win32.$(OBJEXT): {$(srcdir)}win32/dir.h
+file.$(OBJEXT) win32/win32.$(OBJEXT): {$(VPATH)}win32/file.h
ext/extinit.obj: ext/extinit.c $(SETUP)
$(ECHO) compiling ext/extinit.c
diff --git a/win32/file.h b/win32/file.h
index 95a792a63f..deebbfab84 100644
--- a/win32/file.h
+++ b/win32/file.h
@@ -37,4 +37,7 @@ typedef struct {
int rb_w32_read_reparse_point(const WCHAR *path, rb_w32_reparse_buffer_t *rp,
size_t bufsize, WCHAR **result, DWORD *len);
+int lchown(const char *path, int owner, int group);
+int rb_w32_ulchown(const char *path, int owner, int group);
+
#endif /* RUBY_WIN32_FILE_H */
diff --git a/win32/win32.c b/win32/win32.c
index 1d2f74008b..84b574ff3c 100644
--- a/win32/win32.c
+++ b/win32/win32.c
@@ -4482,6 +4482,18 @@ rb_w32_uchown(const char *path, int owner, int group)
return 0;
}
+int
+lchown(const char *path, int owner, int group)
+{
+ return 0;
+}
+
+int
+rb_w32_ulchown(const char *path, int owner, int group)
+{
+ return 0;
+}
+
/* License: Ruby's */
int
kill(int pid, int sig)