--- emerge.org 2003-08-03 03:25:13.000000000 +0100 +++ emerge 2003-08-07 04:09:33.000000000 +0100 @@ -52,6 +52,7 @@ "--quiet", "--resume", "--searchdesc", "--selective", "--skipfirst", +"--tree", "--update", "--upgradeonly", "--usepkg", "--usepkgonly", "--verbose", "--version" @@ -73,6 +74,7 @@ "p":"--pretend", "P":"--prune", "q":"--quiet", "s":"--search", "S":"--searchdesc", +'t':"--tree", "u":"--update", "U":"--upgradeonly", "v":"--verbose", "V":"--version" } @@ -995,6 +997,7 @@ def display(self,mylist): changelogs=[] + allmyprint=[] for x in mylist: #print x fetch=" " @@ -1080,9 +1083,14 @@ oldlp=mywidth-30 newlp=oldlp-30 + mygraph = self.digraph.copy() + indent="" + if ("--tree" in myopts): + indent=" "*mygraph.depth(string.join(x)) + if x[1]!="/": if "--columns" in myopts: - myprint="["+x[0]+" "+addl+"] "+darkgreen(xs[0]) + myprint="["+x[0]+" "+addl+"] "+indent+darkgreen(xs[0]) if (newlp-len(myprint)) > 0: myprint=myprint+(" "*(newlp-len(myprint))) myprint=myprint+"["+darkblue(xs[1]+xs[2])+"] " @@ -1094,7 +1102,7 @@ myprint="["+x[0]+" "+addl+"] "+darkgreen(x[2])+" "+myoldbest+" "+darkgreen("to "+x[1])+" "+iuse else: if "--columns" in myopts: - myprint="["+x[0]+" "+addl+"] "+darkgreen(xs[0]) + myprint="["+x[0]+" "+addl+"] "+indent+darkgreen(xs[0]) if (newlp-len(myprint)) > 0: myprint=myprint+(" "*(newlp-len(myprint))) myprint=myprint+green(" ["+xs[1]+xs[2]+"] ") @@ -1102,8 +1110,8 @@ myprint=myprint+(" "*(oldlp-len(myprint))) myprint=myprint+myoldbest+" "+iuse else: - myprint="["+x[0]+" "+addl+"] "+darkgreen(x[2])+" "+myoldbest+" "+iuse - print myprint + myprint="["+x[0]+" "+addl+"] "+indent+darkgreen(x[2])+" "+myoldbest+" "+iuse + allmyprint.append(myprint) mysplit=portage.pkgsplit(x[2]) # XXX mysplit _can_ be None.... Why? @@ -1126,6 +1134,12 @@ print del mysplit + if ("--tree" in myopts): + allmyprint.reverse() + + for x in allmyprint: + print x + if "--changelog" in myopts: print for revision,text in changelogs: --- portage.py.org 2003-08-02 22:43:47.000000000 +0100 +++ portage.py 2003-08-07 03:14:23.000000000 +0100 @@ -369,7 +369,14 @@ for x in self.okeys: if self.dict[x][0]==0: return x - return None + return None + + def depth(self, mykey): + depth=0 + while (self.dict[mykey][1]): + depth=depth+1 + mykey=self.dict[mykey][1][0] + return depth def allzeros(self): "returns all nodes with zero references, or NULL if no such node exists"