118742Sedward /* 233514Sbostic * Copyright (c) 1983 Regents of the University of California. 333514Sbostic * All rights reserved. 433514Sbostic * 5*42835Sbostic * %sccs.include.redist.c% 618742Sedward */ 718742Sedward 833514Sbostic #ifndef lint 9*42835Sbostic static char sccsid[] = "@(#)mloop.c 3.16 (Berkeley) 06/02/90"; 1033514Sbostic #endif /* not lint */ 1133514Sbostic 1214894Sedward #include "defs.h" 1314894Sedward 1414894Sedward mloop() 1514894Sedward { 1614894Sedward while (!quit) { 1716282Sedward if (incmd) { 1816124Sedward docmd(); 1916124Sedward } else if (wwcurwin->ww_state != WWS_HASPROC) { 2031140Sedward if (!wwcurwin->ww_keepopen) 2131140Sedward closewin(wwcurwin); 2216282Sedward setcmd(1); 2316124Sedward if (wwpeekc() == escapec) 2416124Sedward (void) wwgetc(); 2514894Sedward error("Process died."); 2616124Sedward } else { 2718334Sedward register struct ww *w = wwcurwin; 2816124Sedward register char *p; 2916124Sedward register n; 3016124Sedward 3134107Sedward if (wwibp >= wwibq) 3234107Sedward wwiomux(); 3334107Sedward for (p = wwibp; p < wwibq && *p != escapec; 3434107Sedward p++) 3534107Sedward ; 3634107Sedward if ((n = p - wwibp) > 0) { 3734107Sedward if (!w->ww_ispty && w->ww_stopped) 3834107Sedward startwin(w); 3934107Sedward (void) write(w->ww_pty, wwibp, n); 4034107Sedward wwibp = p; 4114894Sedward } 4234107Sedward if (wwpeekc() == escapec) { 4334107Sedward (void) wwgetc(); 4434107Sedward setcmd(1); 4534107Sedward } 4614894Sedward } 4714894Sedward } 4814894Sedward } 49