From 4e192d2e06b8219d1c79c8ab63fac0bf1d44bee7 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Mon, 4 Mar 2024 09:03:11 +1030 Subject: [PATCH] rune: make error message better when integer parameter is missing. 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 --- ccan/rune/rune.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ccan/rune/rune.c b/ccan/rune/rune.c index 84296c66..efbd8c49 100644 --- a/ccan/rune/rune.c +++ b/ccan/rune/rune.c @@ -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) -- 2.39.5