From 0c71ed6ce02ee7ff65a5da2cf863c5712a67cb4b Mon Sep 17 00:00:00 2001 From: David Robillard Date: Thu, 5 Jan 2017 16:22:52 -0500 Subject: Add support for NQuads --- src/writer.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'src/writer.c') diff --git a/src/writer.c b/src/writer.c index 0d1ebded..59c05420 100644 --- a/src/writer.c +++ b/src/writer.c @@ -1,5 +1,5 @@ /* - Copyright 2011-2016 David Robillard + Copyright 2011-2017 David Robillard Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above @@ -431,7 +431,8 @@ typedef enum { FIELD_NONE, FIELD_SUBJECT, FIELD_PREDICATE, - FIELD_OBJECT + FIELD_OBJECT, + FIELD_GRAPH } Field; static bool @@ -491,6 +492,7 @@ write_node(SerdWriter* writer, case SERD_CURIE: switch (writer->syntax) { case SERD_NTRIPLES: + case SERD_NQUADS: if (serd_env_expand(writer->env, node, &uri_prefix, &suffix)) { w_err(writer, SERD_ERR_BAD_CURIE, "undefined namespace prefix `%s'\n", node->buf); @@ -661,11 +663,16 @@ serd_writer_write_statement(SerdWriter* writer, switch (writer->syntax) { case SERD_NTRIPLES: + case SERD_NQUADS: TRY(write_node(writer, subject, NULL, NULL, FIELD_SUBJECT, flags)); sink(" ", 1, writer); TRY(write_node(writer, predicate, NULL, NULL, FIELD_PREDICATE, flags)); sink(" ", 1, writer); TRY(write_node(writer, object, datatype, lang, FIELD_OBJECT, flags)); + if (writer->syntax == SERD_NQUADS && graph) { + sink(" ", 1, writer); + TRY(write_node(writer, graph, datatype, lang, FIELD_GRAPH, flags)); + } sink(" .\n", 3, writer); return SERD_SUCCESS; default: -- cgit v1.2.1