- added xmlRemoveID() and xmlRemoveRef()
- added check and handling when possibly removing an ID
- fixed some entities problems
- added xmlParseTryOrFinish()
- changed the way struct aredeclared to allow gtk-doc to expose those
- closed #4960
- fixes to libs detection from Albert Chin-A-Young
- preparing 1.8.3 release
Daniel
diff --git a/valid.h b/valid.h
index 7190bbf..8c86b17 100644
--- a/valid.h
+++ b/valid.h
@@ -23,11 +23,13 @@
 typedef void (*xmlValidityErrorFunc) (void *ctx, const char *msg, ...);
 typedef void (*xmlValidityWarningFunc) (void *ctx, const char *msg, ...);
 
-typedef struct xmlValidCtxt {
+typedef struct _xmlValidCtxt xmlValidCtxt;
+typedef xmlValidCtxt *xmlValidCtxtPtr;
+struct _xmlValidCtxt {
     void *userData;			/* user specific data block */
     xmlValidityErrorFunc error;		/* the callback in case of errors */
     xmlValidityWarningFunc warning;	/* the callback in case of warning */
-} xmlValidCtxt, *xmlValidCtxtPtr;
+};
 
 /*
  * ALl notation declarations are stored in a table
@@ -36,12 +38,13 @@
 
 #define XML_MIN_NOTATION_TABLE	32
 
-typedef struct xmlNotationTable {
+typedef struct _xmlNotationTable xmlNotationTable;
+typedef xmlNotationTable *xmlNotationTablePtr;
+struct _xmlNotationTable {
     int nb_notations;		/* number of notations stored */
     int max_notations;		/* maximum number of notations */
     xmlNotationPtr *table;	/* the table of attributes */
-} xmlNotationTable;
-typedef xmlNotationTable *xmlNotationTablePtr;
+};
 
 /*
  * ALl element declarations are stored in a table
@@ -50,12 +53,13 @@
 
 #define XML_MIN_ELEMENT_TABLE	32
 
-typedef struct xmlElementTable {
+typedef struct _xmlElementTable xmlElementTable;
+typedef xmlElementTable *xmlElementTablePtr;
+struct _xmlElementTable {
     int nb_elements;		/* number of elements stored */
     int max_elements;		/* maximum number of elements */
     xmlElementPtr *table;	/* the table of elements */
-} xmlElementTable;
-typedef xmlElementTable *xmlElementTablePtr;
+};
 
 /*
  * ALl attribute declarations are stored in a table
@@ -64,12 +68,13 @@
 
 #define XML_MIN_ATTRIBUTE_TABLE	32
 
-typedef struct xmlAttributeTable {
+typedef struct _xmlAttributeTable xmlAttributeTable;
+typedef xmlAttributeTable *xmlAttributeTablePtr;
+struct _xmlAttributeTable {
     int nb_attributes;		/* number of attributes stored */
     int max_attributes;		/* maximum number of attributes */
     xmlAttributePtr *table;	/* the table of attributes */
-} xmlAttributeTable;
-typedef xmlAttributeTable *xmlAttributeTablePtr;
+};
 
 /*
  * ALl IDs attributes are stored in a table
@@ -78,12 +83,13 @@
 
 #define XML_MIN_ID_TABLE	32
 
-typedef struct xmlIDTable {
+typedef struct _xmlIDTable xmlIDTable;
+typedef xmlIDTable *xmlIDTablePtr;
+struct _xmlIDTable {
     int nb_ids;			/* number of ids stored */
     int max_ids;		/* maximum number of ids */
     xmlIDPtr *table;		/* the table of ids */
-} xmlIDTable;
-typedef xmlIDTable *xmlIDTablePtr;
+};
 
 /*
  * ALl Refs attributes are stored in a table
@@ -92,12 +98,13 @@
 
 #define XML_MIN_REF_TABLE	32
 
-typedef struct xmlRefTable {
+typedef struct _xmlRefTable xmlRefTable;
+typedef xmlRefTable *xmlRefTablePtr;
+struct _xmlRefTable {
     int nb_refs;			/* number of refs stored */
     int max_refs;		/* maximum number of refs */
     xmlRefPtr *table;		/* the table of refs */
-} xmlRefTable;
-typedef xmlRefTable *xmlRefTablePtr;
+};
 
 /* Notation */
 xmlNotationPtr	    xmlAddNotationDecl	(xmlValidCtxtPtr ctxt,
@@ -158,6 +165,7 @@
 int		xmlIsID		(xmlDocPtr doc,
 				 xmlNodePtr elem,
 				 xmlAttrPtr attr);
+int		xmlRemoveID	(xmlDocPtr doc, xmlAttrPtr attr);
 
 /* IDREFs */
 xmlRefPtr	xmlAddRef	(xmlValidCtxtPtr ctxt,
@@ -169,6 +177,7 @@
 int		xmlIsRef	(xmlDocPtr doc,
 				 xmlNodePtr elem,
 				 xmlAttrPtr attr);
+int		xmlRemoveRef	(xmlDocPtr doc, xmlAttrPtr attr);
 
 /**
  * The public function calls related to validity checking