This commit is contained in:
Jordan Woyak 2024-11-11 07:05:19 -05:00 committed by GitHub
commit 86ca335e12
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 29 additions and 43 deletions

View File

@ -250,17 +250,9 @@ bool IniFile::Load(const std::string& filename, bool keep_current_data)
Section* current_section = nullptr; Section* current_section = nullptr;
bool first_line = true; bool first_line = true;
while (!in.eof()) std::string line_str;
while (std::getline(in, line_str))
{ {
std::string line_str;
if (!std::getline(in, line_str))
{
if (in.eof())
return true;
else
return false;
}
std::string_view line = line_str; std::string_view line = line_str;
// Skips the UTF-8 BOM at the start of files. Notepad likes to add this. // Skips the UTF-8 BOM at the start of files. Notepad likes to add this.

View File

@ -776,14 +776,11 @@ bool DSPAssembler::AssemblePass(const std::string& text, int pass)
m_location.line_num = 0; m_location.line_num = 0;
m_cur_pass = pass; m_cur_pass = pass;
#define LINEBUF_SIZE 1024 constexpr int LINEBUF_SIZE = 1024;
char line[LINEBUF_SIZE] = {0}; char line[LINEBUF_SIZE] = {};
while (!m_failed && !fsrc.fail() && !fsrc.eof()) while (!m_failed && fsrc.getline(line, LINEBUF_SIZE))
{ {
int opcode_size = 0; int opcode_size = 0;
fsrc.getline(line, LINEBUF_SIZE);
if (fsrc.fail())
break;
m_location.line_text = line; m_location.line_text = line;
m_location.line_num++; m_location.line_num++;

View File

@ -137,43 +137,40 @@ void PostProcessingConfiguration::LoadOptions(const std::string& code)
std::vector<GLSLStringOption> option_strings; std::vector<GLSLStringOption> option_strings;
GLSLStringOption* current_strings = nullptr; GLSLStringOption* current_strings = nullptr;
while (!in.eof()) std::string line_str;
while (std::getline(in, line_str))
{ {
std::string line_str; std::string_view line = line_str;
if (std::getline(in, line_str))
{
std::string_view line = line_str;
#ifndef _WIN32 #ifndef _WIN32
// Check for CRLF eol and convert it to LF // Check for CRLF eol and convert it to LF
if (!line.empty() && line.at(line.size() - 1) == '\r') if (!line.empty() && line.at(line.size() - 1) == '\r')
line.remove_suffix(1); line.remove_suffix(1);
#endif #endif
if (!line.empty()) if (!line.empty())
{
if (line[0] == '[')
{ {
if (line[0] == '[') size_t endpos = line.find("]");
{
size_t endpos = line.find("]");
if (endpos != std::string::npos) if (endpos != std::string::npos)
{ {
// New section! // New section!
std::string_view sub = line.substr(1, endpos - 1); std::string_view sub = line.substr(1, endpos - 1);
option_strings.push_back({std::string(sub)}); option_strings.push_back({std::string(sub)});
current_strings = &option_strings.back(); current_strings = &option_strings.back();
}
} }
else }
else
{
if (current_strings)
{ {
if (current_strings) std::string key, value;
{ Common::IniFile::ParseLine(line, &key, &value);
std::string key, value;
Common::IniFile::ParseLine(line, &key, &value);
if (!(key.empty() && value.empty())) if (!(key.empty() && value.empty()))
current_strings->m_options.emplace_back(key, value); current_strings->m_options.emplace_back(key, value);
}
} }
} }
} }