RE: [ROOT] Re: delimiter in branch name

From: Philippe Canal (pcanal@fnal.gov)
Date: Wed Mar 06 2002 - 02:18:39 MET


Hi Dave,

Sorrowfully, this is not that simple :(.  Removing the line in question provokes
a double analysis of 'f', which is bad in some cases (for example if you add a
branch name f.f or something like that).  Anyway looking at this problem I found
a few other "annoyances" that I will also fix as soon as possible.

Cheers,
Philippe.

-----Original Message-----
From: owner-roottalk@pcroot.cern.ch
[mailto:owner-roottalk@pcroot.cern.ch]On Behalf Of Dave Morrison
Sent: Tuesday, March 05, 2002 4:25 PM
To: roottalk
Subject: [ROOT] Re: delimiter in branch name


Hi again,

It's never good form to reply to your own question, but ... if I remove 
the following line from TTreeFormula.cxx I recover the behavior of 3.01/06:

% diff -u root_v3.02.07.orig/treeplayer/src/TTreeFormula.cxx root_v3.02.07/treeplayer/src
--- root_v3.02.07.orig/treeplayer/src/TTreeFormula.cxx	Thu Jan 10 16:09:45 2002+++ root_v3.02.07/treeplayer/src/TTreeFormula.cxx	Tue Mar  5 17:06:16 2002@@ -1718,7 +1718,7 @@
          if (current!=work) *(--current) = '\0'; // remove bracket.
          --i;
          // Skip dots that made be adjacent to the closing bracket
-         while (cname[i+1]=='.') i++; 
+	 // while (cname[i+1]=='.') i++; 
       }
    }
    // Copy the left over for later use.

With this line in effect, the empty "[]" is swallowed, the subsequent 
"." is skipped and the object name and that of its data member are 
concatenated.  That search then fails.

Dave

Dave Morrison wrote:

> root [1] 
> T.Draw("f[].i")                                                   
> *ERROR 26 :
> Unknown name : "f[].i"



This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:50:44 MET