+ case '%':
+ if ((w = getwin()) != 0)
+ setselwin(w);
+ break;
+ case ctrl(^):
+ if (lastselwin != 0) {
+ setselwin(lastselwin);
+ if (checkproc(selwin) >= 0)
+ out = 1;
+ } else
+ error("No previous window.");
+ break;
+ case 'c':
+ if ((w = getwin()) != 0)
+ c_close(w);
+ break;
+ case 'w':
+ c_window();
+ break;
+ case 'm':
+ if ((w = getwin()) != 0)
+ c_move(w);
+ break;
+ case 'M':
+ if ((w = getwin()) != 0)
+ movewin(w, w->ww_alt.t, w->ww_alt.l);
+ break;
+ case 's':
+ if ((w = getwin()) != 0)
+ c_size(w);
+ break;
+ case 'S':
+ if ((w = getwin()) != 0)
+ sizewin(w, w->ww_alt.nr, w->ww_alt.nc);
+ break;
+ case ':':
+ c_colon();
+ break;
+ case 'h':
+ (void) wwwrite(selwin, "\b", 1);
+ break;
+ case 'j':
+ (void) wwwrite(selwin, "\n", 1);
+ break;
+ case 'k':
+ (void) wwwrite(selwin, "\033A", 2);
+ break;
+ case 'l':
+ (void) wwwrite(selwin, "\033C", 2);
+ break;
+ case ctrl(e):
+ wwscroll(selwin, 1);
+ break;
+ case ctrl(y):
+ wwscroll(selwin, -1);
+ break;
+ case ctrl(d):
+ wwscroll(selwin, selwin->ww_w.nr / 2);
+ break;
+ case ctrl(u):
+ wwscroll(selwin, - selwin->ww_w.nr / 2);
+ break;
+ case ctrl(f):
+ wwscroll(selwin, selwin->ww_w.nr);
+ break;
+ case ctrl(b):
+ wwscroll(selwin, - selwin->ww_w.nr);
+ break;
+ case ctrl(s):
+ if (selwin->ww_pty < 0)
+ break;
+ if (selwin->ww_ispty) {
+ (void) ioctl(selwin->ww_pty, TIOCSTOP,
+ (char *)0);
+ selwin->ww_stopped = 1;
+ } else
+ (void) write(selwin->ww_pty,
+ &wwwintty.ww_tchars.t_stopc, 1);
+ break;
+ case ctrl(q):
+ if (selwin->ww_pty < 0)
+ break;
+ if (selwin->ww_ispty) {
+ (void) ioctl(selwin->ww_pty, TIOCSTART,
+ (char *)0);
+ selwin->ww_stopped = 0;
+ } else
+ (void) write(selwin->ww_pty,
+ &wwwintty.ww_tchars.t_startc,
+ 1);
+ break;
+ case ctrl(l):
+ wwredraw();
+ break;
+ case '?':
+ c_help();
+ break;
+ case ctrl([):
+ if (checkproc(selwin) >= 0)
+ out = 1;
+ break;
+ case ctrl(z):
+ wwsuspend();
+ break;
+ case 'q':
+ c_quit();
+ break;
+ /* debugging stuff */
+ case '&':
+ if (debug) {
+ c_debug();
+ break;
+ }
+ default:
+ if (c == escapec) {
+ if (checkproc(selwin) >= 0) {
+ (void) write(selwin->ww_pty,
+ &escapec, 1);
+ out = 1;
+ }
+ } else {
+ if (!terse)
+ wwbell();
+ error("Type ? for help.");
+ }
+ }
+ }
+ if (out || quit)