fixed the pattern interfaces but not yet the parser to handle the

* pattern.c xmlreader.c xmllint.c include/libxml/pattern.h
  include/libxml/xmlreader.h: fixed the pattern interfaces
  but not yet the parser to handle the namespaces.
* doc/examples/reader3.c doc/*: fixed the example, rebuilt the docs.
Daniel
diff --git a/xmlreader.c b/xmlreader.c
index 0295ddc..0ce19db 100644
--- a/xmlreader.c
+++ b/xmlreader.c
@@ -3554,6 +3554,7 @@
  * xmlTextReaderPreservePattern:
  * @reader:  the xmlTextReaderPtr used
  * @pattern:  an XPath subset pattern
+ * @namespaces: the prefix definitions, array of [URI, prefix] or NULL
  * 
  * This tells the XML Reader to preserve all nodes matched by the
  * pattern. The caller must also use xmlTextReaderCurrentDoc() to
@@ -3562,13 +3563,15 @@
  * Returns a positive number in case of success and -1 in case of error
  */
 int
-xmlTextReaderPreservePattern(xmlTextReaderPtr reader, const xmlChar *pattern) {
+xmlTextReaderPreservePattern(xmlTextReaderPtr reader, const xmlChar *pattern,
+                             const xmlChar **namespaces)
+{
     xmlPatternPtr comp;
 
     if ((reader == NULL) || (pattern == NULL))
 	return(-1);
     
-    comp = xmlPatterncompile(pattern, reader->dict, 0);
+    comp = xmlPatterncompile(pattern, reader->dict, 0, namespaces);
     if (comp == NULL)
         return(-1);