Speed, conformance testing, more parsing, general improvements, Daniel.
diff --git a/include/libxml/parser.h b/include/libxml/parser.h
index 4cd2ead..a06d481 100644
--- a/include/libxml/parser.h
+++ b/include/libxml/parser.h
@@ -3,7 +3,7 @@
  *
  * See Copyright for the status of this software.
  *
- * $Id$
+ * Daniel.Veillard@w3.org
  */
 
 #ifndef __XML_PARSER_H__
@@ -46,6 +46,7 @@
 typedef struct xmlParserCtxt {
     struct xmlSAXHandler *sax;        /* The SAX handler */
     xmlDocPtr doc;                    /* the document being built */
+    int            wellFormed;        /* is the document well formed */
 
     /* Input stream stack */
     xmlParserInputPtr  input;         /* Current input stream */
@@ -131,15 +132,8 @@
 #include "entities.h"
 
 /*
- * Interfaces
+ * CHAR handling
  */
-extern int xmlParseDocument(xmlParserCtxtPtr ctxt);
-extern xmlDocPtr xmlParseDoc(CHAR *cur);
-extern xmlDocPtr xmlParseMemory(char *buffer, int size);
-extern xmlDocPtr xmlParseFile(const char *filename);
-extern xmlDocPtr xmlSAXParseDoc(xmlSAXHandlerPtr sax, CHAR *cur);
-extern xmlDocPtr xmlSAXParseMemory(xmlSAXHandlerPtr sax, char *buffer, int size);
-extern xmlDocPtr xmlSAXParseFile(xmlSAXHandlerPtr sax, const char *filename);
 extern CHAR *xmlStrdup(const CHAR *input);
 extern CHAR *xmlStrndup(const CHAR *input, int n);
 extern CHAR *xmlStrchr(const CHAR *str, CHAR val);
@@ -149,6 +143,29 @@
 extern CHAR *xmlStrcat(CHAR *cur, const CHAR *add);
 extern CHAR *xmlStrncat(CHAR *cur, const CHAR *add, int len);
 
+/*
+ * Interfaces
+ */
+extern xmlDocPtr xmlParseDoc(CHAR *cur);
+extern xmlDocPtr xmlParseMemory(char *buffer, int size);
+extern xmlDocPtr xmlParseFile(const char *filename);
+
+/*
+ * Recovery mode 
+ */
+extern xmlDocPtr xmlRecoverDoc(CHAR *cur);
+extern xmlDocPtr xmlRecoverMemory(char *buffer, int size);
+extern xmlDocPtr xmlRecoverFile(const char *filename);
+
+/*
+ * Internal routines
+ */
+extern int xmlParseDocument(xmlParserCtxtPtr ctxt);
+extern xmlDocPtr xmlSAXParseDoc(xmlSAXHandlerPtr sax, CHAR *cur, int recovery);
+extern xmlDocPtr xmlSAXParseMemory(xmlSAXHandlerPtr sax, char *buffer,
+                                   int size, int recovery);
+extern xmlDocPtr xmlSAXParseFile(xmlSAXHandlerPtr sax, const char *filename,
+                                 int recovery);
 extern void xmlInitParserCtxt(xmlParserCtxtPtr ctx);
 extern void xmlClearParserCtxt(xmlParserCtxtPtr ctx);
 extern void xmlSetupParserForBuffer(xmlParserCtxtPtr ctx, const CHAR* buffer,