mercurial/extensions.py
changeset 29895 b1ebc767563d
parent 29841 d5883fd055c6
child 30027 ebe488e04ca3
equal deleted inserted replaced
29894:02c150850e16 29895:b1ebc767563d
    20     error,
    20     error,
    21     util,
    21     util,
    22 )
    22 )
    23 
    23 
    24 _extensions = {}
    24 _extensions = {}
       
    25 _disabledextensions = {}
    25 _aftercallbacks = {}
    26 _aftercallbacks = {}
    26 _order = []
    27 _order = []
    27 _builtin = set(['hbisect', 'bookmarks', 'parentrevspec', 'progress', 'interhg',
    28 _builtin = set(['hbisect', 'bookmarks', 'parentrevspec', 'progress', 'interhg',
    28                 'inotify', 'hgcia'])
    29                 'inotify', 'hgcia'])
    29 
    30 
   146     result = ui.configitems("extensions")
   147     result = ui.configitems("extensions")
   147     newindex = len(_order)
   148     newindex = len(_order)
   148     for (name, path) in result:
   149     for (name, path) in result:
   149         if path:
   150         if path:
   150             if path[0] == '!':
   151             if path[0] == '!':
       
   152                 _disabledextensions[name] = path[1:]
   151                 continue
   153                 continue
   152         try:
   154         try:
   153             load(ui, name, path)
   155             load(ui, name, path)
   154         except KeyboardInterrupt:
   156         except KeyboardInterrupt:
   155             raise
   157             raise
   368             if strip_init:
   370             if strip_init:
   369                 path = os.path.dirname(path)
   371                 path = os.path.dirname(path)
   370         if name in exts or name in _order or name == '__init__':
   372         if name in exts or name in _order or name == '__init__':
   371             continue
   373             continue
   372         exts[name] = path
   374         exts[name] = path
       
   375     exts.update(_disabledextensions)
   373     return exts
   376     return exts
   374 
   377 
   375 def _moduledoc(file):
   378 def _moduledoc(file):
   376     '''return the top-level python documentation for the given file
   379     '''return the top-level python documentation for the given file
   377 
   380