зеркало из https://github.com/github/ruby.git
Merge `rb_parser_enc_compatible_latter` into `rb_parser_enc_compatible`
This commit is contained in:
Родитель
4b065bbe2b
Коммит
f37e6d7f7b
30
parse.y
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)
|
||||
{
|
||||
|
|
Загрузка…
Ссылка в новой задаче