Commit fe70332f authored by Daniel Veillard's avatar Daniel Veillard

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
parent 70ac0e3e
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
......
......@@ -244,9 +244,13 @@ xmlFileOpen (const char *filename) {
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 @@ xmlFileOpenW (const char *filename) {
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 @@ xmlGzfileOpen (const char *filename) {
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 @@ xmlGzfileOpenW (const char *filename, int compression) {
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)
......
......@@ -5193,8 +5193,27 @@ xmlXPathCountFunction(xmlXPathParserContextPtr ctxt, int nargs) {
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);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment