json-util: Add JSON_BUILD_PAIR_UNSIGNED_NOT_EQUAL()

This commit is contained in:
Daan De Meyer
2024-08-23 14:57:12 +02:00
parent 0ea8d4bc8c
commit eabff5267e
2 changed files with 7 additions and 3 deletions

View File

@@ -147,6 +147,7 @@ enum {
_JSON_BUILD_PAIR_INTEGER_NON_ZERO,
_JSON_BUILD_PAIR_INTEGER_NON_NEGATIVE,
_JSON_BUILD_PAIR_UNSIGNED_NON_ZERO,
_JSON_BUILD_PAIR_UNSIGNED_NOT_EQUAL,
_JSON_BUILD_PAIR_FINITE_USEC,
_JSON_BUILD_PAIR_STRING_NON_EMPTY,
_JSON_BUILD_PAIR_STRV_NON_EMPTY,
@@ -189,6 +190,7 @@ enum {
#define JSON_BUILD_PAIR_INTEGER_NON_ZERO(name, i) _JSON_BUILD_PAIR_INTEGER_NON_ZERO, (const char*) { name }, (int64_t) { i }
#define JSON_BUILD_PAIR_INTEGER_NON_NEGATIVE(name, i) _JSON_BUILD_PAIR_INTEGER_NON_NEGATIVE, (const char*) { name }, (int64_t) { i }
#define JSON_BUILD_PAIR_UNSIGNED_NON_ZERO(name, u) _JSON_BUILD_PAIR_UNSIGNED_NON_ZERO, (const char*) { name }, (uint64_t) { u }
#define JSON_BUILD_PAIR_UNSIGNED_NOT_EQUAL(name, u, eq) _JSON_BUILD_PAIR_UNSIGNED_NOT_EQUAL, (const char*) { name }, (uint64_t) { u }, (uint64_t) { eq }
#define JSON_BUILD_PAIR_FINITE_USEC(name, u) _JSON_BUILD_PAIR_FINITE_USEC, (const char*) { name }, (usec_t) { u }
#define JSON_BUILD_PAIR_STRING_NON_EMPTY(name, s) _JSON_BUILD_PAIR_STRING_NON_EMPTY, (const char*) { name }, (const char*) { s }
#define JSON_BUILD_PAIR_STRV_NON_EMPTY(name, l) _JSON_BUILD_PAIR_STRV_NON_EMPTY, (const char*) { name }, (char**) { l }

View File

@@ -4398,9 +4398,10 @@ _public_ int sd_json_buildv(sd_json_variant **ret, va_list ap) {
break;
}
case _JSON_BUILD_PAIR_UNSIGNED_NON_ZERO: {
case _JSON_BUILD_PAIR_UNSIGNED_NON_ZERO:
case _JSON_BUILD_PAIR_UNSIGNED_NOT_EQUAL: {
const char *n;
uint64_t u;
uint64_t u, eq;
if (current->expect != EXPECT_OBJECT_KEY) {
r = -EINVAL;
@@ -4409,8 +4410,9 @@ _public_ int sd_json_buildv(sd_json_variant **ret, va_list ap) {
n = va_arg(ap, const char *);
u = va_arg(ap, uint64_t);
eq = command == _JSON_BUILD_PAIR_UNSIGNED_NON_ZERO ? 0 : va_arg(ap, uint64_t);
if (u != 0 && current->n_suppress == 0) {
if (u != eq && current->n_suppress == 0) {
r = sd_json_variant_new_string(&add, n);
if (r < 0)
goto finish;