]> Creatis software - bbtk.git/blobdiff - kernel/src/bbtkInterpreter.cxx
Check again "." for expanding relative path name
[bbtk.git] / kernel / src / bbtkInterpreter.cxx
index 32c824934102ee290d336a5d281e91017d88ffb5..c34a7855c3e81b7df6445dd90badee8e0fc08575 100644 (file)
@@ -3,8 +3,8 @@
   Program:   bbtk
   Module:    $RCSfile: bbtkInterpreter.cxx,v $ $
   Language:  C++
-  Date:      $Date: 2008/01/29 13:34:59 $
-  Version:   $Revision: 1.9 $
+  Date:      $Date: 2008/01/29 14:11:03 $
+  Version:   $Revision: 1.12 $
                                                                                 
   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,21 +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)
+      
+   // 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)
@@ -846,28 +845,25 @@ verbose = true;
          fullPathScriptName = fullPathScriptName + ".bbs";   
       }
 
-      //if (fullPathScriptName != "") {
         if ( Utilities::FileExists(fullPathScriptName))
         {
           foundFile = true;
         }
-      //}
+
       } // endif l != 0
     }
-    else    
+    else 
+
       // =============================================================== iterate on the paths
       {
-       std::cout << "iterate"<<std::endl;
       std::string path;
       std::vector<std::string>::iterator i;
       for (i=script_paths.begin();i!=script_paths.end();++i)
       {
 
         path = *i;
-       std::cout << "CUR=["<<path<<"]"<<std::endl;
        // we *really* want '.' to be the current working directory
         if (path == ".") {
-         std::cout << "PATH IS CURRENT"<<std::endl;
           char buf[2048]; // for getcwd
           char * currentDir = getcwd(buf, 2048);
           std::string cwd(currentDir);
@@ -876,9 +872,9 @@ verbose = true;
 
        // fullPathScriptName = Utilities::MakePkgnameFromPath(path, name, true); //pkgname);
 
-       fullPathScriptName = Utilities::MakePkgnameFromPath(path, pkgname, true);
-       std::cout << "FULL PATH = "<<fullPathScriptName<<std::endl;
-       
+           fullPathScriptName = Utilities::MakePkgnameFromPath(path, pkgname, true);
+//std::cout << "FULL PATH = "<<fullPathScriptName<<std::endl;
+
       // Check if library exists
         if ( ! Utilities::FileExists(fullPathScriptName) )
         {
@@ -889,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