fix: string literal line separator escape

This commit is contained in:
MihailRis 2024-10-13 10:16:17 +03:00
parent 2f7fbd57ee
commit 9667b81438
3 changed files with 6 additions and 3 deletions

View File

@ -370,7 +370,7 @@ std::string BasicParser::parseString(char quote, bool closeRequired) {
case '"': ss << '"'; break;
case '\\': ss << '\\'; break;
case '/': ss << '/'; break;
case '\n': pos++; continue;
case '\n': continue;
default:
throw error(
"'\\" + std::string({c}) + "' is an illegal escape"

View File

@ -26,6 +26,8 @@ class TomlReader : BasicParser {
}
}
// modified version of BaseParser.parseString
// todo: extract common part
std::string parseMultilineString() {
pos += 2;
char next = peek();
@ -57,7 +59,7 @@ class TomlReader : BasicParser {
case '"': ss << '"'; break;
case '\\': ss << '\\'; break;
case '/': ss << '/'; break;
case '\n': pos++; continue;
case '\n': continue;
default:
throw error(
"'\\" + std::string({c}) + "' is an illegal escape"

View File

@ -73,7 +73,8 @@ inline std::string SRC_EXAMPLE =
"\n"
"[servers.beta]\n"
"ip = \"10.0.0.2\"\n"
"role = \"\"\"backend\"\"\"";
"role = \"\"\"back\\\n"
"end\"\"\"";
TEST(TOML, ExampleCode) {
try {