The ifx_gl_ismcntrl() function
The ifx_gl_ismcntrl() function determines whether a multibyte character contains a control character.
Syntax
#include <ifxgls.h>
...
int ifx_gl_ismcntrl(mb, mb_byte_limit)
gl_mchar_t *mb;
int mb_byte_limit;
- mb
- A pointer to the multibyte character whose character classification you want to determine.
- mb_byte_limit
- The integer number of bytes to read from mb to try to form a complete multibyte character. If mb_byte_limit is IFX_GL_NO_LIMIT, the ifx_gl_ismcntrl() function reads as many bytes as necessary from mb to form a complete character.
Valid in client application | Valid in DataBlade® UDR |
---|---|
Yes | Yes |
Usage
The ifx_gl_ismcntrl() function tests whether mb is in the cntrl character class according to the rules of the current locale. The cntrl character class contains the single-byte control characters: alert, backspace, tab, newline, vertical tab, form feed, carriage return, NUL, SOH, STX, ETX, EOT, ENQ, ACK, SO, SI, DLE, DC1, DC2, DC3, DC4, NAK, SYN, ETB, CAN, EM, SUB, ESC, IS4, IS3, IS2, IS1, and DEL. These characters are the ASCII characters whose code points are in the range 0x00 to 0x1F. In addition, the cntrl class contains any other control characters that the locale might define.
No characters in the upper, lower, alpha, digit, xdigit, punct, graph, or print classes are in the cntrl class.
Locale information
The LC_CTYPE category of the current locale affects the behavior of this function because it defines the cntrl character class.
Return values
- >0
- The *mb character is in the cntrl character class.
- 0
- The function was not successful, and the error number is set to indicate the cause. See the Errors section.
Errors
- IFX_GL_EILSEQ
- The *mb value is not a valid multibyte character.
- IFX_GL_EINVAL
- The function cannot determine whether mb is a valid multibyte character because it would need to read more than mb_byte_limit bytes from mb. If mb_byte_limit is less than or equal to 0, this function always returns this error.