applied patch from Aswin to fix tree skipping fixed a comment and added a

* xmlreader.c: applied patch from Aswin to fix tree skipping
* include/libxml/entities.h entities.c: fixed a comment and
  added a new xmlNewEntity() entry point
* runtest.c: be less verbose
* tree.c: space and tabs cleanups
daniel

svn path=/trunk/; revision=3774
diff --git a/xmlreader.c b/xmlreader.c
index 92b053e..737fdbc 100644
--- a/xmlreader.c
+++ b/xmlreader.c
@@ -1847,17 +1847,22 @@
     }
 
     if (reader->state != XML_TEXTREADER_BACKTRACK) {
-        if (reader->node->children != 0) {
-            reader->node = reader->node->children;
-            reader->depth++;
+	/* Here removed traversal to child, because we want to skip the subtree, 
+	replace with traversal to sibling to skip subtree */
+        if (reader->node->next != 0) {
+            reader->node = reader->node->next;// Move to sibling if present,skipping sub-tree
+            //reader->depth++;
             reader->state = XML_TEXTREADER_START;
             return(1);
         }
-
+	
+	/* if reader->node->next is NULL mean no subtree for current node, 
+	so need to move to sibling of parent node if present */
         if ((reader->node->type == XML_ELEMENT_NODE) ||
             (reader->node->type == XML_ATTRIBUTE_NODE)) {
             reader->state = XML_TEXTREADER_BACKTRACK;
-            return(1);
+            xmlTextReaderRead(reader);// This will move to parent if present
+            //return(xmlTextReaderReadTree(reader));
         }
     }
 
@@ -1876,7 +1881,8 @@
         reader->node = reader->node->parent;
         reader->depth--;
         reader->state = XML_TEXTREADER_BACKTRACK;
-        return(1);
+        xmlTextReaderNextTree(reader); //Repeat process to move to sibling of parent node if present
+        //return(1);
     }
 
     reader->state = XML_TEXTREADER_END;