aboutsummaryrefslogtreecommitdiffstats
path: root/src/reader.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/reader.c')
-rw-r--r--src/reader.c39
1 files changed, 16 insertions, 23 deletions
diff --git a/src/reader.c b/src/reader.c
index 39e85b47..73509c6f 100644
--- a/src/reader.c
+++ b/src/reader.c
@@ -68,11 +68,10 @@ set_blank_id(SerdReader* const reader,
SerdNode* const node,
const size_t buf_size)
{
- char* buf = (char*)(node + 1);
- const char* prefix = reader->bprefix ? (const char*)reader->bprefix : "";
+ char* const buf = (char*)(node + 1);
- node->length =
- (size_t)snprintf(buf, buf_size, "%sb%u", prefix, reader->next_id++);
+ node->length = (size_t)snprintf(
+ buf, buf_size, "%sb%u", reader->bprefix, reader->next_id++);
}
size_t
@@ -201,6 +200,13 @@ serd_reader_read_document(SerdReader* const reader)
return SERD_BAD_CALL;
}
+ if (!(reader->flags & SERD_READ_GLOBAL)) {
+ reader->bprefix_len = (size_t)snprintf(reader->bprefix,
+ sizeof(reader->bprefix),
+ "f%u",
+ ++reader->world->next_document_id);
+ }
+
if (reader->syntax != SERD_SYNTAX_EMPTY && !reader->source->prepared) {
SerdStatus st = serd_reader_prepare(reader);
if (st) {
@@ -271,6 +277,12 @@ serd_reader_new(SerdWorld* const world,
assert(me->rdf_rest);
assert(me->rdf_nil);
+ if (!(flags & SERD_READ_GLOBAL)) {
+ me->bprefix[0] = 'f';
+ me->bprefix[1] = '0';
+ me->bprefix_len = 2;
+ }
+
return me;
}
@@ -286,28 +298,9 @@ serd_reader_free(SerdReader* const reader)
}
serd_aaligned_free(reader->world->allocator, reader->stack.buf);
- serd_wfree(reader->world, reader->bprefix);
serd_wfree(reader->world, reader);
}
-void
-serd_reader_add_blank_prefix(SerdReader* const reader, const char* const prefix)
-{
- assert(reader);
-
- serd_wfree(reader->world, reader->bprefix);
- reader->bprefix_len = 0;
- reader->bprefix = NULL;
-
- const size_t prefix_len = prefix ? strlen(prefix) : 0;
- if (prefix_len) {
- reader->bprefix_len = prefix_len;
- reader->bprefix =
- (char*)serd_wmalloc(reader->world, reader->bprefix_len + 1);
- memcpy(reader->bprefix, prefix, reader->bprefix_len + 1);
- }
-}
-
static SerdStatus
skip_bom(SerdReader* const me)
{