@@ -60,29 +60,32 @@ def mods_test(key, plain=None, shift=None, ctrl=None, alt=None, calt=None, cshif
6060
6161 def a (a , b ):
6262 ae (a , b , f"{ a .encode ('ascii' )} != { b .encode ('ascii' )} " )
63+
64+ def w (a , b ):
65+ return c (b ) if a is None else a
66+
6367 a (e (), plain or c ())
64- a (e (mods = defines .GLFW_MOD_SHIFT ), shift or c (defines .GLFW_MOD_SHIFT ))
65- a (e (mods = defines .GLFW_MOD_CONTROL ), ctrl or c (defines .GLFW_MOD_CONTROL ))
66- a (e (mods = defines .GLFW_MOD_ALT | defines .GLFW_MOD_CONTROL ), calt or c (defines .GLFW_MOD_ALT | defines .GLFW_MOD_CONTROL ))
67- a (e (mods = defines .GLFW_MOD_SHIFT | defines .GLFW_MOD_CONTROL ), cshift or c (defines .GLFW_MOD_CONTROL | defines .GLFW_MOD_SHIFT ))
68- a (e (mods = defines .GLFW_MOD_SHIFT | defines .GLFW_MOD_ALT ), ashift or c (defines .GLFW_MOD_ALT | defines .GLFW_MOD_SHIFT ))
68+ a (e (mods = defines .GLFW_MOD_SHIFT ), w (shift , defines .GLFW_MOD_SHIFT ))
69+ a (e (mods = defines .GLFW_MOD_CONTROL ), w (ctrl , defines .GLFW_MOD_CONTROL ))
70+ a (e (mods = defines .GLFW_MOD_ALT | defines .GLFW_MOD_CONTROL ), w (calt , defines .GLFW_MOD_ALT | defines .GLFW_MOD_CONTROL ))
71+ a (e (mods = defines .GLFW_MOD_SHIFT | defines .GLFW_MOD_CONTROL ), w (cshift , defines .GLFW_MOD_CONTROL | defines .GLFW_MOD_SHIFT ))
72+ a (e (mods = defines .GLFW_MOD_SHIFT | defines .GLFW_MOD_ALT ), w (ashift , defines .GLFW_MOD_ALT | defines .GLFW_MOD_SHIFT ))
73+
74+ def mkp (name , * a , ** kw ):
75+ for x in (f'GLFW_FKEY_{ name } ' , f'GLFW_FKEY_KP_{ name } ' ):
76+ k = getattr (defines , x )
77+ mods_test (k , * a , ** kw )
6978
70- mods_test (defines .GLFW_FKEY_ENTER , '\x0d ' , alt = '\033 \x0d ' , csi_num = ord ('\r ' ))
71- mods_test (defines .GLFW_FKEY_KP_ENTER , '\x0d ' , alt = '\033 \x0d ' , csi_num = ord ('\r ' ))
72- mods_test (defines .GLFW_FKEY_ESCAPE , '\x1b ' , alt = '\033 \033 ' , csi_num = 27 )
73- mods_test (defines .GLFW_FKEY_BACKSPACE , '\x7f ' , alt = '\033 \x7f ' , ctrl = '\x08 ' , csi_num = 127 )
74- mods_test (defines .GLFW_FKEY_TAB , '\t ' , alt = '\033 \t ' , shift = '\x1b [Z' , csi_num = ord ('\t ' ))
75- mods_test (defines .GLFW_FKEY_INSERT , csi_num = 2 , trailer = '~' )
76- mods_test (defines .GLFW_FKEY_KP_INSERT , csi_num = 2 , trailer = '~' )
77- mods_test (defines .GLFW_FKEY_DELETE , csi_num = 3 , trailer = '~' )
78- mods_test (defines .GLFW_FKEY_KP_DELETE , csi_num = 3 , trailer = '~' )
79- mods_test (defines .GLFW_FKEY_PAGE_UP , csi_num = 5 , trailer = '~' )
80- mods_test (defines .GLFW_FKEY_KP_PAGE_UP , csi_num = 5 , trailer = '~' )
81- mods_test (defines .GLFW_FKEY_KP_PAGE_DOWN , csi_num = 6 , trailer = '~' )
82- mods_test (defines .GLFW_FKEY_HOME , csi_num = 1 , trailer = 'H' )
83- mods_test (defines .GLFW_FKEY_KP_HOME , csi_num = 1 , trailer = 'H' )
84- mods_test (defines .GLFW_FKEY_END , csi_num = 1 , trailer = 'F' )
85- mods_test (defines .GLFW_FKEY_KP_END , csi_num = 1 , trailer = 'F' )
79+ mkp ('ENTER' , '\x0d ' , alt = '\033 \x0d ' , ctrl = '\x0d ' , shift = '\x0d ' , ashift = '\033 \x0d ' , calt = '\033 \x0d ' , cshift = '\x0d ' )
80+ mods_test (defines .GLFW_FKEY_ESCAPE , '\x1b ' , alt = '\033 \033 ' , ctrl = '\x1b ' , shift = '\x1b ' , calt = '\x1b \x1b ' , cshift = '\x1b ' , ashift = '\x1b \x1b ' )
81+ mods_test (defines .GLFW_FKEY_BACKSPACE , '\x7f ' , alt = '\033 \x7f ' , ctrl = '\x08 ' , shift = '\x7f ' , ashift = '\033 \x7f ' , cshift = '\x08 ' , calt = '\x1b \x08 ' )
82+ mods_test (defines .GLFW_FKEY_TAB , '\t ' , alt = '\033 \t ' , shift = '\x1b [Z' , ctrl = '\t ' , ashift = '\x1b \x1b [Z' , cshift = '\x1b [Z' , calt = '\x1b \t ' )
83+ mkp ('INSERT' , csi_num = 2 , trailer = '~' )
84+ mkp ('DELETE' , csi_num = 3 , trailer = '~' )
85+ mkp ('PAGE_UP' , csi_num = 5 , trailer = '~' )
86+ mkp ('PAGE_DOWN' , csi_num = 6 , trailer = '~' )
87+ mkp ('HOME' , csi_num = 1 , trailer = 'H' )
88+ mkp ('END' , csi_num = 1 , trailer = 'F' )
8689 mods_test (defines .GLFW_FKEY_F1 , csi_num = 1 , trailer = 'P' )
8790 mods_test (defines .GLFW_FKEY_F2 , csi_num = 1 , trailer = 'Q' )
8891 mods_test (defines .GLFW_FKEY_F3 , csi_num = 1 , trailer = 'R' )
@@ -95,14 +98,10 @@ def a(a, b):
9598 mods_test (defines .GLFW_FKEY_F10 , csi_num = 21 , trailer = '~' )
9699 mods_test (defines .GLFW_FKEY_F11 , csi_num = 23 , trailer = '~' )
97100 mods_test (defines .GLFW_FKEY_F12 , csi_num = 24 , trailer = '~' )
98- mods_test (defines .GLFW_FKEY_UP , csi_num = 1 , trailer = 'A' )
99- mods_test (defines .GLFW_FKEY_KP_UP , csi_num = 1 , trailer = 'A' )
100- mods_test (defines .GLFW_FKEY_DOWN , csi_num = 1 , trailer = 'B' )
101- mods_test (defines .GLFW_FKEY_KP_DOWN , csi_num = 1 , trailer = 'B' )
102- mods_test (defines .GLFW_FKEY_RIGHT , csi_num = 1 , trailer = 'C' )
103- mods_test (defines .GLFW_FKEY_KP_RIGHT , csi_num = 1 , trailer = 'C' )
104- mods_test (defines .GLFW_FKEY_LEFT , csi_num = 1 , trailer = 'D' )
105- mods_test (defines .GLFW_FKEY_KP_LEFT , csi_num = 1 , trailer = 'D' )
101+ mkp ('UP' , csi_num = 1 , trailer = 'A' )
102+ mkp ('DOWN' , csi_num = 1 , trailer = 'B' )
103+ mkp ('RIGHT' , csi_num = 1 , trailer = 'C' )
104+ mkp ('LEFT' , csi_num = 1 , trailer = 'D' )
106105
107106 # legacy key tests {{{
108107 # start legacy letter tests (auto generated by gen-key-constants.py do not edit)
@@ -397,6 +396,10 @@ def a(a, b):
397396 ae (enc (key = ord (' ' )), ' ' )
398397 ae (enc (key = ord (' ' ), mods = ctrl ), '\0 ' )
399398 ae (enc (key = ord (' ' ), mods = alt ), '\x1b ' )
399+ ae (enc (key = ord (' ' ), mods = shift ), ' ' )
400+ ae (enc (key = ord (' ' ), mods = ctrl | alt ), '\x1b \0 ' )
401+ ae (enc (key = ord (' ' ), mods = ctrl | shift ), '\0 ' )
402+ ae (enc (key = ord (' ' ), mods = alt | shift ), '\x1b ' )
400403 ae (enc (key = ord ('i' ), mods = ctrl | shift ), csi (ctrl | shift , ord ('i' )))
401404 ae (enc (key = defines .GLFW_FKEY_LEFT_SHIFT ), '' )
402405 ae (enc (key = defines .GLFW_FKEY_CAPS_LOCK ), '' )
0 commit comments