fixing yet another pattern induced XPath bug #314282 reverted back last

* pattern.c xpath.c include/libxml/pattern.h: fixing yet another
  pattern induced XPath bug #314282
* relaxng.c: reverted back last change it was seriously broken
Daniel
diff --git a/relaxng.c b/relaxng.c
index c6ce936..f315e1e 100644
--- a/relaxng.c
+++ b/relaxng.c
@@ -2220,6 +2220,9 @@
 {
     xmlChar *msg;
 
+    if (ctxt->error == NULL)
+        return;
+
 #ifdef DEBUG_ERROR
     xmlGenericError(xmlGenericErrorContext, "Show error %d\n", err);
 #endif
@@ -2329,7 +2332,7 @@
                         xmlRelaxNGValidErr err, const xmlChar * arg1,
                         const xmlChar * arg2, int dup)
 {
-    if (ctxt == NULL)
+    if ((ctxt == NULL) || (ctxt->error == NULL))
         return;
 
 #ifdef DEBUG_ERROR