aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--array.c2
-rw-r--r--test/ruby/test_array.rb1
3 files changed, 7 insertions, 1 deletions
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 <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
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]