summaryrefslogtreecommitdiff
path: root/Source/Core/InputCommon/ControllerInterface
diff options
context:
space:
mode:
authorVladimir Serbinenko <phcoder@gmail.com>2020-01-29 00:49:35 +0100
committerVladimir Serbinenko <phcoder@gmail.com>2020-01-29 02:47:18 +0100
commit02c5d292fac8de40e4a311b04153a17bbb557769 (patch)
tree09d3550661170b72223324adb3b63a8c15e710eb /Source/Core/InputCommon/ControllerInterface
parent57f4837e4de0fccf4a348fed53ea60ac89631cde (diff)
ButtonManager: Fix handling of empty device id.
Device id is "" on ChromeOS when using gamepad
Diffstat (limited to 'Source/Core/InputCommon/ControllerInterface')
-rw-r--r--Source/Core/InputCommon/ControllerInterface/Touch/ButtonManager.cpp13
1 files changed, 10 insertions, 3 deletions
diff --git a/Source/Core/InputCommon/ControllerInterface/Touch/ButtonManager.cpp b/Source/Core/InputCommon/ControllerInterface/Touch/ButtonManager.cpp
index 35d4552afc..22b05952f6 100644
--- a/Source/Core/InputCommon/ControllerInterface/Touch/ButtonManager.cpp
+++ b/Source/Core/InputCommon/ControllerInterface/Touch/ButtonManager.cpp
@@ -10,6 +10,7 @@
#include "Common/FileUtil.h"
#include "Common/IniFile.h"
+#include "Common/StringUtil.h"
#include "Common/Thread.h"
#include "InputCommon/ControllerInterface/Touch/ButtonManager.h"
@@ -630,7 +631,7 @@ void Init(const std::string& game_id)
config << CONFIG_STRINGS[a] << "_" << pad_id;
BindType type;
int bindnum;
- char dev[128];
+ char dev[128]{};
bool hasbind = false;
char modifier = '+';
std::string value;
@@ -641,13 +642,19 @@ void Init(const std::string& game_id)
{
hasbind = true;
type = BIND_AXIS;
- sscanf(value.c_str(), "Device '%127[^\']'-Axis %d%c", dev, &bindnum, &modifier);
+ if (StringBeginsWith(value, "Device ''"))
+ sscanf(value.c_str(), "Device ''-Axis %d%c", &bindnum, &modifier);
+ else
+ sscanf(value.c_str(), "Device '%127[^\']'-Axis %d%c", dev, &bindnum, &modifier);
}
else if (std::string::npos != value.find("Button"))
{
hasbind = true;
type = BIND_BUTTON;
- sscanf(value.c_str(), "Device '%127[^\']'-Button %d", dev, &bindnum);
+ if (StringBeginsWith(value, "Device ''"))
+ sscanf(value.c_str(), "Device ''-Button %d", &bindnum);
+ else
+ sscanf(value.c_str(), "Device '%127[^\']'-Button %d", dev, &bindnum);
}
if (hasbind)
AddBind(std::string(dev),