From fdfb939d72e8b66540df42821e3facfcda5aaf15 Mon Sep 17 00:00:00 2001 From: nobu Date: Sun, 3 Aug 2014 01:55:32 +0000 Subject: [PATCH] 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 --- test/ruby/test_econv.rb | 3 +++ transcode.c | 4 ++-- 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");