mirror of
https://port.numenaute.org/aleajactaest/khanat-opennel-code.git
synced 2024-12-21 08:28:44 +00:00
Changed: Check if LC_NUMERIC is correct before loading or saving config files
This commit is contained in:
parent
4b4d345b17
commit
6dfc9668b5
1 changed files with 13 additions and 2 deletions
|
@ -316,6 +316,13 @@ CConfigFile::~CConfigFile ()
|
|||
|
||||
void CConfigFile::load (const string &fileName, bool lookupPaths )
|
||||
{
|
||||
char *locale = setlocale(LC_NUMERIC, NULL);
|
||||
|
||||
if (!locale || strcmp(locale, "C"))
|
||||
{
|
||||
nlerror("Numeric locale not defined to C, an external library possibly redefined it!");
|
||||
}
|
||||
|
||||
if(fileName.empty())
|
||||
{
|
||||
nlwarning ("CF: Can't load a empty file name configfile");
|
||||
|
@ -597,8 +604,12 @@ bool CConfigFile::exists (const std::string &varName)
|
|||
|
||||
void CConfigFile::save () const
|
||||
{
|
||||
// Avoid any problem, Force Locale to default
|
||||
setlocale(LC_ALL, "C");
|
||||
char *locale = setlocale(LC_NUMERIC, NULL);
|
||||
|
||||
if (!locale || strcmp(locale, "C"))
|
||||
{
|
||||
nlerror("Numeric locale not defined to C, an external library possibly redefined it!");
|
||||
}
|
||||
|
||||
FILE *fp = nlfopen (getFilename(), "w");
|
||||
if (fp == NULL)
|
||||
|
|
Loading…
Reference in a new issue