diff options
-rw-r--r-- | prism/prism.c | 4 | ||||
-rw-r--r-- | test/prism/errors/escape_unicode_curly_whitespace.txt | 5 |
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}" + |