The ifx_gl_tomlower() function
The ifx_gl_tomlower() function converts an uppercase multibyte character to its lowercase equivalent.
Syntax
#include <ifxgls.h>
...
unsigned short ifx_gl_tomlower(dst_mb, src_mb, src_mb_byte_limit)
gl_mchar_t *dst_mb;
gl_mchar_t *src_mb;
int src_mb_byte_limit;
- dst_mb
- A pointer to the destination character, which holds the case conversion for the src_mb character.
- src_mb
- A pointer to the source multibyte character that you want to convert to its lowercase equivalent.
- src_mb_byte_limit
- The integer number of bytes to read from src_mb to try to form a complete multibyte character. If src_mb_byte_limit is IFX_GL_NO_LIMIT, this function reads as many bytes as necessary from src_mb to form a complete multibyte character.
Valid in client application | Valid in DataBlade® UDR |
---|---|
Yes | Yes |
Usage
The ifx_gl_tomlower() function obtains the lowercase equivalent of the src_mb source multibyte character and stores it in the dst_mb destination buffer. If the locale does not define a lowercase equivalent for src_mb, ifx_gl_tomlower() copies src_mb to dst_mb unchanged.
For
a multibyte-character string, the size of the lowercase multibyte
string might not equal the size of the uppercase string. Therefore,
to perform case conversion on multibyte characters, you must take
the following special processing steps:
- Determine whether you need to allocate a separate destination
buffer.
If a destination buffer is needed, determine its size.
- Determine the number of bytes that have been read and written in the case-conversion process.
The ifx_gl_tomlower() function returns
an unsigned short integer that encodes the number of bytes read from src_mb and
the number of bytes written to dst_mb. The library
provides the following macros to obtain this information from the
return value.
- IFX_GL_CASE_CONV_SRC_BYTES()
- The number of bytes read from the source string.
- IFX_GL_CASE_CONV_DST_BYTES()
- The number of bytes written to the destination buffer.
Return values
- >0
- An unsigned short integer that encodes the number of bytes read from src_mb and the number of bytes written to dst_mb.
- 0
- The function was not successful, and the error number is set to indicate the cause. See the Errors section.
Errors
This function does not return a unique
value to indicate an error. If an error occurred, the function returns
0 and sets the ifx_gl_lc_errno() error number to
one of the following values.
- IFX_GL_EILSEQ
- The *src_mb value is not a valid multibyte character.
- IFX_GL_EINVAL
- The function cannot determine whether src_mb is a valid multibyte character because it would need to read more than src_mb_byte_limit bytes from src_mb. If src_mb_byte_limit is less than or equal to 0, this function always returns this error.