Reactos
at master 54 lines 1.4 kB view raw
1/*** 2*ismbalnm - Test if character is alpha numeric (MBCS) 3* 4* Copyright (c) Microsoft Corporation. All rights reserved. 5* 6*Purpose: 7* Test if character is alpha numeric (MBCS) 8* 9*******************************************************************************/ 10#ifndef _MBCS 11 #error This file should only be compiled with _MBCS defined 12#endif 13 14#include <corecrt_internal_mbstring.h> 15#include <locale.h> 16 17 18/*** 19* _ismbcalnum - Test if character is alpha numeric (MBCS) 20* 21*Purpose: 22* Test if the supplied character is alpha numeric or not. 23* Handles MBCS characters correctly. 24* 25* Note: Use test against 0x00FF instead of _ISLEADBYTE 26* to ensure that we don't call SBCS routine with a two-byte 27* value. 28* 29*Entry: 30* unsigned int c = character to test 31* 32*Exit: 33* Returns TRUE if c is an alpha numeric character; else FALSE 34* 35*Exceptions: 36* 37*******************************************************************************/ 38 39extern "C" int __cdecl _ismbcalnum_l(unsigned int const c, _locale_t const locale) 40{ 41 _LocaleUpdate locale_update(locale); 42 43 if (c <= 0x00FF) 44 { 45 return _ismbbalnum_l(c, locale_update.GetLocaleT()); 46 } 47 48 return __dcrt_multibyte_check_type(c, locale_update.GetLocaleT(), _ALPHA | _DIGIT, true); 49} 50 51extern "C" int __cdecl _ismbcalnum(unsigned int const c) 52{ 53 return _ismbcalnum_l(c, nullptr); 54}