}
break;
} else if (ch == ';') {
+ vt->esc_has_par = 1;
vt->esc_count++;
break;
} else {
vt->utf_char = (vt->utf_char << 6) | (c & 0x3f);
vt->utf_count--;
if (vt->utf_count == 0) {
- tc = vt->utf_char;
+ if (vt->utf_char <= USHRT_MAX) {
+ tc = vt->utf_char;
+ } else {
+ tc = 0;
+ }
} else {
continue;
}