1 |
199 |
simons |
/* Copyright (C) 1995,1996 Robert de Bath <rdebath@cix.compulink.co.uk>
|
2 |
|
|
* This file is part of the Linux-8086 C library and is distributed
|
3 |
|
|
* under the GNU Library General Public License.
|
4 |
|
|
*/
|
5 |
|
|
|
6 |
|
|
/*
|
7 |
|
|
* CTYPE.C Character classification and conversion
|
8 |
|
|
*/
|
9 |
|
|
|
10 |
|
|
#include <ctype.h>
|
11 |
|
|
|
12 |
|
|
#undef toupper
|
13 |
|
|
#undef tolower
|
14 |
|
|
|
15 |
|
|
unsigned char __ctype[128] =
|
16 |
|
|
{
|
17 |
|
|
__CT_c, __CT_c, __CT_c, __CT_c, /* 0x00..0x03 */
|
18 |
|
|
__CT_c, __CT_c, __CT_c, __CT_c, /* 0x04..0x07 */
|
19 |
|
|
__CT_c, __CT_c|__CT_s, __CT_c|__CT_s, __CT_c|__CT_s, /* 0x08..0x0B */
|
20 |
|
|
__CT_c|__CT_s, __CT_c|__CT_s, __CT_c, __CT_c, /* 0x0C..0x0F */
|
21 |
|
|
|
22 |
|
|
__CT_c, __CT_c, __CT_c, __CT_c, /* 0x10..0x13 */
|
23 |
|
|
__CT_c, __CT_c, __CT_c, __CT_c, /* 0x14..0x17 */
|
24 |
|
|
__CT_c, __CT_c, __CT_c, __CT_c, /* 0x18..0x1B */
|
25 |
|
|
__CT_c, __CT_c, __CT_c, __CT_c, /* 0x1C..0x1F */
|
26 |
|
|
|
27 |
|
|
__CT_s, __CT_p, __CT_p, __CT_p, /* 0x20..0x23 */
|
28 |
|
|
__CT_p, __CT_p, __CT_p, __CT_p, /* 0x24..0x27 */
|
29 |
|
|
__CT_p, __CT_p, __CT_p, __CT_p, /* 0x28..0x2B */
|
30 |
|
|
__CT_p, __CT_p, __CT_p, __CT_p, /* 0x2C..0x2F */
|
31 |
|
|
|
32 |
|
|
__CT_d|__CT_x, __CT_d|__CT_x, __CT_d|__CT_x, __CT_d|__CT_x,/* 0x30..0x33 */
|
33 |
|
|
__CT_d|__CT_x, __CT_d|__CT_x, __CT_d|__CT_x, __CT_d|__CT_x,/* 0x34..0x37 */
|
34 |
|
|
__CT_d|__CT_x, __CT_d|__CT_x, __CT_p, __CT_p, /* 0x38..0x3B */
|
35 |
|
|
__CT_p, __CT_p, __CT_p, __CT_p, /* 0x3C..0x3F */
|
36 |
|
|
|
37 |
|
|
__CT_p, __CT_u|__CT_x, __CT_u|__CT_x, __CT_u|__CT_x, /* 0x40..0x43 */
|
38 |
|
|
__CT_u|__CT_x, __CT_u|__CT_x, __CT_u|__CT_x, __CT_u, /* 0x44..0x47 */
|
39 |
|
|
__CT_u, __CT_u, __CT_u, __CT_u, /* 0x48..0x4B */
|
40 |
|
|
__CT_u, __CT_u, __CT_u, __CT_u, /* 0x4C..0x4F */
|
41 |
|
|
|
42 |
|
|
__CT_u, __CT_u, __CT_u, __CT_u, /* 0x50..0x53 */
|
43 |
|
|
__CT_u, __CT_u, __CT_u, __CT_u, /* 0x54..0x57 */
|
44 |
|
|
__CT_u, __CT_u, __CT_u, __CT_p, /* 0x58..0x5B */
|
45 |
|
|
__CT_p, __CT_p, __CT_p, __CT_p, /* 0x5C..0x5F */
|
46 |
|
|
|
47 |
|
|
__CT_p, __CT_l|__CT_x, __CT_l|__CT_x, __CT_l|__CT_x, /* 0x60..0x63 */
|
48 |
|
|
__CT_l|__CT_x, __CT_l|__CT_x, __CT_l|__CT_x, __CT_l, /* 0x64..0x67 */
|
49 |
|
|
__CT_l, __CT_l, __CT_l, __CT_l, /* 0x68..0x6B */
|
50 |
|
|
__CT_l, __CT_l, __CT_l, __CT_l, /* 0x6C..0x6F */
|
51 |
|
|
|
52 |
|
|
__CT_l, __CT_l, __CT_l, __CT_l, /* 0x70..0x73 */
|
53 |
|
|
__CT_l, __CT_l, __CT_l, __CT_l, /* 0x74..0x77 */
|
54 |
|
|
__CT_l, __CT_l, __CT_l, __CT_p, /* 0x78..0x7B */
|
55 |
|
|
__CT_p, __CT_p, __CT_p, __CT_c /* 0x7C..0x7F */
|
56 |
|
|
};
|
57 |
|
|
|
58 |
|
|
int toupper(c)
|
59 |
|
|
int c;
|
60 |
|
|
{
|
61 |
|
|
return(islower(c) ? (c ^ 0x20) : (c));
|
62 |
|
|
}
|
63 |
|
|
|
64 |
|
|
int tolower(c)
|
65 |
|
|
int c;
|
66 |
|
|
{
|
67 |
|
|
return(isupper(c) ? (c ^ 0x20) : (c));
|
68 |
|
|
}
|