Support extensions using dorecord, e.g. crecord
authorChristian Ebert <blacktrash@gmx.net>
Sun, 09 May 2010 11:14:43 +0200
changeset 749 9f46c562c4b5
parent 747 25235530940d
child 751 0214eb052686
child 753 491c3fc0f551
Support extensions using dorecord, e.g. crecord Provide extendable keyword.recordextensions variable, so other extensions beside hgext.record which provide the dorecord function can cooperate with hgext.keyword like so (example from crecord): def extsetup(): try: keyword = extensions.find('keyword') keyword.restricted += ' crecord qcrecord' try: # use record support in keyword.py if present keyword.recordcommands += ' crecord qcrecord' keyword.recordextensions += ' crecord' except AttributeError: pass except KeyError: pass
hgkw/keyword.py
--- a/hgkw/keyword.py	Wed May 05 14:02:45 2010 +0200
+++ b/hgkw/keyword.py	Sun May 09 11:14:43 2010 +0200
@@ -91,6 +91,8 @@
 
 # commands using dorecord
 recordcommands = 'record qrecord'
+# names of extensions using dorecord
+recordextensions = 'record'
 
 # provide cvs-like UTC date filter
 utcdate = lambda x: util.datestr((x[0], 0), '%Y/%m/%d %H:%M:%S')
@@ -515,11 +517,12 @@
         extensions.wrapfunction(patch, 'diff', kw_diff)
     for c in 'annotate changeset rev filediff diff'.split():
         extensions.wrapfunction(webcommands, c, kwweb_skip)
-    try:
-        record = extensions.find('record')
-        extensions.wrapfunction(record, 'dorecord', kw_dorecord)
-    except KeyError:
-        pass
+    for name in recordextensions.split():
+        try:
+            record = extensions.find(name)
+            extensions.wrapfunction(record, 'dorecord', kw_dorecord)
+        except KeyError:
+            pass
 
 cmdtable = {
     'kwdemo':