add BOM check to config reads

This commit is contained in:
somewhatlurker
2019-09-03 16:50:20 +10:00
parent 7c5294f0f5
commit b8f008aa5a
2 changed files with 25 additions and 1 deletions
@@ -232,6 +232,13 @@ bool IsLineInFile(LPCSTR searchLine, LPCWSTR fileName)
std::string line;
// check for BOM
std::getline(fileStream, line);
if (line.size() >= 3 & line.rfind("\xEF\xBB\xBF", 0) == 0)
fileStream.seekg(3);
else
fileStream.seekg(0);
while (std::getline(fileStream, line))
{
if (line.compare(searchLine) == 0)
@@ -259,8 +266,18 @@ void PrependFile(LPCSTR newStr, LPCWSTR fileName)
fileStream.seekg(0, std::ios::end);
origStr.reserve(fileStream.tellg());
fileStream.seekg(0, std::ios::beg);
// check for BOM
std::string BOMcheckLine;
std::getline(fileStream, BOMcheckLine);
if (BOMcheckLine.size() >= 3 & BOMcheckLine.rfind("\xEF\xBB\xBF", 0) == 0)
fileStream.seekg(3);
else
fileStream.seekg(0);
origStr.assign((std::istreambuf_iterator<char>(fileStream)), std::istreambuf_iterator<char>());
std::string outStr = newStr;
outStr += origStr;