xref: /illumos-gate/usr/src/lib/libc/port/i18n/_ctype.c (revision 4297a3b0d0a35d80f86fff155e288e885a100e6d)
1 /*
2  * CDDL HEADER START
3  *
4  * The contents of this file are subject to the terms of the
5  * Common Development and Distribution License (the "License").
6  * You may not use this file except in compliance with the License.
7  *
8  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9  * or http://www.opensolaris.org/os/licensing.
10  * See the License for the specific language governing permissions
11  * and limitations under the License.
12  *
13  * When distributing Covered Code, include this CDDL HEADER in each
14  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15  * If applicable, add the following below this CDDL HEADER, with the
16  * fields enclosed by brackets "[]" replaced with your own identifying
17  * information: Portions Copyright [yyyy] [name of copyright owner]
18  *
19  * CDDL HEADER END
20  */
21 
22 /*
23  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
24  * Use is subject to license terms.
25  */
26 
27 /*
28  * Copyright 2010 Nexenta Systems, Inc.  All rights reserved.
29  * Use is subject to license terms.
30  */
31 
32 /*	Copyright (c) 1988 AT&T	*/
33 /*	  All Rights Reserved  	*/
34 
35 #pragma weak _ctype = __ctype
36 
37 #include "lint.h"
38 #include <locale.h>
39 #include "_locale.h"
40 #include <ctype.h>
41 #include <sys/types.h>
42 
43 unsigned char __ctype_C[SZ_TOTAL] =
44 {
45 	0, /* EOF */
46 	_C,	_C,	_C,	_C,	_C,	_C,	_C,	_C,
47 	_C,	_S|_C,	_S|_C,	_S|_C,	_S|_C,	_S|_C,	_C,	_C,
48 	_C,	_C,	_C,	_C,	_C,	_C,	_C,	_C,
49 	_C,	_C,	_C,	_C,	_C,	_C,	_C,	_C,
50 	_S|_B,	_P,	_P,	_P,	_P,	_P,	_P,	_P,
51 	_P,	_P,	_P,	_P,	_P,	_P,	_P,	_P,
52 	_N|_X,	_N|_X,	_N|_X,	_N|_X,	_N|_X,	_N|_X,	_N|_X,	_N|_X,
53 	_N|_X,	_N|_X,	_P,	_P,	_P,	_P,	_P,	_P,
54 	_P,	_U|_X,	_U|_X,	_U|_X,	_U|_X,	_U|_X,	_U|_X,	_U,
55 	_U,	_U,	_U,	_U,	_U,	_U,	_U,	_U,
56 	_U,	_U,	_U,	_U,	_U,	_U,	_U,	_U,
57 	_U,	_U,	_U,	_P,	_P,	_P,	_P,	_P,
58 	_P,	_L|_X,	_L|_X,	_L|_X,	_L|_X,	_L|_X,	_L|_X,	_L,
59 	_L,	_L,	_L,	_L,	_L,	_L,	_L,	_L,
60 	_L,	_L,	_L,	_L,	_L,	_L,	_L,	_L,
61 	_L,	_L,	_L,	_P,	_P,	_P,	_P,	_C,
62 	0,	0,	0,	0,	0,	0,	0,	0,
63 	0,	0,	0,	0,	0,	0,	0,	0,
64 	0,	0,	0,	0,	0,	0,	0,	0,
65 	0,	0,	0,	0,	0,	0,	0,	0,
66 	0,	0,	0,	0,	0,	0,	0,	0,
67 	0,	0,	0,	0,	0,	0,	0,	0,
68 	0,	0,	0,	0,	0,	0,	0,	0,
69 	0,	0,	0,	0,	0,	0,	0,	0,
70 	0,	0,	0,	0,	0,	0,	0,	0,
71 	0,	0,	0,	0,	0,	0,	0,	0,
72 	0,	0,	0,	0,	0,	0,	0,	0,
73 	0,	0,	0,	0,	0,	0,	0,	0,
74 	0,	0,	0,	0,	0,	0,	0,	0,
75 	0,	0,	0,	0,	0,	0,	0,	0,
76 	0,	0,	0,	0,	0,	0,	0,	0,
77 	0,	0,	0,	0,	0,	0,	0,	0,
78 
79 /* tolower()  and toupper() conversion table */	0,
80 	0,	1,	2,	3,	4,	5,	6,	7,
81 	8,	9,	10,	11,	12,	13,	14,	15,
82 	16,	17,	18,	19,	20,	21,	22,	23,
83 	24,	25,	26,	27,	28,	29,	30,	31,
84 	32,	33,	34,	35,	36,	37,	38,	39,
85 	40,	41,	42,	43,	44,	45,	46,	47,
86 	48,	49,	50,	51,	52,	53,	54,	55,
87 	56,	57,	58,	59,	60,	61,	62,	63,
88 	64,	97,	98,	99,	100,	101,	102,	103,
89 	104,	105,	106,	107,	108,	109,	110,	111,
90 	112,	113,	114,	115,	116,	117,	118,	119,
91 	120,	121,	122,	91,	92,	93,	94,	95,
92 	96,	65,	66,	67,	68,	69,	70,	71,
93 	72,	73,	74,	75,	76,	77,	78,	79,
94 	80,	81,	82,	83,	84,	85,	86,	87,
95 	88,	89,	90,	123,	124,	125,	126,	127,
96 	0,	0,	0,	0,	0,	0,	0,	0,
97 	0,	0,	0,	0,	0,	0,	0,	0,
98 	0,	0,	0,	0,	0,	0,	0,	0,
99 	0,	0,	0,	0,	0,	0,	0,	0,
100 	0,	0,	0,	0,	0,	0,	0,	0,
101 	0,	0,	0,	0,	0,	0,	0,	0,
102 	0,	0,	0,	0,	0,	0,	0,	0,
103 	0,	0,	0,	0,	0,	0,	0,	0,
104 	0,	0,	0,	0,	0,	0,	0,	0,
105 	0,	0,	0,	0,	0,	0,	0,	0,
106 	0,	0,	0,	0,	0,	0,	0,	0,
107 	0,	0,	0,	0,	0,	0,	0,	0,
108 	0,	0,	0,	0,	0,	0,	0,	0,
109 	0,	0,	0,	0,	0,	0,	0,	0,
110 	0,	0,	0,	0,	0,	0,	0,	0,
111 	0,	0,	0,	0,	0,	0,	0,	0,
112 /* CSWIDTH information */
113 	1,	0,	0,	1,	0,	0,	1,
114 };
115 
116 unsigned char __ctype[SZ_TOTAL] =
117 {
118 	0, /* EOF */
119 	_C,	_C,	_C,	_C,	_C,	_C,	_C,	_C,
120 	_C,	_S|_C,	_S|_C,	_S|_C,	_S|_C,	_S|_C,	_C,	_C,
121 	_C,	_C,	_C,	_C,	_C,	_C,	_C,	_C,
122 	_C,	_C,	_C,	_C,	_C,	_C,	_C,	_C,
123 	_S|_B,	_P,	_P,	_P,	_P,	_P,	_P,	_P,
124 	_P,	_P,	_P,	_P,	_P,	_P,	_P,	_P,
125 	_N|_X,	_N|_X,	_N|_X,	_N|_X,	_N|_X,	_N|_X,	_N|_X,	_N|_X,
126 	_N|_X,	_N|_X,	_P,	_P,	_P,	_P,	_P,	_P,
127 	_P,	_U|_X,	_U|_X,	_U|_X,	_U|_X,	_U|_X,	_U|_X,	_U,
128 	_U,	_U,	_U,	_U,	_U,	_U,	_U,	_U,
129 	_U,	_U,	_U,	_U,	_U,	_U,	_U,	_U,
130 	_U,	_U,	_U,	_P,	_P,	_P,	_P,	_P,
131 	_P,	_L|_X,	_L|_X,	_L|_X,	_L|_X,	_L|_X,	_L|_X,	_L,
132 	_L,	_L,	_L,	_L,	_L,	_L,	_L,	_L,
133 	_L,	_L,	_L,	_L,	_L,	_L,	_L,	_L,
134 	_L,	_L,	_L,	_P,	_P,	_P,	_P,	_C,
135 	0,	0,	0,	0,	0,	0,	0,	0,
136 	0,	0,	0,	0,	0,	0,	0,	0,
137 	0,	0,	0,	0,	0,	0,	0,	0,
138 	0,	0,	0,	0,	0,	0,	0,	0,
139 	0,	0,	0,	0,	0,	0,	0,	0,
140 	0,	0,	0,	0,	0,	0,	0,	0,
141 	0,	0,	0,	0,	0,	0,	0,	0,
142 	0,	0,	0,	0,	0,	0,	0,	0,
143 	0,	0,	0,	0,	0,	0,	0,	0,
144 	0,	0,	0,	0,	0,	0,	0,	0,
145 	0,	0,	0,	0,	0,	0,	0,	0,
146 	0,	0,	0,	0,	0,	0,	0,	0,
147 	0,	0,	0,	0,	0,	0,	0,	0,
148 	0,	0,	0,	0,	0,	0,	0,	0,
149 	0,	0,	0,	0,	0,	0,	0,	0,
150 	0,	0,	0,	0,	0,	0,	0,	0,
151 
152 /* tolower()  and toupper() conversion table */	0,
153 	0,	1,	2,	3,	4,	5,	6,	7,
154 	8,	9,	10,	11,	12,	13,	14,	15,
155 	16,	17,	18,	19,	20,	21,	22,	23,
156 	24,	25,	26,	27,	28,	29,	30,	31,
157 	32,	33,	34,	35,	36,	37,	38,	39,
158 	40,	41,	42,	43,	44,	45,	46,	47,
159 	48,	49,	50,	51,	52,	53,	54,	55,
160 	56,	57,	58,	59,	60,	61,	62,	63,
161 	64,	97,	98,	99,	100,	101,	102,	103,
162 	104,	105,	106,	107,	108,	109,	110,	111,
163 	112,	113,	114,	115,	116,	117,	118,	119,
164 	120,	121,	122,	91,	92,	93,	94,	95,
165 	96,	65,	66,	67,	68,	69,	70,	71,
166 	72,	73,	74,	75,	76,	77,	78,	79,
167 	80,	81,	82,	83,	84,	85,	86,	87,
168 	88,	89,	90,	123,	124,	125,	126,	127,
169 	0,	0,	0,	0,	0,	0,	0,	0,
170 	0,	0,	0,	0,	0,	0,	0,	0,
171 	0,	0,	0,	0,	0,	0,	0,	0,
172 	0,	0,	0,	0,	0,	0,	0,	0,
173 	0,	0,	0,	0,	0,	0,	0,	0,
174 	0,	0,	0,	0,	0,	0,	0,	0,
175 	0,	0,	0,	0,	0,	0,	0,	0,
176 	0,	0,	0,	0,	0,	0,	0,	0,
177 	0,	0,	0,	0,	0,	0,	0,	0,
178 	0,	0,	0,	0,	0,	0,	0,	0,
179 	0,	0,	0,	0,	0,	0,	0,	0,
180 	0,	0,	0,	0,	0,	0,	0,	0,
181 	0,	0,	0,	0,	0,	0,	0,	0,
182 	0,	0,	0,	0,	0,	0,	0,	0,
183 	0,	0,	0,	0,	0,	0,	0,	0,
184 	0,	0,	0,	0,	0,	0,	0,	0,
185 /* CSWIDTH information */
186 	1,	0,	0,	1,	0,	0,	1,
187 };
188 
189 unsigned char	_numeric[SZ_NUMERIC] =
190 {
191 	'.',	'\0',
192 };
193