From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from pigeon.gentoo.org ([208.92.234.80] helo=lists.gentoo.org) by finch.gentoo.org with esmtp (Exim 4.60) (envelope-from ) id 1RNJmR-0007AQ-4V for garchives@archives.gentoo.org; Mon, 07 Nov 2011 07:38:07 +0000 Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 4946221C03A; Mon, 7 Nov 2011 07:37:58 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) by pigeon.gentoo.org (Postfix) with ESMTP id 129DF21C03A for ; Mon, 7 Nov 2011 07:37:57 +0000 (UTC) Received: from pelican.gentoo.org (unknown [66.219.59.40]) (using TLSv1 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 832091B4024 for ; Mon, 7 Nov 2011 07:37:57 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by pelican.gentoo.org (Postfix) with ESMTP id 75B3980042 for ; Mon, 7 Nov 2011 07:37:56 +0000 (UTC) From: "Zac Medico" To: gentoo-commits@lists.gentoo.org Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Zac Medico" Message-ID: <69d7f169ba2e27cf56746791331c63a019357100.zmedico@gentoo> Subject: [gentoo-commits] proj/portage:master commit in: pym/_emerge/resolver/ X-VCS-Repository: proj/portage X-VCS-Files: pym/_emerge/resolver/output_helpers.py X-VCS-Directories: pym/_emerge/resolver/ X-VCS-Committer: zmedico X-VCS-Committer-Name: Zac Medico X-VCS-Revision: 69d7f169ba2e27cf56746791331c63a019357100 Date: Mon, 7 Nov 2011 07:37:56 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: quoted-printable X-Archives-Salt: 4274c5ea-c2cc-4f3b-bf8e-e4991d8a86a3 X-Archives-Hash: 7eb19a3e103c91a00ac274a4f94d8f75 commit: 69d7f169ba2e27cf56746791331c63a019357100 Author: Zac Medico gentoo org> AuthorDate: Mon Nov 7 07:37:33 2011 +0000 Commit: Zac Medico gentoo org> CommitDate: Mon Nov 7 07:37:33 2011 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=3Dproj/portage.git;a= =3Dcommit;h=3D69d7f169 emerge --changelog: ChangeLog-YYYY, bug #389611 --- pym/_emerge/resolver/output_helpers.py | 49 +++++++++++++++++++-------= ----- 1 files changed, 30 insertions(+), 19 deletions(-) diff --git a/pym/_emerge/resolver/output_helpers.py b/pym/_emerge/resolve= r/output_helpers.py index 151c505..b3cdbc4 100644 --- a/pym/_emerge/resolver/output_helpers.py +++ b/pym/_emerge/resolver/output_helpers.py @@ -500,17 +500,36 @@ def _calc_changelog(ebuildpath,current,next): next =3D '-'.join(catpkgsplit(next)[1:]) if next.endswith('-r0'): next =3D next[:-3] - changelogpath =3D os.path.join(os.path.split(ebuildpath)[0],'ChangeLog'= ) - try: - changelog =3D io.open(_unicode_encode(changelogpath, - encoding=3D_encodings['fs'], errors=3D'strict'), - mode=3D'r', encoding=3D_encodings['repo.content'], errors=3D'replace' - ).read() - except SystemExit: - raise # Needed else can't exit - except: + + changelogdir =3D os.path.dirname(ebuildpath) + changelogs =3D ['ChangeLog'] + # ChangeLog-YYYY (see bug #389611) + changelogs.extend(sorted((fn for fn in os.listdir(changelogdir) + if fn.startswith('ChangeLog-')), reverse=3DTrue)) + + divisions =3D [] + found_current =3D False + for fn in changelogs: + changelogpath =3D os.path.join(changelogdir, fn) + try: + with io.open(_unicode_encode(changelogpath, + encoding=3D_encodings['fs'], errors=3D'strict'), + mode=3D'r', encoding=3D_encodings['repo.content'], + errors=3D'replace') as f: + changelog =3D f.read() + except EnvironmentError: + return [] + for node in _find_changelog_tags(changelog): + divisions.append(node) + if node[0] =3D=3D current: + found_current =3D True + break + if found_current: + break + + if not found_current: return [] - divisions =3D _find_changelog_tags(changelog) + #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 @@ -518,16 +537,8 @@ def _calc_changelog(ebuildpath,current,next): if divisions[i][0]=3D=3Dnext: divisions =3D divisions[i:] break - # find out how many entries we are going to display - for i in range(len(divisions)): - if divisions[i][0]=3D=3Dcurrent: - divisions =3D divisions[:i] - break - else: - # couldnt find the current revision in the list. display nothing - return [] - return divisions =20 + return divisions =20 def _find_changelog_tags(changelog): divs =3D []