summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2012-03-22 12:00:39 -0700
committerZac Medico <zmedico@gentoo.org>2012-03-22 12:00:39 -0700
commitfffa9fcef6b65f4c299f393d49396e275d78245b (patch)
tree9a4b2eb91fe684bc7eb8c585609863d37b966d1f
parent3a5f7f4993134022c094cb9247f9486061732b99 (diff)
downloadportage-fffa9fcef6b65f4c299f393d49396e275d78245b.tar.gz
portage-fffa9fcef6b65f4c299f393d49396e275d78245b.tar.bz2
portage-fffa9fcef6b65f4c299f393d49396e275d78245b.zip
emerge --changelog: show some log entries above
This will fix bug #373009.
-rw-r--r--pym/_emerge/resolver/output_helpers.py21
1 files 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