]> xenbits.xensource.com Git - libvirt.git/commitdiff
virDomainLoaderDefFormat: Use modern XML formatting approach
authorPeter Krempa <pkrempa@redhat.com>
Mon, 28 Mar 2022 13:18:39 +0000 (15:18 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Fri, 8 Apr 2022 07:32:47 +0000 (09:32 +0200)
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
src/conf/domain_conf.c

index 33eace04dcca97a93fc33504bc48e1dce726e8fb..5dd269b28399b4a3767f6f0ef2851c7345c8c41c 100644 (file)
@@ -26949,34 +26949,30 @@ static void
 virDomainLoaderDefFormat(virBuffer *buf,
                          virDomainLoaderDef *loader)
 {
-    const char *readonly = virTristateBoolTypeToString(loader->readonly);
-    const char *secure = virTristateBoolTypeToString(loader->secure);
-    const char *type = virDomainLoaderTypeToString(loader->type);
+    g_auto(virBuffer) loaderAttrBuf = VIR_BUFFER_INITIALIZER;
+    g_auto(virBuffer) loaderChildBuf = VIR_BUFFER_INITIALIZER;
+    g_auto(virBuffer) nvramAttrBuf = VIR_BUFFER_INITIALIZER;
+    g_auto(virBuffer) nvramChildBuf = VIR_BUFFER_INITIALIZER;
 
-    virBufferAddLit(buf, "<loader");
+    if (loader->readonly != VIR_TRISTATE_BOOL_ABSENT)
+        virBufferAsprintf(&loaderAttrBuf, " readonly='%s'",
+                          virTristateBoolTypeToString(loader->readonly));
 
-    if (loader->readonly)
-        virBufferAsprintf(buf, " readonly='%s'", readonly);
-
-    if (loader->secure)
-        virBufferAsprintf(buf, " secure='%s'", secure);
+    if (loader->secure != VIR_TRISTATE_BOOL_ABSENT)
+        virBufferAsprintf(&loaderAttrBuf, " secure='%s'",
+                          virTristateBoolTypeToString(loader->secure));
 
     if (loader->type != VIR_DOMAIN_LOADER_TYPE_NONE)
-        virBufferAsprintf(buf, " type='%s'", type);
+        virBufferAsprintf(&loaderAttrBuf, " type='%s'",
+                          virDomainLoaderTypeToString(loader->type));
 
-    if (loader->path)
-        virBufferEscapeString(buf, ">%s</loader>\n", loader->path);
-    else
-        virBufferAddLit(buf, "/>\n");
+    virBufferEscapeString(&loaderChildBuf, "%s", loader->path);
 
-    if (loader->nvram || loader->nvramTemplate) {
-        virBufferAddLit(buf, "<nvram");
-        virBufferEscapeString(buf, " template='%s'", loader->nvramTemplate);
-        if (loader->nvram)
-            virBufferEscapeString(buf, ">%s</nvram>\n", loader->nvram);
-        else
-            virBufferAddLit(buf, "/>\n");
-    }
+    virXMLFormatElementInternal(buf, "loader", &loaderAttrBuf, &loaderChildBuf, false, false);
+
+    virBufferEscapeString(&nvramAttrBuf, " template='%s'", loader->nvramTemplate);
+    virBufferEscapeString(&nvramChildBuf, "%s", loader->nvram);
+    virXMLFormatElementInternal(buf, "nvram", &nvramAttrBuf, &nvramChildBuf, false, false);
 }
 
 static void