From 1225ea7c0c4c451a5b47eeecef8a945d2c4a8388 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Wed, 4 Jul 2007 04:09:25 +0000 Subject: Fix model URI serialization relative to base URI. git-svn-id: http://svn.drobilla.net/lad/raul@574 a436a847-0d15-0410-975c-d299462d15a1 --- src/RDFModel.cpp | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/RDFModel.cpp b/src/RDFModel.cpp index 9d8fac1..df5936d 100644 --- a/src/RDFModel.cpp +++ b/src/RDFModel.cpp @@ -118,17 +118,23 @@ Model::serialize_to_file_handle(FILE* fd) /** Begin a serialization to a file. + * + * \a uri must be a local (file://) URI. * * This must be called before any write methods. */ void -Model::serialize_to_file(const string& filename) +Model::serialize_to_file(const Glib::ustring& uri_str) { - _serializer = librdf_new_serializer(_world.world(), RDF_LANG, NULL, NULL); - setup_prefixes(); - librdf_serializer_serialize_model_to_file(_serializer, filename.c_str(), NULL, _model); - librdf_free_serializer(_serializer); - _serializer = NULL; + librdf_uri* uri = librdf_new_uri(_world.world(), (const unsigned char*)uri_str.c_str()); + if (uri && librdf_uri_is_file_uri(uri)) { + _serializer = librdf_new_serializer(_world.world(), RDF_LANG, NULL, NULL); + setup_prefixes(); + librdf_serializer_serialize_model_to_file(_serializer, librdf_uri_to_filename(uri), uri, _model); + librdf_free_serializer(_serializer); + _serializer = NULL; + } + librdf_free_uri(uri); } -- cgit v1.2.1