##// END OF EJS Templates
revset: factor out linerange processing into a utility function...
Denis Laxalde -
r31662:080734cd default
parent child Browse files
Show More
@@ -945,11 +945,7 def followlines(repo, subset, x):
945 lr = getrange(args['lines'][0], _("followlines expects a line range"))
945 lr = getrange(args['lines'][0], _("followlines expects a line range"))
946 fromline, toline = [getinteger(a, _("line range bounds must be integers"))
946 fromline, toline = [getinteger(a, _("line range bounds must be integers"))
947 for a in lr]
947 for a in lr]
948 if toline - fromline < 0:
948 fromline, toline = util.processlinerange(fromline, toline)
949 raise error.ParseError(_("line range must be positive"))
950 if fromline < 1:
951 raise error.ParseError(_("fromline must be strictly positive"))
952 fromline -= 1
953
949
954 fctx = repo[rev].filectx(fname)
950 fctx = repo[rev].filectx(fname)
955 revs = (c.rev() for c, _linerange
951 revs = (c.rev() for c, _linerange
@@ -2160,6 +2160,27 def unitcountfn(*unittable):
2160
2160
2161 return go
2161 return go
2162
2162
2163 def processlinerange(fromline, toline):
2164 """Check that linerange <fromline>:<toline> makes sense and return a
2165 0-based range.
2166
2167 >>> processlinerange(10, 20)
2168 (9, 20)
2169 >>> processlinerange(2, 1)
2170 Traceback (most recent call last):
2171 ...
2172 ParseError: line range must be positive
2173 >>> processlinerange(0, 5)
2174 Traceback (most recent call last):
2175 ...
2176 ParseError: fromline must be strictly positive
2177 """
2178 if toline - fromline < 0:
2179 raise error.ParseError(_("line range must be positive"))
2180 if fromline < 1:
2181 raise error.ParseError(_("fromline must be strictly positive"))
2182 return fromline - 1, toline
2183
2163 bytecount = unitcountfn(
2184 bytecount = unitcountfn(
2164 (100, 1 << 30, _('%.0f GB')),
2185 (100, 1 << 30, _('%.0f GB')),
2165 (10, 1 << 30, _('%.1f GB')),
2186 (10, 1 << 30, _('%.1f GB')),
General Comments 0
You need to be logged in to leave comments. Login now