aboutsummaryrefslogtreecommitdiffstats
path: root/src/node_syntax.c
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2021-03-01 19:10:36 -0500
committerDavid Robillard <d@drobilla.net>2021-03-08 23:23:06 -0500
commitc7a5af0235706bc0624a236fae03fc728144234f (patch)
treeea682746f8d955f9e8ae3f549848be54f91cd6fd /src/node_syntax.c
parent8a13a270d9150e0cd14a049c76c601d09ee539bf (diff)
downloadserd-c7a5af0235706bc0624a236fae03fc728144234f.tar.gz
serd-c7a5af0235706bc0624a236fae03fc728144234f.tar.bz2
serd-c7a5af0235706bc0624a236fae03fc728144234f.zip
Expand URIs in reader
Diffstat (limited to 'src/node_syntax.c')
-rw-r--r--src/node_syntax.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/node_syntax.c b/src/node_syntax.c
index 88d360dd..fc442f33 100644
--- a/src/node_syntax.c
+++ b/src/node_syntax.c
@@ -55,19 +55,26 @@ serd_node_from_syntax(const char* const str, const SerdSyntax syntax)
SerdNode* object = NULL;
SerdWorld* const world = serd_world_new();
+ SerdEnv* const env = serd_env_new(SERD_EMPTY_STRING());
SerdSink* const sink = serd_sink_new(&object, on_node_string_event, NULL);
SerdByteSource* const source = serd_byte_source_new_string(doc, NULL);
SerdReader* const reader = serd_reader_new(
- world, syntax, SERD_READ_EXACT_BLANKS, sink, 1024 + doc_len);
+ world,
+ syntax,
+ SERD_READ_EXACT_BLANKS | SERD_READ_PREFIXED | SERD_READ_RELATIVE,
+ env,
+ sink,
+ 1024 + doc_len);
serd_world_set_error_func(world, quiet_error_func, NULL);
serd_reader_start(reader, source);
serd_reader_read_document(reader);
serd_reader_finish(reader);
- serd_byte_source_free(source);
serd_reader_free(reader);
+ serd_byte_source_free(source);
serd_sink_free(sink);
+ serd_env_free(env);
serd_world_free(world);
free(doc);
@@ -92,5 +99,10 @@ serd_node_to_syntax(const SerdNode* const node, const SerdSyntax syntax)
result = serd_buffer_sink_finish(&buffer);
}
+ serd_writer_free(writer);
+ serd_byte_sink_free(out);
+ serd_env_free(env);
+ serd_world_free(world);
+
return result;
}