mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-07 17:28:15 +00:00
virDomainCapsEnumFormat: Switch to virXMLFormatElement()
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>
This commit is contained in:
parent
78b3400e50
commit
a7789d9324
@ -269,18 +269,14 @@ virDomainCapsEnumFormat(virBuffer *buf,
|
|||||||
const char *capsEnumName,
|
const char *capsEnumName,
|
||||||
virDomainCapsValToStr valToStr)
|
virDomainCapsValToStr valToStr)
|
||||||
{
|
{
|
||||||
|
g_auto(virBuffer) attrBuf = VIR_BUFFER_INITIALIZER;
|
||||||
|
g_auto(virBuffer) childBuf = VIR_BUFFER_INIT_CHILD(buf);
|
||||||
size_t i;
|
size_t i;
|
||||||
|
|
||||||
if (!capsEnum->report)
|
if (!capsEnum->report)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
virBufferAsprintf(buf, "<enum name='%s'", capsEnumName);
|
virBufferAsprintf(&attrBuf, " name='%s'", capsEnumName);
|
||||||
if (!capsEnum->values) {
|
|
||||||
virBufferAddLit(buf, "/>\n");
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
virBufferAddLit(buf, ">\n");
|
|
||||||
virBufferAdjustIndent(buf, 2);
|
|
||||||
|
|
||||||
for (i = 0; i < sizeof(capsEnum->values) * CHAR_BIT; i++) {
|
for (i = 0; i < sizeof(capsEnum->values) * CHAR_BIT; i++) {
|
||||||
const char *val;
|
const char *val;
|
||||||
@ -289,11 +285,10 @@ virDomainCapsEnumFormat(virBuffer *buf,
|
|||||||
continue;
|
continue;
|
||||||
|
|
||||||
if ((val = (valToStr)(i)))
|
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;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user