|
@@ -21,6 +21,7 @@
|
|
|
|
|
|
#include "core/basics/StringTools.h"
|
|
|
#include "core/basics/FileMgt.h"
|
|
|
+#include "core/basics/FileName.h"
|
|
|
|
|
|
#include "vislearning/cbaselib/MultiDataset.h"
|
|
|
|
|
@@ -183,7 +184,18 @@ MultiDataset::MultiDataset( const Config *conf , LabeledSetFactory *pSetFactory)
|
|
|
#ifdef DEBUG_MultiDataset
|
|
|
fprintf (stderr, "Reading dataset config for block [%s]\n", i->c_str() );
|
|
|
#endif
|
|
|
- Config dsconf ( (dataset + "/dataset.conf").c_str() );
|
|
|
+ NICE::FileName t_ConfigFilename( conf->getFilename() );
|
|
|
+ NICE::FileName t_DatasetFilename( dataset );
|
|
|
+
|
|
|
+ // check for relative path correction:
|
|
|
+ // if dataset is a relative path, then make it absolute using the
|
|
|
+ // given config's directory
|
|
|
+ if( t_DatasetFilename.isRelative() )
|
|
|
+ {
|
|
|
+ dataset = t_ConfigFilename.extractPath().str() + dataset;
|
|
|
+ }
|
|
|
+ std::string sDatasetConfFilename = dataset + "/dataset.conf";
|
|
|
+ Config dsconf ( sDatasetConfFilename.c_str() );
|
|
|
|
|
|
dirs[*i] = dataset;
|
|
|
dsconfs[*i] = dsconf;
|