Hello Carroters,
I was trying to put together what I have written and I came across a bug
in RootApacheModule::CreateServerConfig. I couldn't get Carrot to use
another CarrotGlobalInit.C etc. when set from system.rootrc
fServerConfig->fGlobalInitScript =
gEnv->GetValue("Carrot.GlobalInit",kEnvGlobal); //<--- BUG, returns
Int_t and not char*
if(fServerConfig->fGlobalInitScript.IsNull()) // hardcode it
fServerConfig->fGlobalInitScript =
gSystem->ConcatFileName(confdir.Data(),"CarrotGlobalInit.C");
fServerConfig->fGlobalInitScript =
gSystem->ExpandPathName(fServerConfig->fGlobalInitScript.Data());
According to the TEnv docs, calling Int_t GetValue(const char *name,
Int_t dflt) will return it's Int_t value or whatever dflt is set.
Carrot.GlobalInit is a string env var so
gEnv->GetValue("Carrot.GlobalInit",kEnvGlobal); will always return 0 as
kEnvGlobal is an enum (0). (enums evaluate to Int_t?)
This should read:
fServerConfig->fGlobalInitScript =
gEnv->GetValue("Carrot.GlobalInit",gSystem->ConcatFileName(confdir.Data(),"CarrotGlobalInit.C"));
fServerConfig->fGlobalInitScript =
gSystem->ExpandPathName(fServerConfig->fGlobalInitScript.Data());
Setting a different value for in system.rootrc CarrotGlobalInit.C now
works :-)
Thanks All
Ashley Cambrell
This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:50:52 MET