Remove BOM when reading text files

This should restore pre-27e2e2f35ff780e1df79b034a00f025a6b7d1e44
behavior with regards to BOM accumulation in config files
This commit is contained in:
palana 2014-08-26 23:00:46 +02:00
parent cf059655e4
commit 698490d7fa
2 changed files with 21 additions and 0 deletions

View File

@ -70,6 +70,16 @@ BOOL ConfigFile::LoadFile(DWORD dwOpenMode)
dwLength = (DWORD)file.GetFileSize();
if (dwLength >= 3) // remove BOM if present
{
char buff[3];
file.Read(&buff, 3);
if (memcmp(buff, "\xEF\xBB\xBF", 3))
file.SetPos(0, XFILE_BEGIN);
else
dwLength -= 3;
}
LPSTR lpTempFileData = (LPSTR)Allocate(dwLength+5);
file.Read(&lpTempFileData[2], dwLength);
lpTempFileData[0] = lpTempFileData[dwLength+2] = 13;

View File

@ -65,6 +65,17 @@ public:
SetPos(0, XFILE_BEGIN);
DWORD dwFileSize = (DWORD)GetFileSize();
if (dwFileSize >= 3) // remove BOM if present
{
char buff[3];
Read(&buff, 3);
if (memcmp(buff, "\xEF\xBB\xBF", 3))
SetPos(0, XFILE_BEGIN);
else
dwFileSize -= 3;
}
LPSTR lpFileDataUTF8 = (LPSTR)Allocate(dwFileSize+1);
lpFileDataUTF8[dwFileSize] = 0;