From 6026a3f76f88a4c00b616bd16316540d373eeffd Mon Sep 17 00:00:00 2001 From: Zhuowei Zhang Date: Sun, 7 Sep 2014 00:56:10 -0400 Subject: [PATCH] When loading the map file for a DOL/ELF file, extract only the filename from the DOL/ELF'S path --- Source/Core/Core/Boot/Boot.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/Source/Core/Core/Boot/Boot.cpp b/Source/Core/Core/Boot/Boot.cpp index d6cf708af3..c8099f76af 100644 --- a/Source/Core/Core/Boot/Boot.cpp +++ b/Source/Core/Core/Boot/Boot.cpp @@ -70,6 +70,7 @@ bool CBoot::FindMapFile(std::string* existing_map_file, std::string* writable_map_file) { std::string title_id_str; + size_t name_begin_index; SCoreStartupParameter& _StartupPara = SConfig::GetInstance().m_LocalCoreStartupParameter; switch (_StartupPara.m_BootType) @@ -90,9 +91,14 @@ bool CBoot::FindMapFile(std::string* existing_map_file, case SCoreStartupParameter::BOOT_ELF: case SCoreStartupParameter::BOOT_DOL: - // Strip the .elf/.dol file extension + // Strip the .elf/.dol file extension and directories before the name + name_begin_index = _StartupPara.m_strFilename.find_last_of("/") + 1; + if ((_StartupPara.m_strFilename.find_last_of("\\") + 1) > name_begin_index) + { + name_begin_index = _StartupPara.m_strFilename.find_last_of("\\") + 1; + } title_id_str = _StartupPara.m_strFilename.substr( - 0, _StartupPara.m_strFilename.size() - 4); + name_begin_index, _StartupPara.m_strFilename.size() - 4 - name_begin_index); break; default: