ncursesw-morphos/ncurses/MKunctrl.awk

55 lines
2.2 KiB
Awk
Raw Normal View History

1997-05-15 12:00:00 +08:00
# $Id: MKunctrl.awk,v 1.3 1997/04/26 23:04:45 tom Exp $
################################################################################
# Copyright 1997 by Thomas E. Dickey <dickey@clark.net> #
# All Rights Reserved. #
# #
# Permission to use, copy, modify, and distribute this software and its #
# documentation for any purpose and without fee is hereby granted, provided #
# that the above copyright notice appear in all copies and that both that #
# copyright notice and this permission notice appear in supporting #
# documentation, and that the name of the above listed copyright holder(s) not #
# be used in advertising or publicity pertaining to distribution of the #
# software without specific, written prior permission. THE ABOVE LISTED #
# COPYRIGHT HOLDER(S) DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, #
# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT #
# SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY SPECIAL, #
# INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM #
# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE #
# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR #
# PERFORMANCE OF THIS SOFTWARE. #
################################################################################
BEGIN {
print "/* generated by MKunctrl.awk */"
print
print "#include <curses.priv.h>"
print
}
END {
print "NCURSES_CONST char *unctrl(register chtype ch)"
print "{"
printf "static const char* const table[] = {"
for ( ch = 0; ch < 256; ch++ ) {
gap = ","
if ((ch % 8) == 0)
printf "\n "
if (ch < 32) {
printf "\"^\\%03o\"", ch + 64
} else if (ch == 127) {
printf "\"^?\""
} else {
printf "\"\\%03o\"", ch
gap = gap " "
}
if (ch == 255)
gap = "\n"
else if (((ch + 1) % 8) != 0)
gap = gap " "
printf "%s", gap
}
print "};"
print ""
print "\treturn (NCURSES_CONST char *)table[TextOf(ch)];"
print "}"
}