mirror of
https://github.com/Mauler125/r5sdk.git
synced 2025-02-09 19:15:03 +01:00
Implement 'StringUnescape' properly
This commit is contained in:
parent
dc6bdc4a3a
commit
60b38e8904
@ -714,22 +714,39 @@ string StringUnescape(const string& svInput)
|
||||
{
|
||||
string result;
|
||||
result.reserve(svInput.size());
|
||||
bool escaped = false;
|
||||
|
||||
for (const char c : svInput)
|
||||
{
|
||||
switch (c)
|
||||
if (escaped)
|
||||
{
|
||||
//case '\\': result += "\'"; break;
|
||||
case '\\a': result += "\a"; break;
|
||||
case '\\b': result += "\b"; break;
|
||||
case '\\f': result += "\f"; break;
|
||||
case '\\n': result += "\n"; break;
|
||||
case '\\r': result += "\r"; break;
|
||||
case '\\t': result += "\t"; break;
|
||||
case '\\v': result += "\v"; break;
|
||||
default: result += c; break;
|
||||
switch (c)
|
||||
{
|
||||
case 'a': result += '\a'; break;
|
||||
case 'b': result += '\b'; break;
|
||||
case 'f': result += '\f'; break;
|
||||
case 'n': result += '\n'; break;
|
||||
case 'r': result += '\r'; break;
|
||||
case 't': result += '\t'; break;
|
||||
case 'v': result += '\v'; break;
|
||||
case '\\': result += '\\'; break;
|
||||
default: result += '\\'; result += c; break;
|
||||
}
|
||||
escaped = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (c == '\\')
|
||||
{
|
||||
escaped = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
result += c;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user