mirror of
https://github.com/love2d/love.git
synced 2026-08-17 11:00:31 +02:00
Fix love.joystick.setGamepadMapping breaking the mapping string when replacing an existing binding.
issue #1936.
This commit is contained in:
@@ -259,12 +259,17 @@ bool JoystickModule::setGamepadMapping(const std::string &guid, Joystick::Gamepa
|
|||||||
if (endpos == std::string::npos)
|
if (endpos == std::string::npos)
|
||||||
endpos = mapstr.length() - 1;
|
endpos = mapstr.length() - 1;
|
||||||
|
|
||||||
mapstr.replace(findpos + 1, endpos - findpos + 1, insertstr);
|
mapstr.replace(findpos + 1, endpos - findpos, insertstr);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Just append to the end if we don't need to replace anything.
|
// Just append to the end (or before the platform section if that exists),
|
||||||
mapstr += insertstr;
|
// if we don't need to replace anything.
|
||||||
|
size_t platformpos = mapstr.find("platform:");
|
||||||
|
if (platformpos != std::string::npos)
|
||||||
|
mapstr.insert(platformpos, insertstr);
|
||||||
|
else
|
||||||
|
mapstr += insertstr;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 1 == added, 0 == updated, -1 == error.
|
// 1 == added, 0 == updated, -1 == error.
|
||||||
|
|||||||
Reference in New Issue
Block a user