OutputState.cxx revision 7c478bd95313f5f23a4c958a745db2134aa03244
// Copyright (c) 1994 James Clark
// See the file COPYING for copying permission.
#pragma ident "%Z%%M% %I% %E% SMI"
#ifdef __GNUG__
#pragma implementation
#endif
#include "splib.h"
#include "OutputState.h"
#include "Event.h"
#include "Allocator.h"
#ifdef SP_NAMESPACE
namespace SP_NAMESPACE {
#endif
{
init();
}
void OutputState::init()
{
nextSerial_ = 0;
}
{
}
{
if (eventsWanted.wantInstanceMarkup())
case afterStartTag:
// it's the first RE in the element
if (eventsWanted.wantInstanceMarkup())
break;
case afterRsOrRe:
case afterData:
break;
case pendingAfterRsOrRe:
// We now know that the pending RE won't be ignored as the last RE.
break;
case pendingAfterMarkup:
// We've had only markup since the last RS or RE, so this
// RE is ignored. Note that it's this RE that's ignored, not
// the pending one.
if (eventsWanted.wantInstanceMarkup())
break;
}
}
{
if (top().hasPendingRe())
else
}
{
case afterRsOrRe:
break;
case pendingAfterRsOrRe:
break;
default:
break; // avoid warning
}
}
const EventsWanted &)
{
if (top().hasPendingRe())
}
const EventsWanted &)
{
if (included)
else {
if (top().hasPendingRe())
}
}
const EventsWanted &eventsWanted)
{
if (included) {
}
else
}
#ifdef SP_NAMESPACE
}
#endif