Rework NANDImporter::GetPath slash handling

GetPath has two special cases where it doesn't add a slash.

The first is for the root entry's special name "/". The next commit will
be neater if we can skip calling GetPath for the root entry, because '/'
is one of the characters that Common::EscapeFileName replaces with an
escape sequence. Let's check for entry number 0 instead.

The second is for parent paths that already end in a slash. There's no
actual need to check for this - double slashes are harmless, and for
comparison, NANDImporter::ExtractCertificates already appends slashes
without checking if there already is one. Let's remove this check.
This commit is contained in:
JosJuice
2026-05-30 11:26:26 +02:00
parent 9e7d340f22
commit 3abadcd507
+1 -5
View File
@@ -134,10 +134,6 @@ bool NANDImporter::ExtractFiles()
std::string NANDImporter::GetPath(const NANDFSTEntry& entry, const std::string& parent_path)
{
std::string name(entry.name, strnlen(entry.name, sizeof(NANDFSTEntry::name)));
if (name.front() == '/' || parent_path.back() == '/')
return parent_path + name;
return parent_path + '/' + name;
}
@@ -153,7 +149,7 @@ bool NANDImporter::ProcessEntry(u16 entry_number, const std::string& parent_path
const NANDFSTEntry entry = m_superblock->fst[entry_number];
const std::string path = GetPath(entry, parent_path);
const std::string path = entry_number == 0 ? parent_path : GetPath(entry, parent_path);
INFO_LOG_FMT(DISCIO, "Entry: {} Path: {}", entry, path);
Type type = static_cast<Type>(entry.mode & 3);