From fffa9fcef6b65f4c299f393d49396e275d78245b Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Thu, 22 Mar 2012 12:00:39 -0700 Subject: emerge --changelog: show some log entries above This will fix bug #373009. --- pym/_emerge/resolver/output_helpers.py | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/pym/_emerge/resolver/output_helpers.py b/pym/_emerge/resolver/output_helpers.py index ae84158cf..e751dd8e4 100644 --- a/pym/_emerge/resolver/output_helpers.py +++ b/pym/_emerge/resolver/output_helpers.py @@ -534,10 +534,25 @@ def _calc_changelog(ebuildpath,current,next): #print 'XX from',current,'to',next #for div,text in divisions: print 'XX',div # skip entries for all revisions above the one we are about to emerge - for i in range(len(divisions)): - if divisions[i][0]==next: - divisions = divisions[i:] + later_rev_index = None + for i, node in enumerate(divisions): + if node[0] == next: + if later_rev_index is not None: + first_node = divisions[later_rev_index] + # Discard the later revision and the first ChangeLog entry + # that follows it. We want to display all the entries after + # that first entry, as discussed in bug #373009. + trimmed_lines = [] + iterator = iter(first_node[1]) + for l in iterator: + if not l: + # end of the first entry that's discarded + break + first_node = (None, list(iterator)) + divisions = [first_node] + divisions[later_rev_index+1:] break + if node[0] is not None: + later_rev_index = i output = [] prev_blank = False -- cgit v1.2.3-1-g7c22