[ruby/prism] Correct escapes when ctrl+meta+escape

https://github.com/ruby/prism/commit/ee68b17c01
This commit is contained in:
Kevin Newton 2023-12-11 08:50:59 -05:00 committed by git
parent e186cebe42
commit 261e8f28a0

View File

@ -7372,57 +7372,57 @@ escape_read(pm_parser_t *parser, pm_buffer_t *buffer, uint8_t flags) {
switch (peek(parser)) { switch (peek(parser)) {
case '\\': { case '\\': {
parser->current.end++; parser->current.end++;
pm_buffer_append_byte(buffer, '\\'); escape_write_byte_encoded(parser, buffer, escape_byte('\\', flags));
return; return;
} }
case '\'': { case '\'': {
parser->current.end++; parser->current.end++;
pm_buffer_append_byte(buffer, '\''); escape_write_byte_encoded(parser, buffer, escape_byte('\'', flags));
return; return;
} }
case 'a': { case 'a': {
parser->current.end++; parser->current.end++;
pm_buffer_append_byte(buffer, '\a'); escape_write_byte_encoded(parser, buffer, escape_byte('\a', flags));
return; return;
} }
case 'b': { case 'b': {
parser->current.end++; parser->current.end++;
pm_buffer_append_byte(buffer, '\b'); escape_write_byte_encoded(parser, buffer, escape_byte('\b', flags));
return; return;
} }
case 'e': { case 'e': {
parser->current.end++; parser->current.end++;
pm_buffer_append_byte(buffer, '\033'); escape_write_byte_encoded(parser, buffer, escape_byte('\033', flags));
return; return;
} }
case 'f': { case 'f': {
parser->current.end++; parser->current.end++;
pm_buffer_append_byte(buffer, '\f'); escape_write_byte_encoded(parser, buffer, escape_byte('\f', flags));
return; return;
} }
case 'n': { case 'n': {
parser->current.end++; parser->current.end++;
pm_buffer_append_byte(buffer, '\n'); escape_write_byte_encoded(parser, buffer, escape_byte('\n', flags));
return; return;
} }
case 'r': { case 'r': {
parser->current.end++; parser->current.end++;
pm_buffer_append_byte(buffer, '\r'); escape_write_byte_encoded(parser, buffer, escape_byte('\r', flags));
return; return;
} }
case 's': { case 's': {
parser->current.end++; parser->current.end++;
pm_buffer_append_byte(buffer, ' '); escape_write_byte_encoded(parser, buffer, escape_byte(' ', flags));
return; return;
} }
case 't': { case 't': {
parser->current.end++; parser->current.end++;
pm_buffer_append_byte(buffer, '\t'); escape_write_byte_encoded(parser, buffer, escape_byte('\t', flags));
return; return;
} }
case 'v': { case 'v': {
parser->current.end++; parser->current.end++;
pm_buffer_append_byte(buffer, '\v'); escape_write_byte_encoded(parser, buffer, escape_byte('\v', flags));
return; return;
} }
case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': {
@ -7656,7 +7656,7 @@ escape_read(pm_parser_t *parser, pm_buffer_t *buffer, uint8_t flags) {
case '\r': { case '\r': {
if (peek_offset(parser, 1) == '\n') { if (peek_offset(parser, 1) == '\n') {
parser->current.end += 2; parser->current.end += 2;
pm_buffer_append_byte(buffer, '\n'); escape_write_byte_encoded(parser, buffer, escape_byte('\n', flags));
return; return;
} }
} }