From 19cf57f21ca8e838c78caa2d19d9da36569cc929 Mon Sep 17 00:00:00 2001 From: matz Date: Sun, 23 Dec 2007 20:13:55 +0000 Subject: [PATCH] * string.c (tr_trans): should associate new encoding if modified. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14555 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 4 ++++ string.c | 7 +++++-- test/ruby/test_m17n.rb | 13 ++----------- 3 files changed, 11 insertions(+), 13 deletions(-) diff --git a/ChangeLog b/ChangeLog index 2c0ca81caa..84e813d4ec 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Mon Dec 24 05:13:04 2007 Yukihiro Matsumoto + + * string.c (tr_trans): should associate new encoding if modified. + Mon Dec 24 04:04:12 2007 GOTOU Yuuzou * test/net/http/test_https.rb: should rescue LoadError. diff --git a/string.c b/string.c index 271960d730..60eadbd1db 100644 --- a/string.c +++ b/string.c @@ -3654,8 +3654,11 @@ tr_trans(VALUE str, VALUE src, VALUE repl, int sflag) STR_SET_NOEMBED(str); RSTRING(str)->as.heap.aux.capa = max; } - - if (modify) return str; + + if (modify) { + rb_enc_associate(str, enc); + return str; + } return Qnil; } diff --git a/test/ruby/test_m17n.rb b/test/ruby/test_m17n.rb index 60c7c88d18..0026816335 100644 --- a/test/ruby/test_m17n.rb +++ b/test/ruby/test_m17n.rb @@ -1763,11 +1763,7 @@ class TestM17N < Test::Unit::TestCase next end t = s1.tr(s2, s3) - if s3.empty? - assert_equal(0, t.length, desc) - next - end - assert_equal(s1.length, t.length, desc) + assert_operator(s1.length, :>=, t.length, desc) } end @@ -1799,12 +1795,7 @@ class TestM17N < Test::Unit::TestCase end t = nil - assert_nothing_raised(desc) { t = s1.tr_s(s2, s3) } - - if s3.empty? - assert_equal(0, t.length, desc) - next - end + assert_nothing_raised(desc) { t = s1.tr_s(s1, s3) } assert_operator(s1.length, :>=, t.length, desc) } end