/** @file | |
Single-byte character classification, case conversion macros, and | |
function declarations. | |
The header <ctype.h> declares several functions useful for testing and mapping | |
characters. In all cases, the argument is an int, the value of which shall be | |
representable as an unsigned char or shall equal the value of the macro EOF. | |
If the argument has any other value, the behavior is undefined. | |
The behavior of these functions is affected by the current locale. The | |
default is the "C" locale. | |
The term "printing character" refers to a member of a locale-specific | |
set of characters, each of which occupies at least one printing position on an output | |
device; the term control character refers to a member of a locale-specific | |
set of characters that are not printing characters. | |
Copyright (c) 2010 - 2011, Intel Corporation. All rights reserved.<BR> | |
This program and the accompanying materials are licensed and made available under | |
the terms and conditions of the BSD License that accompanies this distribution. | |
The full text of the license may be found at | |
http://opensource.org/licenses/bsd-license. | |
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, | |
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. | |
**/ | |
#ifndef _CTYPE_H | |
#define _CTYPE_H | |
#include <sys/EfiCdefs.h> | |
#include <sys/_ctype.h> | |
__BEGIN_DECLS | |
// Declarations for the classification Functions | |
/** The isalnum function tests for any character for which isalpha or isdigit | |
is true. | |
@param[in] c The character to be tested. | |
@return Returns nonzero (true) if and only if the value of the parameter c | |
can be classified as specified in the description of the function. | |
**/ | |
int isalnum(int c); | |
/** The isalpha function tests for any character for which isupper or islower | |
is true, or any character that is one of a locale-specific set of | |
alphabetic characters for which none of iscntrl, isdigit, ispunct, or | |
isspace is true. In the "C" locale, isalpha returns true only for the | |
characters for which isupper or islower is true. | |
@param[in] c The character to be tested. | |
@return Returns nonzero (true) if and only if the value of the parameter c | |
can be classified as specified in the description of the function. | |
**/ | |
int isalpha(int c); | |
/** The isblank function tests that a character is a white-space character that results | |
in a number of space (' ') characters being sent to the output device. In the C locale | |
this is either ' ' or '\t'. | |
@param[in] c The character to be tested. | |
@return Returns nonzero (true) if and only if the value of the parameter c | |
can be classified as specified in the description of the function. | |
**/ | |
int isblank(int); | |
/** The iscntrl function tests for any control character. | |
@param[in] c The character to be tested. | |
@return Returns nonzero (true) if and only if the value of the parameter c | |
can be classified as specified in the description of the function. | |
**/ | |
int iscntrl(int c); | |
/** The isdigit function tests for any decimal-digit character. | |
@param[in] c The character to be tested. | |
@return Returns nonzero (true) if and only if the value of the parameter c | |
can be classified as specified in the description of the function. | |
**/ | |
int isdigit(int c); | |
/** The isgraph function tests for any printing character except space (' '). | |
@param[in] c The character to be tested. | |
@return Returns nonzero (true) if and only if the value of the parameter c | |
can be classified as specified in the description of the function. | |
**/ | |
int isgraph(int c); | |
/** The islower function tests for any character that is a lowercase letter or | |
is one of a locale-specific set of characters for which none of iscntrl, | |
isdigit, ispunct, or isspace is true. In the "C" locale, islower returns | |
true only for the lowercase letters. | |
@param[in] c The character to be tested. | |
@return Returns nonzero (true) if and only if the value of the parameter c | |
can be classified as specified in the description of the function. | |
**/ | |
int islower(int c); | |
/** The isprint function tests for any printing character including space (' '). | |
@param[in] c The character to be tested. | |
@return Returns nonzero (true) if and only if the value of the parameter c | |
can be classified as specified in the description of the function. | |
**/ | |
int isprint(int c); | |
/** The ispunct function tests for any printing character that is one of a | |
locale-specific set of punctuation characters for which neither isspace nor | |
isalnum is true. In the "C" locale, ispunct returns true for every printing | |
character for which neither isspace nor isalnum is true. | |
@param[in] c The character to be tested. | |
@return Returns nonzero (true) if and only if the value of the parameter c | |
can be classified as specified in the description of the function. | |
**/ | |
int ispunct(int c); | |
/** The isspace function tests for any character that is a standard white-space | |
character or is one of a locale-specific set of characters for which | |
isalnum is false. The standard white-space characters are the following: | |
space (' '), form feed ('\f'), new-line ('\n'), carriage return ('\r'), | |
horizontal tab ('\t'), and vertical tab ('\v'). In the "C" locale, isspace | |
returns true only for the standard white-space characters. | |
@param[in] c The character to be tested. | |
@return Returns nonzero (true) if and only if the value of the parameter c | |
can be classified as specified in the description of the function. | |
**/ | |
int isspace(int c); | |
/** The isupper function tests for any character that is an uppercase letter or | |
is one of a locale-specific set of characters for which none of iscntrl, | |
isdigit, ispunct, or isspace is true. In the "C" locale, isupper returns | |
true only for the uppercase letters. | |
@param[in] c The character to be tested. | |
@return Returns nonzero (true) if and only if the value of the parameter c | |
can be classified as specified in the description of the function. | |
**/ | |
int isupper(int c); | |
/** The isxdigit function tests for any hexadecimal-digit character. | |
@param[in] c The character to be tested. | |
@return Returns nonzero (true) if and only if the value of the parameter c | |
can be classified as specified in the description of the function. | |
**/ | |
int isxdigit(int c); | |
/** The isascii function tests that a character is one of the 128 7-bit ASCII characters. | |
This function is not part of the C standard, but is commonly used. | |
@param[in] c The character to be tested. | |
@return Returns nonzero (true) if and only if the value of the parameter c | |
can be classified as specified in the description of the function. | |
**/ | |
int isascii(int c); | |
/** Test whether a character is one of the characters used as a separator | |
between directory elements in a path. | |
Characters are '/', '\\' | |
This non-standard function is unique to this implementation. | |
@param[in] c The character to be tested. | |
@return Returns nonzero (true) if and only if the value of the parameter c | |
can be classified as specified in the description of the function. | |
**/ | |
int isDirSep(int c); | |
/** The tolower function converts an uppercase letter to a corresponding | |
lowercase letter. | |
@param[in] c The character to be converted. | |
@return If the argument is a character for which isupper is true and | |
there are one or more corresponding characters, as specified by | |
the current locale, for which islower is true, the tolower | |
function returns one of the corresponding characters (always the | |
same one for any given locale); otherwise, the argument is | |
returned unchanged. | |
**/ | |
int tolower(int c); | |
/** The toupper function converts a lowercase letter to a corresponding | |
uppercase letter. | |
@param[in] c The character to be converted. | |
@return If the argument is a character for which islower is true and | |
there are one or more corresponding characters, as specified by | |
the current locale, for which isupper is true, the toupper | |
function returns one of the corresponding characters (always the | |
same one for any given locale); otherwise, the argument is | |
returned unchanged. | |
**/ | |
int toupper(int c); | |
__END_DECLS | |
/** Character Classification Macros. | |
Undefine individually or define NO_CTYPE_MACROS, before including <ctype.h>, | |
in order to use the Function version of the character classification macros. | |
@{ | |
**/ | |
#ifndef NO_CTYPE_MACROS | |
#define isalnum(c) (__isCClass( (int)c, (_CD | _CU | _CL | _XA))) | |
#define isalpha(c) (__isCClass( (int)c, (_CU | _CL | _XA))) | |
#define iscntrl(c) (__isCClass( (int)c, (_CC))) | |
#define isdigit(c) (__isCClass( (int)c, (_CD))) | |
#define isgraph(c) (__isCClass( (int)c, (_CG))) | |
#define islower(c) (__isCClass( (int)c, (_CL))) | |
#define isprint(c) (__isCClass( (int)c, (_CS | _CG))) | |
#define ispunct(c) (__isCClass( (int)c, (_CP))) | |
#define isspace(c) (__isCClass( (int)c, (_CW))) | |
#define isupper(c) (__isCClass( (int)c, (_CU))) | |
#define isxdigit(c) (__isCClass( (int)c, (_CD | _CX))) | |
#define isDirSep(c) (__isCClass( (int)c, (_C0))) | |
#define tolower(c) (__toLower((int)c)) | |
#define toupper(c) (__toUpper((int)c)) | |
#endif /* NO_CTYPE_MACROS */ | |
///@} | |
#endif /* _CTYPE_H */ |