diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2017-08-29 10:49:40 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2017-08-29 10:49:40 +0000 |
commit | cb70a92ece6503ffd0b24ebda67cfdb35672e8ee (patch) | |
tree | c5a9c1452c6a320010769aa3e80ec7b89df41791 /array.c | |
parent | 9d99093169ec39b0772a17ae7a7048a8a1e02d9c (diff) | |
download | ruby-cb70a92ece6503ffd0b24ebda67cfdb35672e8ee.tar.gz |
array.c: join encoding
* array.c (ary_join_1): copy the encoding of the converted string
of the first element by to_str too, as an initial encoding.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59684 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'array.c')
-rw-r--r-- | array.c | 9 |
1 files changed, 4 insertions, 5 deletions
@@ -1994,7 +1994,10 @@ ary_join_1(VALUE obj, VALUE ary, VALUE sep, long i, VALUE result, int *first) if (RB_TYPE_P(val, T_STRING)) { str_join: rb_str_buf_append(result, val); - *first = FALSE; + if (*first) { + rb_enc_copy(result, val); + *first = FALSE; + } } else if (RB_TYPE_P(val, T_ARRAY)) { obj = val; @@ -2025,10 +2028,6 @@ ary_join_1(VALUE obj, VALUE ary, VALUE sep, long i, VALUE result, int *first) goto ary_join; } val = rb_obj_as_string(val); - if (*first) { - rb_enc_copy(result, val); - *first = FALSE; - } goto str_join; } } |