more fixes and extending the tests coverage more hardeing of APIs skip

* gentest.py testapi.c: more fixes and extending the tests coverage
* xmlwriter.c list.c: more hardeing of APIs
* doc/apibuild.py: skip testapi.c when scanning the C files.
Daniel
diff --git a/xmlwriter.c b/xmlwriter.c
index 2a267cc..d4c7176 100644
--- a/xmlwriter.c
+++ b/xmlwriter.c
@@ -1206,7 +1206,7 @@
         return -1;
     }
 
-    if ((content == NULL) && (len > 0)) {
+    if ((content == NULL) || (len < 0)) {
         xmlGenericError(xmlGenericErrorContext,
                         "xmlTextWriterWriteRawLen : invalid content!\n");
         return -1;
@@ -1268,6 +1268,9 @@
     int rc;
     va_list ap;
 
+    if ((writer == NULL) || (format == NULL))
+        return -1;
+
     va_start(ap, format);
 
     rc = xmlTextWriterWriteVFormatString(writer, format, ap);
@@ -1293,7 +1296,7 @@
     int rc;
     xmlChar *buf;
 
-    if (writer == NULL)
+    if ((writer == NULL) || (format == NULL))
         return -1;
 
     buf = xmlTextWriterVSprintf(format, argptr);
@@ -1324,7 +1327,7 @@
     xmlTextWriterStackEntry *p;
     xmlChar *buf;
 
-    if (writer == NULL)
+    if ((writer == NULL) || (content == NULL))
         return -1;
 
     sum = 0;
@@ -1393,6 +1396,9 @@
     int count;
     int sum;
 
+    if ((out == NULL) || (len < 0) || (data == NULL))
+        return(-1);
+
     linelen = 0;
     sum = 0;
 
@@ -1465,7 +1471,7 @@
     xmlLinkPtr lk;
     xmlTextWriterStackEntry *p;
 
-    if (writer == NULL)
+    if ((writer == NULL) || (data == NULL) || (start < 0) || (len < 0))
         return -1;
 
     sum = 0;
@@ -1515,7 +1521,7 @@
     	{'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
     int i;
 
-    if ((out == NULL) || ((data == 0) && (len != 0))) {
+    if ((out == NULL) || (data == NULL) || (len < 0)) {
         return -1;
     }
 
@@ -1558,7 +1564,7 @@
     xmlLinkPtr lk;
     xmlTextWriterStackEntry *p;
 
-    if (writer == NULL)
+    if ((writer == NULL) || (data == NULL) || (start < 0) || (len < 0))
         return -1;
 
     sum = 0;
@@ -1742,12 +1748,14 @@
     lk = xmlListFront(writer->nodes);
     if (lk == 0) {
         xmlListDelete(writer->nsstack);
+	writer->nsstack = NULL;
         return -1;
     }
 
     p = (xmlTextWriterStackEntry *) xmlLinkGetData(lk);
     if (p == 0) {
         xmlListDelete(writer->nsstack);
+	writer->nsstack = NULL;
         return -1;
     }
 
@@ -1759,6 +1767,7 @@
             count = xmlOutputBufferWrite(writer->out, 1, &writer->qchar);
             if (count < 0) {
                 xmlListDelete(writer->nsstack);
+		writer->nsstack = NULL;
                 return -1;
             }
             sum += count;
@@ -1772,6 +1781,7 @@
                                                     np->uri);
                     if (count < 0) {
                         xmlListDelete(writer->nsstack);
+			writer->nsstack = NULL;
                         return -1;
                     }
                     sum += count;
@@ -4390,7 +4400,7 @@
 int
 xmlTextWriterSetIndent(xmlTextWriterPtr writer, int indent)
 {
-    if (indent < 0)
+    if ((writer == NULL) || (indent < 0))
         return -1;
 
     writer->indent = indent;
@@ -4411,7 +4421,7 @@
 int
 xmlTextWriterSetIndentString(xmlTextWriterPtr writer, const xmlChar * str)
 {
-    if (!str)
+    if ((writer == NULL) || (!str))
         return -1;
 
     if (writer->ichar != NULL)