From eeae964ae618125e2f12f5133faa41dca6e6b2e6 Mon Sep 17 00:00:00 2001 From: Jules Aguillon Date: Sun, 6 Aug 2023 20:09:53 +0200 Subject: check_layout: Warn about duplicate keys --- check_layout.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'check_layout.py') diff --git a/check_layout.py b/check_layout.py index e5e14dc..0741ffa 100644 --- a/check_layout.py +++ b/check_layout.py @@ -36,17 +36,22 @@ def unexpected_keys(keys, symbols, msg): def parse_layout(fname): keys = set() + dup = set() root = ET.parse(fname).getroot() if root.tag != "keyboard": return None for row in root: for key in row: for attr in key.keys(): - keys.add(key.get(attr).removeprefix("\\")) - return root, keys + if attr.startswith("key"): + k = key.get(attr).removeprefix("\\") + if k in keys: dup.add(k) + keys.add(k) + return root, keys, dup def check_layout(layout): - root, keys = layout + root, keys, dup = layout + if len(dup) > 0: warn("Duplicate keys: " + key_list_str(dup)) missing_some_of(keys, "~!@#$%^&*(){}`[]=\\-_;:/.,?<>'\"+|", "ASCII punctuation") missing_some_of(keys, "0123456789", "digits") missing_required(keys, -- cgit v1.2.3