luxos/Kernel/library/ctype.c

146 lines
6.1 KiB
C

#include<ctype.h>
unsigned char _ctype[256] =
{
0, // -1 EOF
_CTYPE_ISCONTROL, // 00 (NUL)
_CTYPE_ISCONTROL, // 01 (SOH)
_CTYPE_ISCONTROL, // 02 (STX)
_CTYPE_ISCONTROL, // 03 (ETX)
_CTYPE_ISCONTROL, // 04 (EOT)
_CTYPE_ISCONTROL, // 05 (ENQ)
_CTYPE_ISCONTROL, // 06 (ACK)
_CTYPE_ISCONTROL, // 07 (BEL)
_CTYPE_ISCONTROL, // 08 (BS)
_CTYPE_ISSPACE+_CTYPE_ISCONTROL, // 09 (HT)
_CTYPE_ISSPACE+_CTYPE_ISCONTROL, // 0A (LF)
_CTYPE_ISSPACE+_CTYPE_ISCONTROL, // 0B (VT)
_CTYPE_ISSPACE+_CTYPE_ISCONTROL, // 0C (FF)
_CTYPE_ISSPACE+_CTYPE_ISCONTROL, // 0D (CR)
_CTYPE_ISCONTROL, // 0E (SI)
_CTYPE_ISCONTROL, // 0F (SO)
_CTYPE_ISCONTROL, // 10 (DLE)
_CTYPE_ISCONTROL, // 11 (DC1)
_CTYPE_ISCONTROL, // 12 (DC2)
_CTYPE_ISCONTROL, // 13 (DC3)
_CTYPE_ISCONTROL, // 14 (DC4)
_CTYPE_ISCONTROL, // 15 (NAK)
_CTYPE_ISCONTROL, // 16 (SYN)
_CTYPE_ISCONTROL, // 17 (ETB)
_CTYPE_ISCONTROL, // 18 (CAN)
_CTYPE_ISCONTROL, // 19 (EM)
_CTYPE_ISCONTROL, // 1A (SUB)
_CTYPE_ISCONTROL, // 1B (ESC)
_CTYPE_ISCONTROL, // 1C (FS)
_CTYPE_ISCONTROL, // 1D (GS)
_CTYPE_ISCONTROL, // 1E (RS)
_CTYPE_ISCONTROL, // 1F (US)
_CTYPE_ISSPACE+_CTYPE_ISBLANK, // 20 SPACE
_CTYPE_ISPUNCT, // 21 !
_CTYPE_ISPUNCT, // 22 "
_CTYPE_ISPUNCT, // 23 #
_CTYPE_ISPUNCT, // 24 $
_CTYPE_ISPUNCT, // 25 %
_CTYPE_ISPUNCT, // 26 &
_CTYPE_ISPUNCT, // 27 '
_CTYPE_ISPUNCT, // 28 (
_CTYPE_ISPUNCT, // 29 )
_CTYPE_ISPUNCT, // 2A *
_CTYPE_ISPUNCT, // 2B +
_CTYPE_ISPUNCT, // 2C ,
_CTYPE_ISPUNCT, // 2D -
_CTYPE_ISPUNCT, // 2E .
_CTYPE_ISPUNCT, // 2F /
_CTYPE_ISDIGIT+_CTYPE_ISHEX, // 30 0
_CTYPE_ISDIGIT+_CTYPE_ISHEX, // 31 1
_CTYPE_ISDIGIT+_CTYPE_ISHEX, // 32 2
_CTYPE_ISDIGIT+_CTYPE_ISHEX, // 33 3
_CTYPE_ISDIGIT+_CTYPE_ISHEX, // 34 4
_CTYPE_ISDIGIT+_CTYPE_ISHEX, // 35 5
_CTYPE_ISDIGIT+_CTYPE_ISHEX, // 36 6
_CTYPE_ISDIGIT+_CTYPE_ISHEX, // 37 7
_CTYPE_ISDIGIT+_CTYPE_ISHEX, // 38 8
_CTYPE_ISDIGIT+_CTYPE_ISHEX, // 39 9
_CTYPE_ISPUNCT, // 3A :
_CTYPE_ISPUNCT, // 3B ;
_CTYPE_ISPUNCT, // 3C <
_CTYPE_ISPUNCT, // 3D =
_CTYPE_ISPUNCT, // 3E >
_CTYPE_ISPUNCT, // 3F ?
_CTYPE_ISPUNCT, // 40 @
_CTYPE_ISUPPER+_CTYPE_ISHEX, // 41 A
_CTYPE_ISUPPER+_CTYPE_ISHEX, // 42 B
_CTYPE_ISUPPER+_CTYPE_ISHEX, // 43 C
_CTYPE_ISUPPER+_CTYPE_ISHEX, // 44 D
_CTYPE_ISUPPER+_CTYPE_ISHEX, // 45 E
_CTYPE_ISUPPER+_CTYPE_ISHEX, // 46 F
_CTYPE_ISUPPER, // 47 G
_CTYPE_ISUPPER, // 48 H
_CTYPE_ISUPPER, // 49 I
_CTYPE_ISUPPER, // 4A J
_CTYPE_ISUPPER, // 4B K
_CTYPE_ISUPPER, // 4C L
_CTYPE_ISUPPER, // 4D M
_CTYPE_ISUPPER, // 4E N
_CTYPE_ISUPPER, // 4F O
_CTYPE_ISUPPER, // 50 P
_CTYPE_ISUPPER, // 51 Q
_CTYPE_ISUPPER, // 52 R
_CTYPE_ISUPPER, // 53 S
_CTYPE_ISUPPER, // 54 T
_CTYPE_ISUPPER, // 55 U
_CTYPE_ISUPPER, // 56 V
_CTYPE_ISUPPER, // 57 W
_CTYPE_ISUPPER, // 58 X
_CTYPE_ISUPPER, // 59 Y
_CTYPE_ISUPPER, // 5A Z
_CTYPE_ISPUNCT, // 5B [
_CTYPE_ISPUNCT, // 5C backslash
_CTYPE_ISPUNCT, // 5D ]
_CTYPE_ISPUNCT, // 5E ^
_CTYPE_ISPUNCT, // 5F _
_CTYPE_ISPUNCT, // 60 `
_CTYPE_ISLOWER+_CTYPE_ISHEX, // 61 a
_CTYPE_ISLOWER+_CTYPE_ISHEX, // 62 b
_CTYPE_ISLOWER+_CTYPE_ISHEX, // 63 c
_CTYPE_ISLOWER+_CTYPE_ISHEX, // 64 d
_CTYPE_ISLOWER+_CTYPE_ISHEX, // 65 e
_CTYPE_ISLOWER+_CTYPE_ISHEX, // 66 f
_CTYPE_ISLOWER, // 67 g
_CTYPE_ISLOWER, // 68 h
_CTYPE_ISLOWER, // 69 i
_CTYPE_ISLOWER, // 6A j
_CTYPE_ISLOWER, // 6B k
_CTYPE_ISLOWER, // 6C l
_CTYPE_ISLOWER, // 6D m
_CTYPE_ISLOWER, // 6E n
_CTYPE_ISLOWER, // 6F o
_CTYPE_ISLOWER, // 70 p
_CTYPE_ISLOWER, // 71 q
_CTYPE_ISLOWER, // 72 r
_CTYPE_ISLOWER, // 73 s
_CTYPE_ISLOWER, // 74 t
_CTYPE_ISLOWER, // 75 u
_CTYPE_ISLOWER, // 76 v
_CTYPE_ISLOWER, // 77 w
_CTYPE_ISLOWER, // 78 x
_CTYPE_ISLOWER, // 79 y
_CTYPE_ISLOWER, // 7A z
_CTYPE_ISPUNCT, // 7B {
_CTYPE_ISPUNCT, // 7C +
_CTYPE_ISPUNCT, // 7D }
_CTYPE_ISPUNCT, // 7E ~
_CTYPE_ISCONTROL, // 7F (DEL)
// and the rest are 0...
};
int toupper(int c)
{
return ((islower(c)) ? (c-'a'+'A') : c);
}
int tolower(int c)
{
return((isupper(c)) ? (c-'A'+'a') : c);
}