int main(int argc, char *argv[]) { setlocale(LC_CTYPE, ""); ARGBEGIN{ case 'v': lprint(2, version); return 0; default: usage(); }ARGEND; if(argc) usage(); fmtinstall('K', fmtkey); initdisplay(); selectinput(&scr.root, KeyPressMask|KeyReleaseMask); sethandler(&scr.root, &handlers); if(!grabkeyboard(&scr.root)) fatal("can't grab keyboard\n"); if(isatty(1)) lprint(2, "Please press a key...\n"); event_loop(); lprint(1, "%s\n", keyname); XCloseDisplay(display); return 0; }
Window* constraintwin(Rectangle r) { Window *w; w = createwindow(&scr.root, r, 0, InputOnly, nil, 0); if(0) { Window *w2; w2 = createwindow(&scr.root, r, 0, InputOutput, nil, 0); selectinput(w2, ExposureMask); w->aux = w2; setborder(w2, 1, &def.focuscolor.border); sethandler(w2, &chandler); mapwin(w2); raisewin(w2); } mapwin(w); return w; }
int main(int argc, char *argv[]) { char *s; fmtinstall('r', errfmt); extern int fmtevent(Fmt*); fmtinstall('E', fmtevent); ARGBEGIN{ default: usage(); }ARGEND; s = EARGF(usage()); if(!getulong(s, &win.xid)) usage(); if(argc) usage(); setlocale(LC_CTYPE, ""); initdisplay(); frame = findframe(&win); getwinsize(&frame); restrut(); sethandler(&frame, &handlers); selectinput(&frame, StructureNotifyMask); running = true; xevent_loop(); XCloseDisplay(display); return 0; }
static int interpret() { fetch: Cyclecount++; W = M[C++]; if ((W & DBIT) == 0) D = W & ABITS; else D = M[C++]; if ((W & PBIT) != 0) D += P; if ((W & GBIT) != 0) D += G; if ((W & IBIT) != 0) D = M[D]; switch (W >> FSHIFT) { error: default: printf("\nINTCODE ERROR AT C = %d\n", C - 1); return -1; case 0: B = A; A = D; goto fetch; case 1: M[D] = A; goto fetch; case 2: A = A + D; goto fetch; case 3: C = D; goto fetch; case 4: A = !A; case 5: if (!A) C = D; goto fetch; case 6: D += P; M[D] = P; M[D + 1] = C; P = D; C = A; goto fetch; case 7: switch (D) { default: goto error; case 1: A = M[A]; goto fetch; case 2: A = -A; goto fetch; case 3: A = ~A; goto fetch; case 4: C = M[P + 1]; P = M[P]; goto fetch; case 5: A = B * A; goto fetch; case 6: A = B / A; goto fetch; case 7: A = B % A; goto fetch; case 8: A = B + A; goto fetch; case 9: A = B - A; goto fetch; case 10: A = B == A ? ~0 : 0; goto fetch; case 11: A = B != A ? ~0 : 0; goto fetch; case 12: A = B < A ? ~0 : 0; goto fetch; case 13: A = B >= A ? ~0 : 0; goto fetch; case 14: A = B > A ? ~0 : 0; goto fetch; case 15: A = B <= A ? ~0 : 0; goto fetch; case 16: A = B << A; goto fetch; case 17: A = B >> A; goto fetch; case 18: A = B & A; goto fetch; case 19: A = B | A; goto fetch; case 20: A = B ^ A; goto fetch; case 21: A = B ^ ~A; goto fetch; case 22: return 0; case 23: B = M[C]; D = M[C + 1]; while (B != 0) { B--; C += 2; if (A == M[C]) { D = M[C + 1]; break; } } C = D; goto fetch; case 24: selectinput(A); goto fetch; case 25: selectoutput(A); goto fetch; case 26: A = rdch(); goto fetch; case 27: wrch(A); goto fetch; case 28: A = findinput(A); goto fetch; case 29: A = findoutput(A); goto fetch; case 30: return A; case 31: A = M[P]; goto fetch; case 32: P = A; C = B; goto fetch; case 33: endread(); goto fetch; case 34: endwrite(); goto fetch; case 35: D = P + B + 1; M[D] = M[P]; M[D + 1] = M[P + 1]; M[D + 2] = P; M[D + 3] = B; P = D; C = A; goto fetch; case 36: A = getbyte(A, B); goto fetch; case 37: putbyte(A, B, M[P + 4]); goto fetch; case 38: A = input(); goto fetch; case 39: A = output(); goto fetch; } } }
int main(int argc, char *argv[]) { IxpMsg m; char **oargv; char *wmiirc, *s; int i; quotefmtinstall(); fmtinstall('r', errfmt); fmtinstall('a', afmt); fmtinstall('C', Cfmt); extern int fmtevent(Fmt*); fmtinstall('E', fmtevent); wmiirc = "wmiirc"; oargv = argv; ARGBEGIN{ case 'a': address = EARGF(usage()); break; case 'r': wmiirc = EARGF(usage()); break; case 'v': print("%s", version); exit(0); case 'D': s = EARGF(usage()); m = ixp_message(s, strlen(s), 0); msg_debug(&m); break; default: usage(); break; }ARGEND; if(argc) usage(); setlocale(LC_CTYPE, ""); starting = true; initdisplay(); traperrors(true); selectinput(&scr.root, EnterWindowMask | SubstructureRedirectMask); if(traperrors(false)) fatal("another window manager is already running"); passwd = getpwuid(getuid()); user = estrdup(passwd->pw_name); init_environment(); fmtinstall('F', Ffmt); ixp_printfcall = printfcall; sock = ixp_announce(address); if(sock < 0) fatal("Can't create socket '%s': %r", address); closeexec(ConnectionNumber(display)); closeexec(sock); if(wmiirc[0]) spawn_command(wmiirc); init_traps(); init_cursors(); init_lock_keys(); ewmh_init(); xext_init(); srv.preselect = check_preselect; ixp_listen(&srv, sock, &p9srv, serve_9pcon, nil); ixp_listen(&srv, ConnectionNumber(display), nil, check_x_event, closedisplay); def.border = 1; def.colmode = Colstack; def.font = loadfont(FONT); def.incmode = ISqueeze; def.mod = Mod1Mask; strcpy(def.grabmod, "Mod1"); loadcolor(&def.focuscolor, FOCUSCOLORS); loadcolor(&def.normcolor, NORMCOLORS); disp.sel = pointerscreen(); init_screens(); root_init(); disp.focus = nil; setfocus(screen->barwin, RevertToParent); view_select("1"); scan_wins(); starting = false; view_update_all(); ewmh_updateviews(); event("FocusTag %s\n", selview->name); i = ixp_serverloop(&srv); if(i) fprint(2, "%s: error: %r\n", argv0); else event("Quit"); cleanup(); if(exitsignal) raise(exitsignal); if(execstr) { char *toks[32]; int n; n = unquote(strdup(execstr), toks, nelem(toks)-1); toks[n] = nil; execvp(toks[0], toks); fprint(2, "%s: failed to exec %q: %r\n", argv0, execstr); execvp(argv0, oargv); fatal("failed to exec myself"); } return i; }