aboutsummaryrefslogtreecommitdiffstats
path: root/io.c
diff options
context:
space:
mode:
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);