From 29180b0165e201af021b404a2362debfe119de7b Mon Sep 17 00:00:00 2001 From: ruri Date: Sat, 20 Apr 2019 14:29:04 +0200 Subject: [PATCH] Fixed the issue when reading or writing escaped JSON strings from and to LS. --- RuriLib/LoliScript/Parser/LineParser.cs | 5 +++-- RuriLib/LoliScript/Writer/BlockWriter.cs | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/RuriLib/LoliScript/Parser/LineParser.cs b/RuriLib/LoliScript/Parser/LineParser.cs index ac2aa45..6d05a81 100644 --- a/RuriLib/LoliScript/Parser/LineParser.cs +++ b/RuriLib/LoliScript/Parser/LineParser.cs @@ -57,7 +57,7 @@ namespace RuriLib.LS input = input.Substring(token.Length).Trim(); if (type == TokenType.Literal) - token = token.Substring(1, token.Length - 2).Replace("\\\"", "\""); + token = token.Substring(1, token.Length - 2).Replace("\\\\", "\\").Replace("\\\"", "\""); } else { @@ -219,7 +219,8 @@ namespace RuriLib.LS return "^[^ ]*"; case TokenType.Literal: - return "\\\"(\\\\.|[^\\\"])*\\\""; + //return "\\\"(\\\\.|[^\\\"])*\\\""; + return "\"(\\\\.|[^\\\"])*\""; case TokenType.Arrow: return "^->"; diff --git a/RuriLib/LoliScript/Writer/BlockWriter.cs b/RuriLib/LoliScript/Writer/BlockWriter.cs index cda1913..991fa06 100644 --- a/RuriLib/LoliScript/Writer/BlockWriter.cs +++ b/RuriLib/LoliScript/Writer/BlockWriter.cs @@ -67,7 +67,7 @@ namespace RuriLib.LS public BlockWriter Literal(string literal, string property = "") { if (property != "" && CheckDefault(literal, property)) return this; - Write($"\"{literal.Replace("\"", "\\\"")}\" "); + Write($"\"{literal.Replace("\\", "\\\\").Replace("\"", "\\\"")}\" "); return this; }