count() was broken on Result Value Tree fixed file:/// accesses on _WIN32

* xpath.c: count() was broken on Result Value Tree
* xmlIO.c: fixed file:/// accesses on _WIN32
Daniel
diff --git a/ChangeLog b/ChangeLog
index 556bb7c..70b842c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Tue Aug 14 14:16:24 CEST 2001 Daniel Veillard <daniel@veillard.com>
+
+	* xpath.c: count() was broken on Result Value Tree
+	* xmlIO.c: fixed file:/// accesses on _WIN32
+
 Mon Aug 13 13:22:53 CEST 2001 Daniel Veillard <daniel@veillard.com>
 
 	* libxml.m4: s/LIBXML_VERSION_NUMBER/LIBXML_VERSION/ seems the
diff --git a/xmlIO.c b/xmlIO.c
index c21a168..b78ccbe 100644
--- a/xmlIO.c
+++ b/xmlIO.c
@@ -244,9 +244,13 @@
 
     if (!strncmp(filename, "file://localhost", 16))
 	path = &filename[16];
-    else if (!strncmp(filename, "file:///", 8))
+    else if (!strncmp(filename, "file:///", 8)) {
+#ifdef _WIN32
+	path = &filename[8];
+#else
 	path = &filename[7];
-    else 
+#endif
+    } else 
 	path = filename;
 
     if (path == NULL)
@@ -283,9 +287,13 @@
 
     if (!strncmp(filename, "file://localhost", 16))
 	path = &filename[16];
-    else if (!strncmp(filename, "file:///", 8))
+    else if (!strncmp(filename, "file:///", 8)) {
+#ifdef _WIN32
+	path = &filename[8];
+#else
 	path = &filename[7];
-    else 
+#endif
+    } else 
 	path = filename;
 
     if (path == NULL)
@@ -387,9 +395,13 @@
 
     if (!strncmp(filename, "file://localhost", 16))
 	path = &filename[16];
-    else if (!strncmp(filename, "file:///", 8))
+    else if (!strncmp(filename, "file:///", 8)) {
+#ifdef _WIN32
+	path = &filename[8];
+#else
 	path = &filename[7];
-    else 
+#endif
+    } else 
 	path = filename;
 
     if (path == NULL)
@@ -425,9 +437,13 @@
 
     if (!strncmp(filename, "file://localhost", 16))
 	path = &filename[16];
-    else if (!strncmp(filename, "file:///", 8))
+    else if (!strncmp(filename, "file:///", 8)) {
+#ifdef _WIN32
+	path = &filename[8];
+#else
 	path = &filename[7];
-    else 
+#endif
+    } else 
 	path = filename;
 
     if (path == NULL)
diff --git a/xpath.c b/xpath.c
index 1c8c1a8..2de4e1d 100644
--- a/xpath.c
+++ b/xpath.c
@@ -5193,8 +5193,27 @@
 
     if ((cur == NULL) || (cur->nodesetval == NULL))
 	valuePush(ctxt, xmlXPathNewFloat((double) 0));
-    else
+    else if (cur->type == XPATH_NODESET) {
 	valuePush(ctxt, xmlXPathNewFloat((double) cur->nodesetval->nodeNr));
+    } else {
+	if ((cur->nodesetval->nodeNr != 1) ||
+	    (cur->nodesetval->nodeTab == NULL)) {
+	    valuePush(ctxt, xmlXPathNewFloat((double) 0));
+	} else {
+	    xmlNodePtr tmp;
+	    int i = 0;
+
+	    tmp = cur->nodesetval->nodeTab[0];
+	    if (tmp != NULL) {
+		tmp = tmp->children;
+		while (tmp != NULL) {
+		    tmp = tmp->next;
+		    i++;
+		}
+	    }
+	    valuePush(ctxt, xmlXPathNewFloat((double) i));
+	}
+    }
     xmlXPathFreeObject(cur);
 }