From a67e921c7fcbb1a173801818fff49d01eafb9aaa Mon Sep 17 00:00:00 2001 From: cinap_lenrek Date: Sat, 14 May 2011 21:02:20 +0000 Subject: [PATCH] /dev/kbd: threat key combinations like shift+a as a virtual key and emit both a and A in that case --- sys/src/cmd/aux/kbdfs.c | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/sys/src/cmd/aux/kbdfs.c b/sys/src/cmd/aux/kbdfs.c index ab64dc277..c9eed2c07 100644 --- a/sys/src/cmd/aux/kbdfs.c +++ b/sys/src/cmd/aux/kbdfs.c @@ -31,6 +31,7 @@ struct Key { int down; int c; Rune r; + Rune b; }; struct Scan { @@ -258,6 +259,11 @@ kbdputsc(Scan *scan, int c) break; } + if(scan->esc1) + key.b = key.r; + else + key.b = kbtab[key.c]; + if(scan->caps && key.r<='z' && key.r>='a') key.r += 'A' - 'a'; @@ -348,8 +354,8 @@ utfconv(Rune *r, int n) void keyproc(void *) { + Rune rb[Nscan*2]; int cb[Nscan]; - Rune rb[Nscan]; Key key; int i, nb; char *s; @@ -376,15 +382,20 @@ keyproc(void *) for(i=0; i