From faff40fb4b8657f02feeedf435c22650343c21b1 Mon Sep 17 00:00:00 2001 From: Job PC Date: Sat, 14 Feb 2026 11:04:27 +0100 Subject: [PATCH] fixed an issue where PlanetRegionsParser.cs source generator created faulty description strings in the generated C# code. descriptions may contain " which were not escaped. they now are --- .../Parsers/PlanetRegionsParser.cs | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/Helldivers-2-SourceGen/Parsers/PlanetRegionsParser.cs b/src/Helldivers-2-SourceGen/Parsers/PlanetRegionsParser.cs index bb5eaf6..154fef1 100644 --- a/src/Helldivers-2-SourceGen/Parsers/PlanetRegionsParser.cs +++ b/src/Helldivers-2-SourceGen/Parsers/PlanetRegionsParser.cs @@ -19,10 +19,11 @@ protected override (string Type, string Source) Parse(string json) var index = property.Name; var name = property.Value.GetProperty("name").GetString(); string? description = property.Value.GetProperty("description").GetString(); + if (string.IsNullOrWhiteSpace(description)) description = "null"; else - description = $@"""{description}"""; + description = $"\"{EscapeSpecialChars(description)}\""; builder.AppendLine($@"{'\t'}{'\t'}{{ {index}, (""{name}"", {description}) }},"); } @@ -30,4 +31,15 @@ protected override (string Type, string Source) Parse(string json) builder.Append("\t}"); return ("IReadOnlyDictionary", builder.ToString()); } + + static string EscapeSpecialChars(string value) + { + return value + .Replace("\\", "\\\\") + .Replace("\"", "\\\"") + .Replace("\r", "\\r") + .Replace("\n", "\\n") + .Replace("\t", "\\t"); + } + }