mercurial/extensions.py
changeset 19777 6f72e7d28b35
parent 19769 83d79a00cc24
child 20622 352abbb0be88
--- a/mercurial/extensions.py	Mon Sep 23 11:37:06 2013 -0700
+++ b/mercurial/extensions.py	Sat Sep 21 21:33:29 2013 +0900
@@ -13,10 +13,18 @@
 _order = []
 _ignore = ['hbisect', 'bookmarks', 'parentrevspec', 'interhg']
 
-def extensions():
+def extensions(ui=None):
+    if ui:
+        def enabled(name):
+            for format in ['%s', 'hgext.%s']:
+                conf = ui.config('extensions', format % name)
+                if conf is not None and not conf.startswith('!'):
+                    return True
+    else:
+        enabled = lambda name: True
     for name in _order:
         module = _extensions[name]
-        if module:
+        if module and enabled(name):
             yield name, module
 
 def find(name):