40 lines
1.2 KiB
C
40 lines
1.2 KiB
C
/* ctype.h */
|
|
|
|
/* This file contains macros definitions and extern declarations for a
|
|
* version of <ctype.h> which is aware of the o_flipcase letters used in
|
|
* elvis.
|
|
*
|
|
* This file uses the "uchar" data type and "UCHAR" conversion macro which
|
|
* are defined in "config.h". Consequently, any file that includes this
|
|
* header must include config.h first.
|
|
*/
|
|
|
|
#ifndef _CT_UPPER
|
|
|
|
#define _CT_UPPER 0x01
|
|
#define _CT_LOWER 0x02
|
|
#define _CT_SPACE 0x04
|
|
#define _CT_DIGIT 0x08
|
|
#define _CT_ALNUM 0x10
|
|
#define _CT_CNTRL 0x20
|
|
|
|
#define isalnum(c) (_ct_ctypes[UCHAR(c)] & _CT_ALNUM)
|
|
#define isalpha(c) (_ct_ctypes[UCHAR(c)] & (_CT_LOWER|_CT_UPPER))
|
|
#define isdigit(c) (_ct_ctypes[UCHAR(c)] & _CT_DIGIT)
|
|
#define islower(c) (_ct_ctypes[UCHAR(c)] & _CT_LOWER)
|
|
#define isspace(c) (_ct_ctypes[UCHAR(c)] & _CT_SPACE)
|
|
#define isupper(c) (_ct_ctypes[UCHAR(c)] & _CT_UPPER)
|
|
#define iscntrl(c) (_ct_ctypes[UCHAR(c)] & _CT_CNTRL)
|
|
#define ispunct(c) (!_ct_ctypes[UCHAR(c)]) /* punct = "none of the above" */
|
|
|
|
#define isascii(c) (!((c) & 0x80))
|
|
|
|
#define toupper(c) _ct_toupper[UCHAR(c)]
|
|
#define tolower(c) _ct_tolower[UCHAR(c)]
|
|
|
|
extern uchar _ct_toupper[];
|
|
extern uchar _ct_tolower[];
|
|
extern uchar _ct_ctypes[];
|
|
extern void _ct_init(/* char *flipcase */);
|
|
|
|
#endif /* ndef _CT_UPPER */
|