blob: d0fea1cdd1f1c0f331b2c2d123eebc1ed2cfc4ca (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
#!/bin/sh
## This script extracts the key names from the QT header
##
## Copyright (c) 1999 Nicolas HADACEK (hadacek@kde.org)
## Distributed under the GNU General Public License
# remove files
rm -f kckey.h kckey.cpp kckey_a
# extract key names and code from QT header
sed -n '/enum Key/!d
:1
N
/}/!b1
p' $1 \
| sed -n '/=/p' \
| sed -n 's/\s*Key_/{ "/
s/,.*$/ },/
s/ =/",/
s/Key_/Qt::Key_/
$s/.*/& }/
p' \
> kckey_a
list=`grep '{ "' kckey_a | sed -e 's#.*{ "\([^"]*\)".*#\1#'`
for i in $list; do
if grep -q "i18n(\"QAccel\", \"$i\");" ../common_texts.cpp; then
sed -e "s#^\(.*\"$i\",.*\$\)#\1 // translated#" kckey_a > kckey_a.new && mv kckey_a.new kckey_a
fi
done
# write header file
begin_line="// This file has been automatically generated by \"generate_keys.sh\""
echo -e $begin_line \
"\n// Distributed under the GNU Library General Public License" \
"\n#ifndef KCKEY_H" \
"\n#define KCKEY_H" \
"\n\ntypedef struct {" \
"\n\tconst char *name;" \
"\n\tint code;" \
"\n} KKeys;" \
"\n\n#define MAX_KEY_LENGTH 15 // should be calculated (gawk ?)" \
"\n#define MAX_KEY_MODIFIER_LENGTH 21 // \"SHIFT + CRTL + ALT + \" : " \
"\n#define MAX_FCTN_LENGTH 50 // arbitrary limit" \
"\n#define NB_KEYS " `cat kckey_a | wc -l` \
"\nextern const KKeys kde_KKEYS[NB_KEYS];" \
"\n\n#endif" \
> kckey.h
# write source file
echo -e $begin_line \
"\n// Distributed under the GNU Library General Public License" \
"\n\n#include <qnamespace.h>" \
"\n#include \"kckey.h\"" \
"\n\nconst KKeys kde_KKEYS[NB_KEYS] = {" \
> kckey.cpp
cat kckey_a >> kckey.cpp
echo -e "};" >> kckey.cpp
# cleaning
rm -f kckey_a
|