bsb(plen(term_buf[term_buflen-1]));
term_buflen--;
}
+ back->special (TS_EL);
if( c == CTRL('C') ) back->special (TS_IP);
if( c == CTRL('Z') ) back->special (TS_SUSP);
if( c == CTRL('\\') ) back->special (TS_ABORT);
}
break;
case CTRL('M'): /* send with newline */
- back->send(term_buf, term_buflen);
- back->send("\r\n", 2);
+ if (term_buflen > 0)
+ back->send(term_buf, term_buflen);
+ if (cfg.protocol == PROT_RAW)
+ back->send("\r\n", 2);
+ else
+ back->send("\r", 1);
c_write("\r\n", 2);
term_buflen = 0;
break;
term_buflen--;
}
}
- back->send(buf, len);
+ if (len > 0)
+ back->send(buf, len);
}
Ldisc ldisc_term = { term_send };