Program: bbtk
Module: $RCSfile: bbtkInterpreter.cxx,v $ $
Language: C++
- Date: $Date: 2008/01/30 09:28:15 $
- Version: $Revision: 1.15 $
+ Date: $Date: 2008/01/30 15:29:07 $
+ Version: $Revision: 1.16 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
// - absolute full name e.g. /home/usrname/proj/dir/scr.bbs
// same for Windows, with c:, d: ...
//
- // expression like directory/subdir/scrname.bbs is FORBIDDEN (*)
// use ./directory/subdir/scrname.bbs
//
- // (*) except when using packagename/boxes/*
bbtkDebugMessageInc("Interpreter",9,"Interpreter::SwitchToFile( \""
<<name<<"\")"<<std::endl);
std::vector<std::string> script_paths;
std::string fullPathScriptName; // full path script name
std::string pkgname; // e.g. <scriptname>.bbs
-
+ std::vector<std::string> Filenames;
+
if (use_configuration_file)
{
// The following is *NOT* a debug time message :
}
std::string upath;
pkgname = Utilities::ExtractScriptName(name,upath);
-
+//std::cout <<"name [" << name << "] pkgname [" << pkgname << "] upath [" << upath << "]" << std::endl;
bool fullnameGiven = false;
bool foundFile = false;
if(pkgname == "*") // =========================================== load all boxes (e.g. std/boxes/*)
{
+ int nbBssFiles;
+
+ if (upath[0]=='/' || upath[1] == ':' ) // ==== absolute name, load all .bbs files
+ {
+ int nbFiles = Utilities::Explore(upath, false, Filenames);
+ 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);
+ nbBssFiles++;
+ }
+ if (nbBssFiles==0)
+ if (verbose)
+ std::cout << "WARNING : No '.bbs' file found in [" << upath << "]" << std::endl;
+
+ return;
+ }
+
+
std::string path;
std::vector<std::string>::iterator i;
std::string fullDirectoryName;
- for (i=script_paths.begin();i!=script_paths.end();++i)
+ for (i=script_paths.begin();i!=script_paths.end();++i)// ==== relative name, iterate + load all .bbs files
{
path = *i;
}
foundFile = true;
- std::vector<std::string> Filenames;
+
int nbFiles = Utilities::Explore(fullDirectoryName, false, Filenames);
// std::cout << "=================nbFiles " << nbFiles << std::endl;
- int nbBssFiles = 0;
+ nbBssFiles = 0;
for (std::vector<std::string>::iterator i = Filenames.begin(); i!= Filenames.end(); ++i)
{
if ((*i).substr((*i).size()-4, 4) != ".bbs")
return;
}
- std::string::size_type slash_position = name.find_last_of("/\\");
+ //std::string::size_type slash_position = name.find_last_of("/\\");
// 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)
Program: bbtk
Module: $RCSfile: bbtkUtilities.h,v $
Language: C++
- Date: $Date: 2008/01/29 14:01:31 $
- Version: $Revision: 1.8 $
+ Date: $Date: 2008/01/30 15:29:07 $
+ Version: $Revision: 1.9 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See doc/license.txt or
{
pkgname = name;
}
-
+
// remove {.so | dll} if any
std::string::size_type dot_position = pkgname.find_last_of('.');
if (dot_position != std::string::npos){