From fe8ac339b635047b9c0744fbd2583af2b8b376d0 Mon Sep 17 00:00:00 2001 From: Viacheslav Demydiuk Date: Mon, 28 Jul 2025 23:29:01 +0300 Subject: [PATCH 1/2] MtApi5: set version to 2.0.1 --- MtApi5/MtApi5.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MtApi5/MtApi5.csproj b/MtApi5/MtApi5.csproj index e836a6c3..f10e46e9 100755 --- a/MtApi5/MtApi5.csproj +++ b/MtApi5/MtApi5.csproj @@ -3,7 +3,7 @@ net8.0 enable enable - 2.0.0 + 2.0.1 $(SolutionDir)build\products true From 136385de0af8c26576be5b4fef2c0c3431e64278 Mon Sep 17 00:00:00 2001 From: biohazardxxx Date: Thu, 19 Feb 2026 12:44:10 +0100 Subject: [PATCH 2/2] Fix invalid JSON from unescaped backslashes in MQL5 string serialization JSONString.toString() in mq5/json.mqh emitted raw strings without escaping special characters. When MQL5 functions returned Windows paths (e.g. TerminalInfoString), backslashes produced invalid JSON causing JsonReaderException on the C# client side. Escape backslash, double-quote, newline, carriage return, and tab characters during serialization, matching the JSON spec. Co-Authored-By: Claude Opus 4.6 --- mq5/json.mqh | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/mq5/json.mqh b/mq5/json.mqh index 1236b878..3a20923a 100755 --- a/mq5/json.mqh +++ b/mq5/json.mqh @@ -171,11 +171,17 @@ public: } string getString() { return _string; } void setString(string v) { _string=v; } - string toString() + string toString() { - string string_var; - StringConcatenate(string_var, "\"",_string,"\""); - return string_var; + string escaped = _string; + StringReplace(escaped, "\\", "\\\\"); + StringReplace(escaped, "\"", "\\\""); + StringReplace(escaped, "\n", "\\n"); + StringReplace(escaped, "\r", "\\r"); + StringReplace(escaped, "\t", "\\t"); + string string_var; + StringConcatenate(string_var, "\"", escaped, "\""); + return string_var; } }; // -----------------------------------------