aboutsummaryrefslogtreecommitdiffstats
path: root/src/n3.c
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2018-12-29 17:36:15 -0500
committerDavid Robillard <d@drobilla.net>2019-12-19 20:57:55 -0500
commitb1e79af3188b1caf2051fca20fba6464e4ce62d4 (patch)
tree9c8d230bd6392440c7779aebdb8e133b0a6f4faa /src/n3.c
parenta20bfec928afe3be17765f7b044ecd7244502689 (diff)
downloadserd-b1e79af3188b1caf2051fca20fba6464e4ce62d4.tar.gz
serd-b1e79af3188b1caf2051fca20fba6464e4ce62d4.tar.bz2
serd-b1e79af3188b1caf2051fca20fba6464e4ce62d4.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.c20
1 files changed, 8 insertions, 12 deletions
diff --git a/src/n3.c b/src/n3.c
index 427281a1..a3075cac 100644
--- a/src/n3.c
+++ b/src/n3.c
@@ -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"
@@ -975,8 +974,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
@@ -1279,10 +1278,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) {
@@ -1318,11 +1315,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;