From 48bb318eca1e23f655238515f141e83577dda4e9 Mon Sep 17 00:00:00 2001 From: Klaus Aehlig Date: Thu, 7 Apr 2022 12:01:16 +0200 Subject: expression evaluation: clean up truth values For historic reasons, we considerd special strings as false values. Drop that behavior in favor of a clean LISP-like semantics: everything is true that is not empty. --- src/buildtool/build_engine/expression/evaluator.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/buildtool/build_engine/expression/evaluator.cpp') diff --git a/src/buildtool/build_engine/expression/evaluator.cpp b/src/buildtool/build_engine/expression/evaluator.cpp index e573bf36..a768f43c 100644 --- a/src/buildtool/build_engine/expression/evaluator.cpp +++ b/src/buildtool/build_engine/expression/evaluator.cpp @@ -29,7 +29,7 @@ auto ValueIsTrue(ExpressionPtr const& val) -> bool { return *val != number_t{0}; } if (val->IsString()) { - return *val != ""s and *val != "0"s and *val != "NO"s; + return *val != ""s; } if (val->IsList()) { return not val->List().empty(); -- cgit v1.2.3