hgext/chgserver.py
changeset 29088 983353035cec
parent 28770 97c8da2f89f9
child 29101 57a24a85a2bc
equal deleted inserted replaced
29087:ad1bdea43965 29088:983353035cec
   210 
   210 
   211     if usepager:
   211     if usepager:
   212         ui.setconfig('ui', 'formatted', ui.formatted(), 'pager')
   212         ui.setconfig('ui', 'formatted', ui.formatted(), 'pager')
   213         ui.setconfig('ui', 'interactive', False, 'pager')
   213         ui.setconfig('ui', 'interactive', False, 'pager')
   214         return p
   214         return p
   215 
       
   216 _envvarre = re.compile(r'\$[a-zA-Z_]+')
       
   217 
       
   218 def _clearenvaliases(cmdtable):
       
   219     """Remove stale command aliases referencing env vars; variable expansion
       
   220     is done at dispatch.addaliases()"""
       
   221     for name, tab in cmdtable.items():
       
   222         cmddef = tab[0]
       
   223         if (isinstance(cmddef, dispatch.cmdalias) and
       
   224             not cmddef.definition.startswith('!') and  # shell alias
       
   225             _envvarre.search(cmddef.definition)):
       
   226             del cmdtable[name]
       
   227 
   215 
   228 def _newchgui(srcui, csystem):
   216 def _newchgui(srcui, csystem):
   229     class chgui(srcui.__class__):
   217     class chgui(srcui.__class__):
   230         def __init__(self, src=None):
   218         def __init__(self, src=None):
   231             super(chgui, self).__init__(src)
   219             super(chgui, self).__init__(src)
   523         except ValueError:
   511         except ValueError:
   524             raise ValueError('unexpected value in setenv request')
   512             raise ValueError('unexpected value in setenv request')
   525         _log('setenv: %r\n' % sorted(newenv.keys()))
   513         _log('setenv: %r\n' % sorted(newenv.keys()))
   526         os.environ.clear()
   514         os.environ.clear()
   527         os.environ.update(newenv)
   515         os.environ.update(newenv)
   528         _clearenvaliases(commands.table)
       
   529 
   516 
   530     capabilities = commandserver.server.capabilities.copy()
   517     capabilities = commandserver.server.capabilities.copy()
   531     capabilities.update({'attachio': attachio,
   518     capabilities.update({'attachio': attachio,
   532                          'chdir': chdir,
   519                          'chdir': chdir,
   533                          'getpager': getpager,
   520                          'getpager': getpager,