From a1b677851274b7e5295962658e723cab007f9b85 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Wed, 5 Apr 2023 08:58:15 -0400 Subject: Add SERD_READ_ORDERED to preserve blank node ordering in models --- src/reader.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) (limited to 'src/reader.c') diff --git a/src/reader.c b/src/reader.c index 5ce81962..ce87a6f0 100644 --- a/src/reader.c +++ b/src/reader.c @@ -68,16 +68,22 @@ set_blank_id(SerdReader* const reader, SerdNode* const node, const size_t buf_size) { - char* const buf = (char*)(node + 1); - - node->length = (size_t)snprintf( - buf, buf_size, "%sb%u", reader->bprefix, reader->next_id++); + char* const buf = (char*)(node + 1); + const unsigned id = reader->next_id++; + + if ((reader->flags & SERD_READ_ORDERED)) { + node->length = + (size_t)snprintf(buf, buf_size, "%sb%09u", reader->bprefix, id); + } else { + node->length = + (size_t)snprintf(buf, buf_size, "%sb%u", reader->bprefix, id); + } } size_t genid_length(const SerdReader* const reader) { - return reader->bprefix_len + 10; // + "b" + UINT32_MAX + return reader->bprefix_len + 11; } bool -- cgit v1.2.1