Skip to content

Commit a33c944

Browse files
committed
[Bug #20988] [prism] Fix escaped octal character literals
1 parent 689bb19 commit a33c944

File tree

2 files changed

+3
-0
lines changed

2 files changed

+3
-0
lines changed

prism/prism.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9728,6 +9728,7 @@ escape_read(pm_parser_t *parser, pm_buffer_t *buffer, pm_buffer_t *regular_expre
97289728
}
97299729
}
97309730

9731+
value = escape_byte(value, flags);
97319732
escape_write_byte(parser, buffer, regular_expression_buffer, flags, value);
97329733
return;
97339734
}

test/ruby/test_literal.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,8 @@ def test_string
101101
assert_raise(SyntaxError) {eval('"\C-\\' "\u3042" '"')}
102102
assert_raise(SyntaxError) {eval('"\M-' "\u3042" '"')}
103103
assert_raise(SyntaxError) {eval('"\M-\\' "\u3042" '"')}
104+
105+
assert_equal "\x09 \xC9 \x89", eval('"\C-\111 \M-\111 \M-\C-\111"')
104106
ensure
105107
$VERBOSE = verbose_bak
106108
end

0 commit comments

Comments
 (0)