summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2010-08-29 03:20:04 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2010-08-29 03:20:04 +0000
commit946a037e3022c4667f22ca92b64379315f9535c0 (patch)
treee00e3a0b5dd67c89d42b21f53edebcde25030451
parent909d638aecb3597536e912599f5ee355aac828c0 (diff)
* load.c (load_failed): should honor encoding. [ruby-core:31915]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29133 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog4
-rw-r--r--load.c5
-rw-r--r--test/ruby/test_require.rb6
3 files changed, 13 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index dedabe8bc6..d003db5365 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+Sun Aug 29 12:19:58 2010 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * load.c (load_failed): should honor encoding. [ruby-core:31915]
+
Sun Aug 29 09:35:10 2010 NARUSE, Yui <naruse@ruby-lang.org>
* common.mk (clean): exclude *.inc. [ruby-dev:41931]
diff --git a/load.c b/load.c
index 891eae48ee..c956977527 100644
--- a/load.c
+++ b/load.c
@@ -551,8 +551,9 @@ search_required(VALUE fname, volatile VALUE *path, int safe_level)
static void
load_failed(VALUE fname)
{
- rb_raise(rb_eLoadError, "cannot load such file -- %s",
- RSTRING_PTR(fname));
+ VALUE mesg = rb_str_buf_new_cstr("cannot load such file -- ");
+ rb_str_append(mesg, fname); /* should be ASCII compatible */
+ rb_exc_raise(rb_exc_new3(rb_eLoadError, mesg));
}
static VALUE
diff --git a/test/ruby/test_require.rb b/test/ruby/test_require.rb
index dd4b808201..6de5659e54 100644
--- a/test/ruby/test_require.rb
+++ b/test/ruby/test_require.rb
@@ -40,6 +40,12 @@ class TestRequire < Test::Unit::TestCase
end
end
+ def test_require_nonascii
+ bug3758 = '[ruby-core:31915]'
+ e = assert_raise(LoadError, bug3758) {require "\u{221e}"}
+ assert_match(/\u{221e}\z/, e.message, bug3758)
+ end
+
def test_require_path_home
env_rubypath, env_home = ENV["RUBYPATH"], ENV["HOME"]