From 81a90f898bf58852ca414ae612751e6cff06566c Mon Sep 17 00:00:00 2001 From: Russ Cox Date: Tue, 1 Jul 2008 20:45:49 -0400 Subject: devdraw: OS X alt key support --- src/cmd/devdraw/osx-srv.c | 40 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 38 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/cmd/devdraw/osx-srv.c b/src/cmd/devdraw/osx-srv.c index 9dded632..fc943d16 100644 --- a/src/cmd/devdraw/osx-srv.c +++ b/src/cmd/devdraw/osx-srv.c @@ -395,9 +395,9 @@ mousetrack(int x, int y, int b, int ms) matchmouse(); zunlock(); } - + void -keystroke(int c) +kputc(int c) { zlock(); kbd.r[kbd.wi++] = c; @@ -408,3 +408,39 @@ keystroke(int c) matchkbd(); zunlock(); } + +void +keystroke(int c) +{ + static Rune k[10]; + static int alting, nk; + int i; + + if(c == Kalt){ + alting = !alting; + return; + } + if(!alting){ + kputc(c); + return; + } + if(nk >= nelem(k)) // should not happen + nk = 0; + k[nk++] = c; + c = _latin1(k, nk); + if(c > 0){ + alting = 0; + kputc(c); + nk = 0; + return; + } + if(c == -1){ + alting = 0; + for(i=0; i