diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | array.c | 2 | ||||
-rw-r--r-- | test/ruby/test_array.rb | 1 |
3 files changed, 7 insertions, 1 deletions
@@ -1,3 +1,8 @@ +Sat Jan 29 22:16:26 2011 NARUSE, Yui <naruse@ruby-lang.org> + + * array.c (rb_ary_join): [].join.encoding must be US-ASCII. + [ruby-list:47790] + Sat Jan 29 20:22:39 2011 KOSAKI Motohiro <kosaki.motohiro@gmail.com> * benchmark/driver.rb (BenchmarkDriver#measure): Show command line @@ -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] |