aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/n3.c12
1 files changed, 9 insertions, 3 deletions
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 {