UnsignedInt64 support
diff --git a/tinyxml2.cpp b/tinyxml2.cpp
index 1c74279..0d27eab 100755
--- a/tinyxml2.cpp
+++ b/tinyxml2.cpp
@@ -653,6 +653,16 @@
}
+bool XMLUtil::ToUnsigned64(const char* str, uint64_t* value) {
+ unsigned long long v = 0; // horrible syntax trick to make the compiler happy about %llu
+ if(TIXML_SSCANF(str, "%llu", &v) == 1) {
+ *value = (uint64_t)v;
+ return true;
+ }
+ return false;
+}
+
+
char* XMLDocument::Identify( char* p, XMLNode** node )
{
TIXMLASSERT( node );
@@ -1414,6 +1424,15 @@
}
+XMLError XMLAttribute::QueryUnsigned64Value(uint64_t* value) const
+{
+ if(XMLUtil::ToUnsigned64(Value(), value)) {
+ return XML_SUCCESS;
+ }
+ return XML_WRONG_ATTRIBUTE_TYPE;
+}
+
+
XMLError XMLAttribute::QueryBoolValue( bool* value ) const
{
if ( XMLUtil::ToBool( Value(), value )) {