Fixed xmlGetNodePath() to generate the node test "*" for elements in the

* tree.c: Fixed xmlGetNodePath() to generate the node test "*"
  for elements in the default namespace, rather than generating
  an unprefixed named node test and loosing the namespace
  information.
diff --git a/tree.c b/tree.c
index d382e29..b1cd106 100644
--- a/tree.c
+++ b/tree.c
@@ -4236,7 +4236,7 @@
     const char *sep;
     const char *name;
     char nametemp[100];
-    int occur = 0;
+    int occur = 0, generic;
 
     if (node == NULL)
         return (NULL);
@@ -4267,17 +4267,23 @@
             sep = "/";
             next = NULL;
         } else if (cur->type == XML_ELEMENT_NODE) {
+	    generic = 0;
             sep = "/";
             name = (const char *) cur->name;
             if (cur->ns) {
-	        if (cur->ns->prefix != NULL)
+		if (cur->ns->prefix != NULL) {
                     snprintf(nametemp, sizeof(nametemp) - 1, "%s:%s",
 		    	(char *)cur->ns->prefix, (char *)cur->name);
-		else
-		    snprintf(nametemp, sizeof(nametemp) - 1, "%s",
-		    	(char *)cur->name);
-                nametemp[sizeof(nametemp) - 1] = 0;
-                name = nametemp;
+		    nametemp[sizeof(nametemp) - 1] = 0;
+		    name = nametemp;
+		} else {
+		    /*
+		    * We cannot express named elements in the default
+		    * namespace, so use "*".
+		    */
+		    generic = 1;
+		    name = "*";
+		}                
             }
             next = cur->parent;
 
@@ -4288,10 +4294,11 @@
             tmp = cur->prev;
             while (tmp != NULL) {
                 if ((tmp->type == XML_ELEMENT_NODE) &&
-		    (xmlStrEqual(cur->name, tmp->name)) &&
-		    ((tmp->ns == cur->ns) ||
-		     ((tmp->ns != NULL) && (cur->ns != NULL) &&
-		      (xmlStrEqual(cur->ns->prefix, tmp->ns->prefix)))))
+		    (generic ||
+		     (xmlStrEqual(cur->name, tmp->name)) &&
+		     ((tmp->ns == cur->ns) ||
+		      ((tmp->ns != NULL) && (cur->ns != NULL) &&
+		       (xmlStrEqual(cur->ns->prefix, tmp->ns->prefix))))))
                     occur++;
                 tmp = tmp->prev;
             }
@@ -4299,10 +4306,11 @@
                 tmp = cur->next;
                 while (tmp != NULL && occur == 0) {
                     if ((tmp->type == XML_ELEMENT_NODE) &&
-			(xmlStrEqual(cur->name, tmp->name)) &&
-			((tmp->ns == cur->ns) ||
-			 ((tmp->ns != NULL) && (cur->ns != NULL) &&
-			  (xmlStrEqual(cur->ns->prefix, tmp->ns->prefix)))))
+			(generic ||
+			 (xmlStrEqual(cur->name, tmp->name)) &&
+			 ((tmp->ns == cur->ns) ||
+			  ((tmp->ns != NULL) && (cur->ns != NULL) &&
+			   (xmlStrEqual(cur->ns->prefix, tmp->ns->prefix))))))
                         occur++;
                     tmp = tmp->next;
                 }