diff options
Diffstat (limited to 'pym/portage/elog/messages.py')
-rw-r--r-- | pym/portage/elog/messages.py | 14 |
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(): |