|
|
1.1 root 1: #ifndef lint
2: static char sccsid[] = "@(#)mloop.c 3.8 4/24/85";
3: #endif
4:
5: /*
6: * Copyright (c) 1983 Regents of the University of California,
7: * All rights reserved. Redistribution permitted subject to
8: * the terms of the Berkeley Software License Agreement.
9: */
10:
11: #include "defs.h"
12:
13: mloop()
14: {
15: wwrint(); /* catch typeahead before we set ASYNC */
16: while (!quit) {
17: if (incmd) {
18: docmd();
19: } else if (wwcurwin->ww_state != WWS_HASPROC) {
20: setcmd(1);
21: if (wwpeekc() == escapec)
22: (void) wwgetc();
23: error("Process died.");
24: } else {
25: register struct ww *w = wwcurwin;
26: register char *p;
27: register n;
28:
29: wwiomux();
30: if (wwibp < wwibq) {
31: for (p = wwibp; p < wwibq && *p != escapec;
32: p++)
33: ;
34: if ((n = p - wwibp) > 0) {
35: if (!w->ww_ispty && w->ww_stopped)
36: startwin(w);
37: (void) write(w->ww_pty, wwibp, n);
38: wwibp = p;
39: }
40: if (wwpeekc() == escapec) {
41: (void) wwgetc();
42: setcmd(1);
43: }
44: }
45: }
46: }
47: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.