diff --git a/src/core.cc b/src/core.cc index 54a30a13720305bea7b87c6ff5810ab9c06aece5..c90f39ccdf5c5d55bb488ad055a864f6ea365ff6 100644 --- a/src/core.cc +++ b/src/core.cc @@ -164,8 +164,26 @@ IPCCore::extractOptions( int & argc, char ** argv ) } catch (const omni::orbOptions::BadParam& ex) { - throw daq::ipc::BadOptionValue( ERS_HERE, (const char *)ex.key, - (const char *)ex.value, (const char *)ex.why ); + throw daq::ipc::BadOptionValue( ERS_HERE, (const char *)ex.key, (const char *)ex.value, (const char *)ex.why ); + } + + omni::orbOptions::sequenceString_var newOpts; + newOpts = omni::orbOptions::singleton().dumpSpecified(); + + for (CORBA::ULong i = 0; i < newOpts->length(); i++) + { + string option = (const char*)newOpts[i]; + string::size_type pos = option.find( '=' ); + + string key = option.substr(0,pos); + key.erase( key.find_last_not_of( ' ' ) + 1 ); + string val; + if ( pos != string::npos ) + { + val = option.substr(pos+1); + val.erase( 0, val.find_first_not_of( ' ' ) ); + } + opt.push_back( make_pair( key, val ) ); } return opt; }