Mercurial > public > mercurial-scm > hg
comparison mercurial/revset.py @ 15325:cdf1daa3b83f stable
revset: deal with empty lists in formatspec
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Fri, 21 Oct 2011 12:12:21 -0500 |
parents | bd5103819c2e |
children | 8ae2900d6d9b |
comparison
equal
deleted
inserted
replaced
15324:0890842c41d1 | 15325:cdf1daa3b83f |
---|---|
1066 | 1066 |
1067 >>> formatspec('%r:: and %lr', '10 or 11', ("this()", "that()")) | 1067 >>> formatspec('%r:: and %lr', '10 or 11', ("this()", "that()")) |
1068 '(10 or 11):: and ((this()) or (that()))' | 1068 '(10 or 11):: and ((this()) or (that()))' |
1069 >>> formatspec('%d:: and not %d::', 10, 20) | 1069 >>> formatspec('%d:: and not %d::', 10, 20) |
1070 '10:: and not 20::' | 1070 '10:: and not 20::' |
1071 >>> formatspec('%ld or %ld', [], [1]) | |
1072 '(0-0) or (1)' | |
1071 >>> formatspec('keyword(%s)', 'foo\\xe9') | 1073 >>> formatspec('keyword(%s)', 'foo\\xe9') |
1072 "keyword('foo\\\\xe9')" | 1074 "keyword('foo\\\\xe9')" |
1073 >>> b = lambda: 'default' | 1075 >>> b = lambda: 'default' |
1074 >>> b.branch = b | 1076 >>> b.branch = b |
1075 >>> formatspec('branch(%b)', b) | 1077 >>> formatspec('branch(%b)', b) |
1109 arg += 1 | 1111 arg += 1 |
1110 elif d == 'l': | 1112 elif d == 'l': |
1111 # a list of some type | 1113 # a list of some type |
1112 pos += 1 | 1114 pos += 1 |
1113 d = expr[pos] | 1115 d = expr[pos] |
1114 lv = ' or '.join(argtype(d, e) for e in args[arg]) | 1116 if args[arg]: |
1117 lv = ' or '.join(argtype(d, e) for e in args[arg]) | |
1118 else: | |
1119 lv = '0-0' # a minimal way to represent an empty set | |
1115 ret += '(%s)' % lv | 1120 ret += '(%s)' % lv |
1116 arg += 1 | 1121 arg += 1 |
1117 else: | 1122 else: |
1118 raise util.Abort('unexpected revspec format character %s' % d) | 1123 raise util.Abort('unexpected revspec format character %s' % d) |
1119 else: | 1124 else: |