Naming macros in hidden files (.rootlogon.C)

to my understanding, root executes the following macros on startup

${ROOTSYS}/system.rootlogon.C (if exists) ${HOME}/.rootlogon.C (if exists) $(pwd)/.rootlogon.C (if pwd!=HOME and if exists) ${Rint.Logon} (if set)

now it appears that applications ( fails horribly (/afs/ when the logon macros are unnamed. e.g. when ${HOME}/.rootlogon.C just contains

{ somecode }

we fixed this by setting

moving ${HOME}/.rootlogon.C to ${HOME}/rootlogon.C and naming the macro therein

void rootlogon() { somecode }

my understanding is that actually the last step is the crucial one but I don’t know how to name macros in hidden files (such as .rootlogon.C) because the c++ function would need to be called .rootlogon() and function names must not contain a period. I so far used a user-dependent ~/.rootlogon.C (set plot styles) and project dependent .rootlogon.C files, lying in directories with macros (where i set

gSystem->AddIncludePath(Form("-I%s",incpath.Data())); gInterpreter->AddIncludePath(incpath.Data());).

Moving the user ~/.rootlogon.C to ~/rootlogon.C and naming the macro therein seems straight forward, and I can say “just don’t run in directories which contain root macros”. But I’m wondering
[ul]is there a way to name macros in hidden files?

PS: the gaudi version i tested uses /afs/


We need to debug + fix this issue with

Can you send an email to me ( and whoever from LHCb you believe is knowledgeable on (Marco Clemencic?)

Regarding the naming of file names with non-C+±identifier characters: that’s indeed currently not supported. I have created

Cheers, Axel.

for the record, we continued discussing in ROOT-8533