]> ncurses.scripts.mit.edu Git - ncurses.git/blob - ncurses/tinfo/MKnames.awk
ncurses 5.6 - patch 20070421
[ncurses.git] / ncurses / tinfo / MKnames.awk
1 ##############################################################################
2 # Copyright (c) 1998-2000,2006 Free Software Foundation, Inc.                #
3 #                                                                            #
4 # Permission is hereby granted, free of charge, to any person obtaining a    #
5 # copy of this software and associated documentation files (the "Software"), #
6 # to deal in the Software without restriction, including without limitation  #
7 # the rights to use, copy, modify, merge, publish, distribute, distribute    #
8 # with modifications, sublicense, and/or sell copies of the Software, and to #
9 # permit persons to whom the Software is furnished to do so, subject to the  #
10 # following conditions:                                                      #
11 #                                                                            #
12 # The above copyright notice and this permission notice shall be included in #
13 # all copies or substantial portions of the Software.                        #
14 #                                                                            #
15 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
16 # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,   #
17 # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL    #
18 # THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER      #
19 # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING    #
20 # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER        #
21 # DEALINGS IN THE SOFTWARE.                                                  #
22 #                                                                            #
23 # Except as contained in this notice, the name(s) of the above copyright     #
24 # holders shall not be used in advertising or otherwise to promote the sale, #
25 # use or other dealings in this Software without prior written               #
26 # authorization.                                                             #
27 ##############################################################################
28 # $Id: MKnames.awk,v 1.12 2006/04/22 21:46:17 tom Exp $
29 BEGIN           {
30                         print  "/* This file was generated by MKnames.awk */" > "namehdr"
31                         print  ""                               > "namehdr"
32                         print  "#include <curses.priv.h>"       > "namehdr"
33                         print  ""                               > "namehdr"
34                         print  "#define IT NCURSES_CONST char * const"  > "namehdr"
35                         print  ""                               > "namehdr"
36                         print  "#if BROKEN_LINKER"              > "namehdr"
37                         print  "#include <term.h>"              > "namehdr"
38                         print  "#define DCL(it) static IT data##it[]" > "namehdr"
39                         print  "#else"                          > "namehdr"
40                         print  "#define DCL(it) NCURSES_EXPORT_VAR(IT) it[]"    > "namehdr"
41                         print  "#endif"                         > "namehdr"
42                         print  ""                               > "namehdr"
43                         print  "/*"                             > "boolnames"
44                         print  " *      names.c - Arrays of capability names and codes"  > "boolnames"
45                         print  " *"                             > "boolnames"
46                         print  " */"                            > "boolnames"
47                         print  ""                               > "boolnames"
48                         print  "DCL(boolnames)  = {"            > "boolnames"
49                         print  "DCL(boolfnames) = {"            > "boolfnames"
50                         print  "DCL(boolcodes)  = {"            > "boolcodes"
51                         print  "DCL(numnames)   = {"            > "numnames"
52                         print  "DCL(numfnames)  = {"            > "numfnames"
53                         print  "DCL(numcodes)   = {"            > "numcodes"
54                         print  "DCL(strnames)   = {"            > "strnames"
55                         print  "DCL(strfnames)  = {"            > "strfnames"
56                         print  "DCL(strcodes)   = {"            > "strcodes"
57                 }
58
59 $1 ~ /^#/               {next;}
60
61 $1 == "SKIPWARN"        {next;}
62
63 $3 == "bool"    {
64                         printf "\t\t\"%s\",\n", $2 > "boolnames"
65                         printf "\t\t\"%s\",\n", $1 > "boolfnames"
66                         printf "\t\t\"%s\",\n", $4 > "boolcodes"
67                 }
68
69 $3 == "num"     {
70                         printf "\t\t\"%s\",\n", $2 > "numnames"
71                         printf "\t\t\"%s\",\n", $1 > "numfnames"
72                         printf "\t\t\"%s\",\n", $4 > "numcodes"
73                 }
74
75 $3 == "str"     {
76                         printf "\t\t\"%s\",\n", $2 > "strnames"
77                         printf "\t\t\"%s\",\n", $1 > "strfnames"
78                         printf "\t\t\"%s\",\n", $4 > "strcodes"
79                 }
80
81 END             {
82                         print  "\t\t(NCURSES_CONST char *)0," > "boolnames"
83                         print  "};" > "boolnames"
84                         print  "" > "boolnames"
85                         print  "\t\t(NCURSES_CONST char *)0," > "boolfnames"
86                         print  "};" > "boolfnames"
87                         print  "" > "boolfnames"
88                         print  "\t\t(NCURSES_CONST char *)0," > "boolcodes"
89                         print  "};" > "boolcodes"
90                         print  "" > "boolcodes"
91                         print  "\t\t(NCURSES_CONST char *)0," > "numnames"
92                         print  "};" > "numnames"
93                         print  "" > "numnames"
94                         print  "\t\t(NCURSES_CONST char *)0," > "numfnames"
95                         print  "};" > "numfnames"
96                         print  "" > "numfnames"
97                         print  "\t\t(NCURSES_CONST char *)0," > "numcodes"
98                         print  "};" > "numcodes"
99                         print  "" > "numcodes"
100                         print  "\t\t(NCURSES_CONST char *)0," > "strnames"
101                         print  "};" > "strnames"
102                         print  "" > "strnames"
103                         print  "\t\t(NCURSES_CONST char *)0," > "strfnames"
104                         print  "};" > "strfnames"
105                         print  "" > "strfnames"
106                         print  "\t\t(NCURSES_CONST char *)0," > "strcodes"
107                         print  "};"                             > "strcodes"
108                         print  ""                               > "strcodes"
109                         print  "#if BROKEN_LINKER"              > "nameftr"
110                         print  "#define FIX(it) NCURSES_IMPEXP IT * NCURSES_API _nc_##it(void) { return data##it; }" > "nameftr"
111                         print  "FIX(boolnames)"                 > "nameftr"
112                         print  "FIX(boolfnames)"                > "nameftr"
113                         print  "FIX(numnames)"                  > "nameftr"
114                         print  "FIX(numfnames)"                 > "nameftr"
115                         print  "FIX(strnames)"                  > "nameftr"
116                         print  "FIX(strfnames)"                 > "nameftr"
117                         print  "#endif /* BROKEN_LINKER */"     > "nameftr"
118                         print  ""                               > "codeftr"
119                         print  "#if BROKEN_LINKER"              > "codeftr"
120                         print  "#define FIX(it) NCURSES_IMPEXP IT * NCURSES_API _nc_##it(void) { return data##it; }" > "codeftr"
121                         print  "FIX(boolcodes)"                 > "codeftr"
122                         print  "FIX(numcodes)"                  > "codeftr"
123                         print  "FIX(strcodes)"                  > "codeftr"
124                         print  "#endif /* BROKEN_LINKER */"     > "codeftr"
125                 }