diff options
author | David Robillard <d@drobilla.net> | 2018-12-29 17:36:15 -0500 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2020-06-21 18:12:04 +0200 |
commit | 87a0f519dce09e60bb378d278dff5ee7082d70f1 (patch) | |
tree | 273be45faf2dfca6d70e70b9e5afd437c08aa1b3 /src/n3.c | |
parent | 6344b9ffe89cd3662bef9b6eca3ad4cc56bb608c (diff) | |
download | serd-87a0f519dce09e60bb378d278dff5ee7082d70f1.tar.gz serd-87a0f519dce09e60bb378d278dff5ee7082d70f1.tar.bz2 serd-87a0f519dce09e60bb378d278dff5ee7082d70f1.zip |
Add Env to Sink
This isn't technically necessary for any sink, but is a pattern common to every
sink implementation in serd, so having it here reduces boilerplate and
parameters in user code.
Diffstat (limited to 'src/n3.c')
-rw-r--r-- | src/n3.c | 20 |
1 files changed, 8 insertions, 12 deletions
@@ -18,7 +18,6 @@ #include "node.h" #include "reader.h" #include "serd_internal.h" -#include "sink.h" #include "stack.h" #include "string_utils.h" #include "uri_utils.h" @@ -982,8 +981,8 @@ read_anon(SerdReader* reader, ReadContext ctx, bool subject, SerdNode** dest) *ctx.flags = old_flags; } - if (reader->sink->end && (!subject || !empty)) { - reader->sink->end(reader->sink->handle, *dest); + if (!subject || !empty) { + serd_sink_write_end(reader->sink, *dest); } return (eat_byte_check(reader, ']') == ']') ? SERD_SUCCESS @@ -1285,10 +1284,8 @@ read_base(SerdReader* reader, bool sparql, bool token) read_ws_star(reader); SerdNode* uri = NULL; TRY(st, read_IRIREF(reader, &uri)); - if (reader->sink->base) { - serd_node_zero_pad(uri); - reader->sink->base(reader->sink->handle, uri); - } + serd_node_zero_pad(uri); + serd_sink_write_base(reader->sink, uri); read_ws_star(reader); if (!sparql) { @@ -1324,11 +1321,10 @@ read_prefixID(SerdReader* reader, bool sparql, bool token) SerdNode* uri = NULL; TRY(st, read_IRIREF(reader, &uri)); - if (reader->sink->prefix) { - serd_node_zero_pad(name); - serd_node_zero_pad(uri); - st = reader->sink->prefix(reader->sink->handle, name, uri); - } + serd_node_zero_pad(name); + serd_node_zero_pad(uri); + st = serd_sink_write_prefix(reader->sink, name, uri); + if (!sparql) { read_ws_star(reader); st = eat_byte_check(reader, '.') ? SERD_SUCCESS : SERD_ERR_BAD_SYNTAX; |