IS_WORDC
for (; (start > 0 && IS_WORDC(buf[start - 1])) ||
for (end = start; end < buflen && IS_WORDC(buf[end]); end++) {