diff --git a/ChangeLog b/ChangeLog index e5ccda7bb7..7445e5f6d0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Sat Sep 21 00:47:44 2013 Nobuyoshi Nakada + + * string.c (rb_str_conv_enc_opts): make sure to scan coderange to get + rid of unnecessary conversion. + Sat Sep 21 00:21:08 2013 Zachary Scott * ext/openssl/lib/openssl/ssl.rb: [DOC] Document OpenSSL::SSLServer diff --git a/string.c b/string.c index 1fd057151b..1b64425977 100644 --- a/string.c +++ b/string.c @@ -554,7 +554,7 @@ rb_str_conv_enc_opts(VALUE str, rb_encoding *from, rb_encoding *to, int ecflags, if (!to) return str; if (!from) from = rb_enc_get(str); if (from == to) return str; - if ((rb_enc_asciicompat(to) && ENC_CODERANGE(str) == ENC_CODERANGE_7BIT) || + if ((rb_enc_asciicompat(to) && is_ascii_string(str)) || to == rb_ascii8bit_encoding()) { if (STR_ENC_GET(str) != to) { str = rb_str_dup(str);