##// END OF EJS Templates
dispatch: add support for --option=value to _earlygetopt...
Bryan O'Sullivan -
r19099:fc081623 stable
parent child Browse files
Show More
@@ -490,6 +490,10 b' def _earlygetopt(aliases, args):'
490 >>> _earlygetopt(['--cwd'], args), args
490 >>> _earlygetopt(['--cwd'], args), args
491 (['foo'], ['x', 'y'])
491 (['foo'], ['x', 'y'])
492
492
493 >>> args = ['x', '--cwd=bar', 'y']
494 >>> _earlygetopt(['--cwd'], args), args
495 (['bar'], ['x', 'y'])
496
493 >>> args = ['x', '-R', 'foo', 'y']
497 >>> args = ['x', '-R', 'foo', 'y']
494 >>> _earlygetopt(['-R'], args), args
498 >>> _earlygetopt(['-R'], args), args
495 (['foo'], ['x', 'y'])
499 (['foo'], ['x', 'y'])
@@ -506,14 +510,22 b' def _earlygetopt(aliases, args):'
506 values = []
510 values = []
507 pos = 0
511 pos = 0
508 while pos < argcount:
512 while pos < argcount:
509 if args[pos] in aliases:
513 fullarg = arg = args[pos]
510 if pos + 1 >= argcount:
514 equals = arg.find('=')
511 # ignore and let getopt report an error if there is no value
515 if equals > -1:
512 break
516 arg = arg[:equals]
517 if arg in aliases:
513 del args[pos]
518 del args[pos]
514 values.append(args.pop(pos))
519 if equals > -1:
515 argcount -= 2
520 values.append(fullarg[equals + 1:])
516 elif args[pos][:2] in shortopts:
521 argcount -= 1
522 else:
523 if pos + 1 >= argcount:
524 # ignore and let getopt report an error if there is no value
525 break
526 values.append(args.pop(pos))
527 argcount -= 2
528 elif arg[:2] in shortopts:
517 # short option can have no following space, e.g. hg log -Rfoo
529 # short option can have no following space, e.g. hg log -Rfoo
518 values.append(args.pop(pos)[2:])
530 values.append(args.pop(pos)[2:])
519 argcount -= 1
531 argcount -= 1
General Comments 0
You need to be logged in to leave comments. Login now