# HG changeset patch # User Yuya Nishihara # Date 2017-04-01 07:55:28 # Node ID dfc6286111441753103db8684697af2176d43c4d # Parent 2df8d12f23bc7fae7f2a7bcd52231df98c3171c8 revsetlang: use str.find() to scan expr in formatspec() There should be no need to walk character one by one in Python. diff --git a/mercurial/revsetlang.py b/mercurial/revsetlang.py --- a/mercurial/revsetlang.py +++ b/mercurial/revsetlang.py @@ -624,9 +624,13 @@ def formatspec(expr, *args): pos = 0 arg = 0 while pos < len(expr): - c = expr[pos] - if c == '%': - pos += 1 + q = expr.find('%', pos) + if q < 0: + ret.append(expr[pos:]) + break + ret.append(expr[pos:q]) + pos = q + 1 + if True: d = expr[pos] if d == '%': ret.append(d) @@ -642,8 +646,6 @@ def formatspec(expr, *args): else: raise error.Abort(_('unexpected revspec format character %s') % d) - else: - ret.append(c) pos += 1 return ''.join(ret)