ref: 91f737e4effa109cb22bc1b2000f457fa1ad88db
parent: 660d7d81eb1adcc2b108d0b150e3439972b1ec0a
author: Peter Mikkelsen <[email protected]>
date: Wed Jul 7 11:11:18 EDT 2021
Fix compare/3 for variables named _. They are never equal
--- a/builtins.c
+++ b/builtins.c
@@ -247,7 +247,9 @@
/* 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);