ui: refactor extractchoices so it doesn't break on Python 3
Differential Revision: https://phab.mercurial-scm.org/D275
--- a/mercurial/ui.py Mon Jul 24 11:29:51 2017 -0400
+++ b/mercurial/ui.py Mon Jul 24 13:48:32 2017 -0400
@@ -1269,9 +1269,10 @@
m = re.match(br'(?s)(.+?)\$\$([^\$]*&[^ \$].*)', prompt)
msg = m.group(1)
choices = [p.strip(' ') for p in m.group(2).split('$$')]
- return (msg,
- [(s[s.index('&') + 1].lower(), s.replace('&', '', 1))
- for s in choices])
+ def choicetuple(s):
+ ampidx = s.index('&')
+ return s[ampidx + 1:ampidx + 2].lower(), s.replace('&', '', 1)
+ return (msg, [choicetuple(s) for s in choices])
def promptchoice(self, prompt, default=0):
"""Prompt user with a message, read response, and ensure it matches