diff options
| author | Lioncash <mathew1800@gmail.com> | 2014-06-29 21:35:46 -0400 |
|---|---|---|
| committer | Lioncash <mathew1800@gmail.com> | 2014-06-29 21:35:46 -0400 |
| commit | 0332d4d76fa40dc0017a81b5151628f0570e079e (patch) | |
| tree | 5fd6c2365eae838ebaa7a62e8ddf5c00a812b498 /Source/Core/DiscIO/FileHandlerARC.cpp | |
| parent | d720e3ed0be9b897e1b87d0cc04831e573617df2 (diff) | |
| parent | 3805c4967f00ccfc15ed2b5f84d3142786e3da32 (diff) | |
Merge pull request #539 from jordan-woyak/fix-extract-directory
Fix ISO Directory extraction.
Diffstat (limited to 'Source/Core/DiscIO/FileHandlerARC.cpp')
| -rw-r--r-- | Source/Core/DiscIO/FileHandlerARC.cpp | 21 |
1 files changed, 7 insertions, 14 deletions
diff --git a/Source/Core/DiscIO/FileHandlerARC.cpp b/Source/Core/DiscIO/FileHandlerARC.cpp index 6215b0a100..96bfaf9c57 100644 --- a/Source/Core/DiscIO/FileHandlerARC.cpp +++ b/Source/Core/DiscIO/FileHandlerARC.cpp @@ -192,26 +192,19 @@ size_t CARCFile::BuildFilenames(const size_t _FirstIndex, const size_t _LastInde while (CurrentIndex < _LastIndex) { SFileInfo& rFileInfo = m_FileInfoVector[CurrentIndex]; - int uOffset = rFileInfo.m_NameOffset & 0xFFFFFF; + int const uOffset = rFileInfo.m_NameOffset & 0xFFFFFF; + + rFileInfo.m_FullPath = _szDirectory + &_szNameTable[uOffset]; // check next index if (rFileInfo.IsDirectory()) { - if (_szDirectory.empty()) - rFileInfo.m_FullPath += StringFromFormat("%s/", &_szNameTable[uOffset]); - else - rFileInfo.m_FullPath += StringFromFormat("%s%s/", _szDirectory.c_str(), &_szNameTable[uOffset]); - - CurrentIndex = BuildFilenames(CurrentIndex + 1, (size_t) rFileInfo.m_FileSize, rFileInfo.m_FullPath, _szNameTable); + rFileInfo.m_FullPath += '/'; + CurrentIndex = BuildFilenames(CurrentIndex + 1, (size_t)rFileInfo.m_FileSize, rFileInfo.m_FullPath, _szNameTable); } - else // This is a filename + else { - if (_szDirectory.empty()) - rFileInfo.m_FullPath += StringFromFormat("%s", &_szNameTable[uOffset]); - else - rFileInfo.m_FullPath += StringFromFormat("%s%s", _szDirectory.c_str(), &_szNameTable[uOffset]); - - CurrentIndex++; + ++CurrentIndex; } } |
