X-Git-Url: http://ncurses.scripts.mit.edu/?a=blobdiff_plain;ds=sidebyside;f=ncurses%2Fbase%2FMKunctrl.awk;h=e153fa8c95c444396a41c53bbbef6f9adf8559e2;hb=refs%2Ftags%2Fv5.6;hp=d8a6587e2c69f248bd264294f1f3428537f5e092;hpb=46722468f47c2b77b3987729b4bcf2321cccfd01;p=ncurses.git diff --git a/ncurses/base/MKunctrl.awk b/ncurses/base/MKunctrl.awk index d8a6587e..e153fa8c 100644 --- a/ncurses/base/MKunctrl.awk +++ b/ncurses/base/MKunctrl.awk @@ -1,6 +1,6 @@ -# $Id: MKunctrl.awk,v 1.9 2001/06/02 23:59:20 skimo Exp $ +# $Id: MKunctrl.awk,v 1.11 2005/12/17 22:48:37 tom Exp $ ############################################################################## -# Copyright (c) 1998,2000,2001 Free Software Foundation, Inc. # +# Copyright (c) 1998-2004,2005 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"), # @@ -41,6 +41,7 @@ BEGIN { END { print "NCURSES_EXPORT(NCURSES_CONST char *) unctrl (register chtype ch)" print "{" + printf "static const char* const table[] = {" for ( ch = 0; ch < 256; ch++ ) { gap = "," @@ -63,7 +64,44 @@ END { printf "%s", gap } print "};" + + print "" + print "#if NCURSES_EXT_FUNCS" + printf "static const char* const table2[] = {" + for ( ch = 128; ch < 160; ch++ ) { + gap = "," + if ((ch % 8) == 0) + printf "\n " + if (ch >= 128 && ch < 160) { + printf "\"\\%03o\"", ch + gap = gap " " + } + if (ch == 255) + gap = "\n" + else if (((ch + 1) % 8) != 0) + gap = gap " " + printf "%s", gap + } + print "};" + print "#endif /* NCURSES_EXT_FUNCS */" + + print "" + print "\tint check = ChCharOf(ch);" + print "\tconst char *result;" print "" - print "\treturn (NCURSES_CONST char *)table[ChCharOf(ch)];" + print "\tif (check >= 0 && check < (int)SIZEOF(table)) {" + print "#if NCURSES_EXT_FUNCS" + print "\t\tif ((SP != 0)" + print "\t\t && (SP->_legacy_coding > 1)" + print "\t\t && (check >= 128)" + print "\t\t && (check < 160))" + print "\t\t\tresult = table2[check - 128];" + print "\t\telse" + print "#endif /* NCURSES_EXT_FUNCS */" + print "\t\t\tresult = table[check];" + print "\t} else {" + print "\t\tresult = 0;" + print "\t}" + print "\treturn (NCURSES_CONST char *)result;" print "}" }