Skip to content

Commit

Permalink
Backport serd double backslash encoding fix
Browse files Browse the repository at this point in the history
Signed-off-by: falkTX <[email protected]>
  • Loading branch information
falkTX committed Dec 8, 2023
1 parent f3d8dce commit bcfcafd
Showing 1 changed file with 13 additions and 3 deletions.
16 changes: 13 additions & 3 deletions source/modules/lilv/serd-0.24.0/src/reader.c
Original file line number Diff line number Diff line change
Expand Up @@ -554,9 +554,19 @@ read_STRING_LITERAL_LONG(SerdReader* reader, SerdNodeFlags* flags, uint8_t q)
eat_byte_safe(reader, q3);
return ref;
} else {
*flags |= SERD_HAS_QUOTE;
push_byte(reader, ref, c);
read_character(reader, ref, flags, q2);
if (q2 == '\\') {
push_byte(reader, ref, c);
if (!read_ECHAR(reader, ref, flags) &&
!read_UCHAR(reader, ref, &code)) {
r_err(reader, SERD_ERR_BAD_SYNTAX,
"invalid escape `\\%c'\n", peek_byte(reader));
return pop_node(reader, ref);
}
} else {
*flags |= SERD_HAS_QUOTE;
push_byte(reader, ref, c);
read_character(reader, ref, flags, q2);
}
}
} else {
read_character(reader, ref, flags, eat_byte_safe(reader, c));
Expand Down

0 comments on commit bcfcafd

Please sign in to comment.