From
if ( isalnumW ( wc ) ) return wc;
for ( i = 0; i < 17; i++ )
To
if ( isalnumW ( wc ) ) return wc;
for ( i = 0; i < 16; i++ )
and the original version was wrong,too.
It counts the
NULL
of the end.