42 lines
1.3 KiB
C
42 lines
1.3 KiB
C
|
/*****************************************************************************
|
||
|
ExePW()
|
||
|
This function executes a PW command. Note that this function is
|
||
|
called only by ExeP.
|
||
|
nPW Write buffer n times
|
||
|
m,nPW Write out chars m to n
|
||
|
*****************************************************************************/
|
||
|
#include "zport.h" /* define portability identifiers */
|
||
|
#include "tecoc.h" /* define general identifiers */
|
||
|
#include "defext.h" /* define external global variables */
|
||
|
DEFAULT ExePW() /* execute a PW command */
|
||
|
{
|
||
|
DBGFEN(1,"ExePW",NULL);
|
||
|
if (CmdMod & MARGIS) { /* if it's m,nPW */
|
||
|
if (MArgmt != NArgmt) { /* if m != n */
|
||
|
if ((*CBfPtr == 'W') || (*CBfPtr == 'w')) {
|
||
|
MEMMOVE(ErrTxt, "m,nPW", 6);
|
||
|
} else {
|
||
|
MEMMOVE(ErrTxt, "m,nP", 5);
|
||
|
}
|
||
|
if (GetAra() == FAILURE) {
|
||
|
DBGFEX(1,DbgFNm,"FAILURE");
|
||
|
return FAILURE;
|
||
|
}
|
||
|
if (WrPage(CurOut,AraBeg,AraEnd,0L) == FAILURE) {
|
||
|
DBGFEX(1,DbgFNm,"FAILURE");
|
||
|
return FAILURE;
|
||
|
}
|
||
|
}
|
||
|
} else { /* else it's nPW */
|
||
|
while (NArgmt-- > 0)
|
||
|
if (WrPage(CurOut,EBfBeg,EBfEnd,-1L) == FAILURE) {
|
||
|
DBGFEX(1,DbgFNm,"FAILURE");
|
||
|
return FAILURE;
|
||
|
}
|
||
|
}
|
||
|
CmdMod = '\0'; /* clear modifiers flags */
|
||
|
EStTop = EStBot; /* clear expression stack */
|
||
|
DBGFEX(1,DbgFNm,"SUCCESS");
|
||
|
return SUCCESS;
|
||
|
}
|