aboutsummaryrefslogtreecommitdiffstats
path: root/src/writer.c
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2020-08-14 17:32:01 +0200
committerDavid Robillard <d@drobilla.net>2022-01-13 23:04:14 -0500
commit4fd1068b4efea839707a4bdbc5066d5c423825bb (patch)
tree0f0611c99286b3f067357b0090c66ffd774684ea /src/writer.c
parent059b4764d6b6b3a9ef04600bda45815c69365d30 (diff)
downloadserd-4fd1068b4efea839707a4bdbc5066d5c423825bb.tar.gz
serd-4fd1068b4efea839707a4bdbc5066d5c423825bb.tar.bz2
serd-4fd1068b4efea839707a4bdbc5066d5c423825bb.zip
Add empty syntax type for suppressing output
Diffstat (limited to 'src/writer.c')
-rw-r--r--src/writer.c21
1 files changed, 10 insertions, 11 deletions
diff --git a/src/writer.c b/src/writer.c
index cd6ce613..3e0faa1e 100644
--- a/src/writer.c
+++ b/src/writer.c
@@ -792,9 +792,8 @@ write_curie(SerdWriter* const writer, const SerdNode* const node)
SerdStringView prefix = {NULL, 0};
SerdStringView suffix = {NULL, 0};
SerdStatus st = SERD_SUCCESS;
- switch (writer->syntax) {
- case SERD_NTRIPLES:
- case SERD_NQUADS:
+
+ if (writer->syntax == SERD_NTRIPLES || writer->syntax == SERD_NQUADS) {
if ((st = serd_env_expand_in_place(writer->env, node, &prefix, &suffix))) {
serd_world_errorf(writer->world,
st,
@@ -802,18 +801,14 @@ write_curie(SerdWriter* const writer, const SerdNode* const node)
serd_node_string(node));
return st;
}
+
TRY(st, esink("<", 1, writer));
TRY(st, ewrite_uri(writer, prefix.buf, prefix.len));
TRY(st, ewrite_uri(writer, suffix.buf, suffix.len));
- TRY(st, esink(">", 1, writer));
- break;
- case SERD_TURTLE:
- case SERD_TRIG:
- TRY(st, write_lname(writer, serd_node_string(node), node->length));
- break;
+ return esink(">", 1, writer);
}
- return st;
+ return write_lname(writer, serd_node_string(node), node->length);
}
SERD_WARN_UNUSED_RESULT static SerdStatus
@@ -922,6 +917,10 @@ serd_writer_write_statement(SerdWriter* const writer,
assert(!((flags & SERD_ANON_S) && (flags & SERD_LIST_S)));
assert(!((flags & SERD_ANON_O) && (flags & SERD_LIST_O)));
+ if (writer->syntax == SERD_SYNTAX_EMPTY) {
+ return SERD_SUCCESS;
+ }
+
SerdStatus st = SERD_SUCCESS;
const SerdNode* const subject = serd_statement_subject(statement);
const SerdNode* const predicate = serd_statement_predicate(statement);
@@ -1064,7 +1063,7 @@ serd_writer_write_statement(SerdWriter* const writer,
SERD_WARN_UNUSED_RESULT static SerdStatus
serd_writer_end_anon(SerdWriter* writer, const SerdNode* node)
{
- if (writer->syntax == SERD_NTRIPLES || writer->syntax == SERD_NQUADS) {
+ if (writer->syntax != SERD_TURTLE && writer->syntax != SERD_TRIG) {
return SERD_SUCCESS;
}