From 8ab3fb05423450acc12267cac9b907a10013beb7 Mon Sep 17 00:00:00 2001 From: Jef Driesen Date: Sun, 27 Mar 2016 11:37:05 +0200 Subject: [PATCH] Always close the xml tags. The dive and sample xml tags were not closed properly if an error occurred during parsing. --- examples/output_xml.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/examples/output_xml.c b/examples/output_xml.c index a36e62a..e4e9b51 100644 --- a/examples/output_xml.c +++ b/examples/output_xml.c @@ -154,6 +154,11 @@ dctool_xml_output_write (dctool_output_t *abstract, dc_parser_t *parser, const u dctool_xml_output_t *output = (dctool_xml_output_t *) abstract; dc_status_t status = DC_STATUS_SUCCESS; + // Initialize the sample data. + sample_data_t sampledata = {0}; + sampledata.nsamples = 0; + sampledata.ostream = output->ostream; + fprintf (output->ostream, "\n%u\n%u\n", abstract->number, size); if (fingerprint) { @@ -331,11 +336,6 @@ dctool_xml_output_write (dctool_output_t *abstract, dc_parser_t *parser, const u atmospheric); } - // Initialize the sample data. - sample_data_t sampledata = {0}; - sampledata.nsamples = 0; - sampledata.ostream = output->ostream; - // Parse the sample data. message ("Parsing the sample data.\n"); status = dc_parser_samples_foreach (parser, sample_cb, &sampledata); @@ -344,11 +344,12 @@ dctool_xml_output_write (dctool_output_t *abstract, dc_parser_t *parser, const u goto cleanup; } +cleanup: + if (sampledata.nsamples) fprintf (output->ostream, "\n"); fprintf (output->ostream, "\n"); -cleanup: return status; }