aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornaruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2011-01-29 15:33:50 +0000
committernaruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2011-01-29 15:33:50 +0000
commit674ea103fa113707747e572be682c11d34af739e (patch)
tree8f11645526f3fd56c818814361b82a2cc82eee67
parent1195ba6644dd68123beeaa1efc228f8e7cfad4b1 (diff)
downloadruby-674ea103fa113707747e572be682c11d34af739e.tar.gz
* array.c (rb_ary_join): [].join.encoding must be US-ASCII.
[ruby-list:47790] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30721 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-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]