diff options
Diffstat (limited to 'parse.y')
-rw-r--r-- | parse.y | 8 |
1 files changed, 4 insertions, 4 deletions
@@ -6570,7 +6570,7 @@ parser_str_new(const char *ptr, long len, rb_encoding *enc, int func, rb_encodin str = rb_enc_str_new(ptr, len, enc); if (!(func & STR_FUNC_REGEXP) && rb_enc_asciicompat(enc)) { - if (rb_enc_str_coderange(str) == ENC_CODERANGE_7BIT) { + if (is_ascii_string(str)) { } else if (enc0 == rb_usascii_encoding() && enc != rb_utf8_encoding()) { rb_enc_associate(str, rb_ascii8bit_encoding()); @@ -12939,21 +12939,21 @@ rb_reg_fragment_setenc(struct parser_params* p, VALUE str, int options) int opt, idx; rb_char_to_option_kcode(c, &opt, &idx); if (idx != ENCODING_GET(str) && - rb_enc_str_coderange(str) != ENC_CODERANGE_7BIT) { + !is_ascii_string(str)) { goto error; } ENCODING_SET(str, idx); } else if (RE_OPTION_ENCODING_NONE(options)) { if (!ENCODING_IS_ASCII8BIT(str) && - rb_enc_str_coderange(str) != ENC_CODERANGE_7BIT) { + !is_ascii_string(str)) { c = 'n'; goto error; } rb_enc_associate(str, rb_ascii8bit_encoding()); } else if (p->enc == rb_usascii_encoding()) { - if (rb_enc_str_coderange(str) != ENC_CODERANGE_7BIT) { + if (!is_ascii_string(str)) { /* raise in re.c */ rb_enc_associate(str, rb_usascii_encoding()); } |