From b87a602265c3c514dc47fde97f1669e368b4490d Mon Sep 17 00:00:00 2001 From: Sergey Starosek Date: Wed, 16 Jul 2014 12:57:29 +0400 Subject: Suppress XML preamble in CSV export To obey element one should rely on libxslt to do its job instead of writing document himself. Discussion on this subject can be found at http://comments.gmane.org/gmane.comp.gnome.lib.xslt/3839 Signed-off-by: Sergey Starosek Signed-off-by: Dirk Hohndel --- save-xml.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) (limited to 'save-xml.c') diff --git a/save-xml.c b/save-xml.c index 0a76753c6..fe804cb6d 100644 --- a/save-xml.c +++ b/save-xml.c @@ -594,7 +594,7 @@ int export_dives_xslt(const char *filename, const bool selected, const char *exp xmlDoc *doc; xsltStylesheetPtr xslt = NULL; xmlDoc *transformed; - + int res = 0; if (!filename) return report_error("No filename for export"); @@ -618,18 +618,19 @@ int export_dives_xslt(const char *filename, const bool selected, const char *exp return report_error("Failed to open export conversion stylesheet"); transformed = xsltApplyStylesheet(xslt, doc, NULL); - xsltFreeStylesheet(xslt); xmlFreeDoc(doc); /* Write the transformed export to file */ f = subsurface_fopen(filename, "w"); - if (!f) - return report_error("Failed to open %s for writing (%s)", filename, strerror(errno)); - - xmlDocFormatDump(f, transformed, 1); + if (f) { + xsltSaveResultToFile(f, transformed, xslt); + fclose(f); + /* Check write errors? */ + } else { + res = report_error("Failed to open %s for writing (%s)", filename, strerror(errno)); + } + xsltFreeStylesheet(xslt); xmlFreeDoc(transformed); - fclose(f); - /* Check write errors? */ - return 0; + return res; } -- cgit v1.2.3-70-g09d2