mirror of
https://github.com/love2d/love.git
synced 2026-08-12 16:40:57 +02:00
Fix replacement when using love.joystick.setGamepadMapping (issue #1298)
The broken find code would previously cause the (duplicate) key to be appended to the end, now it successfully replaces the previous value --HG-- branch : minor
This commit is contained in:
@@ -241,15 +241,15 @@ bool JoystickModule::setGamepadMapping(const std::string &guid, Joystick::Gamepa
|
||||
std::string insertstr = gpinputname + ":" + joyinputstr + ",";
|
||||
|
||||
// We should replace any existing gamepad bind.
|
||||
size_t findpos = mapstr.find(std::string(", ") + gpinputname + ":");
|
||||
size_t findpos = mapstr.find("," + gpinputname + ":");
|
||||
if (findpos != std::string::npos)
|
||||
{
|
||||
// The bind string ends at the next comma, or the end of the string.
|
||||
size_t endpos = mapstr.find_first_of(',', findpos);
|
||||
size_t endpos = mapstr.find_first_of(',', findpos + 1);
|
||||
if (endpos == std::string::npos)
|
||||
endpos = mapstr.length() - 1;
|
||||
|
||||
mapstr.replace(findpos, endpos - findpos + 1, insertstr);
|
||||
mapstr.replace(findpos + 1, endpos - findpos + 1, insertstr);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user