diff options
author | Gaia Clary <gaia.clary@machinimatrix.org> | 2016-02-20 23:42:12 +0300 |
---|---|---|
committer | Gaia Clary <gaia.clary@machinimatrix.org> | 2016-02-20 23:42:12 +0300 |
commit | 4e95807db3e17c647001ba4112371217d0d2506b (patch) | |
tree | 1b4e92587f2ce8d80d93806549f5a49bdba76e22 /source/blender/collada | |
parent | edf9e8d4dc676ea0789297369d4d78be8234f4ef (diff) |
fix T47484: Added proper error reporting for Collada Exporter
Diffstat (limited to 'source/blender/collada')
-rw-r--r-- | source/blender/collada/DocumentExporter.cpp | 11 | ||||
-rw-r--r-- | source/blender/collada/DocumentExporter.h | 2 | ||||
-rw-r--r-- | source/blender/collada/collada.cpp | 4 |
3 files changed, 11 insertions, 6 deletions
diff --git a/source/blender/collada/DocumentExporter.cpp b/source/blender/collada/DocumentExporter.cpp index 71c9391c6ac..90e53fe5eb0 100644 --- a/source/blender/collada/DocumentExporter.cpp +++ b/source/blender/collada/DocumentExporter.cpp @@ -178,7 +178,7 @@ static COLLADABU::NativeString make_temp_filepath(const char *name, const char * // COLLADA allows this through multiple <channel>s in <animation>. // For this to work, we need to know objects that use a certain action. -void DocumentExporter::exportCurrentScene(Scene *sce) +int DocumentExporter::exportCurrentScene(Scene *sce) { PointerRNA sceneptr, unit_settings; PropertyRNA *system; /* unused , *scale; */ @@ -331,8 +331,13 @@ void DocumentExporter::exportCurrentScene(Scene *sce) // Finally move the created document into place int status = BLI_rename(native_filename.c_str(), this->export_settings->filepath); - fprintf(stdout, "Collada moved buffer : %s (Status: %d)\n", this->export_settings->filepath, status); - + if (status != 0) + { + fprintf(stdout, "Collada: Can't move buffer %s\n", native_filename.c_str()); + fprintf(stdout, " to its destination %s\n", this->export_settings->filepath); + fprintf(stdout, "Reason : %s\n", errno ? strerror(errno) : "unknown error"); + } + return status; } void DocumentExporter::exportScenes(const char *filename) diff --git a/source/blender/collada/DocumentExporter.h b/source/blender/collada/DocumentExporter.h index 84c0610282e..6e3c1ecd7cd 100644 --- a/source/blender/collada/DocumentExporter.h +++ b/source/blender/collada/DocumentExporter.h @@ -39,7 +39,7 @@ class DocumentExporter { public: DocumentExporter(const ExportSettings *export_settings); - void exportCurrentScene(Scene *sce); + int exportCurrentScene(Scene *sce); void exportScenes(const char *filename); private: const ExportSettings *export_settings; diff --git a/source/blender/collada/collada.cpp b/source/blender/collada/collada.cpp index 4ca21869ec2..b1cbc01a9a6 100644 --- a/source/blender/collada/collada.cpp +++ b/source/blender/collada/collada.cpp @@ -133,11 +133,11 @@ int collada_export(Scene *sce, } DocumentExporter exporter(&export_settings); - exporter.exportCurrentScene(sce); + int status = exporter.exportCurrentScene(sce); BLI_linklist_free(export_settings.export_set, NULL); - return export_count; + return (status) ? -1:export_count; } /* end extern C */ |