From b0f5ae703f50b182e5cb28455b549804cc37fb40 Mon Sep 17 00:00:00 2001 From: Cyrille Bagard Date: Mon, 9 Oct 2023 01:12:07 +0200 Subject: Allow Kaitai numbers to be seen as booleans when needed. --- plugins/kaitai/grammar.y | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/plugins/kaitai/grammar.y b/plugins/kaitai/grammar.y index 9e31113..2f2b820 100644 --- a/plugins/kaitai/grammar.y +++ b/plugins/kaitai/grammar.y @@ -1734,6 +1734,26 @@ bool resolve_kaitai_expression_as_boolean(const kaitai_scope_t *locals, const ch if (result) result = reduce_resolved_kaitai_expression(out); + if (result) + { + if (out->type == GVT_UNSIGNED_INTEGER) + { + out->status = (out->unsigned_integer != 0); + out->type = GVT_BOOLEAN; + } + else if (out->type == GVT_SIGNED_INTEGER) + { + out->status = (out->signed_integer != 0); + out->type = GVT_BOOLEAN; + } + else if (out->type == GVT_FLOAT) + { + out->status = (out->floating_number != 0); + out->type = GVT_BOOLEAN; + } + + } + if (result && out->type != GVT_BOOLEAN) { EXIT_RESOLVED_VALUE(*out); -- cgit v0.11.2-87-g4458