wchar_t nwc;
char mb[MB_LEN_MAX+1];
int mlen;
+ size_t m;
mbstate_t state;
#endif
#if defined (HANDLE_MULTIBYTE)
else
{
- mbrtowc (&wc, string + start, end - start, &state);
+ m = mbrtowc (&wc, string + start, end - start, &state);
+ if (MB_INVALIDCH (m))
+ wc = (wchar_t)string[start];
+ else if (MB_NULLWCH (m))
+ wc = L'\0';
switch (nop)
{
default: