aboutsummaryrefslogtreecommitdiffstats
path: root/src/world.c
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2018-05-12 17:56:27 +0200
committerDavid Robillard <d@drobilla.net>2019-12-19 20:52:38 -0500
commit9a2f489a7f6bc60e3f8ccc3881f3fbf8ebd87eda (patch)
tree1cfa97351e8e68a0a6c563cf4efd7ed79c460ae6 /src/world.c
parent83ee262f7a952bf59b327982f5e66115036f9259 (diff)
downloadserd-9a2f489a7f6bc60e3f8ccc3881f3fbf8ebd87eda.tar.gz
serd-9a2f489a7f6bc60e3f8ccc3881f3fbf8ebd87eda.tar.bz2
serd-9a2f489a7f6bc60e3f8ccc3881f3fbf8ebd87eda.zip
Add serd_world_get_blank()
Diffstat (limited to 'src/world.c')
-rw-r--r--src/world.c20
1 files changed, 19 insertions, 1 deletions
diff --git a/src/world.c b/src/world.c
index f95accf4..9908e4d4 100644
--- a/src/world.c
+++ b/src/world.c
@@ -18,6 +18,7 @@
#include "world.h"
+#include "node.h"
#include "serd_config.h"
#include <errno.h>
@@ -29,6 +30,8 @@
# include <fcntl.h>
#endif
+#define BLANK_CHARS 11
+
FILE*
serd_world_fopen(SerdWorld* world, const char* path, const char* mode)
{
@@ -71,15 +74,30 @@ serd_world_errorf(const SerdWorld* world, SerdStatus st, const char* fmt, ...)
SerdWorld*
serd_world_new(void)
{
- return (SerdWorld*)calloc(1, sizeof(SerdWorld));
+ SerdWorld* world = (SerdWorld*)calloc(1, sizeof(SerdWorld));
+
+ world->blank_node = serd_node_new_blank("b0000000000");
+
+ return world;
}
void
serd_world_free(SerdWorld* world)
{
+ serd_node_free(world->blank_node);
free(world);
}
+const SerdNode*
+serd_world_get_blank(SerdWorld* world)
+{
+ char* buf = serd_node_buffer(world->blank_node);
+ memset(buf, 0, BLANK_CHARS + 1);
+ world->blank_node->n_bytes = snprintf(
+ buf, BLANK_CHARS, "b%u", ++world->next_blank_id);
+ return world->blank_node;
+}
+
void
serd_world_set_error_sink(SerdWorld* world,
SerdErrorSink error_sink,