diff options
author | naruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-10-11 05:15:03 +0000 |
---|---|---|
committer | naruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-10-11 05:15:03 +0000 |
commit | 44691b901e4d93debf64af33d4349662553e61e5 (patch) | |
tree | a4370e0d7efab45c065f085caf597a233ecf978e | |
parent | 47cb5a93e50c26114434dddb3008e5e4912a76f5 (diff) |
* error.c (syserr_initialize): set the encoding of Errno::*#message
as locale. [ruby-dev:42358]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29438 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | error.c | 1 | ||||
-rw-r--r-- | test/ruby/test_exception.rb | 4 |
3 files changed, 10 insertions, 0 deletions
@@ -1,3 +1,8 @@ +Mon Oct 11 14:03:54 2010 NARUSE, Yui <naruse@ruby-lang.org> + + * error.c (syserr_initialize): set the encoding of Errno::*#message + as locale. [ruby-dev:42358] + Mon Oct 11 06:38:27 2010 NARUSE, Yui <naruse@ruby-lang.org> * ext/stringio/stringio.c (strio_set_encoding): @@ -1057,6 +1057,7 @@ syserr_initialize(int argc, VALUE *argv, VALUE self) else { mesg = rb_str_new2(err); } + rb_enc_associate(mesg, rb_locale_encoding()); rb_call_super(1, &mesg); rb_iv_set(self, "errno", error); return self; diff --git a/test/ruby/test_exception.rb b/test/ruby/test_exception.rb index 18ecb404be..a26ade075b 100644 --- a/test/ruby/test_exception.rb +++ b/test/ruby/test_exception.rb @@ -312,4 +312,8 @@ end.join e = assert_raise(NoMethodError) {str.__send__(id)} assert_equal("undefined method `#{id}' for #{str.inspect}:String", e.message, bug3237) end + + def test_errno + assert_equal(Encoding.find("locale"), Errno::EINVAL.new.message.encoding) + end end |