fixed the data callback on transition functionality which was broken when

* xmlregexp.c: fixed the data callback on transition functionality
  which was broken when using the compact form
* result/schemas/*: updated the results, less verbose, all tests
  pass like before
* DOCBparser.c testAutomata.c testC14N.c testSchemas.c testThreads.c
  testXPath.c valid.c xinclude.c xmllint.c xmlregexp.c xmlschemas.c
  xmlschemastypes.c xpath.c python/libxml.c: removed a bunch of
  annoying warnings
* xpath.c: try to provide better error report when possible
Daniel
diff --git a/xpath.c b/xpath.c
index 333d200..9aa8a3a 100644
--- a/xpath.c
+++ b/xpath.c
@@ -67,7 +67,8 @@
     NULL,
     XML_NAMESPACE_DECL,
     XML_XML_NAMESPACE,
-    BAD_CAST "xml"
+    BAD_CAST "xml",
+    NULL
 };
 static xmlNsPtr xmlXPathXMLNamespace = &xmlXPathXMLNamespaceStruct;
 #ifndef LIBXML_THREAD_ENABLED
@@ -249,6 +250,7 @@
     int maxStep;
     xmlXPathStepOp *steps;        /* ops for computation */
     int last;
+    xmlChar *expr;
 #ifdef DEBUG_EVAL_COUNTS
     int nb;
     xmlChar *string;
@@ -330,6 +332,9 @@
         xmlFree(comp->string);
     }
 #endif
+    if (comp->expr != NULL) {
+        xmlFree(comp->expr);
+    }
 
     xmlFree(comp);
 }
@@ -1285,17 +1290,22 @@
     const xmlChar *cur;
     const xmlChar *base;
 
-/*    xmlGenericError(xmlGenericErrorContext,
-	    "Error %s:%d: %s\n", file, line,
-            xmlXPathErrorMessages[no]);
-*/
-    xmlGenericError(xmlGenericErrorContext,
-	    "Error %s\n", xmlXPathErrorMessages[no]);
-
     cur = ctxt->cur;
     base = ctxt->base;
-    if ((cur == NULL) || (base == NULL))
+    if ((cur == NULL) || (base == NULL)) {
+	if ((ctxt->comp != NULL) && (ctxt->comp->expr != NULL)) {
+	    xmlGenericError(xmlGenericErrorContext,
+		    "XPath error %s in %s\n", xmlXPathErrorMessages[no],
+			    ctxt->comp->expr);
+	} else {
+	    xmlGenericError(xmlGenericErrorContext,
+		    "XPath error %s\n", xmlXPathErrorMessages[no]);
+	}
+
 	return;
+    }
+    xmlGenericError(xmlGenericErrorContext,
+	    "XPath error %s\n", xmlXPathErrorMessages[no]);
 
     while ((cur > base) && ((*cur == '\n') || (*cur == '\r'))) {
 	cur--;
@@ -10572,6 +10582,7 @@
 	ctxt->comp = NULL;
     }
     xmlXPathFreeParserContext(ctxt);
+    comp->expr = xmlStrdup(str);
 #ifdef DEBUG_EVAL_COUNTS
     if (comp != NULL) {
 	comp->string = xmlStrdup(str);
@@ -10826,7 +10837,7 @@
  *  returns "gopher://spinaltap.micro.umn.edu/00/Weather/California/Los%20Angeles%23ocean"
  *
  */
-void
+static void
 xmlXPathEscapeUriFunction(xmlXPathParserContextPtr ctxt, int nargs) {
     xmlXPathObjectPtr str;
     int escape_reserved;