Blame lib/InputSource.cxx

Packit 8a864e
// Copyright (c) 1994 James Clark
Packit 8a864e
// See the file COPYING for copying permission.
Packit 8a864e
Packit 8a864e
#ifdef __GNUG__
Packit 8a864e
#pragma implementation
Packit 8a864e
#endif
Packit 8a864e
#include "splib.h"
Packit 8a864e
#include "InputSource.h"
Packit 8a864e
#include "MarkupScan.h"
Packit 8a864e
Packit 8a864e
#ifdef SP_NAMESPACE
Packit 8a864e
namespace SP_NAMESPACE {
Packit 8a864e
#endif
Packit 8a864e
Packit 8a864e
InputSource::InputSource(InputSourceOrigin *origin, const Char *start,
Packit 8a864e
			 const Char *end)
Packit 8a864e
: origin_(origin), start_(start), end_(end), cur_(start), accessError_(0),
Packit 8a864e
  startLocation_(origin, 0), multicode_(0), scanSuppress_(0)
Packit 8a864e
{
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
void InputSource::reset(const Char *start,
Packit 8a864e
			const Char *end)
Packit 8a864e
{
Packit 8a864e
  origin_ = origin_->copy();
Packit 8a864e
  start_ = start;
Packit 8a864e
  end_ = end;
Packit 8a864e
  cur_ = start_;
Packit 8a864e
  startLocation_ = Location(origin_.pointer(), 0);
Packit 8a864e
  multicode_ = 0;
Packit 8a864e
  scanSuppress_ = 0;
Packit 8a864e
  markupScanTable_.clear();
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
InputSource::~InputSource()
Packit 8a864e
{
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
void InputSource::advanceStartMulticode(const Char *to)
Packit 8a864e
{
Packit 8a864e
  while (start_ < to) {
Packit 8a864e
    switch (markupScanTable_[*start_]) {
Packit 8a864e
    case MarkupScan::normal:
Packit 8a864e
      break;
Packit 8a864e
    case MarkupScan::in:
Packit 8a864e
      scanSuppress_ = 0;
Packit 8a864e
      break;
Packit 8a864e
    case MarkupScan::out:
Packit 8a864e
      if (!scanSuppress()) {
Packit 8a864e
	scanSuppress_ = 1;
Packit 8a864e
	scanSuppressSingle_ = 0;
Packit 8a864e
      }
Packit 8a864e
      break;
Packit 8a864e
    case MarkupScan::suppress:
Packit 8a864e
      // what's the effect of MSSCHAR followed by MSSCHAR
Packit 8a864e
      if (!scanSuppress()) {
Packit 8a864e
	scanSuppress_ = 1;
Packit 8a864e
	scanSuppressSingle_ = 1;
Packit 8a864e
	scanSuppressIndex_ = startLocation_.index() + 1;
Packit 8a864e
      }
Packit 8a864e
      break;
Packit 8a864e
    }
Packit 8a864e
    start_++;
Packit 8a864e
    startLocation_ += 1;
Packit 8a864e
  }
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
void InputSource::willNotRewind()
Packit 8a864e
{
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
void InputSource::setDocCharset(const CharsetInfo &,
Packit 8a864e
				const CharsetInfo &)
Packit 8a864e
{
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
void InputSource::willNotSetDocCharset()
Packit 8a864e
{
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
InternalInputSource *InputSource::asInternalInputSource()
Packit 8a864e
{
Packit 8a864e
  return 0;
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
#ifdef SP_NAMESPACE
Packit 8a864e
}
Packit 8a864e
#endif