diff options
author | David Robillard <d@drobilla.net> | 2020-08-14 17:32:01 +0200 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2022-01-13 23:04:14 -0500 |
commit | 4fd1068b4efea839707a4bdbc5066d5c423825bb (patch) | |
tree | 0f0611c99286b3f067357b0090c66ffd774684ea /src/writer.c | |
parent | 059b4764d6b6b3a9ef04600bda45815c69365d30 (diff) | |
download | serd-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.c | 21 |
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; } |