Index: bin/emerge =================================================================== --- bin/emerge (revision 5965) +++ bin/emerge (revision 5968) @@ -1962,6 +1962,11 @@ def altlist(self, reversed=False): if reversed in self._altlist_cache: return self._altlist_cache[reversed][:] + if reversed: + retlist = self.altlist() + retlist.reverse() + self._altlist_cache[reversed] = retlist[:] + return retlist mygraph=self.digraph.copy() myblockers = self.blocker_digraph.copy() retlist=[] @@ -1979,6 +1984,7 @@ ignore_priority_range = [None] ignore_priority_range.extend( xrange(DepPriority.MIN, DepPriority.MEDIUM + 1)) + tree_mode = "--tree" in self.myopts while not mygraph.empty(): ignore_priority = None nodes = None @@ -2001,7 +2007,7 @@ selected_nodes = None if nodes: if ignore_priority <= DepPriority.SOFT: - if ignore_priority is None and not reversed: + if ignore_priority is None and not tree_mode: # Greedily pop all of these nodes since no relationship # has been ignored. This optimization destroys --tree # output, so it's disabled in reversed mode.