]> git.ozlabs.org Git - ccan/commitdiff
rune: make error message better when integer parameter is missing.
authorRusty Russell <rusty@rustcorp.com.au>
Sun, 3 Mar 2024 22:33:11 +0000 (09:03 +1030)
committerRusty Russell <rusty@rustcorp.com.au>
Mon, 24 Jun 2024 02:46:26 +0000 (12:16 +0930)
We say "is not an integer field" when a field is missing entirely,
which is technically true but confusing.  Say "not present" like
every other condition does.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
ccan/rune/rune.c

index 84296c66b33d8707fa7a6a162e245205f04a0daf..efbd8c49e797e0d20399e41d4a7f17550c8c13b0 100644 (file)
@@ -345,6 +345,8 @@ static const char *rune_alt_single(const tal_t *ctx,
                                 memmem(fieldval_str, fieldval_strlen,
                                        alt->value, strlen(alt->value)));
        case RUNE_COND_INT_LESS:
+               if (!fieldval_str && !fieldval_int)
+                       return tal_fmt(ctx, "%s not present", alt->fieldname);
                err = integer_compare_valid(ctx, fieldval_int,
                                            alt, &runeval_int);
                if (err)
@@ -352,6 +354,8 @@ static const char *rune_alt_single(const tal_t *ctx,
                return cond_test(ctx, alt, "is greater or equal to",
                                 *fieldval_int < runeval_int);
        case RUNE_COND_INT_GREATER:
+               if (!fieldval_str && !fieldval_int)
+                       return tal_fmt(ctx, "%s not present", alt->fieldname);
                err = integer_compare_valid(ctx, fieldval_int,
                                            alt, &runeval_int);
                if (err)