diff --git a/CmdParser.cpp b/CmdParser.cpp index 3f9ec81..74f5541 100644 --- a/CmdParser.cpp +++ b/CmdParser.cpp @@ -120,26 +120,18 @@ CmdParser::Init( void) bool CmdParser::Run( const string& sCmdFile, bool bIsolated) { - bool bOk ; - string sOut ; - string sLine ; - string sCmd ; - string sParams ; - string sDummy ; - NameMap CurrNameMap ; - CmdScanner TheScanner ; - - // se richiesta esecuzione isolata, faccio una copia dello stato delle variabili + NameMap CurrNameMap ; if ( bIsolated) CurrNameMap = m_NameMap ; // log di inizio file - sOut = GetInitSpaces() + "--- Start : " + sCmdFile + " ---" ; + string sOut = GetInitSpaces() + "--- Start : " + sCmdFile + " ---" ; LOG_INFO( GetEGnLogger(), sOut.c_str()) // inizializzo lo scanner - bOk = TheScanner.Init( sCmdFile) ; + CmdScanner TheScanner ; + bool bOk = TheScanner.Init( sCmdFile) ; if ( ! bOk) { sOut = GetInitSpaces() + "Error opening command file" ; LOG_ERROR( GetEGnLogger(), sOut.c_str()) @@ -149,15 +141,18 @@ CmdParser::Run( const string& sCmdFile, bool bIsolated) m_nCurrLine = 0 ; m_nExec = DO ; m_nAssertNextError = 0 ; + string sLine ; while ( bOk && m_nExec != STOP && TheScanner.GetLine( sLine)) { // assegno numero linea corrente m_nCurrLine = TheScanner.GetCurrLineNbr() ; // elimino gli spazi all'inizio e alla fine Trim( sLine) ; // separo comando e parametri + string sCmd, sParams ; SplitFirst( sLine, "(", sCmd, sParams) ; ToUpper( sCmd) ; // elimino dai parametri tutto quanto dopo ultima parentesi chiusa + string sDummy ; SplitLast( sParams, ")", sParams, sDummy) ; // se da saltare e non è comando che fa riprendere esecuzione, vado al prossimo if ( m_nExec == SKIP && sCmd != "EXEC.DO") @@ -202,12 +197,11 @@ CmdParser::Run( const string& sCmdFile, bool bIsolated) bool CmdParser::ExecLine( const string& sCmdLine, bool bIsolated) { - NameMap CurrNameMap ; - - // se richiesta esecuzione isolata, faccio una copia dello stato delle variabili + NameMap CurrNameMap ; if ( bIsolated) CurrNameMap = m_NameMap ; + // elimino gli spazi all'inizio e alla fine string sLine = sCmdLine ; Trim( sLine) ; diff --git a/EgtGeneral.rc b/EgtGeneral.rc index 3e35fa8..8d27ae1 100644 Binary files a/EgtGeneral.rc and b/EgtGeneral.rc differ