fixed problem when XMLLINT_INDENT was empty (bug 168033). fixed

* xmlsave.c: fixed problem when XMLLINT_INDENT was empty (bug 168033).
* xpath.c: fixed compilation warning, no change to logic.
* xmlschemastypes.c: fixed compilation warning, no change to logic.
diff --git a/ChangeLog b/ChangeLog
index 4d50758..f8fe3cd 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+Mon Feb 21 21:51:03 HKT 2005 William Brack <wbrack@mmm.com.hk>
+
+	* xmlsave.c: fixed problem when XMLLINT_INDENT was empty (bug 168033).
+	* xpath.c: fixed compilation warning, no change to logic.
+	* xmlschemastypes.c: fixed compilation warning, no change to logic.
+
 Mon Feb 21 14:48:27 CET 2005 Daniel Veillard <daniel@veillard.com>
 
 	* xmlwriter.c: applied patch from Rob Richards to fix a problem with
diff --git a/xmlsave.c b/xmlsave.c
index aecbdfd..a894bc9 100644
--- a/xmlsave.c
+++ b/xmlsave.c
@@ -327,14 +327,16 @@
 xmlSaveCtxtInit(xmlSaveCtxtPtr ctxt)
 {
     int i;
+    int len;
 
     if (ctxt == NULL) return;
     if ((ctxt->encoding == NULL) && (ctxt->escape == NULL))
         ctxt->escape = xmlEscapeEntities;
-    if (xmlTreeIndentString == NULL) {
+    len = xmlStrlen((xmlChar *)xmlTreeIndentString);
+    if ((xmlTreeIndentString == NULL) || (len == 0)) {
         memset(&ctxt->indent[0], 0, MAX_INDENT + 1);
     } else {
-	ctxt->indent_size = xmlStrlen((const xmlChar *) xmlTreeIndentString);
+	ctxt->indent_size = len;
 	ctxt->indent_nr = MAX_INDENT / ctxt->indent_size;
 	for (i = 0;i < ctxt->indent_nr;i++)
 	    memcpy(&ctxt->indent[i * ctxt->indent_size], xmlTreeIndentString,
diff --git a/xmlschemastypes.c b/xmlschemastypes.c
index 13cc095..d9cc7c6 100644
--- a/xmlschemastypes.c
+++ b/xmlschemastypes.c
@@ -728,9 +728,9 @@
     if (val == NULL)
 	return (NULL);
 
-    val->value.qname.name = name;
+    val->value.qname.name = (xmlChar *)name;
     if (ns != NULL)
-	val->value.qname.uri = ns;
+	val->value.qname.uri = (xmlChar *)ns;
     return(val);
 }
 
diff --git a/xpath.c b/xpath.c
index c5bbf2a..9eb0b48 100644
--- a/xpath.c
+++ b/xpath.c
@@ -10938,7 +10938,7 @@
     int max_depth;
     int from_root;
     int ret, depth;
-    xmlNodePtr cur, limit;
+    xmlNodePtr cur = NULL, limit = NULL;
     xmlXPathObjectPtr retval;
     xmlStreamCtxtPtr patstream;
 
@@ -10970,8 +10970,7 @@
 	return(retval);
     }
     if (from_root) {
-        cur = ctxt->doc;
-	limit = NULL;
+        cur = (xmlNodePtr)ctxt->doc;
     } else if (ctxt->node != NULL) {
         switch (ctxt->node->type) {
             case XML_ELEMENT_NODE:
@@ -10999,7 +10998,6 @@
             case XML_NAMESPACE_DECL:
             case XML_XINCLUDE_START:
             case XML_XINCLUDE_END:
-	        cur = NULL;
 		break;
 	}
 	limit = cur;