From 6f92dc420a71a49c78cba6d0636c1ecf44563ef1 Mon Sep 17 00:00:00 2001 From: Tanner Gooding Date: Sun, 26 Nov 2023 07:20:15 -0800 Subject: [PATCH] Fix an issue with string escaping --- .../ClangSharp.PInvokeGenerator/PInvokeGenerator.VisitDecl.cs | 2 +- sources/ClangSharp.PInvokeGenerator/PInvokeGenerator.cs | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/sources/ClangSharp.PInvokeGenerator/PInvokeGenerator.VisitDecl.cs b/sources/ClangSharp.PInvokeGenerator/PInvokeGenerator.VisitDecl.cs index 125de914..20c1d656 100644 --- a/sources/ClangSharp.PInvokeGenerator/PInvokeGenerator.VisitDecl.cs +++ b/sources/ClangSharp.PInvokeGenerator/PInvokeGenerator.VisitDecl.cs @@ -3336,7 +3336,7 @@ private void VisitVarDecl(VarDecl varDecl) _ = nativeTypeNameBuilder.Append(' '); var macroValue = GetSourceRangeContents(varDecl.TranslationUnit.Handle, varDecl.Init.Extent); - _ = nativeTypeNameBuilder.Append(macroValue); + _ = nativeTypeNameBuilder.Append(macroValue.Replace(@"\\", "\\", StringComparison.Ordinal)); nativeTypeName = nativeTypeNameBuilder.ToString(); } diff --git a/sources/ClangSharp.PInvokeGenerator/PInvokeGenerator.cs b/sources/ClangSharp.PInvokeGenerator/PInvokeGenerator.cs index b5013b87..f0171430 100644 --- a/sources/ClangSharp.PInvokeGenerator/PInvokeGenerator.cs +++ b/sources/ClangSharp.PInvokeGenerator/PInvokeGenerator.cs @@ -2344,8 +2344,7 @@ private string EscapeAndStripName(string name) // We first replace already escaped characters with their raw counterpart // We then re-escape any raw characters. This ensures we don't end up with double escaped backslashes - internal static string EscapeString(string value) => value.Replace(@"\\", "\\", StringComparison.Ordinal) - .Replace(@"\0", "\0", StringComparison.Ordinal) + internal static string EscapeString(string value) => value.Replace(@"\0", "\0", StringComparison.Ordinal) .Replace(@"\r", "\r", StringComparison.Ordinal) .Replace(@"\n", "\n", StringComparison.Ordinal) .Replace(@"\t", "\t", StringComparison.Ordinal)