From: <sv...@op...> - 2025-01-04 16:14:11
|
Author: sagamusix Date: Sat Jan 4 17:13:59 2025 New Revision: 22806 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22806 Log: Merged revision(s) 22805 from trunk/OpenMPT: [Fix] Passing a relative path as command-line argument was broken again since r14621, and probably never worked correctly when such a path was passed to another OpenMPT instance. ........ Modified: branches/OpenMPT-1.31/ (props changed) branches/OpenMPT-1.31/mptrack/Mptrack.cpp Modified: branches/OpenMPT-1.31/mptrack/Mptrack.cpp ============================================================================== --- branches/OpenMPT-1.31/mptrack/Mptrack.cpp Sat Jan 4 17:11:46 2025 (r22805) +++ branches/OpenMPT-1.31/mptrack/Mptrack.cpp Sat Jan 4 17:13:59 2025 (r22806) @@ -297,6 +297,13 @@ #endif public: + CMPTCommandLineInfo() + { + std::vector<TCHAR> curDir(::GetCurrentDirectory(0, nullptr), _T('\0')); + ::GetCurrentDirectory(static_cast<DWORD>(curDir.size()), curDir.data()); + m_workingDir = mpt::PathString::FromNative(curDir.data()); + } + void ParseParam(LPCTSTR param, BOOL isFlag, BOOL isLast) override { if(isFlag) @@ -317,11 +324,14 @@ #endif } else { - m_fileNames.push_back(mpt::PathString::FromNative(param)); + m_fileNames.push_back(mpt::RelativePathToAbsolute(mpt::PathString::FromNative(param), m_workingDir)); if(m_nShellCommand == FileNew) m_nShellCommand = FileOpen; } CCommandLineInfo::ParseParam(param, isFlag, isLast); } + +protected: + mpt::PathString m_workingDir; }; @@ -1056,7 +1066,7 @@ return true; } -static bool SystemCanRunCurrentBuild() +static bool SystemCanRunCurrentBuild() { if(mpt::OS::Windows::IsOriginal()) { |