From fabe99cea0349e6b6ef37ff30da230bec2358a76 Mon Sep 17 00:00:00 2001 From: Oliver Lehmann Date: Sun, 4 May 2008 19:16:43 +0000 Subject: [PATCH] TODO: still a small modification needs to be done --- WEGA/src/uts/dev/tt0.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/WEGA/src/uts/dev/tt0.c b/WEGA/src/uts/dev/tt0.c index 493fa5d..5259bbe 100644 --- a/WEGA/src/uts/dev/tt0.c +++ b/WEGA/src/uts/dev/tt0.c @@ -58,14 +58,18 @@ union { } ucp; int ncode; { - register c; register flg; register unsigned char *cp; char *csp; extern tttimeo(); +/* irgendwie sowas fehlt noch + if (tp->t_state&IEXTPROC) + flg &= ~OPOST; +*/ flg = tp->t_iflag; +/*hier nicht*/ switch (ncode) { case 0: ncode++; @@ -126,7 +130,7 @@ int ncode; if (putc(ucp.r_r, &tp->t_rawq)) return; sysinfo.rawch++; - cp = (unsigned char *)ucp.r_r; + cp = (unsigned char *)&ucp.r_r; break; default: putcb(ucp.ch, &tp->t_rawq); @@ -144,11 +148,14 @@ int ncode; } } +/* hier passt es nicht so richtig */ if (tp->t_lflag) while (ncode--) { c = *cp++; flg = tp->t_lflag; +/* hier auch nicht */ if (flg&ISIG) { if (c == tp->t_cc[VINTR]) { + signal(tp->t_pgrp, SIGINT); if (!(flg&NOFLSH)) ttyflush(tp, (FREAD|FWRITE)); if ((flg&ECHO) && @@ -160,6 +167,7 @@ int ncode; continue; } if (c == tp->t_cc[VQUIT]) { + signal(tp->t_pgrp, SIGQUIT); if (!(flg&NOFLSH)) ttyflush(tp, (FREAD|FWRITE)); if ((flg&ECHO) || @@ -178,7 +186,8 @@ int ncode; tp->t_delct++; } else if (c == tp->t_cc[VEOL]) tp->t_delct++; - if ((tp->t_state&ESC) == 0) { +/*hier passts nicht */ + if (!(tp->t_state&ESC)) { if (c == '\\') tp->t_state |= ESC; if (c == tp->t_cc[VERASE] && flg&ECHOE) {