1 /*** 2 *mbclen.c - Find length of MBCS character 3 * 4 * Copyright (c) Microsoft Corporation. All rights reserved. 5 * 6 *Purpose: 7 * Find length of MBCS character 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 #pragma warning(disable:__WARNING_POTENTIAL_BUFFER_OVERFLOW_NULLTERMINATED) // 26018 18 19 /*** 20 * _mbclen - Find length of MBCS character 21 * 22 *Purpose: 23 * Find the length of the MBCS character (in bytes). 24 * 25 *Entry: 26 * unsigned char *c = MBCS character 27 * 28 *Exit: 29 * Returns the number of bytes in the MBCS character 30 * 31 *Exceptions: 32 * 33 *******************************************************************************/ 34 35 extern "C" size_t __cdecl _mbclen_l(unsigned char const* c, _locale_t locale) 36 { 37 /* Don't return two if we have leadbyte, EOS. 38 Don't assert here; too low level 39 */ 40 return ((_ismbblead_l)(*c, locale) && c[1] != '\0') ? 2 : 1; 41 } 42 43 extern "C" size_t __cdecl _mbclen(unsigned char const* c) 44 { 45 /* Don't return two if we have leadbyte, EOS. 46 Don't assert here; too low level 47 */ 48 return (_ismbblead(*c) && c[1]!='\0') ? 2 : 1; 49 } 50