part of -Wsign-compare
[alioth/magicpoint.git] / ctlwords.sh
1 #!/bin/sh
2 #-
3 # Copyright © 2019
4 #       mirabilos <t.glaser@tarent.de>
5 # Copyright (C) 1997 and 1998 WIDE Project.  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 set -e
35
36 allu=QWERTYUIOPASDFGHJKLZXCVBNM
37 alll=qwertyuiopasdfghjklzxcvbnm
38
39 upper() {
40         echo :"$@" | sed 's/^://' | tr $alll $allu
41 }
42
43 rm -f ctlwords.c ctlwords.h ctlwords.pl
44
45 cat >ctlwords.c~ <<\EOF
46 /* this was generated by ctlwords.sh, do not edit */
47 #include "mgp.h"
48 const struct ctl_words ctl_words[] = {
49 EOF
50
51 cat >ctlwords.h~ <<\EOF
52 /* this was generated by ctlwords.sh, do not edit */
53 EOF
54
55 cat >ctlwords.pl~ <<\EOF
56
57 # this keyword list was generated by ctlwords.sh, do not edit
58 @keywords = (
59 EOF
60
61 lfd=0
62 while read control ctype clabel; do
63         ctlup=`upper CTL_$control`
64         ctyup=`upper T_$ctype`
65         if test x"$clabel" = x""; then
66                 clabel=$control
67         elif test x"$clabel" = x"*"; then
68                 clabel='*'$control'*'
69         else
70                 :
71         fi
72         clbsz=`expr "X$clabel" : '.*'`
73         clbsz=`expr $clbsz - 1` # the X
74         cat >&4 <<EOF
75         { "$clabel", $clbsz, $ctlup, $ctyup },
76 EOF
77         cat >&5 <<EOF
78 #define $ctlup $lfd
79 EOF
80         cat >&6 <<EOF
81 "$control",
82 EOF
83         lfd=`expr $lfd + 1`
84 done 4>>ctlwords.c~ 5>>ctlwords.h~ 6>>ctlwords.pl~ <<\EOF
85 noop            void
86 default         int
87 tab             sp
88 size            double
89 fore            long
90 back            long
91 left            void
92 leftfill        void
93 center          void
94 right           void
95 shrink          void
96 lcutin          void
97 rcutin          void
98 cont            void
99 nodef           void    nodefault
100 xfont           str
101 xfont2          str2
102 image           sp
103 bimage          sp
104 page            void
105 hgap            int
106 vgap            int
107 gap             int
108 pause           sp
109 psfont          str
110 prefix          str
111 prefixn         str     *
112 tabprefix       str     *
113 tabprefixn      str     *
114 prefixpos       void    *
115 again           void
116 ccolor          long
117 bar             sp
118 include         str
119 bgrad           sp
120 text            str     *
121 linestart       void    *
122 lineend         void    *
123 mark            void
124 system          sp
125 filter          sp
126 endfilter       void
127 quality         int     bquality
128 icon            sp
129 xsystem         sp
130 tsystem         sp
131 deffont         str
132 font            str
133 charset         str
134 pcache          sp
135 valign          sp
136 area            sp
137 opaque          int
138 sup             void
139 sub             void
140 setsup          int
141 title           str
142 EOF
143
144 cat >>ctlwords.pl~ <<\EOF
145 );
146 # end of generated keyword list
147
148 EOF
149
150 cat >>ctlwords.h~ <<\EOF
151 /* end of generated file */
152 EOF
153
154 cat >>ctlwords.c~ <<\EOF
155         { NULL, 0, 0, 0 }
156 };
157 /* end of generated list */
158 EOF
159
160 mv ctlwords.pl~ ctlwords.pl
161 mv ctlwords.h~ ctlwords.h
162 mv ctlwords.c~ ctlwords.c