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