xorgproto: Branch 'master' - 3 commits

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Thu Feb 18 01:01:49 UTC 2021


 include/X11/XF86keysym.h    |   10 +++++-----
 scripts/keysym-generator.py |   37 ++++++++++++++++++++++++++++++-------
 2 files changed, 35 insertions(+), 12 deletions(-)

New commits:
commit e5d8af9711516385f8346c9e077692b29c914478
Author: Peter Hutterer <peter.hutterer at who-t.net>
Date:   Wed Feb 17 10:08:01 2021 +1000

    scripts: make sure all "Use: XK_Foo" comments point to existing symbols
    
    Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>

diff --git a/scripts/keysym-generator.py b/scripts/keysym-generator.py
index c21ba0e..e0db965 100755
--- a/scripts/keysym-generator.py
+++ b/scripts/keysym-generator.py
@@ -31,6 +31,22 @@ def die(msg):
     sys.exit(1)
 
 
+def all_keysyms(directory):
+    """
+    Extract the key names for all keysyms we have in our repo and return
+    them as list.
+    """
+    keysym_names = []
+    pattern = re.compile(r"^#define\s+(?P<name>\w+)\s+(0x[0-9A-Fa-f]+)")
+    for path in directory.glob("*keysym*.h"):
+        with open(path) as fd:
+            for line in fd:
+                match = re.match(pattern, line)
+                if match:
+                    keysym_names.append(match.group("name"))
+    return keysym_names
+
+
 class Kernel(object):
     """
     Wrapper around the kernel git tree to simplify searching for when a
@@ -158,7 +174,7 @@ def verify(ns):
     )
     # This is the comment pattern we expect
     expected_comment_pattern = re.compile(
-        r"/\* Use: \w+\t+_EVDEVK\(0x(?P<value>[0-9A-F]{3})\)\t+   (v[2-6]\.[0-9]+(\.[0-9]+)?)? +KEY_\w+ \*/"
+        r"/\* Use: (?P<name>\w+)\t+_EVDEVK\(0x(?P<value>[0-9A-F]{3})\)\t+   (v[2-6]\.[0-9]+(\.[0-9]+)?)? +KEY_\w+ \*/"
     )
 
     # Some patterns to spot specific errors, just so we can print useful errors
@@ -175,6 +191,8 @@ def verify(ns):
 
     all_defines = []
 
+    all_keysym_names = all_keysyms(ns.header.parent)
+
     class ParserError(Exception):
         pass
 
@@ -216,6 +234,10 @@ def verify(ns):
                             if keycode == last_keycode:
                                 error("Duplicate keycode", line)
                             last_keycode = keycode
+
+                        name = match.group("name")
+                        if name not in all_keysym_names:
+                            error(f"Unknown keysym {name}", line)
                     elif re.match(hex_pattern, line):
                         logger.warning(f"Unexpected hex code in {line}")
                     continue
@@ -417,6 +439,8 @@ def main():
 
     if not ns.header:
         ns.header = find_xf86keysym_header()
+    else:
+        ns.header = Path(ns.header)
 
     if ns.command is None:
         parser.error("Invalid or missing command")
commit ff19ac58e14e319afbc33aa485af4b4370b2af2e
Author: Peter Hutterer <peter.hutterer at who-t.net>
Date:   Wed Feb 17 09:56:53 2021 +1000

    scripts: use a named pattern for the hexcode check in comments
    
    Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>

diff --git a/scripts/keysym-generator.py b/scripts/keysym-generator.py
index 6bcde61..c21ba0e 100755
--- a/scripts/keysym-generator.py
+++ b/scripts/keysym-generator.py
@@ -158,7 +158,7 @@ def verify(ns):
     )
     # This is the comment pattern we expect
     expected_comment_pattern = re.compile(
-        r"/\* Use: \w+\t+_EVDEVK\(0x([0-9A-F]{3})\)\t+   (v[2-6]\.[0-9]+(\.[0-9]+)?)? +KEY_\w+ \*/"
+        r"/\* Use: \w+\t+_EVDEVK\(0x(?P<value>[0-9A-F]{3})\)\t+   (v[2-6]\.[0-9]+(\.[0-9]+)?)? +KEY_\w+ \*/"
     )
 
     # Some patterns to spot specific errors, just so we can print useful errors
@@ -206,12 +206,11 @@ def verify(ns):
                 if not re.match(define, line):
                     match = re.match(expected_comment_pattern, line)
                     if match:
-                        if match.group(1) != match.group(1).upper():
-                            error(
-                                f"Hex code 0x{match.group(1)} must be uppercase", line
-                            )
-                        if match.group(1):
-                            keycode = int(match.group(1), 16)
+                        hexcode = match.group("value")
+                        if hexcode != hexcode.upper():
+                            error(f"Hex code 0x{hexcode} must be uppercase", line)
+                        if hexcode:
+                            keycode = int(hexcode, 16)
                             if keycode < last_keycode:
                                 error("Keycode must be ascending", line)
                             if keycode == last_keycode:
commit 08549dc8580f498899e82846bebea40f70b8a443
Author: Peter Hutterer <peter.hutterer at who-t.net>
Date:   Wed Feb 17 09:52:54 2021 +1000

    XF86keysym.h: fix a few references to invalid keys
    
    No change to the header, comments only.
    
    Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>

diff --git a/include/X11/XF86keysym.h b/include/X11/XF86keysym.h
index 358b55b..c242e42 100644
--- a/include/X11/XF86keysym.h
+++ b/include/X11/XF86keysym.h
@@ -327,10 +327,10 @@
 #define XF86XK_DisplayToggle		_EVDEVK(0x1AF)		/* v2.6.20 KEY_DISPLAYTOGGLE */
 #define XF86XK_SpellCheck		_EVDEVK(0x1B0)		/* v2.6.24 KEY_SPELLCHECK */
 /* Use: XF86XK_LogOff			_EVDEVK(0x1B1)		   v2.6.24 KEY_LOGOFF */
-/* Use: dollar				_EVDEVK(0x1B2)		   v2.6.24 KEY_DOLLAR */
-/* Use: euro				_EVDEVK(0x1B3)		   v2.6.24 KEY_EURO */
-/* Use: XF86XK_Frameback		_EVDEVK(0x1B4)		   v2.6.24 KEY_FRAMEBACK */
-/* Use: XF86XK_Frameforward		_EVDEVK(0x1B5)		   v2.6.24 KEY_FRAMEFORWARD */
+/* Use: XK_dollar			_EVDEVK(0x1B2)		   v2.6.24 KEY_DOLLAR */
+/* Use: XK_EuroSign			_EVDEVK(0x1B3)		   v2.6.24 KEY_EURO */
+/* Use: XF86XK_FrameBack		_EVDEVK(0x1B4)		   v2.6.24 KEY_FRAMEBACK */
+/* Use: XF86XK_FrameForward		_EVDEVK(0x1B5)		   v2.6.24 KEY_FRAMEFORWARD */
 #define XF86XK_ContextMenu		_EVDEVK(0x1B6)		/* v2.6.24 KEY_CONTEXT_MENU */
 #define XF86XK_MediaRepeat		_EVDEVK(0x1B7)		/* v2.6.26 KEY_MEDIA_REPEAT */
 #define XF86XK_10ChannelsUp		_EVDEVK(0x1B8)		/* v2.6.38 KEY_10CHANNELSUP */
@@ -393,7 +393,7 @@
 #define XF86XK_Screensaver		_EVDEVK(0x245)		/* v3.16 KEY_SCREENSAVER */
 #define XF86XK_VoiceCommand		_EVDEVK(0x246)		/* v3.16 KEY_VOICECOMMAND */
 #define XF86XK_Assistant		_EVDEVK(0x247)		/* v4.13 KEY_ASSISTANT */
-/* Use: ISO_Next_Group			_EVDEVK(0x248)		   v5.2  KEY_KBD_LAYOUT_NEXT */
+/* Use: XK_ISO_Next_Group		_EVDEVK(0x248)		   v5.2  KEY_KBD_LAYOUT_NEXT */
 #define XF86XK_BrightnessMin		_EVDEVK(0x250)		/* v3.16 KEY_BRIGHTNESS_MIN */
 #define XF86XK_BrightnessMax		_EVDEVK(0x251)		/* v3.16 KEY_BRIGHTNESS_MAX */
 #define XF86XK_KbdInputAssistPrev	_EVDEVK(0x260)		/* v3.18 KEY_KBDINPUTASSIST_PREV */


More information about the xorg-commit mailing list