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
--- 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':