patch from Mark Vakoc to fix xmlNodeGetPath() Daniel
* tree.c: patch from Mark Vakoc to fix xmlNodeGetPath()
Daniel
diff --git a/tree.c b/tree.c
index ca050f7..c7b2a5a 100644
--- a/tree.c
+++ b/tree.c
@@ -3438,7 +3438,7 @@
xmlChar *buffer = NULL, *temp;
size_t buf_len;
xmlChar *buf;
- char sep;
+ char *sep;
const char *name;
char nametemp[100];
int occur = 0;
@@ -3460,16 +3460,16 @@
cur = node;
do {
name = "";
- sep = '?';
+ sep = "?";
occur = 0;
if ((cur->type == XML_DOCUMENT_NODE) ||
(cur->type == XML_HTML_DOCUMENT_NODE)) {
if (buffer[0] == '/')
break;
- sep = '/';
+ sep = "/";
next = NULL;
} else if (cur->type == XML_ELEMENT_NODE) {
- sep = '/';
+ sep = "/";
name = (const char *) cur->name;
if (cur->ns) {
snprintf(nametemp, sizeof(nametemp) - 1,
@@ -3501,7 +3501,7 @@
} else
occur++;
} else if (cur->type == XML_ATTRIBUTE_NODE) {
- sep = '@';
+ sep = "/@";
name = (const char *) (((xmlAttrPtr) cur)->name);
next = ((xmlAttrPtr) cur)->parent;
} else {
@@ -3530,10 +3530,10 @@
buf = temp;
}
if (occur == 0)
- snprintf((char *) buf, buf_len, "%c%s%s",
+ snprintf((char *) buf, buf_len, "%s%s%s",
sep, name, (char *) buffer);
else
- snprintf((char *) buf, buf_len, "%c%s[%d]%s",
+ snprintf((char *) buf, buf_len, "%s%s[%d]%s",
sep, name, occur, (char *) buffer);
snprintf((char *) buffer, buf_len, "%s", buf);
cur = next;