[Expat-checkins] expat/lib xmlparse.c,1.59,1.60
Fred L. Drake
fdrake@users.sourceforge.net
Fri Aug 2 13:16:36 2002
Update of /cvsroot/expat/expat/lib
In directory usw-pr-cvs1:/tmp/cvs-serv7811/lib
Modified Files:
xmlparse.c
Log Message:
Define specific return values for the XML_Parse*() functions, and use them
to test all XML_Parse*() return values in the test and sample code.
This is binary-compatible with previous Expat 1.95.x releases.
dtdInit(): Make this a void function, since there is only one possible
return value.
parserInit(), poolGrow(), setContext(): Make these return XML_Bool values,
to match their intended semantics.
XML_ParseBuffer(): Use NULL instead of 0 for a pointer value.
Index: xmlparse.c
===================================================================
RCS file: /cvsroot/expat/expat/lib/xmlparse.c,v
retrieving revision 1.59
retrieving revision 1.60
diff -u -d -r1.59 -r1.60
--- xmlparse.c 1 Aug 2002 05:42:57 -0000 1.59
+++ xmlparse.c 2 Aug 2002 19:44:09 -0000 1.60
@@ -335,9 +335,9 @@
const char *end);
static const XML_Char *getContext(XML_Parser parser);
-static int setContext(XML_Parser parser, const XML_Char *context);
+static XML_Bool setContext(XML_Parser parser, const XML_Char *context);
static void normalizePublicId(XML_Char *s);
-static int dtdInit(DTD *, XML_Parser parser);
+static void dtdInit(DTD *, XML_Parser parser);
static void dtdDestroy(DTD *, XML_Parser parser);
@@ -365,7 +365,7 @@
static XML_Char *poolStoreString(STRING_POOL *pool, const ENCODING *enc,
const char *ptr, const char *end);
-static int poolGrow(STRING_POOL *pool);
+static XML_Bool poolGrow(STRING_POOL *pool);
static int nextScaffoldPart(XML_Parser parser);
static XML_Content *build_model(XML_Parser parser);
@@ -379,7 +379,7 @@
const char *ptr,
const char *end);
-static int parserInit(XML_Parser parser, const XML_Char *encodingName);
+static XML_Bool parserInit(XML_Parser parser, const XML_Char *encodingName);
#define poolStart(pool) ((pool)->start)
#define poolEnd(pool) ((pool)->ptr)
@@ -694,7 +694,7 @@
return parser;
}
-static int
+static XML_Bool
parserInit(XML_Parser parser, const XML_Char *encodingName)
{
processor = prologInitProcessor;
@@ -765,7 +765,8 @@
isParamEntity = XML_FALSE;
paramEntityParsing = XML_PARAM_ENTITY_PARSING_NEVER;
#endif
- return dtdInit(&dtd, parser);
+ dtdInit(&dtd, parser);
+ return XML_TRUE;
}
int
@@ -1222,19 +1223,19 @@
#endif
}
-int
+enum XML_Status
XML_Parse(XML_Parser parser, const char *s, int len, int isFinal)
{
if (len == 0) {
if (!isFinal)
- return 1;
+ return XML_STATUS_OK;
positionPtr = bufferPtr;
errorCode = processor(parser, bufferPtr, parseEndPtr = bufferEnd, 0);
if (errorCode == XML_ERROR_NONE)
- return 1;
+ return XML_STATUS_OK;
eventEndPtr = eventPtr;
processor = errorProcessor;
- return 0;
+ return XML_STATUS_ERROR;
}
#ifndef XML_CONTEXT_BYTES
else if (bufferPtr == bufferEnd) {
@@ -1245,16 +1246,16 @@
if (isFinal) {
errorCode = processor(parser, s, parseEndPtr = s + len, 0);
if (errorCode == XML_ERROR_NONE)
- return 1;
+ return XML_STATUS_OK;
eventEndPtr = eventPtr;
processor = errorProcessor;
- return 0;
+ return XML_STATUS_ERROR;
}
errorCode = processor(parser, s, parseEndPtr = s + len, &end);
if (errorCode != XML_ERROR_NONE) {
eventEndPtr = eventPtr;
processor = errorProcessor;
- return 0;
+ return XML_STATUS_ERROR;
}
XmlUpdatePosition(encoding, positionPtr, end, &position);
nLeftOver = s + len - end;
@@ -1265,14 +1266,14 @@
temp = buffer == 0 ? MALLOC(len * 2) : REALLOC(buffer, len * 2);
if (temp == NULL) {
errorCode = XML_ERROR_NO_MEMORY;
- return 0;
+ return XML_STATUS_ERROR;
}
buffer = temp;
if (!buffer) {
errorCode = XML_ERROR_NO_MEMORY;
eventPtr = eventEndPtr = NULL;
processor = errorProcessor;
- return 0;
+ return XML_STATUS_ERROR;
}
bufferLim = buffer + len * 2;
}
@@ -1280,13 +1281,13 @@
bufferPtr = buffer;
bufferEnd = buffer + nLeftOver;
}
- return 1;
+ return XML_STATUS_OK;
}
#endif /* not defined XML_CONTEXT_BYTES */
else {
void *buff = XML_GetBuffer(parser, len);
if (buff == NULL)
- return 0;
+ return XML_STATUS_ERROR;
else {
memcpy(buff, s, len);
return XML_ParseBuffer(parser, len, isFinal);
@@ -1294,7 +1295,7 @@
}
}
-int
+enum XML_Status
XML_ParseBuffer(XML_Parser parser, int len, int isFinal)
{
const char *start = bufferPtr;
@@ -1302,16 +1303,16 @@
bufferEnd += len;
parseEndByteIndex += len;
errorCode = processor(parser, start, parseEndPtr = bufferEnd,
- isFinal ? (const char **)0 : &bufferPtr);
+ isFinal ? (const char **)NULL : &bufferPtr);
if (errorCode == XML_ERROR_NONE) {
if (!isFinal)
XmlUpdatePosition(encoding, positionPtr, bufferPtr, &position);
- return 1;
+ return XML_STATUS_OK;
}
else {
eventEndPtr = eventPtr;
processor = errorProcessor;
- return 0;
+ return XML_STATUS_ERROR;
}
}
@@ -4490,7 +4491,7 @@
return tempPool.start;
}
-static int
+static XML_Bool
setContext(XML_Parser parser, const XML_Char *context)
{
const XML_Char *s = context;
@@ -4499,7 +4500,7 @@
if (*s == CONTEXT_SEP || *s == XML_T('\0')) {
ENTITY *e;
if (!poolAppendChar(&tempPool, XML_T('\0')))
- return 0;
+ return XML_FALSE;
e = (ENTITY *)lookup(&dtd.generalEntities, poolStart(&tempPool), 0);
if (e)
e->open = XML_TRUE;
@@ -4514,15 +4515,15 @@
prefix = &dtd.defaultPrefix;
else {
if (!poolAppendChar(&tempPool, XML_T('\0')))
- return 0;
+ return XML_FALSE;
prefix = (PREFIX *)lookup(&dtd.prefixes, poolStart(&tempPool),
sizeof(PREFIX));
if (!prefix)
- return 0;
+ return XML_FALSE;
if (prefix->name == poolStart(&tempPool)) {
prefix->name = poolCopyString(&dtd.pool, prefix->name);
if (!prefix->name)
- return 0;
+ return XML_FALSE;
}
poolDiscard(&tempPool);
}
@@ -4530,12 +4531,12 @@
*context != CONTEXT_SEP && *context != XML_T('\0');
context++)
if (!poolAppendChar(&tempPool, *context))
- return 0;
+ return XML_FALSE;
if (!poolAppendChar(&tempPool, XML_T('\0')))
- return 0;
+ return XML_FALSE;
if (!addBinding(parser, prefix, 0, poolStart(&tempPool),
&inheritedBindings))
- return 0;
+ return XML_FALSE;
poolDiscard(&tempPool);
if (*context != XML_T('\0'))
++context;
@@ -4543,11 +4544,11 @@
}
else {
if (!poolAppendChar(&tempPool, *s))
- return 0;
+ return XML_FALSE;
s++;
}
}
- return 1;
+ return XML_TRUE;
}
static void
@@ -4572,7 +4573,7 @@
*p = XML_T('\0');
}
-static int
+static void
dtdInit(DTD *p, XML_Parser parser)
{
XML_Memory_Handling_Suite *ms = &((Parser *) parser)->m_mem;
@@ -4601,8 +4602,6 @@
p->contentStringLen = 0;
p->scaffSize = 0;
p->scaffCount = 0;
-
- return 1;
}
#ifdef XML_DTD
@@ -4999,10 +4998,10 @@
p = tem;
}
}
- pool->blocks = 0;
- pool->start = 0;
- pool->ptr = 0;
- pool->end = 0;
+ pool->blocks = NULL;
+ pool->start = NULL;
+ pool->ptr = NULL;
+ pool->end = NULL;
}
static void
@@ -5014,17 +5013,17 @@
pool->mem->free_fcn(p);
p = tem;
}
- pool->blocks = 0;
+ pool->blocks = NULL;
p = pool->freeBlocks;
while (p) {
BLOCK *tem = p->next;
pool->mem->free_fcn(p);
p = tem;
}
- pool->freeBlocks = 0;
- pool->ptr = 0;
- pool->start = 0;
- pool->end = 0;
+ pool->freeBlocks = NULL;
+ pool->ptr = NULL;
+ pool->start = NULL;
+ pool->end = NULL;
}
static XML_Char *
@@ -5092,7 +5091,7 @@
return pool->start;
}
-static int
+static XML_Bool
poolGrow(STRING_POOL *pool)
{
if (pool->freeBlocks) {
@@ -5103,7 +5102,7 @@
pool->start = pool->blocks->s;
pool->end = pool->start + pool->blocks->size;
pool->ptr = pool->start;
- return 1;
+ return XML_TRUE;
}
if (pool->end - pool->start < pool->freeBlocks->size) {
BLOCK *tem = pool->freeBlocks->next;
@@ -5115,7 +5114,7 @@
pool->ptr = pool->blocks->s + (pool->ptr - pool->start);
pool->start = pool->blocks->s;
pool->end = pool->start + pool->blocks->size;
- return 1;
+ return XML_TRUE;
}
}
if (pool->blocks && pool->start == pool->blocks->s) {
@@ -5123,8 +5122,8 @@
pool->blocks = pool->mem->realloc_fcn(pool->blocks,
offsetof(BLOCK, s)
+ blockSize * sizeof(XML_Char));
- if (!pool->blocks)
- return 0;
+ if (pool->blocks == NULL)
+ return XML_FALSE;
pool->blocks->size = blockSize;
pool->ptr = pool->blocks->s + (pool->ptr - pool->start);
pool->start = pool->blocks->s;
@@ -5140,7 +5139,7 @@
tem = pool->mem->malloc_fcn(offsetof(BLOCK, s)
+ blockSize * sizeof(XML_Char));
if (!tem)
- return 0;
+ return XML_FALSE;
tem->size = blockSize;
tem->next = pool->blocks;
pool->blocks = tem;
@@ -5151,7 +5150,7 @@
pool->start = tem->s;
pool->end = tem->s + blockSize;
}
- return 1;
+ return XML_TRUE;
}
static int