fixing #61290 "namespace nodes have no parent" long standing divergence

* xpath.c: fixing #61290 "namespace nodes have no parent"
  long standing divergence from the XPath REC. NodeSets
  simply hold a copy of namespace nodes and those node ->next
  points to the parent (which may not be the node carrying the
  definition).
* include/libxml/xpath.h: flagged but didn't added a possible
  speedup
* DOCBparser.c HTMLparser.c: removed some warnings from push
  parser due to new state being added.
* tree.c: new fix from Boris Erdmann
* configure.in c14n.c include/libxml/c14n.h testC14N.c: added
  the XML Canonalization support from Aleksey Sanin
Daniel
diff --git a/tree.c b/tree.c
index 3c37095..c9a4bfb 100644
--- a/tree.c
+++ b/tree.c
@@ -2859,7 +2859,7 @@
          * we cant be sure, that the namespce we found is identified
          * by the prefix
          */
-        if (xmlStrEqual(ns->href, ret->ns->href)) {
+        if (xmlStrEqual(ns->href, cur->ns->href)) {
           /* this is the nice case */
           ret->ns = ns;
         } else {
@@ -6907,8 +6907,9 @@
  * Returns 0 (uncompressed) to 9 (max compression)
  */
 int
- xmlGetCompressMode(void) {
-    return(xmlCompressMode);
+xmlGetCompressMode(void)
+{
+    return (xmlCompressMode);
 }
 
 /**