From dd01238d179783ce89a6c5c15e35ce72e3fe9bbb Mon Sep 17 00:00:00 2001 From: Enkidu93 Date: Tue, 13 Jan 2026 15:20:45 -0500 Subject: [PATCH 1/2] Check for files case-insensitively --- .../Corpora/FileParatextProjectFileHandler.cs | 15 +++++++++++++-- .../Corpora/ZipParatextProjectFileHandler.cs | 12 +++++++++--- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/src/SIL.Machine/Corpora/FileParatextProjectFileHandler.cs b/src/SIL.Machine/Corpora/FileParatextProjectFileHandler.cs index 3d336e3f..df6dd045 100644 --- a/src/SIL.Machine/Corpora/FileParatextProjectFileHandler.cs +++ b/src/SIL.Machine/Corpora/FileParatextProjectFileHandler.cs @@ -14,12 +14,23 @@ public FileParatextProjectFileHandler(string projectDir) public bool Exists(string fileName) { - return File.Exists(Path.Combine(_projectDir, fileName)); + return Directory + .EnumerateFiles(_projectDir) + .Any(f => Path.GetFileName(f).Equals(fileName, System.StringComparison.InvariantCultureIgnoreCase)); } public Stream Open(string fileName) { - return File.OpenRead(Path.Combine(_projectDir, fileName)); + return File.OpenRead( + Path.Combine( + _projectDir, + Directory + .EnumerateFiles(_projectDir) + .FirstOrDefault(f => + Path.GetFileName(f).Equals(fileName, System.StringComparison.InvariantCultureIgnoreCase) + ) + ) + ); } public UsfmStylesheet CreateStylesheet(string fileName) diff --git a/src/SIL.Machine/Corpora/ZipParatextProjectFileHandler.cs b/src/SIL.Machine/Corpora/ZipParatextProjectFileHandler.cs index 00338dda..2b614bbc 100644 --- a/src/SIL.Machine/Corpora/ZipParatextProjectFileHandler.cs +++ b/src/SIL.Machine/Corpora/ZipParatextProjectFileHandler.cs @@ -16,12 +16,16 @@ public ZipParatextProjectFileHandler(ZipArchive archive) public bool Exists(string fileName) { - return _archive.GetEntry(fileName) != null; + return _archive.Entries.Any(e => + e.FullName.Equals(fileName, System.StringComparison.InvariantCultureIgnoreCase) + ); } public Stream Open(string fileName) { - ZipArchiveEntry entry = _archive.GetEntry(fileName); + ZipArchiveEntry entry = _archive.Entries.FirstOrDefault(e => + e.FullName.Equals(fileName, System.StringComparison.InvariantCultureIgnoreCase) + ); if (entry == null) return null; return entry.Open(); @@ -29,7 +33,9 @@ public Stream Open(string fileName) public string Find(string extension) { - ZipArchiveEntry entry = _archive.Entries.FirstOrDefault(e => e.FullName.EndsWith(extension)); + ZipArchiveEntry entry = _archive.Entries.FirstOrDefault(e => + e.FullName.EndsWith(extension, System.StringComparison.InvariantCultureIgnoreCase) + ); if (entry == null) return null; return entry.FullName; From 8b28605a2468ae4dd363bd97b13aef1af8d05794 Mon Sep 17 00:00:00 2001 From: Enkidu93 Date: Tue, 13 Jan 2026 15:27:57 -0500 Subject: [PATCH 2/2] Capitalize filename in one test project to test case insensitivity --- .../Corpora/TestData/usfm/Tes/{custom.vrs => Custom.vrs} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename tests/SIL.Machine.Tests/Corpora/TestData/usfm/Tes/{custom.vrs => Custom.vrs} (100%) diff --git a/tests/SIL.Machine.Tests/Corpora/TestData/usfm/Tes/custom.vrs b/tests/SIL.Machine.Tests/Corpora/TestData/usfm/Tes/Custom.vrs similarity index 100% rename from tests/SIL.Machine.Tests/Corpora/TestData/usfm/Tes/custom.vrs rename to tests/SIL.Machine.Tests/Corpora/TestData/usfm/Tes/Custom.vrs