|
|
1.1 root 1: /*
2: * Copyright (c) 1983 Regents of the University of California.
3: * All rights reserved.
4: *
5: * This code is derived from software contributed to Berkeley by
6: * Edward Wang at The University of California, Berkeley.
7: *
8: * Redistribution and use in source and binary forms are permitted provided
9: * that: (1) source distributions retain this entire copyright notice and
10: * comment, and (2) distributions including binaries display the following
11: * acknowledgement: ``This product includes software developed by the
12: * University of California, Berkeley and its contributors'' in the
13: * documentation or other materials provided with the distribution and in
14: * all advertising materials mentioning features or use of this software.
15: * Neither the name of the University nor the names of its contributors may
16: * be used to endorse or promote products derived from this software without
17: * specific prior written permission.
18: * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
19: * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
20: * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
21: */
22:
23: #ifndef lint
24: static char sccsid[] = "@(#)mloop.c 3.17 (Berkeley) 6/6/90";
25: #endif /* not lint */
26:
27: #include "defs.h"
28:
29: mloop()
30: {
31: while (!quit) {
32: if (incmd) {
33: docmd();
34: } else if (wwcurwin->ww_state != WWS_HASPROC) {
35: if (!wwcurwin->ww_keepopen)
36: closewin(wwcurwin);
37: setcmd(1);
38: if (wwpeekc() == escapec)
39: (void) wwgetc();
40: error("Process died.");
41: } else {
42: register struct ww *w = wwcurwin;
43: register char *p;
44: register n;
45:
46: if (wwibp >= wwibq)
47: wwiomux();
48: for (p = wwibp; p < wwibq && *p != escapec;
49: p++)
50: ;
51: if ((n = p - wwibp) > 0) {
52: if (!w->ww_ispty && w->ww_stopped)
53: startwin(w);
54: (void) write(w->ww_pty, wwibp, n);
55: wwibp = p;
56: }
57: if (wwpeekc() == escapec) {
58: (void) wwgetc();
59: setcmd(1);
60: }
61: }
62: }
63: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.