MKunctrl.awk revision 76726
1165138Syongari# $Id: MKunctrl.awk,v 1.8 2000/12/10 02:25:37 tom Exp $
2165138Syongari##############################################################################
3165138Syongari# Copyright (c) 1998,2000 Free Software Foundation, Inc.                     #
4165138Syongari#                                                                            #
5165138Syongari# Permission is hereby granted, free of charge, to any person obtaining a    #
6165138Syongari# copy of this software and associated documentation files (the "Software"), #
7165138Syongari# to deal in the Software without restriction, including without limitation  #
8165138Syongari# the rights to use, copy, modify, merge, publish, distribute, distribute    #
9165138Syongari# with modifications, sublicense, and/or sell copies of the Software, and to #
10165138Syongari# permit persons to whom the Software is furnished to do so, subject to the  #
11165138Syongari# following conditions:                                                      #
12165138Syongari#                                                                            #
13165138Syongari# The above copyright notice and this permission notice shall be included in #
14165138Syongari# all copies or substantial portions of the Software.                        #
15165138Syongari#                                                                            #
16165138Syongari# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
17165138Syongari# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,   #
18165138Syongari# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL    #
19165138Syongari# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER      #
20165138Syongari# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING    #
21165138Syongari# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER        #
22165138Syongari# DEALINGS IN THE SOFTWARE.                                                  #
23165138Syongari#                                                                            #
24165138Syongari# Except as contained in this notice, the name(s) of the above copyright     #
25165138Syongari# holders shall not be used in advertising or otherwise to promote the sale, #
26165138Syongari# use or other dealings in this Software without prior written               #
27165138Syongari# authorization.                                                             #
28165138Syongari##############################################################################
29165138Syongari#
30165138Syongari# Author: Thomas E. Dickey <dickey@clark.net> 1997
31165138Syongari#
32165138Syongari
33165138SyongariBEGIN	{
34165138Syongari		print "/* generated by MKunctrl.awk */"
35165138Syongari		print ""
36165138Syongari		print "#include <curses.priv.h>"
37165138Syongari		print ""
38165138Syongari		print "#undef unctrl"
39165138Syongari		print ""
40165138Syongari	}
41165138SyongariEND	{
42165138Syongari		print "NCURSES_EXPORT(NCURSES_CONST char *) unctrl (register chtype ch)"
43165138Syongari		print "{"
44165138Syongari		printf "static const char* const table[] = {"
45165138Syongari		for ( ch = 0; ch < 256; ch++ ) {
46165138Syongari			gap = ","
47165138Syongari			if ((ch % 8) == 0)
48165138Syongari				printf "\n    "
49165138Syongari			if (ch < 32) {
50165138Syongari				printf "\"^\\%03o\"", ch + 64
51165138Syongari			} else if (ch == 127) {
52165138Syongari				printf "\"^?\""
53165138Syongari			} else if (ch >= 128 && ch < 160) {
54165138Syongari				printf "\"~\\%03o\"", ch - 64
55165138Syongari			} else {
56165138Syongari				printf "\"\\%03o\"", ch
57165138Syongari				gap = gap " "
58165138Syongari			}
59165138Syongari			if (ch == 255)
60165138Syongari				gap = "\n"
61165138Syongari			else if (((ch + 1) % 8) != 0)
62165138Syongari				gap = gap " "
63165138Syongari			printf "%s", gap
64165138Syongari		}
65165138Syongari		print "};"
66165138Syongari		print ""
67165138Syongari		print "\treturn (NCURSES_CONST char *)table[TextOf(ch)];"
68165138Syongari		print "}"
69165138Syongari	}
70165138Syongari