123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137 |
- /*
- * ctype.h
- */
- /**
- \ingroup lub
- \defgroup lub_ctype ctype
- @{
- \brief The ANSI-C standard <ctype.h> interface works fine for strings
- containing characters encoded with the ASCII 7-bit coding. However
- when you use characters outside this range things start to get ambiguous.
- The default manner in which to represent a string in C is to use a
- "char *". (NB. this is a signed type) The interfaces presented
- in <ctype.h> take signed integers. When a character greater than 128 is
- passed as a "char" to isspace() (e.g. the british pound sign "£") then
- a negative value is passed into the function/macro. A typical
- implementation (e.g. VxWorks) may use the passed argument as an offset
- into a lookup table, negative values in this case cause problems...
- This utility provides an interface which avoids this ambiguity by passing
- "char" characters directly rather than converting to "int".
- This component currently only contains those operations which are required
- by the current CLISH/LUB implementations. It can be extended on an as needed
- basis.
- */
- /*---------------------------------------------------------------
- * HISTORY
- * 4-Sep-2006 Graeme McKerrell
- * Initial Version
- *---------------------------------------------------------------
- * Copyright (C) 2006 Newport Networks. All Rights Reserved.
- *--------------------------------------------------------------- */
- #ifndef _lub_ctype_h
- #define _lub_ctype_h
- #include "lub/types.h"
- #include "lub/c_decl.h"
- _BEGIN_C_DECL
- /**
- * This operation identifies whether a character is a decimal digit
- * or not.
- *
- * \pre
- * - none
- *
- * \return
- * BOOL_TRUE - if the character is a decimal digit
- * BOOL_FALSE - if the character is not a decimal digit
- *
- * \post
- * - none
- */
- bool_t
- lub_ctype_isdigit(
- /**
- * The character to check
- */
- char c
- );
- /**
- * This operation identifies whether a character is a standard white space
- * character. (space, tab, carriage-return, vertical tab, form-feed)
- *
- * \pre
- * - none
- *
- * \return
- * BOOL_TRUE - if the character is white space
- * BOOL_FALSE - if the character is not white space
- *
- * \post
- * - none
- */
- bool_t
- lub_ctype_isspace(
- /**
- * The character to check
- */
- char c
- );
- /**
- * This operation converts an uppercase letter to the corresponding
- * lowercase letter.
- *
- * \pre
- * - none
- *
- * \return
- * If the parameter is a character for which lub_ctype_isupper() is true
- * and there is a corresponding character for which lub_ctype_islower() is true
- * then the corresponding character is returned. Otherwise the parameter is
- * returned unchanged.
- *
- * \post
- * - none
- */
- char
- lub_ctype_tolower(
- /**
- * The character to convert
- */
- char c
- );
- /**
- * This operation converts a lowercase letter to the corresponding
- * uppercase letter.
- *
- * \pre
- * - none
- *
- * \return
- * If the parameter is a character for which lub_ctype_islower() is true
- * and there is a corresponding character for which lub_ctype_isupper() is true
- * then the corresponding character is returned. Otherwise the parameter is
- * returned unchanged.
- *
- * \post
- * - none
- */
- char
- lub_ctype_toupper(
- /**
- * The character to convert
- */
- char c
- );
- _END_C_DECL
- #endif /* _lub_ctype_h */
- /** @} */
|