diff --git a/ChangeLog b/ChangeLog index 503a24fc17..de5d713840 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +Fri Jul 31 16:28:33 2009 NARUSE, Yui + + * 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 * tool/compile_prelude.rb: too long string literal causes compile error diff --git a/io.c b/io.c index fd0552b237..3153ff7c23 100644 --- a/io.c +++ b/io.c @@ -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) { diff --git a/ruby.c b/ruby.c index 180455e92d..6839bfe323 100644 --- a/ruby.c +++ b/ruby.c @@ -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;