From 3e6bbe5876736614b27fceeb721bfa0f891b48b2 Mon Sep 17 00:00:00 2001 From: Joel Verhagen Date: Tue, 16 Jan 2024 10:24:54 -0500 Subject: [PATCH] Disambiguate duplicate module names --- CSharp.lua/LuaSyntaxGenerator.cs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/CSharp.lua/LuaSyntaxGenerator.cs b/CSharp.lua/LuaSyntaxGenerator.cs index 90355b48..00748064 100644 --- a/CSharp.lua/LuaSyntaxGenerator.cs +++ b/CSharp.lua/LuaSyntaxGenerator.cs @@ -264,8 +264,22 @@ private void Write(LuaCompilationUnitSyntax luaCompilationUnit, string outFile) public void Generate(string outFolder) { List modules = new List(); + HashSet uniqueModules = new HashSet(StringComparer.OrdinalIgnoreCase); foreach (var luaCompilationUnit in Create()) { string outFile = GetOutFileAbsolutePath(luaCompilationUnit.FilePath, outFolder, out string module); + string originalModule = module; + string outFileExtension = Path.GetExtension(outFile); + string outFileBase = outFile.Substring(0, outFile.Length - outFileExtension.Length); + int suffix = 1; + while (true) { + if (uniqueModules.Add(module)) { + break; + } + + suffix++; + module = originalModule + "_" + suffix; + outFile = outFileBase + "_" + suffix + outFileExtension; + } Write(luaCompilationUnit, outFile); modules.Add(module); }