added a new configure option --with-push, some cleanups, chased code size

* HTMLparser.c Makefile.am configure.in legacy.c parser.c
  parserInternals.c testHTML.c xmllint.c include/libxml/HTMLparser.h
  include/libxml/parser.h include/libxml/parserInternals.h
  include/libxml/xmlversion.h.in: added a new configure
  option --with-push, some cleanups, chased code size anomalies.
  Now a library configured --with-minimum is around 150KB,
  sounds good enough.
Daniel
diff --git a/include/libxml/HTMLparser.h b/include/libxml/HTMLparser.h
index 66f2d80..6bab1a5 100644
--- a/include/libxml/HTMLparser.h
+++ b/include/libxml/HTMLparser.h
@@ -136,11 +136,10 @@
 XMLPUBFUN int XMLCALL			
 			htmlHandleOmittedElem(int val);
 
+#ifdef LIBXML_PUSH_ENABLED
 /**
  * Interfaces for the Push mode.
  */
-XMLPUBFUN void XMLCALL			
-			htmlFreeParserCtxt	(htmlParserCtxtPtr ctxt);
 XMLPUBFUN htmlParserCtxtPtr XMLCALL	
 			htmlCreatePushParserCtxt(htmlSAXHandlerPtr sax,
 						 void *user_data,
@@ -153,6 +152,10 @@
 						 const char *chunk,
 						 int size,
 						 int terminate);
+#endif /* LIBXML_PUSH_ENABLED */
+
+XMLPUBFUN void XMLCALL			
+			htmlFreeParserCtxt	(htmlParserCtxtPtr ctxt);
 
 /*
  * New set of simpler/more flexible APIs
diff --git a/include/libxml/parser.h b/include/libxml/parser.h
index b76a7c4..11bf648 100644
--- a/include/libxml/parser.h
+++ b/include/libxml/parser.h
@@ -1000,6 +1000,7 @@
 					 const char *name,
 					 void *value);
 
+#ifdef LIBXML_PUSH_ENABLED
 /*
  * Interfaces for the Push mode.
  */
@@ -1014,6 +1015,7 @@
 					 const char *chunk,
 					 int size,
 					 int terminate);
+#endif /* LIBXML_PUSH_ENABLED */
 
 /*
  * Special I/O mode.
diff --git a/include/libxml/parserInternals.h b/include/libxml/parserInternals.h
index 6e6f08c..080b728 100644
--- a/include/libxml/parserInternals.h
+++ b/include/libxml/parserInternals.h
@@ -40,6 +40,18 @@
  *									*
  ************************************************************************/
 /**
+ * IS_BYTE_CHAR:
+ * @c:  an byte value (int)
+ *
+ * Macro to check the following production in the XML spec:
+ *
+ * [2] Char ::= #x9 | #xA | #xD | [#x20...]
+ * any byte character in the accepted range
+ */
+#define IS_BYTE_CHAR(c)							\
+    (((c) >= 0x20) || ((c) == 0x09) || ((c) == 0x0A) || ((c) == 0x0D))
+
+/**
  * IS_CHAR:
  * @c:  an UNICODE value (int)
  *
diff --git a/include/libxml/xmlversion.h.in b/include/libxml/xmlversion.h.in
index ee09346..e1cd434 100644
--- a/include/libxml/xmlversion.h.in
+++ b/include/libxml/xmlversion.h.in
@@ -102,6 +102,15 @@
 #endif
 
 /**
+ * LIBXML_PUSH_ENABLED:
+ *
+ * Whether the push parsing interfaces are configured in
+ */
+#if @WITH_PUSH@
+#define LIBXML_PUSH_ENABLED
+#endif
+
+/**
  * LIBXML_READER_ENABLED:
  *
  * Whether the xmlReader parsing interface is configured in