From 9cd2e9ec8fc0127393dfce9c0359d500c8c238be Mon Sep 17 00:00:00 2001
From: Edward Rudd <urkle@outoforder.cc>
Date: Tue, 09 Apr 2019 02:22:50 +0000
Subject: [PATCH] updae source to 2.0.9 source

---
 source/src/joystick/sort_controllers.py |   22 +++++++++++++++++-----
 1 files changed, 17 insertions(+), 5 deletions(-)

diff --git a/source/src/joystick/sort_controllers.py b/source/src/joystick/sort_controllers.py
index 47213c2..32f065a 100755
--- a/source/src/joystick/sort_controllers.py
+++ b/source/src/joystick/sort_controllers.py
@@ -27,16 +27,28 @@
 def write_controllers():
     global controllers
     global controller_guids
-    for entry in sorted(controllers, key=lambda entry: entry[2]):
+    # Check for duplicates
+    for entry in controllers:
+        if (entry[1] in controller_guids):
+            current_name = entry[2]
+            existing_name = controller_guids[entry[1]][2]
+            print("Warning: entry '%s' is duplicate of entry '%s'" % (current_name, existing_name))
+
+            if (not current_name.startswith("(DUPE)")):
+                entry[2] = "(DUPE) " + current_name
+
+            if (not existing_name.startswith("(DUPE)")):
+                controller_guids[entry[1]][2] = "(DUPE) " + existing_name
+
+        controller_guids[entry[1]] = entry
+
+    for entry in sorted(controllers, key=lambda entry: entry[2]+"-"+entry[1]):
         line = "".join(entry) + "\n"
         line = line.replace("\t", "    ")
         if not line.endswith(",\n") and not line.endswith("*/\n"):
             print("Warning: '%s' is missing a comma at the end of the line" % (line))
-        if (entry[1] in controller_guids):
-            print("Warning: entry '%s' is duplicate of entry '%s'" % (entry[2], controller_guids[entry[1]][2]))
-        controller_guids[entry[1]] = entry
-
         output.write(line)
+
     controllers = []
     controller_guids = {}
 

--
Gitblit v1.9.3