aboutsummaryrefslogtreecommitdiff
path: root/scripts/makeheader
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/makeheader')
-rwxr-xr-xscripts/makeheader41
1 files changed, 41 insertions, 0 deletions
diff --git a/scripts/makeheader b/scripts/makeheader
new file mode 100755
index 0000000..600b565
--- /dev/null
+++ b/scripts/makeheader
@@ -0,0 +1,41 @@
+#!/usr/bin/env python
+from __future__ import print_function
+import re
+import os
+
+
+prefix = os.environ.get('X11_HEADERS_PREFIX', '/usr')
+HEADERS = [
+ prefix + '/include/X11/keysymdef.h',
+ prefix + '/include/X11/XF86keysym.h',
+ prefix + '/include/X11/Sunkeysym.h',
+ prefix + '/include/X11/DECkeysym.h',
+ prefix + '/include/X11/HPkeysym.h',
+]
+
+print('''#ifndef _XKBCOMMON_KEYSYMS_H
+#define _XKBCOMMON_KEYSYMS_H
+
+/* This file is autogenerated; please do not commit directly. */
+
+#define XKB_KEY_NoSymbol 0x000000 /* Special KeySym */
+''')
+for path in HEADERS:
+ with open(path) as header:
+ for line in header:
+ if '#ifdef' in line or '#ifndef' in line or '#endif' in line:
+ continue
+
+ # Remove #define _OSF_Keysyms and such.
+ if '#define _' in line:
+ continue
+
+ # Handle a duplicate definition in HPkeysyms.h which kicks in if
+ # it's not already defined.
+ if 'XK_Ydiaeresis' in line and '0x100000ee' in line:
+ continue
+
+ line = re.sub(r'#define\s*(\w*)XK_', r'#define XKB_KEY_\1', line)
+
+ print(line, end='')
+print('\n\n#endif')