ref: d9cd615a1b935ae366c0db27382ab1a451eaecaf
parent: 8a6877af2a2c318c5631ced1649f4632a4b7ef25
author: cinap_lenrek <cinap_lenrek@rei2.9hal>
date: Mon Mar 12 14:01:20 EDT 2012
kbdfs: remap old control keys
--- a/sys/src/cmd/aux/kbdfs/kbdfs.c
+++ b/sys/src/cmd/aux/kbdfs/kbdfs.c
@@ -259,17 +259,7 @@
else
key.r = kbtab[c];
- switch(key.r){- case Spec|0x60:
- key.r = Kshift;
- break;
- case Spec|0x62:
- key.r = Kctl;
- break;
- case Spec|0x63:
- key.r = Kalt;
- break;
- }
+ key.r = key.r;
if(scan->esc1 || kbtab[c] == 0)
key.b = key.r;
@@ -825,6 +815,18 @@
respond(req, nil);
}
+Rune
+kbcompat(Rune r)
+{+ static Rune o = Spec|0x60, tab[] = {+ Kshift, Kbreak, Kctl, Kalt,
+ Kcaps, Knum, Kmiddle, Kaltgr,
+ };
+ if(r >= o && r < o+nelem(tab))
+ return tab[r - o];
+ return r;
+}
+
void
kbmapwrite(Req *req)
{@@ -880,7 +882,7 @@
r = strtoul(lp, &lp, 0);
else
goto Badarg;
- *rp = r;
+ *rp = kbcompat(r);
lp = line;
}
}
--
⑨