reset name
diff --git a/tinyxml2.h b/tinyxml2.h
index b087349..f081758 100644
--- a/tinyxml2.h
+++ b/tinyxml2.h
@@ -45,6 +45,28 @@
static void Free( CharBuffer* );
};
+// FIXME: refactor to be the basis for all string handling.
+class StrPair
+{
+ enum {
+ NEEDS_FLUSH = 0x01,
+ NEEDS_ENTITY_PROCESSING = 0x02,
+ NEEDS_NEWLINE_NORMALIZATION = 0x04
+ };
+
+ StrPair() : flags( 0 ), start( 0 ), end( 0 ) {}
+ void Init( const char* start, char* end, int flags; ) {
+ this->start = start; this->end = end; this->flags = flags | NEEDS_FLUSH;
+ }
+ const char* GetStr();
+
+private:
+ // After parsing, if *end != 0, it can be set to zero.
+ int flags;
+ const char* start;
+ char* end;
+};
+
class XMLBase
{
@@ -71,7 +93,7 @@
inline static int IsAlpha( unsigned char anyByte ) { return ( anyByte <= 127 ) ? isalpha( anyByte ) : 1; }
const char* ParseText( char* in, const char* endTag, char** next );
- const char* ParseName( char* in, char** next );
+ char* ParseName( char* in, StrPair* pair );
char* Identify( XMLDocument* document, char* p, XMLNode** node );
};