Mercurial > public > mercurial-scm > hg
comparison mercurial/revsetlang.py @ 41220:8d26026b3335
revert: extract "%ld" formatting in a _formatintlist function
We'll have to reuse this logic in different places.
author | Boris Feld <boris.feld@octobus.net> |
---|---|
date | Fri, 04 Jan 2019 05:16:57 +0100 |
parents | e5b227f41e4a |
children | 73203cdfe3fe |
comparison
equal
deleted
inserted
replaced
41219:e5b227f41e4a | 41220:8d26026b3335 |
---|---|
605 if l == 0: | 605 if l == 0: |
606 return "_list('')" | 606 return "_list('')" |
607 elif l == 1: | 607 elif l == 1: |
608 return _formatargtype(t, s[0]) | 608 return _formatargtype(t, s[0]) |
609 elif t == 'd': | 609 elif t == 'd': |
610 return "_intlist('%s')" % "\0".join('%d' % int(a) for a in s) | 610 return _formatintlist(s) |
611 elif t == 's': | 611 elif t == 's': |
612 return "_list(%s)" % _quote("\0".join(s)) | 612 return "_list(%s)" % _quote("\0".join(s)) |
613 elif t == 'n': | 613 elif t == 'n': |
614 return "_hexlist('%s')" % "\0".join(node.hex(a) for a in s) | 614 return "_hexlist('%s')" % "\0".join(node.hex(a) for a in s) |
615 elif t == 'b': | 615 elif t == 'b': |
618 except AttributeError: | 618 except AttributeError: |
619 raise TypeError | 619 raise TypeError |
620 | 620 |
621 m = l // 2 | 621 m = l // 2 |
622 return '(%s or %s)' % (_formatlistexp(s[:m], t), _formatlistexp(s[m:], t)) | 622 return '(%s or %s)' % (_formatlistexp(s[:m], t), _formatlistexp(s[m:], t)) |
623 | |
624 def _formatintlist(data): | |
625 try: | |
626 l = len(data) | |
627 if l == 0: | |
628 return "_list('')" | |
629 elif l == 1: | |
630 return _formatargtype('d', data[0]) | |
631 return "_intlist('%s')" % "\0".join('%d' % int(a) for a in data) | |
632 except (TypeError, ValueError): | |
633 raise error.ParseError(_('invalid argument for revspec')) | |
623 | 634 |
624 def _formatparamexp(args, t): | 635 def _formatparamexp(args, t): |
625 return ', '.join(_formatargtype(t, a) for a in args) | 636 return ', '.join(_formatargtype(t, a) for a in args) |
626 | 637 |
627 _formatlistfuncs = { | 638 _formatlistfuncs = { |