xpath.c: small additional enhancement for boolean compared to nodeset
diff --git a/xpath.c b/xpath.c
index dab0545..b176ed5 100644
--- a/xpath.c
+++ b/xpath.c
@@ -4420,9 +4420,8 @@
 		    ret = (arg1->boolval == arg2->boolval);
 		    break;
 		case XPATH_NUMBER:
-		    if (arg2->floatval) ret = 1;
-		    else ret = 0;
-		    ret = (arg1->boolval == ret);
+		    ret = (arg1->boolval ==
+			   xmlXPathCastNumberToBoolean(arg2->floatval));
 		    break;
 		case XPATH_STRING:
 		    if ((arg2->stringval == NULL) ||
@@ -4451,9 +4450,8 @@
 #endif
 		    break;
 		case XPATH_BOOLEAN:
-		    if (arg1->floatval) ret = 1;
-		    else ret = 0;
-		    ret = (arg2->boolval == ret);
+		    ret = (arg2->boolval==
+			   xmlXPathCastNumberToBoolean(arg1->floatval));
 		    break;
 		case XPATH_STRING:
 		    valuePush(ctxt, arg2);
@@ -4717,7 +4715,7 @@
 		  (arg1->nodesetval->nodeNr == 0)) ret = 0;
 		else 
 		    ret = 1;
-		ret = (ret == arg2->boolval);
+		ret = (ret != arg2->boolval);
 		break;
 	    case XPATH_NUMBER:
 		ret = xmlXPathEqualNodeSetFloat(ctxt, arg1, arg2->floatval, 1);