comparison mercurial/dispatch.py @ 12633:301d7626e0ff

alias: back up and restore commands.norepo before checking for shell aliases
author Steve Losh <steve@stevelosh.com>
date Fri, 08 Oct 2010 16:10:00 -0400
parents 208fc9ad6a48
children c24215aa7e69
comparison
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)