[gnumeric] odf: all checks for all xml tags being closed. See #518.
- From: Morten Welinder <mortenw src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnumeric] odf: all checks for all xml tags being closed. See #518.
- Date: Sun, 30 Aug 2020 01:36:30 +0000 (UTC)
commit 81b08a13bdeed4b3db3747f0dffc0b637f2db183
Author: Morten Welinder <terra gnome org>
Date: Sat Aug 29 21:36:06 2020 -0400
odf: all checks for all xml tags being closed. See #518.
plugins/openoffice/ChangeLog | 5 +++++
plugins/openoffice/openoffice-write.c | 17 ++++++++++++++---
2 files changed, 19 insertions(+), 3 deletions(-)
---
diff --git a/plugins/openoffice/ChangeLog b/plugins/openoffice/ChangeLog
index da85cf49e..c9532a3c5 100644
--- a/plugins/openoffice/ChangeLog
+++ b/plugins/openoffice/ChangeLog
@@ -1,3 +1,8 @@
+2020-08-29 Morten Welinder <terra gnome org>
+
+ * openoffice-write.c (odf_xml_end_element_check): New function to
+ ensure we have closed all tags.
+
2020-08-12 Morten Welinder <terra gnome org>
* Release 1.12.48
diff --git a/plugins/openoffice/openoffice-write.c b/plugins/openoffice/openoffice-write.c
index a9d55b2a8..df92601eb 100644
--- a/plugins/openoffice/openoffice-write.c
+++ b/plugins/openoffice/openoffice-write.c
@@ -219,6 +219,17 @@ static void odf_write_gog_style_graphic (GnmOOExport *state, GOStyle const *styl
static void odf_write_gog_style_text (GnmOOExport *state, GOStyle const *style);
+static void
+odf_xml_end_element_check (GsfXMLOut *xout, char const *id)
+{
+ while (TRUE) {
+ const char *cid = gsf_xml_out_end_element (xout);
+ if (g_str_equal (cid, id))
+ return;
+ g_critical ("Unbalanced xml tags while writing, please report");
+ }
+}
+
/*****************************************************************************/
#define PROGRESS_STEPS 500
@@ -5119,7 +5130,7 @@ odf_write_content (GnmOOExport *state, GsfOutput *child)
gsf_xml_out_end_element (state->xml); /* </office:spreadsheet> */
gsf_xml_out_end_element (state->xml); /* </office:body> */
- gsf_xml_out_end_element (state->xml); /* </office:document-content> */
+ odf_xml_end_element_check (state->xml, OFFICE "document-content");
g_object_unref (state->xml);
state->xml = NULL;
}
@@ -5812,7 +5823,7 @@ odf_write_styles (GnmOOExport *state, GsfOutput *child)
odf_write_automatic_styles (state);
odf_write_master_styles (state);
- gsf_xml_out_end_element (state->xml); /* </office:document-styles> */
+ odf_xml_end_element_check (state->xml, OFFICE "document-styles");
g_object_unref (state->xml);
state->xml = NULL;
@@ -6346,7 +6357,7 @@ odf_write_settings (GnmOOExport *state, GsfOutput *child)
odf_write_ooo_settings (state);
gsf_xml_out_end_element (state->xml); /* </office:settings> */
- gsf_xml_out_end_element (state->xml); /* </office:document-settings> */
+ odf_xml_end_element_check (state->xml, OFFICE "document-settings");
g_object_unref (state->xml);
state->xml = NULL;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]