[RAPPS] CConfigParser cleanup

- removed `static` from strings declaration as pointed out by gadamopoulos

svn path=/branches/GSoC_2017/rapps/; revision=75814
This commit is contained in:
Alexander Shaposhnikov 2017-09-09 19:43:39 +00:00
parent a2bf4ef201
commit 9cf1050fce
2 changed files with 15 additions and 36 deletions

View file

@ -25,19 +25,16 @@ class CConfigParser
// Locale names cache
const static INT m_cchLocaleSize = 5;
static ATL::CStringW m_szLocaleID;
static ATL::CStringW m_szCachedINISectionLocale;
static ATL::CStringW m_szCachedINISectionLocaleNeutral;
ATL::CStringW m_szLocaleID;
ATL::CStringW m_szCachedINISectionLocale;
ATL::CStringW m_szCachedINISectionLocaleNeutral;
const ATL::CStringW szConfigPath;
static ATL::CStringW GetINIFullPath(const ATL::CStringW& FileName);
static VOID CacheINILocaleLazy();
ATL::CStringW GetINIFullPath(const ATL::CStringW& FileName);
VOID CacheINILocale();
public:
static const ATL::CStringW& GetLocale();
static INT CConfigParser::GetLocaleSize();
CConfigParser(const ATL::CStringW& FileName = "");
UINT GetString(const ATL::CStringW& KeyName, ATL::CStringW& ResultString);

View file

@ -405,14 +405,10 @@ BOOL GetInstalledVersion(ATL::CStringW *pszVersion, const ATL::CStringW &szRegNa
}
// CConfigParser
ATL::CStringW CConfigParser::m_szLocaleID;
ATL::CStringW CConfigParser::m_szCachedINISectionLocale;
ATL::CStringW CConfigParser::m_szCachedINISectionLocaleNeutral;
CConfigParser::CConfigParser(const ATL::CStringW& FileName) : szConfigPath(GetINIFullPath(FileName))
{
// we don't have cached section strings for the current system language, create them, lazy
CacheINILocaleLazy();
CacheINILocale();
}
ATL::CStringW CConfigParser::GetINIFullPath(const ATL::CStringW& FileName)
@ -426,32 +422,18 @@ ATL::CStringW CConfigParser::GetINIFullPath(const ATL::CStringW& FileName)
return szBuffer;
}
VOID CConfigParser::CacheINILocaleLazy()
VOID CConfigParser::CacheINILocale()
{
if (m_szLocaleID.IsEmpty())
{
// TODO: Set default locale if call fails
// find out what is the current system lang code (e.g. "0a") and append it to SectionLocale
GetLocaleInfoW(GetUserDefaultLCID(), LOCALE_ILANGUAGE,
m_szLocaleID.GetBuffer(m_cchLocaleSize), m_cchLocaleSize);
// TODO: Set default locale if call fails
// find out what is the current system lang code (e.g. "0a") and append it to SectionLocale
GetLocaleInfoW(GetUserDefaultLCID(), LOCALE_ILANGUAGE,
m_szLocaleID.GetBuffer(m_cchLocaleSize), m_cchLocaleSize);
m_szLocaleID.ReleaseBuffer();
m_szCachedINISectionLocale = L"Section." + m_szLocaleID;
m_szLocaleID.ReleaseBuffer();
m_szCachedINISectionLocale = L"Section." + m_szLocaleID;
// turn "Section.0c0a" into "Section.0a", keeping just the neutral lang part
m_szCachedINISectionLocaleNeutral = m_szCachedINISectionLocale + m_szLocaleID.Right(2);
}
}
const ATL::CStringW& CConfigParser::GetLocale()
{
CacheINILocaleLazy();
return m_szLocaleID;
}
INT CConfigParser::GetLocaleSize()
{
return m_cchLocaleSize;
// turn "Section.0c0a" into "Section.0a", keeping just the neutral lang part
m_szCachedINISectionLocaleNeutral = m_szCachedINISectionLocale + m_szLocaleID.Right(2);
}
UINT CConfigParser::GetString(const ATL::CStringW& KeyName, ATL::CStringW& ResultString)