Large sync between my W3C base and Gnome's one:

- parser.[ch]: added xmlGetFeaturesList() xmlGetFeature() and xmlAddFeature()
- tree.[ch]: added xmlAddChildList()
- xmllint.c: MAP_FAILED macro test
- parser.h: added xmlParseCtxtExternalEntity()
- valid.c: applied bug fixes removed warning
- tree.c: added CDATA block to elements content
- testSAX.c: cleanup of output
- testHTML.c: added SAX testing
- encoding.c: better error recovery
- SAX.c, parser.c: fixed one of the external entity processing of the OASis testsuite
- Makefile.am: added HTML SAX regression tests
- configure.in: bumped to 2.2.2
- test/HTML/ result/HTML: added a few of HTML tests, and added the SAX results

Daniel
diff --git a/Makefile.am b/Makefile.am
index 3f4b003..367d004 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -99,6 +99,7 @@
 tests: XMLtests HTMLtests Validtests
 
 HTMLtests : testHTML
+	@(rm -f .memdump ; touch .memdump)
 	@echo "##"
 	@echo "## HTML regression tests"
 	@echo "##"
@@ -107,16 +108,71 @@
 	  if [ ! -d $$i ] ; then \
 	  if [ ! -f $(srcdir)/result/HTML/$$name ] ; then \
 	      echo New test file $$name ; \
-	      $(top_builddir)/testHTML $$i > $(srcdir)/result/HTML/$$name 2>$(srcdir)/result/HTML/$$name.err ; \
+	      testHTML $$i > $(srcdir)/result/HTML/$$name 2>$(srcdir)/result/HTML/$$name.err ; \
 	  else \
 	      echo Testing $$name ; \
-	      $(top_builddir)/testHTML $$i > result.$$name 2> error.$$name ; \
+	      testHTML $$i > result.$$name 2> error.$$name ; \
+	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
 	      diff $(srcdir)/result/HTML/$$name result.$$name ; \
-	      diff $(srcdir)/result/HTML/$$name.err error.$$name ; \
-	      $(top_builddir)/testHTML result.$$name > result2.$$name 2>error.$$name ; \
+	      diff -b $(srcdir)/result/HTML/$$name.err error.$$name ; \
+	      testHTML result.$$name > result2.$$name 2>error.$$name ; \
 	      diff result.$$name result2.$$name ; \
 	      rm result.$$name result2.$$name error.$$name ; \
 	  fi ; fi ; done)
+	@echo "##"
+	@echo "## Push HTML regression tests"
+	@echo "##"
+	@(for i in $(srcdir)/test/HTML/* ; do \
+	  name=`basename $$i`; \
+	  if [ ! -d $$i ] ; then \
+	  if [ ! -f $(srcdir)/result/HTML/$$name ] ; then \
+	      echo New test file $$name ; \
+	      testHTML $$i > $(srcdir)/result/HTML/$$name 2>$(srcdir)/result/HTML/$$name.err ; \
+	  else \
+	      echo Testing $$name ; \
+	      testHTML --push $$i > result.$$name 2> error.$$name ; \
+	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
+	      diff $(srcdir)/result/HTML/$$name result.$$name ; \
+	      cut -b 1-15 $(srcdir)/result/HTML/$$name.err > errorcut.$$name; \
+	      cut -b 1-15 error.$$name > errorcut2.$$name; \
+	      diff -b errorcut.$$name errorcut2.$$name ; \
+	      testHTML --push result.$$name > result2.$$name 2>error.$$name ; \
+	      diff result.$$name result2.$$name ; \
+	      rm result.$$name result2.$$name error.$$name errorcut.$$name errorcut2.$$name ; \
+	  fi ; fi ; done)
+	@echo "##"
+	@echo "## HTML SAX regression tests"
+	@echo "##"
+	@(for i in $(srcdir)/test/HTML/* ; do \
+	  name=`basename $$i`; \
+	  if [ ! -d $$i ] ; then \
+	  if [ ! -f $(srcdir)/result/HTML/$$name.sax ] ; then \
+	      echo New test file $$name ; \
+	      testHTML --sax $$i > $(srcdir)/result/HTML/$$name.sax ; \
+	  else \
+	      echo Testing $$name ; \
+	      testHTML --sax $$i > result.$$name.sax ; \
+	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
+	      diff $(srcdir)/result/HTML/$$name.sax result.$$name.sax ; \
+	      rm result.$$name.sax ; \
+	  fi ; fi ; done)
+	@echo "##"
+	@echo "## Push HTML SAX regression tests"
+	@echo "##"
+	@(for i in $(srcdir)/test/HTML/* ; do \
+	  name=`basename $$i`; \
+	  if [ ! -d $$i ] ; then \
+	  if [ ! -f $(srcdir)/result/HTML/$$name ] ; then \
+	      echo New test file $$name ; \
+	      testHTML --sax $$i > $(srcdir)/result/HTML/$$name.sax ; \
+	  else \
+	      echo Testing $$name ; \
+	      testHTML --push --sax $$i > result.$$name.sax ; \
+	      grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0";\
+	      diff $(srcdir)/result/HTML/$$name.sax result.$$name.sax ; \
+	      rm result.$$name.sax ; \
+	  fi ; fi ; done)
+
 
 XMLtests : xmllint
 	@echo "##"