|
|
@@ -59,14 +59,13 @@ public:
|
|
|
virtual bool DeleteValue(const char *key);
|
|
|
|
|
|
// Set value in a given key.
|
|
|
- virtual bool SetValue(const char *key,
|
|
|
- const char *value);
|
|
|
+ virtual bool SetValue(const char *key, const char *value);
|
|
|
|
|
|
// Open the registry at toplevel/subkey.
|
|
|
- virtual bool Open(const char *toplevel, const char *subkey,
|
|
|
+ virtual bool Open(const char *toplevel, const char *subkey,
|
|
|
int readonly);
|
|
|
|
|
|
- // Close the registry.
|
|
|
+ // Close the registry.
|
|
|
virtual bool Close();
|
|
|
|
|
|
// Set the value of changed
|
|
|
@@ -75,7 +74,7 @@ public:
|
|
|
const char* GetTopLevel() { return m_TopLevel.c_str(); }
|
|
|
|
|
|
//! Read from local or global scope. On Windows this mean from local machine
|
|
|
- // or local user. On unix this will read from $HOME/.Projectrc or
|
|
|
+ // or local user. On unix this will read from $HOME/.Projectrc or
|
|
|
// /etc/Project
|
|
|
void SetGlobalScope(bool b);
|
|
|
bool GetGlobalScope();
|
|
|
@@ -86,7 +85,7 @@ public:
|
|
|
|
|
|
protected:
|
|
|
bool m_Changed;
|
|
|
- kwsys_stl::string m_TopLevel;
|
|
|
+ kwsys_stl::string m_TopLevel;
|
|
|
bool m_GlobalScope;
|
|
|
|
|
|
#ifdef _WIN32
|
|
|
@@ -161,11 +160,12 @@ bool Registry::Open(const char *toplevel,
|
|
|
}
|
|
|
if ( !toplevel || !*toplevel )
|
|
|
{
|
|
|
- kwsys_ios::cerr << "Registry::Opened() Toplevel not defined" << kwsys_ios::endl;
|
|
|
+ kwsys_ios::cerr << "Registry::Opened() Toplevel not defined"
|
|
|
+ << kwsys_ios::endl;
|
|
|
return res;
|
|
|
}
|
|
|
|
|
|
- if ( isspace(toplevel[0]) ||
|
|
|
+ if ( isspace(toplevel[0]) ||
|
|
|
isspace(toplevel[strlen(toplevel)-1]) )
|
|
|
{
|
|
|
kwsys_ios::cerr << "Toplevel has to start with letter or number and end"
|
|
|
@@ -178,7 +178,7 @@ bool Registry::Open(const char *toplevel,
|
|
|
{
|
|
|
m_Locked = true;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
if ( res )
|
|
|
{
|
|
|
m_Opened = true;
|
|
|
@@ -206,20 +206,20 @@ bool Registry::Close()
|
|
|
}
|
|
|
|
|
|
//----------------------------------------------------------------------------
|
|
|
-bool Registry::ReadValue(const char *subkey,
|
|
|
- const char *key,
|
|
|
+bool Registry::ReadValue(const char *subkey,
|
|
|
+ const char *key,
|
|
|
const char **value)
|
|
|
-{
|
|
|
+{
|
|
|
*value = 0;
|
|
|
bool res = true;
|
|
|
- bool open = false;
|
|
|
+ bool open = false;
|
|
|
if ( ! value )
|
|
|
{
|
|
|
return res;
|
|
|
}
|
|
|
if ( !m_Opened )
|
|
|
{
|
|
|
- if ( !this->Open(this->GetTopLevel(), subkey,
|
|
|
+ if ( !this->Open(this->GetTopLevel(), subkey,
|
|
|
Registry::READONLY) )
|
|
|
{
|
|
|
return res;
|
|
|
@@ -245,7 +245,7 @@ bool Registry::DeleteKey(const char *subkey, const char *key)
|
|
|
bool open = false;
|
|
|
if ( !m_Opened )
|
|
|
{
|
|
|
- if ( !this->Open(this->GetTopLevel(), subkey,
|
|
|
+ if ( !this->Open(this->GetTopLevel(), subkey,
|
|
|
Registry::READWRITE) )
|
|
|
{
|
|
|
return res;
|
|
|
@@ -276,7 +276,7 @@ bool Registry::DeleteValue(const char *subkey, const char *key)
|
|
|
bool open = false;
|
|
|
if ( !m_Opened )
|
|
|
{
|
|
|
- if ( !this->Open(this->GetTopLevel(), subkey,
|
|
|
+ if ( !this->Open(this->GetTopLevel(), subkey,
|
|
|
Registry::READWRITE) )
|
|
|
{
|
|
|
return res;
|
|
|
@@ -301,14 +301,14 @@ bool Registry::DeleteValue(const char *subkey, const char *key)
|
|
|
}
|
|
|
|
|
|
//----------------------------------------------------------------------------
|
|
|
-bool Registry::SetValue(const char *subkey, const char *key,
|
|
|
+bool Registry::SetValue(const char *subkey, const char *key,
|
|
|
const char *value)
|
|
|
{
|
|
|
bool res = false;
|
|
|
bool open = false;
|
|
|
if ( !m_Opened )
|
|
|
{
|
|
|
- if ( !this->Open(this->GetTopLevel(), subkey,
|
|
|
+ if ( !this->Open(this->GetTopLevel(), subkey,
|
|
|
Registry::READWRITE) )
|
|
|
{
|
|
|
return res;
|
|
|
@@ -378,7 +378,7 @@ RegistryHelper::~RegistryHelper()
|
|
|
//----------------------------------------------------------------------------
|
|
|
bool RegistryHelper::Open(const char *toplevel, const char *subkey,
|
|
|
int readonly)
|
|
|
-{
|
|
|
+{
|
|
|
this->EntriesMap.clear();
|
|
|
m_Empty = 1;
|
|
|
|
|
|
@@ -396,14 +396,14 @@ bool RegistryHelper::Open(const char *toplevel, const char *subkey,
|
|
|
str << "Software\\Kitware\\" << toplevel << "\\" << subkey;
|
|
|
if ( readonly == Registry::READONLY )
|
|
|
{
|
|
|
- res = ( RegOpenKeyEx(scope, str.str().c_str(),
|
|
|
+ res = ( RegOpenKeyEx(scope, str.str().c_str(),
|
|
|
0, KEY_READ, &this->HKey) == ERROR_SUCCESS );
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
res = ( RegCreateKeyEx(scope, str.str().c_str(),
|
|
|
- 0, "", REG_OPTION_NON_VOLATILE, KEY_READ|KEY_WRITE,
|
|
|
- NULL, &this->HKey, &dwDummy) == ERROR_SUCCESS );
|
|
|
+ 0, "", REG_OPTION_NON_VOLATILE, KEY_READ|KEY_WRITE,
|
|
|
+ NULL, &this->HKey, &dwDummy) == ERROR_SUCCESS );
|
|
|
}
|
|
|
if ( res != 0 )
|
|
|
{
|
|
|
@@ -422,7 +422,7 @@ bool RegistryHelper::Open(const char *toplevel, const char *subkey,
|
|
|
{
|
|
|
if ( (homeDirectory = getenv("USERPROFILE")) == 0 )
|
|
|
{
|
|
|
- return false;
|
|
|
+ return false;
|
|
|
}
|
|
|
}
|
|
|
m_HomeDirectory = homeDirectory;
|
|
|
@@ -466,7 +466,7 @@ bool RegistryHelper::Open(const char *toplevel, const char *subkey,
|
|
|
{
|
|
|
// Comment
|
|
|
continue;
|
|
|
- }
|
|
|
+ }
|
|
|
int linelen = static_cast<int>(strlen(line));
|
|
|
for ( cc = 0; cc < linelen; cc++ )
|
|
|
{
|
|
|
@@ -500,7 +500,7 @@ bool RegistryHelper::Close()
|
|
|
if ( m_RegistryType == Registry::WIN32_REGISTRY)
|
|
|
{
|
|
|
int res;
|
|
|
- res = ( RegCloseKey(this->HKey) == ERROR_SUCCESS );
|
|
|
+ res = ( RegCloseKey(this->HKey) == ERROR_SUCCESS );
|
|
|
return (res != 0);
|
|
|
}
|
|
|
#endif
|
|
|
@@ -563,11 +563,11 @@ bool RegistryHelper::ReadValue(const char *skey, const char **value)
|
|
|
{
|
|
|
return false;
|
|
|
}
|
|
|
- DWORD dwType, dwSize;
|
|
|
+ DWORD dwType, dwSize;
|
|
|
dwType = REG_SZ;
|
|
|
char buffer[1024]; // Replace with RegQueryInfoKey
|
|
|
dwSize = sizeof(buffer);
|
|
|
- int res = ( RegQueryValueEx(this->HKey, skey, NULL, &dwType,
|
|
|
+ int res = ( RegQueryValueEx(this->HKey, skey, NULL, &dwType,
|
|
|
(BYTE *)buffer, &dwSize) == ERROR_SUCCESS );
|
|
|
if ( !res )
|
|
|
{
|
|
|
@@ -654,8 +654,8 @@ bool RegistryHelper::SetValue(const char *skey, const char *value)
|
|
|
if ( m_RegistryType == Registry::WIN32_REGISTRY)
|
|
|
{
|
|
|
DWORD len = (DWORD)(value ? strlen(value) : 0);
|
|
|
- int res = ( RegSetValueEx(this->HKey, skey, 0, REG_SZ,
|
|
|
- (CONST BYTE *)(const char *)value,
|
|
|
+ int res = ( RegSetValueEx(this->HKey, skey, 0, REG_SZ,
|
|
|
+ (CONST BYTE *)(const char *)value,
|
|
|
len+1) == ERROR_SUCCESS );
|
|
|
return (res != 0);
|
|
|
}
|
|
|
@@ -710,7 +710,7 @@ char *RegistryHelper::Strip(char *str)
|
|
|
if ( !str )
|
|
|
{
|
|
|
return NULL;
|
|
|
- }
|
|
|
+ }
|
|
|
len = strlen(str);
|
|
|
nstr = str;
|
|
|
for( cc=0; cc<len; cc++ )
|
|
|
@@ -773,7 +773,7 @@ kwsys_stl::string RegistryHelper::EncodeValue(const char* str)
|
|
|
{
|
|
|
switch ( *str )
|
|
|
{
|
|
|
- case '%': case '=': case '\n': case '\r': case '\t':
|
|
|
+ case '%': case '=': case '\n': case '\r': case '\t':
|
|
|
char buffer[4];
|
|
|
sprintf(buffer, "%%%02X", *str);
|
|
|
ostr << buffer;
|