facd4e33dfc6537c61051a2b83dfd021f34e6863
[alioth/magicpoint.git] / ctlwords.sh
1 #!/bin/sh
2 # Copyright © 2019
3 #       mirabilos <t.glaser@tarent.de>
4 #
5 # All rights reserved.
6 #
7 # Redistribution and use in source and binary forms, with or without
8 # modification, are permitted provided that the following conditions
9 # are met:
10 # 1. Redistributions of source code must retain the above copyright
11 #    notice, this list of conditions and the following disclaimer.
12 # 2. Redistributions in binary form must reproduce the above copyright
13 #    notice, this list of conditions and the following disclaimer in the
14 #    documentation and/or other materials provided with the distribution.
15 # 3. Neither the name of the project nor the names of its contributors
16 #    may be used to endorse or promote products derived from this software
17 #    without specific prior written permission.
18 #
19 # THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS “AS IS” AND
20 # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21 # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22 # ARE DISCLAIMED.  IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
23 # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24 # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
25 # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
26 # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
27 # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
28 # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
29 # SUCH DAMAGE.
30
31 LC_ALL=C; LANGUAGE=C
32 export LC_ALL; unset LANGUAGE
33
34 allu=QWERTYUIOPASDFGHJKLZXCVBNM
35 alll=qwertyuiopasdfghjklzxcvbnm
36
37 upper() {
38         echo :"$@" | sed 's/^://' | tr $alll $allu
39 }
40
41 lfd=0
42 while read control ctype clabel; do
43         ctlup=`upper CTL_$control`
44         ctyup=`upper T_$ctype`
45         if test x"$clabel" = x""; then
46                 clabel=$control
47         elif test x"$clabel" = x"*"; then
48                 clabel='*'$control'*'
49         fi
50         clbsz=${#clabel}
51         cat >&4 <<EOF
52         { "$clabel", $clbsz, $ctlup, $ctyup },
53 EOF
54         cat >&5 <<EOF
55 #define $ctlup $lfd
56 EOF
57         cat >&6 <<EOF
58 "$control",
59 EOF
60         lfd=`expr $lfd + 1`
61 done 4>ctlwords.c 5>ctlwords.h 6>ctlwords.pl <<\EOF
62 noop            void
63 default         int
64 tab             sp
65 size            double
66 fore            long
67 back            long
68 left            void
69 leftfill        void
70 center          void
71 right           void
72 shrink          void
73 lcutin          void
74 rcutin          void
75 cont            void
76 nodef           void    nodefault
77 xfont           str
78 xfont2          str2
79 image           sp
80 bimage          sp
81 page            void
82 hgap            int
83 vgap            int
84 gap             int
85 pause           sp
86 psfont          str
87 prefix          str
88 prefixn         str     *
89 tabprefix       str     *
90 tabprefixn      str     *
91 prefixpos       void    *
92 again           void
93 ccolor          long
94 bar             sp
95 include         str
96 bgrad           sp
97 text            str     *
98 linestart       void    *
99 lineend         void    *
100 mark            void
101 system          sp
102 filter          sp
103 endfilter       void
104 quality         int     bquality
105 icon            sp
106 xsystem         sp
107 tsystem         sp
108 deffont         str
109 font            str
110 charset         str
111 pcache          sp
112 valign          sp
113 area            sp
114 opaque          int
115 sup             void
116 sub             void
117 setsup          int
118 title           str
119 EOF