From 4ea64fee9feefca1b132127e557c4e37cb774b1a Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Fri, 23 Sep 2022 15:28:32 -0700
Subject: [PATCH] Fixed manufacturer/product name deduplication for the Razer
Raiju Tournament Edition controller
---
src/joystick/SDL_joystick.c | 18 ++++++++++++------
1 file changed, 12 insertions(+), 6 deletions(-)
diff --git a/src/joystick/SDL_joystick.c b/src/joystick/SDL_joystick.c
index 8afd772ecba..dc890266c81 100644
--- a/src/joystick/SDL_joystick.c
+++ b/src/joystick/SDL_joystick.c
@@ -1972,14 +1972,20 @@ SDL_CreateJoystickName(Uint16 vendor, Uint16 product, const char *vendor_name, c
}
}
- /* Remove duplicate manufacturer or product in the name */
+ /* Remove duplicate manufacturer or product in the name
+ * e.g. Razer Razer Raiju Tournament Edition Wired
+ */
for (i = 1; i < (len - 1); ++i) {
int matchlen = PrefixMatch(name, &name[i]);
- if (matchlen > 0 && name[matchlen-1] == ' ') {
- SDL_memmove(name, name+matchlen, len-matchlen+1);
- break;
- } else if (matchlen > 0 && name[matchlen] == ' ') {
- SDL_memmove(name, name+matchlen+1, len-matchlen);
+ while (matchlen > 0) {
+ if (name[matchlen] == ' ') {
+ SDL_memmove(name, name + matchlen + 1, len - matchlen);
+ break;
+ }
+ --matchlen;
+ }
+ if (matchlen > 0) {
+ /* We matched the manufacturer's name and removed it */
break;
}
}