Set encodings of stdio after setting default internal and external.

* io.c (rb_stdio_set_default_encoding): added.

* ruby.c (process_options): call rb_stdio_set_default_encoding
  after setting defualt internal and external.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24337 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
naruse 2009-07-31 07:37:02 +00:00
parent bc70ea70cd
commit 00499c097f
3 changed files with 19 additions and 0 deletions

View File

@ -1,3 +1,10 @@
Fri Jul 31 16:28:33 2009 NARUSE, Yui <naruse@ruby-lang.org>
* io.c (rb_stdio_set_default_encoding): added.
* ruby.c (process_options): call rb_stdio_set_default_encoding
after setting defualt internal and external.
Fri Jul 31 15:06:33 2009 NAKAMURA Usaku <usa@ruby-lang.org>
* tool/compile_prelude.rb: too long string literal causes compile error

11
io.c
View File

@ -8407,6 +8407,17 @@ rb_io_set_encoding(int argc, VALUE *argv, VALUE io)
return io;
}
void
rb_stdio_set_default_encoding()
{
extern VALUE rb_stdin, rb_stdout, rb_stderr;
VALUE val = Qnil;
rb_io_set_encoding(1, &val, rb_stdin);
rb_io_set_encoding(1, &val, rb_stdout);
rb_io_set_encoding(1, &val, rb_stderr);
}
static VALUE
argf_external_encoding(VALUE argf)
{

1
ruby.c
View File

@ -1399,6 +1399,7 @@ process_options(int argc, char **argv, struct cmdline_options *opt)
else if (!rb_default_internal_encoding())
/* Freeze default_internal */
rb_enc_set_default_internal(Qnil);
rb_stdio_set_default_encoding();
if (!tree) return Qfalse;