mkkeysym.sh revision 1.1 1 #! /bin/sh
2 #
3 # $NetBSD: mkkeysym.sh,v 1.1 1998/12/28 14:01:17 hannken Exp $
4 #
5 # Build a table of keysyms from a file describing keysyms as:
6 #
7 # /*BEGINKEYSYMDECL*/
8 # #define KS_name 0xval
9 # ...
10 # /*ENDKEYSYMDECL*/
11 #
12
13 AWK=${AWK:-awk}
14
15 ${AWK} '
16 BEGIN {
17 in_decl = 0;
18 printf("/* DO NOT EDIT: AUTOMATICALLY GENERATED FROM '$1' */\n\n");
19 printf("struct ksym {\n\tchar *name;\n\tint value;\n};\n\n");
20 printf("struct ksym ksym_tab_by_name[] = {\n");
21 }
22
23 END {
24 printf("};\n");
25 }
26
27 $1 == "/*BEGINKEYSYMDECL*/" {
28 in_decl = 1;
29 }
30
31 $1 == "/*ENDKEYSYMDECL*/" {
32 in_decl = 0;
33 }
34
35 $1 ~ /^#[ ]*define/ && $2 ~ /^KS_/ && $3 ~ /^0x[0-9a-f]*/ {
36 if (in_decl)
37 printf("\t{ \"%s\", %s },\n", substr($2, 4), $3);
38 }' $1
39