]> xenbits.xensource.com Git - libvirt.git/commitdiff
util: json: Add modifier for adding non-negative long values to JSON objects
authorPeter Krempa <pkrempa@redhat.com>
Thu, 2 Jun 2022 07:37:04 +0000 (09:37 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Fri, 3 Jun 2022 08:09:04 +0000 (10:09 +0200)
Similarly to the 'k' modifier for integers introduce 'K' for long
integers.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
src/util/virjson.c

index 6e13e97e15590859eb8a362249c322c64f87088c..ae970c765377aa4ee38a2f0e66d4707e823c7f94 100644 (file)
@@ -121,6 +121,7 @@ virJSONValueGetType(const virJSONValue *value)
  *
  * I: signed long integer value
  * J: signed long integer value, error if negative
+ * K: signed long integer value, omitted if negative
  * Z: signed long integer value, omitted if zero
  * Y: signed long integer value, omitted if zero, error if negative
  *
@@ -228,6 +229,7 @@ virJSONValueObjectAddVArgs(virJSONValue **objptr,
 
         case 'Z':
         case 'Y':
+        case 'K':
         case 'J':
         case 'I': {
             long long val = va_arg(args, long long);
@@ -242,6 +244,9 @@ virJSONValueObjectAddVArgs(virJSONValue **objptr,
             if (!val && (type == 'Z' || type == 'Y'))
                 continue;
 
+            if (val < 0 && type == 'K')
+                continue;
+
             rc = virJSONValueObjectAppendNumberLong(obj, key, val);
         }   break;