applying cleanup patch from Bjorn Reese for xmlTextReaderNodeType() and

* xmlreader.c include/libxml/xmlreader.h: applying cleanup
  patch from Bjorn Reese for xmlTextReaderNodeType() and
  significant whitespace. There is an enum for node type
  values now.
Daniel
diff --git a/ChangeLog b/ChangeLog
index ec4c513..2ef5423 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+Wed Jul 30 12:29:38 EDT 2003 Daniel Veillard <daniel@veillard.com>
+
+	* xmlreader.c include/libxml/xmlreader.h: applying cleanup
+	  patch from Bjorn Reese for xmlTextReaderNodeType() and 
+	  significant whitespace. There is an enum for node type
+	  values now.
+
 Wed Jul 30 11:08:21 EDT 2003 Daniel Veillard <daniel@veillard.com>
 
 	* encoding.c: applying patch from Peter Jacobi to added 
diff --git a/include/libxml/xmlreader.h b/include/libxml/xmlreader.h
index 99396b7..18ca8d1 100644
--- a/include/libxml/xmlreader.h
+++ b/include/libxml/xmlreader.h
@@ -33,6 +33,27 @@
     XML_PARSER_SEVERITY_ERROR = 4
 } xmlParserSeverities;
 
+enum {
+    XML_READER_TYPE_NONE = 0,
+    XML_READER_TYPE_ELEMENT = 1,
+    XML_READER_TYPE_ATTRIBUTE = 2,
+    XML_READER_TYPE_TEXT = 3,
+    XML_READER_TYPE_CDATA = 4,
+    XML_READER_TYPE_ENTITY_REFERENCE = 5,
+    XML_READER_TYPE_ENTITY = 6,
+    XML_READER_TYPE_PROCESSING_INSTRUCTION = 7,
+    XML_READER_TYPE_COMMENT = 8,
+    XML_READER_TYPE_DOCUMENT = 9,
+    XML_READER_TYPE_DOCUMENT_TYPE = 10,
+    XML_READER_TYPE_DOCUMENT_FRAGMENT = 11,
+    XML_READER_TYPE_NOTATION = 12,
+    XML_READER_TYPE_WHITESPACE = 13,
+    XML_READER_TYPE_SIGNIFICANT_WHITESPACE = 14,
+    XML_READER_TYPE_END_ELEMENT = 15,
+    XML_READER_TYPE_END_ENTITY = 16,
+    XML_READER_TYPE_XML_DECLARATION = 17
+};
+
 typedef struct _xmlTextReader xmlTextReader;
 typedef xmlTextReader *xmlTextReaderPtr;
 
diff --git a/xmlreader.c b/xmlreader.c
index 59dc6bb..92d1b00 100644
--- a/xmlreader.c
+++ b/xmlreader.c
@@ -1888,10 +1888,11 @@
 int
 xmlTextReaderNodeType(xmlTextReaderPtr reader) {
     xmlNodePtr node;
+    
     if (reader == NULL)
 	return(-1);
     if (reader->node == NULL)
-	return(0);
+	return(XML_READER_TYPE_NONE);
     if (reader->curnode != NULL)
 	node = reader->curnode;
     else
@@ -1900,43 +1901,50 @@
         case XML_ELEMENT_NODE:
 	    if ((reader->state == XML_TEXTREADER_END) ||
 		(reader->state == XML_TEXTREADER_BACKTRACK))
-		return(15);
-	    return(1);
+		return(XML_READER_TYPE_END_ELEMENT);
+	    return(XML_READER_TYPE_ELEMENT);
         case XML_NAMESPACE_DECL:
         case XML_ATTRIBUTE_NODE:
-	    return(2);
+	    return(XML_READER_TYPE_ATTRIBUTE);
         case XML_TEXT_NODE:
-	    return(3); /* TODO: SignificantWhitespace == 14 Whitespace == 13 */
+	    if (xmlIsBlankNode(reader->node)) {
+		if (xmlNodeGetSpacePreserve(reader->node))
+		    return(XML_READER_TYPE_SIGNIFICANT_WHITESPACE);
+		else
+		    return(XML_READER_TYPE_WHITESPACE);
+	    } else {
+		return(XML_READER_TYPE_TEXT);
+	    }
         case XML_CDATA_SECTION_NODE:
-	    return(4);
+	    return(XML_READER_TYPE_CDATA);
         case XML_ENTITY_REF_NODE:
-	    return(5);
+	    return(XML_READER_TYPE_ENTITY_REFERENCE);
         case XML_ENTITY_NODE:
-	    return(6);
+	    return(XML_READER_TYPE_ENTITY);
         case XML_PI_NODE:
-	    return(7);
+	    return(XML_READER_TYPE_PROCESSING_INSTRUCTION);
         case XML_COMMENT_NODE:
-	    return(8);
+	    return(XML_READER_TYPE_COMMENT);
         case XML_DOCUMENT_NODE:
         case XML_HTML_DOCUMENT_NODE:
 #ifdef LIBXML_DOCB_ENABLED
         case XML_DOCB_DOCUMENT_NODE:
 #endif
-	    return(9);
+	    return(XML_READER_TYPE_DOCUMENT);
         case XML_DOCUMENT_FRAG_NODE:
-	    return(11);
+	    return(XML_READER_TYPE_DOCUMENT_FRAGMENT);
         case XML_NOTATION_NODE:
-	    return(12);
+	    return(XML_READER_TYPE_NOTATION);
         case XML_DOCUMENT_TYPE_NODE:
         case XML_DTD_NODE:
-	    return(10);
+	    return(XML_READER_TYPE_DOCUMENT_TYPE);
 
         case XML_ELEMENT_DECL:
         case XML_ATTRIBUTE_DECL:
         case XML_ENTITY_DECL:
         case XML_XINCLUDE_START:
         case XML_XINCLUDE_END:
-	    return(0);
+	    return(XML_READER_TYPE_NONE);
     }
     return(-1);
 }