From 68044d50646605fb9d035070aad8c2d3530aafd1 Mon Sep 17 00:00:00 2001 From: Daiki Ueno Date: Sat, 5 Jun 2010 19:30:10 +0900 Subject: [PATCH] Read *-keysym-labels.txt from stdin. --- eek/Makefile.am | 6 +++--- eek/gen-keysym-labels.py | 38 +++++++++++++++++++++++++++----------- 2 files changed, 30 insertions(+), 14 deletions(-) diff --git a/eek/Makefile.am b/eek/Makefile.am index de048710..91e0d58b 100644 --- a/eek/Makefile.am +++ b/eek/Makefile.am @@ -89,11 +89,11 @@ eek_HEADERS = \ eek-keysym.c: eek-special-keysym-labels.h eek-unicode-keysym-labels.h eek-keyname-keysym-labels.h eek-special-keysym-labels.h: special-keysym-labels.txt - ./gen-keysym-labels.py $< special_keysym_labels > $@ + ./gen-keysym-labels.py special_keysym_labels < $< > $@ eek-unicode-keysym-labels.h: unicode-keysym-labels.txt - ./gen-keysym-labels.py $< unicode_keysym_labels > $@ + ./gen-keysym-labels.py unicode_keysym_labels < $< > $@ eek-keyname-keysym-labels.h: keyname-keysym-labels.txt - ./gen-keysym-labels.py $< keyname_keysym_labels > $@ + ./gen-keysym-labels.py keyname_keysym_labels < $< > $@ DISTCLEANFILES = \ eek-special-keysym-labels.h \ diff --git a/eek/gen-keysym-labels.py b/eek/gen-keysym-labels.py index be3531b3..3d6e1da4 100755 --- a/eek/gen-keysym-labels.py +++ b/eek/gen-keysym-labels.py @@ -1,27 +1,43 @@ #!/usr/bin/python -from __future__ import with_statement +# Copyright (C) 2010 Daiki Ueno +# Copyright (C) 2010 Red Hat, Inc. + +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public License +# as published by the Free Software Foundation; either version 2 of +# the License, or (at your option) any later version. + +# This library is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. + +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301 USA + import sys import re -if len(sys.argv) != 3: - print >> sys.stderr, "Usage: %s table.txt table-name" % sys.argv[0] +if len(sys.argv) != 2: + print >> sys.stderr, "Usage: %s 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) +for line in sys.stdin: + 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]) + sys.argv[1]) 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'))) + sys.stdout.write(" { 0x%X, %s }" % (keysym, label.encode('UTF-8'))) if index < len(table) - 1: sys.stdout.write(",") sys.stdout.write("\n")