Dream test passing.
diff --git a/tinyxml2.h b/tinyxml2.h
index 2e46ba1..4792b09 100644
--- a/tinyxml2.h
+++ b/tinyxml2.h
@@ -15,14 +15,15 @@
X UTF8 support: isAlpha, etc.
X string buffer for sets. (Grr.)
- MS BOM
- - print to memory buffer
+ X print to memory buffer
- tests from xml1
- xml1 tests especially UTF-8
- perf test: xml1
- perf test: xenowar
- test: load(char*)
- test: load(FILE*)
-
+ - rename declaration
+ - rename streamer
*/
#include <limits.h>
@@ -689,9 +690,10 @@
virtual XMLDocument* ToDocument() { return this; }
virtual const XMLDocument* ToDocument() const { return this; }
- int Parse( const char* );
- int Load( const char* );
+ int Parse( const char* xml );
+ int Load( const char* filename );
int Load( FILE* );
+ void Save( const char* filename );
void Print( XMLStreamer* streamer=0 );
virtual bool Accept( XMLVisitor* visitor ) const;
@@ -716,10 +718,17 @@
enum {
NO_ERROR = 0,
+ ERROR_FILE_NOT_FOUND,
ERROR_ELEMENT_MISMATCH,
ERROR_PARSING_ELEMENT,
ERROR_PARSING_ATTRIBUTE,
- ERROR_IDENTIFYING_TAG
+ ERROR_IDENTIFYING_TAG,
+ ERROR_PARSING_TEXT,
+ ERROR_PARSING_CDATA,
+ ERROR_PARSING_COMMENT,
+ ERROR_PARSING_DECLARATION,
+ ERROR_PARSING_UNKNOWN
+
};
void SetError( int error, const char* str1, const char* str2 );
@@ -727,6 +736,7 @@
int GetErrorID() const { return errorID; }
const char* GetErrorStr1() const { return errorStr1; }
const char* GetErrorStr2() const { return errorStr2; }
+ void PrintError() const;
char* Identify( char* p, XMLNode** node );
@@ -759,6 +769,8 @@
void PushText( const char* text, bool cdata=false );
void PushComment( const char* comment );
+ void PushDeclaration( const char* value );
+ void PushUnknown( const char* value );
virtual bool VisitEnter( const XMLDocument& /*doc*/ ) { return true; }
virtual bool VisitExit( const XMLDocument& /*doc*/ ) { return true; }
@@ -768,24 +780,28 @@
virtual bool Visit( const XMLText& text );
virtual bool Visit( const XMLComment& comment );
+ virtual bool Visit( const XMLDeclaration& declaration );
+ virtual bool Visit( const XMLUnknown& unknown );
const char* CStr() const { return buffer.Mem(); }
private:
void SealElement();
void PrintSpace( int depth );
- void PrintString( const char* ); // prints out, after detecting entities.
+ void PrintString( const char*, bool restrictedEntitySet ); // prints out, after detecting entities.
void Print( const char* format, ... );
+ bool elementJustOpened;
+ bool firstElement;
FILE* fp;
int depth;
- bool elementJustOpened;
int textDepth;
enum {
ENTITY_RANGE = 64
};
bool entityFlag[ENTITY_RANGE];
+ bool restrictedEntityFlag[ENTITY_RANGE];
DynArray< const char*, 10 > stack;
DynArray< char, 20 > buffer, accumulator;