summaryrefslogtreecommitdiff
path: root/builtins.c
diff options
context:
space:
mode:
authorPeter Mikkelsen <peter@pmikkelsen.com>2021-07-07 15:11:18 +0000
committerPeter Mikkelsen <peter@pmikkelsen.com>2021-07-07 15:11:18 +0000
commit91f737e4effa109cb22bc1b2000f457fa1ad88db (patch)
tree69c35d67824546e46b0f846b5dfc94b0f8e46eae /builtins.c
parent660d7d81eb1adcc2b108d0b150e3439972b1ec0a (diff)
Fix compare/3 for variables named _. They are never equal
Diffstat (limited to 'builtins.c')
-rw-r--r--builtins.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/builtins.c b/builtins.c
index 1dede9e..b2c7da6 100644
--- a/builtins.c
+++ b/builtins.c
@@ -247,7 +247,9 @@ compareterms(Term *t1, Term *t2)
/* Same type term */
switch(t1->tag){
case VariableTerm:
- if(t1->clausenr == t2->clausenr)
+ if(runestrcmp(t1->text, L"_") == 0 && runestrcmp(t2->text, L"_") == 0)
+ result = 1; /* Special case since _ and _ are always different */
+ else if(t1->clausenr == t2->clausenr)
result = runestrcmp(t1->text, t2->text);
else
result = Compare(t1->clausenr, t2->clausenr);