Fixed gamecontroller database sorting script not sorting the whole database. The script was originally written for an SDL_gamecontrollerdb.h which had groups of mappings separated by single lines starting with a "#". This was changed some time ago to #endif/#if pairs. Because the script assumed only a single #endif in the whole file it no longer worked correctly and only processed the first group.
diff --git a/src/joystick/sort_controllers.py b/src/joystick/sort_controllers.py
index 865127a..af95d65 100755
--- a/src/joystick/sort_controllers.py
+++ b/src/joystick/sort_controllers.py
@@ -40,15 +40,17 @@ def write_controllers():
controller_guids = {}
for line in input:
- if ( parsing_controllers ):
+ if (parsing_controllers):
if (line.startswith("{")):
output.write(line)
- elif (line.startswith("#endif")):
+ elif (line.startswith(" NULL")):
parsing_controllers = False
write_controllers()
output.write(line)
- elif (line.startswith("#")):
+ elif (line.startswith("#if")):
print("Parsing " + line.strip())
+ output.write(line)
+ elif (line.startswith("#endif")):
write_controllers()
output.write(line)
else: