summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/doc-txt/ChangeLog3
-rw-r--r--src/src/expand.c2
-rw-r--r--test/scripts/0000-Basic/00024
3 files changed, 8 insertions, 1 deletions
diff --git a/doc/doc-txt/ChangeLog b/doc/doc-txt/ChangeLog
index e6684b4e3..7bf9ebbed 100644
--- a/doc/doc-txt/ChangeLog
+++ b/doc/doc-txt/ChangeLog
@@ -24,6 +24,9 @@ PP/06 Extra paranoia around buffer usage at the STARTTLS transition.
PP/07 Catch divide-by-zero in ${eval:...}.
Fixes bugzilla 1102.
+PP/08 Condition negation of bool{}/bool_lax{} did not negate. Fixed.
+ Bugzilla 1104.
+
Exim version 4.75
-----------------
diff --git a/src/src/expand.c b/src/src/expand.c
index fece8c150..2e59c4084 100644
--- a/src/src/expand.c
+++ b/src/src/expand.c
@@ -2558,7 +2558,7 @@ switch(cond_type)
"value \"%s\"", t);
return NULL;
}
- if (yield != NULL) *yield = (boolvalue != 0);
+ if (yield != NULL) *yield = (boolvalue == testfor);
return s;
}
diff --git a/test/scripts/0000-Basic/0002 b/test/scripts/0000-Basic/0002
index 9e427ddb1..625050cef 100644
--- a/test/scripts/0000-Basic/0002
+++ b/test/scripts/0000-Basic/0002
@@ -551,6 +551,8 @@ abcdea abc z ${tr{abcdea}{abc}{z}}
"text " ${if bool{text }{true}{false}} EXPECT: error
" text " ${if bool{ text }{true}{false}} EXPECT: error
"00" ${if bool{00}{true}{false}} EXPECT: false
+"!true" ${if !bool{true}{true}{false}} EXPECT: false
+"!false" ${if !bool{false}{true}{false}} EXPECT: true
"TrUe" ${if bool_lax{TrUe}{true}{false}} EXPECT: true
"FALSE" ${if bool_lax{FALSE}{true}{false}} EXPECT: false
@@ -570,6 +572,8 @@ abcdea abc z ${tr{abcdea}{abc}{z}}
"text " ${if bool_lax{text }{true}{false}} EXPECT: true
" text " ${if bool_lax{ text }{true}{false}} EXPECT: true
"00" ${if bool_lax{00}{true}{false}} EXPECT: true
+"!true" ${if !bool_lax{true}{true}{false}} EXPECT: false
+"!false" ${if !bool_lax{false}{true}{false}} EXPECT: true
# RFC 2047