From cfca5df1b64c4bcf72a15fa2a56ce4ac3bc097e3 Mon Sep 17 00:00:00 2001 From: Guenter Obiltschnig Date: Wed, 13 Jun 2007 15:14:29 +0000 Subject: [PATCH] latest sources from main repository --- Util/src/WinRegistryConfiguration.cpp | 38 +++++++++++---------- Util/testsuite/src/WinConfigurationTest.cpp | 5 ++- 2 files changed, 24 insertions(+), 19 deletions(-) diff --git a/Util/src/WinRegistryConfiguration.cpp b/Util/src/WinRegistryConfiguration.cpp index 879b8525f..8e667f733 100644 --- a/Util/src/WinRegistryConfiguration.cpp +++ b/Util/src/WinRegistryConfiguration.cpp @@ -1,7 +1,7 @@ // // WinRegistryConfiguration.cpp // -// $Id: //poco/Main/Util/src/WinRegistryConfiguration.cpp#6 $ +// $Id: //poco/Main/Util/src/WinRegistryConfiguration.cpp#7 $ // // Library: Util // Package: Windows @@ -63,25 +63,27 @@ bool WinRegistryConfiguration::getRaw(const std::string& key, std::string& value std::string keyName; std::string fullPath = _rootPath + ConvertToRegFormat(key, keyName); WinRegistryKey aKey(fullPath); - WinRegistryKey::Type type = aKey.type(keyName); - bool ret = true; - - switch(type) + bool exists = aKey.exists(keyName); + if (exists) { - case WinRegistryKey::REGT_STRING: - value = aKey.getString(keyName); - break; - case WinRegistryKey::REGT_STRING_EXPAND: - value = aKey.getStringExpand(keyName); - break; - case WinRegistryKey::REGT_DWORD: - value = Poco::NumberFormatter::format(aKey.getInt(keyName)); - break; - default: - ret = false; - } + WinRegistryKey::Type type = aKey.type(keyName); - return ret; + switch (type) + { + case WinRegistryKey::REGT_STRING: + value = aKey.getString(keyName); + break; + case WinRegistryKey::REGT_STRING_EXPAND: + value = aKey.getStringExpand(keyName); + break; + case WinRegistryKey::REGT_DWORD: + value = Poco::NumberFormatter::format(aKey.getInt(keyName)); + break; + default: + exists = false; + } + } + return exists; } diff --git a/Util/testsuite/src/WinConfigurationTest.cpp b/Util/testsuite/src/WinConfigurationTest.cpp index b3c93d911..f3eaa39ca 100644 --- a/Util/testsuite/src/WinConfigurationTest.cpp +++ b/Util/testsuite/src/WinConfigurationTest.cpp @@ -1,7 +1,7 @@ // // WinConfigurationTest.cpp // -// $Id: //poco/Main/Util/testsuite/src/WinConfigurationTest.cpp#5 $ +// $Id: //poco/Main/Util/testsuite/src/WinConfigurationTest.cpp#6 $ // // Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH. // and Contributors. @@ -64,6 +64,9 @@ void WinConfigurationTest::testConfiguration() assert (reg->getString("name2") == "value2"); assert (reg->hasProperty("name1")); assert (reg->hasProperty("name2")); + + std::string dfl = reg->getString("nonexistent", "default"); + assert (dfl == "default"); }