Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/revsetlang.py @ 35592:0fd617afebc0
revsetlang: check number of arguments passed to formatspec()
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Sat, 01 Apr 2017 17:25:45 +0900 |
parents | 8f1a7adb3225 |
children | 850cd045b1df |
comparison
equal
deleted
inserted
replaced
35591:8f1a7adb3225 | 35592:0fd617afebc0 |
---|---|
632 ret.append(expr[pos:q]) | 632 ret.append(expr[pos:q]) |
633 pos = q + 1 | 633 pos = q + 1 |
634 d = expr[pos] | 634 d = expr[pos] |
635 if d == '%': | 635 if d == '%': |
636 ret.append(d) | 636 ret.append(d) |
637 elif d == 'l': | 637 pos += 1 |
638 continue | |
639 | |
640 try: | |
641 arg = next(argiter) | |
642 except StopIteration: | |
643 raise error.ParseError(_('missing argument for revspec')) | |
644 if d == 'l': | |
638 # a list of some type | 645 # a list of some type |
639 pos += 1 | 646 pos += 1 |
640 d = expr[pos] | 647 d = expr[pos] |
641 ret.append(listexp(list(next(argiter)), d)) | 648 ret.append(listexp(list(arg), d)) |
642 else: | 649 else: |
643 ret.append(argtype(d, next(argiter))) | 650 ret.append(argtype(d, arg)) |
644 pos += 1 | 651 pos += 1 |
645 | 652 |
653 try: | |
654 next(argiter) | |
655 raise error.ParseError(_('too many revspec arguments specified')) | |
656 except StopIteration: | |
657 pass | |
646 return ''.join(ret) | 658 return ''.join(ret) |
647 | 659 |
648 def prettyformat(tree): | 660 def prettyformat(tree): |
649 return parser.prettyformat(tree, ('string', 'symbol')) | 661 return parser.prettyformat(tree, ('string', 'symbol')) |
650 | 662 |