On 04/26/2010 10:44 AM, Stefan Berger wrote:
With this patch I want to enable hex number inputs in the filter XML.
A
number that was entered as hex is also printed as hex unless a string
representing the meaning can be found.
I am also extending the schema and adding a test case. A problem with
the DSCP value is fixed on the way as well.
ACK.
+ format = "%d";
+
+ switch (item->datatype) {
+ case DATATYPE_UINT8_HEX:
+ format = "0x%x";
case DATATYPE_IPMASK:
case DATATYPE_IPV6MASK:
// display all masks in CIDR format
case DATATYPE_UINT8:
storage_ptr = &item->u.u8;
- virBufferVSprintf(buf, "%d", *(uint8_t *)storage_ptr);
+ virBufferVSprintf(buf, format, *(uint8_t *)storage_ptr);
Gcc didn't warn about the use of a non-literal format argument here? At
any rate, if it does start warning, the fix is simple - create a bool
witness, and a ?: expression based on that bool, rather than default
assignment to a variable, similar to what you did here:
case DATATYPE_UINT8:
+ case DATATYPE_UINT8_HEX:
if (snprintf(buf, bufsize, asHex ? "0x%x" : "%d",
--
Eric Blake eblake(a)redhat.com +1-801-349-2682
Libvirt virtualization library
http://libvirt.org