summaryrefslogtreecommitdiffstats
path: root/pym/portage/elog/messages.py
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2010-10-07 12:15:15 -0700
committerZac Medico <zmedico@gentoo.org>2010-10-07 12:15:15 -0700
commit8209aeab647b1ab80a64d5931069b3533776ef75 (patch)
tree2c23b53fd46623d6e2584692b4073e3b0c6ced8b /pym/portage/elog/messages.py
parente04db4cc77ca0596501193120cb6ecb85aa1f639 (diff)
downloadportage-8209aeab647b1ab80a64d5931069b3533776ef75.tar.gz
portage-8209aeab647b1ab80a64d5931069b3533776ef75.tar.bz2
portage-8209aeab647b1ab80a64d5931069b3533776ef75.zip
Preserve elog message continuity during updates.
Diffstat (limited to 'pym/portage/elog/messages.py')
-rw-r--r--pym/portage/elog/messages.py14
1 files changed, 12 insertions, 2 deletions
diff --git a/pym/portage/elog/messages.py b/pym/portage/elog/messages.py
index bee0a7747..a8a3e9a5f 100644
--- a/pym/portage/elog/messages.py
+++ b/pym/portage/elog/messages.py
@@ -121,7 +121,7 @@ def _elog_base(level, msg, phase="other", key=None, color=None, out=None):
#raise NotImplementedError()
-def collect_messages(key=None):
+def collect_messages(key=None, phasefilter=None):
global _msgbuffer
if key is None:
@@ -130,7 +130,17 @@ def collect_messages(key=None):
else:
rValue = {}
if key in _msgbuffer:
- rValue[key] = _msgbuffer.pop(key)
+ if phasefilter is None:
+ rValue[key] = _msgbuffer.pop(key)
+ else:
+ rValue[key] = {}
+ for phase in phasefilter:
+ try:
+ rValue[key][phase] = _msgbuffer[key].pop(phase)
+ except KeyError:
+ pass
+ if not _msgbuffer[key]:
+ del _msgbuffer[key]
return rValue
def _reset_buffer():