I did some sanity-checking while preparing the upload, and noticed that I missed a loop that assumed that key_down was 128 entries long. It's in is_any_key_pressed, and would have the effect of making keys > 128 get ignored when waiting for any key. The attached patch fixes both spots in the code; I searched for other places where 128 is hardcoded as the length of this array and didn't find any, so this should be it.
Daniel
--- rawkey.c.orig 2006-10-16 19:16:37.000000000 -0700 +++ rawkey.c 2006-10-16 19:23:55.000000000 -0700 @@ -23,7 +23,7 @@ static struct termios new_termio,old_termio; static int vtswitch_allowed=0; -static int key_down[128]; +static int key_down[NR_KEYS]; /* user-supplied functions to 'undraw' and 'redraw' screen * if vt switching is allowed. @@ -205,7 +205,7 @@ { int f; -for(f=0;f<128;f++) +for(f=0;f<NR_KEYS;f++) if(key_down[f]) return(1); return(0);
signature.asc
Description: Digital signature