mirror of https://github.com/AxioDL/tinyxml2.git
Merge pull request #513 from leethomason/bool-write
Bool serialization.
This commit is contained in:
commit
b37cb42b78
15
tinyxml2.cpp
15
tinyxml2.cpp
|
@ -368,6 +368,19 @@ const char* StrPair::GetStr()
|
||||||
|
|
||||||
// --------- XMLUtil ----------- //
|
// --------- XMLUtil ----------- //
|
||||||
|
|
||||||
|
const char* XMLUtil::writeBoolTrue = "true";
|
||||||
|
const char* XMLUtil::writeBoolFalse = "false";
|
||||||
|
|
||||||
|
void XMLUtil::SetBoolSerialization(const char* writeTrue, const char* writeFalse)
|
||||||
|
{
|
||||||
|
static const char* defTrue = "true";
|
||||||
|
static const char* defFalse = "false";
|
||||||
|
|
||||||
|
writeBoolTrue = (writeTrue) ? writeTrue : defTrue;
|
||||||
|
writeBoolFalse = (writeFalse) ? writeFalse : defFalse;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
const char* XMLUtil::ReadBOM( const char* p, bool* bom )
|
const char* XMLUtil::ReadBOM( const char* p, bool* bom )
|
||||||
{
|
{
|
||||||
TIXMLASSERT( p );
|
TIXMLASSERT( p );
|
||||||
|
@ -545,7 +558,7 @@ void XMLUtil::ToStr( unsigned v, char* buffer, int bufferSize )
|
||||||
|
|
||||||
void XMLUtil::ToStr( bool v, char* buffer, int bufferSize )
|
void XMLUtil::ToStr( bool v, char* buffer, int bufferSize )
|
||||||
{
|
{
|
||||||
TIXML_SNPRINTF( buffer, bufferSize, "%s", v ? "true" : "false" );
|
TIXML_SNPRINTF( buffer, bufferSize, "%s", v ? writeBoolTrue : writeBoolFalse);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
13
tinyxml2.h
13
tinyxml2.h
|
@ -527,7 +527,7 @@ enum XMLError {
|
||||||
/*
|
/*
|
||||||
Utility functionality.
|
Utility functionality.
|
||||||
*/
|
*/
|
||||||
class XMLUtil
|
class TINYXML2_LIB XMLUtil
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
static const char* SkipWhiteSpace( const char* p, int* curLineNumPtr ) {
|
static const char* SkipWhiteSpace( const char* p, int* curLineNumPtr ) {
|
||||||
|
@ -605,6 +605,17 @@ public:
|
||||||
static bool ToFloat( const char* str, float* value );
|
static bool ToFloat( const char* str, float* value );
|
||||||
static bool ToDouble( const char* str, double* value );
|
static bool ToDouble( const char* str, double* value );
|
||||||
static bool ToInt64(const char* str, int64_t* value);
|
static bool ToInt64(const char* str, int64_t* value);
|
||||||
|
|
||||||
|
// Changes what is serialized for a boolean value.
|
||||||
|
// Default to "true" and "false". Shouldn't be changed
|
||||||
|
// unless you have a special testing or compatibility need.
|
||||||
|
// Be careful: static, global, & not thread safe.
|
||||||
|
// Be sure to set static const memory as parameters.
|
||||||
|
static void SetBoolSerialization(const char* writeTrue, const char* writeFalse);
|
||||||
|
|
||||||
|
private:
|
||||||
|
static const char* writeBoolTrue;
|
||||||
|
static const char* writeBoolFalse;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
12
xmltest.cpp
12
xmltest.cpp
|
@ -752,6 +752,18 @@ int main( int argc, const char ** argv )
|
||||||
XMLTest("Attribute: bool", true, v, true);
|
XMLTest("Attribute: bool", true, v, true);
|
||||||
XMLTest("Attribute: bool", true, element->BoolAttribute("attrib"), true);
|
XMLTest("Attribute: bool", true, element->BoolAttribute("attrib"), true);
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
element->SetAttribute("attrib", true);
|
||||||
|
const char* result = element->Attribute("attrib");
|
||||||
|
XMLTest("Bool true is 'true'", "true", result);
|
||||||
|
|
||||||
|
XMLUtil::SetBoolSerialization("1", "0");
|
||||||
|
element->SetAttribute("attrib", true);
|
||||||
|
result = element->Attribute("attrib");
|
||||||
|
XMLTest("Bool true is '1'", "1", result);
|
||||||
|
|
||||||
|
XMLUtil::SetBoolSerialization(0, 0);
|
||||||
|
}
|
||||||
{
|
{
|
||||||
element->SetAttribute("attrib", 100.0);
|
element->SetAttribute("attrib", 100.0);
|
||||||
double v = 0;
|
double v = 0;
|
||||||
|
|
Loading…
Reference in New Issue