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