diff --git a/ChangeLog b/ChangeLog index dd17548b24..2cf84a8608 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Sat Jan 29 22:16:26 2011 NARUSE, Yui + + * array.c (rb_ary_join): [].join.encoding must be US-ASCII. + [ruby-list:47790] + Sat Jan 29 20:22:39 2011 KOSAKI Motohiro * benchmark/driver.rb (BenchmarkDriver#measure): Show command line diff --git a/array.c b/array.c index 7624e1ffe5..6420e5b645 100644 --- a/array.c +++ b/array.c @@ -1681,7 +1681,7 @@ rb_ary_join(VALUE ary, VALUE sep) int untrust = FALSE; VALUE val, tmp, result; - if (RARRAY_LEN(ary) == 0) return rb_str_new(0, 0); + if (RARRAY_LEN(ary) == 0) return rb_usascii_str_new(0, 0); if (OBJ_TAINTED(ary) || OBJ_TAINTED(sep)) taint = TRUE; if (OBJ_UNTRUSTED(ary) || OBJ_UNTRUSTED(sep)) untrust = TRUE; diff --git a/test/ruby/test_array.rb b/test/ruby/test_array.rb index 6724634691..e6a438cd73 100644 --- a/test/ruby/test_array.rb +++ b/test/ruby/test_array.rb @@ -890,6 +890,7 @@ class TestArray < Test::Unit::TestCase a = @cls[] assert_equal("", a.join) assert_equal("", a.join(',')) + assert_equal(Encoding::US_ASCII, a.join.encoding) $, = "" a = @cls[1, 2]