]> Creatis software - bbtk.git/blobdiff - kernel/src/bbtkInterpreter.cxx
name
[bbtk.git] / kernel / src / bbtkInterpreter.cxx
index a6101a5a2881f678cc33247ad30dfa9165f0fab9..640688776191dd9c358ace7fb5213f7b78e55e54 100644 (file)
@@ -3,8 +3,8 @@
   Program:   bbtk
   Module:    $RCSfile: bbtkInterpreter.cxx,v $ $
   Language:  C++
-  Date:      $Date: 2008/01/29 10:12:45 $
-  Version:   $Revision: 1.8 $
+  Date:      $Date: 2008/01/29 14:31:02 $
+  Version:   $Revision: 1.13 $
                                                                                 
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See Doc/License.txt or
@@ -792,9 +792,6 @@ verbose = true;
         }
         foundFile = true;
 
-        std::cout << "recherche tous les .bbs du directory" << std::endl;
-        std::cout << "pour chacun, LoadScript" << std::endl; 
-
         std::vector<std::string> Filenames;
         int nbFiles = Utilities::Explore(fullDirectoryName, false, Filenames);
 // std::cout << "=================nbFiles " << nbFiles << std::endl;
@@ -817,19 +814,23 @@ verbose = true;
 
     std::string::size_type slash_position = name.find_last_of("/\\");
 
-    // if name contains a slash (anywhere), user is assumed to have passed a relative/absolute name
+    // if name starts with a / or a . or contains : user is assumed to have passed a relative/absolute name
     // (not only a plain script name)
-    // we trust him, and try to explade the directory name
+    // we trust him, and try to expland the directory name
     // WARNING : starting from current local directory :  ./whatYouWant  (./ mandatory!)
-    
-    if (slash_position != std::string::npos)
-    {       // ===========================================================check user supplied location
-      fullnameGiven = true;
       
+   // if (slash_position != std::string::npos)
+    if (name[0]=='/' || name[1] == ':' || name[0]=='.')  // absolute path (linux/windows) or relative path
+    { 
+
+      // ===========================================================check user supplied location
+      fullnameGiven = true;
+
       fullPathScriptName =  Utilities::ExpandLibName(name, verbose);
-      
+
       // allow user to always forget ".bbs"
       int l = fullPathScriptName.size();
+
       if (l!=0) {
       
       if (l>4)
@@ -844,22 +845,23 @@ verbose = true;
          fullPathScriptName = fullPathScriptName + ".bbs";   
       }
 
-      //if (fullPathScriptName != "") {
         if ( Utilities::FileExists(fullPathScriptName))
         {
           foundFile = true;
         }
-      //}
+
       } // endif l != 0
     }
-    else    // =============================================================== iterate on the paths
-    {
+    else 
+
+      // =============================================================== iterate on the paths
+      {
       std::string path;
       std::vector<std::string>::iterator i;
       for (i=script_paths.begin();i!=script_paths.end();++i)
       {
-        path = *i;
 
+        path = *i;
        // we *really* want '.' to be the current working directory
         if (path == ".") {
           char buf[2048]; // for getcwd
@@ -869,7 +871,10 @@ verbose = true;
         }
 
        // fullPathScriptName = Utilities::MakePkgnameFromPath(path, name, true); //pkgname);
-       fullPathScriptName = Utilities::MakePkgnameFromPath(path, pkgname, true);
+
+           fullPathScriptName = Utilities::MakePkgnameFromPath(path, name, true);
+//std::cout << "FULL PATH = "<<fullPathScriptName<<std::endl;
+
       // Check if library exists
         if ( ! Utilities::FileExists(fullPathScriptName) )
         {
@@ -880,6 +885,8 @@ verbose = true;
             std::cout <<"   [" <<fullPathScriptName <<"] : doesn't exist" <<std::endl;
           continue;  // try next path
         }
+        if (verbose)
+           std::cout <<"   [" <<fullPathScriptName <<"] : found" <<std::endl;        
         foundFile = true;
         break; // a script was found; we stop iterating