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 '\\': ss << '\\'; break;
case '/': ss << '/'; break; case '/': ss << '/'; break;
case '\n': pos++; continue; case '\n': continue;
default: default:
throw error( throw error(
"'\\" + std::string({c}) + "' is an illegal escape" "'\\" + 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() { std::string parseMultilineString() {
pos += 2; pos += 2;
char next = peek(); char next = peek();
@ -57,7 +59,7 @@ class TomlReader : BasicParser {
case '"': ss << '"'; break; case '"': ss << '"'; break;
case '\\': ss << '\\'; break; case '\\': ss << '\\'; break;
case '/': ss << '/'; break; case '/': ss << '/'; break;
case '\n': pos++; continue; case '\n': continue;
default: default:
throw error( throw error(
"'\\" + std::string({c}) + "' is an illegal escape" "'\\" + std::string({c}) + "' is an illegal escape"

View File

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