Skip to content

Commit 383494f

Browse files
authored
Merge pull request #6 from wowdev/pathseparator-fix-issue_5
Path separator fix (issue #5)
2 parents b548b0d + 7b26eb2 commit 383494f

2 files changed

Lines changed: 6 additions & 3 deletions

File tree

TACTSharp/InstallInstance.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ public unsafe InstallInstance(string path)
6060
this.Entries = [];
6161
for (var i = 0; i < this.NumEntries; i++)
6262
{
63-
var name = installData[offs..].ReadNullTermString();
63+
var name = installData[offs..].ReadNullTermString().Replace('/', '\\');
6464
offs += name.Length + 1;
6565

6666
var contentHash = installData.Slice(offs, this.HashSize).ToArray();
@@ -90,7 +90,7 @@ public struct InstallTagEntry
9090

9191
public struct InstallFileEntry
9292
{
93-
public string name;
93+
public string name; // Normalized to \, but not enforced upper/lowercase.
9494
public byte[] md5;
9595
public uint size;
9696
public string[] tags;

TACTTool/Program.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,9 @@ static async Task Main(string[] args)
131131
{
132132
var (eKey, decodedSize, fileName) = target;
133133

134+
fileName = fileName.Replace('\\', Path.DirectorySeparatorChar);
135+
fileName = fileName.Replace('/', Path.DirectorySeparatorChar);
136+
134137
Console.WriteLine("Extracting " + Convert.ToHexStringLower(eKey) + " to " + fileName);
135138

136139
try
@@ -376,7 +379,7 @@ private static void HandleFDID(BuildInstance build, string fdid, string? filenam
376379

377380
private static void HandleFileName(BuildInstance build, string filename, string? outputFilename)
378381
{
379-
var fileEntries = build.Install.Entries.Where(x => x.name.Equals(filename, StringComparison.InvariantCultureIgnoreCase)).ToList();
382+
var fileEntries = build.Install.Entries.Where(x => x.name.Equals(filename.Replace('/', '\\'), StringComparison.InvariantCultureIgnoreCase)).ToList();
380383
if (fileEntries.Count == 0)
381384
{
382385
using (var hasher = new Jenkins96())

0 commit comments

Comments
 (0)