You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
1.7 KiB
64 lines
1.7 KiB
#!/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
|