added two xmlReader examples cleaned up some bugs in the process Daniel
* doc/examples/*: added two xmlReader examples
* xmlreader.c: cleaned up some bugs in the process
Daniel
diff --git a/xmlreader.c b/xmlreader.c
index d5dd377..6c1518a 100644
--- a/xmlreader.c
+++ b/xmlreader.c
@@ -809,7 +809,7 @@
(const char *) &inbuf->content[reader->cur],
CHUNK_SIZE, 0);
reader->cur += CHUNK_SIZE;
- if (val != 0)
+ if ((val != 0) && (reader->ctxt->wellFormed == 0))
return(-1);
} else {
s = inbuf->use - reader->cur;
@@ -817,7 +817,7 @@
(const char *) &inbuf->content[reader->cur],
s, 0);
reader->cur += s;
- if (val != 0)
+ if ((val != 0) && (reader->ctxt->wellFormed == 0))
return(-1);
break;
}
@@ -848,7 +848,8 @@
s, 1);
reader->cur = inbuf->use;
reader->mode = XML_TEXTREADER_DONE;
- if (val != 0) return(-1);
+ if ((val != 0) && (reader->ctxt->wellFormed == 0))
+ return(-1);
}
}
reader->state = oldstate;
@@ -3864,8 +3865,7 @@
if (reader->validate == XML_TEXTREADER_VALIDATE_RNG)
return(reader->rngValidErrors == 0);
#endif
- if ((reader->validate == XML_TEXTREADER_VALIDATE_DTD) &&
- (reader->ctxt != NULL))
+ if ((reader->ctxt != NULL) && (reader->ctxt->validate == 1))
return(reader->ctxt->valid);
return(0);
}