Huge cleanup, I switched to compile with
-Wall -g -O -ansi -pedantic -W -Wunused -Wimplicit
-Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wformat
-Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow
-Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return
-Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline
- HTMLparser.[ch] HTMLtree.c SAX.c debugXML.c encoding.[ch]
encoding.h entities.c error.c list.[ch] nanoftp.c
nanohttp.c parser.[ch] parserInternals.[ch] testHTML.c
testSAX.c testURI.c testXPath.c tree.[ch] uri.c
valid.[ch] xinclude.c xmlIO.[ch] xmllint.c xmlmemory.c
xpath.c xpathInternals.h xpointer.[ch] example/gjobread.c:
Cleanup, staticfied a number of non-exported functions,
detected and cleaned up a dozen of problem found this way,
avoided a lot of public function name/typedef/system names clashes
- doc/xml.html: updated
- configure.in: switched private flags to the really pedantic ones.
Daniel
diff --git a/HTMLparser.c b/HTMLparser.c
index a83b669..49b0264 100644
--- a/HTMLparser.c
+++ b/HTMLparser.c
@@ -41,6 +41,7 @@
#include <libxml/parserInternals.h>
#include <libxml/xmlerror.h>
#include <libxml/HTMLparser.h>
+#include <libxml/HTMLtree.h>
#include <libxml/entities.h>
#include <libxml/encoding.h>
#include <libxml/valid.h>
@@ -57,6 +58,21 @@
/************************************************************************
* *
+ * When running GCC in vaacum cleaner mode *
+ * *
+ ************************************************************************/
+
+#ifdef __GNUC__
+#define UNUSED __attribute__((__unused__))
+#else
+#define UNUSED
+#endif
+
+xmlChar * htmlDecodeEntities(htmlParserCtxtPtr ctxt, int len,
+ xmlChar end, xmlChar end2, xmlChar end3);
+
+/************************************************************************
+ * *
* Parser stacks related functions and macros *
* *
************************************************************************/
@@ -95,8 +111,8 @@
return(ret); \
} \
-PUSH_AND_POP(extern, xmlNodePtr, node)
-PUSH_AND_POP(extern, xmlChar*, name)
+/* PUSH_AND_POP(static, xmlNodePtr, node) */
+PUSH_AND_POP(static, xmlChar*, name)
/*
* Macros for accessing the content. Those should be used only by the parser,
@@ -189,7 +205,7 @@
* Returns the current char value and its lenght
*/
-int
+static int
htmlCurrentChar(xmlParserCtxtPtr ctxt, int *len) {
if (ctxt->instate == XML_PARSER_EOF)
return(0);
@@ -306,31 +322,6 @@
}
/**
- * htmlNextChar:
- * @ctxt: the HTML parser context
- *
- * Skip to the next char input char.
- */
-
-void
-htmlNextChar(htmlParserCtxtPtr ctxt) {
- if (ctxt->instate == XML_PARSER_EOF)
- return;
- if ((*ctxt->input->cur == 0) &&
- (xmlParserInputGrow(ctxt->input, INPUT_CHUNK) <= 0)) {
- xmlPopInput(ctxt);
- } else {
- if (*(ctxt->input->cur) == '\n') {
- ctxt->input->line++; ctxt->input->col = 1;
- } else ctxt->input->col++;
- ctxt->input->cur++;
- ctxt->nbChars++;
- if (*ctxt->input->cur == 0)
- xmlParserInputGrow(ctxt->input, INPUT_CHUNK);
- }
-}
-
-/**
* htmlSkipBlankChars:
* @ctxt: the HTML parser context
*
@@ -339,7 +330,7 @@
* Returns the number of space chars skipped
*/
-int
+static int
htmlSkipBlankChars(xmlParserCtxtPtr ctxt) {
int res = 0;
@@ -478,7 +469,7 @@
* any tag of each line implies the end of the current element if the type of
* that element is in the same line
*/
-char *htmlEquEnd[] = {
+const char *htmlEquEnd[] = {
"dt", "dd", "li", "option", NULL,
"h1", "h2", "h3", "h4", "h5", "h6", NULL,
"ol", "menu", "dir", "address", "pre", "listing", "xmp", NULL,
@@ -493,7 +484,7 @@
/*
* start tags that imply the end of current element
*/
-char *htmlStartClose[] = {
+const char *htmlStartClose[] = {
"form", "form", "p", "hr", "h1", "h2", "h3", "h4", "h5", "h6",
"dl", "ul", "ol", "menu", "dir", "address", "pre",
"listing", "xmp", "head", NULL,
@@ -557,7 +548,7 @@
* TODO: extend that list by reading the HTML SGML DtD on
* implied paragraph
*/
-static char *htmlNoContentElements[] = {
+static const char *htmlNoContentElements[] = {
"html",
"head",
"body",
@@ -569,7 +560,7 @@
* NOTE: when adding ones, check htmlIsScriptAttribute() since
* it assumes the name starts with 'on'
*/
-static char *htmlScriptAttributes[] = {
+static const char *htmlScriptAttributes[] = {
"onclick",
"ondblclick",
"onmousedown",
@@ -591,7 +582,7 @@
};
-static char** htmlStartCloseIndex[100];
+static const char** htmlStartCloseIndex[100];
static int htmlStartCloseIndexinitialized = 0;
/************************************************************************
@@ -609,14 +600,14 @@
*/
void
htmlInitAutoClose(void) {
- int index, i = 0;
+ int indx, i = 0;
if (htmlStartCloseIndexinitialized) return;
- for (index = 0;index < 100;index ++) htmlStartCloseIndex[index] = NULL;
- index = 0;
- while ((htmlStartClose[i] != NULL) && (index < 100 - 1)) {
- htmlStartCloseIndex[index++] = &htmlStartClose[i];
+ for (indx = 0;indx < 100;indx ++) htmlStartCloseIndex[indx] = NULL;
+ indx = 0;
+ while ((htmlStartClose[i] != NULL) && (indx < 100 - 1)) {
+ htmlStartCloseIndex[indx++] = &htmlStartClose[i];
while (htmlStartClose[i] != NULL) i++;
i++;
}
@@ -633,7 +624,7 @@
*/
htmlElemDescPtr
htmlTagLookup(const xmlChar *tag) {
- int i;
+ unsigned int i;
for (i = 0; i < (sizeof(html40ElementTable) /
sizeof(html40ElementTable[0]));i++) {
@@ -653,21 +644,21 @@
*
* Returns 0 if no, 1 if yes.
*/
-int
+static int
htmlCheckAutoClose(const xmlChar *newtag, const xmlChar *oldtag) {
- int i, index;
- char **close = NULL;
+ int i, indx;
+ const char **closed = NULL;
if (htmlStartCloseIndexinitialized == 0) htmlInitAutoClose();
/* inefficient, but not a big deal */
- for (index = 0; index < 100;index++) {
- close = htmlStartCloseIndex[index];
- if (close == NULL) return(0);
- if (xmlStrEqual(BAD_CAST *close, newtag)) break;
+ for (indx = 0; indx < 100;indx++) {
+ closed = htmlStartCloseIndex[indx];
+ if (closed == NULL) return(0);
+ if (xmlStrEqual(BAD_CAST *closed, newtag)) break;
}
- i = close - htmlStartClose;
+ i = closed - htmlStartClose;
i++;
while (htmlStartClose[i] != NULL) {
if (xmlStrEqual(BAD_CAST htmlStartClose[i], oldtag)) {
@@ -685,7 +676,7 @@
*
* The HTmL DtD allows an ending tag to implicitely close other tags.
*/
-void
+static void
htmlAutoCloseOnClose(htmlParserCtxtPtr ctxt, const xmlChar *newtag) {
htmlElemDescPtr info;
xmlChar *oldname;
@@ -739,7 +730,7 @@
* If newtag is NULL this mean we are at the end of the resource
* and we should check
*/
-void
+static void
htmlAutoClose(htmlParserCtxtPtr ctxt, const xmlChar *newtag) {
xmlChar *oldname;
while ((newtag != NULL) && (ctxt->name != NULL) &&
@@ -843,7 +834,7 @@
* called when a new tag has been detected and generates the
* appropriates implicit tags if missing
*/
-void
+static void
htmlCheckImplied(htmlParserCtxtPtr ctxt, const xmlChar *newtag) {
if (!htmlOmittedDefaultValue)
return;
@@ -909,7 +900,7 @@
* in case of error.
*/
-int
+static int
htmlCheckParagraph(htmlParserCtxtPtr ctxt) {
const xmlChar *tag;
int i;
@@ -953,7 +944,7 @@
*/
int
htmlIsScriptAttribute(const xmlChar *name) {
- int i;
+ unsigned int i;
if (name == NULL)
return(0);
@@ -1113,7 +1104,7 @@
{ 920, "Theta","greek capital letter theta, U+0398 ISOgrk3" },
{ 921, "Iota", "greek capital letter iota, U+0399" },
{ 922, "Kappa","greek capital letter kappa, U+039A" },
-{ 923, "Lambda""greek capital letter lambda, U+039B ISOgrk3" },
+{ 923, "Lambda", "greek capital letter lambda, U+039B ISOgrk3" },
{ 924, "Mu", "greek capital letter mu, U+039C" },
{ 925, "Nu", "greek capital letter nu, U+039D" },
{ 926, "Xi", "greek capital letter xi, U+039E ISOgrk3" },
@@ -1291,7 +1282,7 @@
*/
htmlEntityDescPtr
htmlEntityLookup(const xmlChar *name) {
- int i;
+ unsigned int i;
for (i = 0;i < (sizeof(html40EntitiesTable)/
sizeof(html40EntitiesTable[0]));i++) {
@@ -1316,16 +1307,16 @@
* Returns the associated htmlEntityDescPtr if found, NULL otherwise.
*/
htmlEntityDescPtr
-htmlEntityValueLookup(int value) {
- int i;
+htmlEntityValueLookup(unsigned int value) {
+ unsigned int i;
#ifdef DEBUG
int lv = 0;
#endif
for (i = 0;i < (sizeof(html40EntitiesTable)/
sizeof(html40EntitiesTable[0]));i++) {
- if ((unsigned int) html40EntitiesTable[i].value >= value) {
- if ((unsigned int) html40EntitiesTable[i].value > value)
+ if (html40EntitiesTable[i].value >= value) {
+ if (html40EntitiesTable[i].value > value)
break;
#ifdef DEBUG
xmlGenericError(xmlGenericErrorContext,"Found entity %s\n", html40EntitiesTable[i].name);
@@ -1503,7 +1494,8 @@
}
/* assertion: c is a single UTF-4 value */
- if (c < 0x80 && c != quoteChar && c != '&' && c != '<' && c != '>') {
+ if ((c < 0x80) && (c != (unsigned int) quoteChar) &&
+ (c != '&') && (c != '<') && (c != '>')) {
if (out >= outend)
break;
*out++ = c;
@@ -1554,8 +1546,16 @@
* must deallocate it !
*/
xmlChar *
-htmlDecodeEntities(htmlParserCtxtPtr ctxt, int len,
- xmlChar end, xmlChar end2, xmlChar end3) {
+htmlDecodeEntities(htmlParserCtxtPtr ctxt UNUSED, int len UNUSED,
+ xmlChar end UNUSED, xmlChar end2 UNUSED, xmlChar end3 UNUSED) {
+ static int deprecated = 0;
+ if (!deprecated) {
+ xmlGenericError(xmlGenericErrorContext,
+ "htmlDecodeEntities() deprecated function reached\n");
+ deprecated = 1;
+ }
+ return(NULL);
+#if 0
xmlChar *name = NULL;
xmlChar *buffer = NULL;
unsigned int buffer_size = 0;
@@ -1627,6 +1627,7 @@
}
buffer[nbchars++] = 0;
return(buffer);
+#endif
}
/************************************************************************
@@ -1636,33 +1637,13 @@
************************************************************************/
/**
- * htmlFreeInputStream:
- * @input: an htmlParserInputPtr
- *
- * Free up an input stream.
- */
-void
-htmlFreeInputStream(htmlParserInputPtr input) {
- if (input == NULL) return;
-
- if (input->filename != NULL) xmlFree((char *) input->filename);
- if (input->directory != NULL) xmlFree((char *) input->directory);
- if ((input->free != NULL) && (input->base != NULL))
- input->free((xmlChar *) input->base);
- if (input->buf != NULL)
- xmlFreeParserInputBuffer(input->buf);
- MEM_CLEANUP(input, sizeof(htmlParserInput));
- xmlFree(input);
-}
-
-/**
* htmlNewInputStream:
* @ctxt: an HTML parser context
*
* Create a new input stream structure
* Returns the new input stream or NULL
*/
-htmlParserInputPtr
+static htmlParserInputPtr
htmlNewInputStream(htmlParserCtxtPtr ctxt) {
htmlParserInputPtr input;
@@ -1742,37 +1723,6 @@
}
/**
- * htmlHandleEntity:
- * @ctxt: an HTML parser context
- * @entity: an XML entity pointer.
- *
- * Default handling of an HTML entity, call the parser with the
- * substitution string
- */
-
-void
-htmlHandleEntity(htmlParserCtxtPtr ctxt, xmlEntityPtr entity) {
- int len;
-
- if (entity->content == NULL) {
- if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
- ctxt->sax->error(ctxt->userData, "htmlHandleEntity %s: content == NULL\n",
- entity->name);
- ctxt->wellFormed = 0;
- return;
- }
- len = xmlStrlen(entity->content);
-
- /*
- * Just handle the content as a set of chars.
- */
- htmlCheckParagraph(ctxt);
- if ((ctxt->sax != NULL) && (ctxt->sax->characters != NULL))
- ctxt->sax->characters(ctxt->userData, entity->content, len);
-
-}
-
-/**
* htmlNewDocNoDtD:
* @URI: URI for the dtd, or NULL
* @ExternalID: the external ID of the DTD, or NULL
@@ -1857,7 +1807,7 @@
* Returns the Tag Name parsed or NULL
*/
-xmlChar *
+static xmlChar *
htmlParseHTMLName(htmlParserCtxtPtr ctxt) {
xmlChar *ret = NULL;
int i = 0;
@@ -1890,7 +1840,7 @@
* Returns the Name parsed or NULL
*/
-xmlChar *
+static xmlChar *
htmlParseName(htmlParserCtxtPtr ctxt) {
xmlChar buf[HTML_MAX_NAMELEN];
int len = 0;
@@ -1933,7 +1883,7 @@
* Returns the attribute parsed or NULL
*/
-xmlChar *
+static xmlChar *
htmlParseHTMLAttribute(htmlParserCtxtPtr ctxt, const xmlChar stop) {
xmlChar *buffer = NULL;
int buffer_size = 0;
@@ -1982,20 +1932,20 @@
if (name == NULL) {
*out++ = '&';
if (out - buffer > buffer_size - 100) {
- int index = out - buffer;
+ int indx = out - buffer;
growBuffer(buffer);
- out = &buffer[index];
+ out = &buffer[indx];
}
} else if (ent == NULL) {
*out++ = '&';
cur = name;
while (*cur != 0) {
if (out - buffer > buffer_size - 100) {
- int index = out - buffer;
+ int indx = out - buffer;
growBuffer(buffer);
- out = &buffer[index];
+ out = &buffer[indx];
}
*out++ = *cur++;
}
@@ -2005,10 +1955,10 @@
int bits;
if (out - buffer > buffer_size - 100) {
- int index = out - buffer;
+ int indx = out - buffer;
growBuffer(buffer);
- out = &buffer[index];
+ out = &buffer[indx];
}
c = (xmlChar)ent->value;
if (c < 0x80)
@@ -2031,10 +1981,10 @@
int bits, l;
if (out - buffer > buffer_size - 100) {
- int index = out - buffer;
+ int indx = out - buffer;
growBuffer(buffer);
- out = &buffer[index];
+ out = &buffer[indx];
}
c = CUR_CHAR(l);
if (c < 0x80)
@@ -2057,43 +2007,6 @@
}
/**
- * htmlParseNmtoken:
- * @ctxt: an HTML parser context
- *
- * parse an HTML Nmtoken.
- *
- * Returns the Nmtoken parsed or NULL
- */
-
-xmlChar *
-htmlParseNmtoken(htmlParserCtxtPtr ctxt) {
- xmlChar buf[HTML_MAX_NAMELEN];
- int len = 0;
-
- GROW;
- while ((IS_LETTER(CUR)) || (IS_DIGIT(CUR)) ||
- (CUR == '.') || (CUR == '-') ||
- (CUR == '_') || (CUR == ':') ||
- (IS_COMBINING(CUR)) ||
- (IS_EXTENDER(CUR))) {
- buf[len++] = CUR;
- NEXT;
- if (len >= HTML_MAX_NAMELEN) {
- xmlGenericError(xmlGenericErrorContext,
- "htmlParseNmtoken: reached HTML_MAX_NAMELEN limit\n");
- while ((IS_LETTER(CUR)) || (IS_DIGIT(CUR)) ||
- (CUR == '.') || (CUR == '-') ||
- (CUR == '_') || (CUR == ':') ||
- (IS_COMBINING(CUR)) ||
- (IS_EXTENDER(CUR)))
- NEXT;
- break;
- }
- }
- return(xmlStrndup(buf, len));
-}
-
-/**
* htmlParseEntityRef:
* @ctxt: an HTML parser context
* @str: location to store the entity name
@@ -2152,7 +2065,7 @@
* Returns the AttValue parsed or NULL.
*/
-xmlChar *
+static xmlChar *
htmlParseAttValue(htmlParserCtxtPtr ctxt) {
xmlChar *ret = NULL;
@@ -2199,7 +2112,7 @@
* Returns the SystemLiteral parsed or NULL
*/
-xmlChar *
+static xmlChar *
htmlParseSystemLiteral(htmlParserCtxtPtr ctxt) {
const xmlChar *q;
xmlChar *ret = NULL;
@@ -2251,7 +2164,7 @@
* Returns the PubidLiteral parsed or NULL.
*/
-xmlChar *
+static xmlChar *
htmlParsePubidLiteral(htmlParserCtxtPtr ctxt) {
const xmlChar *q;
xmlChar *ret = NULL;
@@ -2313,7 +2226,7 @@
* as CDATA but SGML allows entities references in attributes so their
* processing is identical as other attributes
*/
-void
+static void
htmlParseScript(htmlParserCtxtPtr ctxt) {
xmlChar buf[HTML_PARSER_BIG_BUFFER_SIZE + 1];
int nbchar = 0;
@@ -2368,7 +2281,6 @@
/**
* htmlParseCharData:
* @ctxt: an HTML parser context
- * @cdata: int indicating whether we are within a CDATA section
*
* parse a CharData section.
* if we are within a CDATA section ']]>' marks an end of section.
@@ -2376,8 +2288,8 @@
* [14] CharData ::= [^<&]* - ([^<&]* ']]>' [^<&]*)
*/
-void
-htmlParseCharData(htmlParserCtxtPtr ctxt, int cdata) {
+static void
+htmlParseCharData(htmlParserCtxtPtr ctxt) {
xmlChar buf[HTML_PARSER_BIG_BUFFER_SIZE + 5];
int nbchar = 0;
int cur, l;
@@ -2429,14 +2341,9 @@
* htmlParseExternalID:
* @ctxt: an HTML parser context
* @publicID: a xmlChar** receiving PubidLiteral
- * @strict: indicate whether we should restrict parsing to only
- * production [75], see NOTE below
*
* Parse an External ID or a Public ID
*
- * NOTE: Productions [75] and [83] interract badly since [75] can generate
- * 'PUBLIC' S PubidLiteral S SystemLiteral
- *
* [75] ExternalID ::= 'SYSTEM' S SystemLiteral
* | 'PUBLIC' S PubidLiteral S SystemLiteral
*
@@ -2447,8 +2354,8 @@
* it is possible to return NULL and have publicID set.
*/
-xmlChar *
-htmlParseExternalID(htmlParserCtxtPtr ctxt, xmlChar **publicID, int strict) {
+static xmlChar *
+htmlParseExternalID(htmlParserCtxtPtr ctxt, xmlChar **publicID) {
xmlChar *URI = NULL;
if ((UPPER == 'S') && (UPP(1) == 'Y') &&
@@ -2503,7 +2410,7 @@
*
* [15] Comment ::= '<!--' ((Char - '-') | ('-' (Char - '-')))* '-->'
*/
-void
+static void
htmlParseComment(htmlParserCtxtPtr ctxt) {
xmlChar *buf = NULL;
int len;
@@ -2662,7 +2569,7 @@
* ('[' (markupdecl | PEReference | S)* ']' S?)? '>'
*/
-void
+static void
htmlParseDocTypeDecl(htmlParserCtxtPtr ctxt) {
xmlChar *name;
xmlChar *ExternalID = NULL;
@@ -2693,7 +2600,7 @@
/*
* Check for SystemID and ExternalID
*/
- URI = htmlParseExternalID(ctxt, &ExternalID, 0);
+ URI = htmlParseExternalID(ctxt, &ExternalID);
SKIP_BLANKS;
/*
@@ -2743,7 +2650,7 @@
* Returns the attribute name, and the value in *value.
*/
-xmlChar *
+static xmlChar *
htmlParseAttribute(htmlParserCtxtPtr ctxt, xmlChar **value) {
xmlChar *name, *val = NULL;
@@ -2786,7 +2693,7 @@
* If a new encoding is detected the parser is switched to decode
* it and pass UTF8
*/
-void
+static void
htmlCheckEncoding(htmlParserCtxtPtr ctxt, const xmlChar *attvalue) {
const xmlChar *encoding;
@@ -2869,7 +2776,7 @@
*
* Checks an attributes from a Meta tag
*/
-void
+static void
htmlCheckMeta(htmlParserCtxtPtr ctxt, const xmlChar **atts) {
int i;
const xmlChar *att, *value;
@@ -2914,7 +2821,7 @@
*
*/
-void
+static void
htmlParseStartTag(htmlParserCtxtPtr ctxt) {
xmlChar *name;
xmlChar *attname;
@@ -2975,9 +2882,9 @@
return;
}
if (xmlStrEqual(name, BAD_CAST"body")) {
- int i;
- for (i = 0;i < ctxt->nameNr;i++) {
- if (xmlStrEqual(ctxt->nameTab[i], BAD_CAST"body")) {
+ int indx;
+ for (indx = 0;indx < ctxt->nameNr;indx++) {
+ if (xmlStrEqual(ctxt->nameTab[indx], BAD_CAST"body")) {
if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
ctxt->sax->error(ctxt->userData,
"htmlParseStartTag: misplaced <body> tag\n");
@@ -3108,7 +3015,7 @@
* [NS 9] ETag ::= '</' QName S? '>'
*/
-void
+static void
htmlParseEndTag(htmlParserCtxtPtr ctxt) {
xmlChar *name;
xmlChar *oldname;
@@ -3213,7 +3120,7 @@
* this will end-up in a call to character() since this is either a
* CharRef, or a predefined entity.
*/
-void
+static void
htmlParseReference(htmlParserCtxtPtr ctxt) {
htmlEntityDescPtr ent;
xmlChar out[6];
@@ -3292,7 +3199,7 @@
*
*/
-void
+static void
htmlParseContent(htmlParserCtxtPtr ctxt) {
xmlChar *currentNode;
int depth;
@@ -3381,7 +3288,7 @@
* Last case, text. Note that References are handled directly.
*/
else {
- htmlParseCharData(ctxt, 0);
+ htmlParseCharData(ctxt);
}
if (cons == ctxt->nbChars) {
@@ -3592,7 +3499,7 @@
* as a result of the parsing.
*/
-int
+static int
htmlParseDocument(htmlParserCtxtPtr ctxt) {
xmlDtdPtr dtd;
@@ -3696,7 +3603,7 @@
* Initialize a parser context
*/
-void
+static void
htmlInitParserCtxt(htmlParserCtxtPtr ctxt)
{
htmlSAXHandler *sax;
@@ -3806,10 +3713,12 @@
*
* Create a parser context for an HTML document.
*
+ * TODO: check the need to add encoding handling there
+ *
* Returns the new parser context or NULL
*/
-htmlParserCtxtPtr
-htmlCreateDocParserCtxt(xmlChar *cur, const char *encoding) {
+static htmlParserCtxtPtr
+htmlCreateDocParserCtxt(xmlChar *cur, const char *encoding UNUSED) {
htmlParserCtxtPtr ctxt;
htmlParserInputPtr input;
/* htmlCharEncoding enc; */
@@ -3860,7 +3769,7 @@
* Returns the index to the current parsing point if the full sequence
* is available, -1 otherwise.
*/
-int
+static int
htmlParseLookupSequence(htmlParserCtxtPtr ctxt, xmlChar first,
xmlChar next, xmlChar third) {
int base, len;
@@ -3933,7 +3842,7 @@
*
* Returns zero if no parsing was possible
*/
-int
+static int
htmlParseTryOrFinish(htmlParserCtxtPtr ctxt, int terminate) {
int ret = 0;
htmlParserInputPtr in;
@@ -4158,7 +4067,7 @@
goto done;
cur = in->cur[0];
if (IS_BLANK(cur)) {
- htmlParseCharData(ctxt, 0);
+ htmlParseCharData(ctxt);
goto done;
}
if (avail < 2)
@@ -4466,7 +4375,7 @@
xmlGenericError(xmlGenericErrorContext,
"HPP: Parsing char data\n");
#endif
- htmlParseCharData(ctxt, 0);
+ htmlParseCharData(ctxt);
}
}
if (cons == ctxt->nbChars) {
@@ -4622,19 +4531,6 @@
}
/**
- * htmlParseTry:
- * @ctxt: an HTML parser context
- *
- * Try to progress on parsing
- *
- * Returns zero if no parsing was possible
- */
-int
-htmlParseTry(htmlParserCtxtPtr ctxt) {
- return(htmlParseTryOrFinish(ctxt, 0));
-}
-
-/**
* htmlParseChunk:
* @ctxt: an XML parser context
* @chunk: an char array