TODO: still a small modification needs to be done

This commit is contained in:
Oliver Lehmann 2008-05-04 19:16:43 +00:00
parent a1d830ffc9
commit fabe99cea0
1 changed files with 12 additions and 3 deletions

View File

@ -58,14 +58,18 @@ union {
} ucp; } ucp;
int ncode; int ncode;
{ {
register c; register c;
register flg; register flg;
register unsigned char *cp; register unsigned char *cp;
char *csp; char *csp;
extern tttimeo(); extern tttimeo();
/* irgendwie sowas fehlt noch
if (tp->t_state&IEXTPROC)
flg &= ~OPOST;
*/
flg = tp->t_iflag; flg = tp->t_iflag;
/*hier nicht*/
switch (ncode) { switch (ncode) {
case 0: case 0:
ncode++; ncode++;
@ -126,7 +130,7 @@ int ncode;
if (putc(ucp.r_r, &tp->t_rawq)) if (putc(ucp.r_r, &tp->t_rawq))
return; return;
sysinfo.rawch++; sysinfo.rawch++;
cp = (unsigned char *)ucp.r_r; cp = (unsigned char *)&ucp.r_r;
break; break;
default: default:
putcb(ucp.ch, &tp->t_rawq); putcb(ucp.ch, &tp->t_rawq);
@ -144,11 +148,14 @@ int ncode;
} }
} }
/* hier passt es nicht so richtig */
if (tp->t_lflag) while (ncode--) { if (tp->t_lflag) while (ncode--) {
c = *cp++; c = *cp++;
flg = tp->t_lflag; flg = tp->t_lflag;
/* hier auch nicht */
if (flg&ISIG) { if (flg&ISIG) {
if (c == tp->t_cc[VINTR]) { if (c == tp->t_cc[VINTR]) {
signal(tp->t_pgrp, SIGINT);
if (!(flg&NOFLSH)) if (!(flg&NOFLSH))
ttyflush(tp, (FREAD|FWRITE)); ttyflush(tp, (FREAD|FWRITE));
if ((flg&ECHO) && if ((flg&ECHO) &&
@ -160,6 +167,7 @@ int ncode;
continue; continue;
} }
if (c == tp->t_cc[VQUIT]) { if (c == tp->t_cc[VQUIT]) {
signal(tp->t_pgrp, SIGQUIT);
if (!(flg&NOFLSH)) if (!(flg&NOFLSH))
ttyflush(tp, (FREAD|FWRITE)); ttyflush(tp, (FREAD|FWRITE));
if ((flg&ECHO) || if ((flg&ECHO) ||
@ -178,7 +186,8 @@ int ncode;
tp->t_delct++; tp->t_delct++;
} else if (c == tp->t_cc[VEOL]) } else if (c == tp->t_cc[VEOL])
tp->t_delct++; tp->t_delct++;
if ((tp->t_state&ESC) == 0) { /*hier passts nicht */
if (!(tp->t_state&ESC)) {
if (c == '\\') if (c == '\\')
tp->t_state |= ESC; tp->t_state |= ESC;
if (c == tp->t_cc[VERASE] && flg&ECHOE) { if (c == tp->t_cc[VERASE] && flg&ECHOE) {