static Rune* xtoplan9latin1(XEvent *e) { Rune r; r = __xtoplan9kbd(e); if(r == -1) return nil; return sendrune(r); }
static Rune* xtoplan9latin1(XEvent *e) { static Rune k[10]; static int alting, nk; int n; int r; r = __xtoplan9kbd(e); if(r < 0) return nil; if(alting){ /* * Kludge for Mac's X11 3-button emulation. * It treats Command+Button as button 3, but also * ends up sending XK_Meta_L twice. */ if(r == Kalt){ alting = 0; return nil; } k[nk++] = r; n = _latin1(k, nk); if(n > 0){ alting = 0; k[0] = n; k[1] = 0; return k; } if(n == -1){ alting = 0; k[nk] = 0; return k; } /* n < -1, need more input */ return nil; }else if(r == Kalt){ alting = 1; nk = 0; return nil; }else{ k[0] = r; k[1] = 0; return k; } }