Retro video games delivered to your door every month!
Click above to get retro games delivered to your door ever month!
X-Hacker.org- Watcom C Library Reference - <u>synopsis:</u> http://www.X-Hacker.org [<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
Synopsis:
    #include <mbstring.h>
    int _ismbclegal( unsigned int dbch );

Description:
    The _ismbclegal function tests for a valid multibyte character.
     Multibyte characters include both single-byte and double-byte
    characters.  For example, in code page 932, a legal double-byte
    character is one in which the first byte is within the ranges 0x81 -
    0x9F or 0xE0 - 0xFC, while the second byte is within the ranges 0x40 -
    0x7E or 0x80 - 0xFC.  This is summarized in the following diagram.


            [ 1st byte ]    [ 2nd byte ]
             0x81-0x9F       0x40-0xFC
                 or          except 0x7F
             0xE0-0xFC


Returns:
    The _ismbclegal function returns a non-zero value when the argument is a
    member of this set of characters; otherwise, zero is returned.


Example:
    #include <stdio.h>
    #include <mbctype.h>
    #include <mbstring.h>

    unsigned int chars[] = {
        'A',
        0x8131, /* illegal double-byte character */
        0x8140, /* double-byte space */
        0x8143, /* double-byte , */
        0x8260, /* double-byte A */
        0x829F, /* double-byte Hiragana */
        0x8340, /* double-byte Katakana */
        0x837F, /* illegal double-byte character */
        0x889E, /* double-byte L0 character */
        0x889F, /* double-byte L1 character */
        0x989F, /* double-byte L2 character */
        0xEA9E, /* double-byte L2 character */
        0xA6    /* single-byte Katakana */
    };

    #define SIZE sizeof( chars ) / sizeof( unsigned int )

    void main()
      {
        int   i;

        _setmbcp( 932 );
        for( i = 0; i < SIZE; i++ ) {
          printf( "%#6.4x is %sa legal "
                "double-byte character\n",
                chars[i],
                ( _ismbclegal( chars[i] ) ) ? "" : "not " );
        }
      }

    produces the following:

    0x0041 is not a legal double-byte character
    0x8131 is not a legal double-byte character
    0x8140 is a legal double-byte character
    0x8143 is a legal double-byte character
    0x8260 is a legal double-byte character
    0x829f is a legal double-byte character
    0x8340 is a legal double-byte character
    0x837f is not a legal double-byte character
    0x889e is a legal double-byte character
    0x889f is a legal double-byte character
    0x989f is a legal double-byte character
    0xea9e is a legal double-byte character
    0x00a6 is not a legal double-byte character

Classification:
    WATCOM

Systems:
    DOS, Windows, Win386, Win32, OS/2 1.x(all), OS/2-32

See Also:
    _getmbcp, _ismbcalnum, _ismbcalpha, _ismbccntrl, _ismbcdigit,
    _ismbcgraph, _ismbchira, _ismbckata, _ismbcl0, _ismbcl1, _ismbcl2,
    _ismbclower, _ismbcprint, _ismbcpunct, _ismbcspace, _ismbcsymbol,
    _ismbcupper, _ismbcxdigit, _mbbtype, _setmbcp

See Also: _getmbcp _ismbcalnum

Online resources provided by: http://www.X-Hacker.org --- NG 2 HTML conversion by Dave Pearson