Fix infinite loop bug in ShallowEqual. Fix a warning with a re-interpret cast. Up version to 1.0.4
diff --git a/tinyxml2.h b/tinyxml2.h
index e90d60f..e231f09 100644
--- a/tinyxml2.h
+++ b/tinyxml2.h
@@ -83,9 +83,9 @@
 	#define TIXML_SSCANF   sscanf

 #endif

 

-static const int TIXML2_MAJOR_VERSION = 1;
-static const int TIXML2_MINOR_VERSION = 0;
-static const int TIXML2_PATCH_VERSION = 3;
+static const int TIXML2_MAJOR_VERSION = 1;

+static const int TIXML2_MINOR_VERSION = 0;

+static const int TIXML2_PATCH_VERSION = 4;

 

 namespace tinyxml2

 {

@@ -363,8 +363,8 @@
 public:

 	// Anything in the high order range of UTF-8 is assumed to not be whitespace. This isn't 

 	// correct, but simple, and usually works.

-	static const char* SkipWhiteSpace( const char* p )	{ while( !IsUTF8Continuation(*p) && isspace( *p ) ) { ++p; } return p; }

-	static char* SkipWhiteSpace( char* p )				{ while( !IsUTF8Continuation(*p) && isspace( *p ) ) { ++p; } return p; }

+	static const char* SkipWhiteSpace( const char* p )	{ while( !IsUTF8Continuation(*p) && isspace( *reinterpret_cast<const unsigned char*>(p) ) ) { ++p; } return p; }

+	static char* SkipWhiteSpace( char* p )				{ while( !IsUTF8Continuation(*p) && isspace( *reinterpret_cast<unsigned char*>(p) ) )		{ ++p; } return p; }

 

 	inline static bool StringEqual( const char* p, const char* q, int nChar=INT_MAX )  {

 		int n = 0;