From 767057f37fa6ce196b15ee2243a1d409b33ba893 Mon Sep 17 00:00:00 2001 From: Andy Cedilnik Date: Fri, 16 Sep 2005 13:56:09 -0400 Subject: [PATCH] BUG: Fix encoding and add deleting to the test --- Source/kwsys/Registry.cxx | 6 +++--- Source/kwsys/testRegistry.cxx | 6 +++++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/Source/kwsys/Registry.cxx b/Source/kwsys/Registry.cxx index 245e3ef2f..a15a12a9d 100644 --- a/Source/kwsys/Registry.cxx +++ b/Source/kwsys/Registry.cxx @@ -525,7 +525,7 @@ bool RegistryHelper::Close() it != this->EntriesMap.end(); ++ it ) { - *ofs << it->first.c_str() << " = " << it->second.c_str()<< kwsys_ios::endl; + *ofs << it->first.c_str() << " = " << this->EncodeValue(it->second.c_str()).c_str() << kwsys_ios::endl; } } this->EntriesMap.erase( @@ -660,7 +660,7 @@ bool RegistryHelper::SetValue(const char *skey, const char *value) { return 0; } - this->EntriesMap[key] = this->EncodeValue(value); + this->EntriesMap[key] = value; return 1; } return false; @@ -744,7 +744,7 @@ kwsys_stl::string RegistryHelper::EncodeKey(const char* str) { switch ( *str ) { - case '%': case '=': case '\n': case '\r': case '\t': case ' ': + case '%': case '=': case '\n': case '\r': case '\t': char buffer[4]; sprintf(buffer, "%%%02X", *str); ostr << buffer; diff --git a/Source/kwsys/testRegistry.cxx b/Source/kwsys/testRegistry.cxx index 6906dac6b..b808f1182 100644 --- a/Source/kwsys/testRegistry.cxx +++ b/Source/kwsys/testRegistry.cxx @@ -35,7 +35,7 @@ kwsys_ios::cout << "Error in: " << #x << kwsys_ios::endl; \ } -#define CHE(x,y,res) if ( strcmp(x,y) ) \ +#define CHE(x,y,res) if ( x && y && strcmp(x,y) ) \ { \ res = 1; \ kwsys_ios::cout << "Error, " << x << " != " << y << kwsys_ios::endl; \ @@ -90,10 +90,14 @@ int main(int, char**) IFT(reg.SetValue("TestSubkeyWithVeryLongInFactSoLongItsHardToImagineAnybodyWouldReallyDoItLongName", "TestKey1", longStringWithNewLines), res); IFT(reg.ReadValue("TestSubkeyWithVeryLongInFactSoLongItsHardToImagineAnybodyWouldReallyDoItLongName", "TestKey1", &buffer), res); CHE(buffer, longStringWithNewLines, res); + IFT(reg.DeleteValue("TestSubkeyWithVeryLongInFactSoLongItsHardToImagineAnybodyWouldReallyDoItLongName", "TestKey1"), res); + IFNT(reg.ReadValue("TestSubkeyWithVeryLongInFactSoLongItsHardToImagineAnybodyWouldReallyDoItLongName", "TestKey1", &buffer), res); IFT(reg.SetValue("TestSubkeyWith = EqualSignChar", "TestKey = 1", "Some value"), res); IFT(reg.ReadValue("TestSubkeyWith = EqualSignChar", "TestKey = 1", &buffer), res); CHE(buffer, "Some value", res); + IFT(reg.DeleteValue("TestSubkeyWith = EqualSignChar", "TestKey = 1"), res); + IFNT(reg.ReadValue("TestSubkeyWith = EqualSignChar", "TestKey = 1", &buffer), res); if ( res ) {