Explorar o código

Clarify IsNameStartChar() - resolve issue 250

Dmitry-Me %!s(int64=11) %!d(string=hai) anos
pai
achega
ea617f9380
Modificáronse 1 ficheiros con 8 adicións e 3 borrados
  1. 8 3
      tinyxml2.h

+ 8 - 3
tinyxml2.h

@@ -552,9 +552,14 @@ public:
     }
     
     inline static bool IsNameStartChar( unsigned char ch ) {
-        return ( ( ch < 128 ) ? isalpha( ch ) : 1 )
-               || ch == ':'
-               || ch == '_';
+        if ( ch >= 128 ) {
+            // This is a heuristic guess in attempt to not implement Unicode-aware isalpha()
+            return true;
+        }
+        if ( isalpha( ch ) ) {
+            return true;
+        }
+        return ch == ':' || ch == '_';
     }
     
     inline static bool IsNameChar( unsigned char ch ) {