diff --git a/clients/sfzprint.cpp b/clients/sfzprint.cpp index e02fb88f..3e07f383 100644 --- a/clients/sfzprint.cpp +++ b/clients/sfzprint.cpp @@ -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 }; diff --git a/sfizz/Parser.cpp b/sfizz/Parser.cpp index e8ef619c..474c259c 100644 --- a/sfizz/Parser.cpp +++ b/sfizz/Parser.cpp @@ -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;