tweaks to bool serialization

This commit is contained in:
Lee Thomason 2016-12-29 11:19:17 -08:00
parent f458d265c1
commit c5c99c2ba0
3 changed files with 10 additions and 18 deletions

View File

@ -371,19 +371,13 @@ const char* StrPair::GetStr()
const char* XMLUtil::writeBoolTrue = "true";
const char* XMLUtil::writeBoolFalse = "false";
void XMLUtil::SetBool(const char* writeTrue, const char* writeFalse)
void XMLUtil::SetBoolSerialization(const char* writeTrue, const char* writeFalse)
{
static const char* defTrue = "true";
static const char* defFalse = "false";
if (writeTrue)
writeBoolTrue = writeTrue;
else
writeBoolTrue = defTrue;
if (writeFalse)
writeBoolFalse = writeFalse;
else
writeBoolFalse = defFalse;
writeBoolTrue = (writeTrue) ? writeTrue : defTrue;
writeBoolFalse = (writeFalse) ? writeFalse : defFalse;
}

View File

@ -606,14 +606,12 @@ public:
static bool ToDouble( const char* str, double* value );
static bool ToInt64(const char* str, int64_t* value);
// Default to "true" and "false". If you
// need different values, can assign them. (For instance
// if you need "true" to be "1".)
// 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.
// Shouldn't be set unless you have a special reason
// such as back-compatibility or testing.
static void SetBool(const char* writeTrue, const char* writeFalse);
static void SetBoolSerialization(const char* writeTrue, const char* writeFalse);
private:
static const char* writeBoolTrue;

View File

@ -757,12 +757,12 @@ int main( int argc, const char ** argv )
const char* result = element->Attribute("attrib");
XMLTest("Bool true is 'true'", "true", result);
XMLUtil::SetBool("1", "0");
XMLUtil::SetBoolSerialization("1", "0");
element->SetAttribute("attrib", true);
result = element->Attribute("attrib");
XMLTest("Bool true is '1'", "1", result);
XMLUtil::SetBool(0, 0);
XMLUtil::SetBoolSerialization(0, 0);
}
{
element->SetAttribute("attrib", 100.0);