From 002e2edc7fee5297b1bc8e1da4932d38e270f8f8 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Tue, 28 Feb 2023 19:39:35 -0500 Subject: Fix incorrect parsing of strange quote escape patterns --- src/n3.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/n3.c b/src/n3.c index 71a2fc56..e14cb8ce 100644 --- a/src/n3.c +++ b/src/n3.c @@ -361,9 +361,15 @@ read_STRING_LITERAL_LONG(SerdReader* const reader, skip_byte(reader, q3); break; } - *flags |= SERD_HAS_QUOTE; - push_byte(reader, ref, c); - st = read_character(reader, ref, flags, (uint8_t)q2); + + if (q2 == '\\') { + push_byte(reader, ref, c); + st = read_string_escape(reader, ref, flags); + } else { + *flags |= SERD_HAS_QUOTE; + push_byte(reader, ref, c); + st = read_character(reader, ref, flags, (uint8_t)q2); + } } else if (c == EOF) { return r_err(reader, SERD_ERR_BAD_SYNTAX, "end of file in long string\n"); } else { -- cgit v1.2.1