]> xenbits.xensource.com Git - libvirt.git/commitdiff
virDomainCapsEnumFormat: Switch to virXMLFormatElement()
authorMichal Privoznik <mprivozn@redhat.com>
Thu, 5 Jan 2023 07:31:27 +0000 (08:31 +0100)
committerMichal Privoznik <mprivozn@redhat.com>
Thu, 5 Jan 2023 11:35:12 +0000 (12:35 +0100)
We are formatting <enum/> element and its children using
virBufferAddLit(), virBufferAsprintf(), virBufferAdjustIndent(),
etc. Well, we can avoid that when switching to
virXMLFormatElement().

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
src/conf/domain_capabilities.c

index 4e412c0fd86d904e9eb9f7b01e3156159527dcd3..a47b0e3db1834edcb5d49a50e0dd80d1ffb107c9 100644 (file)
@@ -269,18 +269,14 @@ virDomainCapsEnumFormat(virBuffer *buf,
                         const char *capsEnumName,
                         virDomainCapsValToStr valToStr)
 {
+    g_auto(virBuffer) attrBuf = VIR_BUFFER_INITIALIZER;
+    g_auto(virBuffer) childBuf = VIR_BUFFER_INIT_CHILD(buf);
     size_t i;
 
     if (!capsEnum->report)
         return 0;
 
-    virBufferAsprintf(buf, "<enum name='%s'", capsEnumName);
-    if (!capsEnum->values) {
-        virBufferAddLit(buf, "/>\n");
-        return 0;
-    }
-    virBufferAddLit(buf, ">\n");
-    virBufferAdjustIndent(buf, 2);
+    virBufferAsprintf(&attrBuf, " name='%s'", capsEnumName);
 
     for (i = 0; i < sizeof(capsEnum->values) * CHAR_BIT; i++) {
         const char *val;
@@ -289,11 +285,10 @@ virDomainCapsEnumFormat(virBuffer *buf,
             continue;
 
         if ((val = (valToStr)(i)))
-            virBufferAsprintf(buf, "<value>%s</value>\n", val);
+            virBufferAsprintf(&childBuf, "<value>%s</value>\n", val);
     }
-    virBufferAdjustIndent(buf, -2);
-    virBufferAddLit(buf, "</enum>\n");
 
+    virXMLFormatElement(buf, "enum", &attrBuf, &childBuf);
     return 0;
 }