
On Thu, Oct 20, 2011 at 12:14:57PM +0200, Peter Krempa wrote:
On 09/29/2011 06:22 PM, Eric Blake wrote:
The improvements to virBuffer, along with a paradigm shift to pass the original buffer through rather than creating a second buffer, allow us to shave off quite a few lines of code.
* src/util/sysinfo.h (virSysinfoFormat): Alter signature. * src/util/sysinfo.c (virSysinfoFormat, virSysinfoBIOSFormat) (virSysinfoSystemFormat, virSysinfoProcessorFormat) (virSysinfoMemoryFormat): Change indentation parameter. * src/conf/domain_conf.c (virDomainSysinfoDefFormat): Adjust caller. * src/qemu/qemu_driver.c (qemuGetSysinfo): Likewise. --- src/conf/domain_conf.c | 12 +- src/qemu/qemu_driver.c | 9 +- src/util/sysinfo.c | 399 ++++++++++++++++-------------------------------- src/util/sysinfo.h | 3 +- 4 files changed, 147 insertions(+), 276 deletions(-)
I'd squash in the attached patch, but it's not necessary as it gets rid of non automatic indentation whitespace, but makes the code look cleaner :)
I'm not entirely convinced this is a good idea. This means that when looking at the code, it is no longer obvious what the nesting of XML elements is supposed to be - they are all the level. I see the value of the automatic indentation code, being to allow us to embed 1 XML document, inside another XML document. eg domain conf XML, inside QEMU state XML. I don't think we should use it to remove indentation in all our code.
diff --git a/src/util/sysinfo.c b/src/util/sysinfo.c index de3108a..53636b6 100644 --- a/src/util/sysinfo.c +++ b/src/util/sysinfo.c @@ -521,16 +521,18 @@ virSysinfoBIOSFormat(virBufferPtr buf, virSysinfoDefPtr def) !def->bios_date && !def->bios_release) return;
- virBufferAddLit(buf, " <bios>\n"); - virBufferEscapeString(buf, " <entry name='vendor'>%s</entry>\n", + virBufferAddLit(buf, "<bios>\n"); + virBufferAdjustIndent(buf, 2); + virBufferEscapeString(buf, "<entry name='vendor'>%s</entry>\n", def->bios_vendor); - virBufferEscapeString(buf, " <entry name='version'>%s</entry>\n", + virBufferEscapeString(buf, "<entry name='version'>%s</entry>\n", def->bios_version); - virBufferEscapeString(buf, " <entry name='date'>%s</entry>\n", + virBufferEscapeString(buf, "<entry name='date'>%s</entry>\n", def->bios_date); - virBufferEscapeString(buf, " <entry name='release'>%s</entry>\n", + virBufferEscapeString(buf, "<entry name='release'>%s</entry>\n", def->bios_release); - virBufferAddLit(buf, " </bios>\n"); + virBufferAdjustIndent(buf, -2); + virBufferAddLit(buf, "</bios>\n"); }
static void @@ -541,22 +543,24 @@ virSysinfoSystemFormat(virBufferPtr buf, virSysinfoDefPtr def) !def->system_uuid && !def->system_sku && !def->system_family) return;
- virBufferAddLit(buf, " <system>\n"); - virBufferEscapeString(buf, " <entry name='manufacturer'>%s</entry>\n", + virBufferAddLit(buf, "<system>\n"); + virBufferAdjustIndent(buf, 2); + virBufferEscapeString(buf, "<entry name='manufacturer'>%s</entry>\n", def->system_manufacturer); - virBufferEscapeString(buf, " <entry name='product'>%s</entry>\n", + virBufferEscapeString(buf, "<entry name='product'>%s</entry>\n", def->system_product); - virBufferEscapeString(buf, " <entry name='version'>%s</entry>\n", + virBufferEscapeString(buf, "<entry name='version'>%s</entry>\n", def->system_version); - virBufferEscapeString(buf, " <entry name='serial'>%s</entry>\n", + virBufferEscapeString(buf, "<entry name='serial'>%s</entry>\n", def->system_serial); - virBufferEscapeString(buf, " <entry name='uuid'>%s</entry>\n", + virBufferEscapeString(buf, "<entry name='uuid'>%s</entry>\n", def->system_uuid); - virBufferEscapeString(buf, " <entry name='sku'>%s</entry>\n", + virBufferEscapeString(buf, "<entry name='sku'>%s</entry>\n", def->system_sku); - virBufferEscapeString(buf, " <entry name='family'>%s</entry>\n", + virBufferEscapeString(buf, "<entry name='family'>%s</entry>\n", def->system_family); - virBufferAddLit(buf, " </system>\n"); + virBufferAdjustIndent(buf, -2); + virBufferAddLit(buf, "</system>\n"); }
static void @@ -581,8 +585,8 @@ virSysinfoProcessorFormat(virBufferPtr buf, virSysinfoDefPtr def) !processor->processor_part_number) continue;
- virBufferAddLit(buf, " <processor>\n"); - virBufferAdjustIndent(buf, 4); + virBufferAddLit(buf, "<processor>\n"); + virBufferAdjustIndent(buf, 2); virBufferEscapeString(buf, "<entry name='socket_destination'>%s</entry>\n", processor->processor_socket_destination); @@ -606,8 +610,8 @@ virSysinfoProcessorFormat(virBufferPtr buf, virSysinfoDefPtr def) processor->processor_serial_number); virBufferEscapeString(buf, "<entry name='part_number'>%s</entry>\n", processor->processor_part_number); - virBufferAdjustIndent(buf, -4); - virBufferAddLit(buf, " </processor>\n"); + virBufferAdjustIndent(buf, -2); + virBufferAddLit(buf, "</processor>\n"); } }
@@ -632,34 +636,30 @@ virSysinfoMemoryFormat(virBufferPtr buf, virSysinfoDefPtr def) !memory->memory_part_number) continue;
- virBufferAddLit(buf, " <memory_device>\n"); - virBufferEscapeString(buf, " <entry name='size'>%s</entry>\n", + virBufferAddLit(buf, "<memory_device>\n"); + virBufferAdjustIndent(buf, 2); + virBufferEscapeString(buf, "<entry name='size'>%s</entry>\n", memory->memory_size); - virBufferEscapeString(buf, - " <entry name='form_factor'>%s</entry>\n", + virBufferEscapeString(buf, "<entry name='form_factor'>%s</entry>\n", memory->memory_form_factor); - virBufferEscapeString(buf, " <entry name='locator'>%s</entry>\n", + virBufferEscapeString(buf, "<entry name='locator'>%s</entry>\n", memory->memory_locator); - virBufferEscapeString(buf, - " <entry name='bank_locator'>%s</entry>\n", + virBufferEscapeString(buf, "<entry name='bank_locator'>%s</entry>\n", memory->memory_bank_locator); - virBufferEscapeString(buf, " <entry name='type'>%s</entry>\n", + virBufferEscapeString(buf, "<entry name='type'>%s</entry>\n", memory->memory_type); - virBufferEscapeString(buf, - " <entry name='type_detail'>%s</entry>\n", + virBufferEscapeString(buf, "<entry name='type_detail'>%s</entry>\n", memory->memory_type_detail); - virBufferEscapeString(buf, " <entry name='speed'>%s</entry>\n", + virBufferEscapeString(buf, "<entry name='speed'>%s</entry>\n", memory->memory_speed); - virBufferEscapeString(buf, - " <entry name='manufacturer'>%s</entry>\n", + virBufferEscapeString(buf, "<entry name='manufacturer'>%s</entry>\n", memory->memory_manufacturer); - virBufferEscapeString(buf, - " <entry name='serial_number'>%s</entry>\n", + virBufferEscapeString(buf, "<entry name='serial_number'>%s</entry>\n", memory->memory_serial_number); - virBufferEscapeString(buf, - " <entry name='part_number'>%s</entry>\n", + virBufferEscapeString(buf, "<entry name='part_number'>%s</entry>\n", memory->memory_part_number); - virBufferAddLit(buf, " </memory_device>\n"); + virBufferAdjustIndent(buf, -2); + virBufferAddLit(buf, "</memory_device>\n"); } }
@@ -684,12 +684,14 @@ virSysinfoFormat(virBufferPtr buf, virSysinfoDefPtr def) }
virBufferAsprintf(buf, "<sysinfo type='%s'>\n", type); + virBufferAdjustIndent(buf, 2);
virSysinfoBIOSFormat(buf, def); virSysinfoSystemFormat(buf, def); virSysinfoProcessorFormat(buf, def); virSysinfoMemoryFormat(buf, def);
+ virBufferAdjustIndent(buf, -2); virBufferAddLit(buf, "</sysinfo>\n");
if (virBufferError(buf)) {
Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|