summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-08-03 01:55:32 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-08-03 01:55:32 +0000
commitfdfb939d72e8b66540df42821e3facfcda5aaf15 (patch)
tree1d7a625b12761095f8a44fbfed1137576a4600e3
parentd0987afc748dca7c2cab11011a5ee4b86bb59ba0 (diff)
transcode.c: use string
* transcode.c (econv_opts): get rid of inadvertent ID creation, and preserve argument encoding in error messages. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47041 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--test/ruby/test_econv.rb3
-rw-r--r--transcode.c4
2 files changed, 5 insertions, 2 deletions
diff --git a/test/ruby/test_econv.rb b/test/ruby/test_econv.rb
index bbdb14a50b..6bfd6ba136 100644
--- a/test/ruby/test_econv.rb
+++ b/test/ruby/test_econv.rb
@@ -908,6 +908,9 @@ class TestEncodingConverter < Test::Unit::TestCase
ec1 = Encoding::Converter.new("", "", universal_newline: true)
ec2 = Encoding::Converter.new("", "", newline: :universal)
assert_equal(ec1, ec2)
+ assert_raise_with_message(ArgumentError, /\u{3042}/) {
+ Encoding::Converter.new("", "", newline: "\u{3042}".to_sym)
+ }
end
def test_default_external
diff --git a/transcode.c b/transcode.c
index da9b2cc15d..32d9f8d470 100644
--- a/transcode.c
+++ b/transcode.c
@@ -2487,8 +2487,8 @@ econv_opts(VALUE opt, int ecflags)
/* ecflags |= ECONV_LF_NEWLINE_DECORATOR; */
}
else if (SYMBOL_P(v)) {
- rb_raise(rb_eArgError, "unexpected value for newline option: %s",
- rb_id2name(SYM2ID(v)));
+ rb_raise(rb_eArgError, "unexpected value for newline option: %"PRIsVALUE,
+ rb_sym2str(v));
}
else {
rb_raise(rb_eArgError, "unexpected value for newline option");