From: <man...@us...> - 2013-04-22 21:52:55
|
Revision: 1941 http://sourceforge.net/p/modplug/code/1941 Author: manxorist Date: 2013-04-22 21:52:47 +0000 (Mon, 22 Apr 2013) Log Message: ----------- [Ref] Convert argument of CModSpecifications::ExtensionToType to std::string. Modified Paths: -------------- trunk/OpenMPT/mptrack/TrackerSettings.cpp trunk/OpenMPT/mptrack/test/test.cpp trunk/OpenMPT/soundlib/mod_specifications.cpp trunk/OpenMPT/soundlib/mod_specifications.h Modified: trunk/OpenMPT/mptrack/TrackerSettings.cpp =================================================================== --- trunk/OpenMPT/mptrack/TrackerSettings.cpp 2013-04-22 21:47:30 UTC (rev 1940) +++ trunk/OpenMPT/mptrack/TrackerSettings.cpp 2013-04-22 21:52:47 UTC (rev 1941) @@ -530,7 +530,7 @@ // Default mod type when using the "New" button const MODTYPE oldDefault = defaultModType; - defaultModType = CModSpecifications::ExtensionToType(CMainFrame::GetPrivateProfileCString("Misc", "DefaultModType", CSoundFile::GetModSpecifications(defaultModType).fileExtension, iniFile)); + defaultModType = CModSpecifications::ExtensionToType(mpt::String(CMainFrame::GetPrivateProfileCString("Misc", "DefaultModType", CSoundFile::GetModSpecifications(defaultModType).fileExtension, iniFile))); if(defaultModType == MOD_TYPE_NONE) { defaultModType = oldDefault; Modified: trunk/OpenMPT/mptrack/test/test.cpp =================================================================== --- trunk/OpenMPT/mptrack/test/test.cpp 2013-04-22 21:47:30 UTC (rev 1940) +++ trunk/OpenMPT/mptrack/test/test.cpp 2013-04-22 21:52:47 UTC (rev 1941) @@ -239,7 +239,6 @@ VERIFY_EQUAL(CModSpecifications::ExtensionToType(_T("ita")), MOD_TYPE_NONE); VERIFY_EQUAL(CModSpecifications::ExtensionToType(_T("s2m")), MOD_TYPE_NONE); VERIFY_EQUAL(CModSpecifications::ExtensionToType(_T("")), MOD_TYPE_NONE); - VERIFY_EQUAL(CModSpecifications::ExtensionToType(LPCTSTR(nullptr)), MOD_TYPE_NONE); VERIFY_EQUAL( Util::Round(1.99), 2.0 ); VERIFY_EQUAL( Util::Round(1.5), 2.0 ); Modified: trunk/OpenMPT/soundlib/mod_specifications.cpp =================================================================== --- trunk/OpenMPT/soundlib/mod_specifications.cpp 2013-04-22 21:47:30 UTC (rev 1940) +++ trunk/OpenMPT/soundlib/mod_specifications.cpp 2013-04-22 21:52:47 UTC (rev 1941) @@ -11,8 +11,8 @@ #include <stdafx.h> #include "mod_specifications.h" #include "../common/misc_util.h" +#include <algorithm> - namespace ModSpecs { @@ -368,36 +368,32 @@ } // namespace ModSpecs -MODTYPE CModSpecifications::ExtensionToType(LPCTSTR pszExt) -//--------------------------------------------------------- +MODTYPE CModSpecifications::ExtensionToType(const std::string &ext_) +//------------------------------------------------------------------ { - if (pszExt == nullptr) + std::string ext = ext_; + if(ext == "") + { return MOD_TYPE_NONE; - if (pszExt[0] == '.') - pszExt++; - char szExtA[CountOf(ModSpecs::mod.fileExtension)]; - MemsetZero(szExtA); - const size_t nLength = _tcslen(pszExt); - if (nLength >= CountOf(szExtA)) - return MOD_TYPE_NONE; - for(size_t i = 0; i < nLength; i++) - szExtA[i] = static_cast<char>(pszExt[i]); - - for(size_t i = 0; i < CountOf(ModSpecs::Collection); i++) + } + if(ext.length() > 0 && ext[0] == '.') { - if (!lstrcmpiA(szExtA, ModSpecs::Collection[i]->fileExtension)) + ext = ext.substr(1); + } + std::transform( ext.begin(), ext.end(), ext.begin(), tolower ); + for(std::size_t i = 0; i < CountOf(ModSpecs::Collection); i++) + { + if(ext == ModSpecs::Collection[i]->fileExtension) { return ModSpecs::Collection[i]->internalType; } } // Special case: ITP files... - if(!lstrcmpi(szExtA, _T("itp"))) + if(ext == "itp") { return MOD_TYPE_IT; } - return MOD_TYPE_NONE; - } Modified: trunk/OpenMPT/soundlib/mod_specifications.h =================================================================== --- trunk/OpenMPT/soundlib/mod_specifications.h 2013-04-22 21:47:30 UTC (rev 1940) +++ trunk/OpenMPT/soundlib/mod_specifications.h 2013-04-22 21:52:47 UTC (rev 1941) @@ -21,7 +21,7 @@ { /// Returns modtype corresponding to given file extension. The extension string /// may begin with or without dot, e.g. both ".it" and "it" will be handled correctly. - static MODTYPE ExtensionToType(LPCTSTR pszExt); + static MODTYPE ExtensionToType(const std::string &ext); // Return true if format supports given note. bool HasNote(ModCommand::NOTE note) const; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |