changeset 4079:9aab5345728a mercurial-4.6

test-compat: merge stable into mercurial-4.6
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Mon, 03 Sep 2018 22:59:16 +0200
parents eb4d07a0b19f (current diff) da6ce6d446b9 (diff)
children 7567b58390d7 8e79671ba1fd
files
diffstat 1 files changed, 15 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/hgext3rd/topic/__init__.py	Mon Sep 03 21:59:24 2018 +0200
+++ b/hgext3rd/topic/__init__.py	Mon Sep 03 22:59:16 2018 +0200
@@ -134,6 +134,7 @@
     registrar,
     scmutil,
     templatefilters,
+    templatekw,
     util,
 )
 
@@ -227,7 +228,9 @@
                       default=None,
             )
 
+# we need to do old style declaration for <= 4.5
 templatekeyword = registrar.templatekeyword()
+post45template = 'requires=' in templatekeyword.__doc__
 
 def _contexttopic(self, force=False):
     if not (force or self.mutable()):
@@ -350,6 +353,8 @@
 
     cmdutil.summaryhooks.add('topic', summaryhook)
 
+    if not post45template:
+        templatekw.keywords['topic'] = topickw
     # Wrap workingctx extra to return the topic name
     extensions.wrapfunction(context.workingctx, '__init__', wrapinit)
     # Wrap changelog.add to drop empty topic
@@ -521,11 +526,16 @@
             'topics', 'topic', namemap=_namemap, nodemap=_nodemap,
             listnames=lambda repo: repo.topics))
 
-@templatekeyword('topic', requires={'ctx'})
-def topickw(context, mapping):
-    """:topic: String. The topic of the changeset"""
-    ctx = context.resource(mapping, 'ctx')
-    return ctx.topic()
+if post45template:
+    @templatekeyword('topic', requires={'ctx'})
+    def topickw(context, mapping):
+        """:topic: String. The topic of the changeset"""
+        ctx = context.resource(mapping, 'ctx')
+        return ctx.topic()
+else:
+    def topickw(**args):
+        """:topic: String. The topic of the changeset"""
+        return args['ctx'].topic()
 
 def wrapinit(orig, self, repo, *args, **kwargs):
     orig(self, repo, *args, **kwargs)