diff options
Diffstat (limited to 'src/extension/implementation/xslt.cpp')
| -rw-r--r-- | src/extension/implementation/xslt.cpp | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/extension/implementation/xslt.cpp b/src/extension/implementation/xslt.cpp index c929ba19a..8b6e6c701 100644 --- a/src/extension/implementation/xslt.cpp +++ b/src/extension/implementation/xslt.cpp @@ -29,6 +29,7 @@ #include <libxml/parser.h> #include <libxslt/transform.h> +#include <libxslt/xsltutils.h> Inkscape::XML::Document * sp_repr_do_read (xmlDocPtr doc, const gchar * default_ns); @@ -217,11 +218,19 @@ XSLT::save(Inkscape::Extension::Output */*module*/, SPDocument *doc, gchar const params[0] = NULL; xmlDocPtr newdoc = xsltApplyStylesheet(_stylesheet, svgdoc, params); - xmlSaveFile(filename, newdoc); + //xmlSaveFile(filename, newdoc); + int success = xsltSaveResultToFilename(filename, newdoc, _stylesheet, 0); xmlFreeDoc(newdoc); xmlFreeDoc(svgdoc); + xsltCleanupGlobals(); + xmlCleanupParser(); + + if (success < 1) { + throw Inkscape::Extension::Output::save_failed(); + } + return; } |
