INVALID_CHAR
if (*from & INVALID_CHAR) {
*p = (char)(*from & ~INVALID_CHAR);
wc = *from | INVALID_CHAR;
wc = buf[0] | INVALID_CHAR;
if (wc & INVALID_CHAR) {
wc &= ~INVALID_CHAR;