diff options
author | David Robillard <d@drobilla.net> | 2021-03-01 19:10:36 -0500 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2021-03-08 23:23:06 -0500 |
commit | c7a5af0235706bc0624a236fae03fc728144234f (patch) | |
tree | ea682746f8d955f9e8ae3f549848be54f91cd6fd /src/node_syntax.c | |
parent | 8a13a270d9150e0cd14a049c76c601d09ee539bf (diff) | |
download | serd-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.c | 16 |
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; } |