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
Родитель 4b065bbe2b
Коммит f37e6d7f7b
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 3582D74E1FEE4465
1 изменённых файлов: 12 добавлений и 18 удалений

30
parse.y
Просмотреть файл

@ -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)
{