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:
Bart van Strien
2017-07-28 14:49:35 +02:00
parent 94ce558126
commit 7fa8fe7572
+3 -3
View File
@@ -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
{