mirror of
https://github.com/libsdl-org/SDL.git
synced 2026-05-31 22:42:52 +08:00
Don't do name blacklisting if there's no name
This commit is contained in:
+20
-19
@@ -3233,28 +3233,29 @@ bool SDL_IsGamepad(SDL_JoystickID instance_id)
|
|||||||
*/
|
*/
|
||||||
bool SDL_ShouldIgnoreGamepad(Uint16 vendor_id, Uint16 product_id, Uint16 version, const char *name)
|
bool SDL_ShouldIgnoreGamepad(Uint16 vendor_id, Uint16 product_id, Uint16 version, const char *name)
|
||||||
{
|
{
|
||||||
int i;
|
if (name) {
|
||||||
for (i = 0; i < SDL_arraysize(SDL_gamepad_blacklist_words); i++) {
|
for (int i = 0; i < SDL_arraysize(SDL_gamepad_blacklist_words); i++) {
|
||||||
const struct SDL_GamepadBlacklistWords *blacklist_word = &SDL_gamepad_blacklist_words[i];
|
const struct SDL_GamepadBlacklistWords *blacklist_word = &SDL_gamepad_blacklist_words[i];
|
||||||
|
|
||||||
switch (blacklist_word->pos) {
|
switch (blacklist_word->pos) {
|
||||||
case GAMEPAD_BLACKLIST_BEGIN:
|
case GAMEPAD_BLACKLIST_BEGIN:
|
||||||
if (SDL_startswith(name, blacklist_word->str)) {
|
if (SDL_startswith(name, blacklist_word->str)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case GAMEPAD_BLACKLIST_END:
|
case GAMEPAD_BLACKLIST_END:
|
||||||
if (SDL_endswith(name, blacklist_word->str)) {
|
if (SDL_endswith(name, blacklist_word->str)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case GAMEPAD_BLACKLIST_ANYWHERE:
|
case GAMEPAD_BLACKLIST_ANYWHERE:
|
||||||
if (SDL_strstr(name, blacklist_word->str) != NULL) {
|
if (SDL_strstr(name, blacklist_word->str) != NULL) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user