Quellcode durchsuchen

Merge remote-tracking branch 'origin/master' into develop

QMK Bot vor 3 Jahren
Ursprung
Commit
2ae5a4a535
1 geänderte Dateien mit 6 neuen und 2 gelöschten Zeilen
  1. 6 2
      lib/python/qmk/c_parse.py

+ 6 - 2
lib/python/qmk/c_parse.py

@@ -90,8 +90,10 @@ def find_layouts(file):
                     cli.log.error('Invalid LAYOUT macro in %s: Empty parameter name in macro %s at pos %s.', file, macro_name, i)
                 elif key['label'] not in matrix_locations:
                     cli.log.error('Invalid LAYOUT macro in %s: Key %s in macro %s has no matrix position!', file, key['label'], macro_name)
+                elif len(matrix_locations.get(key['label'])) > 1:
+                    cli.log.error('Invalid LAYOUT macro in %s: Key %s in macro %s has multiple matrix positions (%s)', file, key['label'], macro_name, ', '.join(str(x) for x in matrix_locations[key['label']]))
                 else:
-                    key['matrix'] = matrix_locations[key['label']]
+                    key['matrix'] = matrix_locations[key['label']][0]
 
             parsed_layouts[macro_name] = {
                 'layout': parsed_layout,
@@ -186,7 +188,9 @@ def _parse_matrix_locations(matrix, file, macro_name):
         row = row.replace('{', '').replace('}', '')
         for col_num, identifier in enumerate(row.split(',')):
             if identifier != 'KC_NO':
-                matrix_locations[identifier] = [row_num, col_num]
+                if identifier not in matrix_locations:
+                    matrix_locations[identifier] = []
+                matrix_locations[identifier].append([row_num, col_num])
 
     return matrix_locations