29 lines
873 B
Python
Executable File
29 lines
873 B
Python
Executable File
#!/usr/bin/python
|
|
|
|
from __future__ import with_statement
|
|
import sys
|
|
import re
|
|
|
|
if len(sys.argv) != 3:
|
|
print >> sys.stderr, "Usage: %s table.txt table-name" % sys.argv[0]
|
|
sys.exit(-1)
|
|
|
|
table = dict()
|
|
with open(sys.argv[1], 'r') as fp:
|
|
for line in fp:
|
|
line = line.decode('UTF-8')
|
|
match = re.match(r'\s*(0x[0-9A-F]+)\s+(\S*)', line, re.I)
|
|
if match:
|
|
table[int(match.group(1), 16)] = match.group(2)
|
|
|
|
sys.stdout.write("static const struct eek_keysym_label %s[] = {\n" %
|
|
sys.argv[2])
|
|
|
|
for index, (keysym, label) in enumerate([(keysym, table[keysym])
|
|
for keysym in sorted(table.keys())]):
|
|
sys.stdout.write(" { 0x%X, %s }" % (keysym, label.encode('UTF-8')))
|
|
if index < len(table) - 1:
|
|
sys.stdout.write(",")
|
|
sys.stdout.write("\n")
|
|
sys.stdout.write("};\n")
|