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(); }
IStream *New_Checked_IStream(char *filename, unsigned int stype) { if(POV_ALLOW_FILE_READ(filename, stype) == true) return New_IStream(filename, stype); return NULL; }