124 lines
3.4 KiB
C
124 lines
3.4 KiB
C
|
/* (C) Code Red Technologies Ltd. 2007.
|
||
|
* Modified the macros.
|
||
|
*
|
||
|
*
|
||
|
*
|
||
|
* <ctype.h> Copyright (C) Codemist 2007
|
||
|
*
|
||
|
* A C Norman
|
||
|
*/
|
||
|
//*****************************************************************************
|
||
|
// +--+
|
||
|
// | ++----+
|
||
|
// +-++ |
|
||
|
// | |
|
||
|
// +-+--+ |
|
||
|
// | +--+--+
|
||
|
// +----+ Portions copyright (c) 2010-11 Code Red Technologies Ltd.
|
||
|
//
|
||
|
//*****************************************************************************
|
||
|
#ifndef __CTYPE_H_INCLUDED
|
||
|
#define __CTYPE_H_INCLUDED
|
||
|
|
||
|
#include <sys/redlib_version.h>
|
||
|
|
||
|
#ifndef __CODEMIST
|
||
|
#define __CODEMIST
|
||
|
#endif
|
||
|
|
||
|
|
||
|
/* N.B. - keep in step with <ctype.c> */
|
||
|
|
||
|
#define __S 1 /* whitespace */
|
||
|
#define __P 2 /* punctuation */
|
||
|
#define __B 4 /* blank */
|
||
|
#define __L 8 /* lower case letter */
|
||
|
#define __U 16 /* upper case letter */
|
||
|
#define __N 32 /* (decimal) digit */
|
||
|
#define __C 64 /* control chars */
|
||
|
#define __X 128 /* A-F and a-f */
|
||
|
|
||
|
extern const unsigned char __ctype[];
|
||
|
|
||
|
#define isalnum(c) (__ctype[(c)+128] & (__U+__L+__N))
|
||
|
#ifndef _Codemist
|
||
|
extern int (isalnum)(int __c);
|
||
|
#endif
|
||
|
/* non-0 iff c is alphabetic or numeric */
|
||
|
|
||
|
#define isalpha(c) (__ctype[(c)+128] & (__U+__L))
|
||
|
#ifndef _Codemist
|
||
|
extern int (isalpha)(int __c);
|
||
|
#endif
|
||
|
/* non-0 iff c is alphabetic */
|
||
|
|
||
|
#define iscntrl(c) (__ctype[(c)+128] & __C)
|
||
|
#ifndef _Codemist
|
||
|
extern int (iscntrl)(int __c);
|
||
|
#endif
|
||
|
/* non-0 iff c is a control character - in the ASCII locale */
|
||
|
/* this means (c < ' ') || (c > '~') */
|
||
|
|
||
|
#define isdigit(c) (__ctype[(c)+128] & __N)
|
||
|
#ifndef _Codemist
|
||
|
extern int (isdigit)(int __c);
|
||
|
#endif
|
||
|
/* non-0 iff c is a decimal digit */
|
||
|
|
||
|
#define isgraph(c) (__ctype[(c)+128] & (__L+__U+__N+__P))
|
||
|
#ifndef _Codemist
|
||
|
extern int (isgraph)(int __c);
|
||
|
#endif
|
||
|
/* non-0 iff c is any printing character other than ' ' */
|
||
|
|
||
|
#define islower(c) (__ctype[(c)+128] & __L)
|
||
|
#ifndef _Codemist
|
||
|
extern int (islower)(int __c);
|
||
|
#endif
|
||
|
/* non-0 iff c is a lower-case letter */
|
||
|
|
||
|
#define isprint(c) (__ctype[(c)+128] & (__L+__U+__N+__P+__B))
|
||
|
#ifndef _Codemist
|
||
|
extern int (isprint)(int __c);
|
||
|
#endif
|
||
|
/* non-0 iff c is a printing character - in the ASCII locale */
|
||
|
/* this means 0x20 (space) -> 0x7E (tilde) */
|
||
|
|
||
|
#define ispunct(c) (__ctype[(c)+128] & __P)
|
||
|
#ifndef _Codemist
|
||
|
extern int (ispunct)(int __c);
|
||
|
#endif
|
||
|
/* non-0 iff c is a non-space, non-alpha-numeric, printing character */
|
||
|
|
||
|
#define isspace(c) (__ctype[(c)+128] & __S)
|
||
|
#ifndef _Codemist
|
||
|
extern int (isspace)(int __c);
|
||
|
#endif
|
||
|
/* non-0 iff c is a white-space char: ' ', '\f', '\n', '\r', '\t', '\v'. */
|
||
|
|
||
|
#define isupper(c) (__ctype[(c)+128] & __U)
|
||
|
#ifndef _Codemist
|
||
|
extern int (isupper)(int __c);
|
||
|
#endif
|
||
|
/* non-0 iff c is an upper-case letter */
|
||
|
|
||
|
#define isxdigit(c) (__ctype[(c)+128] & (__N+__X))
|
||
|
#ifndef _Codemist
|
||
|
extern int (isxdigit)(int __c);
|
||
|
#endif
|
||
|
/* non-0 iff c is a digit, in 'a'..'f', or in 'A'..'F' */
|
||
|
|
||
|
extern int tolower(int __c);
|
||
|
/* if c is an upper-case letter then return the corresponding */
|
||
|
/* lower-case letter, otherwise return c. */
|
||
|
|
||
|
extern int toupper(int __c);
|
||
|
/* if c is an lower-case letter then return the corresponding */
|
||
|
/* upper-case letter, otherwise return c. */
|
||
|
|
||
|
extern int isblank(int __c);
|
||
|
|
||
|
#endif /* __CTYPE_H_INCLUDED */
|
||
|
|
||
|
/* end of <ctype.h> */
|