xref: /minix3/lib/libcurses/unctrl.c (revision 51ffecc181005cb45a40108612ee28d1daaeeb86)
1*51ffecc1SBen Gras /*	$NetBSD: unctrl.c,v 1.11 2007/05/28 15:01:58 blymn Exp $	*/
2b7061124SArun Thomas 
3*51ffecc1SBen Gras /*
4*51ffecc1SBen Gras  * Copyright (c) 1981, 1993
5*51ffecc1SBen Gras  *	The Regents of the University of California.  All rights reserved.
6*51ffecc1SBen Gras  *
7*51ffecc1SBen Gras  * Redistribution and use in source and binary forms, with or without
8*51ffecc1SBen Gras  * modification, are permitted provided that the following conditions
9*51ffecc1SBen Gras  * are met:
10*51ffecc1SBen Gras  * 1. Redistributions of source code must retain the above copyright
11*51ffecc1SBen Gras  *    notice, this list of conditions and the following disclaimer.
12*51ffecc1SBen Gras  * 2. Redistributions in binary form must reproduce the above copyright
13*51ffecc1SBen Gras  *    notice, this list of conditions and the following disclaimer in the
14*51ffecc1SBen Gras  *    documentation and/or other materials provided with the distribution.
15*51ffecc1SBen Gras  * 3. Neither the name of the University nor the names of its contributors
16*51ffecc1SBen Gras  *    may be used to endorse or promote products derived from this software
17*51ffecc1SBen Gras  *    without specific prior written permission.
18*51ffecc1SBen Gras  *
19*51ffecc1SBen Gras  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
20*51ffecc1SBen Gras  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21*51ffecc1SBen Gras  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22*51ffecc1SBen Gras  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
23*51ffecc1SBen Gras  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24*51ffecc1SBen Gras  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
25*51ffecc1SBen Gras  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
26*51ffecc1SBen Gras  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
27*51ffecc1SBen Gras  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
28*51ffecc1SBen Gras  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
29*51ffecc1SBen Gras  * SUCH DAMAGE.
30*51ffecc1SBen Gras  */
31b7061124SArun Thomas 
32*51ffecc1SBen Gras #include <sys/cdefs.h>
33*51ffecc1SBen Gras #ifndef lint
34*51ffecc1SBen Gras #if 0
35*51ffecc1SBen Gras static char sccsid[] = "@(#)unctrl.c	8.1 (Berkeley) 6/4/93";
36*51ffecc1SBen Gras #else
37*51ffecc1SBen Gras __RCSID("$NetBSD: unctrl.c,v 1.11 2007/05/28 15:01:58 blymn Exp $");
38*51ffecc1SBen Gras #endif
39*51ffecc1SBen Gras #endif /* not lint */
40b7061124SArun Thomas 
41*51ffecc1SBen Gras #include <unctrl.h>
42b7061124SArun Thomas 
43*51ffecc1SBen Gras const char   * const __unctrl[256] = {
44*51ffecc1SBen Gras 	"^@", "^A", "^B", "^C", "^D", "^E", "^F", "^G",
45*51ffecc1SBen Gras 	"^H", "^I", "^J", "^K", "^L", "^M", "^N", "^O",
46*51ffecc1SBen Gras 	"^P", "^Q", "^R", "^S", "^T", "^U", "^V", "^W",
47*51ffecc1SBen Gras 	"^X", "^Y", "^Z", "^[", "^\\", "^]", "^~", "^_",
48*51ffecc1SBen Gras 	" ", "!", "\"", "#", "$", "%", "&", "'",
49*51ffecc1SBen Gras 	"(", ")", "*", "+", ",", "-", ".", "/",
50*51ffecc1SBen Gras 	"0", "1", "2", "3", "4", "5", "6", "7",
51*51ffecc1SBen Gras 	"8", "9", ":", ";", "<", "=", ">", "?",
52*51ffecc1SBen Gras 	"@", "A", "B", "C", "D", "E", "F", "G",
53*51ffecc1SBen Gras 	"H", "I", "J", "K", "L", "M", "N", "O",
54*51ffecc1SBen Gras 	"P", "Q", "R", "S", "T", "U", "V", "W",
55*51ffecc1SBen Gras 	"X", "Y", "Z", "[", "\\", "]", "^", "_",
56*51ffecc1SBen Gras 	"`", "a", "b", "c", "d", "e", "f", "g",
57*51ffecc1SBen Gras 	"h", "i", "j", "k", "l", "m", "n", "o",
58*51ffecc1SBen Gras 	"p", "q", "r", "s", "t", "u", "v", "w",
59*51ffecc1SBen Gras 	"x", "y", "z", "{", "|", "}", "~", "^?",
60b7061124SArun Thomas 
61*51ffecc1SBen Gras 	"0x80", "0x81", "0x82", "0x83", "0x84", "0x85", "0x86", "0x87",
62*51ffecc1SBen Gras 	"0x88", "0x89", "0x8a", "0x8b", "0x8c", "0x8d", "0x8e", "0x8f",
63*51ffecc1SBen Gras 	"0x90", "0x91", "0x92", "0x93", "0x94", "0x95", "0x96", "0x97",
64*51ffecc1SBen Gras 	"0x98", "0x99", "0x9a", "0x9b", "0x9c", "0x9d", "0x9e", "0x9f",
65*51ffecc1SBen Gras 	"0xa0", "0xa1", "0xa2", "0xa3", "0xa4", "0xa5", "0xa6", "0xa7",
66*51ffecc1SBen Gras 	"0xa8", "0xa9", "0xaa", "0xab", "0xac", "0xad", "0xae", "0xaf",
67*51ffecc1SBen Gras 	"0xb0", "0xb1", "0xb2", "0xb3", "0xb4", "0xb5", "0xb6", "0xb7",
68*51ffecc1SBen Gras 	"0xb8", "0xb9", "0xba", "0xbb", "0xbc", "0xbd", "0xbe", "0xbf",
69*51ffecc1SBen Gras 	"0xc0", "0xc1", "0xc2", "0xc3", "0xc4", "0xc5", "0xc6", "0xc7",
70*51ffecc1SBen Gras 	"0xc8", "0xc9", "0xca", "0xcb", "0xcc", "0xcd", "0xce", "0xcf",
71*51ffecc1SBen Gras 	"0xd0", "0xd1", "0xd2", "0xd3", "0xd4", "0xd5", "0xd6", "0xd7",
72*51ffecc1SBen Gras 	"0xd8", "0xd9", "0xda", "0xdb", "0xdc", "0xdd", "0xde", "0xdf",
73*51ffecc1SBen Gras 	"0xe0", "0xe1", "0xe2", "0xe3", "0xe4", "0xe5", "0xe6", "0xe7",
74*51ffecc1SBen Gras 	"0xe8", "0xe9", "0xea", "0xeb", "0xec", "0xed", "0xee", "0xef",
75*51ffecc1SBen Gras 	"0xf0", "0xf1", "0xf2", "0xf3", "0xf4", "0xf5", "0xf6", "0xf7",
76*51ffecc1SBen Gras 	"0xf8", "0xf9", "0xfa", "0xfb", "0xfc", "0xfd", "0xfe", "0xff",
77*51ffecc1SBen Gras };
78*51ffecc1SBen Gras 
79*51ffecc1SBen Gras const unsigned char    __unctrllen[256] = {
80*51ffecc1SBen Gras 	2, 2, 2, 2, 2, 2, 2, 2,
81*51ffecc1SBen Gras 	2, 2, 2, 2, 2, 2, 2, 2,
82*51ffecc1SBen Gras 	2, 2, 2, 2, 2, 2, 2, 2,
83*51ffecc1SBen Gras 	2, 2, 2, 2, 2, 2, 2, 2,
84*51ffecc1SBen Gras 	1, 1, 1, 1, 1, 1, 1, 1,
85*51ffecc1SBen Gras 	1, 1, 1, 1, 1, 1, 1, 1,
86*51ffecc1SBen Gras 	1, 1, 1, 1, 1, 1, 1, 1,
87*51ffecc1SBen Gras 	1, 1, 1, 1, 1, 1, 1, 1,
88*51ffecc1SBen Gras 	1, 1, 1, 1, 1, 1, 1, 1,
89*51ffecc1SBen Gras 	1, 1, 1, 1, 1, 1, 1, 1,
90*51ffecc1SBen Gras 	1, 1, 1, 1, 1, 1, 1, 1,
91*51ffecc1SBen Gras 	1, 1, 1, 1, 1, 1, 1, 1,
92*51ffecc1SBen Gras 	1, 1, 1, 1, 1, 1, 1, 1,
93*51ffecc1SBen Gras 	1, 1, 1, 1, 1, 1, 1, 1,
94*51ffecc1SBen Gras 	1, 1, 1, 1, 1, 1, 1, 1,
95*51ffecc1SBen Gras 	1, 1, 1, 1, 1, 1, 1, 2,
96*51ffecc1SBen Gras 	4, 4, 4, 4, 4, 4, 4, 4,
97*51ffecc1SBen Gras 	4, 4, 4, 4, 4, 4, 4, 4,
98*51ffecc1SBen Gras 	4, 4, 4, 4, 4, 4, 4, 4,
99*51ffecc1SBen Gras 	4, 4, 4, 4, 4, 4, 4, 4,
100*51ffecc1SBen Gras 	4, 4, 4, 4, 4, 4, 4, 4,
101*51ffecc1SBen Gras 	4, 4, 4, 4, 4, 4, 4, 4,
102*51ffecc1SBen Gras 	4, 4, 4, 4, 4, 4, 4, 4,
103*51ffecc1SBen Gras 	4, 4, 4, 4, 4, 4, 4, 4,
104*51ffecc1SBen Gras 	4, 4, 4, 4, 4, 4, 4, 4,
105*51ffecc1SBen Gras 	4, 4, 4, 4, 4, 4, 4, 4,
106*51ffecc1SBen Gras 	4, 4, 4, 4, 4, 4, 4, 4,
107*51ffecc1SBen Gras 	4, 4, 4, 4, 4, 4, 4, 4,
108*51ffecc1SBen Gras 	4, 4, 4, 4, 4, 4, 4, 4,
109*51ffecc1SBen Gras 	4, 4, 4, 4, 4, 4, 4, 4,
110*51ffecc1SBen Gras 	4, 4, 4, 4, 4, 4, 4, 4,
111*51ffecc1SBen Gras 	4, 4, 4, 4, 4, 4, 4, 4,
112*51ffecc1SBen Gras };
113*51ffecc1SBen Gras 
114*51ffecc1SBen Gras #ifdef HAVE_WCHAR
115*51ffecc1SBen Gras const wchar_t   * const __wunctrl[256] = {
116*51ffecc1SBen Gras 	L"^@", L"^A", L"^B", L"^C", L"^D", L"^E", L"^F", L"^G",
117*51ffecc1SBen Gras 	L"^H", L"^I", L"^J", L"^K", L"^L", L"^M", L"^N", L"^O",
118*51ffecc1SBen Gras 	L"^P", L"^Q", L"^R", L"^S", L"^T", L"^U", L"^V", L"^W",
119*51ffecc1SBen Gras 	L"^X", L"^Y", L"^Z", L"^[", L"^\\", L"^]", L"^~", L"^_",
120*51ffecc1SBen Gras 	L" ", L"!", L"\"", L"#", L"$", L"%", L"&", L"'",
121*51ffecc1SBen Gras 	L"(", L")", L"*", L"+", L",", L"-", L".", L"/",
122*51ffecc1SBen Gras 	L"0", L"1", L"2", L"3", L"4", L"5", L"6", L"7",
123*51ffecc1SBen Gras 	L"8", L"9", L":", L";", L"<", L"=", L">", L"?",
124*51ffecc1SBen Gras 	L"@", L"A", L"B", L"C", L"D", L"E", L"F", L"G",
125*51ffecc1SBen Gras 	L"H", L"I", L"J", L"K", L"L", L"M", L"N", L"O",
126*51ffecc1SBen Gras 	L"P", L"Q", L"R", L"S", L"T", L"U", L"V", L"W",
127*51ffecc1SBen Gras 	L"X", L"Y", L"Z", L"[", L"\\", L"]", L"^", L"_",
128*51ffecc1SBen Gras 	L"`", L"a", L"b", L"c", L"d", L"e", L"f", L"g",
129*51ffecc1SBen Gras 	L"h", L"i", L"j", L"k", L"l", L"m", L"n", L"o",
130*51ffecc1SBen Gras 	L"p", L"q", L"r", L"s", L"t", L"u", L"v", L"w",
131*51ffecc1SBen Gras 	L"x", L"y", L"z", L"{", L"|", L"}", L"~", L"^?",
132*51ffecc1SBen Gras 
133*51ffecc1SBen Gras 	L"0x80", L"0x81", L"0x82", L"0x83", L"0x84", L"0x85", L"0x86", L"0x87",
134*51ffecc1SBen Gras 	L"0x88", L"0x89", L"0x8a", L"0x8b", L"0x8c", L"0x8d", L"0x8e", L"0x8f",
135*51ffecc1SBen Gras 	L"0x90", L"0x91", L"0x92", L"0x93", L"0x94", L"0x95", L"0x96", L"0x97",
136*51ffecc1SBen Gras 	L"0x98", L"0x99", L"0x9a", L"0x9b", L"0x9c", L"0x9d", L"0x9e", L"0x9f",
137*51ffecc1SBen Gras 	L"0xa0", L"0xa1", L"0xa2", L"0xa3", L"0xa4", L"0xa5", L"0xa6", L"0xa7",
138*51ffecc1SBen Gras 	L"0xa8", L"0xa9", L"0xaa", L"0xab", L"0xac", L"0xad", L"0xae", L"0xaf",
139*51ffecc1SBen Gras 	L"0xb0", L"0xb1", L"0xb2", L"0xb3", L"0xb4", L"0xb5", L"0xb6", L"0xb7",
140*51ffecc1SBen Gras 	L"0xb8", L"0xb9", L"0xba", L"0xbb", L"0xbc", L"0xbd", L"0xbe", L"0xbf",
141*51ffecc1SBen Gras 	L"0xc0", L"0xc1", L"0xc2", L"0xc3", L"0xc4", L"0xc5", L"0xc6", L"0xc7",
142*51ffecc1SBen Gras 	L"0xc8", L"0xc9", L"0xca", L"0xcb", L"0xcc", L"0xcd", L"0xce", L"0xcf",
143*51ffecc1SBen Gras 	L"0xd0", L"0xd1", L"0xd2", L"0xd3", L"0xd4", L"0xd5", L"0xd6", L"0xd7",
144*51ffecc1SBen Gras 	L"0xd8", L"0xd9", L"0xda", L"0xdb", L"0xdc", L"0xdd", L"0xde", L"0xdf",
145*51ffecc1SBen Gras 	L"0xe0", L"0xe1", L"0xe2", L"0xe3", L"0xe4", L"0xe5", L"0xe6", L"0xe7",
146*51ffecc1SBen Gras 	L"0xe8", L"0xe9", L"0xea", L"0xeb", L"0xec", L"0xed", L"0xee", L"0xef",
147*51ffecc1SBen Gras 	L"0xf0", L"0xf1", L"0xf2", L"0xf3", L"0xf4", L"0xf5", L"0xf6", L"0xf7",
148*51ffecc1SBen Gras 	L"0xf8", L"0xf9", L"0xfa", L"0xfb", L"0xfc", L"0xfd", L"0xfe", L"0xff",
149*51ffecc1SBen Gras };
150*51ffecc1SBen Gras #endif /* HAVE_WCHAR */
151