static void c_write (char *buf, int len) {
while (len--) {
int new_head = (inbuf_head + 1) & INBUF_MASK;
- int c = (unsigned char) *buf;
if (new_head != inbuf_reap) {
inbuf[inbuf_head] = *buf++;
inbuf_head = new_head;
else if (c == WILL) telnet_state = SEENWILL;
else if (c == WONT) telnet_state = SEENWONT;
else if (c == SB) telnet_state = SEENSB;
- else telnet_state = TOPLEVEL;/* ignore _everything_ else! */
+ else {
+ /* ignore (and print) everything else */
+ b[0] = c;
+ c_write(b,1);
+ telnet_state = TOPLEVEL;
+ }
break;
case SEENWILL:
proc_rec_opt (WILL, c);