Corrected a bug where "overlapping" defines were incorrectly replaced
This commit is contained in:
parent
15b557946e
commit
9da6fc6f78
2 changed files with 12 additions and 11 deletions
|
|
@ -46,16 +46,15 @@ protected:
|
|||
case hash("region"): numRegions++; break;
|
||||
case hash("curve"): numCurves++; break;
|
||||
}
|
||||
// std::cout << "[" << header << "]" << '\t';
|
||||
// for (auto& member: members)
|
||||
// {
|
||||
// std::cout << member.opcode << "=" << member.value;
|
||||
// if (member.parameter)
|
||||
// std::cout << " (" << (int)*member.parameter << ")";
|
||||
// std::cout << ' ';
|
||||
|
||||
// }
|
||||
// std::cout << '\n';
|
||||
std::cout << "[" << header << "]" << ' ';
|
||||
for (auto& member: members)
|
||||
{
|
||||
std::cout << member.opcode << "=" << member.value;
|
||||
if (member.parameter)
|
||||
std::cout << " (" << (int)*member.parameter << ")";
|
||||
std::cout << ' ';
|
||||
}
|
||||
std::cout << '\n';
|
||||
}
|
||||
private:
|
||||
int numRegions { 0 };
|
||||
|
|
|
|||
|
|
@ -129,8 +129,9 @@ void sfz::Parser::readSfzFile(const std::filesystem::path& fileName, std::vector
|
|||
while (findPos < tmpView.npos) {
|
||||
newString.append(tmpView, lastPos, findPos - lastPos);
|
||||
|
||||
const auto defineEnd = tmpView.find_first_of(" \r\t\n\f\v", findPos);
|
||||
const auto candidate = tmpView.substr(findPos, defineEnd - findPos);
|
||||
for (auto& definePair : defines) {
|
||||
std::string_view candidate = tmpView.substr(findPos, definePair.first.length());
|
||||
if (candidate == definePair.first) {
|
||||
newString += definePair.second;
|
||||
lastPos = findPos + definePair.first.length();
|
||||
|
|
@ -138,6 +139,7 @@ void sfz::Parser::readSfzFile(const std::filesystem::path& fileName, std::vector
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
if (lastPos <= findPos) {
|
||||
newString += sfz::config::defineCharacter;
|
||||
lastPos = findPos + 1;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue