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.
tdelibs/tdecore/generate_keys.sh

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_/TQt::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