trying to fix the include mess Daniel

* include/libxml/encoding.h include/libxml/entities.h
  include/libxml/globals.h include/libxml/parser.h
  include/libxml/threads.h include/libxml/tree.h
  include/libxml/xmlmemory.h: trying to fix the include mess
Daniel
diff --git a/include/libxml/parser.h b/include/libxml/parser.h
index 8d0b26b..eb7e62f 100644
--- a/include/libxml/parser.h
+++ b/include/libxml/parser.h
@@ -12,8 +12,6 @@
 #include <libxml/tree.h>
 #include <libxml/valid.h>
 #include <libxml/entities.h>
-#include <libxml/encoding.h>
-#include <libxml/xmlIO.h>
 
 #ifdef __cplusplus
 extern "C" {
@@ -227,8 +225,6 @@
  *
  * a SAX Locator.
  */
-typedef struct _xmlSAXLocator xmlSAXLocator;
-typedef xmlSAXLocator *xmlSAXLocatorPtr;
 struct _xmlSAXLocator {
     const xmlChar *(*getPublicId)(void *ctx);
     const xmlChar *(*getSystemId)(void *ctx);
@@ -566,8 +562,6 @@
  */
 typedef int (*hasExternalSubsetSAXFunc) (void *ctx);
 
-typedef struct _xmlSAXHandler xmlSAXHandler;
-typedef xmlSAXHandler *xmlSAXHandlerPtr;
 struct _xmlSAXHandler {
     internalSubsetSAXFunc internalSubset;
     isStandaloneSAXFunc isStandalone;
@@ -646,6 +640,16 @@
 LIBXML_DLL_IMPORT extern int xmlGetWarningsDefaultValue;
 #endif
 
+#ifdef __cplusplus
+}
+#endif
+#include <libxml/encoding.h>
+#include <libxml/xmlIO.h>
+#include <libxml/globals.h>
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 
 /*
  * Init/Cleanup
@@ -854,8 +858,5 @@
 #ifdef __cplusplus
 }
 #endif
-
-#include <libxml/globals.h>
-
 #endif /* __XML_PARSER_H__ */