Definition at line 159 of file mbtowc.c.
Referenced by wine_cp_mbstowcs().
{
const WCHAR * const cp2uni = table->cp2uni;
const unsigned char * const cp2uni_lb = table->cp2uni_leadbytes;
const WCHAR def_unicode_char = table->info.def_unicode_char;
const unsigned short def_char = table->uni2cp_low[table->uni2cp_high[def_unicode_char >> 8]
+ (def_unicode_char & 0xff)];
while (srclen)
{
unsigned char off = cp2uni_lb[*src];
if (off)
{
if (srclen == 1) break;
if (cp2uni[(off << 8) + src[1]] == def_unicode_char &&
((src[0] << 8) | src[1]) != def_char) break;
src++;
srclen--;
}
else if ((cp2uni[*src] == def_unicode_char && *src != def_char) ||
is_private_use_area_char(cp2uni[*src])) break;
src++;
srclen--;
}
return srclen;
}