mercurial/dispatch.py
changeset 12633 301d7626e0ff
parent 12536 208fc9ad6a48
child 12636 c24215aa7e69
equal deleted inserted replaced
12632:6c98107f787e 12633:301d7626e0ff
   432 
   432 
   433     return path, lui
   433     return path, lui
   434 
   434 
   435 def _checkshellalias(ui, args):
   435 def _checkshellalias(ui, args):
   436     cwd = os.getcwd()
   436     cwd = os.getcwd()
       
   437     norepo = commands.norepo
   437     options = {}
   438     options = {}
   438     args = fancyopts.fancyopts(args, commands.globalopts, options)
   439     args = fancyopts.fancyopts(args, commands.globalopts, options)
   439 
   440 
   440     if not args:
   441     if not args:
   441         return
   442         return
   451 
   452 
   452     cmd = args[0]
   453     cmd = args[0]
   453     try:
   454     try:
   454         aliases, entry = cmdutil.findcmd(cmd, cmdtable, lui.config("ui", "strict"))
   455         aliases, entry = cmdutil.findcmd(cmd, cmdtable, lui.config("ui", "strict"))
   455     except error.UnknownCommand:
   456     except error.UnknownCommand:
       
   457         commands.norepo = norepo
   456         os.chdir(cwd)
   458         os.chdir(cwd)
   457         return
   459         return
   458 
   460 
   459     cmd = aliases[0]
   461     cmd = aliases[0]
   460     fn = entry[0]
   462     fn = entry[0]
   461 
   463 
   462     if cmd and hasattr(fn, 'shell'):
   464     if cmd and hasattr(fn, 'shell'):
   463         d = lambda: fn(ui, *args[1:])
   465         d = lambda: fn(ui, *args[1:])
   464         return lambda: runcommand(lui, None, cmd, args[:1], ui, options, d, [], {})
   466         return lambda: runcommand(lui, None, cmd, args[:1], ui, options, d, [], {})
   465 
   467 
       
   468     commands.norepo = norepo
   466     os.chdir(cwd)
   469     os.chdir(cwd)
   467 
   470 
   468 _loaded = set()
   471 _loaded = set()
   469 def _dispatch(ui, args):
   472 def _dispatch(ui, args):
   470     shellaliasfn = _checkshellalias(ui, args)
   473     shellaliasfn = _checkshellalias(ui, args)