mirror of
https://github.com/facebook/sapling.git
synced 2024-10-09 00:14:35 +03:00
revset: replace predicate by revsetpredicate of registrar
To make all built-in predicates be known to hggettext, loading built-in predicates by loadpredicate() should be placed before fixing i18nfunctions but after all of predicate decorating.
This commit is contained in:
parent
60e9ee2742
commit
905d970f59
@ -482,36 +482,7 @@ symbols = {}
|
||||
# functions that just return a lot of changesets (like all) don't count here
|
||||
safesymbols = set()
|
||||
|
||||
class predicate(registrar.funcregistrar):
|
||||
"""Decorator to register revset predicate
|
||||
|
||||
Usage::
|
||||
|
||||
@predicate('mypredicate(arg1, arg2[, arg3])')
|
||||
def mypredicatefunc(repo, subset, x):
|
||||
'''Explanation of this revset predicate ....
|
||||
'''
|
||||
pass
|
||||
|
||||
The first string argument of the constructor is used also in
|
||||
online help.
|
||||
|
||||
Use 'extpredicate' instead of this to register revset predicate in
|
||||
extensions.
|
||||
"""
|
||||
table = symbols
|
||||
formatdoc = "``%s``\n %s"
|
||||
getname = registrar.funcregistrar.parsefuncdecl
|
||||
|
||||
def __init__(self, decl, safe=False):
|
||||
"""'safe' indicates whether a predicate is safe for DoS attack
|
||||
"""
|
||||
super(predicate, self).__init__(decl)
|
||||
self.safe = safe
|
||||
|
||||
def extraaction(self, name, func):
|
||||
if self.safe:
|
||||
safesymbols.add(name)
|
||||
predicate = registrar.revsetpredicate()
|
||||
|
||||
class extpredicate(registrar.delayregistrar):
|
||||
"""Decorator to register revset predicate in extensions
|
||||
@ -3636,5 +3607,8 @@ def loadpredicate(ui, extname, registrarobj):
|
||||
if func._safe:
|
||||
safesymbols.add(name)
|
||||
|
||||
# load built-in predicates explicitly to setup safesymbols
|
||||
loadpredicate(None, None, predicate)
|
||||
|
||||
# tell hggettext to extract docstrings from these functions:
|
||||
i18nfunctions = symbols.values()
|
||||
|
Loading…
Reference in New Issue
Block a user