Mercurial > public > mercurial-scm > hg-stable
diff mercurial/revlogutils/flagutil.py @ 42748:5109217a9ab6
flagutil: move insertflagprocessor to the new module (API)
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Thu, 08 Aug 2019 01:25:37 +0200 |
parents | 92ac6b1697a7 |
children | 6d61be152c55 |
line wrap: on
line diff
--- a/mercurial/revlogutils/flagutil.py Thu Aug 08 01:28:34 2019 +0200 +++ b/mercurial/revlogutils/flagutil.py Thu Aug 08 01:25:37 2019 +0200 @@ -8,6 +8,8 @@ from __future__ import absolute_import +from ..i18n import _ + from .constants import ( REVIDX_DEFAULT_FLAGS, REVIDX_ELLIPSIS, @@ -18,6 +20,7 @@ ) from .. import ( + error, util ) @@ -37,3 +40,14 @@ REVIDX_ISCENSORED: None, } +def insertflagprocessor(flag, processor, flagprocessors): + if not flag & REVIDX_KNOWN_FLAGS: + msg = _("cannot register processor on unknown flag '%#x'.") % (flag) + raise error.ProgrammingError(msg) + if flag not in REVIDX_FLAGS_ORDER: + msg = _("flag '%#x' undefined in REVIDX_FLAGS_ORDER.") % (flag) + raise error.ProgrammingError(msg) + if flag in flagprocessors: + msg = _("cannot register multiple processors on flag '%#x'.") % (flag) + raise error.Abort(msg) + flagprocessors[flag] = processor