summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKevin Newton <[email protected]>2025-02-17 12:57:54 -0500
committergit <[email protected]>2025-02-17 18:12:03 +0000
commit2db365dc83b3bc5e5bc15d93b5cd44b048188361 (patch)
tree1faff504121633564056297bee380914479be434
parent8324e3148a7737e1adbe8667d6918a141573693f (diff)
[ruby/prism] Fix escape unicode curly inline whitespace
Fixes [Bug #21145] https://github.com/ruby/prism/commit/be2d845639
-rw-r--r--prism/prism.c4
-rw-r--r--test/prism/errors/escape_unicode_curly_whitespace.txt5
2 files changed, 7 insertions, 2 deletions
diff --git a/prism/prism.c b/prism/prism.c
index 7f0c696749..f5d784d424 100644
--- a/prism/prism.c
+++ b/prism/prism.c
@@ -9776,7 +9776,7 @@ escape_read(pm_parser_t *parser, pm_buffer_t *buffer, pm_buffer_t *regular_expre
size_t whitespace;
while (true) {
- if ((whitespace = pm_strspn_whitespace(parser->current.end, parser->end - parser->current.end)) > 0) {
+ if ((whitespace = pm_strspn_inline_whitespace(parser->current.end, parser->end - parser->current.end)) > 0) {
parser->current.end += whitespace;
} else if (peek(parser) == '\\' && peek_offset(parser, 1) == 'n') {
// This is super hacky, but it gets us nicer error
@@ -9824,7 +9824,7 @@ escape_read(pm_parser_t *parser, pm_buffer_t *buffer, pm_buffer_t *regular_expre
uint32_t value = escape_unicode(parser, unicode_start, hexadecimal_length);
escape_write_unicode(parser, buffer, flags, unicode_start, parser->current.end, value);
- parser->current.end += pm_strspn_whitespace(parser->current.end, parser->end - parser->current.end);
+ parser->current.end += pm_strspn_inline_whitespace(parser->current.end, parser->end - parser->current.end);
}
// ?\u{nnnn} character literal should contain only one codepoint
diff --git a/test/prism/errors/escape_unicode_curly_whitespace.txt b/test/prism/errors/escape_unicode_curly_whitespace.txt
new file mode 100644
index 0000000000..324d8a2ae5
--- /dev/null
+++ b/test/prism/errors/escape_unicode_curly_whitespace.txt
@@ -0,0 +1,5 @@
+"\u{
+ ^ invalid Unicode escape sequence
+ ^ unterminated Unicode escape
+61}"
+