/*========================================================================= FILENAME.CPP Author: Gary Liddon @ Created: Project: Purpose: Copyright (c) 1998 G R Liddon ===========================================================================*/ /*---------------------------------------------------------------------- Includes -------- */ #include "script.h" /* Std Lib ------- */ /* Glib ---- */ /* Local ----- */ /*---------------------------------------------------------------------- Tyepdefs && Defines ------------------- */ using namespace std; /*---------------------------------------------------------------------- Structure defintions -------------------- */ const int DEFAULT_LINE_LENGTH=8192; /*---------------------------------------------------------------------- Function Prototypes ------------------- */ /*---------------------------------------------------------------------- Vars ---- */ /*---------------------------------------------------------------------- Data ---- */ /*---------------------------------------------------------------------- Function: Purpose: Params: Returns: ---------------------------------------------------------------------- */ ScriptFile::ScriptFile(void) { m_isOpen=false; } /*---------------------------------------------------------------------- Function: Purpose: Params: Returns: ---------------------------------------------------------------------- */ ScriptFile::~ScriptFile(void) { close(); } /*---------------------------------------------------------------------- Function: Purpose: Params: Returns: ---------------------------------------------------------------------- */ void ScriptFile::close(void) { if (m_isOpen) m_inStream.close(); m_isOpen=false; } /*---------------------------------------------------------------------- Function: Purpose: Params: Returns: ---------------------------------------------------------------------- */ void ScriptFile::open(char const * fileName) { if (m_isOpen) close(); m_inStream.open(fileName,ios::binary|ios::in); if (m_inStream) { m_fileName=fileName; } else GObject::Error(ERR_FATAL,"unable to open script file %s",fileName); m_isOpen=true; } /*---------------------------------------------------------------------- Function: Purpose: Params: Returns: ---------------------------------------------------------------------- */ void ScriptFile::scriptError(void) { GObject::Error(ERR_FATAL,"Ill formatted script file %s, line %d",(char const *)m_fileName,m_lineCount); } /*---------------------------------------------------------------------- Function: ak Purpose: Params: Returns: ---------------------------------------------------------------------- */ void ScriptFile::checkIsOpen(void) { if (!m_isOpen) GObject::Error(ERR_FATAL,"file operation needed by ScriptFile but no file is open"); } /*---------------------------------------------------------------------- Function: Purpose: Params: Returns: ---------------------------------------------------------------------- */ bool ScriptFile::getNextNonBlankLine(char * line,int lineLen) { checkIsOpen(); do { if (m_inStream.eof()) return(false); m_inStream.getline(line,lineLen); int lineLength; lineLength=strlen(line); for (int f=0;f