/* * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS CRT * PURPOSE: Implementation of _mbsnlen * FILE: lib/sdk/crt/string/_mbsnlen.c * PROGRAMMER: Timo Kreuzer */ #include _Check_return_ _CRTIMP size_t __cdecl _mbsnlen( _In_z_ const unsigned char *pmbstr, _In_ size_t cjMaxLen) { size_t cchCount = 0; unsigned char jMbsByte; /* Loop while we have bytes to process */ while (cjMaxLen-- > 0) { /* Get next mb byte */ jMbsByte = *pmbstr++; /* If this is 0, we're done */ if (jMbsByte == 0) break; /* Don't count lead bytes */ if (!_ismbblead(jMbsByte)) cchCount++; } return cchCount; }