vgamga4xx: updates from Philippe Anel
devcons: fix doubled character when typing
devsd: used and not set bug
[rsc] --rw-rw-r-- M 22963 glenda sys 9489 Mar 29 11:02 sys/src/9/pc/vgamga4xx.c
[diffs elided - too long]
[diff -c /n/sourcesdump/2006/0329/plan9/sys/src/9/pc/vgamga4xx.c /n/sourcesdump/2006/0330/plan9/sys/src/9/pc/vgamga4xx.c]
[rsc] --rw-rw-r-- M 22963 glenda sys 23071 Mar 29 11:01 sys/src/9/port/devcons.c
/n/sourcesdump/2006/0329/plan9/sys/src/9/port/devcons.c:393,399 -
/n/sourcesdump/2006/0330/plan9/sys/src/9/port/devcons.c:393,399
qiwrite(serialoq, ebuf, p - ebuf);
}
- void
+ static void
echo(char *buf, int n)
{
static int ctrlt, pid;
/n/sourcesdump/2006/0329/plan9/sys/src/9/port/devcons.c:400,405 -
/n/sourcesdump/2006/0330/plan9/sys/src/9/port/devcons.c:400,408
int x;
char *e, *p;
+ if(n == 0)
+ return;
+
e = buf+n;
for(p = buf; p < e; p++){
switch(*p){
/n/sourcesdump/2006/0329/plan9/sys/src/9/port/devcons.c:548,555 -
/n/sourcesdump/2006/0330/plan9/sys/src/9/port/devcons.c:551,560
echo(kbd.ir, kbd.ie-kbd.ir);
kbd.ir = kbd.istage;
}
- echo(kbd.ir, iw-kbd.ir);
- kbd.ir = iw;
+ if(kbd.ir != iw){
+ echo(kbd.ir, iw-kbd.ir);
+ kbd.ir = iw;
+ }
}
}
/n/sourcesdump/2006/0329/plan9/sys/src/9/port/devcons.c:745,751 -
/n/sourcesdump/2006/0330/plan9/sys/src/9/port/devcons.c:750,757
nexterror();
}
while(!qcanread(lineq)){
- qread(kbdq, &ch, 1);
+ if(qread(kbdq, &ch, 1) == 0)
+ continue;
send = 0;
if(ch == 0){
/* flush output on rawoff -> rawon */
[rsc] --rw-rw-r-- M 22963 glenda sys 30871 Mar 29 11:02 sys/src/9/port/devsd.c
/n/sourcesdump/2006/0329/plan9/sys/src/9/port/devsd.c:506,512 -
/n/sourcesdump/2006/0330/plan9/sys/src/9/port/devsd.c:506,512
}
if((sdev = sdgetdev(DEV(c->qid))) == nil){
- devdir(c, q, "unavailable", 0, eve, 0, dp);
+ devdir(c, c->qid, "unavailable", 0, eve, 0, dp);
return 1;
}
|