From c6e0e5ba0b3b4e32e9fd709909b529a78c06f087 Mon Sep 17 00:00:00 2001 From: LysiX Date: Sat, 10 Jan 2026 23:14:49 -0600 Subject: [PATCH] fix newline reading/writing --- Library/DTX.cs | 8 ++++++++ Library/DataTypes/AtomicTypes.cs | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/Library/DTX.cs b/Library/DTX.cs index 4c1c3ee..9e9f4c9 100644 --- a/Library/DTX.cs +++ b/Library/DTX.cs @@ -254,6 +254,14 @@ private static void ParseString(string data, DataArray root) case '\\': escaping = true; break; + case 'n': + if (escaping) + { + tmp_literal += "\n"; + escaping = false; + break; + } + goto default; case '"': if (escaping) { diff --git a/Library/DataTypes/AtomicTypes.cs b/Library/DataTypes/AtomicTypes.cs index 532708b..6f34506 100644 --- a/Library/DataTypes/AtomicTypes.cs +++ b/Library/DataTypes/AtomicTypes.cs @@ -100,7 +100,7 @@ private string ToString(bool name) switch (type) { case DataType.STRING: - ret += name ? sData : "\"" + sData.Replace("\"", "\\\"") + "\""; + ret += name ? sData : "\"" + sData.Replace("\"", "\\\"").Replace("\n", "\\n") + "\""; break; case DataType.INT: ret += iData.ToString();