- macro flag stack

This commit is contained in:
zolliker
2008-06-17 09:22:33 +00:00
parent c0785eb84d
commit 2abf75271b

View File

@ -102,8 +102,7 @@ extern pServer pServ;
SConnection *pCon;
long ident;
int inMacro;
int inMacroSave;
int pushLevel;
long macroStack;
commandContext cc;
};
/*===========================================================================*/
@ -2242,7 +2241,7 @@ SCStore *SCSave(SConnection *pCon, SCStore *oldStore) {
oldStore->ident = pCon->ident;
oldStore->inMacro = pCon->iMacro;
oldStore->cc = SCGetContext(pCon);
oldStore->pushLevel = 0;
oldStore->macroStack = 0;
}
return oldStore;
}
@ -2270,13 +2269,10 @@ SConnection *SCStorePush(SCStore *conStore) {
SConnection *pCon;
pCon = SCLoad(conStore);
if (conStore->pushLevel == 0) {
if (conStore->inMacro) {
conStore->inMacroSave = pCon->iMacro;
/* push macro flag on stack */
conStore->macroStack <<= 1;
conStore->macroStack |= (pCon->iMacro != 0);
pCon->iMacro = conStore->inMacro;
}
}
conStore->pushLevel++;
SCPushContext2(pCon, conStore->cc);
return pCon;
}
@ -2285,13 +2281,10 @@ void SCStorePop(SCStore *conStore) {
SConnection *pCon;
pCon = SCLoad(conStore);
if (conStore->pushLevel > 0) {
SCPopContext(pCon);
conStore->pushLevel--;
if (conStore->pushLevel == 0) {
pCon->iMacro = conStore->inMacroSave;
}
}
/* pop macro flag from stack */
pCon->iMacro = (conStore->macroStack | 1);
conStore->macroStack >>= 1;
}
/*--------------------------------------------------------------------------*/
int SCStoreConnected(SCStore *conStore) {