114894Sedward #ifndef lint 2*18334Sedward static char sccsid[] = "@(#)mloop.c 3.7 03/13/85"; 314894Sedward #endif 414894Sedward 514894Sedward #include "defs.h" 614894Sedward 714894Sedward mloop() 814894Sedward { 917409Sedward wwrint(); /* catch typeahead before we set ASYNC */ 1014894Sedward while (!quit) { 1116282Sedward if (incmd) { 1216124Sedward docmd(); 1316124Sedward } else if (wwcurwin->ww_state != WWS_HASPROC) { 1416282Sedward setcmd(1); 1516124Sedward if (wwpeekc() == escapec) 1616124Sedward (void) wwgetc(); 1714894Sedward error("Process died."); 1816124Sedward } else { 19*18334Sedward register struct ww *w = wwcurwin; 2016124Sedward register char *p; 2116124Sedward register n; 2216124Sedward 2315872Sedward wwiomux(); 2416124Sedward if (wwibp < wwibq) { 2516124Sedward for (p = wwibp; p < wwibq && *p != escapec; 2616124Sedward p++) 2716124Sedward ; 2816124Sedward if ((n = p - wwibp) > 0) { 29*18334Sedward if (!w->ww_ispty && w->ww_stopped) 30*18334Sedward startwin(w); 31*18334Sedward (void) write(w->ww_pty, wwibp, n); 3216124Sedward wwibp = p; 3316124Sedward } 3416124Sedward if (wwpeekc() == escapec) { 3516124Sedward (void) wwgetc(); 3616282Sedward setcmd(1); 3716124Sedward } 3814894Sedward } 3914894Sedward } 4014894Sedward } 4114894Sedward } 42