comparison mercurial/dispatch.py @ 35029:e16f68c4abe3 stable

dispatch: stop parsing of early boolean option at "--"
author Yuya Nishihara <yuya@tcha.org>
date Fri, 10 Nov 2017 22:27:26 +0900
parents 7f8f9f0369ca
children d9aba3730d30
comparison
equal deleted inserted replaced
35028:7f8f9f0369ca 35029:e16f68c4abe3
697 else: 697 else:
698 pos += 1 698 pos += 1
699 return values 699 return values
700 700
701 def _earlyreqoptbool(req, name, aliases): 701 def _earlyreqoptbool(req, name, aliases):
702 assert len(aliases) == 1 702 """Peek a boolean option without using a full options table
703 return aliases[0] in req.args 703
704 >>> req = request([b'x', b'--debugger'])
705 >>> _earlyreqoptbool(req, b'debugger', [b'--debugger'])
706 True
707
708 >>> req = request([b'x', b'--', b'--debugger'])
709 >>> _earlyreqoptbool(req, b'debugger', [b'--debugger'])
710 False
711 """
712 try:
713 argcount = req.args.index("--")
714 except ValueError:
715 argcount = len(req.args)
716 value = False
717 pos = 0
718 while pos < argcount:
719 arg = req.args[pos]
720 if arg in aliases:
721 value = True
722 pos += 1
723 return value
704 724
705 def runcommand(lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions): 725 def runcommand(lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions):
706 # run pre-hook, and abort if it fails 726 # run pre-hook, and abort if it fails
707 hook.hook(lui, repo, "pre-%s" % cmd, True, args=" ".join(fullargs), 727 hook.hook(lui, repo, "pre-%s" % cmd, True, args=" ".join(fullargs),
708 pats=cmdpats, opts=cmdoptions) 728 pats=cmdpats, opts=cmdoptions)