From a61565bd016d5d165550a4a37849c0ebf6fdd1aa Mon Sep 17 00:00:00 2001
From: Houtan Bastani <houtan@dynare.org>
Date: Tue, 26 Nov 2019 11:11:34 +0100
Subject: [PATCH] macro processor: fix bug in cast of string to bool

The incorrect `equal` template was being used.
---
 src/macro/Expressions.cc | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/macro/Expressions.cc b/src/macro/Expressions.cc
index 59b4ca85..5fd216e4 100644
--- a/src/macro/Expressions.cc
+++ b/src/macro/Expressions.cc
@@ -294,10 +294,10 @@ String::cast_bool() const
 {
   auto f = [](const char& a, const char& b) { return (tolower(a) == tolower(b)); };
 
-  if (string tf = "true"; equal(value.begin(), value.end(), tf.begin(), f))
+  if (string tf = "true"; equal(value.begin(), value.end(), tf.begin(), tf.end(), f))
     return make_shared<Bool>(true, env);
 
-  if (string tf = "false"; equal(value.begin(), value.end(), tf.begin(), f))
+  if (string tf = "false"; equal(value.begin(), value.end(), tf.begin(), tf.end(), f))
     return make_shared<Bool>(false, env);
 
   try
-- 
GitLab