cleanup always use stdout if output is NULL don't close filedescriptors

* Makefile.am: cleanup
* debugXML.c: always use stdout if output is NULL
* xmlIO.c: don't close filedescriptors passed to outputBuffers
* python/Makefile.am python/generator.py python/libxml2class.txt
  python/libxml_wrap.h python/types.c: augmented the number of bindings
  handling FILE * and XPath contexts
* python/tests/Makefile.am: avoid a stupid problem due to the
  use of TEST.
Daniel
diff --git a/python/libxml_wrap.h b/python/libxml_wrap.h
index 679260a..fb8b79e 100644
--- a/python/libxml_wrap.h
+++ b/python/libxml_wrap.h
@@ -31,6 +31,14 @@
     xmlXPathContextPtr obj;
 } PyxmlXPathContext_Object;
 
+#define PyxmlXPathParserContext_Get(v) (((v) == Py_None) ? NULL : \
+	(((PyxmlXPathParserContext_Object *)(v))->obj))
+
+typedef struct {
+    PyObject_HEAD
+    xmlXPathParserContextPtr obj;
+} PyxmlXPathParserContext_Object;
+
 #define PyparserCtxt_Get(v) (((v) == Py_None) ? NULL : \
         (((PyparserCtxt_Object *)(v))->obj))
 
@@ -39,6 +47,17 @@
     xmlParserCtxtPtr obj;
 } PyparserCtxt_Object;
 
+#define Pycatalog_Get(v) (((v) == Py_None) ? NULL : \
+        (((Pycatalog_Object *)(v))->obj))
+
+typedef struct {
+    PyObject_HEAD
+    xmlCatalogPtr obj;
+} Pycatalog_Object;
+
+#define PyFile_Get(v) (((v) == Py_None) ? NULL : \
+	(PyFile_Check(v) ? NULL : (PyFile_AsFile(v))))
+
 PyObject * libxml_intWrap(int val);
 PyObject * libxml_longWrap(long val);
 PyObject * libxml_xmlCharPtrWrap(xmlChar *str);
@@ -54,6 +73,8 @@
 PyObject * libxml_doubleWrap(double val);
 PyObject * libxml_xmlXPathContextPtrWrap(xmlXPathContextPtr ctxt);
 PyObject * libxml_xmlParserCtxtPtrWrap(xmlParserCtxtPtr ctxt);
+PyObject * libxml_xmlXPathParserContextPtrWrap(xmlXPathParserContextPtr ctxt);
 PyObject * libxml_xmlXPathObjectPtrWrap(xmlXPathObjectPtr obj);
+PyObject * libxml_xmlCatalogPtrWrap(xmlCatalogPtr obj);
 
 xmlXPathObjectPtr libxml_xmlXPathObjectPtrConvert(PyObject * obj);