diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-08-09 08:29:38 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-08-09 08:29:38 +0000 |
commit | 14ad644d847138de6905200f46f177b28a67f28d (patch) | |
tree | 833b5c9d661fb03f97727d213f21f5b059d00580 /io.c | |
parent | 775a40f7d64cca8e04f0d709dd55fb64f5e63f14 (diff) |
io.c: fix non-ascii filename inplace edit
* io.c (argf_next_argv): convert filename to the OS encoding to be
dealt with by system calls. [ruby-dev:50607] [Bug #14970]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64243 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'io.c')
-rw-r--r-- | io.c | 2 |
1 files changed, 2 insertions, 0 deletions
@@ -8502,6 +8502,7 @@ argf_next_argv(VALUE argf) VALUE filename = rb_ary_shift(ARGF.argv); FilePathValue(filename); ARGF.filename = filename; + filename = rb_str_encode_ospath(filename); fn = StringValueCStr(filename); if (RSTRING_LEN(filename) == 1 && fn[0] == '-') { ARGF.current_file = rb_stdin; @@ -8603,6 +8604,7 @@ argf_next_argv(VALUE argf) if (!NIL_P(write_io)) { rb_io_set_write_io(ARGF.current_file, write_io); } + RB_GC_GUARD(filename); } if (ARGF.binmode) rb_io_ascii8bit_binmode(ARGF.current_file); GetOpenFile(ARGF.current_file, fptr); |