]> Creatis software - bbtk.git/blobdiff - kernel/src/bbtkInterpreter.cxx
ColourDialog -> ColourSelector
[bbtk.git] / kernel / src / bbtkInterpreter.cxx
index 35572dfaf3f4f0be5a58c8e10ac55ba1b0f7b9c8..7a58ffe435b6f2922c211200887bdb6af21b7128 100644 (file)
@@ -3,8 +3,8 @@
   Program:   bbtk
   Module:    $RCSfile: bbtkInterpreter.cxx,v $ $
   Language:  C++
-  Date:      $Date: 2008/02/14 11:26:43 $
-  Version:   $Revision: 1.31 $
+  Date:      $Date: 2008/02/20 11:58:32 $
+  Version:   $Revision: 1.35 $
                                                                                 
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See Doc/License.txt or
@@ -26,6 +26,7 @@
 #include "bbtkWxConsole.h"
 #include "bbtkUtilities.h"
 #include <sys/stat.h>
+#include <algorithm>
 #ifdef CMAKE_HAVE_TERMIOS_H
 #include <termios.h>
 #define BBTK_USE_TERMIOS_BASED_PROMPT
@@ -52,10 +53,12 @@ Interpreter* Interpreter::mGlobalInterpreter = NULL;
  
     mGlobalInterpreter = this;
 
-    //    mFactory = new bbtk::Factory();
     mExecuter = new bbtk::Executer();
-    //mExecuter = new bbtk::Transcriptor("GeneratedProgram.txt");
-    //mExecuter->SetFactory(mFactory);
+    
+    // For the time being, comment out previous line, and
+    // uncomment next line to check Transcriptor
+
+   // mExecuter = new bbtk::Transcriptor("GeneratedProgram.txt");
 
     // Builds the commands dict
     CommandInfoType info;
@@ -307,6 +310,8 @@ Interpreter* Interpreter::mGlobalInterpreter = NULL;
 
     try 
     {
+printf("EED: Interpreter::InterpretFile 01\n");
+InterpretLine("message ALL 9", exm);
       SwitchToFile(filename, use_configuration_file);
       bool insideComment = false; // for multiline comment
       while (mFile.size()>0) 
@@ -364,6 +369,7 @@ Interpreter* Interpreter::mGlobalInterpreter = NULL;
     bbtkDecTab("Interpreter",9);
 
     mCommandLine = exm;
+ printf("EED: Interpreter::InterpretFile 02\n");
   }
   //=======================================================================
 
@@ -536,7 +542,7 @@ void Interpreter::InterpretLine( const std::string& line, bool &insideComment )
       case cMessage : 
         if (words.size()<3)
         {
-            bbtk::MessageManager::PrintInfo();
+           bbtk::MessageManager::PrintInfo();
         }
         else
         {
@@ -582,6 +588,7 @@ void Interpreter::InterpretLine( const std::string& line, bool &insideComment )
         break;
 
       case cQuit :
+        delete mExecuter;
         throw QuitException();
         break;
 
@@ -786,7 +793,7 @@ void Interpreter::SplitLine ( const std::string& str, std::vector<std::string>&
       std::string path;
       std::vector<std::string>::iterator i;
       std::string fullDirectoryName;
-      for (i=script_paths.begin();i!=script_paths.end();++i)// ==== relative name, iterate + load all .bbs files
+      for (i=script_paths.begin();i!=script_paths.end();i++)// ==== relative name, iterate + load all .bbs files
       {
         path = *i;
 
@@ -800,8 +807,12 @@ void Interpreter::SplitLine ( const std::string& str, std::vector<std::string>&
 
         fullDirectoryName = Utilities::MakePkgnameFromPath(path, upath, false);
 
+        //EED 18 Fev 2008
+        // without last slash "\"
+        std::string fullDirectoryNameClean = fullDirectoryName.substr(0,fullDirectoryName.size()-1);
+
       // Check if library exists
-        if ( ! Utilities::IsDirectory(fullDirectoryName) )
+        if ( ! Utilities::IsDirectory( fullDirectoryNameClean ) )
         {
         // The following is *NOT* a debug time message :
         // It's a user intended message.
@@ -818,7 +829,6 @@ void Interpreter::SplitLine ( const std::string& str, std::vector<std::string>&
         nbBssFiles = 0;
         for (std::vector<std::string>::iterator i = Filenames.begin(); i!= Filenames.end(); ++i)
         {
-
            if ((*i).substr((*i).size()-4, 4) != ".bbs")
               continue;      // ignore non .bbs files
            LoadScript(*i,name);