MKunctrl.awk revision 50276
1# $Id: MKunctrl.awk,v 1.6 1998/06/06 18:18:07 tom Exp $ 2############################################################################## 3# Copyright (c) 1998 Free Software Foundation, Inc. # 4# # 5# Permission is hereby granted, free of charge, to any person obtaining a # 6# copy of this software and associated documentation files (the "Software"), # 7# to deal in the Software without restriction, including without limitation # 8# the rights to use, copy, modify, merge, publish, distribute, distribute # 9# with modifications, sublicense, and/or sell copies of the Software, and to # 10# permit persons to whom the Software is furnished to do so, subject to the # 11# following conditions: # 12# # 13# The above copyright notice and this permission notice shall be included in # 14# all copies or substantial portions of the Software. # 15# # 16# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # 17# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # 18# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL # 19# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # 20# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING # 21# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER # 22# DEALINGS IN THE SOFTWARE. # 23# # 24# Except as contained in this notice, the name(s) of the above copyright # 25# holders shall not be used in advertising or otherwise to promote the sale, # 26# use or other dealings in this Software without prior written # 27# authorization. # 28############################################################################## 29# 30# Author: Thomas E. Dickey <dickey@clark.net> 1997 31# 32 33BEGIN { 34 print "/* generated by MKunctrl.awk */" 35 print "" 36 print "#include <curses.priv.h>" 37 print "" 38 print "#undef unctrl" 39 print "" 40 } 41END { 42 print "NCURSES_CONST char *unctrl(register chtype ch)" 43 print "{" 44 printf "static const char* const table[] = {" 45 for ( ch = 0; ch < 256; ch++ ) { 46 gap = "," 47 if ((ch % 8) == 0) 48 printf "\n " 49 if (ch < 32) { 50 printf "\"^\\%03o\"", ch + 64 51 } else if (ch == 127) { 52 printf "\"^?\"" 53 } else { 54 printf "\"\\%03o\"", ch 55 gap = gap " " 56 } 57 if (ch == 255) 58 gap = "\n" 59 else if (((ch + 1) % 8) != 0) 60 gap = gap " " 61 printf "%s", gap 62 } 63 print "};" 64 print "" 65 print "\treturn (NCURSES_CONST char *)table[TextOf(ch)];" 66 print "}" 67 } 68