Fix for ASCII recording to correctly handle multi-line keybinding script

This commit is contained in:
GPayne
2022-04-03 19:17:08 -06:00
parent 83561ca09d
commit 9d62b32831
+11
View File
@@ -927,6 +927,17 @@ void SessionRecording::saveScriptKeyframeAscii(Timestamps& times,
{
std::stringstream keyframeLine = std::stringstream();
saveHeaderAscii(times, HeaderScriptAscii, keyframeLine);
//Erase all \r (from windows newline), and all \n from line endings and replace with
//';' so that lua will treat them as separate lines. This is done in order to treat
//a multi-line script as a single line in the file.
size_t startPos = 0;
while ((startPos = sm._script.find("\r", startPos)) != std::string::npos) {
sm._script.erase(startPos, 1);
}
startPos = 0;
while ((startPos = sm._script.find("\n", startPos)) != std::string::npos) {
sm._script.replace(startPos, 1, ";");
}
sm.write(keyframeLine);
saveKeyframeToFile(keyframeLine.str(), file);
}