xref: /csrg-svn/usr.bin/window/mloop.c (revision 16282)
114894Sedward #ifndef lint
2*16282Sedward static	char *sccsid = "@(#)mloop.c	3.4 84/04/05";
314894Sedward #endif
414894Sedward 
514894Sedward #include "defs.h"
614894Sedward 
714894Sedward mloop()
814894Sedward {
914894Sedward 	while (!quit) {
10*16282Sedward 		if (incmd) {
1116124Sedward 			docmd();
1216124Sedward 		} else if (wwcurwin->ww_state != WWS_HASPROC) {
13*16282Sedward 			setcmd(1);
1416124Sedward 			if (wwpeekc() == escapec)
1516124Sedward 				(void) wwgetc();
1614894Sedward 			error("Process died.");
1716124Sedward 		} else {
1816124Sedward 			register char *p;
1916124Sedward 			register n;
2016124Sedward 
2115872Sedward 			wwiomux();
2216124Sedward 			if (wwibp < wwibq) {
2316124Sedward 				for (p = wwibp; p < wwibq && *p != escapec;
2416124Sedward 				     p++)
2516124Sedward 					;
2616124Sedward 				if ((n = p - wwibp) > 0) {
2716124Sedward 					(void) write(wwcurwin->ww_pty,
2816124Sedward 						wwibp, n);
2916124Sedward 					wwibp = p;
3016124Sedward 				}
3116124Sedward 				if (wwpeekc() == escapec) {
3216124Sedward 					(void) wwgetc();
33*16282Sedward 					setcmd(1);
3416124Sedward 				}
3514894Sedward 			}
3614894Sedward 		}
3714894Sedward 	}
3814894Sedward }
39