/*
docCopyright("Steve Dekorte", 2002)
docLicense("BSD revised")
*/
#include "IoState.h"
#include "IoObject.h"
void IoState_break(IoState *self, IoObject *v)
{
self->stopStatus = MESSAGE_STOP_STATUS_BREAK;
self->returnValue = v;
}
void IoState_continue(IoState *self)
{
self->stopStatus = MESSAGE_STOP_STATUS_CONTINUE;
}
void IoState_eol(IoState *self)
{
self->stopStatus = MESSAGE_STOP_STATUS_EOL;
}
void IoState_return(IoState *self, IoObject *v)
{
self->stopStatus = MESSAGE_STOP_STATUS_RETURN;
self->returnValue = v;
}
void IoState_resetStopStatus(IoState *self)
{
self->stopStatus = MESSAGE_STOP_STATUS_NORMAL;
}
int IoState_handleStatus(IoState *self)
{
switch (self->stopStatus)
{
case MESSAGE_STOP_STATUS_RETURN:
return 1;
case MESSAGE_STOP_STATUS_BREAK:
IoState_resetStopStatus(self);
return 1;
case MESSAGE_STOP_STATUS_CONTINUE:
IoState_resetStopStatus(self);
return 0;
default:
return 0;
}
}
syntax highlighted by Code2HTML, v. 0.9.1