Merge rb_parser_enc_compatible_latter into rb_parser_enc_compatible

This commit is contained in:
Nobuyoshi Nakada 2024-10-05 16:07:57 +09:00
parent 4b065bbe2b
commit f37e6d7f7b
No known key found for this signature in database
GPG key ID: 3582D74E1FEE4465

30
parse.y
View file

@ -2216,15 +2216,25 @@ rb_parser_is_ascii_string(struct parser_params *p, rb_parser_string_t *str)
}
static rb_encoding *
rb_parser_enc_compatible_latter(struct parser_params *p, rb_parser_string_t *str1, rb_parser_string_t *str2, rb_encoding *enc1, rb_encoding *enc2)
rb_parser_enc_compatible(struct parser_params *p, rb_parser_string_t *str1, rb_parser_string_t *str2)
{
int cr1, cr2;
rb_encoding *enc1 = rb_parser_str_get_encoding(str1);
rb_encoding *enc2 = rb_parser_str_get_encoding(str2);
if (enc1 == NULL || enc2 == NULL)
return 0;
if (enc1 == enc2) {
return enc1;
}
if (PARSER_STRING_LEN(str2) == 0)
return enc1;
if (PARSER_STRING_LEN(str1) == 0)
return rb_parser_is_ascii_string(p, str2) ? enc1 : enc2;
int cr1, cr2;
cr1 = rb_parser_enc_str_coderange(p, str1);
cr2 = rb_parser_enc_str_coderange(p, str2);
@ -2244,22 +2254,6 @@ rb_parser_enc_compatible_latter(struct parser_params *p, rb_parser_string_t *str
return 0;
}
static rb_encoding *
rb_parser_enc_compatible(struct parser_params *p, rb_parser_string_t *str1, rb_parser_string_t *str2)
{
rb_encoding *enc1 = rb_parser_str_get_encoding(str1);
rb_encoding *enc2 = rb_parser_str_get_encoding(str2);
if (enc1 == NULL || enc2 == NULL)
return 0;
if (enc1 == enc2) {
return enc1;
}
return rb_parser_enc_compatible_latter(p, str1, str2, enc1, enc2);
}
static void
rb_parser_str_modify(rb_parser_string_t *str)
{