[winpr,ini] unify filename setting

This commit is contained in:
Armin Novak 2023-06-28 10:41:14 +02:00 committed by Martin Fleisz
parent eb6230a563
commit 37e5e2223e

View File

@ -482,6 +482,18 @@ static int IniFile_Load(wIniFile* ini)
return 1;
}
static BOOL IniFile_SetFilename(wIniFile* ini, const char* name)
{
WINPR_ASSERT(ini);
free(ini->filename);
ini->filename = NULL;
if (!name)
return TRUE;
ini->filename = _strdup(name);
return ini->filename != NULL;
}
int IniFile_ReadBuffer(wIniFile* ini, const char* buffer)
{
BOOL status;
@ -492,7 +504,6 @@ int IniFile_ReadBuffer(wIniFile* ini, const char* buffer)
return -1;
ini->readOnly = TRUE;
ini->filename = NULL;
status = IniFile_Load_String(ini, buffer);
if (!status)
@ -506,9 +517,8 @@ int IniFile_ReadFile(wIniFile* ini, const char* filename)
WINPR_ASSERT(ini);
ini->readOnly = TRUE;
free(ini->filename);
ini->filename = _strdup(filename);
if (!IniFile_SetFilename(ini, filename))
return -1;
if (!ini->filename)
return -1;
@ -804,7 +814,7 @@ void IniFile_Free(wIniFile* ini)
if (!ini)
return;
free(ini->filename);
IniFile_SetFilename(ini, NULL);
for (size_t index = 0; index < ini->nSections; index++)
IniFile_Section_Free(ini->sections[index]);
@ -851,12 +861,9 @@ wIniFile* IniFile_Clone(const wIniFile* ini)
}
copy->lineLength = ini->lineLength;
if (ini->filename)
{
copy->filename = _strdup(ini->filename);
if (!copy->filename)
goto fail;
}
if (!IniFile_SetFilename(copy, ini->filename))
goto fail;
if (ini->buffer)
{
copy->buffer = _strdup(ini->buffer);