summaryrefslogtreecommitdiffstats
path: root/contrib/ncurses/ncurses/tinfo/MKnames.awk
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/ncurses/ncurses/tinfo/MKnames.awk')
-rw-r--r--contrib/ncurses/ncurses/tinfo/MKnames.awk183
1 files changed, 0 insertions, 183 deletions
diff --git a/contrib/ncurses/ncurses/tinfo/MKnames.awk b/contrib/ncurses/ncurses/tinfo/MKnames.awk
deleted file mode 100644
index 93e682c..0000000
--- a/contrib/ncurses/ncurses/tinfo/MKnames.awk
+++ /dev/null
@@ -1,183 +0,0 @@
-##############################################################################
-# Copyright (c) 2007 Free Software Foundation, Inc. #
-# #
-# Permission is hereby granted, free of charge, to any person obtaining a #
-# copy of this software and associated documentation files (the "Software"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# holders shall not be used in advertising or otherwise to promote the sale, #
-# use or other dealings in this Software without prior written #
-# authorization. #
-##############################################################################
-# $Id: MKnames.awk,v 1.18 2007/11/03 20:24:15 tom Exp $
-function large_item(value) {
- result = sprintf("%d,", offset);
- offset = offset + length(value) + 1;
- offcol = offcol + length(result) + 2;
- if (offcol > 70) {
- result = result "\n";
- offcol = 0;
- } else {
- result = result " ";
- }
- bigstr = bigstr sprintf("\"%s\\0\" ", value);
- bigcol = bigcol + length(value) + 5;
- if (bigcol > 70) {
- bigstr = bigstr "\\\n";
- bigcol = 0;
- }
- return result;
-}
-
-function small_item(value) {
- return sprintf("\t\t\"%s\",\n", value);
-}
-
-function print_strings(name,value) {
- printf "DCL(%s) = {\n", name
- print value
- print "\t\t(NCURSES_CONST char *)0,"
- print "};"
- print ""
-}
-
-function print_offsets(name,value) {
- printf "static const short _nc_offset_%s[] = {\n", name
- printf "%s", value
- print "};"
- print ""
- printf "static NCURSES_CONST char ** ptr_%s = 0;\n", name
- print ""
-}
-
-BEGIN {
- print "/* This file was generated by MKnames.awk */"
- print ""
- print "#include <curses.priv.h>"
- print ""
- print "#define IT NCURSES_CONST char * const"
- print ""
- offset = 0;
- offcol = 0;
- bigcol = 0;
- }
-
-$1 ~ /^#/ {next;}
-
-$1 == "SKIPWARN" {next;}
-
-$3 == "bool" {
- small_boolnames = small_boolnames small_item($2);
- large_boolnames = large_boolnames large_item($2);
- small_boolfnames = small_boolfnames small_item($1);
- large_boolfnames = large_boolfnames large_item($1);
- }
-
-$3 == "num" {
- small_numnames = small_numnames small_item($2);
- large_numnames = large_numnames large_item($2);
- small_numfnames = small_numfnames small_item($1);
- large_numfnames = large_numfnames large_item($1);
- }
-
-$3 == "str" {
- small_strnames = small_strnames small_item($2);
- large_strnames = large_strnames large_item($2);
- small_strfnames = small_strfnames small_item($1);
- large_strfnames = large_strfnames large_item($1);
- }
-
-END {
- print ""
- print "#if BROKEN_LINKER || USE_REENTRANT"
- print ""
- print "#include <term.h>"
- print ""
- if (bigstrings) {
- printf "static const char _nc_name_blob[] = \n"
- printf "%s;\n", bigstr;
- print_offsets("boolfnames", large_boolfnames);
- print_offsets("boolnames", large_boolnames);
- print_offsets("numfnames", large_numfnames);
- print_offsets("numnames", large_numnames);
- print_offsets("strfnames", large_strfnames);
- print_offsets("strnames", large_strnames);
- print ""
- print "static IT *"
- print "alloc_array(NCURSES_CONST char ***value, const short *offsets, unsigned size)"
- print "{"
- print " if (*value == 0) {"
- print " if ((*value = typeCalloc(NCURSES_CONST char *, size + 1)) != 0) {"
- print " unsigned n;"
- print " for (n = 0; n < size; ++n) {"
- print " (*value)[n] = _nc_name_blob + offsets[n];"
- print " }"
- print " }"
- print " }"
- print " return *value;"
- print "}"
- print ""
- print "#define FIX(it) NCURSES_IMPEXP IT * NCURSES_API _nc_##it(void) { return alloc_array(&ptr_##it, _nc_offset_##it, SIZEOF(_nc_offset_##it)); }"
- } else {
- print "#define DCL(it) static IT data##it[]"
- print ""
- print_strings("boolnames", small_boolnames);
- print_strings("boolfnames", small_boolfnames);
- print_strings("numnames", small_numnames);
- print_strings("numfnames", small_numfnames);
- print_strings("strnames", small_strnames);
- print_strings("strfnames", small_strfnames);
- print "#define FIX(it) NCURSES_IMPEXP IT * NCURSES_API _nc_##it(void) { return data##it; }"
- }
- print ""
- print "FIX(boolnames)"
- print "FIX(boolfnames)"
- print "FIX(numnames)"
- print "FIX(numfnames)"
- print "FIX(strnames)"
- print "FIX(strfnames)"
- print ""
- print ""
- print "#define FREE_FIX(it) if (ptr_##it) { FreeAndNull(ptr_##it); }"
- print ""
- print "NCURSES_EXPORT(void)"
- print "_nc_names_leaks(void)"
- print "{"
- if (bigstrings) {
- print "FREE_FIX(boolnames)"
- print "FREE_FIX(boolfnames)"
- print "FREE_FIX(numnames)"
- print "FREE_FIX(numfnames)"
- print "FREE_FIX(strnames)"
- print "FREE_FIX(strfnames)"
- }
- print "}"
- print "#else"
- print ""
- print "#define DCL(it) NCURSES_EXPORT_VAR(IT) it[]"
- print ""
- print_strings("boolnames", small_boolnames);
- print_strings("boolfnames", small_boolfnames);
- print_strings("numnames", small_numnames);
- print_strings("numfnames", small_numfnames);
- print_strings("strnames", small_strnames);
- print_strings("strfnames", small_strfnames);
- print ""
- print "#endif /* BROKEN_LINKER */"
- }
OpenPOWER on IntegriCloud