From d1f58b10f687050dd097c5a60becf62c35deee68 Mon Sep 17 00:00:00 2001 From: Michal Privoznik Date: Tue, 21 Nov 2023 10:40:36 +0100 Subject: [PATCH] vbox_snapshot_conf: Keep indent in snapshot XML MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit As mentioned in previous commit, VirtualBox has its own snapshot XML which we parse, change and then format back. During this, we ought to keep the indentation to produce better looking result (especially when we want to compare the output in tests later on, like we do in vboxsnapshotxmltest). Signed-off-by: Michal Privoznik Reviewed-by: Ján Tomko --- src/vbox/vbox_snapshot_conf.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/vbox/vbox_snapshot_conf.c b/src/vbox/vbox_snapshot_conf.c index 467255f77f..89cd685954 100644 --- a/src/vbox/vbox_snapshot_conf.c +++ b/src/vbox/vbox_snapshot_conf.c @@ -25,6 +25,7 @@ #include "virstring.h" #include "virxml.h" +#include #include #define VIR_FROM_THIS VIR_FROM_VBOX @@ -364,12 +365,11 @@ virVBoxSnapshotConfSerializeSnapshot(xmlNodePtr node, xmlParserErrors parseError = XML_ERR_OK; char *uuid = NULL; char *timeStamp = NULL; - g_auto(GStrv) firstRegex = NULL; int firstRegexResult = 0; g_auto(GStrv) secondRegex = NULL; int secondRegexResult = 0; - const int parseFlags = XML_PARSE_NONET; + const int parseFlags = XML_PARSE_NONET | XML_PARSE_NOBLANKS; uuid = g_strdup_printf("{%s}", snapshot->uuid); @@ -940,12 +940,14 @@ virVBoxSnapshotConfSaveVboxFile(virVBoxSnapshotConfMachine *machine, xmlParserErrors parseError = XML_ERR_OK; char *currentSnapshot = NULL; char *timeStamp = NULL; - g_auto(GStrv) firstRegex = NULL; int firstRegexResult = 0; g_auto(GStrv) secondRegex = NULL; int secondRegexResult = 0; - const int parseFlags = XML_PARSE_NONET; + const int parseFlags = XML_PARSE_NONET | XML_PARSE_NOBLANKS; + int oldIndentTreeOutput = xmlIndentTreeOutput; + + xmlIndentTreeOutput = 1; if (machine == NULL) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", @@ -1127,6 +1129,8 @@ virVBoxSnapshotConfSaveVboxFile(virVBoxSnapshotConfMachine *machine, ret = 0; cleanup: + xmlIndentTreeOutput = oldIndentTreeOutput; + VIR_FREE(currentSnapshot); VIR_FREE(timeStamp);