summaryrefslogtreecommitdiff
path: root/io.c
diff options
context:
space:
mode:
authorusa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-02-26 01:58:20 +0000
committerusa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-02-26 01:58:20 +0000
commit2c288bf91f04f93476d2794dff996979ccdfb4cf (patch)
treedfd3d6152626b7d064885cbdd7f2865ea7a3b200 /io.c
parent2276b2f9044a7a53d9058145ac9d35261524cf0a (diff)
* include/ruby/win32.h (rb_w32_wopen): prototype forgotten.
* io.c (rb_sysopen_internal): shouldn't replace undefined chars in this case. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22637 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'io.c')
-rw-r--r--io.c14
1 files changed, 4 insertions, 10 deletions
diff --git a/io.c b/io.c
index a41d75b06e..654669abc9 100644
--- a/io.c
+++ b/io.c
@@ -4185,7 +4185,8 @@ sysopen_func(void *ptr)
struct sysopen_struct *data = ptr;
#ifdef _WIN32
if (data->wchar)
- return (VALUE)rb_w32_wopen(data->fname, data->oflags, data->perm);
+ return (VALUE)rb_w32_wopen((WCHAR *)data->fname, data->oflags,
+ data->perm);
#endif
return (VALUE)open(data->fname, data->oflags, data->perm);
}
@@ -4207,15 +4208,8 @@ rb_sysopen_internal(VALUE fname, int oflags, mode_t perm)
utf16 = NULL;
}
if (utf16) {
- VALUE wfname;
- VALUE opthash = rb_hash_new();
- int ecflags;
- VALUE ecopts;
- rb_hash_aset(opthash, ID2SYM(rb_intern("undef")),
- ID2SYM(rb_intern("replace")));
- ecflags = rb_econv_prepare_opts(opthash, &ecopts);
- wfname = rb_str_encode(fname, rb_enc_from_encoding(utf16), ecflags,
- ecopts);
+ VALUE wfname = rb_str_encode(fname, rb_enc_from_encoding(utf16), 0,
+ Qnil);
rb_enc_str_buf_cat(wfname, "", 1, utf16); /* workaround */
data.fname = RSTRING_PTR(wfname);
data.wchar = 1;