BEGIN_POV_BASE_NAMESPACE

ITextStream::ITextStream(const char *sname, unsigned int stype)
{
  if(sname == NULL)
    throw int(kParamErr);

  stream = New_IStream(sname, stype);
  if(stream == NULL)
    throw int(kCannotOpenFileErr);

  filename = new char[strlen(sname) + 1];
  strcpy(filename, sname);
  lineno = 1;
  bufferoffset = 0;
  maxbufferoffset = 0;
  filelength = 0;
  ungetbuffer = EOF;
  curpos = 0 ;

  stream->seekg(0, IOBase::seek_end);
  filelength = stream->tellg();
  stream->seekg(0, IOBase::seek_set);

  RefillBuffer();
}
Beispiel #2
0
IStream *New_Checked_IStream(char *filename, unsigned int stype)
{
	if(POV_ALLOW_FILE_READ(filename, stype) == true)
		return New_IStream(filename, stype);
	return NULL;
}