summaryrefslogtreecommitdiff
path: root/io.c
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-01-15 01:53:08 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-01-15 01:53:08 +0000
commitc6af6b1b947f8b367c22904bd5b31079784059f6 (patch)
tree079fc0c321ed4bd793f10b9113a5a6ee96d95c48 /io.c
parente24346d6c6b4bdf91e1e32bfd53a328086b8d772 (diff)
* symbian/README.SYMBIAN: symbian support added. great appreciate
to <alexandre.zavorine at symbian.com>. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21513 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'io.c')
-rw-r--r--io.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/io.c b/io.c
index 5b04dda579..a70baf8edf 100644
--- a/io.c
+++ b/io.c
@@ -4479,9 +4479,12 @@ pipe_open(struct rb_exec_arg *eargp, VALUE prog, const char *modestr, int fmode,
int status;
struct popen_arg arg;
char errmsg[80] = { '\0' };
-#elif defined(_WIN32)
- volatile VALUE argbuf;
- char **args = NULL;
+#else
+#if defined(_WIN32)
+ int openmode = rb_io_modestr_oflags(modestr);
+ const char *exename = NULL;
+ volatile VALUE cmdbuf;
+#endif
struct rb_exec_arg sarg;
int pair[2], write_pair[2];
#endif
@@ -6245,7 +6248,11 @@ argf_next_argv(VALUE argf)
chmod(fn, st.st_mode);
#endif
if (st.st_uid!=st2.st_uid || st.st_gid!=st2.st_gid) {
+#ifdef __SYMBIAN32__
+ chown(fn, st.st_uid, st.st_gid);
+#else
fchown(fw, st.st_uid, st.st_gid);
+#endif
}
#endif
rb_stdout = prep_io(fw, FMODE_WRITABLE, rb_cFile, fn);