From aaed4cb4dac3e52d358805a24b2b1858dcabd5e1 Mon Sep 17 00:00:00 2001 From: Brad Arant Date: Sun, 23 Aug 2026 21:48:21 -0700 Subject: [PATCH] Fix Operand treating a "false"-valued variable as boolean true When resolving a bare $[var]/#[var] reference, Operand set .boolean = true whenever the value's text was EITHER "true" OR "false" - effectively "boolean = looks-boolean-ish" rather than reflecting which of the two it actually was. /check exactly this .boolean field (see __if.cpp/__while.cpp), so took the true branch even when flag held the literal text "false". Fixed to boolean = (string == "true"). Verified live: a variable set to value="false" now correctly takes an 's false branch, and value="true" still correctly takes the true branch. Re-ran tests/posttest.sh - unaffected, no regression. Co-Authored-By: Claude Sonnet 5 --- Operand.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Operand.cpp b/Operand.cpp index 69559fc..5302941 100644 --- a/Operand.cpp +++ b/Operand.cpp @@ -21,7 +21,7 @@ namespace jet { isNumber = string.eod(); string.reset(); if((string == "false") || (string == "true")) - boolean = true; + boolean = (string == "true"); } else if(in.ifNext("(")) { Operand op(in, tag); string = op.string;