* 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
This commit is contained in:
nobu 2010-08-29 03:20:04 +00:00
Родитель 909d638aec
Коммит 946a037e30
3 изменённых файлов: 13 добавлений и 2 удалений

Просмотреть файл

@ -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> Sun Aug 29 09:35:10 2010 NARUSE, Yui <naruse@ruby-lang.org>
* common.mk (clean): exclude *.inc. [ruby-dev:41931] * common.mk (clean): exclude *.inc. [ruby-dev:41931]

5
load.c
Просмотреть файл

@ -551,8 +551,9 @@ search_required(VALUE fname, volatile VALUE *path, int safe_level)
static void static void
load_failed(VALUE fname) load_failed(VALUE fname)
{ {
rb_raise(rb_eLoadError, "cannot load such file -- %s", VALUE mesg = rb_str_buf_new_cstr("cannot load such file -- ");
RSTRING_PTR(fname)); rb_str_append(mesg, fname); /* should be ASCII compatible */
rb_exc_raise(rb_exc_new3(rb_eLoadError, mesg));
} }
static VALUE static VALUE

Просмотреть файл

@ -40,6 +40,12 @@ class TestRequire < Test::Unit::TestCase
end end
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 def test_require_path_home
env_rubypath, env_home = ENV["RUBYPATH"], ENV["HOME"] env_rubypath, env_home = ENV["RUBYPATH"], ENV["HOME"]